소스 검색

2022/2/14

yf_zkl 3 년 전
부모
커밋
848b61ba09

+ 2 - 2
minggao/config/index.js

@@ -22,8 +22,8 @@ module.exports = {
     },
 
     // Various Dev Server settings
-    host: '192.168.1.4', // can be overwritten by process.env.HOST
-    port: 8881, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined
+    host: '192.168.137.1', // can be overwritten by process.env.HOST
+    port: 8888, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined
     autoOpenBrowser: false,
     errorOverlay: true,
     notifyOnErrors: true,

+ 7 - 2
minggao/package-lock.json

@@ -6625,7 +6625,8 @@
       "version": "2.3.1",
       "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
       "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
-      "dev": true
+      "dev": true,
+      "optional": true
     },
     "pify": {
       "version": "3.0.0",
@@ -11263,6 +11264,7 @@
           "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
           "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
           "dev": true,
+          "optional": true,
           "requires": {
             "is-extendable": "^0.1.0"
           }
@@ -11328,13 +11330,15 @@
           "version": "0.1.1",
           "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
           "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=",
-          "dev": true
+          "dev": true,
+          "optional": true
         },
         "is-number": {
           "version": "3.0.0",
           "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
           "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
           "dev": true,
+          "optional": true,
           "requires": {
             "kind-of": "^3.0.2"
           }
@@ -11344,6 +11348,7 @@
           "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
           "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
           "dev": true,
+          "optional": true,
           "requires": {
             "is-buffer": "^1.1.5"
           }

+ 107 - 27
minggao/src/page/commandCenter/laboratory.vue

@@ -155,7 +155,7 @@
             </span>
           </template>
         </el-table-column>
-        <el-table-column label="操作">
+        <el-table-column label="操作" fixed="right">
           <template slot-scope="scope">
             <a
               v-if="scope.row.discern_status == '待接收'"
@@ -203,14 +203,18 @@
       title="填报"
       v-loading="loading1"
       :visible.sync="dialogVisible"
-      width="30%"
+      width="50%"
       :close-on-click-modal="false"
       :close-on-press-escape="false"
     >
       <ul class="fill_ul">
         <li class="fill_listTlt">
-          <div class="fill_tltie">有害生物</div>
-          <div class="fill_tltie">数量</div>
+          <div class="fill_div">
+            <div class="fill_tltie">有害生物</div>
+            <div class="fill_tltie">
+              数量
+            </div>
+          </div>
         </li>
 
         <li class="fill_list1" v-if="fillList.length !== 0">
@@ -248,20 +252,30 @@
 
         <!-- 添加 -->
         <li class="fill_list">
-          <el-input
-            placeholder="请输入有害生物"
-            size="mini"
+          <el-select
+            style="margin: 0 0 0 -8px;"
             v-model="insectVal"
+            size="mini"
             clearable
-            style="width: 37%; margin: 0 0 0 -8px"
+            placeholder="请选择"
+            filterable
           >
-          </el-input>
+            <el-option
+              v-for="item1 in options2"
+              :key="item1.value"
+              :label="item1.label"
+              :value="item1.value"
+            >
+            </el-option>
+          </el-select>
 
           <el-input
             placeholder="请输入数量"
             size="mini"
             v-model="numVal"
             clearable
+            onkeypress="return (/[\d]/.test(String.fromCharCode(event.keyCode)));"
+            @keyup.native="proving2($event)"
             type="number"
             style="width: 30%"
           >
@@ -274,12 +288,6 @@
           >
         </li>
       </ul>
-      <!-- <span slot="footer" class="dialog-footer">
-        <el-button @click="dialogVisible = false">取 消</el-button>
-        <el-button type="primary" @click="compileInsect"
-          >确 定</el-button
-        >
-      </span> -->
     </el-dialog>
   </div>
 </template>
@@ -321,12 +329,8 @@ export default {
 
       // 填报弹框
       dialogVisible: false,
-      options1: [
-        {
-          value: "选项1",
-          label: "黄金糕"
-        }
-      ],
+      options1: [],
+      options2: [], //新增有害生物
       value2: "",
       input2: "",
       loading: false, // 加载
@@ -365,6 +369,11 @@ export default {
         this.fillList = [];
         this.spareData = []; // 备用数据
       }
+    },
+
+    // 填报 - 新添加数据
+    numValZ(val) {
+      console.log(val);
     }
   },
   //方法集合
@@ -541,6 +550,37 @@ export default {
           this.spareData = list; // 备用数据
           this.models = arr;
           this.dialogVisible = true;
+          this.addEditor(); // 新添加 - 编辑接口
+        })
+        .catch(err => {
+          console.log(err);
+        });
+    },
+
+    // 新添加 -编辑
+    addEditor() {
+      this.$axios({
+        method: "POST",
+        url: "/api/api_gateway?method=sysmenage.maintain.pest_list",
+        data: this.qs.stringify({
+          page: 1, // 页码
+          page_item: "1000000000000000000000000000", // 每页条目数,默认10
+          pest_name: "" // 有害生物
+        })
+      })
+        .then(res => {
+          if (res.data.data.total_item !== 0) {
+            var data = res.data.data;
+            var list = [];
+            for (var i = 0; i < data.page_list.length; i++) {
+              var obj = {};
+              obj["id"] = data.page_list[i].pest_id;
+              obj["value"] = data.page_list[i].pest_name;
+              obj["label"] = data.page_list[i].pest_name;
+              list.push(obj);
+            }
+            this.options2 = list;
+          }
         })
         .catch(err => {
           console.log(err);
@@ -720,6 +760,28 @@ export default {
             message: "已取消编辑"
           });
         });
+    },
+
+    getBit(value, bit) {
+      let str = Number(value);
+      str = str.toFixed(bit);
+      return str;
+    },
+    proving2(e) {
+      var keynum = window.event ? e.keyCode : e.which; //获取键盘码
+      var keychar = String.fromCharCode(keynum); //获取键盘码对应的字符
+      if (keynum == 189 || keynum == 109) {
+        //禁止输入负数
+        this.$message.warning("禁止输入负数");
+        e.target.value = 0;
+      }
+
+      if (String(e.target.value).indexOf("-") == -1) {
+      } else {
+        //禁止输入负数
+        this.$message.warning("禁止输入负数");
+        e.target.value = 0;
+      }
     }
   },
   //生命周期 - 创建完成(可以访问当前this实例)
