From 88335bf57b7a4690b787bcdd65a78c038b852e4d Mon Sep 17 00:00:00 2001
From: zhanghua <314079846@qq.com>
Date: 星期一, 12 六月 2023 09:46:06 +0800
Subject: [PATCH] 案件上传图片和视频

---
 src/views/operate/disposal/casepool/learn/updateUser/uploadResult/components/arrive/index.vue      |    2 
 src/views/operate/disposal/casepool/dispatch/updateUser/uploadResult/components/arrive/index.vue   |    6 
 src/views/operate/disposal/casepool/dispatch/updateUser/uploadResult/components/book/index.vue     |   24 
 src/views/operate/disposal/casepool/pool/createUser/vio/index.vue                                  | 1361 +++++++++++++++++++++++++++--------------------
 src/views/operate/disposal/casepool/learn/updateUser/uploadResult/components/evidence/index.vue    |    2 
 src/views/systemSetting/platform/portalSetting/index.vue                                           |    2 
 src/views/operate/log/index.vue                                                                    |    2 
 src/components/myUpload/media.vue                                                                  |  192 ++++++
 src/views/operate/images/updateUser/index.vue                                                      |    3 
 src/api/logs.js                                                                                    |   46 +
 src/components/illdetail/index.vue                                                                 |    6 
 src/views/operate/disposal/casepool/dispatch/updateUser/uploadResult/components/evidence/index.vue |    6 
 src/views/operate/disposal/casepool/escalation/createUser/ill/index.vue                            |    9 
 src/views/operate/disposal/casepool/notDeal/updateUser/uploadResult/components/arrive/index.vue    |    2 
 src/views/operate/disposal/casepool/notDeal/updateUser/uploadResult/components/evidence/index.vue  |    2 
 15 files changed, 1,033 insertions(+), 632 deletions(-)

diff --git a/src/api/logs.js b/src/api/logs.js
index 95fec44..f23943f 100644
--- a/src/api/logs.js
+++ b/src/api/logs.js
@@ -1,29 +1,39 @@
 import axios from "axios";
