From f96e393e62b4c7496f7ace44b6aa5abb69ae58df Mon Sep 17 00:00:00 2001
From: zhanghua <314079846@qq.com>
Date: 星期一, 11 九月 2023 21:54:55 +0800
Subject: [PATCH] bug修改

---
 src/views/intelligentPatrol/studyJudge/index.vue |  361 ++++++++++++++++++++++++++++++---------------------
 1 files changed, 213 insertions(+), 148 deletions(-)

diff --git a/src/views/intelligentPatrol/studyJudge/index.vue b/src/views/intelligentPatrol/studyJudge/index.vue
index 6b983fd..9c9c348 100644
--- a/src/views/intelligentPatrol/studyJudge/index.vue
+++ b/src/views/intelligentPatrol/studyJudge/index.vue
@@ -30,40 +30,45 @@
           <!--            <span class="moni-area">{{ currentEvent.street }}</span>-->
           <!--            <span>{{ currentEvent.address }}</span>-->
           <!--          </div>-->
-          <span
-          >鎮ㄦ湁{{ countData.review }}鏉″緟瀹℃牳鎶ヨ淇℃伅,浠婃棩绔嬫{{
+          <span @click="openDialogTable" class="count-data-span"
+            >鎮ㄦ湁{{ countData.review }}鏉″緟瀹℃牳鎶ヨ淇℃伅,浠婃棩绔嬫{{
               countData.register
             }}鏉�,鍐嶅涔爗{ countData.study }}鏉�</span
           >
           <div class="sjm-header-left">
-            <span class="moni-name">鐩戞帶鐐逛綅鍚嶇О: {{ currentEvent.name }} </span>
+            <span class="moni-name"
+              >鐩戞帶鐐逛綅鍚嶇О: {{ currentEvent.name }}
+            </span>
             <span class="moni-area">{{ currentEvent.street }}</span>
             <span>{{ currentEvent.address }}</span>
           </div>
           <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" /> -->
+            <el-image style="width:240px"  :src="item" :preview-src-list="[item]"> </el-image>
             <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" /> -->            
+            <el-image style="width:240px" :src="item" :preview-src-list="[item]"> </el-image>
           </div>
           <el-form
-              ref="currentEvent"
-              label-width="120px"
-              :model="eventInfoData"
-              :rules="rules"
-              label-position="left"
-              class="left-form">
-            <el-form-item label="浜嬩欢缂栧彿:">
+            ref="currentEvent"
+            label-width="120px"
+            :model="eventInfoData"
+            :rules="rules"
+            label-position="left"
+            class="left-form"
+          >
+            <!-- <el-form-item label="浜嬩欢缂栧彿:">
               <span>{{ currentEvent.code }}</span>
-            </el-form-item>
+            </el-form-item> -->
             <el-form-item label="浜嬩欢绛夌骇:">
               <span>{{ currentEvent.grade }}</span>
             </el-form-item>
@@ -80,7 +85,7 @@
         </div>
         <div class="sjm-content-center">
           <div class="map">
-            <MyMap></MyMap>
+            <MyMap :point="point" :zoom="zoom" :mark="mark"></MyMap>
           </div>
           <!-- <iframe src="https://183.245.159.161:8282/OneMap/index.html#/OneMap?code=2&clientVersion=&skin=white&locale=zh&otherAuthor=allowable"></iframe> -->
         </div>
@@ -88,20 +93,22 @@
           <div class="card-box">
             <div class="but-live">
               <el-button size="small" @click="createVideo(currentEvent, 'live')"
-              >瀹炴椂棰勮</el-button
+                >瀹炴椂棰勮</el-button
               >
-              <el-button size="small" @click="createVideo(currentEvent, 'playback')"
-              >褰曞儚鍥炴斁</el-button
+              <el-button
+                size="small"
+                @click="createVideo(currentEvent, 'playback')"
+                >褰曞儚鍥炴斁</el-button
               >
             </div>
             <div class="card-header">
               <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>-->
@@ -120,82 +127,82 @@
               <!--              </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>
@@ -206,22 +213,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>
@@ -233,47 +243,47 @@
 import { FILE_ORIGINAL_URL } from "@/utils";
 import { validateCarNum } from "@/utils/validate";
 import MyDispatch from "@/components/dispatch";
-
-import MyMap from "@/components/map";
+// import InspectionTable from "@/views/intelligentPatrol/studyJudge/inspectionTable/index.vue";
+// import MyMap from "@/components/map";
+import MyMap from "@/components/map/leafletMap.vue";
 
 export default {
   components: { MyDispatch, MyMap },
   created() {
-    this.getInspectionData();
+    if (this.info) {
+      this.currentEvent = this.info;
+      this.loadData();
+    } else {
+      this.getInspectionData();
+    }
     this.initEventParams();
-    basecase
-        .getInspectionCountData()
-        .then((res) => {
-          this.countData = res;
-        })
-        .catch((err) => this.$message.error(err));
-
+    this.getInspectionCount();
     getStoreInfoList({ current: 1, size: 100 })
-        .then(({ list }) => {
-          this.storeList = list;
-        })
-        .catch((err) => {
-          this.$message.error(err);
-        });
+      .then(({ list }) => {
+        this.storeList = list;
+      })
+      .catch((err) => {
+        this.$message.error(err);
+      });
 
     baseInfo
-        .getCategoryList()
-        .then((res) => {
-          this.categoryOptions = res;
-        })
-        .catch((err) => this.$message.error(err));
+      .getCategoryList()
+      .then((res) => {
+        this.categoryOptions = res;
+      })
+      .catch((err) => this.$message.error(err));
 
     baseInfo
-        .getTypeList()
-        .then((res) => {
-          this.typeList = res;
-        })
-        .catch((err) => this.$message.error(err));
+      .getTypeList()
+      .then((res) => {
+        this.typeList = res;
+      })
+      .catch((err) => this.$message.error(err));
   },
   mounted() {
     this.timer = setInterval(() => {
-      setTimeout(this.getInspectionData, 0);
-    }, 1000 * 10);
+      this.getInspectionCount();
+    }, 1000 * 60 * 15);
   },
   data() {
     const validateCarNumber = (rule, value, callback) => {
@@ -288,6 +298,7 @@
       }
     };
     return {
+      isShowTable: false,
       timer: null,
       countData: {
         study: 0,
@@ -297,7 +308,7 @@
       currentEvent: {},
       stateList: [
         {
-          id: 2,
+          id: 10,
           label: "涓婃姤",
         },
         {
@@ -359,9 +370,25 @@
       domId: "dom1",
       ctrl: "ctrl1",
       playType: "live",
+      point: null,
+      mark: null,
+      zoom: null,
     };
   },
   methods: {
+    getInspectionCount() {
+      basecase
+        .getInspectionCountData({
+          showLoading: false,
+        })
+        .then((res) => {
+          this.countData = res;
+        })
+        .catch((err) => this.$message.error(err));
+    },
+    openDialogTable() {
+      this.isShowTable = true;
+    },
     pageChange(type) {
       if (type === "next") {
         this.currentPage += 1;
@@ -372,35 +399,59 @@
     },
 
     getInspectionData() {
+      let data = {
+        current: this.currentPage,
+        pageSize: 1,
+        videoId: this.seachData.videoId,
+      };
+      if (this.seachData.alarmTime) {
+        data.beginTime = this.seachData.alarmTime[0];
+        data.endTime = this.seachData.alarmTime[1];
+      }
+      if (this.seachData.gradeId) {
+        data.gradeId = this.seachData.gradeId[1];
+      }
       basecase
-          .getInspectionData({ current: this.currentPage })
-          .then(({ records }) => {
+        .getInspectionData(data)
+        .then(({ records, total }) => {
+          this.countData.review = total;
+          if (records.length > 0) {
             this.currentEvent = records[0];
-            if (this.currentEvent?.picData) {
-              this.imageList = this.currentEvent.picData
-                  .split(",")
-                  .map((item) => `${FILE_ORIGINAL_URL}${item}`);
-            }
-            if (
-                this.currentEvent?.alarmTime ||
-                this.currentEvent?.currentAlarmTime
-            ) {
-              const { alarmTime, currentAlarmTime } = this.currentEvent;
-              const continueAlarmTime =
-                  new Date().getTime() -
-                  (currentAlarmTime
-                      ? new Date(currentAlarmTime).getTime()
-                      : new Date(alarmTime).getTime());
-              const CONTINUE_DAY = continueAlarmTime / 1000 / 60 / 60 / 24;
-              const CONTINUE_HOURS = (CONTINUE_DAY - parseInt(CONTINUE_DAY)) * 24;
-              this.currentEvent.conntinueTime = `${parseInt(
-                  CONTINUE_DAY
-              )}澶�${parseInt(CONTINUE_HOURS)}灏忔椂`;
-            }
-          })
-          .catch((err) => this.$message.error(err));
+            this.loadData();
+          } else {
+            this.currentEvent = {};
+            this.$message("褰撳墠鏌ヨ鏉′欢鏃犳暟鎹�");
+          }
+        })
+        .catch((err) => this.$message.error(err));
     },
-
+    loadData() {
+      this.point = {
+        x: this.currentEvent.longitude,
+        y: this.currentEvent.latitude,
+      };
+      this.zoom = 18;
+      this.mark = { title: this.currentEvent.address };
+      if (this.currentEvent?.picData) {
+        this.imageList = this.currentEvent.picData
+          .split(",")
+          .map((item) => `${FILE_ORIGINAL_URL}sccg/API/img?fileUrl=${item}`);
+        // this.imageList =['https://www.shutterstock.com/image-photo/grandmother-holding-grandson-her-lap-600w-1954531321.jpg','https://www.shutterstock.com/image-photo/grandmother-holding-grandson-her-lap-600w-1954531321.jpg']
+      }
+      if (this.currentEvent?.alarmTime || this.currentEvent?.currentAlarmTime) {
+        const { alarmTime, currentAlarmTime } = this.currentEvent;
+        const continueAlarmTime =
+          new Date().getTime() -
+          (currentAlarmTime
+            ? new Date(currentAlarmTime).getTime()
+            : new Date(alarmTime).getTime());
+        const CONTINUE_DAY = continueAlarmTime / 1000 / 60 / 60 / 24;
+        const CONTINUE_HOURS = (CONTINUE_DAY - parseInt(CONTINUE_DAY)) * 24;
+        this.currentEvent.conntinueTime = `${parseInt(
+          CONTINUE_DAY
+        )}澶�${parseInt(CONTINUE_HOURS)}灏忔椂`;
+      }
+    },
     // 纭鐐瑰嚮浜嬩欢
     handleConfirm() {
       this.$refs.currentEvent.validate((flag) => {
@@ -441,13 +492,13 @@
       const eventParams = Object.assign({}, this.eventInfoData);
       delete eventParams.store;
       basecase
-          .confirmInspection({ ...eventParams, ...data })
-          .then(() => {
-            this.$message.success("鎿嶄綔鎴愬姛");
-            this.getInspectionData();
-            this.initEventParams();
-          })
-          .catch((err) => this.$message.error(err));
+        .confirmInspection({ ...eventParams, ...data })
+        .then(() => {
+          this.$message.success("鎿嶄綔鎴愬姛");
+          this.getInspectionData();
+          this.initEventParams();
+        })
+        .catch((err) => this.$message.error(err));
     },
 
     closeDialog() {
@@ -476,8 +527,8 @@
         if (res) {
           // 杩炴帴瀹㈡埛绔垚鍔�
           this.ws.login({
-            loginIp: "183.245.159.161",
-            loginPort: "8282",
+            loginIp: "172.28.194.180",
+            loginPort: "7902",
             userName: "suichang",
             userPwd: "a12345677",
             https: 1,
@@ -539,14 +590,14 @@
         // });
 
         _this.ws
-            .createCtrl(params)
-            .then((res) => {
-              this.$message.success("鍒涘缓鎴愬姛");
-              console.log("res", res);
-            })
-            .catch((e) => {
-              console.log("error;", e);
-            });
+          .createCtrl(params)
+          .then((res) => {
+            this.$message.success("鍒涘缓鎴愬姛");
+            console.log("res", res);
+          })
+          .catch((e) => {
+            console.log("error;", e);
+          });
 
         if (ctrlType == "playback") {
           const end = new Date();
@@ -616,11 +667,16 @@
       second = second < 10 ? "0" + second : second;
       return y + "-" + m + "-" + d + " " + h + ":" + minute + ":" + second;
     },
+    resetAll() {
+      this.seachData = {};
+    },
   },
   beforeDestroy() {
     clearInterval(this.timer);
     this.timer = null;
   },
+
+  props: ["info", "seachData"],
 };
 </script>
 
@@ -668,8 +724,12 @@
 
       .sjm-content-left {
         line-height: 4.8vh;
-        .left-form> ::v-deep.el-form-item__label{
-          font-size: 16px!important;
+        .count-data-span {
+          cursor: pointer;
+          color: #66b1ff;
+        }
+        .left-form > ::v-deep.el-form-item__label {
+          font-size: 16px !important;
         }
         .img-item {
           display: flex;
@@ -684,10 +744,12 @@
           margin-top: 2vh;
         }
       }
-
+      .sjm-content-center {
+        width: calc(100% - 920px);
+      }
       .sjm-content-right {
         .card-box {
-          .but-live{
+          .but-live {
             padding-left: 48px;
             line-height: 4.8vh;
           }
@@ -702,7 +764,7 @@
 
   .el-form {
     ::v-deep .el-form-item {
-      margin-bottom: 5px;
+      margin-bottom: 15px;
     }
 
     ::v-deep .el-form-item__label {
@@ -716,7 +778,10 @@
 }
 
 .map {
-  height: 488px;
+  height: 100%;
   min-width: 460px;
 }
+.header {
+  line-height: normal;
+}
 </style>

--
Gitblit v1.8.0