@@ -754,6 +816,9 @@ export default {
     }
     .btn_box {
       margin: 0 0 0 15px;
+      // width: 50%;
+      display: flex;
+      justify-content: start;
     }
 
     /deep/.el-range-editor--mini.el-input__inner {
@@ -771,12 +836,18 @@ export default {
   // 填报弹框
   .fill_ul {
     .fill_listTlt {
-      display: flex;
-      width: 50%;
-      margin: 0 0 0 24px;
-      justify-content: space-between;
-      .fill_tltie {
-        margin: 0 0 10px 0;
+      width: 95%;
+      .fill_div {
+        width: 60%;
+        margin: 0 0 0 60px;
+        display: flex;
+        justify-content: space-between;
+
+        .fill_tltie {
+          margin: 0 0 10px 0;
+          width: 35%;
+          display: inline-block;
+        }
       }
     }
     .fill_list {
@@ -808,4 +879,13 @@ export default {
     overflow-y: auto;
   }
 }
+
+// 去除elementui input数字框里上下箭头
+/deep/ input::-webkit-outer-spin-button,
+/deep/ input::-webkit-inner-spin-button {
+  -webkit-appearance: none !important;
+}
+/deep/ input[type="number"] {
+  -moz-appearance: textfield !important;
+}
 </style>

+ 5 - 3
minggao/src/page/commandCenter/realTime.vue

@@ -67,7 +67,7 @@
                 >
               </template>
             </el-table-column>
-            <el-table-column label="操作" width="280">
+            <el-table-column label="操作" width="200" fixed="right">
               <template slot-scope="scope">
                 <span
                   style="
@@ -75,7 +75,7 @@
                     display: inline-block;
                     margin: 0 0 0 0;
                     position: absolute;
-                    left: -24px;
+                    left: 0;
                     top: 11px;
                   "
                 >
@@ -87,7 +87,7 @@
                     />
                   </el-badge>
                 </span>
-                <span style="position: absolute; top: 12px; left: 40px">
+                <span style="position: absolute; top: 12px; left: 60px">
                   <img
                     @click="videoAxios(scope.row)"
                     src="../../assets/images/realTime/shipin.png"
@@ -920,6 +920,8 @@ export default {
           margin: 0 15px 0 0;
         }
         .btn_box {
+          display: flex;
+          justify-content: start;
         }
       }
       a {

+ 8 - 5
minggao/src/page/commandCenter/supervise.vue

@@ -80,15 +80,15 @@
         <el-table-column prop="ind" label="序号" width="180"> </el-table-column>
         <el-table-column prop="supervisor_user" label="监督人" width="180">
         </el-table-column>
-        <el-table-column prop="supervisor_type" label="监督形式">
+        <el-table-column prop="supervisor_type" label="监督形式" width="180">
         </el-table-column>
-        <el-table-column prop="supervisor_depa" label="监督单位">
+        <el-table-column prop="supervisor_depa" label="监督单位" width="180">
         </el-table-column>
-        <el-table-column prop="supervisor_msg" label="监督情况">
+        <el-table-column prop="supervisor_msg" label="监督情况" width="380">
         </el-table-column>
-        <el-table-column prop="supervisor_time" label="监督时间">
+        <el-table-column prop="supervisor_time" label="监督时间" width="280">
         </el-table-column>
-        <el-table-column label="操作">
+        <el-table-column label="操作" fixed="right">
           <template slot-scope="scope">
             <a
               class="reset"
@@ -341,6 +341,9 @@ export default {
     }
     .btn_box {
       margin: 0 0 0 15px;
+      // width: 50%;
+      display: flex;
+      justify-content: start;
     }
 
     /deep/.el-range-editor--mini.el-input__inner {

+ 21 - 9
minggao/src/page/commandCenter/superviseAdmin.vue

@@ -108,21 +108,30 @@
         <el-table-column prop="ind" label="序号" width="80"> </el-table-column>
         <el-table-column prop="task_id" label="任务编号" width="100">
         </el-table-column>
-        <el-table-column prop="task_type" label="任务类型"> </el-table-column>
-        <el-table-column prop="operator_user" label="任务处理人">
+        <el-table-column prop="task_type" label="任务类型" width="180">
         </el-table-column>
-        <el-table-column prop="owner_user" label="任务发布人">
+        <el-table-column prop="operator_user" label="任务处理人" width="180">
         </el-table-column>
-        <el-table-column prop="supervisor_user" label="任务监督人">
+        <el-table-column prop="owner_user" label="任务发布人" width="180">
         </el-table-column>
-        <el-table-column prop="start_time" label="任务时间"></el-table-column>
-        <el-table-column prop="start_time" label="任务结束"></el-table-column>
-        <el-table-column prop="end_time" label="任务完成时间">
+        <el-table-column prop="supervisor_user" label="任务监督人" width="180">
+        </el-table-column>
+        <el-table-column
+          prop="start_time"
+          label="任务时间"
+          width="180"
+        ></el-table-column>
+        <el-table-column
+          prop="start_time"
+          label="任务结束"
+          width="180"
+        ></el-table-column>
+        <el-table-column prop="end_time" label="任务完成时间" width="180">
           <template slot-scope="scope">
             <span>{{ scope.row.end_time || "暂无" }}</span>
           </template>
         </el-table-column>
-        <el-table-column prop="task_status" label="任务状态">
+        <el-table-column prop="task_status" label="任务状态" width="180">
           <template slot-scope="scope">
             <div v-for="(item, index) in type_status" :key="index">
               <span
@@ -133,7 +142,7 @@
             </div>
           </template>
         </el-table-column>
-        <el-table-column label="操作">
+        <el-table-column label="操作" width="180" fixed="right">
           <template slot-scope="scope">
             <a
               class="reset"
@@ -428,6 +437,9 @@ export default {
     }
     .btn_box {
       margin: 0 0 0 15px;
+      // width: 50%;
+      display: flex;
+      justify-content: start;
     }
 
     /deep/.el-range-editor--mini.el-input__inner {

+ 82 - 46
minggao/src/page/commandCenter/superviseAdminDetails.vue

@@ -1,14 +1,16 @@
 <!--  -->
 <template>
   <div class="superviseAdminDetails_box">
-    <el-card :style="'height:' + fullHeight + 'px'">
-      <el-row>
+    <el-card :style="'height:' + fullHeight + 'px'" v-loading="loading">
+      <el-row v-if="taskObj.task_id">
         <!-- 任务信息 -->
         <el-col :span="24">
           <div class="list_box">
             <div class="list_tlt">
               <span>任务信息</span>
-              <el-button type="primary" size="mini">监督</el-button>
+              <el-button type="primary" size="mini" @click="overseer"
+                >监督</el-button
+              >
             </div>
 
             <ul class="list_ul">
@@ -157,32 +159,31 @@
     </el-dialog>
 
     <!-- 监督弹框 -->
-    <el-dialog title="监督" :visible.sync="superviseVisible" :close-on-click-modal="false" :close-on-press-escape="false" width="30%">
+    <el-dialog
+      title="监督"
+      :visible.sync="superviseVisible"
+      :close-on-click-modal="false"
+      :close-on-press-escape="false"
+      width="30%"
+    >
       <el-form
+        v-loading="loading2"
         :model="ruleForm2"
         :rules="rules2"
         ref="ruleForm2"
         label-width="100px"
         class="demo-ruleForm"
       >
-        <el-form-item label="活动区域" prop="region">
-          <el-select
-            size="mini"
-            v-model="ruleForm2.region"
-            placeholder="请选择活动区域"
-          >
-            <el-option label="区域一" value="shanghai"></el-option>
-            <el-option label="区域二" value="beijing"></el-option>
-          </el-select>
-        </el-form-item>
-        <el-form-item label="特殊资源" prop="resource">
+        <el-form-item label="监督形式" prop="resource">
           <el-radio-group v-model="ruleForm2.resource">
-            <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="desc">
+        <el-form-item label="监督单位" prop="region">
+          <el-input v-model="ruleForm2.region" size="mini"></el-input>
+        </el-form-item>
+        <el-form-item label="监督情况" prop="desc">
           <el-input type="textarea" v-model="ruleForm2.desc"></el-input>
         </el-form-item>
         <el-form-item>
@@ -215,6 +216,7 @@ export default {
     //这里存放数据
     return {
       fullHeight: document.documentElement.clientHeight - 116, //
+      loading: true, // 加载
 
       // 详情总数据
       taskObj: {},
@@ -230,27 +232,27 @@ export default {
         "1、今天做了检测完成任务了没有",
         "2、途中发生了什么事情",
         "3、对这次任务有什么总结",
-        "4、我对这次任务有哪些建议",
+        "4、我对这次任务有哪些建议"
       ],
 
       // 监督弹框
-      superviseVisible: true,
-
+      superviseVisible: false,
       // 监督弹框
       ruleForm2: {
-        region: "", // 活动区域  -- 监督形式
-        resource: "", // 特殊资源 -- 监督单位
-        desc: "", // 活动形式 -- 监督情况
+        resource: "", // 监督形式
+        region: "", // 监督单位
+        desc: "" // 监督情况
       },
       rules2: {
         region: [
-          { required: true, message: "请选择活动区域", trigger: "change" },
+          { required: true, message: "请选择活动区域", trigger: "change" }
         ],
         resource: [
-          { required: true, message: "请选择活动资源", trigger: "change" },
+          { required: true, message: "请选择活动资源", trigger: "change" }
         ],
-        desc: [{ required: true, message: "请填写活动形式", trigger: "blur" }],
+        desc: [{ required: true, message: "请填写活动形式", trigger: "blur" }]
       },
+      loading2: false //加载
     };
   },
   //监听属性 类似于data概念
@@ -263,12 +265,12 @@ export default {
         this.fullHeight = val;
         this.timer = true;
         let that = this;
-        setTimeout(function () {
+        setTimeout(function() {
           //防止过度调用监测事件,导致卡顿
           that.timer = false;
         }, 400);
       }
-    },
+    }
   },
   //方法集合
   methods: {
@@ -289,22 +291,20 @@ export default {
         method: "POST",
         url: "/api/api_gateway?method=control_center.task.task_info",
         data: this.qs.stringify({
-          task_id: this.$route.query.id,
-        }),
+          task_id: this.$route.query.id
+        })
       })
-        .then((res) => {
+        .then(res => {
           if (res.data.data) {
             var data = res.data.data;
             data.img_list = JSON.parse(data.img_list);
             this.taskObj = data;
             this.tableData = data.trap_record_list;
-            console.log(this.taskObj.img_list);
           }
           this.loading = false;
         })
-        .catch((err) => {
+        .catch(err => {
           this.loading = false;
-          console.log(err);
         });
     },
 
@@ -317,18 +317,54 @@ export default {
 
     // 监督
     superviseAxiso(formName) {
-      this.$refs[formName].validate((valid) => {
-          if (valid) {
-            alert('submit!');
-          } else {
-            console.log('error submit!!');
-            return false;
-          }
-        });
+      this.loading2 = true;
+      this.$refs[formName].validate(valid => {
+        if (valid) {
+          this.$axios({
+            method: "POST",
+            url: "/api/api_gateway?method=control_center.task.supervisor_add",
+            data: this.qs.stringify({
+              task_id: this.$route.query.id, //任务id
+              supervisor_type: this.ruleForm2.resource, // 监督类型
+              supervisor_depa: this.ruleForm2.region, // 监督部门
+              supervisor_msg: this.ruleForm2.desc // 监督内容
+            })
+          })
+            .then(res => {
+              if (res.data.data == true) {
+                this.$message({
+                  message: "成功!",
+                  type: "success",
+                  duration: 1500
+                });
+                this.superviseVisible = false;
+              }
+              this.loading2 = false;
+            })
+            .catch(err => {
+              this.$message({
+                message: "失败!",
+                type: "error",
+                duration: 1500
+              });
+            });
+          this.loading2 = false;
+        } else {
+          this.loading2 = false;
+          return false;
+        }
+      });
     },
 
     // 监督 - 取消
-    superviseSubmitForm(formName) {},
+    superviseSubmitForm(formName) {
+      this.$refs[formName].resetFields();
+    },
+
+    // 监督 - 弹框
+    overseer() {
+      this.superviseVisible = true;
+    }
   },
   //生命周期 - 创建完成(可以访问当前this实例)
   created() {},
@@ -344,7 +380,7 @@ export default {
   updated() {}, //生命周期 - 更新之后
   beforeDestroy() {}, //生命周期 - 销毁之前
   destroyed() {}, //生命周期 - 销毁完成
-  activated() {}, //如果页面有keep-alive缓存功能,这个函数会触发
+  activated() {} //如果页面有keep-alive缓存功能,这个函数会触发
 };
 </script>
 <style lang="less" scoped>

+ 145 - 57
minggao/src/page/commandCenter/superviseDetails.vue

@@ -1,46 +1,55 @@
 <!--  -->
 <template>
   <div class="superviseDetails_box">
-    <el-card :style="'height:' + fullHeight + 'px'">
-      <el-row>
+    <el-card :style="'height:' + fullHeight + 'px'" v-loading="loading">
+      <el-row v-if="taskObj.task_id">
         <!-- 监督信息 -->
         <el-col :span="24">
           <div class="list_box">
             <div class="list_tlt">
               <span>监督信息</span>
-              <el-button type="primary" size="mini">监督</el-button>
             </div>
 
             <ul class="list_ul">
               <li class="list_li">
                 <div class="list_div">
                   <span class="list_div_tlt">督查人:</span>
-                  <span class="list_div_val">有害生物</span>
+                  <span class="list_div_val">{{
+                    taskObj.actual_supervisor
+                  }}</span>
                 </div>
 
                 <div class="list_div">
                   <span class="list_div_tlt">任务监督人:</span>
-                  <span class="list_div_val">胡军</span>
+                  <span class="list_div_val">{{
+                    taskObj.supervisor_user
+                  }}</span>
                 </div>
 
                 <div class="list_div">
                   <span class="list_div_tlt">监督时间:</span>
-                  <span class="list_div_val">2022-01-14 16:00:00</span>
+                  <span class="list_div_val">{{
+                    taskObj.supervisor_time
+                  }}</span>
                 </div>
 
                 <div class="list_div">
                   <span class="list_div_tlt">监督形式:</span>
-                  <span class="list_div_val">胡适</span>
+                  <span class="list_div_val">{{
+                    taskObj.supervisor_type
+                  }}</span>
                 </div>
 
                 <div class="list_div">
                   <span class="list_div_tlt">监督单位:</span>
-                  <span class="list_div_val">刑天</span>
+                  <span class="list_div_val">{{
+                    taskObj.supervisor_depa
+                  }}</span>
                 </div>
 
                 <div class="list_div">
                   <span class="list_div_tlt">监督情况:</span>
-                  <span class="list_div_val">已完成</span>
+                  <span class="list_div_val">{{ taskObj.supervisor_msg }}</span>
                 </div>
               </li>
             </ul>
@@ -52,46 +61,48 @@
           <div class="list_box">
             <div class="list_tlt">
               <span>任务信息</span>
-              <el-button type="primary" size="mini">监督</el-button>
             </div>
 
             <ul class="list_ul">
               <li class="list_li">
                 <div class="list_div">
                   <span class="list_div_tlt">任务类型:</span>
-                  <span class="list_div_val">有害生物</span>
+                  <span class="list_div_val">{{ taskObj.task_type }}</span>
                 </div>
 
                 <div class="list_div">
                   <span class="list_div_tlt">任务监督人:</span>
-                  <span class="list_div_val">胡军</span>
+                  <span class="list_div_val">{{
+                    taskObj.supervisor_user
+                  }}</span>
                 </div>
 
                 <div class="list_div">
                   <span class="list_div_tlt">任务时间:</span>
-                  <span class="list_div_val">2022-01-14 16:00:00</span>
+                  <span class="list_div_val">{{ taskObj.start_time }}</span>
+                  <span v-if="taskObj.end_time">
+                    - {{ taskObj.end_time }}
+                  </span>
                 </div>
 
                 <div class="list_div">
                   <span class="list_div_tlt">任务发布人:</span>
-                  <span class="list_div_val">胡适</span>
+                  <span class="list_div_val">{{ taskObj.owner_user }}</span>
                 </div>
 
                 <div class="list_div">
                   <span class="list_div_tlt">任务处理人:</span>
-                  <span class="list_div_val">刑天</span>
+                  <span class="list_div_val">{{ taskObj.operator_user }}</span>
                 </div>
 
                 <div class="list_div">
                   <span class="list_div_tlt">任务状态:</span>
-                  <span class="list_div_val">已完成</span>
+                  <span class="list_div_val">{{ taskObj.task_status }}</span>
                 </div>
 
                 <div class="list_div">
-                  <span class="list_div_tlt">任务类型:</span>
-                  <span class="list_div_val"
-                    >去安徽监测点的诱捕器虫类手机一下,记得拍照</span
-                  >
+                  <span class="list_div_tlt">任务描述:</span>
+                  <span class="list_div_val">{{ taskObj.tesk_msg }}</span>
                 </div>
               </li>
             </ul>
@@ -107,17 +118,23 @@
               <li class="list_sing_li">
                 <div class="list_sing_div">
                   <span class="list_div_tlt">签到图片:</span>
-                  <span class="list_div_img">
-                    <img src="../../assets/images/newImg/12.jpg" alt="" />
-                  </span>
-                  <span class="list_div_img">
-                    <img src="../../assets/images/newImg/12.jpg" alt="" />
-                  </span>
+                  <p v-if="taskObj.img_list.length !== 0" style="display: flex">
+                    <span
+                      class="list_div_img"
+                      v-for="(item, index) in taskObj.img_list"
+                      :key="index"
+                    >
+                      <img v-viewer :src="item" alt="" />
+                    </span>
+                  </p>
+                  <span v-else>暂无签到图片</span>
                 </div>
 
                 <div class="list_sing_div">
                   <span class="list_div_tlt">签到时间:</span>
-                  <span class="list_div_val">2022-2-8 12:00:00</span>
+                  <span class="list_div_val">{{
+                    taskObj.end_time || "暂无"
+                  }}</span>
                 </div>
               </li>
             </ul>
@@ -125,17 +142,33 @@
         </el-col>
 
         <!-- 任务填报信息 -->
-        <el-col :span="24">
+        <el-col :span="24" v-if="taskObj.task_type == '有害生物监测'">
           <div class="list_box">
             <div class="list_tlt">任务填报信息</div>
             <ul class="list_table_ul">
               <li class="list_li">
                 <el-table :data="tableData" stripe style="width: 100%">
-                  <el-table-column prop="date" label="日期" width="180">
+                  <el-table-column prop="trap_number" label="设备编号">
                   </el-table-column>
-                  <el-table-column prop="name" label="姓名" width="180">
+                  <el-table-column prop="monitor_point" label="监测点">
                   </el-table-column>
-                  <el-table-column prop="address" label="地址">
+                  <el-table-column prop="inducer_type" label="诱剂">
+                  </el-table-column>
+                  <el-table-column prop="report_status" label="有害生物登记">
+                    <template slot-scope="scope">
+                      <span
+                        v-if="scope.row.report_status == '已登记'"
+                        @click="examine(scope.row)"
+                        style="color: #409eff; cursor: pointer"
+                        >查看</span
+                      >
+                      <span v-else>{{ scope.row.report_status || "无" }}</span>
+                    </template>
+                  </el-table-column>
+                  <el-table-column prop="report_time" label="录入时间">
+                    <template slot-scope="scope">
+                      <span>{{ scope.row.report_time || "无" }}</span>
+                    </template>
                   </el-table-column>
                 </el-table>
               </li>
@@ -149,14 +182,34 @@
             <div class="list_tlt">任务汇报</div>
 
             <ul class="list_report_ul">
-              <li class="list_report_li" v-for="item in reportList" :key="item">
-                {{ item }}
+              <li class="list_report_li">
+                {{ taskObj.report_msg || "暂无任务汇报" }}
               </li>
             </ul>
           </div>
         </el-col>
       </el-row>
     </el-card>
+
+    <!-- 填报信息弹框 -->
+    <el-dialog
+      :title="titleData"
+      :visible.sync="dialogVisible"
+      :close-on-click-modal="false"
+      :close-on-press-escape="false"
+      width="30%"
+    >
+      <ul class="insect_ul">
+        <li
+          class="insect_list"
+          v-for="(item, index) in insectList"
+          :key="index"
+        >
+          <div>{{ item.pest_name + ":" }}</div>
+          <div style="margin: 0 0 0 20px">{{ item.pest_number }}</div>
+        </li>
+      </ul>
+    </el-dialog>
   </div>
 </template>
 
@@ -168,30 +221,16 @@ export default {
     //这里存放数据
     return {
       fullHeight: document.documentElement.clientHeight - 116, //
+      loading: true, // 加载
+
+      // 详情总数据
+      taskObj: {},
 
       // 任务填报信息
-      tableData: [
-        {
-          date: "2016-05-02",
-          name: "王小虎",
-          address: "上海市普陀区金沙江路 1518 弄"
-        },
-        {
-          date: "2016-05-04",
-          name: "王小虎",
-          address: "上海市普陀区金沙江路 1517 弄"
-        },
-        {
-          date: "2016-05-01",
-          name: "王小虎",
-          address: "上海市普陀区金沙江路 1519 弄"
-        },
-        {
-          date: "2016-05-03",
-          name: "王小虎",
-          address: "上海市普陀区金沙江路 1516 弄"
-        }
-      ],
+      tableData: [],
+      dialogVisible: false, // 弹框
+      titleData: "", // 弹框标题
+      insectList: [], //害虫列表
 
       // 任务汇报
       reportList: [
@@ -230,12 +269,47 @@ export default {
           that.fullHeight = window.fullHeight;
         })();
       };
+    },
+
+    // 详情界面数据
+    detailsData() {
+      this.$axios({
+        method: "POST",
+        url: "/api/api_gateway?method=control_center.task.task_info",
+        data: this.qs.stringify({
+          task_id: this.$route.query.id
+        })
+      })
+        .then(res => {
+          if (res.data.data) {
+            var data = res.data.data;
+            data.img_list = JSON.parse(data.img_list);
+            this.taskObj = data;
+            this.tableData = data.trap_record_list;
+          }
+          this.loading = false;
+        })
+        .catch(err => {
+          this.loading = false;
+          console.log(err);
+        });
+    },
+
+    // 查看
+    examine(data) {
+      this.titleData = "设备编号:" + data.trap_number;
+      this.insectList = data.pest_list;
+      this.dialogVisible = true;
     }
   },
   //生命周期 - 创建完成(可以访问当前this实例)
   created() {},
   //生命周期 - 挂载完成(可以访问DOM元素)
-  mounted() {},
+  mounted() {
+    this.loading = true; //加载
+    this.get_boderHeight(); // 动态获取浏览器高度
+    this.detailsData(); // 详情界面数据
+  },
   beforeCreate() {}, //生命周期 - 创建之前
   beforeMount() {}, //生命周期 - 挂载之前
   beforeUpdate() {}, //生命周期 - 更新之前
@@ -278,7 +352,7 @@ export default {
         justify-content: space-between;
         .list_sing_div {
           margin: 0 0 25px 0;
-          width: 33%;
+          width: 40%;
           font-size: 14px;
           display: flex;
           color: #333333;
@@ -333,5 +407,19 @@ export default {
     overflow: hidden;
     overflow-y: auto;
   }
+
+  // 害虫弹框
+  .insect_ul {
+    .insect_list {
+      display: flex;
+      margin: 0 0 20px 0;
+      div {
+        font-size: 18px;
+        width: 20%;
+        text-align: right;
+        margin: 0px 0 0 -35px;
+      }
+    }
+  }
 }
 </style>

+ 14 - 8
minggao/src/page/commandCenter/superviseLog.vue

@@ -57,17 +57,20 @@
         stripe
         style="width: 100%"
       >
-        <el-table-column prop="ind" label="序号" width="180"> </el-table-column>
-        <el-table-column prop="owner_user" label="监测人员" width="180">
+        <el-table-column prop="ind" label="序号" width="100"> </el-table-column>
+        <el-table-column prop="owner_user" label="监测人员" width="200">
         </el-table-column>
-        <el-table-column prop="monitor_time" label="监测时间">
+        <el-table-column prop="monitor_time" label="监测时间" width="250">
         </el-table-column>
-        <el-table-column prop="weather" label="天气"> </el-table-column>
-        <el-table-column prop="temperature" label="温度"> </el-table-column>
-        <el-table-column prop="address" label="地点"> </el-table-column>
-        <el-table-column prop="monitor_time" label="提交时间">
+        <el-table-column prop="weather" label="天气" width="200">
         </el-table-column>
-        <el-table-column label="操作">
+        <el-table-column prop="temperature" label="温度" width="200">
+        </el-table-column>
+        <el-table-column prop="address" label="地点" width="280">
+        </el-table-column>
+        <el-table-column prop="monitor_time" label="提交时间" width="180">
+        </el-table-column>
+        <el-table-column label="操作" width="180" fixed="right">
           <template slot-scope="scope">
             <a
               href="javascript:;"
@@ -316,6 +319,9 @@ export default {
     }
     .btn_box {
       margin: 0 0 0 15px;
+      // width: 50%;
+      display: flex;
+      justify-content: start;
     }
 
     /deep/.el-range-editor--mini.el-input__inner {

+ 100 - 87
minggao/src/page/commandCenter/taskRegulator.vue

@@ -103,37 +103,47 @@
         stripe
         style="width: 100%"
       >
-        <el-table-column prop="ind" label="序号" width="80"> </el-table-column>
+        <el-table-column prop="ind" label="序号" width="80"></el-table-column>
         <el-table-column prop="task_id" label="任务编号" width="100">
         </el-table-column>
-        <el-table-column prop="task_type" label="任务类型"> </el-table-column>
-        <el-table-column prop="operator_user" label="任务处理人">
+        <el-table-column prop="task_type" label="任务类型" width="180">
         </el-table-column>
-        <el-table-column prop="owner_user" label="任务发布人">
+        <el-table-column prop="operator_user" label="任务处理人" width="180">
         </el-table-column>
-        <el-table-column prop="supervisor_user" label="任务监督人">
+        <el-table-column prop="owner_user" label="任务发布人" width="180">
         </el-table-column>
-        <el-table-column prop="start_time" label="任务时间"></el-table-column>
+        <el-table-column prop="supervisor_user" label="任务监督人" width="180">
+        </el-table-column>
+        <el-table-column
+          prop="start_time"
+          label="任务时间"
+          width="180"
+        ></el-table-column>
         <el-table-column
           prop="last_time"
           label="任务结束时间"
+          width="180"
         ></el-table-column>
-        <el-table-column prop="end_time" label="任务完成时间">
+        <el-table-column prop="end_time" label="任务完成时间" width="180">
           <template slot-scope="scope">
             <span>{{ scope.row.end_time || "暂无" }}</span>
           </template>
         </el-table-column>
-        <el-table-column prop="actual_operator" label="实际处理人">
+        <el-table-column prop="actual_operator" label="实际处理人" width="180">
           <template slot-scope="scope">
             <span>{{ scope.row.actual_operator || "暂无" }}</span>
           </template>
         </el-table-column>
-        <el-table-column prop="actual_supervisor" label="实际监督人">
+        <el-table-column
+          prop="actual_supervisor"
+          label="实际监督人"
+          width="180"
+        >
           <template slot-scope="scope">
             <span>{{ scope.row.actual_supervisor || "暂无" }}</span>
           </template>
         </el-table-column>
-        <el-table-column prop="task_status" label="任务状态">
+        <el-table-column prop="task_status" label="任务状态" width="180">
           <template slot-scope="scope">
             <div v-for="(item, index) in type_status" :key="index">
               <span
@@ -144,7 +154,7 @@
             </div>
           </template>
         </el-table-column>
-        <el-table-column label="操作">
+        <el-table-column fixed="right" label="操作" width="180">
           <template slot-scope="scope">
             <a
               class="reset"
@@ -474,24 +484,24 @@ export default {
       options2: [
         {
           value: "未开始",
-          label: "未开始",
+          label: "未开始"
         },
         {
           value: "处理中",
-          label: "处理中",
+          label: "处理中"
         },
         {
           value: "已完成",
-          label: "已完成",
+          label: "已完成"
         },
         {
           value: "未处理",
-          label: "未处理",
+          label: "未处理"
         },
         {
           value: "逾期完成",
-          label: "逾期完成",
-        },
+          label: "逾期完成"
+        }
       ], // 任务状态 - 列表
       value2: "", //时间筛选
       startTime: "", // 开始时间
@@ -509,24 +519,24 @@ export default {
       type_status: [
         {
           name: "未开始",
-          color: "#E6A23C",
+          color: "#E6A23C"
         },
         {
           name: "处理中",
-          color: "#E6A23C",
+          color: "#E6A23C"
         },
         {
           name: "已完成",
-          color: "#67C23A",
+          color: "#67C23A"
         },
         {
           name: "未处理",
-          color: "#F56C6C",
+          color: "#F56C6C"
         },
         {
           name: "逾期完成",
-          color: "#409EFF",
-        },
+          color: "#409EFF"
+        }
       ],
 
       // 新增任务弹框
@@ -540,52 +550,52 @@ export default {
         endTime: "", // 结束时间
         type: "", // 任务类型
         checkList: [], //诱捕器
-        desc: "", // 任务描述
+        desc: "" // 任务描述
       },
       rules: {
         region: [
-          { required: true, message: "请选择任务处理人", trigger: "change" },
+          { required: true, message: "请选择任务处理人", trigger: "change" }
         ],
         overseer: [
-          { required: true, message: "请选择任务监督人", trigger: "change" },
+          { required: true, message: "请选择任务监督人", trigger: "change" }
         ],
         date: [
-          { required: true, message: "请选择任务时间", trigger: "change" },
+          { required: true, message: "请选择任务时间", trigger: "change" }
         ],
         type: [
-          { required: true, message: "请选择任务类型", trigger: "change" },
+          { required: true, message: "请选择任务类型", trigger: "change" }
         ],
         checkList: [
-          { required: true, message: "请选择诱捕器", trigger: "change" },
-        ],
+          { required: true, message: "请选择诱捕器", trigger: "change" }
+        ]
         // desc: [{ required: true, message: "请填写任务描述", trigger: "blur" }]
       },
       // 任务类型
       typeList: [
         {
           value: "有害生物监测",
-          label: "有害生物监测",
+          label: "有害生物监测"
         },
         {
           value: "入境口岸监测调查",
-          label: "入境口岸监测调查",
+          label: "入境口岸监测调查"
         },
         {
           value: "外来有害杂草监测",
-          label: "外来有害杂草监测",
+          label: "外来有害杂草监测"
         },
         {
           value: "其他监测任务",
-          label: "其他监测任务",
+          label: "其他监测任务"
         },
         {
           value: "挂放",
-          label: "挂放",
+          label: "挂放"
         },
         {
           value: "维护",
-          label: "维护",
-        },
+          label: "维护"
+        }
       ],
 
       // 选择诱捕器
@@ -594,7 +604,7 @@ export default {
       deviceForm: {
         monitorDot: "", // 监测点
         tissue: "", // 组织
-        serial: "", // 设备编号
+        serial: "" // 设备编号
       },
       loading5: false, // 加载
       page2: 1, //当前页码
@@ -602,7 +612,7 @@ export default {
       checkList: [], // 已选中设备列表
       orgData: [], // 组织列表
       pointData: [], // 监测点列表
-      taskObj: {}, // 点击编辑获取到的任务数据
+      taskObj: {} // 点击编辑获取到的任务数据
     };
   },
   //监听属性 类似于data概念
@@ -624,7 +634,7 @@ export default {
         this.fullHeight = val;
         this.timer = true;
         let that = this;
-        setTimeout(function () {
+        setTimeout(function() {
           //防止过度调用监测事件,导致卡顿
           that.timer = false;
         }, 400);
@@ -671,7 +681,7 @@ export default {
           }
         }
       }
-    },
+    }
   },
   //方法集合
   methods: {
@@ -731,10 +741,10 @@ export default {
           owner_user_id: this.input2, // 任务发布id
           start_time: this.startTime, // 开始时间
           end_time: this.endTime, // 结束时间
-          task_status: this.value, // 任务状态
-        }),
+          task_status: this.value // 任务状态
+        })
       })