-import {getToken} from '@/utils/helper'
+import http from "@/http";
+import {
+    getToken
+} from '@/utils/helper'
 const baseUrl = '/sccg/log_manage'
 const token = {
-    'Authorization':getToken()
+    'Authorization': getToken()
 }
 export default {
     // 鑾峰彇鏃ュ織鍒楄〃
-    getLogsList: (data) => axios({
-        method: 'get',
-        url: baseUrl+'/query',
-        headers:{...token},
-        params: data
-    }),
+    // getLogsList: (data) => axios({
+    //     method: 'get',
+    //     url: baseUrl+'/query',
+    //     headers:{...token},
+    //     params: data
+    // }),
+    getLogsList: (params) => {
+        return http.get('/sccg/log_manage/query', params);
+    },
     // 鑾峰彇鏃ュ織鎿嶄綔绫诲瀷
-    getLogsOperationType:() => axios({
-        method:'get',
-        url:baseUrl+'/query_operationType',
-        headers:{...token},
+    getLogsOperationType: () => axios({
+        method: 'get',
+        url: baseUrl + '/query_operationType',
+        headers: {
+            ...token
+        },
     }),
     // 瀵煎嚭鏃ュ織
-    exportLogs:(data)=>axios({
-        method:'post',
-        url:baseUrl+'/export',
-        headers:{...token},
-        params:data,
+    exportLogs: (data) => axios({
+        method: 'post',
+        url: baseUrl + '/export',
+        headers: {
+            ...token
+        },
+        params: data,
         responseType: 'arraybuffer',
     })
-};  
+};
\ No newline at end of file
diff --git a/src/components/illdetail/index.vue b/src/components/illdetail/index.vue
index fc24c26..308757c 100644
--- a/src/components/illdetail/index.vue
+++ b/src/components/illdetail/index.vue
@@ -130,6 +130,8 @@
           <MyFilePicture
             v-else-if="activeIndex === 2"
             :filesPictureVo="filesPictureVo"
+            :pic="pic"
+            :media="media"
             :mycode="mycode"
           ></MyFilePicture>
           <MySovleProblem
@@ -185,16 +187,16 @@
       handlePassVo: {},
       currentSitVo: {},
       filesPictureVo: {},
+      pic:[],
+      media:[]
     };
   },
   created() {
-    console.log("created");
     const { info } = this;
     this.baseCase = info.baseCase;
     this.handlePassVo = info.handlePassVo;
     this.currentSitVo = info.currentSitVo;
     this.filesPictureVo = info.filesPictureVo;
-    console.log(info);
   },
   methods: {
     changeComponent(index) {
diff --git a/src/components/myUpload/media.vue b/src/components/myUpload/media.vue
new file mode 100644
index 0000000..22c9c0f
--- /dev/null
+++ b/src/components/myUpload/media.vue
@@ -0,0 +1,192 @@
+<template>
+  <div class="my-upload">
+    <div v-if="pictureList.length > 0" class="image-box">
+      <div
+        v-for="image in pictureList"
+        :class="{
+          'image-box-item': true,
+          'image-box-item-cover': isShowUpload,
+        }"
+      >
+        <span
+          v-if="isShowUpload"
+          @click="handleDeletePicture(image)"
+          class="image-delete-icon el-icon-delete"
+        ></span>
+        <video controls :src="image" width="100%" height="100%" />
+      </div>
+    </div>
+    <el-upload
+      v-if="isShowUpload && pictureList.length < limit"
+      :file-list="fileList"
+      v-loading="loading"
+      element-loading-spinner="el-icon-loading"
+      element-loading-background="rgba(0, 0, 0, 0.8)"
+      action=""
+      :multiple="multiple"
+      :show-file-list="flag"
+      :limit="limit"
+      :list-type="listType"
+      :auto-upload="true"
+      :http-request="handleUpload"
+      style="margin-left: 14px"
+    >
+      <div class="upload-btn">
+        <i class="el-icon-plus"></i>
+        <span>涓婁紶瑙嗛</span>
+      </div>
+    </el-upload>
+  </div>
+</template>
+<script>
+import imageManagement from "@/api/operate/imageManagement";
+
+export default {
+  data() {
+    return {
+      // 鏂囦欢鍒楄〃
+      fileList: [],
+      // 鏄惁鏄剧ず鏂囦欢鍒楄〃
+      flag: false,
+      // 澶氶��
+      multiple: false,
+      // 闄愬埗
+      limit: 4,
+      // 鏂囦欢鍒楄〃绫诲瀷
+      listType: "picture-card",
+      loading: false,
+    };
+  },
+  methods: {
+    // 楠岃瘉涓婁紶鏂囦欢
+    validateFile(file) {
+      const isMp4 = file.type === "video/mp4";
+      // 闄愬埗鏂囦欢鏈�澶т笉鑳借秴杩� 300M
+      const isLt2M = file.size / 1024 / 1024 < 300;
+
+      if (!isMp4) {
+        this.$message.error("瑙嗛鍙兘鏄痬p4鏍煎紡!");
+      }
+      if (!isLt2M) {
+        this.$message.error("涓婁紶澶村儚鍥剧墖澶у皬涓嶈兘瓒呰繃 300MB!");
+      }
+      return isMp4 && isLt2M;
+    },
+
+    handleUpload(data) {
+      this.loading = true;
+      const { file } = data;
+      const validate = this.validateFile(file);
+      if (!validate) {
+        return;
+      }
+      const formData = new FormData();
+      formData.append("file", file);
+      imageManagement
+        .importImage(formData)
+        .then((url) => {
+          // .then(({ url1, url2, url3, url4 }) => {
+          //   debugger
+          //   const url = url1 ?? url2 ?? url3 ?? url4;
+          this.$emit("setPictureUrl", { url: url });
+          this.loading = false;
+        })
+        .catch((err) => {
+          this.loading = false;
+          this.$message.error(err);
+        });
+    },
+
+    handleDeletePicture(imageUrl) {
+      this.$emit("delPictureUrl", { url: imageUrl });
+    },
+  },
+  props: {
+    pictureList: {
+      type: Array,
+      default: () => [],
+    },
+    isShowUpload: {
+      type: Boolean,
+      default: () => true,
+    },
+  },
+};
+</script>
+<style lang="scss" scoped>
+.my-upload {
+  display: flex;
+  flex-wrap: nowrap;
+  justify-content: flex-start;
+  margin-right: 5px;
+
+  .upload-btn {
+    display: flex;
+    flex-direction: column;
+    justify-content: center;
+    align-items: center;
+    border-radius: 4px;
+    width: 100px;
+    height: 100px;
+
+    &:hover i {
+      color: #409eff;
+    }
+
+    i {
+      font-size: 30px;
+      font-weight: 650;
+    }
+
+    span {
+      line-height: 22px;
+    }
+  }
+  .image-box {
+    display: flex;
+    flex-wrap: wrap;
+    height: 100px;
+
+    .image-content {
+      width: 100px;
+      height: 100px;
+    }
+
+    .image-delete-icon {
+      position: absolute;
+      top: 45px;
+      left: 45px;
+      opacity: 0;
+    }
+
+    .image-box-item {
+      position: sticky;
+      margin: 0 10px;
+    }
+
+    .image-box-item-cover:hover {
+      .image-content {
+        box-shadow: #ffffff;
+        opacity: 0.5;
+      }
+
+      .image-delete-icon {
+        color: red;
+        font-size: 14px;
+        z-index: 2;
+        opacity: 1;
+        cursor: pointer;
+      }
+    }
+  }
+
+  :deep(.el-upload--picture-card) {
+    width: 100px;
+    height: 100px;
+  }
+  :deep(.el-upload-list__item) {
+    width: 100px;
+    height: 100px;
+  }
+}
+</style>
\ No newline at end of file
diff --git a/src/views/operate/disposal/casepool/dispatch/updateUser/uploadResult/components/arrive/index.vue b/src/views/operate/disposal/casepool/dispatch/updateUser/uploadResult/components/arrive/index.vue
index 45b8a07..92a489b 100644
--- a/src/views/operate/disposal/casepool/dispatch/updateUser/uploadResult/components/arrive/index.vue
+++ b/src/views/operate/disposal/casepool/dispatch/updateUser/uploadResult/components/arrive/index.vue
@@ -104,7 +104,7 @@
   },
   methods: {
         handleSuccess(res, file, filelist) {
-            const baseUrl = 'http://140.143.152.226:8410/';
+            const baseUrl = '';
             if (this.arrive.situationPic.length < 4) {
                 this.arrive.situationPic.push(baseUrl + res.data.url1)
             }
@@ -127,14 +127,14 @@
         },
         // 璁剧疆涓婁紶鎴愬姛涔嬪悗鐨勫浘鐗囧湴鍧�
         setPicUrl({ url }) {
-            const baseUrl = 'http://140.143.152.226:8410/';
+            const baseUrl = '';
             if (this.arrive.situationPic.length < 4) {
                 this.arrive.situationPic.push(baseUrl + url)
             }
         },
         //鍒犻櫎鍥剧墖
         delPicUrl({url}){
-            const baseUrl = 'http://140.143.152.226:8410/';
+            const baseUrl = '';
             this.arrive.situationPic.splice(this.arrive.situationPic.indexOf(baseUrl + url),1);
         }
     }
diff --git a/src/views/operate/disposal/casepool/dispatch/updateUser/uploadResult/components/book/index.vue b/src/views/operate/disposal/casepool/dispatch/updateUser/uploadResult/components/book/index.vue
index 0198d0c..8d828fd 100644
--- a/src/views/operate/disposal/casepool/dispatch/updateUser/uploadResult/components/book/index.vue
+++ b/src/views/operate/disposal/casepool/dispatch/updateUser/uploadResult/components/book/index.vue
@@ -262,25 +262,25 @@
     props: ['caseId', 'closeDialog','mycode', 'writ', 'illegalType'],
     methods: {
         handleSuccess1(res, file, filelist) {
-            const baseUrl = 'http://140.143.152.226:8410/';
+            const baseUrl = '';
             if (this.book.writPic.length < 4) {
                 this.book.writPic.push(baseUrl + res.data.url1)
             }
         },
         handleSuccess2(res, file, filelist) {
-            const baseUrl = 'http://140.143.152.226:8410/';
+            const baseUrl = '';
             if (this.book.originalPic.length < 4) {
                 this.book.originalPic.push(baseUrl + res.data.url1)
             }
         },
         handleSuccess3(res, file, filelist) {
-            const baseUrl = 'http://140.143.152.226:8410/';
+            const baseUrl = '';
             if (this.book.rectifiedPic.length < 4) {
                 this.book.rectifiedPic.push(baseUrl + res.data.url1)
             }
         },
         handleSuccess4(res, file, filelist) {
-            const baseUrl = 'http://140.143.152.226:8410/';
+            const baseUrl = '';
             if (this.book.otherPic.length < 4) {
                 this.book.otherPic.push(baseUrl + res.data.url1)
             }
@@ -295,52 +295,52 @@
        
             // 璁剧疆涓婁紶鎴愬姛涔嬪悗鐨勫浘鐗囧湴鍧�
             writPic({ url }) {
-            const baseUrl = 'http://140.143.152.226:8410/';
+            const baseUrl = '';
             if (this.book.originalPic.length < 4) {
                 this.book.writPic.push(baseUrl + url)
             }
         },
         //鍒犻櫎鍥剧墖
         delWritPic({url}){
-            const baseUrl = 'http://140.143.152.226:8410/';
+            const baseUrl = '';
             this.book.writPic.splice(this.book.writPic.indexOf(baseUrl + url),1);
         },
 
  // 璁剧疆涓婁紶鎴愬姛涔嬪悗鐨勫浘鐗囧湴鍧�
         otherPic({ url }) {
-            const baseUrl = 'http://140.143.152.226:8410/';
+            const baseUrl = '';
             if (this.book.otherPic.length < 4) {
                 this.book.otherPic.push(baseUrl + url)
             }
         },
         //鍒犻櫎鍥剧墖
         delOtherPic({url}){
-            const baseUrl = 'http://140.143.152.226:8410/';
+            const baseUrl = '';
             this.book.otherPic.splice(this.book.otherPic.indexOf(baseUrl + url),1);
         },
          
          // 璁剧疆涓婁紶鎴愬姛涔嬪悗鐨勫浘鐗囧湴鍧�
          rectifiedPic({ url }) {
-            const baseUrl = 'http://140.143.152.226:8410/';
+            const baseUrl = '';
             if (this.book.otherPic.length < 4) {
                 this.book.rectifiedPic.push(baseUrl + url)
             }
         },
         //鍒犻櫎鍥剧墖
         delRectifiedPic({url}){
-            const baseUrl = 'http://140.143.152.226:8410/';
+            const baseUrl = '';
             this.book.rectifiedPic.splice(this.book.rectifiedPic.indexOf(baseUrl + url),1);
         },
          // 璁剧疆涓婁紶鎴愬姛涔嬪悗鐨勫浘鐗囧湴鍧�
          originalPic({ url }) {
-            const baseUrl = 'http://140.143.152.226:8410/';
+            const baseUrl = '';
             if (this.book.otherPic.length < 4) {
                 this.book.originalPic.push(baseUrl + url)
             }
         },
         //鍒犻櫎鍥剧墖
         delOriginalPic({url}){
-            const baseUrl = 'http://140.143.152.226:8410/';
+            const baseUrl = '';
             this.book.originalPic.splice(this.book.originalPic.indexOf(baseUrl + url),1);
         },
 
diff --git a/src/views/operate/disposal/casepool/dispatch/updateUser/uploadResult/components/evidence/index.vue b/src/views/operate/disposal/casepool/dispatch/updateUser/uploadResult/components/evidence/index.vue
index 009da8f..77e36f7 100644
--- a/src/views/operate/disposal/casepool/dispatch/updateUser/uploadResult/components/evidence/index.vue
+++ b/src/views/operate/disposal/casepool/dispatch/updateUser/uploadResult/components/evidence/index.vue
@@ -284,7 +284,7 @@
     },
     methods: {
         handleSuccess2(res, file, filelist) {
-            const baseUrl = 'http://140.143.152.226:8410/';
+            const baseUrl = '';
             if (this.evidence.pic.length < 4) {
                 this.evidence.pic.push(baseUrl + res.data.url1)
             }
@@ -341,14 +341,14 @@
         },
          // 璁剧疆涓婁紶鎴愬姛涔嬪悗鐨勫浘鐗囧湴鍧�
          setPicUrl({ url }) {
-            const baseUrl = 'http://140.143.152.226:8410/';
+            const baseUrl = '';
             if (this.evidence.pic.length < 4) {
                 this.evidence.pic.push(baseUrl + url);
             }
         },
         //鍒犻櫎鍥剧墖
         delPicUrl({url}){
-            const baseUrl = 'http://140.143.152.226:8410/';
+            const baseUrl = '';
             this.evidence.pic.splice(this.evidence.pic.indexOf(baseUrl + url),1);
         }
     },
diff --git a/src/views/operate/disposal/casepool/escalation/createUser/ill/index.vue b/src/views/operate/disposal/casepool/escalation/createUser/ill/index.vue
index 5f771fc..33110a7 100644
--- a/src/views/operate/disposal/casepool/escalation/createUser/ill/index.vue
+++ b/src/views/operate/disposal/casepool/escalation/createUser/ill/index.vue
@@ -401,17 +401,12 @@
 
         },
         handleSuccess(res, file, filelist) {
-<<<<<<< HEAD
-            console.log(res);
-=======
-          console.log(res)
->>>>>>> 948cca39e334dde8a3ef04c030f8d691edf30bf8
-            const baseUrl = 'http://140.143.152.226:8410/';
+            const baseUrl = '';
             this.ill.positive = baseUrl + res.data.url1;
 
         },
         handleSuccess2(res, file, filelist) {
-            const baseUrl = 'http://140.143.152.226:8410/';
+            const baseUrl = '';
             this.ill.negative = baseUrl + res.data.url1;
         }
     },
