yf_zhb 2 лет назад
Родитель
Сommit
777d7f6b55

+ 136 - 93
minggao/src/page/recordForm/fieldSurveys.vue

@@ -67,36 +67,30 @@
             </template>
           </el-table-column>
           <el-table-column
-            prop="trap_number"
+            prop="inspect_name"
             label="踏查点名称"
           ></el-table-column>
-          <el-table-column prop="point_name" label="经度"> </el-table-column>
-          <el-table-column prop="point_name" label="纬度"> </el-table-column>
-          <el-table-column prop="point_name" label="海拔"> </el-table-column>
-          <el-table-column prop="point_name" label="踏查点面积">
+          <el-table-column prop="lng" label="经度"> </el-table-column>
+          <el-table-column prop="lat" label="纬度"> </el-table-column>
+          <el-table-column prop="height" label="海拔"> </el-table-column>
+          <el-table-column prop="inspect_area" label="踏查点面积">
           </el-table-column>
-          <el-table-column prop="inducer_type" label="发生生境">
+          <el-table-column prop="occurs" label="发生生境"> </el-table-column>
+          <el-table-column prop="pest_name" label="物种名称"> </el-table-column>
+          <el-table-column prop="harm_obj" label="危害对象"> </el-table-column>
+          <el-table-column prop="occurs_area" label="发生面积">
           </el-table-column>
-          <el-table-column prop="pest_type_num" label="物种名称">
+          <el-table-column prop="is_std" label="是否设置标准样地">
           </el-table-column>
-          <el-table-column prop="pest_number" label="危害对象">
+          <el-table-column prop="check_num" label="调查株数"> </el-table-column>
+          <el-table-column prop="harm_num" label="危害株数"> </el-table-column>
+          <el-table-column prop="harm_place" label="危害部位">
           </el-table-column>
-          <el-table-column prop="user_name" label="发生面积"> </el-table-column>
-          <el-table-column prop="operation_type" label="是否设置标准样地">
+          <el-table-column prop="harm_rate" label="危害率"> </el-table-column>
+          <el-table-column prop="sample_num" label="样本编号">
           </el-table-column>
-          <el-table-column prop="operation_type" label="调查株数">
-          </el-table-column>
-          <el-table-column prop="operation_type" label="危害株数">
-          </el-table-column>
-          <el-table-column prop="operation_type" label="危害部位">
-          </el-table-column>
-          <el-table-column prop="operation_type" label="危害率">
-          </el-table-column>
-          <el-table-column prop="operation_type" label="是否采集样本编号">
-          </el-table-column>
-          <el-table-column prop="operation_type" label="踏查人">
-          </el-table-column>
-          <el-table-column prop="report_time" label="提交时间" width="200">
+          <el-table-column prop="user_name" label="踏查人"> </el-table-column>
+          <el-table-column prop="submit_time" label="提交时间" width="200">
           </el-table-column>
           <el-table-column label="操作" width="200">
             <template slot-scope="scope">
@@ -126,48 +120,50 @@
       :close-on-press-escape="false"
     >
       <el-form
-        :model="ruleForm"
+        :model="baseForm"
         :rules="rules"
-        ref="ruleForm"
+        ref="baseForm"
         label-width="160px"
       >
-        <el-form-item label-width="20px">
+        <el-form-item label-width="20px" v-if="baseForm.inspect_id">
           <el-descriptions>
-            <el-descriptions-item label="踏查人">张三</el-descriptions-item>
-            <el-descriptions-item label="踏查时间"
-              >2023年2月15日</el-descriptions-item
-            >
+            <el-descriptions-item label="踏查人">{{
+              baseForm.user_name
+            }}</el-descriptions-item>
+            <el-descriptions-item label="踏查时间">{{
+              baseForm.submit_time
+            }}</el-descriptions-item>
           </el-descriptions>
         </el-form-item>
-        <el-form-item label="踏查点名称:" prop="desc">
-          <el-input v-model="ruleForm.desc"></el-input>
+        <el-form-item label="踏查点名称:" prop="inspect_name">
+          <el-input v-model="baseForm.inspect_name"></el-input>
         </el-form-item>
         <el-form-item label="地理坐标:">
           <el-row type="flex" align="center">
-            <el-form-item class="mr10" style="min-width: 180px">
-              <el-input v-model="ruleForm.desc"
+            <el-form-item class="mr10" style="min-width: 180px" prop="lng">
+              <el-input v-model="baseForm.lng"
                 ><template slot="append">经度</template></el-input
               >
             </el-form-item>
-            <el-form-item class="mr10" style="min-width: 180px">
-              <el-input v-model="ruleForm.desc"
+            <el-form-item class="mr10" style="min-width: 180px" prop="lat">
+              <el-input v-model="baseForm.lat"
                 ><template slot="append">纬度</template></el-input
               >
             </el-form-item>
-            <el-form-item style="min-width: 180px">
-              <el-input v-model="ruleForm.desc">
+            <el-form-item style="min-width: 180px" prop="height">
+              <el-input v-model="baseForm.height">
                 <template slot="append">海拔</template>
               </el-input>
             </el-form-item>
           </el-row>
         </el-form-item>
-        <el-form-item label="踏查点面积:" prop="desc">
-          <el-input v-model="ruleForm.desc"
+        <el-form-item label="踏查点面积:" prop="inspect_area">
+          <el-input v-model="baseForm.inspect_area"
             ><template slot="append">亩</template></el-input
           >
         </el-form-item>
