From 67cc1463320874211a09fee5c1b3b1fecf6d5a7c Mon Sep 17 00:00:00 2001
From: zhanghua <314079846@qq.com>
Date: 星期五, 10 十一月 2023 13:40:57 +0800
Subject: [PATCH] Merge branch 'dev1.0' of http://42.193.1.25:9521/r/sccg_ui into dev1.0

---
 src/views/intelligentPatrol/studyJudge/index.vue |  452 ++++++++++++++++++++++----------------------------------
 1 files changed, 177 insertions(+), 275 deletions(-)

diff --git a/src/views/intelligentPatrol/studyJudge/index.vue b/src/views/intelligentPatrol/studyJudge/index.vue
index dfda0f8..fd6310b 100644
--- a/src/views/intelligentPatrol/studyJudge/index.vue
+++ b/src/views/intelligentPatrol/studyJudge/index.vue
@@ -31,46 +31,44 @@
           <!--            <span>{{ currentEvent.address }}</span>-->
           <!--          </div>-->
           <span @click="openDialogTable" class="count-data-span"
-          >鎮ㄦ湁{{ countData.review }}鏉″緟瀹℃牳鎶ヨ淇℃伅,浠婃棩绔嬫{{
+            >鎮ㄦ湁{{ 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="ill" />
+            <!-- <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="ill" />
+          <div class="img-item" v-for="item in imageList" :key="item.id">
+            <!-- <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"
+            ref="currentEvent"
+            label-width="120px"
+            :model="eventInfoData"
+            :rules="rules"
+            label-position="left"
+            class="left-form"
           >
-            <el-form-item label="浜嬩欢缂栧彿:">
+            <!-- <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>
@@ -92,78 +90,25 @@
           <!-- <iframe src="https://183.245.159.161:8282/OneMap/index.html#/OneMap?code=2&clientVersion=&skin=white&locale=zh&otherAuthor=allowable"></iframe> -->
         </div>
         <div class="sjm-content-right">
-          <div class="header">
-            <el-form
-                :inline="true"
-                :model="seachData"
-                class="demo-form-inline"
-            >
-              <el-form-item label="浜嬩欢绫诲瀷">
-                <el-cascader
-                    v-model="seachData.gradeId"
-                    :options="eventGradeOptions"
-                    :props="options"
-                    clearable
-                ></el-cascader>
-              </el-form-item>
-              <el-form-item label="鍙戠敓鐐逛綅">
-                <el-select
-                    v-model="seachData.videoId"
-                    placeholder="璇烽�夋嫨"
-                >
-                  <el-option
-                      v-for="item in videoOptions"
-                      :key="item.id"
-                      :label="item.name"
-                      :value="item.id"
-                  ></el-option>
-                </el-select>
-              </el-form-item>
-              <el-form-item label="鎶ヨ鏃堕棿">
-                <el-date-picker
-                    v-model="seachData.alarmTime"
-                    type="daterange"
-                    align="right"
-                    unlink-panels
-                    range-separator="鑷�"
-                    start-placeholder="寮�濮嬫棩鏈�"
-                    end-placeholder="缁撴潫鏃ユ湡"
-                >
-                </el-date-picker>
-              </el-form-item>
-              <el-form-item>
-                <el-button
-                    type="primary"
-                    @click="getInspectionData"
-                >鏌ヨ</el-button
-                >
-                <el-button type="primary" @click="resetAll"
-                >閲嶇疆</el-button
-                >
-              </el-form-item>
-            </el-form>
-          </div>
           <div class="card-box">
             <div class="but-live">
-              <el-button
-                  size="small"
-                  @click="createVideo(currentEvent, 'live')"
-              >瀹炴椂棰勮</el-button
+              <el-button size="small" @click="createVideo(currentEvent, 'live')"
+                >瀹炴椂棰勮</el-button
               >
               <el-button
-                  size="small"
-                  @click="createVideo(currentEvent, 'playback')"
-              >褰曞儚鍥炴斁</el-button
+                size="small"
+                @click="createVideo(currentEvent, 'playback')"
+                >褰曞儚鍥炴斁</el-button
               >
             </div>
             <div class="card-header">
-              <span>鎶ヨ璁板綍--{{ currentEvent.algoName }}</span>
+              <span>鎶ヨ璁板綍--{{ currentEvent.alarmName }}</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>-->
@@ -182,90 +127,84 @@
               <!--              </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>
+              <el-form-item v-if="eventInfoData.store" label="搴楅摵寰楀垎:">
+                <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-button @click="pageChange('next')">涓嬩竴鏉�</el-button>
               </el-form-item>
             </el-form>
           </div>
@@ -274,23 +213,20 @@
     </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 class="dom" style="width: 100%; height: 600px; position: relative">
         <div id="dom1" class="dom1"></div>
       </div>
     </el-dialog>
@@ -307,41 +243,42 @@
 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 InspectionTable from "@/views/intelligentPatrol/studyJudge/inspectionTable/index.vue";
 // import MyMap from "@/components/map";
 import MyMap from "@/components/map/leafletMap.vue";
-import videoPoint from "@/api/system/videoPoint";
-import { getTypeList } from "@/utils/helper"
 
 export default {
-  components: { MyDispatch, MyMap, InspectionTable },
+  components: { MyDispatch, MyMap },
   created() {
-    this.loadVideo();
-    this.loadEventGrade();
-    this.getInspectionData();
+    if (this.info) {
+      this.currentEvent = this.info;
+      this.loadData();
+    } else {
+      this.getInspectionData();
+    }
     this.initEventParams();
     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(() => {
@@ -361,7 +298,6 @@
       }
     };
     return {
-      ill:'',
       isShowTable: false,
       timer: null,
       countData: {
@@ -372,7 +308,7 @@
       currentEvent: {},
       stateList: [
         {
-          id: 2,
+          id: 10,
           label: "涓婃姤",
         },
         {
@@ -437,40 +373,18 @@
       point: null,
       mark: null,
       zoom: null,
-      eventGradeOptions: [],
-      videoOptions: [],
-      options: {
-        label: 'name',
-        value: 'id',
-      },
-      seachData: {}
     };
   },
   methods: {
-    loadVideo() {
-      videoPoint
-          .getVideoPointList({
-            current: 1,
-            size: 1000
-          })
-          .then(({ records, total }) => {
-            this.videoOptions = records;
-          })
-    },
-    loadEventGrade() {
-      getTypeList("1", "02").then((result) => {
-        this.eventGradeOptions = result;
-      })
-    },
     getInspectionCount() {
       basecase
-          .getInspectionCountData({
-            showLoading: false,
-          })
-          .then((res) => {
-            this.countData = res;
-          })
-          .catch((err) => this.$message.error(err));
+        .getInspectionCountData({
+          showLoading: false,
+        })
+        .then((res) => {
+          this.countData = res;
+        })
+        .catch((err) => this.$message.error(err));
     },
     openDialogTable() {
       this.isShowTable = true;
@@ -487,71 +401,57 @@
     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]
+        data.beginTime = this.seachData.alarmTime[0];
+        data.endTime = this.seachData.alarmTime[1];
+      }
+      if (this.seachData.gradeId) {
+        data.gradeId = this.seachData.gradeId[1];
       }
       basecase
-          .getInspectionData(data)
-          .then(({ records, total }) => {
-            this.countData.review = total
-            if (records.length > 0) {
-              this.currentEvent = records[0];
-              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}`);
-              }
-              if (this.currentEvent.picData){
-                this.$axios({
-                  url:'sccg/API/img?fileUrl='+this.currentEvent.picData,
-                  method:"get",
-                  responseType: 'blob'
-                }).then(res=>{
-
-                  const blob = new Blob([res])
-                  var reader = new window.FileReader();
-                  reader.readAsDataURL(blob);
-                  reader.onloadend = function () {
-                    this.ill= reader.result
-                  }
-
-                })
-              }
-              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)}灏忔椂`;
-              }
-            } else {
-              this.currentEvent = {}
-              this.$message("褰撳墠鏌ヨ鏉′欢鏃犳暟鎹�");
-            }
-          })
-          .catch((err) => this.$message.error(err));
+        .getInspectionData(data)
+        .then(({ records, total }) => {
+          this.countData.review = total;
+          if (records.length > 0) {
+            this.currentEvent = records[0];
+            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) => {
@@ -592,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() {
@@ -690,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();
@@ -768,13 +668,15 @@
       return y + "-" + m + "-" + d + " " + h + ":" + minute + ":" + second;
     },
     resetAll() {
-      this.seachData = {}
-    }
+      this.seachData = {};
+    },
   },
   beforeDestroy() {
     clearInterval(this.timer);
     this.timer = null;
   },
+
+  props: ["info", "seachData"],
 };
 </script>
 

--
Gitblit v1.8.0