diff --git a/src/views/operate/disposal/casepool/learn/updateUser/uploadResult/components/arrive/index.vue b/src/views/operate/disposal/casepool/learn/updateUser/uploadResult/components/arrive/index.vue
index 0fed36c..c08b555 100644
--- a/src/views/operate/disposal/casepool/learn/updateUser/uploadResult/components/arrive/index.vue
+++ b/src/views/operate/disposal/casepool/learn/updateUser/uploadResult/components/arrive/index.vue
@@ -107,7 +107,7 @@
     props:['getArrive'],
     methods: {
         handleSuccess(res, file, filelist) {
-            const baseUrl = 'http://140.143.152.226:8410/';
+            const baseUrl = '';
             if (this.arrive.situationPic.length < 4) {
                 this.arrive.situationPic.push(baseUrl + res.data.url1)
             }
diff --git a/src/views/operate/disposal/casepool/learn/updateUser/uploadResult/components/evidence/index.vue b/src/views/operate/disposal/casepool/learn/updateUser/uploadResult/components/evidence/index.vue
index 7f0be9f..5cc6e1f 100644
--- a/src/views/operate/disposal/casepool/learn/updateUser/uploadResult/components/evidence/index.vue
+++ b/src/views/operate/disposal/casepool/learn/updateUser/uploadResult/components/evidence/index.vue
@@ -446,7 +446,7 @@
     props:['getEvidence'],
     methods: {
         handleSuccess2(res, file, filelist) {
-            const baseUrl = 'http://140.143.152.226:8410/';
+            const baseUrl = '';
             if (this.evidence.pic.length < 4) {
                 this.evidence.pic.push(baseUrl + res.data.url1)
             }
diff --git a/src/views/operate/disposal/casepool/notDeal/updateUser/uploadResult/components/arrive/index.vue b/src/views/operate/disposal/casepool/notDeal/updateUser/uploadResult/components/arrive/index.vue
index 0fed36c..c08b555 100644
--- a/src/views/operate/disposal/casepool/notDeal/updateUser/uploadResult/components/arrive/index.vue
+++ b/src/views/operate/disposal/casepool/notDeal/updateUser/uploadResult/components/arrive/index.vue
@@ -107,7 +107,7 @@
     props:['getArrive'],
     methods: {
         handleSuccess(res, file, filelist) {
-            const baseUrl = 'http://140.143.152.226:8410/';
+            const baseUrl = '';
             if (this.arrive.situationPic.length < 4) {
                 this.arrive.situationPic.push(baseUrl + res.data.url1)
             }
diff --git a/src/views/operate/disposal/casepool/notDeal/updateUser/uploadResult/components/evidence/index.vue b/src/views/operate/disposal/casepool/notDeal/updateUser/uploadResult/components/evidence/index.vue
index 27ba839..897e107 100644
--- a/src/views/operate/disposal/casepool/notDeal/updateUser/uploadResult/components/evidence/index.vue
+++ b/src/views/operate/disposal/casepool/notDeal/updateUser/uploadResult/components/evidence/index.vue
@@ -446,7 +446,7 @@
     props:['getEvidence'],
     methods: {
         handleSuccess2(res, file, filelist) {
-            const baseUrl = 'http://140.143.152.226:8410/';
+            const baseUrl = '';
             if (this.evidence.pic.length < 4) {
                 this.evidence.pic.push(baseUrl + res.data.url1)
             }
diff --git a/src/views/operate/disposal/casepool/pool/createUser/vio/index.vue b/src/views/operate/disposal/casepool/pool/createUser/vio/index.vue
index 6c812a8..f8e8e11 100644
--- a/src/views/operate/disposal/casepool/pool/createUser/vio/index.vue
+++ b/src/views/operate/disposal/casepool/pool/createUser/vio/index.vue
@@ -1,612 +1,811 @@
 <template>
-    <div class="vio">
-        <div class="input-area">
-            <div class="input-header">
-                <div class="input-header__title">鍩虹淇℃伅</div>
-                <div class="input-header__tip">濉啓浜嬩欢鍩虹淇℃伅</div>
-            </div>
-            <div class="input-form">
-                <el-form ref="user" label-width="120px" autoComplete="on" :model="vio" :rules="createRoleRules"
-                    label-position="right">
-                    <div class="user-item">
-                        <!-- 闂绫诲瀷 -->
-                        <el-form-item class="optionItem" label="闂绫诲瀷:" prop="category">
-                            <el-select v-model="vio.category" placeholder="杩濊" disabled>
-                                <el-option v-for="item in typeList" :key="item.label" :label="item.label"
-                                    :value="item.value">
-                                </el-option>
-                            </el-select>
-                        </el-form-item>
-                        <!-- 澶х被鍚嶇О -->
-                        <el-form-item class="optionItems" label="澶х被鍚嶇О:" prop="categoryId">
-                            <el-select v-model="vio.categoryId" placeholder="璇烽�夋嫨澶х被鍚嶇О" @change="handleBigKindChange">
-                                <el-option v-for="item in bigKindList" :key="item.id" :label="item.name"
-                                    :value="item.id">
-                                </el-option>
-                            </el-select>
-                        </el-form-item>
-                    </div>
-                    <div class="user-item">
-                        <!-- 灏忕被鍚嶇О -->
-                        <el-form-item class="optionItems" label="灏忕被鍚嶇О:" prop="typeId">
-                            <el-select v-model="vio.typeId" placeholder="璇烽�夋嫨灏忕被鍚嶇О" @change="handleSmallKindChange">
-                                <el-option v-for="item in smallKindList" :key="item.id" :label="item.name"
-                                    :value="item.id">
-                                </el-option>
-                            </el-select>
-                        </el-form-item>
-                        <!-- 浜嬩欢绛夌骇 -->
-                        <el-form-item class="optionItems" label="浜嬩欢绛夌骇:" prop="gradeId">
-                          <el-cascader
-                              :show-all-levels="false"
-                              v-model="vio.gradeId"
-                              :props="{ value: 'id',label: 'name',children: 'children',emitPath:false}"
-                              :options="eventLevelList"
-                              ></el-cascader>
+  <div class="vio">
+    <div class="input-area">
+      <div class="input-header">
+        <div class="input-header__title">鍩虹淇℃伅</div>
+        <div class="input-header__tip">濉啓浜嬩欢鍩虹淇℃伅</div>
+      </div>
+      <div class="input-form">
+        <el-form
+          ref="user"
+          label-width="120px"
+          autoComplete="on"
+          :model="vio"
+          :rules="createRoleRules"
+          label-position="right"
+        >
+          <div class="user-item">
+            <!-- 闂绫诲瀷 -->
+            <el-form-item class="optionItem" label="闂绫诲瀷:" prop="category">
+              <el-select v-model="vio.category" placeholder="杩濊" disabled>
+                <el-option
+                  v-for="item in typeList"
+                  :key="item.label"
+                  :label="item.label"
+                  :value="item.value"
+                >
+                </el-option>
+              </el-select>
+            </el-form-item>
+            <!-- 澶х被鍚嶇О -->
+            <el-form-item
+              class="optionItems"
+              label="澶х被鍚嶇О:"
+              prop="categoryId"
+            >
+              <el-select
+                v-model="vio.categoryId"
+                placeholder="璇烽�夋嫨澶х被鍚嶇О"
+                @change="handleBigKindChange"
+              >
+                <el-option
+                  v-for="item in bigKindList"
+                  :key="item.id"
+                  :label="item.name"
+                  :value="item.id"
+                >
+                </el-option>
+              </el-select>
+            </el-form-item>
+          </div>
+          <div class="user-item">
+            <!-- 灏忕被鍚嶇О -->
+            <el-form-item class="optionItems" label="灏忕被鍚嶇О:" prop="typeId">
+              <el-select
+                v-model="vio.typeId"
+                placeholder="璇烽�夋嫨灏忕被鍚嶇О"
+                @change="handleSmallKindChange"
+              >
+                <el-option
+                  v-for="item in smallKindList"
+                  :key="item.id"
+                  :label="item.name"
+                  :value="item.id"
+                >
+                </el-option>
+              </el-select>
+            </el-form-item>
+            <!-- 浜嬩欢绛夌骇 -->
+            <el-form-item class="optionItems" label="浜嬩欢绛夌骇:" prop="gradeId">
+              <el-cascader
+                :show-all-levels="false"
+                v-model="vio.gradeId"
+                :props="{
+                  value: 'id',
+                  label: 'name',
+                  children: 'children',
+                  emitPath: false,
+                }"
+                :options="eventLevelList"
+              ></el-cascader>
+            </el-form-item>
+          </div>
+          <!-- 妗堢敱 -->
+          <el-form-item
+            class="optionItem anyou"
+            label="妗堢敱:"
+            prop="actionCause"
+          >
+            <el-select
+              v-model="vio.actionCause"
+              placeholder="璇疯緭鍏ユ鐢�"
+              filterable
+              @blur="selectBlur"
+            >
+              <el-option
+                v-for="item in anYouList"
+                :key="item.id"
+                :label="item.name"
+                :value="item.name"
+              >
+              </el-option>
+            </el-select>
+          </el-form-item>
+          <div class="user-item">
+            <!-- 鎵�灞炶閬� -->
+            <el-form-item class="optionItems" label="鎵�灞炶閬�:" prop="streetId">
+              <el-select
+                v-model="vio.streetId"
+                placeholder="璇烽�夋嫨鎵�灞炶閬�"
+                @change="handleStreet"
+              >
+                <el-option
+                  v-for="item in streetList"
+                  :key="item.id"
+                  :label="item.regionName"
+                  :value="item.id"
+                >
+                </el-option>
+              </el-select>
+            </el-form-item>
+            <!-- 鎵�灞炵ぞ鍖� -->
+            <el-form-item
+              class="optionItems"
+              label="鎵�灞炵ぞ鍖�:"
+              prop="communityId"
+            >
+              <el-select v-model="vio.communityId" placeholder="璇烽�夋嫨鎵�灞炵ぞ鍖�">
+                <el-option
+                  v-for="item in communityList"
+                  :key="item.id"
+                  :label="item.regionName"
+                  :value="item.id"
+                >
+                </el-option>
+              </el-select>
+            </el-form-item>
+          </div>
+          <!-- 浜嬪彂鍦扮偣 -->
+          <el-form-item class="optionItems" label="浜嬪彂鍦扮偣:" prop="site">
+            <el-input
+              placeholder="璇疯緭鍏ヤ簨鍙戝湴璇︾粏浣嶇疆"
+              v-model="vio.site"
+            ></el-input>
+          </el-form-item>
+          <div class="user-item">
+            <!-- 鏄惁鍏宠仈鍟嗛摵 -->
+            <el-form-item
+              class="optionItems"
+              label="鏄惁鍏宠仈鍟嗛摵:"
+              prop="linkShop"
+            >
+              <el-radio-group v-model="vio.linkShop" @change="handleLinkShop">
+                <el-radio :label="1">鏄�</el-radio>
+                <el-radio :label="0">鍚�</el-radio>
+              </el-radio-group>
+            </el-form-item>
+            <!-- 鍏宠仈鍟嗛摵鍚嶇О -->
+            <el-form-item
+              class="optionItems"
+              label="鍏宠仈鍟嗛摵鍚嶇О:"
+              prop="shopName"
+            >
+              <el-select
+                v-model="vio.shopName"
+                :disabled="vio.linkShop === 0"
+                placeholder="璇峰~鍐欏叧鑱斿晢閾哄悕绉�"
+              >
+                <el-option
+                  v-for="store in storeList"
+                  :key="store.id"
+                  :value="store.id"
+                  :label="store.storeName"
+                ></el-option>
+              </el-select>
+            </el-form-item>
+          </div>
+          <!-- 濉啓杞︾墝鍙� -->
+          <el-form-item
+            class="optionItems"
+            label="濉啓杞︾墝鍙�:"
+            prop="carNumber"
+          >
+            <el-input
+              placeholder="璇峰~鍐欒溅鐗屽彿"
+              v-model="vio.carNumber"
+            ></el-input>
+          </el-form-item>
+          <!-- 闂鎻忚堪 -->
+          <el-form-item
+            class="optionItems"
+            label="闂鎻忚堪:"
+            prop="description"
+          >
+            <el-input
+              type="textarea"
+              :rows="5"
+              maxlength="200"
+              placeholder="璇疯緭鍏ュ唴瀹�200瀛椾互鍐�"
+              v-model="vio.description"
+            >
+            </el-input>
+          </el-form-item>
+          <div class="user-item">
+            <!-- 鎶ヨ鏃堕棿 -->
+            <el-form-item
+              class="optionItems"
+              label="鎶ヨ鏃堕棿:"
+              prop="alarmTime"
+            >
+              <el-date-picker
+                v-model="vio.alarmTime"
+                type="datetime"
+                placeholder="閫夋嫨鎶ヨ鏃堕棿"
+              >
+              </el-date-picker>
+            </el-form-item>
+            <!-- 璋冨害鏃堕檺 -->
+            <el-form-item
+              class="optionItems"
+              label="璋冨害鏃堕檺:"
+              prop="limitTime"
+            >
+              <el-date-picker
+                v-model="vio.limitTime"
+                type="datetime"
+                placeholder="閫夋嫨璋冨害鏃堕檺"
+              >
+              </el-date-picker>
+            </el-form-item>
+          </div>
+          <el-form-item prop="url" label="鍥剧墖:" min-width="8">
+            <my-upload
+              :picture-list="imageList"
+              :is-show-upload="dialogType !== 'view'"
+              @setPictureUrl="setPictureUrl"
+              @delPictureUrl="delPictureUrl"
+            ></my-upload>
+          </el-form-item>
 
-                        </el-form-item>
-                    </div>
-                    <!-- 妗堢敱 -->
-                    <el-form-item class="optionItem anyou" label="妗堢敱:" prop="actionCause">
-                        <el-select v-model="vio.actionCause" placeholder="璇疯緭鍏ユ鐢�" filterable @blur="selectBlur">
-                            <el-option v-for="item in anYouList" :key="item.id" :label="item.name" :value="item.name">
-                            </el-option>
-                        </el-select>
-                    </el-form-item>
-                    <div class="user-item">
-                        <!-- 鎵�灞炶閬� -->
-                        <el-form-item class="optionItems" label="鎵�灞炶閬�:" prop="streetId">
-                            <el-select v-model="vio.streetId" placeholder="璇烽�夋嫨鎵�灞炶閬�" @change="handleStreet">
-                                <el-option v-for="item in streetList" :key="item.id" :label="item.regionName" :value="item.id"
-                                    >
-                                </el-option>
-                            </el-select>
-                        </el-form-item>
-                        <!-- 鎵�灞炵ぞ鍖� -->
-                        <el-form-item class="optionItems" label="鎵�灞炵ぞ鍖�:" prop="communityId">
-                            <el-select v-model="vio.communityId" placeholder="璇烽�夋嫨鎵�灞炵ぞ鍖�">
-                                <el-option v-for="item in communityList" :key="item.id" :label="item.regionName"
-                                    :value="item.id" >
-                                </el-option>
-                            </el-select>
-                        </el-form-item>
-                    </div>
-                    <!-- 浜嬪彂鍦扮偣 -->
-                    <el-form-item class="optionItems" label="浜嬪彂鍦扮偣:" prop="site">
-                        <el-input placeholder="璇疯緭鍏ヤ簨鍙戝湴璇︾粏浣嶇疆" v-model="vio.site"></el-input>
-                    </el-form-item>
-                    <div class="user-item">
-                        <!-- 鏄惁鍏宠仈鍟嗛摵 -->
-                        <el-form-item class="optionItems" label="鏄惁鍏宠仈鍟嗛摵:" prop="linkShop">
-                            <el-radio-group v-model="vio.linkShop" @change="handleLinkShop">
-                                <el-radio :label="1">鏄�</el-radio>
-                                <el-radio :label="0">鍚�</el-radio>
-                            </el-radio-group>
-                        </el-form-item>
-                        <!-- 鍏宠仈鍟嗛摵鍚嶇О -->
-                        <el-form-item class="optionItems" label="鍏宠仈鍟嗛摵鍚嶇О:" prop="shopName">
-                          <el-select v-model="vio.shopName" :disabled="vio.linkShop === 0" placeholder="璇峰~鍐欏叧鑱斿晢閾哄悕绉�">
-                            <el-option v-for="store in storeList" :key="store.id" :value="store.id" :label="store.storeName"></el-option>
-                          </el-select>
-                        </el-form-item>
-                    </div>
-                    <!-- 濉啓杞︾墝鍙� -->
-                    <el-form-item class="optionItems" label="濉啓杞︾墝鍙�:" prop="carNumber">
-                        <el-input placeholder="璇峰~鍐欒溅鐗屽彿" v-model="vio.carNumber"></el-input>
-                    </el-form-item>
-                    <!-- 闂鎻忚堪 -->
-                    <el-form-item class="optionItems" label="闂鎻忚堪:" prop="description">
-                        <el-input type="textarea" :rows="5" maxlength="200" placeholder="璇疯緭鍏ュ唴瀹�200瀛椾互鍐�"
-                            v-model="vio.description">
-                        </el-input>
-                    </el-form-item>
-                    <div class="user-item">
-                        <!-- 鎶ヨ鏃堕棿 -->
-                        <el-form-item class="optionItems" label="鎶ヨ鏃堕棿:" prop="alarmTime">
-                            <el-date-picker v-model="vio.alarmTime" type="datetime" placeholder="閫夋嫨鎶ヨ鏃堕棿">
-                            </el-date-picker>
-                        </el-form-item>
-                        <!-- 璋冨害鏃堕檺 -->
-                        <el-form-item class="optionItems" label="璋冨害鏃堕檺:" prop="limitTime">
-                            <el-date-picker v-model="vio.limitTime" type="datetime" placeholder="閫夋嫨璋冨害鏃堕檺">
-                            </el-date-picker>
-                        </el-form-item>
-                    </div>
-                    <!-- 濉啓鍙嶆槧浜轰俊鎭� -->
-                    <el-form-item class="optionItems" label="濉啓鍙嶆槧浜轰俊鎭�">
-                    </el-form-item>
-                    <!-- 鍙嶆槧浜烘儏鍐� -->
-                    <div class="user-item">
-                        <el-form-item class="optionItems" label="鍙嶆槧浜�:" prop="informant">
-                            <el-input v-model="vio.informant"></el-input>
-                        </el-form-item>
-                        <el-form-item class="optionItems" label="鑱旂郴鏂瑰紡:" prop="informantPhoneCode">
-                            <el-input v-model="vio.informantPhoneCode"></el-input>
-                        </el-form-item>
-                    </div>
-                    <el-form-item class="optionItems" label="韬唤璇佸彿:" prop="informantIdCard">
-                        <el-input v-model="vio.informantIdCard"></el-input>
-                    </el-form-item>
-                </el-form>
-            </div>
-            <div class="input-footer">
-                <el-button type="primary" class="confirm" @click="handleSubmit">纭畾</el-button>
-                <el-button class="back" @click="handleBack">杩斿洖</el-button>
-            </div>
-        </div>
-        <div class="map-area">
-            <!-- <MyMap /> -->
-        </div>
+          <el-form-item prop="url" label="瑙嗛:" min-width="8">
+            <my-upload-media
+              :picture-list="mediaList"
+              :is-show-upload="dialogType !== 'view'"
+              @setPictureUrl="setMediaUrl"
+              @delPictureUrl="delMediaUrl"
+            ></my-upload-media>
+          </el-form-item>
+          <!-- 濉啓鍙嶆槧浜轰俊鎭� -->
+          <el-form-item class="optionItems" label="濉啓鍙嶆槧浜轰俊鎭�">
+          </el-form-item>
+          <!-- 鍙嶆槧浜烘儏鍐� -->
+          <div class="user-item">
+            <el-form-item class="optionItems" label="鍙嶆槧浜�:" prop="informant">
+              <el-input v-model="vio.informant"></el-input>
+            </el-form-item>
+            <el-form-item
+              class="optionItems"
+              label="鑱旂郴鏂瑰紡:"
+              prop="informantPhoneCode"
+            >
+              <el-input v-model="vio.informantPhoneCode"></el-input>
+            </el-form-item>
+          </div>
+          <el-form-item
+            class="optionItems"
+            label="韬唤璇佸彿:"
+            prop="informantIdCard"
+          >
+            <el-input v-model="vio.informantIdCard"></el-input>
+          </el-form-item>
+        </el-form>
+      </div>
+      <div class="input-footer">
+        <el-button type="primary" class="confirm" @click="handleSubmit"
+          >纭畾</el-button
+        >
+        <el-button class="back" @click="handleBack">杩斿洖</el-button>
+      </div>
     </div>
+    <div class="map-area">
+      <!-- <MyMap /> -->
+    </div>
+  </div>
 </template>
 <script>
 // import MyMap from "@/components/map";
 import MyMap from "@/components/map/leafletMap.vue";
-import { validateName, validatePhone, validateCarNum, validateCardId } from '@/utils/validate'
-import { getTypeList } from '@/utils/helper'
-import { parseTime } from "@/utils/index"
+import {
+  validateName,
+  validatePhone,
+  validateCarNum,
+  validateCardId,
+} from "@/utils/validate";
+import { getTypeList } from "@/utils/helper";
+import { parseTime } from "@/utils/index";
 import { getStoreInfoList } from "@/api/operate/storeManagement";
+import MyUpload from "@/components/myUpload";
+import MyUploadMedia from "@/components/myUpload/media.vue";
+import { FILE_ORIGINAL_URL } from "@/utils";
 export default {
-    components: {
-        MyMap
+  components: {
+    MyMap,
+    MyUpload,
+    MyUploadMedia,
+  },
+  data() {
+    const checkCause = (rule, value, callback) => {
+      if (value) {
+        callback();
+      } else {
+        callback(new Error("妗堢敱涓嶈兘涓虹┖"));
+      }
+    };
+    const checkCategory = (rule, value, callback) => {
+      if (value) {
+        callback();
+      } else {
+        callback(new Error("澶х被鍚嶇О涓嶈兘涓虹┖"));
+      }
+    };
+    const checkCommunity = (rule, value, callback) => {
+      if (value) {
+        callback();
+      } else {
+        callback(new Error("鎵�灞炵ぞ鍖轰笉鑳戒负绌�"));
+      }
+    };
+    const checkDesc = (rule, value, callback) => {
+      if (value) {
+        callback();
+      } else {
+        callback(new Error("闂鎻忚堪涓嶈兘涓虹┖"));
+      }
+    };
+    const checkSite = (rule, value, callback) => {
+      if (value) {
+        callback();
+      } else {
+        callback(new Error("浜嬪彂鍦扮偣涓嶈兘涓虹┖"));
+      }
+    };
+    const checkStreet = (rule, value, callback) => {
+      if (value) {
+        callback();
+      } else {
+        callback(new Error("鎵�灞炶閬撲笉鑳戒负绌�"));
+      }
+    };
+    const checkType = (rule, value, callback) => {
+      if (value) {
+        callback();
+      } else {
+        callback(new Error("灏忕被涓嶈兘涓虹┖"));
+      }
+    };
+    const checkGrade = (rule, value, callback) => {
+      if (value) {
+        callback();
+      } else {
+        callback(new Error("浜嬩欢绛夌骇涓嶈兘涓虹┖"));
+      }
+    };
+    const checkDate = (rule, value, callback) => {
+      if (value) {
+        callback();
+      } else {
+        callback(new Error("鎶ヨ鏃堕棿涓嶈兘涓虹┖"));
+      }
+    };
+    const checkName = (rule, value, callback) => {
+      if (value) {
+        validateName(value)
+          ? callback()
+          : callback(new Error("璇疯緭鍏ユ纭殑濮撳悕"));
+      } else {
+        callback();
+      }
+    };
+    const checkCardId = (rule, value, callback) => {
+      if (value) {
+        validateCardId(value)
+          ? callback()
+          : callback(new Error("璇疯緭鍏ユ纭殑韬唤璇佸彿鐮�"));
+      } else {
+        callback();
+      }
+    };
+    const checkPhone = (rule, value, callback) => {
+      if (value) {
+        validatePhone(value)
+          ? callback()
+          : callback(new Error("璇疯緭鍏ユ纭殑鎵嬫満鍙�"));
+      } else {
+        callback();
+      }
+    };
+    const checkLink = (rule, value, callback) => {
+      if (value) {
+        callback();
+      } else {
+        if (this.vio.linkShop === 1) {
+          callback(new Error("鍏宠仈鍟嗛摵鍚嶅瓧涓嶈兘涓虹┖"));
+        } else {
+          callback();
+        }
+      }
+    };
+    const checkLimit = (rule, value, callback) => {
+      if (value) {
+        callback();
+      } else {
+        callback(new Error("璋冨害鏃堕檺鏃堕棿涓嶈兘涓虹┖"));
+      }
+    };
+    return {
+      vio: {
+        actionCause: "", //妗堢敱
+        carNumber: "", //杞︾墝鍙�
+        categoryId: "", //澶х被
+        communityId: "", //鎵�灞炵ぞ鍖�
+        description: "", //闂鎻忚堪
+        informant: "", //鍙嶆槧浜�
+        informantIdCard: "", //韬唤璇佸彿鐮�
+        informantPhoneCode: "", //鍙嶆槧浜鸿仈绯绘柟寮�
+        linkShop: 0, //鏄惁鍏宠仈鍟嗛摵(0鍚�1鏄�)
+        shopName: "", //鍏宠仈鍟嗛摵鍚嶇О
+        site: "", //浜嬪彂鍦扮偣
+        streetId: "", //鎵�灞炶閬�
+        typeId: "", //灏忕被
+        gradeId: "", //妗堜欢绛夌骇
+        alarmTime: "",
+        limitTime: "", //璋冨害鏃堕檺
+      },
+      createRoleRules: {
+        //妗堢敱
+        actionCause: [
+          {
+            required: true,
+            trigger: "blur",
+            validator: checkCause,
+          },
+        ],
+        //澶х被
+        categoryId: [
+          {
+            required: true,
+            trigger: "change",
+            validator: checkCategory,
+          },
+        ],
+        //鎵�灞炵ぞ鍖�
+        communityId: [
+          {
+            required: true,
+            trigger: "change",
+            validator: checkCommunity,
+          },
+        ],
+        //闂鎻忚堪
+        description: [
+          {
+            required: true,
+            trigger: "blur",
+            validator: checkDesc,
+          },
+        ],
+        informant: [
+          {
+            required: false,
+            trigger: "blur",
+            validator: checkName,
+          },
+        ],
+        informantIdCard: [
+          {
+            required: false,
+            trigger: "blur",
+            validator: checkCardId,
+          },
+        ],
+        informantPhoneCode: [
+          {
+            required: false,
+            trigger: "blur",
+            validator: checkPhone,
+          },
+        ],
+        // linkShop:0,//鏄惁鍏宠仈鍟嗛摵(0鍚�1鏄�)
+        shopName: [
+          {
+            required: false,
+            trigger: "blur",
+            validator: checkLink,
+          },
+        ],
+        //浜嬪彂鍦扮偣
+        site: [
+          {
+            required: true,
+            trigger: "blur",
+            validator: checkSite,
+          },
+        ],
+        //鎵�灞炶閬�
+        streetId: [
+          {
+            required: true,
+            trigger: "change",
+            validator: checkStreet,
+          },
+        ],
+        //灏忕被
+        typeId: [
+          {
+            required: true,
+            trigger: "change",
+            validator: checkType,
+          },
+        ],
+        //妗堜欢绛夌骇
+        gradeId: [
+          {
+            required: true,
+            trigger: "change",
+            validator: checkGrade,
+          },
+        ],
+        alarmTime: [
+          {
+            required: true,
+            trigger: "change",
+            validator: checkDate,
+          },
+        ],
+        limitTime: [
+          {
+            required: true,
+            trigger: "change",
+            validator: checkLimit,
+          },
+        ],
+      },
+      bigKindList: [],
+      smallKindList: [],
+      eventLevelList: [],
+      typeList: [
+        {
+          label: "杩濊",
+          value: 1,
+        },
+        {
+          label: "杩濆缓",
+          value: 2,
+        },
+      ],
+      streetList: [],
+      communityList: [],
+      anYouList: [],
+      storeList: [],
+      imageList: [],
+      mediaList: [],
+      dialogType: "add",
+    };
+  },
+  created() {
+    const { setBigKindList, getStreetList, getEventLevel } = this;
+    this.vio.category = this.mytype + 1;
+    setBigKindList();
+    getStreetList(0);
+    getEventLevel();
+    this.getShopList();
+  },
+  methods: {
+    handleStop() {
+      this.refresh();
     },
-    data() {
-        const checkCause = (rule, value, callback) => {
-            if (value) {
-                callback();
-            } else {
-                callback(new Error('妗堢敱涓嶈兘涓虹┖'))
-            }
+    // 璁剧疆澶х被
+    async setBigKindList() {
+      this.bigKindList = await this.getBigKind();
+    },
+    // 璁剧疆灏忕被
+    async setSmallKindList(id) {
+      let arr = await this.getSmallKind();
+      this.smallKindList = arr.filter((item) => {
+        if (item.parentId === id) {
+          return item;
         }
-        const checkCategory = (rule, value, callback) => {
-            if (value) {
-                callback();
-            } else {
-                callback(new Error('澶х被鍚嶇О涓嶈兘涓虹┖'))
-            }
+      });
+    },
+    // 璁剧疆妗堢敱
+    async setAnYouList(id) {
+      let arr = await this.getAnYouList();
+      this.anYouList = arr.filter((item) => {
+        if (item.parentId === id) {
+          return item;
         }
-        const checkCommunity = (rule, value, callback) => {
-            if (value) {
-                callback();
-            } else {
-                callback(new Error('鎵�灞炵ぞ鍖轰笉鑳戒负绌�'));
-            }
-        }
-        const checkDesc = (rule, value, callback) => {
-            if (value) {
-                callback();
-            } else {
-                callback(new Error('闂鎻忚堪涓嶈兘涓虹┖'))
-            }
-        }
-        const checkSite = (rule, value, callback) => {
-            if (value) {
-                callback();
-            } else {
-                callback(new Error('浜嬪彂鍦扮偣涓嶈兘涓虹┖'))
-            }
-        }
-        const checkStreet = (rule, value, callback) => {
-            if (value) {
-                callback();
-            } else {
-                callback(new Error('鎵�灞炶閬撲笉鑳戒负绌�'))
-            }
-        }
-        const checkType = (rule, value, callback) => {
-            if (value) {
-                callback();
-            } else {
-                callback(new Error('灏忕被涓嶈兘涓虹┖'))
-            }
-        }
-        const checkGrade = (rule, value, callback) => {
-            if (value) {
-                callback();
-            } else {
-                callback(new Error('浜嬩欢绛夌骇涓嶈兘涓虹┖'))
-            }
-        }
-        const checkDate = (rule, value, callback) => {
-            if (value) {
-                callback();
-            } else {
-                callback(new Error('鎶ヨ鏃堕棿涓嶈兘涓虹┖'))
-            }
-        }
-        const checkName = (rule, value, callback) => {
-            if (value) {
-                validateName(value) ? callback() : callback(new Error('璇疯緭鍏ユ纭殑濮撳悕'))
-            } else {
-                callback()
-            }
-        }
-        const checkCardId = (rule, value, callback) => {
-            if (value) {
-                validateCardId(value) ? callback() : callback(new Error('璇疯緭鍏ユ纭殑韬唤璇佸彿鐮�'))
-            } else {
-                callback()
-            }
-        }
-        const checkPhone = (rule, value, callback) => {
-            if (value) {
-                validatePhone(value) ? callback() : callback(new Error('璇疯緭鍏ユ纭殑鎵嬫満鍙�'));
-            } else {
-                callback()
-            }
-        }
-        const checkLink = (rule, value, callback) => {
-            if (value) {
-                callback();
-            } else {
-                if (this.vio.linkShop === 1) {
-                    callback(new Error('鍏宠仈鍟嗛摵鍚嶅瓧涓嶈兘涓虹┖'));
-                } else {
-                    callback();
-                }
-            }
-        }
-        const checkLimit = (rule, value, callback) => {
-            if (value) {
-                callback();
-            } else {
-                callback(new Error('璋冨害鏃堕檺鏃堕棿涓嶈兘涓虹┖'))
-            }
-        }
-        return {
-            vio: {
-                actionCause: "",//妗堢敱
-                carNumber: "",//杞︾墝鍙�
-                categoryId: '',//澶х被
-                communityId: '',//鎵�灞炵ぞ鍖�
-                description: '',//闂鎻忚堪
-                informant: '',//鍙嶆槧浜�
-                informantIdCard: '',//韬唤璇佸彿鐮�
-                informantPhoneCode: "",//鍙嶆槧浜鸿仈绯绘柟寮�
-                linkShop: 0,//鏄惁鍏宠仈鍟嗛摵(0鍚�1鏄�)
-                shopName: "",//鍏宠仈鍟嗛摵鍚嶇О
-                site: '',//浜嬪彂鍦扮偣
-                streetId: '',//鎵�灞炶閬�
-                typeId: '',//灏忕被
-                gradeId: '',//妗堜欢绛夌骇
-                alarmTime: '',
-                limitTime: '',//璋冨害鏃堕檺
+      });
+    },
+    // 鏌ヨ澶х被鍒楄〃
+    async getBigKind() {
+      let arr = [];
+      await this.$axios({
+        method: "get",
+        url: "sccg/violations/query/type_second",
+      }).then((res) => {
+        arr = res.data;
+      });
+      return arr;
+    },
+    // 鑾峰彇灏忕被鍒楄〃
+    async getSmallKind() {
+      let arr = [];
+      await this.$axios({
+        method: "get",
+        url: "sccg/violations/query/type_third",
+      }).then((res) => {
+        arr = res.data;
+      });
+      return arr;
+    },
+    // 鑾峰彇妗堜欢绛夌骇鍒楄〃
+    async getEventLevel() {
+      this.eventLevelList = await getTypeList(1, "02");
+    },
+    // 鏌ヨ鎵�灞炴鐢�
+    async getAnYouList() {
+      let arr = [];
+      await this.$axios({
+        method: "get",
+        url: "sccg/violations/query/type_four",
+      }).then((res) => {
+        arr = res.data;
+      });
+      return arr;
+    },
+    // 鎻愪氦娉ㄥ唽淇℃伅
+    handleSubmit() {
+      this.vio.pic = JSON.stringify(this.imageList);
+      this.vio.media = JSON.stringify(this.mediaList);
+      this.$refs.user.validate((valid) => {
+        if (valid) {
+          const { vio } = this;
+          this.$axios({
+            method: "post",
+            url: "sccg/base_case/addition_violation",
+            data: {
+              ...vio,
+              alarmTime: parseTime(vio.alarmTime),
+              limitTime: parseTime(vio.limitTime),
             },
-            createRoleRules: {
-                //妗堢敱
-                actionCause: [
-                    {
-                        required: true, trigger: 'blur', validator: checkCause,
-                    }
-                ],
-                //澶х被
-                categoryId: [
-                    {
-                        required: true, trigger: 'change', validator: checkCategory
-                    }
-                ],
-                //鎵�灞炵ぞ鍖�
-                communityId: [
-                    {
-                        required: true, trigger: 'change', validator: checkCommunity
-                    }
-                ],
-                //闂鎻忚堪
-                description: [
-                    {
-                        required: true, trigger: 'blur', validator: checkDesc
-                    }
-                ],
-                informant: [
-                    {
-                        required: false, trigger: 'blur', validator: checkName
-                    }
-                ],
-                informantIdCard: [
-                    {
-                        required: false, trigger: 'blur', validator: checkCardId
-                    }
-                ],
-                informantPhoneCode: [
-                    {
-                        required: false, trigger: 'blur', validator: checkPhone
-                    }
-                ],
-                // linkShop:0,//鏄惁鍏宠仈鍟嗛摵(0鍚�1鏄�)
-                shopName: [
-                    {
-                        required: false, trigger: 'blur', validator: checkLink
-                    }
-                ],
-                //浜嬪彂鍦扮偣
-                site: [
-                    {
-                        required: true, trigger: 'blur', validator: checkSite
-                    }
-                ],
-                //鎵�灞炶閬�
-                streetId: [
-                    {
-                        required: true, trigger: 'change', validator: checkStreet
-                    }
-                ],
-                //灏忕被
-                typeId: [
-                    {
-                        required: true, trigger: 'change', validator: checkType
-                    }
-                ],
-                //妗堜欢绛夌骇
-                gradeId: [
-                    {
-                        required: true, trigger: 'change', validator: checkGrade
-                    }
-                ],
-                alarmTime: [
-                    {
-                        required: true, trigger: 'change', validator: checkDate
-                    }
-                ],
-                limitTime: [
-                    {
-                        required: true, trigger: 'change', validator: checkLimit
-                    }
-                ]
-
-            },
-            bigKindList: [],
-            smallKindList: [],
-            eventLevelList: [],
-            typeList: [
-                {
-                    label: '杩濊',
-                    value: 1.
-                },
-                {
-                    label: '杩濆缓',
-                    value: 2.
-                }
-            ],
-            streetList: [],
-            communityList: [],
-            anYouList: [],
-            storeList: []
-        }
-    },
-    created() {
-        const { setBigKindList, getStreetList, getEventLevel } = this;
-        this.vio.category = this.mytype + 1;
-        setBigKindList();
-        getStreetList(0);
-        getEventLevel();
-        this.getShopList();
-    },
-    methods: {
-        handleStop() {
-            this.refresh();
-        },
-        // 璁剧疆澶х被
-        async setBigKindList() {
-            this.bigKindList = await this.getBigKind();
-        },
-        // 璁剧疆灏忕被
-        async setSmallKindList(id) {
-            let arr = await this.getSmallKind();
-            this.smallKindList = arr.filter(item => {
-                if (item.parentId === id) {
-                    return item;
-                }
-            })
-        },
-        // 璁剧疆妗堢敱
-        async setAnYouList(id) {
-            let arr = await this.getAnYouList();
-            this.anYouList = arr.filter(item => {
-                if (item.parentId === id) {
-                    return item;
-                }
-            })
-        },
-        // 鏌ヨ澶х被鍒楄〃
-        async getBigKind() {
-            let arr = [];
-            await this.$axios({
-                method: 'get',
-                url: "sccg/violations/query/type_second",
-            })
-                .then(res => {
-                    arr = res.data;
-                })
-            return arr
-        },
-        // 鑾峰彇灏忕被鍒楄〃
-        async getSmallKind() {
-            let arr = [];
-            await this.$axios({
-                method: 'get',
-                url: "sccg/violations/query/type_third",
-            })
-                .then(res => {
-                    arr = res.data;
-                })
-            return arr
-        },
-        // 鑾峰彇妗堜欢绛夌骇鍒楄〃
-        async getEventLevel() {
-            this.eventLevelList = await getTypeList(1, '02');
-        },
-        // 鏌ヨ鎵�灞炴鐢�
-        async getAnYouList() {
-            let arr = [];
-            await this.$axios({
-                method: 'get',
-                url: 'sccg/violations/query/type_four'
-            })
-                .then(res => {
-                    arr = res.data;
-                })
-            return arr;
-        },
-        // 鎻愪氦娉ㄥ唽淇℃伅
-        handleSubmit() {
-          console.log(this.vio)
-            this.$refs.user.validate((valid) => {
-                if (valid) {
-                    const { vio } = this;
-                    this.$axios({
-                        method: 'post',
-                        url: 'sccg/base_case/addition_violation',
-                        data: {
-                            ...vio,
-                            alarmTime: parseTime(vio.alarmTime),
-                            limitTime:parseTime(vio.limitTime),
-                        }
-                    })
-                        .then(res => {
-                            if (res.code === 200) {
-                                this.$message({
-                                    type: 'success',
-                                    message: res.message
-                                })
-                                this.$emit('changeDialog', { flag: false });
-                                this.refresh();
-                            } else {
-                                this.$message({
-                                    type: 'warning',
-                                    message: res.message,
-                                })
-                            }
-                        })
-                } else {
-                    return false;
-                }
-            })
-        },
-        // 杩斿洖
-        handleBack() {
-            this.$emit('changeDialog', { flag: false })
-        },
-        // 鑾峰彇琛楅亾淇℃伅
-        async getStreetList(id) {
-            let arr
-            await this.$axios({
-                method:'get',
-                url:`sccg/sccg_region/getChildren/${id}`,
-            })
-            .then(res=>{
-                if(res.code === 200){
-                    arr = res.data;
-                }
-            })
-            this.streetList = arr;
-        },
-        // 琛楅亾鏇存敼
-        handleStreet(id) {
-            this.vio.communityId = '';
-            this.$axios({
-                method: 'get',
-                url: `sccg/sccg_region/getChildren/${id}`
-            })
-                .then(res => {
-                    this.communityList = res.data;
-                })
-        },
-        // 鍏宠仈鍟嗛摵
-        handleLinkShop(value) {
-            value === 0 ? this.vio.shopName = '' : '';
-        },
-        // 澶х被閫変腑
-        handleBigKindChange(id) {
-            this.vio.actionCause = '';
-            this.vio.typeId = '';
-            this.setSmallKindList(id);
-        },
-        // 灏忕被閫変腑
-        handleSmallKindChange(id) {
-            this.vio.actionCause = '';
-            this.setAnYouList(id);
-        },
-        // 妗堢敱杈撳叆
-        selectBlur(e) {
-            if (e.target.value) {
-                this.vio.actionCause = e.target.value;
+          }).then((res) => {
+            if (res.code === 200) {
+              this.$message({
+                type: "success",
+                message: res.message,
+              });
+              this.$emit("changeDialog", { flag: false });
+              this.refresh();
+            } else {
+              this.$message({
+                type: "warning",
+                message: res.message,
+              });
             }
-        },
-
-      getShopList() {
-        getStoreInfoList({ current: 1, size: 100 })
-            .then(({ list }) => {
-              this.storeList = list;
-            })
-            .catch(err => {
-              this.$message.error(err)
-            })
+          });
+        } else {
+          return false;
+        }
+      });
+    },
+    // 杩斿洖
+    handleBack() {
+      this.$emit("changeDialog", { flag: false });
+    },
+    // 鑾峰彇琛楅亾淇℃伅
+    async getStreetList(id) {
+      let arr;
+      await this.$axios({
+        method: "get",
+        url: `sccg/sccg_region/getChildren/${id}`,
+      }).then((res) => {
+        if (res.code === 200) {
+          arr = res.data;
+        }
+      });
+      this.streetList = arr;
+    },
+    // 琛楅亾鏇存敼
+    handleStreet(id) {
+      this.vio.communityId = "";
+      this.$axios({
+        method: "get",
+        url: `sccg/sccg_region/getChildren/${id}`,
+      }).then((res) => {
+        this.communityList = res.data;
+      });
+    },
+    // 鍏宠仈鍟嗛摵
+    handleLinkShop(value) {
+      value === 0 ? (this.vio.shopName = "") : "";
+    },
+    // 澶х被閫変腑
+    handleBigKindChange(id) {
+      this.vio.actionCause = "";
+      this.vio.typeId = "";
+      this.setSmallKindList(id);
+    },
+    // 灏忕被閫変腑
+    handleSmallKindChange(id) {
+      this.vio.actionCause = "";
+      this.setAnYouList(id);
+    },
+    // 妗堢敱杈撳叆
+    selectBlur(e) {
+      if (e.target.value) {
+        this.vio.actionCause = e.target.value;
       }
     },
-    props: ['mytype', 'changeDialog', 'refresh']
-}
+    setPictureUrl({ url }) {
+      this.imageList.push(`${FILE_ORIGINAL_URL}sccg/API/img?fileUrl=${url}`);
+    //   this.imagedata.url = this.imageList.join(",");
+    },
+    delPictureUrl({ url }) {
+      this.imageList = this.imageList.filter((item) => item !== url);
+    //   this.imagedata.url = this.imageList.join(",");
+    },
+
+    setMediaUrl({ url }) {
+      this.mediaList.push(`${FILE_ORIGINAL_URL}sccg/API/img?fileUrl=${url}`);
+      this.mediaList.url = this.mediaList.join(",");
+    },
+    delMediaUrl({ url }) {
+      this.mediaList = this.mediaList.filter((item) => item !== url);
+      this.mediaList.url = this.mediaList.join(",");
+    },
+    getShopList() {
+      getStoreInfoList({ current: 1, size: 100 })
+        .then(({ list }) => {
+          this.storeList = list;
+        })
+        .catch((err) => {
+          this.$message.error(err);
+        });
+    },
+  },
+  props: ["mytype", "changeDialog", "refresh"],
+};
 </script>
 <style lang="scss" scoped>
 .vio {
-    display: flex;
-    padding: 20px 10px 50px;
+  display: flex;
+  padding: 20px 10px 50px;
 
-    .input-area {
-        flex: 3;
-        padding: 10px 20px;
+  .input-area {
+    flex: 3;
+    padding: 10px 20px;
 
-        .input-header {
-            color: #4b9bb7;
+    .input-header {
+      color: #4b9bb7;
 
-            .input-header__title {
-                line-height: 60px;
-                font-weight: 650;
-                font-size: 20px;
-            }
+      .input-header__title {
+        line-height: 60px;
+        font-weight: 650;
+        font-size: 20px;
+      }
 
-            .input-header__tip {
-                line-height: 40px;
-            }
-        }
-
-        .user-item {
-            display: flex;
-            justify-content: space-between;
-        }
-
-        .input-form {
-            .el-form {
-                // &::v-deep .el-form-item__label {
-                //     color: #4b9bb7;
-                // }
-
-                // &::v-deep .el-input__inner {
-                //     // background-color: #09152f;
-                //     border: 1px solid #17324c;
-                // }
-
-                // &::v-deep .el-textarea__inner {
-                //     // background-color: #09152f;
-                //     border: 1px solid #17324c;
-                // }
-            }
-        }
-
-        .input-footer {
-            display: flex;
-            justify-content: center;
-        }
+      .input-header__tip {
+        line-height: 40px;
+      }
     }
 
-    .map-area {
-        flex: 2;
+    .user-item {
+      display: flex;
+      justify-content: space-between;
     }
 
-    .anyou {
-        :deep(.el-select) {
-            display: block;
-        }
+    .input-form {
+      .el-form {
+        // &::v-deep .el-form-item__label {
+        //     color: #4b9bb7;
+        // }
+
+        // &::v-deep .el-input__inner {
+        //     // background-color: #09152f;
+        //     border: 1px solid #17324c;
+        // }
+
+        // &::v-deep .el-textarea__inner {
+        //     // background-color: #09152f;
+        //     border: 1px solid #17324c;
+        // }
+      }
     }
 
+    .input-footer {
+      display: flex;
+      justify-content: center;
+    }
+  }
+
+  .map-area {
+    flex: 2;
+  }
+
+  .anyou {
+    :deep(.el-select) {
+      display: block;
+    }
+  }
 }
 </style>
diff --git a/src/views/operate/images/updateUser/index.vue b/src/views/operate/images/updateUser/index.vue
index de7aaa1..5378102 100644
--- a/src/views/operate/images/updateUser/index.vue
+++ b/src/views/operate/images/updateUser/index.vue
@@ -130,6 +130,9 @@
       debugger;
       let imageData = this.imagedata.url.split(",");
       imageData.forEach((url) => {
+        console.log(
+          "鍥剧墖锛�" + `${FILE_ORIGINAL_URL}sccg/API/img?fileUrl=${url}`
+        );
         _imageList.push(`${FILE_ORIGINAL_URL}sccg/API/img?fileUrl=${url}`);
       });
       this.imageList = _imageList;
diff --git a/src/views/operate/log/index.vue b/src/views/operate/log/index.vue
index d9b0b5f..4fe42f5 100644
--- a/src/views/operate/log/index.vue
+++ b/src/views/operate/log/index.vue
@@ -304,7 +304,7 @@
         startTime: mytime[0] !== "" ? parseTime(mytime[0]) : "",
         sort: mysort,
       });
-      return arr.data.data;
+      return arr;
     },
     // 鎵归噺涓嬫媺妗嗘搷浣�
     async selectChange(list) {
diff --git a/src/views/systemSetting/platform/portalSetting/index.vue b/src/views/systemSetting/platform/portalSetting/index.vue
index bb1c11d..e30f0f1 100644
--- a/src/views/systemSetting/platform/portalSetting/index.vue
+++ b/src/views/systemSetting/platform/portalSetting/index.vue
@@ -67,7 +67,7 @@
     methods: {
         setPicUrl({ obj, value }) {
             const { icon } = this;
-            const baseUrl = 'http://140.143.152.226:8410/';
+            const baseUrl = '';
             for (let key in icon) {
                 if (key === value) {
                     icon[key] = baseUrl + obj.url1;

--
Gitblit v1.8.0