From 02ce22be65df8b717d5f1614e5d7dbfcdf1ce1b9 Mon Sep 17 00:00:00 2001
From: Oliver <1070107765@qq.com>
Date: 星期三, 14 十二月 2022 09:29:51 +0800
Subject: [PATCH] 预警研判 操作

---
 src/views/intelligentPatrol/studyJudge/inspectionTable/index.vue |  389 +++++++++++++++++++++++++++++++++++++++++++
 src/views/intelligentPatrol/studyJudge/index.vue                 |  135 ++++++++------
 2 files changed, 463 insertions(+), 61 deletions(-)

diff --git a/src/views/intelligentPatrol/studyJudge/index.vue b/src/views/intelligentPatrol/studyJudge/index.vue
index c71e937..e19e9d6 100644
--- a/src/views/intelligentPatrol/studyJudge/index.vue
+++ b/src/views/intelligentPatrol/studyJudge/index.vue
@@ -2,7 +2,7 @@
   <div class="study-judge">
     <div class="study-judge-header">
       <span
-        >鎮ㄦ湁{{ countData.review }}鏉″緟瀹℃牳鎶ヨ淇℃伅,浠婃棩绔嬫{{
+      >鎮ㄦ湁<span @click="openDialogTable">{{ countData.review }}</span>鏉″緟瀹℃牳鎶ヨ淇℃伅,浠婃棩绔嬫{{
           countData.register
         }}鏉�,鍐嶅涔爗{ countData.study }}鏉�</span
       >
@@ -16,28 +16,30 @@
         </div>
         <div class="sjm-header-right">
           <el-button size="small" @click="createVideo(currentEvent, 'live')"
-            >瀹炴椂棰勮</el-button
+          >瀹炴椂棰勮
+          </el-button
           >
           <el-button size="small" @click="createVideo(currentEvent, 'playback')"
-            >褰曞儚鍥炴斁</el-button
+          >褰曞儚鍥炴斁
+          </el-button
           >
         </div>
       </div>
       <div class="sjm-content">
         <div class="sjm-content-left">
           <div
-            class="img-item"
-            v-for="(item, index) in imageList"
-            :key="item.id"
+              class="img-item"
+              v-for="(item, index) in imageList"
+              :key="item.id"
           >
             <span>鎶ヨ鍥剧墖</span>
-            <img :src="item" />
+            <img :src="item"/>
             <span v-if="index === 0"
-              >鎶ヨ鏃堕棿锛歿{ currentEvent.alarmTime }}</span
+            >鎶ヨ鏃堕棿锛歿{ currentEvent.alarmTime }}</span
             >
           </div>
           <div class="img-item" v-for="item in imageList" :key="item.id">
-            <img :src="item" />
+            <img :src="item"/>
           </div>
         </div>
         <div class="sjm-content-center">
@@ -52,10 +54,10 @@
               <span>鎶ヨ璁板綍--{{ currentEvent.algoName }}</span>
             </div>
             <el-form
-              ref="currentEvent"
-              label-width="120px"
-              :model="eventInfoData"
-              :rules="rules"
+                ref="currentEvent"
+                label-width="120px"
+                :model="eventInfoData"
+                :rules="rules"
             >
               <el-form-item label="浜嬩欢缂栧彿:">
                 <span>{{ currentEvent.code }}</span>
@@ -74,82 +76,85 @@
               </el-form-item>
               <el-form-item label="鍏宠仈搴楅摵" prop="store">
                 <el-select
-                  v-model="eventInfoData.store"
-                  clearable
-                  @change="selectStoreChange"
-                  placeholder="璇烽�夋嫨鍏宠仈搴楅摵"
+                    v-model="eventInfoData.store"
+                    clearable
+                    @change="selectStoreChange"
+                    placeholder="璇烽�夋嫨鍏宠仈搴楅摵"
                 >
                   <el-option
-                    v-for="store in storeList"
-                    :value="store.id"
-                    :label="store.storeName"
-                    :key="store.id"
+                      v-for="store in storeList"
+                      :value="store.id"
+                      :label="store.storeName"
+                      :key="store.id"
                   />
                 </el-select>
               </el-form-item>
               <el-form-item v-if="eventInfoData.store" label="搴楅摵寰楀垎:">
                 <span>{{
-                  selectStoreChange(eventInfoData.store).storeScore
-                }}</span>
+                    selectStoreChange(eventInfoData.store).storeScore
+                  }}</span>
               </el-form-item>
               <el-form-item label="澶勭悊鎰忚:" prop="state">
                 <el-radio-group v-model="eventInfoData.state">
                   <el-radio
