lrf402788946 4 年之前
父节点
当前提交
9b0dc96998

+ 2 - 2
src/views/techolchat/list/detail-model/fields.js

@@ -81,10 +81,10 @@ export const four = [
   { label: '新产品利润新产品销售额', model: 'ePer', list: 'ePer', type: 'select', labelWidth: '180px' },
 ];
 
-export const fiv = [
+export const five = [
   { label: '年均技改投入', model: 'yearCost', list: 'cost1', type: 'select' },
   { label: '年均外部研发支出', model: 'yearOutCost', list: 'cost1', type: 'select' },
-  { label: '年均政府支持经费(研发补贴)', model: 'yearZfCost', list: 'cost1', type: 'select' },
+  { label: '政府补贴经费', model: 'yearZfCost', list: 'cost1', type: 'select' },
   { label: '年均研发加计扣除额', model: 'yearMinCost', list: 'cost2', type: 'select', labelWidth: '160px' },
   { label: '年均研发人员占比', model: 'costPer', list: 'costPer', type: 'select' },
   { label: '年均研发人员培训费', model: 'yearTrainCost', list: 'cost3', type: 'select', labelWidth: '160px' },

+ 26 - 4
src/views/techolchat/list/detail-model/parts-models/five.vue

@@ -2,8 +2,18 @@
   <div id="one">
     <el-row>
       <el-col :span="24" class="main">
-        <el-form :model="form" :rules="rules" ref="form" label-width="80px">
-          aaaa
+        <el-form :model="form" :rules="rules" ref="form" label-width="180px">
+          <el-row>
+            <template v-for="(f, fi) in fields">
+              <el-col v-if="f.type === 'select'" :span="12" :key="`six-${f.model}-${fi}`">
+                <el-form-item :label="f.label">
+                  <el-select v-model="form[f.model]" filterable>
+                    <el-option v-for="(c, ci) in getList(f.list)" :key="`six-${f.model}-${fi}-c-${ci}`" :label="c" :value="c"></el-option>
+                  </el-select>
+                </el-form-item>
+              </el-col>
+            </template>
+          </el-row>
         </el-form>
       </el-col>
     </el-row>
@@ -11,6 +21,8 @@
 </template>
 
 <script>
+const { five } = require('../fields');
+const selectArray = require('../select');
 import { mapState, createNamespacedHelpers } from 'vuex';
 export default {
   name: 'one',
@@ -18,12 +30,22 @@ export default {
     form: { type: Object },
     rules: { type: Object },
   },
+  model: {
+    prop: 'form',
+    event: 'change',
+  },
   components: {},
   data: function() {
-    return {};
+    return {
+      fields: five,
+    };
   },
   created() {},
-  methods: {},
+  methods: {
+    getList(mod) {
+      return selectArray[mod];
+    },
+  },
   computed: {
     ...mapState(['user']),
   },

+ 47 - 4
src/views/techolchat/list/detail-model/parts-models/seven.vue

@@ -2,8 +2,39 @@
   <div id="one">
     <el-row>
       <el-col :span="24" class="main">
-        <el-form :model="form" :rules="rules" ref="form" label-width="80px">
-          aaaa
+        <el-form :model="form" :rules="rules" ref="form" label-width="180px">
+          <el-row>
+            <template v-for="(f, fi) in fields">
+              <el-col v-if="f.type === 'checkbox'" :span="12" :key="`seven-${f.model}-${fi}`">
+                <el-form-item :label="f.label">
+                  <el-select v-model="form[f.model]" filterable multiple>
+                    <el-option v-for="(c, ci) in getList(f.list)" :key="`seven-${f.model}-${fi}-c-${ci}`" :label="c" :value="c"></el-option>
+                  </el-select>
+                </el-form-item>
+              </el-col>
+              <el-col v-else :span="24" :key="`seven-${f.model}-${fi}`">
+                <el-form-item :label="f.label" label-width="130px">
+                  <el-row type="flex" :gutter="5">
+                    <el-col :span="8" v-for="(child, cIndex) in f.children" :key="`seven-${fi}-child-${cIndex}`" style="text-align:center">
+                      <el-row>
+                        <el-col :span="24">{{ child.label }}</el-col>
+                        <el-col :span="24">
+                          <el-select v-model="form[child.model]">
+                            <el-option
+                              v-for="(c, ci) in getList(child.list)"
+                              :key="`seven-${f.model}-${fi}-children-${child.model}-c-${ci}`"
+                              :label="c"
+                              :value="c"
+                            ></el-option>
+                          </el-select>
+                        </el-col>
+                      </el-row>
+                    </el-col>
+                  </el-row>
+                </el-form-item>
+              </el-col>
+            </template>
+          </el-row>
         </el-form>
       </el-col>
     </el-row>
@@ -11,6 +42,8 @@
 </template>
 
 <script>
+const { seven } = require('../fields');
+const selectArray = require('../select');
 import { mapState, createNamespacedHelpers } from 'vuex';
 export default {
   name: 'one',
@@ -18,12 +51,22 @@ export default {
     form: { type: Object },
     rules: { type: Object },
   },
+  model: {
+    prop: 'form',
+    event: 'change',
+  },
   components: {},
   data: function() {
-    return {};
+    return {
+      fields: seven,
+    };
   },
   created() {},
-  methods: {},
+  methods: {
+    getList(mod) {
+      return selectArray[mod];
+    },
+  },
   computed: {
     ...mapState(['user']),
   },

+ 26 - 4
src/views/techolchat/list/detail-model/parts-models/six.vue

@@ -2,8 +2,18 @@
   <div id="one">
     <el-row>
       <el-col :span="24" class="main">
-        <el-form :model="form" :rules="rules" ref="form" label-width="80px">
-          aaaa
+        <el-form :model="form" :rules="rules" ref="form" label-width="180px">
+          <el-row>
+            <template v-for="(f, fi) in fields">
+              <el-col v-if="f.type === 'select'" :span="12" :key="`six-${f.model}-${fi}`">
+                <el-form-item :label="f.label">
+                  <el-select v-model="form[f.model]" filterable>
+                    <el-option v-for="(c, ci) in getList(f.list)" :key="`six-${f.model}-${fi}-c-${ci}`" :label="c" :value="c"></el-option>
+                  </el-select>
+                </el-form-item>
+              </el-col>
+            </template>
+          </el-row>
         </el-form>
       </el-col>
     </el-row>
@@ -11,6 +21,8 @@
 </template>
 
 <script>
+const { six } = require('../fields');
+const selectArray = require('../select');
 import { mapState, createNamespacedHelpers } from 'vuex';
 export default {
   name: 'one',
@@ -18,12 +30,22 @@ export default {
     form: { type: Object },
     rules: { type: Object },
   },
+  model: {
+    prop: 'form',
+    event: 'change',
+  },
   components: {},
   data: function() {
-    return {};
+    return {
+      fields: six,
+    };
   },
   created() {},
-  methods: {},
+  methods: {
+    getList(mod) {
+      return selectArray[mod];
+    },
+  },
   computed: {
     ...mapState(['user']),
   },

+ 2 - 2
src/views/techolchat/list/detail-model/questionnaire-models.vue

@@ -61,7 +61,7 @@
                   <span>企业研发成效</span>
                 </el-col>
                 <el-col :span="24" class="info">
-                  <six :form="form" :rules="rules"></six>
+                  <six v-model="form" :rules="rules"></six>
                 </el-col>
               </el-col>
               <el-col :span="24" class="common">
@@ -69,7 +69,7 @@
                   <span>对于技术合作</span>
                 </el-col>
                 <el-col :span="24" class="info">
-                  <seven :form="form" :rules="rules"></seven>
+                  <seven v-model="form" :rules="rules"></seven>
                 </el-col>
               </el-col>
               <el-col :span="24" class="btn">