yf_zkl 4 лет назад
Родитель
Сommit
394baaabf1

+ 3 - 3
minggao/config/index.js

@@ -12,8 +12,8 @@ module.exports = {
     assetsPublicPath: '/',
     proxyTable: {
       '/api': {
-        // target: 'http://192.168.1.17:12345', //翟毅飞
-        target: 'http://192.168.1.77:12345', //曹世祥
+        target: 'http://192.168.1.17:12345', //翟毅飞
+        // target: 'http://192.168.1.77:12345', //曹世祥
         changeOrigin: true,
         pathRewrite: {
           '^/api': '/api' //重写接口
@@ -22,7 +22,7 @@ module.exports = {
     },
 
     // Various Dev Server settings
-    host: '192.168.137.1', // can be overwritten by process.env.HOST
+    host: 'localhost', // 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,

+ 15 - 8
minggao/src/App.vue

@@ -8,18 +8,13 @@
 export default {
   name: "App",
   data() {
-    return {
-    }
-  },
-  methods: {
-
+    return {};
   },
-  mounted() {
-  }
+  methods: {},
+  mounted() {}
 };
 </script>
 
-
 <style lang="less">
 @import "./assets/css/global.css";
 html,
@@ -62,4 +57,16 @@ body {
 .custom-ffffff .el-dialog__header {
   border-radius: 5px 5px 0 0;
 }
+
+/*全局滚动条样式*/
+::-webkit-scrollbar {
+  width: 5px;
+  height: 14px;
+}
+
+::-webkit-scrollbar-thumb {
+  /* background-color: #01c8dc;
+border-radius: 3px; */
+  background-color: #b6b6b6;
+}
 </style>

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

@@ -53,7 +53,7 @@
           <el-table :data="tableData" stripe style="width: 100%">
             <el-table-column prop="ind" label="序号" width="180">
             </el-table-column>
-            <el-table-column prop="real_name" label="组织成员" width="250">
+            <el-table-column prop="real_name" label="组织成员" width="330">
             </el-table-column>
             <el-table-column prop="mobile" label="手机号" width="250">
               <template slot-scope="scope">
@@ -791,8 +791,8 @@ export default {
                 duration: 2500
               });
               this.videoVisible = false;
-            }, 60000);
-            // }, 6000)
+            }, 5000);
+            // }, 60000);
           }
           if (state == "DISCONNECTED") {
             // 与房间断开了连接

+ 361 - 0
minggao/src/page/superviseModule/superviseModule.vue

@@ -0,0 +1,361 @@
+<!--  -->
+<template>
+  <div class="superviseModule_box">
+    <el-card :style="'height:' + fullHeight + 'px'">
+      <!-- 筛选 -->
+      <el-row>
+        <el-col>
+          <div class="search_box">
+            <!-- 监督人 -->
+            <el-select
+              filterable
+              v-model="input"
+              clearable
+              @change="searchData"
+              placeholder="请选择监督人"
+              size="mini"
+            >
+              <el-option
+                v-for="item in conductorList"
+                :key="item.value"
+                :label="item.label"
+                :value="item.value"
+              >
+              </el-option>
+            </el-select>
+
+            <!-- 监督形式 -->
+            <el-select
+              filterable
+              v-model="input2"
+              clearable
+              @change="searchData"
+              placeholder="请选择监督形式"
+              size="mini"
+            >
+              <el-option
+                v-for="item in options"
+                :key="item.value"
+                :label="item.label"
+                :value="item.value"
+              >
+              </el-option>
+            </el-select>
+
+            <!-- 时间筛选 -->
+            <el-date-picker
+              size="mini"
+              v-model="value"
+              @change="searchData"
+              type="datetimerange"
+              range-separator="至"
+              start-placeholder="开始日期"
+              end-placeholder="结束日期"
+              align="right"
+            >
+            </el-date-picker>
+
+            <div class="btn_box">
+              <el-button type="primary" size="mini" @click="searchData"
+                >搜索</el-button
+              >
+              <el-button size="mini" @click="reset">重置</el-button>
+
+              <el-button type="primary" size="mini" @click="exportData">
+                <i v-if="loadingShow" class="el-icon-loading"></i>
+                导出数据</el-button
+              >
+            </div>
+          </div>
+        </el-col>
+      </el-row>
+
+      <!-- 表格 -->
+      <el-table
+        :data="tableData"
+        v-loading="loading"
+        stripe
+        style="width: 100%"
+      >
+        <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="监督形式" width="180">
+        </el-table-column>
+        <el-table-column prop="supervisor_depa" label="监督单位" width="180">
+        </el-table-column>
+        <el-table-column prop="supervisor_msg" label="监督情况" width="380">
+        </el-table-column>
+        <el-table-column prop="supervisor_time" label="监督时间" width="280">
+        </el-table-column>
+        <el-table-column label="操作" fixed="right">
+          <template slot-scope="scope">
+            <a
+              class="reset"
+              href="javascript:;"
+              @click="examineDetail(scope.row)"
+              >查看</a
+            >
+          </template>
+        </el-table-column>
+      </el-table>
+
+      <!-- 分页 -->
+      <el-pagination
+        style="margin: 60px 0 0 0"
+        :page-size="10"
+        @current-change="newPage"
+        :current-page="page"
+        v-if="tableData.length > 0"
+        background
+        layout="prev, pager, next, jumper"
+        :total="tableSum"
+      >
+      </el-pagination>
+    </el-card>
+  </div>
+</template>
+
+<script>
+export default {
+  //import引入的组件需要注入到对象中才能使用
+  components: {},
+  data() {
+    //这里存放数据
+    return {
+      fullHeight: document.documentElement.clientHeight - 116, //
+
+      // 筛选
+      input: "", // 监督人
+      conductorList: [], // 监督人 - 列表
+      input2: "", // 监督形式
+      // 监督形式 - 列表
+      options: [
+        {
+          value: "远程监督",
+          label: "远程监督"
+        },
+        {
+          value: "现场监督",
+          label: "现场监督"
+        }
+      ],
+      value: "", // 时间筛选
+      startTime: "", // 开始时间
+      endTime: "", // 结束时间
+      loadingShow: false, // 导出加载
+
+      // 表格
+      tableData: [],
+      loading: false, // 加载
+
+      // 分页
+      page: 1, // 当期页码
+      tableSum: 0 // 总页数
+    };
+  },
+  //监听属性 类似于data概念
+  computed: {},
+  //监控data中的数据变化
+  watch: {
+    fullHeight(val) {
+      //监控浏览器高度变化
+      if (!this.timer) {
+        this.fullHeight = val;
+        this.timer = true;
+        let that = this;
+        setTimeout(function() {
+          //防止过度调用监测事件,导致卡顿
+          that.timer = false;
+        }, 400);
+      }
+    }
+  },
+  //方法集合
+  methods: {
+    //动态获取浏览器高度
+    get_boderHeight() {
+      const that = this;
+      window.onresize = () => {
+        return (() => {
+          window.fullHeight = document.documentElement.clientHeight;
+          that.fullHeight = window.fullHeight;
+        })();
+      };
+    },
+
+    // 表格
+    tableList() {
+      this.$axios({
+        method: "POST",
+        url:
+          "/api/api_gateway?method=control_center.task.supervisor_record_list",
+        data: this.qs.stringify({
+          page: this.page,
+          page_item: "10",
+          supervisor_user_id: this.input, // 监督人id
+          start_time: this.startTime, // 开始时间
+          end_time: this.endTime, // 结束时间
+          supervisor_type: this.input2 // 监督形式
+        })
+      })
+        .then(res => {
+          if (res.data.data.total_item !== 0) {
+            var data = res.data.data;
+            this.tableSum = data.total_item;
+            var list = [];
+            data.page_list.forEach((item, index) => {
+              item.ind = index + 1;
+              list.push(item);
+            });
+            this.tableData = list;
+          }
+          this.loading = false;
+        })
+        .catch(err => {
+          this.loading = false;
+        });
+    },
+
+    // 监督人列表
+    conductorAxios() {
+      this.$axios({
+        method: "POST",
+        url: "/api/api_gateway?method=control_center.task.task_user_list",
+        data: this.qs.stringify({
+          user_type: "supervisor", // 用户类型,operator(任务处理人), supervisor(任务监督人), owner(任务发布人)
+          operator_id: "", // 已经选择的任务处理人id
+          supervisor_id: "", // 已经选择的任务监督人id
+          owner_id: "" // 已经选择的任务发布人id
+        })
+      })
+        .then(res => {
+          if (res.data.data.length !== 0) {
+            var data = res.data.data;
+            var list = [];
+            data.forEach(item => {
+              var obj = {};
+              obj["value"] = item.user_id;
+              obj["label"] = item.real_name;
+              list.push(obj);
+            });
+            this.conductorList = list;
+          }
+        })
+        .catch(err => {});
+    },
+
+    // 搜索
+    searchData() {
+      this.loading = true;
+      this.tableData = [];
+      this.tableList();
+    },
+
+    // 重置
+    reset() {
+      this.input = ""; // 监督人
+      this.input2 = ""; // 监督形式
+      this.value = ""; // 时间筛选
+      this.startTime = ""; // 开始时间
+      this.endTime = ""; // 结束时间
+      this.loading = true;
+      this.tableData = [];
+      this.tableList();
+    },
+
+    // 导出数据
+    exportData() {
+      this.loadingShow = true;
+      this.$axios({
+        method: "POST",
+        url: "/api/api_gateway?method=control_center.task.supervisor_export",
+        responseType: "blob"
+      })
+        .then(res => {
+          this.downloadFile(res, "监督记录.xls");
+          this.loadingShow = false;
+        })
+        .catch(err => {
+          this.loadingShow = false;
+          // console.log(err);
+        });
+    },
+
+    // 流文件下载
+    downloadFile(res, name) {
+      let link = document.createElement("a");
+      link.href = window.URL.createObjectURL(new Blob([res.data]));
+      link.target = "_blank";
+      // 文件名和格式
+      link.download = name;
+      document.body.appendChild(link);
+      link.click();
+      document.body.removeChild(link);
+    },
+
+    // 分页
+    newPage(page) {
+      this.page = page;
+      this.tableList();
+    },
+
+    // 查看
+    examineDetail(data) {
+      this.$router.push({
+        path: "/index/superviseDetails",
+        query: {
+          id: data.id
+        }
+      });
+    }
+  },
+  //生命周期 - 创建完成(可以访问当前this实例)
+  created() {},
+  //生命周期 - 挂载完成(可以访问DOM元素)
+  mounted() {
+    this.loading = true;
+    this.get_boderHeight(); // 动态获取浏览器高度
+    this.conductorAxios(); // 监督人 - 筛选列表
+    this.tableList(); // 表格
+  },
+  beforeCreate() {}, //生命周期 - 创建之前
+  beforeMount() {}, //生命周期 - 挂载之前
+  beforeUpdate() {}, //生命周期 - 更新之前
+  updated() {}, //生命周期 - 更新之后
+  beforeDestroy() {}, //生命周期 - 销毁之前
+  destroyed() {}, //生命周期 - 销毁完成
+  activated() {} //如果页面有keep-alive缓存功能,这个函数会触发
+};
+</script>
+<style lang="less" scoped>
+.superviseModule_box {
+  // 搜索
+  .search_box {
+    display: flex;
+    /deep/.el-select {
+      margin: 0 15px 0 0;
+    }
+    /deep/.el-input {
+      margin: 0 15px 0 0;
+    }
+    .btn_box {
+      margin: 0 0 0 15px;
+      // width: 50%;
+      display: flex;
+      justify-content: start;
+    }
+
+    /deep/.el-range-editor--mini.el-input__inner {
+      width: 20%;
+    }
+  }
+
+  a {
+    text-decoration: none;
+  }
+  .reset {
+    color: #1890ff;
+  }
+}
+</style>

+ 425 - 0
minggao/src/page/superviseModule/superviseModuleDetails.vue

@@ -0,0 +1,425 @@
+<!--  -->
+<template>
+  <div class="superviseModuleDetails_box">
+    <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>
+            </div>
+
+            <ul class="list_ul">
+              <li class="list_li">
+                <div class="list_div">
+                  <span class="list_div_tlt">督查人:</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">{{
+                    taskObj.supervisor_user
+                  }}</span>
+                </div>
+
+                <div class="list_div">
+                  <span class="list_div_tlt">监督时间:</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">{{
+                    taskObj.supervisor_type
+                  }}</span>
+                </div>
+
+                <div class="list_div">
+                  <span class="list_div_tlt">监督单位:</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">{{ taskObj.supervisor_msg }}</span>
+                </div>
+              </li>
+            </ul>
+          </div>
+        </el-col>
+
+        <!-- 任务信息 -->
+        <el-col :span="24">
+          <div class="list_box">
+            <div class="list_tlt">
+              <span>任务信息</span>
+            </div>
+
+            <ul class="list_ul">
+              <li class="list_li">
+                <div class="list_div">
+                  <span class="list_div_tlt">任务类型:</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">{{
+                    taskObj.supervisor_user
+                  }}</span>
+                </div>
+
+                <div class="list_div">
+                  <span class="list_div_tlt">任务时间:</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">{{ taskObj.owner_user }}</span>
+                </div>
+
+                <div class="list_div">
+                  <span class="list_div_tlt">任务处理人:</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">{{ taskObj.task_status }}</span>
+                </div>
+
+                <div class="list_div">
+                  <span class="list_div_tlt">任务描述:</span>
+                  <span class="list_div_val">{{ taskObj.tesk_msg }}</span>
+                </div>
+              </li>
+            </ul>
+          </div>
+        </el-col>
+
+        <!-- 签到信息 -->
+        <el-col :span="24">
+          <div class="list_box">
+            <div class="list_tlt">签到信息</div>
+
+            <ul class="list_ul">
+              <li class="list_sing_li">
+                <div class="list_sing_div">
+                  <span class="list_div_tlt">签到图片:</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">{{
+                    taskObj.end_time || "暂无"
+                  }}</span>
+                </div>
+              </li>
+            </ul>
+          </div>
+        </el-col>
+
+        <!-- 任务填报信息 -->
+        <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="trap_number" label="设备编号">
+                  </el-table-column>
+                  <el-table-column prop="monitor_point" label="监测点">
+                  </el-table-column>
+                  <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>
+            </ul>
+          </div>
+        </el-col>
+
+        <!-- 任务汇报 -->
+        <el-col :span="24">
+          <div class="list_box">
+            <div class="list_tlt">任务汇报</div>
+
+            <ul class="list_report_ul">
+              <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>
+
+<script>
+export default {
+  //import引入的组件需要注入到对象中才能使用
+  components: {},
+  data() {
+    //这里存放数据
+    return {
+      fullHeight: document.documentElement.clientHeight - 116, //
+      loading: true, // 加载
+
+      // 详情总数据
+      taskObj: {},
+
+      // 任务填报信息
+      tableData: [],
+      dialogVisible: false, // 弹框
+      titleData: "", // 弹框标题
+      insectList: [], //害虫列表
+
+      // 任务汇报
+      reportList: [
+        "1、今天做了检测完成任务了没有",
+        "2、途中发生了什么事情",
+        "3、对这次任务有什么总结",
+        "4、我对这次任务有哪些建议"
+      ]
+    };
+  },
+  //监听属性 类似于data概念
+  computed: {},
+  //监控data中的数据变化
+  watch: {
+    fullHeight(val) {
+      //监控浏览器高度变化
+      if (!this.timer) {
+        this.fullHeight = val;
+        this.timer = true;
+        let that = this;
+        setTimeout(function() {
+          //防止过度调用监测事件,导致卡顿
+          that.timer = false;
+        }, 400);
+      }
+    }
+  },
+  //方法集合
+  methods: {
+    //动态获取浏览器高度
+    get_boderHeight() {
+      const that = this;
+      window.onresize = () => {
+        return (() => {
+          window.fullHeight = document.documentElement.clientHeight;
+          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() {
+    this.loading = true; //加载
+    this.get_boderHeight(); // 动态获取浏览器高度
+    this.detailsData(); // 详情界面数据
+  },
+  beforeCreate() {}, //生命周期 - 创建之前
+  beforeMount() {}, //生命周期 - 挂载之前
+  beforeUpdate() {}, //生命周期 - 更新之前
+  updated() {}, //生命周期 - 更新之后
+  beforeDestroy() {}, //生命周期 - 销毁之前
+  destroyed() {}, //生命周期 - 销毁完成
+  activated() {} //如果页面有keep-alive缓存功能,这个函数会触发
+};
+</script>
+<style lang="less" scoped>
+.superviseModuleDetails_box {
+  // 任务信息
+  .list_box {
+    margin: 0 0 20px 0;
+    .list_tlt {
+      display: flex;
+      justify-content: space-between;
+      width: 95%;
+      margin: 0 auto;
+      font-size: 20px;
+    }
+
+    .list_ul {
+      margin: 20px 0 0 0;
+      padding: 20px 40px 20px 40px;
+      background: #f6f8fa;
+      .list_li {
+        display: flex;
+        flex-wrap: wrap;
+        .list_div {
+          margin: 0 0 25px 0;
+          width: 33%;
+          font-size: 14px;
+          color: #333333;
+        }
+      }
+
+      .list_sing_li {
+        display: flex;
+        justify-content: space-between;
+        .list_sing_div {
+          margin: 0 0 25px 0;
+          width: 40%;
+          font-size: 14px;
+          display: flex;
+          color: #333333;
+          .list_div_img {
+            width: 113px;
+            margin: 0 15px 0 0;
+            display: flex;
+            img {
+              width: 100%;
+              height: 100%;
+            }
+          }
+        }
+      }
+    }
+
+    // 任务填报信息
+    .list_table_ul {
+      margin: 20px 0 0 0;
+      padding: 20px 40px 20px 40px;
+      // background: #f6f8fa;
+      .list_li {
+        display: flex;
+        flex-wrap: wrap;
+        .list_div {
+          margin: 0 0 25px 0;
+          width: 33%;
+          font-size: 14px;
+          color: #333333;
+        }
+      }
+    }
+
+    // 任务汇报
+    .list_report_ul {
+      margin: 20px 0 0 0;
+      padding: 20px 40px 20px 40px;
+      background: #f6f8fa;
+      .list_report_li {
+        font-size: 14px;
+        margin: 0 0 10px 0;
+        color: #333333;
+      }
+    }
+  }
+
+  /deep/.el-table th.el-table__cell {
+    background-color: #f6f8fa;
+  }
+
+  /deep/.el-card {
+    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>

+ 72 - 66
minggao/src/page/systemmanger/harmfulBiology.vue

@@ -32,13 +32,17 @@
         <el-table-column prop="ind" label="序号" width="120"> </el-table-column>
         <el-table-column prop="pest_name" label="有害生物名称" width="280">
         </el-table-column>
-        <el-table-column prop="quarantine" label="检疫性有害生物(是/否)" width="180">
+        <el-table-column
+          prop="quarantine"
+          label="检疫性有害生物(是/否)"
+          width="180"
+        >
         </el-table-column>
         <el-table-column prop="alien_specie" label="是否外来物种" width="180">
         </el-table-column>
         <el-table-column prop="messages" label="备注" width="280">
           <template slot-scope="scope">
-            <span>{{ scope.row.messages || '无' }}</span>
+            <span>{{ scope.row.messages || "无" }}</span>
           </template>
         </el-table-column>
         <el-table-column prop="create_time" label="添加时间" width="180">
@@ -115,9 +119,7 @@
           <el-button size="small" type="primary" @click="submitForm"
             >确定</el-button
           >
-          <el-button size="small" @click="cancel"
-            >取消</el-button
-          >
+          <el-button size="small" @click="cancel">取消</el-button>
         </el-form-item>
       </el-form>
     </el-dialog>
@@ -145,8 +147,8 @@ export default {
           judge2: "是",
           remark: "这是一个有害虫类",
           addDate: "2016-05-02 10:00:00",
-          endDate: "2021-01-06 10:00:00",
-        },
+          endDate: "2021-01-06 10:00:00"
+        }
       ],
 
       // 编辑、 添加
@@ -156,31 +158,31 @@ export default {
         name: "", //有害生物名称
         judge: "", // 检疫性有害生物
         judge2: "", //是否外来入侵物种
-        remark: "", // 备注
+        remark: "" // 备注
       },
       rules: {
         name: [
-          { required: true, message: "请输入有害生物名称", trigger: "blur" },
+          { required: true, message: "请输入有害生物名称", trigger: "blur" }
           //   { min: 3, max: 5, message: "长度在 1 到 15 个字符", trigger: "blur" },
         ],
         judge: [
-          { required: true, message: "请选检疫性有害生物", trigger: "blur" },
+          { required: true, message: "请选检疫性有害生物", trigger: "blur" }
           //   { min: 3, max: 5, message: "长度在 1 到 15 个字符", trigger: "blur" },
         ],
         judge2: [
           {
             required: true,
             message: "请选择是否外来入侵物种",
-            trigger: "blur",
-          },
+            trigger: "blur"
+          }
           //   { min: 3, max: 5, message: "长度在 1 到 30 个字符", trigger: "blur" },
-        ],
+        ]
         // remark: [
         //   { required: true, message: "请输入备注", trigger: "blur" },
         //   //   { min: 3, max: 5, message: "长度在 1 到 30 个字符", trigger: "blur" },
         // ],
       },
-      insectObj: {},
+      insectObj: {}
     };
   },
   //监听属性 类似于data概念
@@ -193,7 +195,7 @@ export default {
         this.fullHeight = val;
         this.timer = true;
         let that = this;
-        setTimeout(function () {
+        setTimeout(function() {
           //防止过度调用监测事件,导致卡顿
           that.timer = false;
         }, 400);
@@ -202,7 +204,12 @@ export default {
 
     addrInsectVisible(val) {
       if (val == false) {
-        this.$refs["form"].resetFields();
+        console.log("gsjdgsjdgjsgdjsgdghj");
+        this.form.name = ""; // 有害生物名称
+        this.form.judge = ""; // 检疫性有害生物
+        this.form.judge2 = ""; // 是否外来入侵物种
+        this.form.remark = ""; // 备注
+        // this.$refs["form"].resetFields();
       }
     }
   },
@@ -221,7 +228,7 @@ export default {
 
     // 搜索
     searchData() {
-      this.harmfulBiologyList()
+      this.harmfulBiologyList();
     },
 
     // 添加有害生物
@@ -238,24 +245,24 @@ export default {
         data: this.qs.stringify({
           page: this.page,
           page_item: "10",
-          pest_name: this.input,
-        }),
+          pest_name: this.input
+        })
       })
-        .then((res) => {
+        .then(res => {
           if (res.data.data.total_item !== 0) {
-            var data = res.data.data
-            this.pageSum = data.total_item
-            var list = []
+            var data = res.data.data;
+            this.pageSum = data.total_item;
+            var list = [];
             data.page_list.forEach((item, index) => {
-              item.ind = index + 1
-              list.push(item)
+              item.ind = index + 1;
+              list.push(item);
             });
-            this.tableData = list                     
+            this.tableData = list;
           } else {
-            this.tableData = []
+            this.tableData = [];
           }
         })
-        .catch((err) => {
+        .catch(err => {
           console.log(err);
         });
     },
@@ -269,13 +276,13 @@ export default {
     // 编辑
     actionFunc(data) {
       this.tltData = "编辑有害生物";
-      this.insectObj = data
+      this.insectObj = data;
       this.form = {
         name: data.pest_name, //有害生物名称
         judge: data.quarantine, // 检疫性有害生物
         judge2: data.alien_specie, //是否外来入侵物种
-        remark: data.messages, // 备注
-      }
+        remark: data.messages // 备注
+      };
       this.addrInsectVisible = true;
     },
 
@@ -284,81 +291,80 @@ export default {
       this.$confirm("此操作将永久删除, 是否继续?", "提示", {
         confirmButtonText: "确定",
         cancelButtonText: "取消",
-        type: "warning",
+        type: "warning"
       })
         .then(() => {
           this.$axios({
-            method: 'POST',
-            url: '/api/api_gateway?method=sysmenage.maintain.pest_delete',
+            method: "POST",
+            url: "/api/api_gateway?method=sysmenage.maintain.pest_delete",
             data: this.qs.stringify({
-              pest_id: data.pest_id 
+              pest_id: data.pest_id
             })
-          }).then((res) => {
-            console.log(res.data.data)
+          }).then(res => {
+            console.log(res.data.data);
             if (res.data.data == true) {
               this.$message({
                 type: "success",
                 message: "成功",
-                duration: 1500,
+                duration: 1500
               });
             } else {
               this.$message({
                 type: "error",
                 message: "失败",
-                duration: 1500,
+                duration: 1500
               });
             }
-            this.harmfulBiologyList()
-          })
+            this.harmfulBiologyList();
+          });
         })
         .catch(() => {
           this.$message({
             type: "info",
-            message: "已取消删除",
+            message: "已取消删除"
           });
         });
     },
 
     // 添加 - 编辑 确定
     submitForm() {
-      this.$refs["form"].validate((valid) => {
+      this.$refs["form"].validate(valid => {
         if (valid) {
-
-          if (this.tltData == '添加有害生物') {
-            var url = '/api/api_gateway?method=sysmenage.maintain.pest_add'
+          if (this.tltData == "添加有害生物") {
+            var url = "/api/api_gateway?method=sysmenage.maintain.pest_add";
             var postData = this.qs.stringify({
               pest_name: this.form.name,
               alien_specie: this.form.judge2,
               quarantine: this.form.judge,
-              messages: this.form.remark,
-            })
-          } else if (this.tltData == '编辑有害生物') {
-            var url = '/api/api_gateway?method=sysmenage.maintain.pest_modify'
+              messages: this.form.remark
+            });
+          } else if (this.tltData == "编辑有害生物") {
+            var url = "/api/api_gateway?method=sysmenage.maintain.pest_modify";
             var postData = this.qs.stringify({
               pest_id: this.insectObj.pest_id,
               pest_name: this.form.name,
               alien_specie: this.form.judge2,
               quarantine: this.form.judge,
-              messages: this.form.remark,
-            })
+              messages: this.form.remark
+            });
           }
           this.$axios({
-            method: 'POST',
+            method: "POST",
             url,
             data: postData
-          }).then((res) => {
-            console.log(res)
-            if (res.data.message == '') {
+          }).then(res => {
+            console.log(res);
+            if (res.data.message == "") {
               this.$message({
                 type: "success",
                 message: "成功",
-                duration: 1500,
+                duration: 1500
               });
             }
             this.$refs["form"].resetFields();
-            this.addrInsectVisible = false
-            this.harmfulBiologyList()
-          })
+            this.addrInsectVisible = false;
+            this.harmfulBiologyList();
+          });
         } else {
           //   console.log("error submit!!");
           return false;
@@ -367,14 +373,14 @@ export default {
     },
     cancel() {
       this.$refs["form"].resetFields();
-      this.addrInsectVisible = false
-    },
+      this.addrInsectVisible = false;
+    }
   },
   //生命周期 - 创建完成(可以访问当前this实例)
   created() {},
   //生命周期 - 挂载完成(可以访问DOM元素)
   mounted() {
-    this.harmfulBiologyList()
+    this.harmfulBiologyList();
   },
   beforeCreate() {}, //生命周期 - 创建之前
   beforeMount() {}, //生命周期 - 挂载之前
@@ -382,10 +388,10 @@ export default {
   updated() {}, //生命周期 - 更新之后
   beforeDestroy() {}, //生命周期 - 销毁之前
   destroyed() {}, //生命周期 - 销毁完成
-  activated() {}, //如果页面有keep-alive缓存功能,这个函数会触发
+  activated() {} //如果页面有keep-alive缓存功能,这个函数会触发
 };
 </script>
-<style lang='less' scoped>
+<style lang="less" scoped>
 .harmfulBiology_box {
   .search_box {
     display: flex;
@@ -418,4 +424,4 @@ export default {
     width: 80%;
   }
 }
-</style>
+</style>

+ 21 - 9
minggao/src/router/index.js

@@ -7,10 +7,10 @@ import Login from '@/page/login/login'
 
 // *****************首页**********************
 import Index from '@/page/home/index'
-import facilitydistribute from '@/page/homepage/facilitydistribute'//设备分布
+import facilitydistribute from '@/page/homepage/facilitydistribute' //设备分布
 // import facilitydistribute from '@/page/homepage/home'//设备分布
 
-import pestdistribute from '@/page/homepage/pestdistribute'//有害生物分布
+import pestdistribute from '@/page/homepage/pestdistribute' //有害生物分布
 //---------------------------------------系统管理----------------------------------------------------
 const customsManger = () => import('@/Page/systemmanger/customsManger') //隶属海关
 const role = () => import('@/Page/systemmanger/role') // 角色管理
@@ -31,18 +31,21 @@ const superviseDetails = () => import('@/Page/commandCenter/superviseDetails') /
 const superviseLog = () => import('@/Page/commandCenter/superviseLog') //监测日志
 const superviseLogDetails = () => import('@/Page/commandCenter/superviseLogDetails') //监测日志 - 详情
 
+//---------------------------------------监督记录----------------------------------------------------
+const superviseModule = () => import('@/Page/superviseModule/superviseModule') //监督记录 
+
 // *****************测报系统**********************
-import cbd from '@/page/forecasting/cbd/Cbd'//首页
-import DataDetails from '@/page/forecasting/cbd/DataDetails'//数据详情
-import DataPhotos from '@/page/forecasting/cbd/cbdDataPhotos'//图片详情
-import PestsStats from '@/page/forecasting/cbd/pestsStats'//害虫统计
-import tongji from '@/page/forecasting/cbd/tongji'//害虫分析
-import deviceTongji from '@/page/forecasting/cbd/deviceTongji'//害虫排行
+import cbd from '@/page/forecasting/cbd/Cbd' //首页
+import DataDetails from '@/page/forecasting/cbd/DataDetails' //数据详情
+import DataPhotos from '@/page/forecasting/cbd/cbdDataPhotos' //图片详情
+import PestsStats from '@/page/forecasting/cbd/pestsStats' //害虫统计
+import tongji from '@/page/forecasting/cbd/tongji' //害虫分析
+import deviceTongji from '@/page/forecasting/cbd/deviceTongji' //害虫排行
 // ********************监控**************************
 import monitor from '@/page/monitor/Monitor'
 import photoView from '@/page/monitor/PhotoView'
 //*********************诱捕器系统********************
-import maintain from '@/page/forecasting/maintain/maintain'//监测点维护
+import maintain from '@/page/forecasting/maintain/maintain' //监测点维护
 import trap from '@/page/forecasting/trap/trap' //诱捕器
 import fillinrecord from '@/page/forecasting/trap/fillinrecord' //填报记录
 import bait from '@/page/forecasting/trap/bait' //诱剂维护
@@ -202,6 +205,15 @@ export default new Router({
           }
         },
         //------------------指挥中心--------------------------
+        //------------------监督记录--------------------------
+        {
+          path: 'superviseModule',
+          component: superviseModule,
+          meta: {
+            title: '监督记录'
+          }
+        },
+        //------------------监督记录--------------------------
         {
           path: 'cbd',
           component: cbd