yf_zhb 3 rokov pred
rodič
commit
7e434ac16f

+ 2 - 2
minggao/config/index.js

@@ -12,10 +12,10 @@ module.exports = {
     proxyTable: {
       '/api': {
         ws: false,
-        target: 'http://192.168.1.52:12345', //翟毅飞
+        // target: 'http://192.168.1.52:12345', //翟毅飞
         //  target: 'https://www.yhswjc.com', //线上
         // target: 'http://192.168.1.77:12345', //曹世祥
-        // target: 'http://114.115.147.140:12345',
+        target: 'http://114.115.147.140:12345',
         changeOrigin: true,
         pathRewrite: {
           '^/api': '/api' //重写接口

+ 89 - 9
minggao/src/page/recordForm/components/userSelect.vue

@@ -1,6 +1,6 @@
 <!-- 会员卡类型 -->
 <template>
-  <el-select
+  <!-- <el-select
     v-model="id"
     filterable
     remote
@@ -22,11 +22,31 @@
       :label="item.real_name"
       :disabled="optionsDisabled(item.id)"
     />
-  </el-select>
+  </el-select> -->
+  <el-cascader
+    :placeholder="placeholder"
+    :options="transformUserGroupList"
+    :show-all-levels="true"
+    filterable
+    size="mini"
+    @change="handleChange"
+  ></el-cascader>
 </template>
 
 <script>
-import _ from 'lodash-es';
+import _, {
+  zipObject,
+  map,
+  concat,
+  reduce,
+  groupBy,
+  uniqBy,
+  flatMap,
+  assign,
+  debounce,
+  omit,
+  last
+} from 'lodash-es';
 
 export default {
   name: 'UserIDSelect',
@@ -63,15 +83,74 @@ export default {
       id: '',
       loading: false,
       data: [],
-      keyword: ''
+      keyword: '',
+      userList: [],
+      currentUserList: []
     };
   },
   computed: {
+    transformUserGroupList() {
+      const concatUserList = reduce(
+        this.currentUserList,
+        (pre, curr) => {
+          return concat(
+            pre,
+            map(curr.org_list || [], item =>
+              omit(
+                assign(
+                  {
+                    org_id: item.org_id,
+                    org_name: item.org_name
+                  },
+                  curr
+                ),
+                ['org_list']
+              )
+            )
+          );
+        },
+        []
+      );
+
+      const result = groupBy(concatUserList, item => {
+        return item.org_id;
+      });
+
+      const transformResults = [];
+
+      for (const key in result) {
+        const payload = {
+          label:
+            (this.orgDataSource[key] && this.orgDataSource[key].org_name) || '',
+          value: key,
+          children: result[key].map(item => {
+            return {
+              value: item.user_id,
+              label: item.real_name,
+              org_name: item.org_name,
+              org_id: item.org_id
+            };
+          })
+        };
+
+        transformResults.push(payload);
+      }
+
+      return transformResults;
+    },
     selectedData() {
       if (_.isArray(this.id)) {
         return _.filter(this.data, item => _.includes(this.id, item.id));
       }
       return _.find(this.data, { id: this.id });
+    },
+    orgDataSource() {
+      const result = uniqBy(
+        flatMap(map(this.currentUserList, 'org_list')),
+        'org_id'
+      );
+      console.log(result, 'orgDataSource');
+      return zipObject(map(result, 'org_id'), result);
     }
   },
   watch: {
@@ -92,11 +171,11 @@ export default {
       const payload = _.assign(
         {
           pageNum: 1,
-          page_item: 1000
+          page_item: 10000000
           // mobile: this.phoneVal, //电话
           // org_id: this.org_id
         },
-        { real_name: value },
+        // { real_name: value },
         this.query
       );
       return this.$axios({
@@ -109,7 +188,8 @@ export default {
             return;
           }
 
-          this.data = res.data.data.page_list || [];
+          this.userList = this.currentUserList = this.data =
+            res.data.data.page_list || [];
           return res.data.data.page_list;
         })
         .finally(() => {
@@ -117,8 +197,8 @@ export default {
         });
     },
     handleChange(value) {
-      this.$emit('input', value);
-      this.$emit('change', value, this.selectedData);
+      this.$emit('input', last(value));
+      this.$emit('change', last(value), this.selectedData);
     },
     optionsDisabled(id) {
       return _.includes(this.disabledOptions, id);

+ 13 - 5
minggao/src/page/recordForm/fieldSurveys.vue

@@ -343,15 +343,23 @@ export default {
       },
       rules: {
         inspect_name: [
-          { required: true, message: '请输入名称', trigger: 'blur' },
-          { min: 3, max: 5, message: '长度在 3 到 5 个字符', trigger: 'blur' }
+          { required: true, message: '请输入踏查点名称', trigger: 'blur' }
         ],
-        lng: [{ required: true, message: '请输入经度', trigger: 'blur' }],
-        lat: [{ required: true, message: '请输入纬度', trigger: 'blur' }],
-        height: [{ required: true, message: '请输入海拔', trigger: 'blur' }],
+        // lng: [{ required: true, message: '请输入经度', trigger: 'blur' }],
+        // lat: [{ required: true, message: '请输入纬度', trigger: 'blur' }],
+        // height: [{ required: true, message: '请输入海拔', trigger: 'blur' }],
         inspect_area: [
           { required: true, message: '请输入踏查点面积', trigger: 'blur' }
         ],
+        pest_name: [
+          { required: true, message: '请输入物种名称', trigger: 'blur' }
+        ],
+        harm_obj: [
+          { required: true, message: '请输入危害对象', trigger: 'blur' }
+        ],
+        occurs_area: [
+          { required: true, message: '请输入发生面积', trigger: 'blur' }
+        ],
         occurs_list: [
           {
             type: 'array',

+ 2 - 2
minggao/src/page/recordForm/sampleAppraisal.vue

@@ -191,8 +191,8 @@ export default {
       },
       rules: {
         sample_name: [
-          { required: true, message: '请填写样本名称', trigger: 'blur' },
-          { min: 3, max: 20, message: '长度在 3 到 20 个字符', trigger: 'blur' }
+          { required: true, message: '请填写样本名称', trigger: 'blur' }
+          // { min: 3, max: 20, message: '长度在 3 到 20 个字符', trigger: 'blur' }
         ],
         sample_num: [
           { required: true, message: '请填写样本编号', trigger: 'change' }

+ 89 - 45
minggao/src/page/recordForm/samplePlot.vue

@@ -233,9 +233,16 @@
               <el-input v-model="baseForm.is_check"></el-input>
             </el-form-item>
           </el-col>
-          <el-col :span="8">
+          <el-col :span="16">
             <el-form-item label="危害对象:" prop="harm_obj">
-              <el-input v-model="baseForm.harm_obj"></el-input>
+              <el-radio-group v-model="baseForm.harm_obj">
+                <el-radio
+                  v-for="item in harmObjectList"
+                  :key="item.value"
+                  :label="item.value"
+                  >{{ item.label }}</el-radio
+                >
+              </el-radio-group>
             </el-form-item>
           </el-col>
         </el-row>
@@ -245,9 +252,16 @@
               <el-input v-model="baseForm.harm_crop"></el-input>
             </el-form-item>
           </el-col>
-          <el-col :span="8">
+          <el-col :span="16">
             <el-form-item label="危害部位:" prop="harm_place">
-              <el-input v-model="baseForm.harm_place"></el-input>
+              <el-radio-group v-model="baseForm.harm_place">
+                <el-radio
+                  v-for="item in harmPlaceList"
+                  :key="item.value"
+                  :label="item.value"
+                  >{{ item.label }}</el-radio
+                >
+              </el-radio-group>
             </el-form-item>
           </el-col>
         </el-row>
@@ -383,7 +397,7 @@
 </template>
 
 <script>
-import { assign, omit, map } from 'lodash-es';
+import { assign, omit, map, forEach } from 'lodash-es';
 import UserIDSelectComponent from './components/userSelect.vue';
 import { downFile } from '@/util/downloadFile.js';
 
@@ -502,41 +516,15 @@ export default {
         ]
       },
       rules: {
-        name: [
-          { required: true, message: '请输入活动名称', trigger: 'blur' },
-          { min: 3, max: 5, message: '长度在 3 到 5 个字符', trigger: 'blur' }
-        ],
-        region: [
-          { required: true, message: '请选择活动区域', trigger: 'change' }
-        ],
-        date1: [
-          {
-            type: 'date',
-            required: true,
-            message: '请选择日期',
-            trigger: 'change'
-          }
-        ],
-        date2: [
-          {
-            type: 'date',
-            required: true,
-            message: '请选择时间',
-            trigger: 'change'
-          }
+        sample_addr: [
+          { required: true, message: '请输入标准样地地点', trigger: 'blur' }
         ],
-        type: [
-          {
-            type: 'array',
-            required: true,
-            message: '请至少选择一个活动性质',
-            trigger: 'change'
-          }
+        sample_num: [
+          { required: true, message: '请输入标准样地编号', trigger: 'blur' }
         ],
-        resource: [
-          { required: true, message: '请选择活动资源', trigger: 'change' }
-        ],
-        desc: [{ required: true, message: '请填写活动形式', trigger: 'blur' }]
+        sample_area: [
+          { required: true, message: '请输入标准样地面积', trigger: 'blur' }
+        ]
       },
       habitatList: [
         {
@@ -602,7 +590,47 @@ export default {
           value: '4'
         }
       ],
-      exportLoading: false
+      exportLoading: false,
+      harmObjectList: [
+        {
+          label: '农作物',
+          value: '农作物'
+        },
+        {
+          label: '人畜健康',
+          value: '人畜健康'
+        },
+        {
+          label: '生态系统',
+          value: '生态系统'
+        }
+      ],
+      harmPlaceList: [
+        {
+          label: '根',
+          value: '根'
+        },
+        {
+          label: '茎',
+          value: '茎'
+        },
+        {
+          label: '叶',
+          value: '叶'
+        },
+        {
+          label: '花',
+          value: '花'
+        },
+        {
+          label: '果实',
+          value: '果实'
+        },
+        {
+          label: '其他',
+          value: '其他'
+        }
+      ]
     };
   },
   //监听属性 类似于data概念
@@ -754,9 +782,26 @@ export default {
         if (valid) {
           this.dialogSubmitLoading = true;
 
+          let transformTableData = {};
+
+          forEach(this.baseForm.tableList, item => {
+            transformTableData[item.row_key + '_1'] = item.num_1;
+            transformTableData[item.row_key + '_2'] = item.num_2;
+            transformTableData[item.row_key + '_3'] = item.num_3;
+            transformTableData[item.row_key + '_4'] = item.num_4;
+            transformTableData[item.row_key + '_5'] = item.num_5;
+            transformTableData[item.row_key + '_6'] = item.num_6;
+          });
+
           if (!this.baseForm.as_id) {
             // 添加
-            const payload = omit(this.baseForm, ['as_id']);
+            const payload = omit(
+              assign({}, this.baseForm, transformTableData),
+              ['as_id', 'tableList']
+            );
+
+            // 处理table
+
             this.$axios({
               method: 'POST',
               url: '/api/api_gateway?method=data_report.info.alien_specie_add',
@@ -777,11 +822,10 @@ export default {
           } else {
             // 编辑
             // 添加
-            const payload = omit(this.baseForm, [
-              'check_time',
-              'submit_time',
-              'user_name'
-            ]);
+            const payload = omit(
+              assign({}, this.baseForm, transformTableData),
+              ['check_time', 'submit_time', 'user_name', 'tableList']
+            );
 
             this.$axios({
               method: 'POST',

+ 10 - 26
minggao/src/page/recordForm/trapRecord.vue

@@ -398,36 +398,20 @@ export default {
 					 */
       },
       rules: {
-        name: [
-          { required: true, message: '请输入活动名称', trigger: 'blur' },
-          { min: 3, max: 5, message: '长度在 3 到 5 个字符', trigger: 'blur' }
+        sample_addr: [
+          { required: true, message: '请输入标准样地地点', trigger: 'blur' }
         ],
-        region: [
-          { required: true, message: '请选择活动区域', trigger: 'change' }
+        sample_num: [
+          { required: true, message: '请输入标准样地编号', trigger: 'blur' }
         ],
-        date1: [
-          {
-            type: 'date',
-            required: true,
-            message: '请选择日期',
-            trigger: 'change'
-          }
+        sample_area: [
+          { required: true, message: '请输入标准样地面积', trigger: 'blur' }
         ],
-        date2: [
-          {
-            type: 'date',
-            required: true,
-            message: '请选择时间',
-            trigger: 'change'
-          }
+        trap_number: [
+          { required: true, message: '请输入诱捕器编号', trigger: 'blur' }
         ],
-        type: [
-          {
-            type: 'array',
-            required: true,
-            message: '请至少选择一个活动性质',
-            trigger: 'change'
-          }
+        inducer_name: [
+          { required: true, message: '请输入诱剂名称', trigger: 'blur' }
         ]
       },
       habitatList: [