|
@@ -3,8 +3,7 @@
|
|
|
<el-row>
|
|
|
<el-col :span="24" class="style">
|
|
|
<el-col :span="24" class="list" v-if="display">
|
|
|
- <el-col :span="24" class="top"><el-button type="primary" size="mini" @click="add">添加</el-button></el-col>
|
|
|
- <el-col :span="24" class="main"></el-col>
|
|
|
+ <el-col :span="24" class="top" v-if="user.type === '3'"><el-button type="primary" size="mini" @click="add">添加</el-button></el-col>
|
|
|
<template>
|
|
|
<el-table :data="tableData" border style="width: 100%">
|
|
|
<el-table-column prop="name" label="需求技术名称" align="center"> </el-table-column>
|
|
@@ -24,49 +23,93 @@
|
|
|
}}</span>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="操作"> </el-table-column>
|
|
|
+ <el-table-column label="操作" align="center">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-button size="mini" @click="view(scope.row.id)">查看</el-button>
|
|
|
+ <el-button type="danger" size="mini" @click="del(scope.row.id)">删除</el-button>
|
|
|
+ <el-button v-if="user.type === '3' && scope.row.status == '0'" type="success" @click="refer(scope.row.id, { status: '1' })"
|
|
|
+ >提交审核</el-button
|
|
|
+ >
|
|
|
+ <el-button v-if="user.type === '0' || user.type === '1'" type="success" size="mini" @click="refer(scope.row.id, { status: '2' })"
|
|
|
+ >审核通过</el-button
|
|
|
+ >
|
|
|
+ <el-button v-if="user.type === '0' || user.type === '1'" type="warning" size="mini" @click="refer(scope.row.id, { status: '3' })"
|
|
|
+ >审核拒绝</el-button
|
|
|
+ >
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
</el-table>
|
|
|
+ <page :total="total" position="right" @query="search"></page>
|
|
|
</template>
|
|
|
</el-col>
|
|
|
<el-col :span="24" class="datail" v-else>
|
|
|
- <el-form ref="form" :model="form" label-width="120px">
|
|
|
- <el-form-item label="需求技术名称">
|
|
|
- <el-input v-model="form.name" placeholder="请输入需求技术名称"></el-input>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="所属领域">
|
|
|
- <el-radio-group v-model="form.field">
|
|
|
- <el-radio label="工业">工业</el-radio>
|
|
|
- <el-radio label="农业">农业</el-radio>
|
|
|
- <el-radio label="社会发展">社会发展</el-radio>
|
|
|
- <el-radio label="医疗健康">医疗健康</el-radio>
|
|
|
- </el-radio-group>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="拟投入预算(万)">
|
|
|
- <el-input v-model="form.budget" placeholder="请输入拟投入预算(万)"></el-input>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="需求截止日期" prop="enddate">
|
|
|
- <el-date-picker v-model="form.enddate" type="date" format="yyyy-MM-dd" value-format="yyyy-MM-dd" placeholder="请选择日期"> </el-date-picker>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="难题或瓶颈问题">
|
|
|
- <el-input
|
|
|
- v-model="form.problem"
|
|
|
- type="textarea"
|
|
|
- placeholder="阐述在生产经营、项目建设、科研活动、产业化方向中遇到的技术难题或瓶颈问题及需达到的技术指标"
|
|
|
- ></el-input>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="企业解决技术需求已具备的条件">
|
|
|
- <el-input v-model="form.problem" type="textarea" placeholder="企业承接成果、技术所具备的技术人员、设备、资金等基础条件及其他配套条件"></el-input>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="合作方式">
|
|
|
- <el-radio-group v-model="form.type">
|
|
|
- <el-radio label="技术转让">技术转让</el-radio>
|
|
|
- <el-radio label="技术服务">技术服务</el-radio>
|
|
|
- <el-radio label="技术许可">技术许可</el-radio>
|
|
|
- <el-radio label="技术融资">技术融资</el-radio>
|
|
|
- <el-radio label="其他">其他</el-radio>
|
|
|
- </el-radio-group>
|
|
|
- </el-form-item>
|
|
|
- </el-form>
|
|
|
+ <el-col class="top"><el-button type="primary" size="mini" @click="back">返回</el-button></el-col>
|
|
|
+ <el-col class="main">
|
|
|
+ <el-form ref="form" :model="form" label-width="120px" :rules="rules">
|
|
|
+ <el-form-item label="需求技术名称" prop="name">
|
|
|
+ <el-input :disabled="disabled" v-model="form.name" placeholder="请输入需求技术名称"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="所属领域" prop="field">
|
|
|
+ <el-radio-group :disabled="disabled" v-model="form.field">
|
|
|
+ <el-radio label="工业">工业</el-radio>
|
|
|
+ <el-radio label="农业">农业</el-radio>
|
|
|
+ <el-radio label="社会发展">社会发展</el-radio>
|
|
|
+ <el-radio label="医疗健康">医疗健康</el-radio>
|
|
|
+ </el-radio-group>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="拟投入预算(万)">
|
|
|
+ <el-input :disabled="disabled" v-model="form.budget" placeholder="请输入拟投入预算(万)"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="需求截止日期" prop="enddate">
|
|
|
+ <el-date-picker :disabled="disabled" v-model="form.enddate" type="date" format="yyyy-MM-dd" value-format="yyyy-MM-dd" placeholder="请选择日期">
|
|
|
+ </el-date-picker>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="难题或瓶颈问题">
|
|
|
+ <el-input
|
|
|
+ :disabled="disabled"
|
|
|
+ v-model="form.problem"
|
|
|
+ type="textarea"
|
|
|
+ placeholder="阐述在生产经营、项目建设、科研活动、产业化方向中遇到的技术难题或瓶颈问题及需达到的技术指标"
|
|
|
+ ></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="企业解决技术需求已具备的条件">
|
|
|
+ <el-input
|
|
|
+ :disabled="disabled"
|
|
|
+ v-model="form.condition"
|
|
|
+ type="textarea"
|
|
|
+ placeholder="企业承接成果、技术所具备的技术人员、设备、资金等基础条件及其他配套条件"
|
|
|
+ ></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="合作方式" prop="type">
|
|
|
+ <el-radio-group :disabled="disabled" v-model="form.type">
|
|
|
+ <el-radio label="技术转让">技术转让</el-radio>
|
|
|
+ <el-radio label="技术服务">技术服务</el-radio>
|
|
|
+ <el-radio label="技术许可">技术许可</el-radio>
|
|
|
+ <el-radio label="技术融资">技术融资</el-radio>
|
|
|
+ <el-radio label="其他">其他</el-radio>
|
|
|
+ </el-radio-group>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="是否在网页显示" prop="is_display">
|
|
|
+ <el-radio-group :disabled="disabled" v-model="form.is_display">
|
|
|
+ <el-radio label="0">是</el-radio>
|
|
|
+ <el-radio label="1">否</el-radio>
|
|
|
+ </el-radio-group>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="状态" prop="status">
|
|
|
+ <el-radio-group :disabled="disabled" v-model="form.status">
|
|
|
+ <el-radio label="0">保存草稿</el-radio>
|
|
|
+ <el-radio label="1">提交审核</el-radio>
|
|
|
+ <el-radio label="2" v-if="user.type === '0' || user.type === '1'">审核通过</el-radio>
|
|
|
+ <el-radio label="3" v-if="user.type === '0' || user.type === '1'">审核拒绝</el-radio>
|
|
|
+ </el-radio-group>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item>
|
|
|
+ <el-button v-if="user.type === '3'" type="primary" @click="onSubmit()">提交</el-button>
|
|
|
+ <el-button v-if="user.type === '0' || user.type === '1'" type="success" @click="refer(scope.row.id, { status: '2' })">审核通过</el-button>
|
|
|
+ <el-button v-if="user.type === '0' || user.type === '1'" type="warning" @click="refer(scope.row.id, { status: '3' })">审核拒绝</el-button>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ </el-col>
|
|
|
</el-col>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
@@ -74,20 +117,107 @@
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
+import page from '@/components/pagination.vue';
|
|
|
+import { mapState, createNamespacedHelpers } from 'vuex';
|
|
|
+const { mapActions: demand } = createNamespacedHelpers('demand');
|
|
|
export default {
|
|
|
name: 'demand',
|
|
|
props: {},
|
|
|
- components: {},
|
|
|
+ components: { page },
|
|
|
data: () => ({
|
|
|
tableData: [],
|
|
|
display: true,
|
|
|
form: {},
|
|
|
+ total: 0,
|
|
|
+ rules: {
|
|
|
+ name: [{ required: true, message: '请输入需求技术名称', trigger: 'blur' }],
|
|
|
+ field: [{ required: true, message: '请选择所属领域', trigger: 'blur' }],
|
|
|
+ is_display: [{ required: true, message: '请选择是否在网页显示', trigger: 'blur' }],
|
|
|
+ status: [{ required: true, message: '请选择状态', trigger: 'blur' }],
|
|
|
+ type: [{ required: true, message: '请选择合作方式', trigger: 'blur' }],
|
|
|
+ },
|
|
|
+ disabled: false,
|
|
|
}),
|
|
|
- created() {},
|
|
|
- computed: {},
|
|
|
+ created() {
|
|
|
+ this.search();
|
|
|
+ },
|
|
|
+ computed: {
|
|
|
+ ...mapState(['user']),
|
|
|
+ },
|
|
|
methods: {
|
|
|
+ ...demand(['update', 'fetch', 'query', 'create', 'delete']),
|
|
|
+ // 查询信息列表
|
|
|
+ async search({ skip = 0, limit = 10, ...info } = {}) {
|
|
|
+ let res = {};
|
|
|
+ if (this.user.type === '0' || this.user.type === '1') {
|
|
|
+ res = await this.query({ skip, limit, ...info });
|
|
|
+ }
|
|
|
+ if (this.user.type === '3') {
|
|
|
+ res = await this.query({ skip, limit, uid: this.user.uid });
|
|
|
+ }
|
|
|
+ this.$set(this, `tableData`, res.data);
|
|
|
+ this.$set(this, `total`, res.total);
|
|
|
+ },
|
|
|
+ async view(id) {
|
|
|
+ const res = await this.fetch(id);
|
|
|
+ this.$set(this, `form`, res.data);
|
|
|
+ if (this.user.type === '0' || this.user.type === '1' || res.data.status != '0') {
|
|
|
+ this.disabled = true;
|
|
|
+ }
|
|
|
+ this.display = false;
|
|
|
+ },
|
|
|
+ async del(id) {
|
|
|
+ const res = await this.delete(id);
|
|
|
+ if (res.errcode === 0) {
|
|
|
+ this.$message({
|
|
|
+ message: '信息删除成功',
|
|
|
+ type: 'success',
|
|
|
+ });
|
|
|
+ this.search();
|
|
|
+ } else {
|
|
|
+ this.$message.error('信息删除失败');
|
|
|
+ }
|
|
|
+ },
|
|
|
+ async refer(id, { status }) {
|
|
|
+ const res = await this.update({ id, status });
|
|
|
+ if (res.errcode === 0) {
|
|
|
+ this.$message({
|
|
|
+ message: '信息修改成功',
|
|
|
+ type: 'success',
|
|
|
+ });
|
|
|
+ this.search();
|
|
|
+ } else {
|
|
|
+ this.$message.error('信息修改失败');
|
|
|
+ }
|
|
|
+ },
|
|
|
add() {
|
|
|
this.display = false;
|
|
|
+ this.form = {};
|
|
|
+ },
|
|
|
+ // 返回
|
|
|
+ back() {
|
|
|
+ console.log(this.display);
|
|
|
+ this.display = true;
|
|
|
+ },
|
|
|
+ async onSubmit() {
|
|
|
+ let res = {};
|
|
|
+ let data = JSON.parse(JSON.stringify(this.form));
|
|
|
+ if (data.id) {
|
|
|
+ res = await this.update(data);
|
|
|
+ } else {
|
|
|
+ data.uid = this.user.uid;
|
|
|
+ res = await this.create(data);
|
|
|
+ }
|
|
|
+ if (res.errcode === 0) {
|
|
|
+ this.$message({
|
|
|
+ message: '信息创建成功',
|
|
|
+ type: 'success',
|
|
|
+ });
|
|
|
+ this.display = true;
|
|
|
+ this.search();
|
|
|
+ } else {
|
|
|
+ this.$message.error('信息创建失败');
|
|
|
+ }
|
|
|
},
|
|
|
},
|
|
|
};
|
|
@@ -109,4 +239,14 @@ export default {
|
|
|
/deep/ .el-textarea__inner {
|
|
|
width: 600px;
|
|
|
}
|
|
|
+.list /deep/.el-button {
|
|
|
+ display: inline-block;
|
|
|
+ height: 30px;
|
|
|
+ width: 48px;
|
|
|
+ text-align: center;
|
|
|
+ line-height: 20px;
|
|
|
+ padding: 0;
|
|
|
+ margin: 5px 1px;
|
|
|
+ font-size: 11px;
|
|
|
+}
|
|
|
</style>
|