-        .then((res) => {
+        .then(res => {
           if (res.data.data.total_item !== 0) {
             var data = res.data.data.page_list;
             this.tableSum = res.data.data.total_item;
@@ -748,7 +758,7 @@ export default {
           }
           this.loading = false;
         })
-        .catch((err) => {
+        .catch(err => {
           this.loading = false;
           // console.log(err);
         });
@@ -759,8 +769,8 @@ export default {
       this.$router.push({
         path: "/index/taskRegulatorDetails",
         query: {
-          id: data.task_id,
-        },
+          id: data.task_id
+        }
       });
     },
 
@@ -774,9 +784,9 @@ export default {
         method: "POST",
         url: "/api/api_gateway?method=control_center.task.task_info",
         data: this.qs.stringify({
-          task_id: data.task_id,
-        }),
-      }).then((res) => {
+          task_id: data.task_id
+        })
+      }).then(res => {
         var data = res.data.data;
         this.ruleForm.region = data.operator_user; // 任务处理人
         this.ruleForm.overseer = data.supervisor_user; // 任务监督人
@@ -785,7 +795,7 @@ export default {
         this.ruleForm.desc = data.tesk_msg; //任务描述
         this.ybqCheckList = ""; // 诱捕器
         var list = [];
-        data.trap_record_list.forEach((item) => {
+        data.trap_record_list.forEach(item => {
           var obj = {};
           obj["name"] = item.trap_number;
           obj["id"] = item.trap_id;
@@ -803,22 +813,22 @@ export default {
       this.$confirm("此操作将永久删除该条任务, 是否继续?", "提示", {
         confirmButtonText: "确定",
         cancelButtonText: "取消",
-        type: "warning",
+        type: "warning"
       })
         .then(() => {
           this.$axios({
             method: "POST",
             url: "/api/api_gateway?method=control_center.task.task_delete",
             data: this.qs.stringify({
-              task_id: data.task_id,
-            }),
-          }).then((res) => {
+              task_id: data.task_id
+            })
+          }).then(res => {
             // console.log(res);
             if (res.data.data == true) {
               this.$message({
                 type: "success",
                 message: "删除成功!",
-                duration: 1500,
+                duration: 1500
               });
               this.tableData = [];
               this.loading = true;
@@ -830,7 +840,7 @@ export default {
           this.$message({
             type: "info",
             message: "已取消删除",
-            duration: 1500,
+            duration: 1500
           });
         });
     },
@@ -844,14 +854,14 @@ export default {
           user_type: type, // 用户类型,operator(任务处理人), supervisor(任务监督人), owner(任务发布人)
           operator_id: a, // 已经选择的任务处理人id
           supervisor_id: b, // 已经选择的任务监督人id
-          owner_id: c, // 已经选择的任务发布人id
-        }),
+          owner_id: c // 已经选择的任务发布人id
+        })
       })
-        .then((res) => {
+        .then(res => {
           if (res.data.data.length !== 0) {
             var data = res.data.data;
             var list = [];
-            data.forEach((item) => {
+            data.forEach(item => {
               var obj = {};
               obj["value"] = item.user_id;
               obj["label"] = item.real_name;
@@ -870,7 +880,7 @@ export default {
             }
           }
         })
-        .catch((err) => {});
+        .catch(err => {});
     },
 
     // 筛选列表 - 任务处理人、任务监督人
@@ -927,7 +937,7 @@ export default {
 
     // 新建任务 、 编辑任务 - 发布
     submitForm(formName) {
-      this.$refs[formName].validate((valid) => {
+      this.$refs[formName].validate(valid => {
         if (valid) {
           if (this.ruleForm.date) {
             this.ruleForm.startTime = this.formatTime(
@@ -955,9 +965,9 @@ export default {
                 task_type: this.ruleForm.type, // 任务类型
                 tesk_msg: this.ruleForm.desc, // 任务描述
                 // trap_id_list: JSON.stringify(this.checkList) // 诱捕器id列表
-                trap_id_list: JSON.stringify(this.ruleForm.checkList), // 诱捕器id列表
-              }),
-            }).then((res) => {
+                trap_id_list: JSON.stringify(this.ruleForm.checkList) // 诱捕器id列表
+              })
+            }).then(res => {
               // console.log(res);
               if (res.data.message == "") {
                 this.loading = true;
@@ -967,7 +977,7 @@ export default {
                 this.$message({
                   type: "success",
                   message: "新增成功!",
-                  duration: 1500,
+                  duration: 1500
                 });
               }
             });
@@ -982,9 +992,9 @@ export default {
                 task_type: this.ruleForm.type, // 任务类型
                 tesk_msg: this.ruleForm.desc, // 任务描述
                 // trap_id_list: JSON.stringify(this.checkList) // 诱捕器id列表
-                trap_id_list: JSON.stringify(this.ruleForm.checkList), // 诱捕器id列表
-              }),
-            }).then((res) => {
+                trap_id_list: JSON.stringify(this.ruleForm.checkList) // 诱捕器id列表
+              })
+            }).then(res => {
               // console.log(res);
               if (res.data.message == "") {
                 this.loading = true;
@@ -994,7 +1004,7 @@ export default {
                 this.$message({
                   type: "success",
                   message: "编辑成功!",
-                  duration: 1500,
+                  duration: 1500
                 });
               }
             });
@@ -1017,7 +1027,7 @@ export default {
       this.ruleForm.desc = ""; // 任务描述
       if (this.titleData == "编辑任务") {
         location.reload();
-      } 
+      }
       this.$refs[formName].resetFields();
       this.dialogVisible = false;
     },
@@ -1033,15 +1043,15 @@ export default {
           org_id: this.deviceForm.tissue, // 设备所属组织id
           trap_status: "", // 诱捕器状态 0停用 1正常
           page: this.page2, // 页码
-          page_size: "36", //每页数量,默认为10
-        }),
+          page_size: "36" //每页数量,默认为10
+        })
       })
-        .then((res) => {
+        .then(res => {
           if (res.data.data.total_item !== 0) {
             var data = res.data.data;
             this.listSum = data.total_item;
             var list = [];
-            data.page_list.forEach((item) => {
+            data.page_list.forEach(item => {
               var obj = {};
               obj["value"] = item.trap_id;
               obj["label"] = item.trap_number;
@@ -1051,7 +1061,7 @@ export default {
           }
           this.loading5 = false;
         })
-        .catch((err) => {
+        .catch(err => {
           this.loading5 = false;
         });
     },
@@ -1060,16 +1070,16 @@ export default {
     ybqScreenList() {
       this.$axios({
         method: "POST",
-        url: "/api/api_gateway?method=monitor_manage.trap_manage.trap_org",
+        url: "/api/api_gateway?method=monitor_manage.trap_manage.trap_org"
       })
-        .then((res) => {
+        .then(res => {
           // console.log(res);
           var data = res.data.data;
 
           // 组织
           if (data.org_data.length !== 0) {
             var list = [];
-            data.org_data.forEach((item) => {
+            data.org_data.forEach(item => {
               var obj = {};
               obj["value"] = item.org_id;
               obj["label"] = item.org_name;
@@ -1081,7 +1091,7 @@ export default {
           // 监测点
           if (data.point_data.length !== 0) {
             var list2 = [];
-            data.org_data.forEach((item) => {
+            data.org_data.forEach(item => {
               var obj = {};
               obj["value"] = item.org_id;
               obj["label"] = item.org_name;
@@ -1090,7 +1100,7 @@ export default {
             this.pointData = list2;
           }
         })
-        .catch((err) => {
+        .catch(err => {
           // console.log(err);
         });
     },
@@ -1155,13 +1165,13 @@ export default {
       this.$axios({
         method: "POST",
         url: "/api/api_gateway?method=control_center.task.task_export",
-        responseType: "blob",
+        responseType: "blob"
       })
-        .then((res) => {
+        .then(res => {
           this.downloadFile(res, "任务列表.xls");
           this.loadingShow = false;
         })
-        .catch((err) => {
+        .catch(err => {
           this.loadingShow = false;
         });
     },
@@ -1175,7 +1185,7 @@ export default {
       document.body.appendChild(link);
       link.click();
       document.body.removeChild(link);
-    },
+    }
   },
   //生命周期 - 创建完成(可以访问当前this实例)
   created() {},
@@ -1184,7 +1194,7 @@ export default {
     this.loading = true;
     this.tableList(); // 表格数据
     // this.conductorAxios(); // 筛选列表 - 任务处理人
-  },
+  }
 };
 </script>
 <style lang="less" scoped>
@@ -1200,6 +1210,9 @@ export default {
     }
     .btn_box {
       margin: 0 0 0 15px;
+      // width: 50%;
+      display: flex;
+      justify-content: start;
     }
 
     /deep/.el-range-editor--mini.el-input__inner {

+ 2 - 2
minggao/src/page/commandCenter/taskRegulatorDetails.vue

@@ -2,7 +2,7 @@
 <template>
   <div class="taskRegulatorDetails_box">
     <el-card :style="'height:' + fullHeight + 'px'" v-loading="loading">
-      <el-row>
+      <el-row v-if="taskObj.task_id">
         <!-- 任务信息 -->
         <el-col :span="24">
           <div class="list_box">
@@ -303,7 +303,7 @@ export default {
         justify-content: space-between;
         .list_sing_div {
           margin: 0 0 25px 0;
-          width: 33%;
+          width: 40%;
           font-size: 14px;
           display: flex;
           color: #333333;