-                    :label="item.id"
-                    v-for="item in stateList"
-                    :key="item.id"
-                    >{{ item.label }}</el-radio
+                      :label="item.id"
+                      v-for="item in stateList"
+                      :key="item.id"
+                  >{{ item.label }}
+                  </el-radio
                   >
                 </el-radio-group>
               </el-form-item>
               <el-form-item label="澶х被鍚嶇О:" prop="categoryId">
                 <el-select
-                  v-model="eventInfoData.categoryId"
-                  placeholder="璇烽�夋嫨澶х被鍚嶇О"
-                  @change="categoryChange"
+                    v-model="eventInfoData.categoryId"
+                    placeholder="璇烽�夋嫨澶х被鍚嶇О"
+                    @change="categoryChange"
                 >
                   <el-option
-                    v-for="category in categoryOptions"
-                    :key="category.id"
-                    :value="category.id"
-                    :label="category.name"
+                      v-for="category in categoryOptions"
+                      :key="category.id"
+                      :value="category.id"
+                      :label="category.name"
                   />
                 </el-select>
               </el-form-item>
               <el-form-item label="灏忕被鍚嶇О:" prop="typeId">
                 <el-select
-                  v-model="eventInfoData.typeId"
-                  placeholder="璇烽�夋嫨灏忕被鍚嶇О"
+                    v-model="eventInfoData.typeId"
+                    placeholder="璇烽�夋嫨灏忕被鍚嶇О"
                 >
                   <el-option
-                    v-for="type in typeOptions"
-                    :key="type.id"
-                    :value="type.id"
-                    :label="type.name"
+                      v-for="type in typeOptions"
+                      :key="type.id"
+                      :value="type.id"
+                      :label="type.name"
                   />
                 </el-select>
               </el-form-item>
               <el-form-item label="杞︾墝鍙�:" prop="carNumber">
                 <el-input
-                  v-model="eventInfoData.carNumber"
-                  placeholder="璇峰~鍐欒溅鐗屽彿鐮�"
+                    v-model="eventInfoData.carNumber"
+                    placeholder="璇峰~鍐欒溅鐗屽彿鐮�"
                 ></el-input>
               </el-form-item>
               <el-form-item label="澶囨敞:" prop="description">
                 <el-input
-                  type="textarea"
-                  :rows="5"
-                  v-model="eventInfoData.description"
+                    type="textarea"
+                    :rows="5"
+                    v-model="eventInfoData.description"
                 ></el-input>
               </el-form-item>
               <el-form-item>
                 <el-button
-                  :disabled="currentPage === 1"
-                  @click="pageChange('prev')"
-                  >涓婁竴鏉�</el-button
+                    :disabled="currentPage === 1"
+                    @click="pageChange('prev')"
+                >涓婁竴鏉�
+                </el-button
                 >
                 <el-button @click.native.prevent="handleConfirm"
-                  >纭</el-button
+                >纭
+                </el-button
                 >
                 <el-button @click="pageChange('next')">涓嬩竴鏉�</el-button>
               </el-form-item>
@@ -160,22 +165,25 @@
     </div>
     <el-dialog :visible="isShowDialog" title="璋冨害淇℃伅">
       <MyDispatch
-        v-if="isShowDialog"
-        :mytype="1"
-        @getDispatchData="confirmInspection"
-        :isGetData="true"
-        @changeDialog="closeDialog"
+          v-if="isShowDialog"
+          :mytype="1"
+          @getDispatchData="confirmInspection"
+          :isGetData="true"
+          @changeDialog="closeDialog"
       ></MyDispatch>
     </el-dialog>
     <el-dialog
-      :visible.sync="dialogCreate"
-      title="鏌ョ湅瑙嗛"
-      v-show="dialogCreate"
-      :before-close="handleClose2"
+        :visible.sync="dialogCreate"
+        title="鏌ョ湅瑙嗛"
+        v-show="dialogCreate"
+        :before-close="handleClose2"
     >
       <div class="dom" style="width: 100%; height: 600px; position: relative">
         <div id="dom1" class="dom1"></div>
       </div>
+    </el-dialog>
+    <el-dialog :visible.sync="isShowTable" title="鎶ヨ淇℃伅" width="1200px">
+      <inspection-table/>
     </el-dialog>
   </div>
 </template>