-        <el-form-item label="发生生境:" prop="desc">
-          <el-checkbox-group v-model="ruleForm.addressList">
+        <el-form-item label="发生生境:" prop="occurs_name">
+          <el-checkbox-group v-model="baseForm.occurs_list">
             <el-row v-for="item in habitatList" :key="item.value">
               <el-col>
                 <el-checkbox :label="item.value">{{ item.label }}</el-checkbox>
@@ -192,61 +188,61 @@
             </el-row>
           </el-checkbox-group>
         </el-form-item>
-        <el-form-item label="物种名称:" prop="desc">
-          <el-input v-model="ruleForm.desc"
+        <el-form-item label="物种名称:" prop="pest_name">
+          <el-input v-model="baseForm.pest_name"
             ><template slot="append">亩</template></el-input
           >
         </el-form-item>
-        <el-form-item label="危害对象:" prop="desc">
-          <el-input v-model="ruleForm.desc"
+        <el-form-item label="危害对象:" prop="harm_obj">
+          <el-input v-model="baseForm.harm_obj"
             ><template slot="append">亩</template></el-input
           >
         </el-form-item>
-        <el-form-item label="发生面积:" prop="desc">
-          <el-input v-model="ruleForm.desc"
+        <el-form-item label="发生面积:" prop="occurs_area">
+          <el-input v-model="baseForm.occurs_area"
             ><template slot="append">亩</template></el-input
           >
         </el-form-item>
-        <el-form-item label="是否设置标准样地:" prop="desc">
-          <el-radio-group v-model="ruleForm.isSet">
+        <el-form-item label="是否设置标准样地:" prop="is_std">
+          <el-radio-group v-model="baseForm.is_std">
             <el-radio :label="1">是</el-radio>
             <el-radio :label="0">否</el-radio>
           </el-radio-group>
         </el-form-item>
         <el-row :gutter="20">
           <el-col :span="10">
-            <el-form-item label="调查株数:" prop="desc">
-              <el-input v-model="ruleForm.desc"></el-input>
+            <el-form-item label="调查株数:" prop="check_num">
+              <el-input v-model="baseForm.check_num"></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="10">
-            <el-form-item label="危害株数:" prop="region">
-              <el-input v-model="ruleForm.desc"></el-input>
+            <el-form-item label="危害株数:" prop="harm_num">
+              <el-input v-model="baseForm.harm_num"></el-input>
             </el-form-item>
           </el-col>
         </el-row>
-        <el-form-item label="危害部位:" prop="desc">
-          <el-input v-model="ruleForm.desc"></el-input>
+        <el-form-item label="危害部位:" prop="harm_place">
+          <el-input v-model="baseForm.harm_place"></el-input>
         </el-form-item>
-        <el-form-item label="危害率:" prop="desc">
-          <el-input v-model="ruleForm.desc"></el-input>
+        <el-form-item label="危害率:" prop="harm_rate">
+          <el-input v-model="baseForm.harm_rate"></el-input>
         </el-form-item>
-        <el-form-item label="是否采集样本:" prop="desc">
-          <el-radio-group v-model="ruleForm.isSet">
+        <!-- <el-form-item label="是否采集样本:" prop="desc">
+          <el-radio-group v-model="baseForm.isSet">
             <el-radio :label="1">是</el-radio>
             <el-radio :label="0">否</el-radio>
           </el-radio-group>
-        </el-form-item>
-        <el-form-item label="样本编号:" prop="desc">
-          <el-input v-model="ruleForm.desc"></el-input>
+        </el-form-item> -->
+        <el-form-item label="样本编号:" prop="sample_num">
+          <el-input v-model="baseForm.sample_num"></el-input>
         </el-form-item>
       </el-form>
       <span slot="footer" class="dialog-footer">
-        <el-button @click="resetForm('ruleForm')">取 消</el-button>
+        <el-button @click="resetForm('baseForm')">取 消</el-button>
         <el-button
           :disabled="dialogSubmitLoading"
           type="primary"
-          @click="submitForm('ruleForm')"
+          @click="submitForm('baseForm')"
           >确定</el-button
         >
       </span>
@@ -287,42 +283,46 @@ export default {
         addressList: [],
         tableList: []
       },