@@ -187,11 +195,12 @@
 import { FILE_ORIGINAL_URL } from "@/utils";
 import { validateCarNum } from "@/utils/validate";
 import MyDispatch from "@/components/dispatch";
+import InspectionTable from "@/views/intelligentPatrol/studyJudge/inspectionTable/index.vue";
 
 import MyMap from "@/components/map";
 
 export default {
-  components: { MyDispatch, MyMap },
+  components: { MyDispatch, MyMap ,InspectionTable},
   created() {
     this.getInspectionData();
     this.initEventParams();
@@ -242,12 +251,13 @@
       }
     };
     return {
-      timer: null,
+      timer:null,
       countData: {
         study: 0,
         review: 0,
         register: 0,
       },
+      isShowTable: true,
       currentEvent: {},
       stateList: [
         {
@@ -316,6 +326,9 @@
     };
   },
   methods: {
+    openDialogTable(){
+      this.isShowTable = true
+    },
     pageChange(type) {
       if (type === "next") {
         this.currentPage += 1;
@@ -574,7 +587,7 @@
   beforeDestroy() {
     clearInterval(this.timer);
     this.timer = null;
-  },
+  }
 };
 </script>
 
diff --git a/src/views/intelligentPatrol/studyJudge/inspectionTable/index.vue b/src/views/intelligentPatrol/studyJudge/inspectionTable/index.vue
new file mode 100644
index 0000000..e4f3a21
--- /dev/null
+++ b/src/views/intelligentPatrol/studyJudge/inspectionTable/index.vue
@@ -0,0 +1,389 @@
+<template>
+  <div class="mainContent">
+    <!-- 鏁版嵁灞曠ず -->
+    <el-table ref="multipleTable"
+              :header-cell-style="{background:'#06122c','font-size':'12px',color:'#4b9bb7','font-weight':'650','line-height':'45px'}"
+              :data="tableData" style="width: 100%" :row-class-name="tableRowClassName" @selection-change="tableChange">
+      <el-table-column type="selection" min-width="5">
+      </el-table-column>
+      <el-table-column prop="code" label="浜嬩欢缂栧彿" min-width="18">
+        <template slot-scope="scope">
+          <el-link @click="JumpView(scope.row)">{{ scope.row.code }}</el-link>
+        </template>
+      </el-table-column>
+      <el-table-column prop="eventSource" label="闂鏉ユ簮" min-width="8">
+        <template slot-scope="scope">
+          <span>{{ scope.row.eventSource === 2 ? '瑙嗛涓婁紶' : '浜哄伐涓婁紶' }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column :prop="mystatus === 1 ? 'category' :'category'"
+                       :label="mystatus===1 ? '澶х被鍚嶇О' : '杩濆缓绫诲埆'" :min-width="mystatus===1?'10':'15'">
+      </el-table-column>
+      <el-table-column :prop="mystatus === 1 ? 'type' :'site'" :label="mystatus===1 ? '灏忕被鍚嶇О' : '杩濆缓鍦扮偣'"
+                       min-width="10">
+      </el-table-column>
+      <el-table-column :prop="mystatus === 1 ? 'site' :''" :label="mystatus===1 ? '鎶ヨ鐐逛綅' : '杩濇硶寤虹瓚闀裤�佸銆侀珮'"
+                       :min-width="mystatus===1?'10' :'20' ">
+        <template slot-scope="scope">
+          <div v-if="mystatus ===2"><span>{{
+              scope.row.buildingLength + '绫�' + '銆�' +
+              scope.row.buildingWidth + '绫�' + '銆�' + scope.row.buildingHigh + '绫�'
+            }}</span></div>
+          <div v-else>{{ scope.row.site }}</div>
+        </template>
+      </el-table-column>
+      <el-table-column :prop="mystatus === 1 ? 'street' :'buildingArea'"
+                       :label="mystatus===1 ? '鎵�灞炲尯鍩�' : '杩濇硶寤虹瓚闈㈢Н'" min-width="12">
+      </el-table-column>
+      <el-table-column prop="alarmTime" label="鎶ヨ鏃堕棿" min-width="15" v-if="mystatus===1">
+        <template slot-scope="scope">
+          <span>{{ filterTime(scope.row.alarmTime) }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column :prop="mystatus === 1 ? 'continueTime' :'materials'"
+                       :label="mystatus===1 ? '鎸佺画鏃堕棿' : '杩濇硶寤虹瓚鏉愭枡'" min-width="12">
+      </el-table-column>
+      <el-table-column prop="operation" label="鎿嶄綔" min-width="20">
+        <template slot-scope="scope">
+          <div class="operation">
+            <span @click="handleLearn(scope.row)">鍦ㄥ涔�</span>
+            <span class="line">|</span>
+            <span @click="handleNotDeal(scope.row)">鏆備笉澶勭悊</span>
+          </div>
+        </template>
+      </el-table-column>
+    </el-table>
+    <!-- tools -->
+    <div class="tools">
+      <div class="funs">
+        <div class="funsItem funs-sp">
+          <el-checkbox v-model="all" @change="selectAll()"
+          >鍏ㄩ��
+          </el-checkbox
+          >
+        </div>
+        <div class="funsItem funs-sp">
+          <el-checkbox v-model="unsame" @change="disSame(tableData)"
+          >鍙嶉��
+          </el-checkbox
+          >
+        </div>
+        <div class="funsItem">
+          <el-select
+              v-model="myIdx"
+              placeholder="鎵归噺鎿嶄綔"
+              @change="selectChange"
+          >
+            <el-option
+                v-for="item in options"
+                :key="item.value"
+                :label="item.label"
+                :value="item.value"
+                :disabled="item.disabled"
+            >
+            </el-option>
+          </el-select>
+        </div>
+      </div>
+      <div class="pagination">
+        <el-pagination
+            background
+            :current-page="currentPage"
+            layout="prev, pager, next"
+            :total="totalNum"
+            :page-size="pageSize"
+            @current-change="changeCurrentPage"
+            @prev-click="handlePrev"
+            @next-click="handleNext"
+        >
+        </el-pagination>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+import basecase from "@/api/operate/basecase";
+import helper from '@/utils/mydate'
+
+export default {
+  created() {
+    this.getInspectionData()
+  },
+  data() {
+    return {
+      preMyIdx: 0,
+      mystatus: 1,
+      tableData: [],
+      myIdx: 0,
+      options: [
+        {
+          value: 0,
+          label: "鎵归噺鎿嶄綔",
+          disabled: true,
+        },
+        {
+          value: 3,
+          label: "鎵归噺鍦ㄥ涔�",
+        },
+        {
+          value: 4,
+          label: "鎵归噺鏆備笉澶勭悊",
+        },
+      ],
+      totalNum: 0,
+      pageSize: 10,
+      currentPage: 1,
+      all: false,
+      unsame: false,
+      tempList:[]
+    }
+  },
+  methods: {
+    tableChange(list) {
+      this.tempList = [];
+      list.forEach((item) => {
+        this.tempList.push(item.id);
+      });
+      if (list.length === this.tableData.length) {
+        this.all = true;
+      } else {
+        this.all = false;
+      }
+    },
+    selectChange(list) {
+      if (this.tempList.length !== 0) {
+        if (list === 3) {
+          this.preMyIdx = list;
+          this.mulHandler(this.tempList, list);
+        }
+        if (list === 4) {
+          this.preMyIdx = list;
+          this.mulHandler(this.tempList, list);
+        }
+      } else {
+        this.myIdx = this.preMyIdx;
+        this.$message({
+          type: "warning",
+          message: "鎮ㄨ繕娌¢�変腑浠讳綍鏁版嵁",
+        });
+      }
+    },
+    mulHandler(ids, option) {
+      console.log("whj", ids, option)
+      console.log(this.options.filter(x => x.value === option))
+      const tag = this.options.filter(x => x.value === option)[0].label
+      if (option === 3) {
+        this.$confirm(`鎮ㄧ‘瀹氳${tag}鍚�?`)
+            .then((_) => {
+
+            })
+            .catch((err) => {
+              console.log(err);
+            });
+      } else if (option === 4) {
+        this.$confirm(`鎮ㄧ‘瀹氳${tag}鍚�?`)
+            .then((_) => {
+
+            })
+            .catch((err) => {
+              console.log(err);
+            });
+      }
+    },
+    handlePrev(page) {
+      this.currentPage = page;
+      this.getInspectionData();
+    },
+    handleNext(page) {
+      this.currentPage = page;
+      this.getInspectionData();
+    },
+    changeCurrentPage(page) {
+      this.currentPage = page;
+      this.getInspectionData();
+    },
+    selectAll() {
+      this.$refs.multipleTable.toggleAllSelection();
+    },
+    disSame(list) {
+      list.forEach((row) => {
+        this.$refs.multipleTable.toggleRowSelection(row);
+      });
+    },
+    tableRowClassName({row, rowIndex}) {
+      if ((rowIndex + 1) % 2 === 0) {
+        return 'warning-row';
+      } else {
+        return 'success-row';
+      }
+    },
+    getInspectionData() {
+      const params = {
+        current: this.currentPage,
+        size: this.pageSize,
+        state: 1,
+        resource: 1,
+        type: 1
+      }
+      basecase
+          .baseCasePoolList(params)
+          .then(({records, total}) => {
+            this.tableData = records;
+            this.totalNum = total;
+          })
+          .catch(err => this.$message.error(err))
+    },
+    async JumpView(data) {
+      await this.getEventInfo(data.code);
+    },
+    // 鑾峰彇妗堜欢淇℃伅
+    getEventInfo(code) {
+      this.$axios({
+        method: 'get',
+        url: `sccg/base_case/baseCaseDetail/${code}`
+      })
+          .then(res => {
+            this.info = res.data;
+            this.dialogView = true;
+          })
+    },
+    filterTime(time) {
+      return helper(time);
+    },
+    handleLearn({id}) {
+      this.$axios({
+        method: 'put',
+        url: 'sccg/base_case/case_status_update?caseId=' + id + '&state=' + 3
+      })
+          .then(res => {
+            if (res.code === 200) {
+              this.$notify({
+                title: '娓╅Θ鎻愮ず',
+                message: '姝や簨浠跺凡蹇界暐,杩斿洖绯荤粺鍦ㄥ涔�',
+                type: 'success',
+                position: 'bottom-right'
+              })
+              this.getInspectionData();
+            } else {
+              this.$message({
+                type: 'error',
+                message: '鎿嶄綔澶辫触'
+              })
+            }
+          })
+    },
+    // 鏆備笉澶勭悊
+    handleNotDeal({id}) {
+      this.$axios({
+        method: 'put',
+        url: 'sccg/base_case/case_status_update?caseId=' + id + '&state=' + 4
+      })
+          .then(res => {
+            if (res.code === 200) {
+              this.$notify({
+                title: '娓╅Θ鎻愮ず',
+                message: '姝や簨浠舵殏涓嶅鐞�,璇峰墠寰�鏆備笉澶勭悊鐣岄潰鏌ョ湅璇︽儏',
+                type: 'success',
+                position: 'bottom-right'
+              })
+              this.getInspectionData();
+            } else {
+              this.$message({
+                type: 'error',
+                message: '鎿嶄綔澶辫触'
+              })
+            }
+          })
+    },
+  }
+}
+</script>
+
+<style scoped lang="scss">
+
+.tools {
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+  padding: 0 20px;
+
+  .funs-sp {
+    border: 1px solid #17324c;
+  }
+
+  .funs {
+    display: flex;
+
+    .funsItem {
+      line-height: 28px;
+      display: flex;
+      align-items: center;
+      border-radius: 4px;
+      font-size: 12px;
+      margin-left: 10px;
+
+      .el-checkbox {
+        width: 80px;
+        padding: 0 10px;
+      }
+
+      .el-select {
+        width: 120px;
+      }
+
+      &::v-deep .el-input__inner {
+        border: none;
+        background-color: #09152f;
+      }
+
+      &:hover {
+        border: 1px solid #4b9bb7;
+      }
+
+      &:hover .el-checkbox {
+        color: #4b9bb7;
+      }
+    }
+  }
+
+  .pagination {
+    margin-top: 50px;
+    display: flex;
+    line-height: 50px;
+    justify-content: center;
+
+    .el-pagination {
+      &::v-deep li,
+      &::v-deep .btn-prev,
+      &::v-deep .btn-next {
+        background-color: #071f39;
+        color: #4b9bb7;
+      }
+
+      &::v-deep .active {
+        background-color: #409eff;
+        color: #fff;
+      }
+    }
+  }
+}
+
+.el-table {
+  color: #4b9bb7;
+  font-size: 10px;
+
+  .operation {
+    display: flex;
+
+    .line {
+      padding: 0 5px;
+    }
+
+    span:hover {
+      cursor: pointer;
+    }
+  }
+}
+
+</style>

--
Gitblit v1.8.0