+      baseForm: {
+        inspect_id: '', //id
+        inspect_name: '', // 踏查点名称
+        lng: '', // 经度,
+        lat: '', // 纬度,
+        height: '', // 海拔
+        inspect_area: '', //踏查点面积
+        occurs: '', // 发生境
+        occurs_name: '', // 发生境名称
+        pest_name: '', //物种名称
+        harm_obj: '', //危害对象
+        occurs_area: '', // 发生面积
+        is_std: '是', // 是否设置标准样地   是/否
+        check_num: '', // 调查株数
+        harm_num: '', // 危害株数
+        harm_rate: '', // 危害率
+        harm_place: '', // 危害部位
+        // is_gather:'',// 是否采集样本
+        sample_num: '', // 样本编号
+        occurs_list: []
+      },
       rules: {
-        name: [
-          { required: true, message: '请输入活动名称', trigger: 'blur' },
+        inspect_name: [
+          { required: true, message: '请输入名称', trigger: 'blur' },
           { min: 3, max: 5, message: '长度在 3 到 5 个字符', trigger: 'blur' }
         ],
-        region: [
-          { required: true, message: '请选择活动区域', trigger: 'change' }
+        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' }
         ],
-        date1: [
-          {
-            type: 'date',
-            required: true,
-            message: '请选择日期',
-            trigger: 'change'
-          }
-        ],
-        date2: [
-          {
-            type: 'date',
-            required: true,
-            message: '请选择时间',
-            trigger: 'change'
-          }
-        ],
-        type: [
+        occurs_list: [
           {
             type: 'array',
             required: true,
-            message: '请至少选择一个活动性质',
+            message: '请选择发生境',
             trigger: 'change'
           }
-        ],
-        resource: [
-          { required: true, message: '请选择活动资源', trigger: 'change' }
-        ],
-        desc: [{ required: true, message: '请填写活动形式', trigger: 'blur' }]
+        ]
       },
       habitatList: [
         {
@@ -438,7 +438,50 @@ export default {
     submitForm(formName) {
       this.$refs[formName].validate(valid => {
         if (valid) {
-          alert('submit!');
+          this.dialogSubmitLoading = true;
+
+          if (!this.baseForm.inspect_id) {
+            // 添加
+            const payload = omit(this.baseForm, ['inspect_id']);
+            this.$axios({
+              method: 'POST',
+              url: '/api/api_gateway?method=data_report.info.inspect_add',
+              data: this.qs.stringify(payload)
+            })
+              .then(res => {
+                this.$message({
+                  type: 'success',
+                  message: '新增成功!',
+                  duration: 1500
+                });
+                this.resetForm(formName);
+                this.search();
+              })
+              .finally(() => {
+                this.dialogSubmitLoading = false;
+              });
+          } else {
+            // 编辑
+            // 添加
+            const payload = omit(this.baseForm, ['check_time']);
+            this.$axios({
+              method: 'POST',
+              url: '/api/api_gateway?method=data_report.info.inspect_modify',
+              data: this.qs.stringify(payload)
+            })
+              .then(res => {
+                this.$message({
+                  type: 'success',
+                  message: '更新成功!',
+                  duration: 1500
+                });
+                this.resetForm(formName);
+                this.search();
+              })
+              .finally(() => {
+                this.dialogSubmitLoading = false;
+              });
+          }
         } else {
           console.log('error submit!!');
           return false;

+ 219 - 88
minggao/src/page/recordForm/samplePlot.vue

@@ -1,4 +1,4 @@
-<!-- 样地调查表  -->
+<!-- 样地调查表 外来入侵 -->
 <template>
   <div class="form-page">
     <div class="form-page__search">
@@ -20,22 +20,7 @@
             >
             </el-option>
           </el-select>
-          <el-select
-            v-model="queryInfo.user_name"
-            placeholder="请选择调查人"
-            size="mini"
-            clearable
-            @change="search"
-            filterable
-          >
-            <el-option
-              v-for="item in organizationList"
-              :key="item.org_name"
-              :label="item.org_name"
-              :value="item.org_name"
-            >
-            </el-option>
-          </el-select>
+          <UserIDSelectComponent v-model="queryInfo.user_id" />
           <el-date-picker
             v-model="queryInfo.select_time"
             type="date"
@@ -68,25 +53,35 @@
             </template>
           </el-table-column>
           <el-table-column
-            prop="trap_number"
-            label="样本编号"
+            prop="sample_addr"
+            label="标准样地地点"
           ></el-table-column>
-          <el-table-column prop="point_name" label="样本名称">
-          </el-table-column>
-          <el-table-column prop="inducer_type" label="标识"> </el-table-column>
-          <el-table-column prop="pest_type_num" label="数量"> </el-table-column>
-          <el-table-column prop="pest_number" label="检测项目与方法">
-          </el-table-column>
-          <el-table-column prop="user_name" label="形态学鉴定">
+          <el-table-column
+            prop="sample_num"
+            label="标准样地编号"
+          ></el-table-column>
+          <el-table-column
+            prop="sample_area"
+            label="样地面积"
+          ></el-table-column>
+          <el-table-column prop="lng" label="经度"> </el-table-column>
+          <el-table-column prop="lat" label="纬度"> </el-table-column>
+          <el-table-column prop="height" label="海拔"> </el-table-column>
+          <el-table-column prop="occurs" label="发生境"> </el-table-column>
+          <el-table-column prop="pest_name" label="物种名称"> </el-table-column>
+          <el-table-column prop="pest_name_2" label="当地俗名">
           </el-table-column>
-          <el-table-column prop="operation_type" label="分子生物学鉴定">
+          <el-table-column prop="is_check" label="是否需要辅助调查">
           </el-table-column>
-          <el-table-column prop="operation_type" label="鉴定结果">
+          <el-table-column prop="harm_obj" label="危害对象"> </el-table-column>
+          <el-table-column prop="harm_place" label="危害部位">
           </el-table-column>
-          <el-table-column prop="operation_type" label="备注">
+          <el-table-column prop="is_gather" label="是否采集样本">
           </el-table-column>
-          <el-table-column prop="report_time" label="鉴定时间" width="200">
+          <el-table-column prop="user_name" label="调查人"> </el-table-column>
+          <el-table-column prop="submit_time" label="调查时间">
           </el-table-column>
+
           <el-table-column label="操作" width="200">
             <template slot-scope="scope">
               <el-button type="info" size="mini" @click="handleEdit(scope.row)">
@@ -116,57 +111,59 @@
       :close-on-press-escape="false"
     >
       <el-form
-        :model="ruleForm"
+        :model="baseForm"
         :rules="rules"
-        ref="ruleForm"
+        ref="baseForm"
         label-width="140px"
       >
-        <el-form-item label-width="20px">
+        <el-form-item label-width="20px" v-if="baseForm.as_id">
           <el-descriptions>
-            <el-descriptions-item label="调查人">张三</el-descriptions-item>
-            <el-descriptions-item label="调查时间"
-              >2023年2月15日</el-descriptions-item
-            >
+            <el-descriptions-item label="调查人">{{
+              baseForm.user_name
+            }}</el-descriptions-item>
+            <el-descriptions-item label="调查时间">{{
+              baseForm.submit_time
+            }}</el-descriptions-item>
           </el-descriptions>
         </el-form-item>
 
         <!-- start -->
         <el-row :gutter="20">
           <el-col :span="8">
-            <el-form-item label="标准样地地点:" prop="desc">
-              <el-input v-model="ruleForm.desc"></el-input>
+            <el-form-item label="标准样地地点:" prop="sample_addr">
+              <el-input v-model="baseForm.sample_addr"></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="8">
-            <el-form-item label="标准样地编号:" prop="region">
-              <el-input v-model="ruleForm.desc"></el-input>
+            <el-form-item label="标准样地编号:" prop="sample_num">
+              <el-input v-model="baseForm.sample_num"></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="8">
-            <el-form-item label="标准样地面积:" prop="region">
-              <el-input v-model="ruleForm.desc"></el-input>
+            <el-form-item label="标准样地面积:" prop="sample_area">
+              <el-input v-model="baseForm.sample_area"></el-input>
             </el-form-item>
           </el-col>
         </el-row>
         <el-row :gutter="20">
           <el-col :span="8">
-            <el-form-item label="经度:" prop="desc">
-              <el-input v-model="ruleForm.desc"></el-input>
+            <el-form-item label="经度:" prop="lng">
+              <el-input v-model="baseForm.lng"></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="8">
-            <el-form-item label="纬度:" prop="region">
-              <el-input v-model="ruleForm.desc"></el-input>
+            <el-form-item label="纬度:" prop="lat">
+              <el-input v-model="baseForm.lat"></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="8">
-            <el-form-item label="海拔:" prop="region">
-              <el-input v-model="ruleForm.desc"></el-input>
+            <el-form-item label="海拔:" prop="height">
+              <el-input v-model="baseForm.height"></el-input>
             </el-form-item>
           </el-col>
         </el-row>
-        <el-form-item label="发生生境:" prop="desc">
-          <el-checkbox-group v-model="ruleForm.addressList">
+        <el-form-item label="发生生境:" prop="occurs_list">
+          <el-checkbox-group v-model="baseForm.occurs_list">
             <el-row v-for="item in habitatList" :key="item.value">
               <el-col>
                 <el-checkbox :label="item.value">{{ item.label }}</el-checkbox>
@@ -193,97 +190,104 @@
         </el-form-item>
         <el-row :gutter="20">
           <el-col :span="8">
-            <el-form-item label="物体名称(中文):" prop="desc">
-              <el-input v-model="ruleForm.desc"></el-input>
+            <el-form-item label="物种名称(中文):" prop="pest_name">
+              <el-input v-model="baseForm.pest_name"></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="8">
-            <el-form-item label="拉丁学名:" prop="region">
-              <el-input v-model="ruleForm.desc"></el-input>
+            <el-form-item label="拉丁学名:" prop="pest_name_2">
+              <el-input v-model="baseForm.pest_name_2"></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="8">
-            <el-form-item label="当地俗名:" prop="region">
-              <el-input v-model="ruleForm.desc"></el-input>
+            <el-form-item label="当地俗名:" prop="pest_name_3">
+              <el-input v-model="baseForm.pest_name_3"></el-input>
             </el-form-item>
           </el-col>
         </el-row>
         <el-row :gutter="20">
           <el-col :span="8">
-            <el-form-item label="是否需要辅助调查:" prop="desc">
-              <el-input v-model="ruleForm.desc"></el-input>
+            <el-form-item label="是否需要辅助调查:" prop="is_check">
+              <el-input v-model="baseForm.is_check"></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="8">
-            <el-form-item label="危害对象:" prop="region">
-              <el-input v-model="ruleForm.desc"></el-input>
+            <el-form-item label="危害对象:" prop="harm_obj">
+              <el-input v-model="baseForm.harm_obj"></el-input>
             </el-form-item>
           </el-col>
         </el-row>
         <el-row :gutter="20">
           <el-col :span="8">
-            <el-form-item label="危害植物:" prop="desc">
-              <el-input v-model="ruleForm.desc"></el-input>
+            <el-form-item label="危害植物:" prop="harm_crop">
+              <el-input v-model="baseForm.harm_crop"></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="8">
-            <el-form-item label="危害部位:" prop="region">
-              <el-input v-model="ruleForm.desc"></el-input>
+            <el-form-item label="危害部位:" prop="harm_place">
+              <el-input v-model="baseForm.harm_place"></el-input>
             </el-form-item>
           </el-col>
         </el-row>
-        <el-table :data="ruleForm.tableList" border style="margin-bottom:20px;">
+        <el-table :data="baseForm.tableList" border style="margin-bottom:20px;">
           <el-table-column label="样方/样线编号" align="center">
             <template slot-scope="scope">
-              <el-checkbox :label="scope.row.id"></el-checkbox>
+              {{ scope.row.row_name }}
             </template>
           </el-table-column>
           <el-table-column label="1" align="center" width="120">
             <template slot-scope="scope">
-              <el-checkbox :label="scope.row.id"></el-checkbox>
+              <el-input v-model="scope.row.num1"></el-input>
             </template>
           </el-table-column>
           <el-table-column label="2" align="center" width="120">
             <template slot-scope="scope">
-              <el-checkbox :label="scope.row.id"></el-checkbox>
+              <el-input v-model="scope.row.num1"></el-input>
             </template>
           </el-table-column>
           <el-table-column label="3" align="center" width="120">
             <template slot-scope="scope">
-              <el-checkbox :label="scope.row.id"></el-checkbox>
+              <el-input v-model="scope.row.num1"></el-input>
             </template>
           </el-table-column>
           <el-table-column label="4" align="center" width="120">
             <template slot-scope="scope">
-              <el-checkbox :label="scope.row.id"></el-checkbox>
+              <el-input v-model="scope.row.num1"></el-input>
             </template>
           </el-table-column>
           <el-table-column label="5" align="center" width="120">
             <template slot-scope="scope">
-              <el-checkbox :label="scope.row.id"></el-checkbox>
+              <el-input v-model="scope.row.num1"></el-input>
             </template>
           </el-table-column>
           <el-table-column label="平均值" align="center" width="120">
             <template slot-scope="scope">
-              <el-checkbox :label="scope.row.id"></el-checkbox>
+              <el-input v-model="scope.row.num1"></el-input>
             </template>
           </el-table-column>
         </el-table>
         <el-row :gutter="20">
           <el-col :span="8">
-            <el-form-item label="是否采集标本:" prop="desc">
-              <el-input v-model="ruleForm.desc"></el-input>
+            <el-form-item label="是否采集标本:" prop="is_gather">
+              <el-switch
+                v-model="baseForm.is_gather"
+                active-color="#13ce66"
+                inactive-color="#ff4949"
+                active-value="是"
+                inactive-value="否"
+              >
+              </el-switch>
             </el-form-item>
           </el-col>
         </el-row>
         <!-- end -->
       </el-form>
       <span slot="footer" class="dialog-footer">
-        <el-button @click="resetForm('ruleForm')">取 消</el-button>
+        <el-button @click="resetForm('baseForm')">取 消</el-button>
         <el-button
           :disabled="dialogSubmitLoading"
           type="primary"
-          @click="submitForm('ruleForm')"
+          @click="submitForm('baseForm')"
           >确定</el-button
         >
       </span>
@@ -292,8 +296,10 @@
 </template>
 
 <script>
+import UserIDSelectComponent from './components/userSelect.vue';
+
 export default {
-  components: {},
+  components: { UserIDSelectComponent },
   data() {
     //这里存放数据
     return {
@@ -301,7 +307,7 @@ export default {
         page: 1,
         select_time: '', //
         org_name: '', //
-        user_name: '' //
+        user_id: '' //
       },
       tableData: [],
       total: 10,
@@ -322,6 +328,90 @@ export default {
         addressList: [],
         tableList: []
       },
+      baseForm: {
+        as_id: '', //id
+        sample_addr: '', // 标准样地地点
+        sample_num: '', // 标准样地编号
+        lng: '', // 经度,
+        lat: '', // 纬度,
+        height: '', // 海拔
+        sample_area: '', //标准样地面积
+        occurs: '', // 发生境
+        occurs_list: [],
+        pest_name: '', //物种名称
+        pest_name_2: '', //拉丁学名
+        pest_name_3: '', //当地俗名
+        is_check: '是', // 是否需要辅助调查    是/否
+        harm_obj: '', //危害对象
+        harm_crop: '', //危害植物
+        sample_no_1: '1', // 样方/样线编号1
+        check_num_1: '', // 调查株数/样线长度
+        harm_num_1: '', // 受害株数
+        harm_rate_1: '', // 危害率
+        sample_no_2: '2', // 样方/样线编号2
+        check_num_2: '', // 调查株数/样线长度
+        harm_num_2: '', // 受害株数
+        harm_rate_2: '', // 危害率
+        sample_no_3: '3', // 样方/样线编号3
+        check_num_3: '', // 调查株数/样线长度
+        harm_num_3: '', // 受害株数
+        harm_rate_3: '', // 危害率
+        sample_no_4: '4', // 样方/样线编号4
+        check_num_4: '', // 调查株数/样线长度
+        harm_num_4: '', // 受害株数
+        harm_rate_4: '', // 危害率
+        sample_no_5: '5', // 样方/样线编号5
+        check_num_5: '', // 调查株数/样线长度
+        harm_num_5: '', // 受害株数
+        harm_rate_5: '', // 危害率
+        sample_no_6: '6', // 样方/样线编号 平均值
+        check_num_6: '', // 调查株数/样线长度
+        harm_num_6: '', // 受害株数
+        harm_rate_6: '', // 危害率
+        harm_place: '', // 危害部位
+        is_gather: '是', //  是否采集标本 是/否
+        tableList: [
+          // {
+          //    row_key: 'sample_no',
+          //   sample_no_1: '',
+          //   sample_no_2: '',
+          //   sample_no_3: '',
+          //   sample_no_4: '',
+          //   sample_no_5: '',
+          //   sample_no_6: '',
+          // },
+          {
+            row_name: '调查株数/样线长度',
+            row_key: 'check_num',
+            num_1: '',
+            num_2: '',
+            num_3: '',
+            num_4: '',
+            num_5: '',
+            num_6: ''
+          },
+          {
+            row_name: '受害株数/受害病株所垮长度',
+            row_key: 'harm_num',
+            num_1: '',
+            num_2: '',
+            num_3: '',
+            num_4: '',
+            num_5: '',
+            num_6: ''
+          },
+          {
+            row_name: '危害率(%)',
+            row_key: 'harm_rate',
+            num_1: '',
+            num_2: '',
+            num_3: '',
+            num_4: '',
+            num_5: '',
+            num_6: ''
+          }
+        ]
+      },
       rules: {
         name: [
           { required: true, message: '请输入活动名称', trigger: 'blur' },
@@ -432,20 +522,17 @@ export default {
   //方法集合
   methods: {
     getDataList() {
-      //获取设备列表
+      //列表
       this.loading = true;
       this.$axios({
         method: 'POST',
-        url: '/api/api_gateway?method=data_report.report.get_trap_list',
+        url: '/api/api_gateway?method=data_report.info.alien_specie_list',
         data: this.qs.stringify({
           page_item: 20,
           page: this.queryInfo.page,
-          trap_number: this.queryInfo.trap_number, //              非必传(string)               设备编号 搜索项
-          point_name: this.queryInfo.point_name, //                  非必传(string)               设备所属监测点 搜索项
-          org_name: this.queryInfo.org_name, //                    非必传(string)               设备所属组织   搜索项
-          user_name: this.queryInfo.user_name, //                   非必传(string)               填报人名字 搜索项
-          start_time: this.queryInfo.start_time, //                  非必传(string)               开始时间 搜索项
-          end_time: this.queryInfo.end_time //                    非必传(string)               结束时间 搜索项
+          user_id: this.queryInfo.user_id, //
+          select_time: this.queryInfo.select_time, //
+          org_name: this.queryInfo.org_name //
         })
       }).then(res => {
         this.loading = false;
@@ -476,7 +563,51 @@ export default {
     submitForm(formName) {
       this.$refs[formName].validate(valid => {
         if (valid) {
-          alert('submit!');
+          this.dialogSubmitLoading = true;
+
+          if (!this.baseForm.as_id) {
+            // 添加
+            const payload = omit(this.baseForm, ['as_id']);
+            this.$axios({
+              method: 'POST',
+              url: '/api/api_gateway?method=data_report.info.alien_specie_add',
+              data: this.qs.stringify(payload)
+            })
+              .then(res => {
+                this.$message({
+                  type: 'success',
+                  message: '新增成功!',
+                  duration: 1500
+                });
+                this.resetForm(formName);
+                this.search();
+              })
+              .finally(() => {
+                this.dialogSubmitLoading = false;
+              });
+          } else {
+            // 编辑
+            // 添加
+            const payload = omit(this.baseForm, ['check_time']);
+            this.$axios({
+              method: 'POST',
+              url:
+                '/api/api_gateway?method=data_report.info.alien_specie_modify',
+              data: this.qs.stringify(payload)
+            })
+              .then(res => {
+                this.$message({
+                  type: 'success',
+                  message: '更新成功!',
+                  duration: 1500
+                });
+                this.resetForm(formName);
+                this.search();
+              })
+              .finally(() => {
+                this.dialogSubmitLoading = false;
+              });
+          }
         } else {
           console.log('error submit!!');
           return false;

+ 122 - 71
minggao/src/page/recordForm/trapRecord.vue

@@ -20,22 +20,7 @@
             >
             </el-option>
           </el-select>
-          <el-select
-            v-model="queryInfo.user_name"
-            placeholder="请选择调查人"
-            size="mini"
-            clearable
-            @change="search"
-            filterable
-          >
-            <el-option
-              v-for="item in organizationList"
-              :key="item.org_name"
-              :label="item.org_name"
-              :value="item.org_name"
-            >
-            </el-option>
-          </el-select>
+          <UserIDSelectComponent v-model="queryInfo.user_id" />
           <el-date-picker
             v-model="queryInfo.select_time"
             type="date"
@@ -68,29 +53,28 @@
             </template>
           </el-table-column>
           <el-table-column
-            prop="trap_number"
+            prop="sample_addr"
             label="标准样地地点"
           ></el-table-column>
           <el-table-column
-            prop="trap_number"
+            prop="sample_num"
             label="标准样地编号"
           ></el-table-column>
           <el-table-column
-            prop="trap_number"
+            prop="sample_area"
             label="标准样地面积(亩)"
           ></el-table-column>
-          <el-table-column prop="trap_number" label="经度"></el-table-column>
-          <el-table-column prop="trap_number" label="纬度"></el-table-column>
-          <el-table-column prop="trap_number" label="海拔"></el-table-column>
-          <el-table-column prop="point_name" label="诱虫灯设备名称">
+          <el-table-column prop="lng" label="经度"></el-table-column>
+          <el-table-column prop="lat" label="纬度"></el-table-column>
+          <el-table-column prop="height" label="海拔"></el-table-column>
+          <el-table-column prop="trap_number" label="诱虫灯设备名称">
           </el-table-column>
-          <el-table-column prop="inducer_type" label="诱剂名称成分">
+          <el-table-column prop="inducer_name" label="诱剂名称成分">
           </el-table-column>
           <el-table-column prop="pest_type_num" label="入侵害虫种类">
           </el-table-column>
-          <el-table-column prop="pest_type_num" label="调查人">
-          </el-table-column>
-          <el-table-column prop="report_time" label="提交时间" width="200">
+          <el-table-column prop="user_name" label="调查人"> </el-table-column>
+          <el-table-column prop="submit_time" label="提交时间" width="200">
           </el-table-column>
           <el-table-column label="操作" width="150">
             <template slot-scope="scope">
@@ -121,64 +105,66 @@
       :close-on-press-escape="false"
     >
       <el-form
-        :model="ruleForm"
+        :model="baseForm"
         :rules="rules"
-        ref="ruleForm"
+        ref="baseForm"
         label-width="140px"
       >
-        <el-form-item label-width="20px">
+        <el-form-item label-width="20px" v-if="baseForm.tc_id">
           <el-descriptions>
-            <el-descriptions-item label="调查人">张三</el-descriptions-item>
-            <el-descriptions-item label="调查时间"
-              >2023年2月15日</el-descriptions-item
-            >
+            <el-descriptions-item label="调查人">{{
+              baseForm.user_name
+            }}</el-descriptions-item>
+            <el-descriptions-item label="调查时间">{{
+              baseForm.submit_time
+            }}</el-descriptions-item>
           </el-descriptions>
         </el-form-item>
 
         <el-card border style="margin-bottom:20px;">
           <el-row :gutter="20">
             <el-col :span="8">
-              <el-form-item label="标准样地:" prop="desc">
-                <el-input v-model="ruleForm.desc"></el-input>
+              <el-form-item label="标准样地:" prop="sample_addr">
+                <el-input v-model="baseForm.sample_addr"></el-input>
               </el-form-item>
             </el-col>
             <el-col :span="8">
-              <el-form-item label="样地编号:" prop="region">
-                <el-input v-model="ruleForm.desc"></el-input>
+              <el-form-item label="样地编号:" prop="sample_num">
+                <el-input v-model="baseForm.sample_num"></el-input>
               </el-form-item>
             </el-col>
             <el-col :span="8">
-              <el-form-item label="样地面积:" prop="region">
-                <el-input v-model="ruleForm.desc"></el-input>
+              <el-form-item label="样地面积:" prop="sample_area">
+                <el-input v-model="baseForm.sample_area"></el-input>
               </el-form-item>
             </el-col>
           </el-row>
           <el-row :gutter="20">
             <el-col :span="8">
-              <el-form-item label="经度:" prop="desc">
-                <el-input v-model="ruleForm.desc"></el-input>
+              <el-form-item label="经度:" prop="lng">
+                <el-input v-model="baseForm.lng"></el-input>
               </el-form-item>
             </el-col>
             <el-col :span="8">
-              <el-form-item label="纬度:" prop="region">
-                <el-input v-model="ruleForm.desc"></el-input>
+              <el-form-item label="纬度:" prop="lat">
+                <el-input v-model="baseForm.lat"></el-input>
               </el-form-item>
             </el-col>
             <el-col :span="8">
-              <el-form-item label="海拔:" prop="region">
-                <el-input v-model="ruleForm.desc"></el-input>
+              <el-form-item label="海拔:" prop="height">
+                <el-input v-model="baseForm.height"></el-input>
               </el-form-item>
             </el-col>
           </el-row>
           <el-row :gutter="20">
             <el-col :span="8">
-              <el-form-item label="诱虫灯设备名称:" prop="desc">
-                <el-input v-model="ruleForm.desc"></el-input>
+              <el-form-item label="诱虫灯设备名称:" prop="trap_number">
+                <el-input v-model="baseForm.trap_number"></el-input>
               </el-form-item>
             </el-col>
             <el-col :span="8">
-              <el-form-item label="引诱剂名称:" prop="region">
-                <el-input v-model="ruleForm.desc"></el-input>
+              <el-form-item label="引诱剂名称:" prop="inducer_name">
+                <el-input v-model="baseForm.inducer_name"></el-input>
               </el-form-item>
             </el-col>
           </el-row>
@@ -187,46 +173,46 @@
         <!-- start -->
         <el-card style="margin-bottom:20px;" bodered>
           <el-table
-            :data="ruleForm.tableList"
+            :data="baseForm.pest_list"
             border
             style="margin-bottom:20px;"
           >
             <el-table-column label="入侵害虫名称" align="center">
               <template slot-scope="scope">
                 <el-form-item
-                  :prop="'tableList.' + scope.$index + '.paymentIds'"
+                  :prop="'pest_list.' + scope.$index + '.pest_id'"
                   :rules="{
                     validator: validateArrayRequired,
                     trigger: 'change'
                   }"
                 >
-                  <el-input v-model="scope.row.desc"></el-input>
+                  <el-input v-model="scope.row.pest_name"></el-input>
                 </el-form-item>
               </template>
             </el-table-column>
             <el-table-column label="危害作物" align="center" width="120">
               <template slot-scope="scope">
-                <el-checkbox :label="scope.row.id"></el-checkbox>
+                <el-checkbox :label="scope.row.harm_crop"></el-checkbox>
               </template>
             </el-table-column>
             <el-table-column label="合计" align="center" width="120">
               <template slot-scope="scope">
-                <el-checkbox :label="scope.row.id"></el-checkbox>
+                <el-checkbox :label="scope.row.pest_total"></el-checkbox>
               </template>
             </el-table-column>
             <el-table-column label="雌" align="center" width="120">
               <template slot-scope="scope">
-                <el-checkbox :label="scope.row.id"></el-checkbox>
+                <el-checkbox :label="scope.row.female_num"></el-checkbox>
               </template>
             </el-table-column>
             <el-table-column label="雄" align="center" width="120">
               <template slot-scope="scope">
-                <el-checkbox :label="scope.row.id"></el-checkbox>
+                <el-checkbox :label="scope.row.male_num"></el-checkbox>
               </template>
             </el-table-column>
             <el-table-column label="备注" align="center" width="120">
               <template slot-scope="scope">
-                <el-checkbox :label="scope.row.id"></el-checkbox>
+                <el-checkbox :label="scope.row.remarks"></el-checkbox>
               </template>
             </el-table-column>
           </el-table>
@@ -234,11 +220,11 @@
         <!-- end -->
       </el-form>
       <span slot="footer" class="dialog-footer">
-        <el-button @click="resetForm('ruleForm')">取 消</el-button>
+        <el-button @click="resetForm('baseForm')">取 消</el-button>
         <el-button
           :disabled="dialogSubmitLoading"
           type="primary"
-          @click="submitForm('ruleForm')"
+          @click="submitForm('baseForm')"
           >确定</el-button
         >
       </span>
@@ -247,8 +233,10 @@
 </template>
 
 <script>
+import UserIDSelectComponent from './components/userSelect.vue';
+
 export default {
-  components: {},
+  components: { UserIDSelectComponent },
   data() {
     //这里存放数据
     return {
@@ -256,7 +244,7 @@ export default {
         page: 1,
         select_time: '', //
         org_name: '', //
-        user_name: '' //
+        user_id: '' //
       },
       tableData: [],
       total: 10,
@@ -275,7 +263,30 @@ export default {
         desc: '',
         // new
         addressList: [],
-        tableList: []
+        pest_list: []
+      },
+      baseForm: {
+        tc_id: '', //id
+        sample_addr: '', // 标准样地地点
+        sample_num: '', // 标准样地编号
+        sample_area: '', //标准样地面积
+        lng: '', // 经度,
+        lat: '', // 纬度,
+        height: '', // 海拔
+        trap_number: '', // 诱捕器编号
+        inducer_name: '', // 诱剂名称
+        pest_list: []
+        /**
+					 * {
+						 pest_id //害虫id
+						 pest_name // 害虫名称
+						 harm_crop // 危害农作物
+						 pest_total // 害虫总数
+						 male_num // 雄性数量
+						 female_num // 雌性数量
+						 remarks // 备注
+					 }
+					 */
       },
       rules: {
         name: [
@@ -391,16 +402,13 @@ export default {
       this.loading = true;
       this.$axios({
         method: 'POST',
-        url: '/api/api_gateway?method=data_report.report.get_trap_list',
+        url: '/api/api_gateway?method=data_report.info.trap_check_list',
         data: this.qs.stringify({
           page_item: 20,
           page: this.queryInfo.page,
-          trap_number: this.queryInfo.trap_number, //              非必传(string)               设备编号 搜索项
-          point_name: this.queryInfo.point_name, //                  非必传(string)               设备所属监测点 搜索项
-          org_name: this.queryInfo.org_name, //                    非必传(string)               设备所属组织   搜索项
-          user_name: this.queryInfo.user_name, //                   非必传(string)               填报人名字 搜索项
-          start_time: this.queryInfo.start_time, //                  非必传(string)               开始时间 搜索项
-          end_time: this.queryInfo.end_time //                    非必传(string)               结束时间 搜索项
+          user_id: this.queryInfo.user_id, //
+          org_name: this.queryInfo.org_name, //
+          select_time: this.queryInfo.select_time //
         })
       }).then(res => {
         this.loading = false;
@@ -431,7 +439,50 @@ export default {
     submitForm(formName) {
       this.$refs[formName].validate(valid => {
         if (valid) {
-          alert('submit!');
+          this.dialogSubmitLoading = true;
+
+          if (!this.baseForm.tc_id) {
+            // 添加
+            const payload = omit(this.baseForm, ['tc_id']);
+            this.$axios({
+              method: 'POST',
+              url: '/api/api_gateway?method=data_report.info.trap_check_add',
+              data: this.qs.stringify(payload)
+            })
+              .then(res => {
+                this.$message({
+                  type: 'success',
+                  message: '新增成功!',
+                  duration: 1500
+                });
+                this.resetForm(formName);
+                this.search();
+              })
+              .finally(() => {
+                this.dialogSubmitLoading = false;
+              });
+          } else {
+            // 编辑
+            // 添加
+            const payload = omit(this.baseForm, ['check_time']);
+            this.$axios({
+              method: 'POST',
+              url: '/api/api_gateway?method=data_report.info.trap_check_modify',
+              data: this.qs.stringify(payload)
+            })
+              .then(res => {
+                this.$message({
+                  type: 'success',
+                  message: '更新成功!',
+                  duration: 1500
+                });
+                this.resetForm(formName);
+                this.search();
+              })
+              .finally(() => {
+                this.dialogSubmitLoading = false;
+              });
+          }
         } else {
           console.log('error submit!!');
           return false;