From 8a5227c2e5a898004eda1f61180e076ec089fe85 Mon Sep 17 00:00:00 2001
From: zhanghua <314079846@qq.com>
Date: 星期二, 29 十一月 2022 10:34:42 +0800
Subject: [PATCH] 图片显示优化

---
 src/views/operate/images/index.vue            |  977 ++++++++++++++++++++++-------------------
 src/components/myUpload/index.vue             |  216 ++++----
 src/views/operate/images/updateUser/index.vue |  168 ++++--
 3 files changed, 745 insertions(+), 616 deletions(-)

diff --git a/src/components/myUpload/index.vue b/src/components/myUpload/index.vue
index b2e666d..2eba7da 100644
--- a/src/components/myUpload/index.vue
+++ b/src/components/myUpload/index.vue
@@ -1,104 +1,111 @@
 <template>
-    <div class="my-upload">
-      <div v-if="pictureList.length > 0" class="image-box">
-        <div v-for="image in pictureList" class="image-box-item">
-          <i v-if="isShowUpload" @click="handleDeletePicture(image)" class="el-icon-delete image-delete-icon"></i>
-          <el-image :key="image" class="image-content" :src="image" ></el-image>
-        </div>
-      </div>
-      <el-upload
+  <div class="my-upload">
+    <div v-if="pictureList.length > 0" class="image-box">
+      <div v-for="image in pictureList" class="image-box-item">
+        <i
           v-if="isShowUpload"
-        :file-list="fileList" 
-        action="/sccg/file/medias"
-        :multiple="multiple"
-        :show-file-list="flag" 
-        :before-upload="beforeUpload" 
-        :limit="limit" 
-        :on-success="handleSuccess"
-        :on-error="handleError" 
-        :list-type="listType"
-        :headers="getToken()">
-          <div class="upload-btn">
-            <i class="el-icon-plus"></i>
-            <span>涓婁紶鍥剧墖</span>
-          </div>
-        </el-upload>
+          @click="handleDeletePicture(image)"
+          class="el-icon-delete image-delete-icon"
+        ></i>
+        <el-image :key="image" class="image-content" :src="image"></el-image>
+      </div>
     </div>
+    <el-upload
+      v-if="isShowUpload"
+      :file-list="fileList"
+      action="/sccg/file/medias"
+      :multiple="multiple"
+      :show-file-list="flag"
+      :before-upload="beforeUpload"
+      :limit="limit"
+      :on-success="handleSuccess"
+      :on-error="handleError"
+      :list-type="listType"
+      :headers="getToken()"
+    >
+      <div class="upload-btn">
+        <i class="el-icon-plus"></i>
+        <span>涓婁紶鍥剧墖</span>
+      </div>
+    </el-upload>
+  </div>
 </template>
 <script>
 export default {
-    data() {
-        return {
-            // 鏂囦欢鍒楄〃
-            fileList: [],
-            // 鏄惁鏄剧ず鏂囦欢鍒楄〃
-            flag: false,
-            // 澶氶��
-            multiple: false,
-            // 闄愬埗
-            limit: 4,
-            // 鏂囦欢鍒楄〃绫诲瀷
-            listType: 'picture-card'
-        };
+  data() {
+    return {
+      // 鏂囦欢鍒楄〃
+      fileList: [],
+      // 鏄惁鏄剧ず鏂囦欢鍒楄〃
+      flag: false,
+      // 澶氶��
+      multiple: false,
+      // 闄愬埗
+      limit: 4,
+      // 鏂囦欢鍒楄〃绫诲瀷
+      listType: "picture-card",
+    };
+  },
+  methods: {
+    // 涓婁紶涔嬪墠鍥炶皟
+    beforeUpload(rawFile) {
+      if (
+        rawFile.type !== "image/png" &&
+        rawFile.type !== "image/svg+xml" &&
+        rawFile.type !== "image/jpg" &&
+        rawFile.type !== "image/jpeg"
+      ) {
+        this.$message.error("鍥剧墖蹇呴』鏄� jpg/svg/jpeg/png 鏍煎紡!");
+        return false;
+      } else if (rawFile.size / 1024 / 1024 > 5) {
+        this.$message.error("涓婁紶鍥剧墖涓嶈兘瓒呰繃 5MB!");
+        return false;
+      }
+      return true;
     },
-    methods: {
-        // 涓婁紶涔嬪墠鍥炶皟
-        beforeUpload(rawFile) {
-            if (rawFile.type !== 'image/png' && rawFile.type !== 'image/svg+xml' && rawFile.type !== 'image/jpg' && rawFile.type !== 'image/jpeg') {
-                this.$message.error('鍥剧墖蹇呴』鏄� jpg/svg/jpeg/png 鏍煎紡!')
-                return false
-            } else if (rawFile.size / 1024 / 1024 > 5) {
-                this.$message.error('涓婁紶鍥剧墖涓嶈兘瓒呰繃 5MB!')
-                return false
-            }
-            return true
-        },
-        // 涓婁紶鎴愬姛鍥炶皟
-        handleSuccess(res, file, filelist) {
-            if(res.data.url1){
-                this.$emit('setPictureUrl',{url:res.data.url1});
-            }
-            else if(res.data.url2){
-                this.$emit('setPictureUrl',{url:res.data.url2});
-            }
-            else if(res.data.url3){
-                this.$emit('setPictureUrl',{url:res.data.url3});
-            }
-            else{
-                this.$emit('setPictureUrl',{url:res.data.url4});
-            }
-        },
-        // 涓婁紶澶辫触鍥炶皟
-        handleError(err, file, fileList) {
-            this.$message({
-                type:'error',
-                message:err
-            })
-        },
-        // 鑾峰彇token
-        getToken() {
-            const token = sessionStorage.getItem('token');
-            const tokenHead = sessionStorage.getItem('tokenHead');
-            if (token && tokenHead) {
-                return { Authorization: tokenHead + token }
-            }
-        },
-
-        handleDeletePicture(imageUrl) {
-          this.$emit('delPictureUrl', { url: imageUrl });
-        }
-    },
-    props: {
-      pictureList: {
-        type: Array,
-        default: () => []
-      },
-      isShowUpload: {
-        type: Boolean,
-        default: () => true
+    // 涓婁紶鎴愬姛鍥炶皟
+    handleSuccess(res, file, filelist) {
+      if (res.data.url1) {
+        this.$emit("setPictureUrl", { url: res.data.url1 });
+      } else if (res.data.url2) {
+        this.$emit("setPictureUrl", { url: res.data.url2 });
+      } else if (res.data.url3) {
+        this.$emit("setPictureUrl", { url: res.data.url3 });
+      } else {
+        this.$emit("setPictureUrl", { url: res.data.url4 });
       }
     },
-}
+    // 涓婁紶澶辫触鍥炶皟
+    handleError(err, file, fileList) {
+      this.$message({
+        type: "error",
+        message: err,
+      });
+    },
+    // 鑾峰彇token
+    getToken() {
+      const token = sessionStorage.getItem("token");
+      const tokenHead = sessionStorage.getItem("tokenHead");
+      if (token && tokenHead) {
+        return { Authorization: tokenHead + token };
+      }
+    },
+
+    handleDeletePicture(imageUrl) {
+      this.$emit("delPictureUrl", { url: imageUrl });
+    },
+  },
+  props: {
+    pictureList: {
+      type: Array,
+      default: () => [],
+    },
+    isShowUpload: {
+      type: Boolean,
+      default: () => true,
+    },
+  },
+};
 </script>
 <style lang="scss" scoped>
 .my-upload {
@@ -116,7 +123,7 @@
     width: 100px;
     height: 100px;
 
-    &:hover i{
+    &:hover i {
       color: #409eff;
     }
 
@@ -131,6 +138,7 @@
   }
   .image-box {
     display: flex;
+    flex-wrap: wrap;
     height: 100px;
     margin: 0 10px;
 
@@ -144,10 +152,12 @@
       left: calc(100% - 50px);
       opacity: 0;
     }
-
+    .image-box-item {
+      padding: 0px 10px;
+    }
     .image-box-item:hover {
       color: #ffffff;
-      opacity: .5;
+      opacity: 0.5;
       .image-delete-icon {
         z-index: 2;
         opacity: 1;
@@ -155,13 +165,13 @@
     }
   }
 
-    :deep(.el-upload--picture-card) {
-        width: 100px;
-        height: 100px;
-    }
-    :deep(.el-upload-list__item){
-        width: 100px;
-        height: 100px;
-    }
+  :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/images/index.vue b/src/views/operate/images/index.vue
index 37e19f6..f939734 100644
--- a/src/views/operate/images/index.vue
+++ b/src/views/operate/images/index.vue
@@ -1,109 +1,165 @@
 <template>
-    <div class="userList">
-        <header>
-            <div class="headerContent">
-                <div class="search">
-                    <span>绫诲瀷鏌ヨ:</span>
-                    <div class="option">
-                        <el-input v-model="type" placeholder="璇疯緭鍏ョ被鍨�"></el-input>
-                    </div>
-                    <span>涓婁紶鏃堕棿:</span>
-                    <div class="option">
-                      <el-date-picker
-                          v-model="datePicked"
-                          type="datetimerange"
-                          value-format="yyyy-MM-dd HH:mm:ss"
-                          range-separator="鑷�"
-                          start-placeholder="寮�濮嬫棩鏈�"
-                          end-placeholder="缁撴潫鏃ユ湡">
-                      </el-date-picker>
-                    </div>
-                    <div class="findBtn">
-                        <el-button type="primary" @click="getImageResourceList">鏌ヨ</el-button>
-                    </div>
-                    <div class="findBtn">
-                        <el-button type="primary" @click="handleUpdateImageResource(null, 'create')">娣诲姞鍥剧墖</el-button>
-                    </div>
-                </div>
-            </div>
-        </header>
-        <main>
-            <div class="mainContent">
-                <div class="type-nav">
-                    <div @click="changeTypeChecked(item.value)" v-for="item in typeList" :key="item.name"
-                        :class="[item.checked ? 'is-active' : '', 'type-item']">{{ item.name }}</div>
-                </div>
-                <!-- 鏁版嵁灞曠ず -->
-                <el-table ref="multipleTable"
-                    :header-cell-style="{ background: '#06122c', 'font-size': '12px', color: '#4b9bb7', 'font-weight': '650', 'line-height': '45px' }"
-                    :data="tableData" style="width: 100%" :row-class-name="tableRowClassName"
-                    @selection-change="tableChange">
-                    <el-table-column type="selection" min-width="5">
-                    </el-table-column>
-                    <el-table-column prop="code" label="鎵�灞炰簨浠剁紪鍙�" min-width="18">
-                    </el-table-column>
-                    <el-table-column prop="category" label="闂绫诲埆" min-width="8">
-                      <template v-if="scope.row.category" slot-scope="scope">
-                        <span>{{ getCategory(scope.row.category).label }}</span>
-                      </template>
-                    </el-table-column>
-                    <el-table-column prop="eventSource" label="浜嬩欢鏉ユ簮" min-width="8">
-                      <template v-if="scope.row.eventSource" slot-scope="scope">
-                        <span>{{ getEventSource(scope.row.eventSource).label }}</span>
-                      </template>
-                    </el-table-column>
-                    <el-table-column prop="regionName" label="绀惧尯鍚嶇О" min-width="8">
-                    </el-table-column>
-                    <el-table-column prop="id" label="鍥剧墖Id" min-width="8">
-                    </el-table-column>
-                    <el-table-column prop="createTime" label="涓婁紶鏃堕棿" min-width="15" v-if="mystatus === 1">
-                    </el-table-column>
-                    <el-table-column prop="operation" label="鎿嶄綔" min-width="15">
-                        <template slot-scope="scope">
-                            <div class="operation">
-                                <span @click="handleUpdateImageResource(scope.row, 'view')">鏌ョ湅</span>
-                                <span class="line">|</span>
-                                <span @click="handleUpdateImageResource(scope.row, 'update')">淇敼</span>
-                                <span class="line">|</span>
-                                <span @click="handleDelete(scope.row)">鍒犻櫎</span>
-                            </div>
-                        </template>
-                    </el-table-column>
-                </el-table>
-                <el-dialog
-                  :visible.sync="isShowUploadDialog"
-                  :destroy-on-close="true"
-                  :key="dialogType"
-                  width="40%"
-                  :title="getDialogTitle"
+  <div class="userList">
+    <header>
+      <div class="headerContent">
+        <div class="search">
+          <span>绫诲瀷鏌ヨ:</span>
+          <div class="option">
+            <el-input v-model="type" placeholder="璇疯緭鍏ョ被鍨�"></el-input>
+          </div>
+          <span>涓婁紶鏃堕棿:</span>
+          <div class="option">
+            <el-date-picker
+              v-model="datePicked"
+              type="datetimerange"
+              value-format="yyyy-MM-dd HH:mm:ss"
+              range-separator="鑷�"
+              start-placeholder="寮�濮嬫棩鏈�"
+              end-placeholder="缁撴潫鏃ユ湡"
+            >
+            </el-date-picker>
+          </div>
+          <div class="findBtn">
+            <el-button type="primary" @click="getImageResourceList"
+              >鏌ヨ</el-button
+            >
+          </div>
+          <!-- <div class="findBtn">
+            <el-button
+              type="primary"
+              @click="handleUpdateImageResource(null, 'create')"
+              >娣诲姞鍥剧墖</el-button
+            >
+          </div> -->
+        </div>
+      </div>
+    </header>
+    <main>
+      <div class="mainContent">
+        <div class="type-nav">
+          <div
+            @click="changeTypeChecked(item.value)"
+            v-for="item in typeList"
+            :key="item.name"
+            :class="[item.checked ? 'is-active' : '', 'type-item']"
+          >
+            {{ item.name }}
+          </div>
+        </div>
+        <!-- 鏁版嵁灞曠ず -->
+        <el-table
+          ref="multipleTable"
+          :header-cell-style="{
+            background: '#06122c',
+            'font-size': '12px',
+            color: '#4b9bb7',
+            'font-weight': '650',
+            'line-height': '45px',
+          }"
+          :data="tableData"
+          style="width: 100%"
+          :row-class-name="tableRowClassName"
+          @selection-change="tableChange"
+        >
+          <el-table-column type="selection" min-width="5"> </el-table-column>
+          <el-table-column prop="code" label="鎵�灞炰簨浠剁紪鍙�" min-width="18">
+          </el-table-column>
+          <el-table-column prop="category" label="闂绫诲埆" min-width="8">
+            <template v-if="scope.row.category" slot-scope="scope">
+              <span>{{ getCategory(scope.row.category).label }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column prop="eventSource" label="浜嬩欢鏉ユ簮" min-width="8">
+            <template v-if="scope.row.eventSource" slot-scope="scope">
+              <span>{{ getEventSource(scope.row.eventSource).label }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column prop="regionName" label="绀惧尯鍚嶇О" min-width="8">
+          </el-table-column>
+          <el-table-column prop="id" label="鍥剧墖Id" min-width="8">
+          </el-table-column>
+          <el-table-column
+            prop="createTime"
+            label="涓婁紶鏃堕棿"
+            min-width="15"
+            v-if="mystatus === 1"
+          >
+          </el-table-column>
+          <el-table-column prop="operation" label="鎿嶄綔" min-width="15">
+            <template slot-scope="scope">
+              <div class="operation">
+                <span @click="handleUpdateImageResource(scope.row, 'view')"
+                  >鏌ョ湅</span
                 >
-                  <updateUser v-if="isShowUploadDialog" @closeDialog="closeDialog" :dialogType="dialogType" :originalData="originalData" />
-                </el-dialog>
-                <div class="tools">
-                    <div class="funs">
-                        <div class="funsItem funs-sp">
-                            <el-checkbox v-model="all" @change="selectAll()">鍏ㄩ��</el-checkbox>
-                        </div>
-                        <div class="funsItem funs-sp">
-                            <el-checkbox v-model="unsame" @change="disSame(tableData)">鍙嶉��</el-checkbox>
-                        </div>
-                        <div class="funsItem">
-                            <el-select v-model="myIdx" placeholder="鎵归噺鎿嶄綔" @change="selectChange" disabled>
-                                <el-option v-for="item in options" :key="item.value" :label="item.label"
-                                    :value="item.value" :disabled="item.disabled">
-                                </el-option>
-                            </el-select>
-                        </div>
-                    </div>
-                    <div class="pagination">
-                        <el-pagination background :current-page="currentPage" layout="prev, pager, next"
-                            :total="totalNum" :page-size="pageSize" @current-change="changeCurrentPage">
-                        </el-pagination>
-                    </div>
-                </div>
+                <span class="line">|</span>
+                <span @click="handleUpdateImageResource(scope.row, 'update')"
+                  >淇敼</span
+                >
+                <span class="line">|</span>
+                <span @click="handleDelete(scope.row)">鍒犻櫎</span>
+              </div>
+            </template>
+          </el-table-column>
+        </el-table>
+        <el-dialog
+          :visible.sync="isShowUploadDialog"
+          :destroy-on-close="true"
+          :key="dialogType"
+          width="40%"
+          :title="getDialogTitle"
+        >
+          <updateUser
+            v-if="isShowUploadDialog"
+            @closeDialog="closeDialog"
+            :dialogType="dialogType"
+            :originalData="originalData"
+          />
+        </el-dialog>
+        <div class="tools">
+          <div class="funs">
+            <div class="funsItem funs-sp">
+              <el-checkbox v-model="all" @change="selectAll()"
+                >鍏ㄩ��</el-checkbox
+              >
             </div>
-        </main>
-    </div>
+            <div class="funsItem funs-sp">
+              <el-checkbox v-model="unsame" @change="disSame(tableData)"
+                >鍙嶉��</el-checkbox
+              >
+            </div>
+            <div class="funsItem">
+              <el-select
+                v-model="myIdx"
+                placeholder="鎵归噺鎿嶄綔"
+                @change="selectChange"
+                disabled
+              >
+                <el-option
+                  v-for="item in options"
+                  :key="item.value"
+                  :label="item.label"
+                  :value="item.value"
+                  :disabled="item.disabled"
+                >
+                </el-option>
+              </el-select>
+            </div>
+          </div>
+          <div class="pagination">
+            <el-pagination
+              background
+              :current-page="currentPage"
+              layout="prev, pager, next"
+              :total="totalNum"
+              :page-size="pageSize"
+              @current-change="changeCurrentPage"
+            >
+            </el-pagination>
+          </div>
+        </div>
+      </div>
+    </main>
+  </div>
 </template>
 <script>
 import updateUser from "./updateUser";
@@ -111,394 +167,397 @@
 import { CATEGOTY, EVENT_SOURCE } from "@/utils/helper";
 
 export default {
-    components: { updateUser },
+  components: { updateUser },
 
-    computed: {
-      getDialogTitle() {
-        if (this.dialogType === 'create') {
-          return '鍒涘缓';
-        }
+  computed: {
+    getDialogTitle() {
+      if (this.dialogType === "create") {
+        return "鍒涘缓";
+      }
 
-        if (this.dialogType === 'update') {
-          return '鏇存柊';
-        }
+      if (this.dialogType === "update") {
+        return "鏇存柊";
+      }
 
-        if (this.dialogType === 'view') {
-          return '鏌ョ湅';
-        }
+      if (this.dialogType === "view") {
+        return "鏌ョ湅";
       }
     },
+  },
 
-    data() {
-      return {
-            isShowUploadDialog:false,
-            dialogType: 'create',
-            originalData: null,
-            type: '',
-            size: '',
-            importTime: null,
-            tableData: [],
-            dialogUpload: false,
-            dialogView: false,
-            updateFlag:false,
-            userInfo:{},
-            info: {},
-            totalNum: 5,
-            pageSize: 10,
-            currentPage: 1,
-            all: false,
-            unsame: false,
-            myIdx: 0,
-            preMyIdx: 0,
-            options: [
-                {
-                    value: 0,
-                    label: '鎵归噺鎿嶄綔',
-                    disabled: true,
-                },
-                {
-                    value: 1,
-                    label: '鎵归噺鍚敤',
-                },
-                {
-                    value: 2,
-                    label: '鎵归噺绂佺敤',
-                },
-                {
-                    value: 3,
-                    label: '鎵归噺鍒犻櫎',
-                }
-            ],
-            tempList: [],
-            typeList: [
-                {
-                    name: '鎽勫儚澶存帹閫�',
-                    value: 1,
-                    checked: true
-                },
-                {
-                    name: '鍗曞叺鎺ㄩ��',
-                    value: 2,
-                    checked: false,
-                },
-            ],
-            mystatus: 1,
-            caseId: '',
-            caseCode: null,
-            dialogAdd: false,
-            datePicked: null,
-        }
+  data() {
+    return {
+      isShowUploadDialog: false,
+      dialogType: "create",
+      originalData: null,
+      type: "",
+      size: "",
+      importTime: null,
+      tableData: [],
+      dialogUpload: false,
+      dialogView: false,
+      updateFlag: false,
+      userInfo: {},
+      info: {},
+      totalNum: 5,
+      pageSize: 10,
+      currentPage: 1,
+      all: false,
+      unsame: false,
+      myIdx: 0,
+      preMyIdx: 0,
+      options: [
+        {
+          value: 0,
+          label: "鎵归噺鎿嶄綔",
+          disabled: true,
+        },
+        {
+          value: 1,
+          label: "鎵归噺鍚敤",
+        },
+        {
+          value: 2,
+          label: "鎵归噺绂佺敤",
+        },
+        {
+          value: 3,
+          label: "鎵归噺鍒犻櫎",
+        },
+      ],
+      tempList: [],
+      typeList: [
+        {
+          name: "鎽勫儚澶存帹閫�",
+          value: 1,
+          checked: true,
+        },
+        {
+          name: "鍗曞叺鎺ㄩ��",
+          value: 2,
+          checked: false,
+        },
+      ],
+      mystatus: 1,
+      caseId: "",
+      caseCode: null,
+      dialogAdd: false,
+      datePicked: null,
+    };
+  },
+  created() {
+    this.size = this.typeList.find((item) => item.checked).value;
+    this.getImageResourceList();
+  },
+  methods: {
+    //淇敼
+    handleUpdateImageResource(data, type) {
+      this.dialogType = type;
+      this.originalData = data;
+      this.isShowUploadDialog = true;
     },
-    created() {
-      this.size = this.typeList.find(item => item.checked).value;
+
+    // 鎵归噺鍒犻櫎
+    mulDelete(idArr) {
+      imageManagement
+        .deleteImageResources({ ids: idArr })
+        .then(() => {
+          this.$message.success("鎿嶄綔鎴愬姛");
+          this.getImageResourceList();
+        })
+        .catch((err) => this.$message.error(`${err}`));
+    },
+    // 鎵ц涓嬫媺妗嗘搷浣�
+    selectChange(list) {
+      if (this.tempList.length !== 0) {
+        if (list === 3) {
+          this.preMyIdx = list;
+          this.mulDelete(this.tempList);
+        }
+      } else {
+        this.myIdx = this.preMyIdx;
+        this.$message({
+          type: "warning",
+          message: "鎮ㄨ繕娌¢�変腑浠讳綍鏁版嵁",
+        });
+      }
+    },
+    // 鐩戝惉琛ㄦ牸
+    tableChange(list) {
+      this.tempList = [];
+      list.forEach((item) => {
+        this.tempList.push(item.code);
+      });
+      this.all = list.length === this.tableData.length;
+    },
+    // 鍏ㄩ��
+    selectAll() {
+      this.$refs.multipleTable.toggleAllSelection();
+    },
+    // 鍙嶉��
+    disSame(list) {
+      list.forEach((row) => {
+        this.$refs.multipleTable.toggleRowSelection(row);
+      });
+    },
+    // 鍒犻櫎鍗曟潯鏁版嵁
+    handleDelete({ id }) {
+      this.$confirm("纭鍒犻櫎锛�").then(() => {
+        imageManagement
+          .deleteImageResource({ id: id })
+          .then(() => {
+            this.$message.success("鎿嶄綔鎴愬姛");
+          })
+          .catch((err) => this.$message.error(`${err}`));
+      });
+    },
+
+    getImageResourceList() {
+      const dateParams = {};
+      if (this.datePicked) {
+        dateParams.startTime = dateParams[0];
+        dateParams.endTime = dateParams[1];
+      }
+      imageManagement
+        .getImageResources({
+          current: this.currentPage,
+          size: this.pageSize,
+          type: this.size,
+          ...dateParams,
+        })
+        .then(({ records, total }) => {
+          this.tableData = records;
+          this.totalNum = total;
+        })
+        .catch((err) => this.$message({ type: "error", message: err }));
+    },
+    // 鏇存敼杩濊/杩濆缓
+    changeTypeChecked(idx) {
+      this.typeList.forEach((item) => {
+        item.checked = item.value === idx;
+      });
+      this.mystatus = idx + 1;
+      this.size = idx;
       this.getImageResourceList();
     },
-    methods: {
-        //淇敼
-        handleUpdateImageResource(data, type){
-          this.dialogType = type;
-          this.originalData = data;
-          this.isShowUploadDialog = true;
-        },
-
-        // 鎵归噺鍒犻櫎
-        mulDelete(idArr) {
-          imageManagement.deleteImageResources({ ids: idArr })
-              .then(() => {
-                this.$message.success('鎿嶄綔鎴愬姛');
-                this.getImageResourceList();
-              })
-              .catch(err => this.$message.error(`${err}`))
-        },
-        // 鎵ц涓嬫媺妗嗘搷浣�
-        selectChange(list) {
-            if (this.tempList.length !== 0) {
-                if (list === 3) {
-                    this.preMyIdx = list;
-                    this.mulDelete(this.tempList);
-                }
-            } else {
-                this.myIdx = this.preMyIdx;
-                this.$message({
-                    type: 'warning',
-                    message: '鎮ㄨ繕娌¢�変腑浠讳綍鏁版嵁',
-                })
-            }
-        },
-        // 鐩戝惉琛ㄦ牸
-        tableChange(list) {
-            this.tempList = [];
-            list.forEach(item => {
-                this.tempList.push(item.code);
-            })
-            this.all = list.length === this.tableData.length;
-        },
-        // 鍏ㄩ��
-        selectAll() {
-            this.$refs.multipleTable.toggleAllSelection();
-        },
-        // 鍙嶉��
-        disSame(list) {
-            list.forEach(row => {
-                this.$refs.multipleTable.toggleRowSelection(row)
-            })
-        },
-        // 鍒犻櫎鍗曟潯鏁版嵁
-        handleDelete({ id }) {
-            this.$confirm('纭鍒犻櫎锛�')
-                .then(() => {
-                  imageManagement.deleteImageResource({ id: id })
-                      .then(() => {
-                        this.$message.success('鎿嶄綔鎴愬姛');
-                      })
-                      .catch(err => this.$message.error(`${err}`))
-                })
-        },
-
-        getImageResourceList() {
-          const dateParams = {};
-          if (this.datePicked) {
-            dateParams.startTime = dateParams[0];
-            dateParams.endTime = dateParams[1]
-          }
-          imageManagement.getImageResources({ current: this.currentPage, size: this.pageSize, type: this.size, ...dateParams })
-              .then(({ records, total }) => {
-                this.tableData = records;
-                this.totalNum = total;
-              })
-              .catch(err => this.$message({ type: 'error', message: err }))
-        },
-        // 鏇存敼杩濊/杩濆缓
-        changeTypeChecked(idx) {
-            this.typeList.forEach(item => {
-                item.checked = item.value === idx;
-            });
-            this.mystatus = idx + 1;
-            this.size = idx;
-            this.getImageResourceList();
-        },
-        // 璁剧疆琛ㄦ牸鏂戦┈绾�
-        tableRowClassName({ row, rowIndex }) {
-            if ((rowIndex + 1) % 2 === 0) {
-                return 'warning-row';
-            } else {
-                return 'success-row';
-            }
-        },
-        // 褰撳墠椤垫敼鍙樿Е鍙戜簨浠�
-        changeCurrentPage(page) {
-            this.currentPage = page;
-            this.getImageResourceList();
-        },
-        opernDialog(data) {
-            this.dialogUpload = true;
-            this.caseId = data.id;
-            this.caseCode = data.code
-        },
-
-        closeDialog() {
-          this.isShowUploadDialog = false;
-          this.getImageResourceList();
-        },
-
-      getCategory(value) {
-          return CATEGOTY.find(item => item.value === value);
-      },
-
-      getEventSource(value) {
-          return EVENT_SOURCE.find(item => item.value === value);
+    // 璁剧疆琛ㄦ牸鏂戦┈绾�
+    tableRowClassName({ row, rowIndex }) {
+      if ((rowIndex + 1) % 2 === 0) {
+        return "warning-row";
+      } else {
+        return "success-row";
       }
-    }
-}
+    },
+    // 褰撳墠椤垫敼鍙樿Е鍙戜簨浠�
+    changeCurrentPage(page) {
+      this.currentPage = page;
+      this.getImageResourceList();
+    },
+    opernDialog(data) {
+      this.dialogUpload = true;
+      this.caseId = data.id;
+      this.caseCode = data.code;
+    },
+
+    closeDialog() {
+      this.isShowUploadDialog = false;
+      this.getImageResourceList();
+    },
+
+    getCategory(value) {
+      return CATEGOTY.find((item) => item.value === value);
+    },
+
+    getEventSource(value) {
+      return EVENT_SOURCE.find((item) => item.value === value);
+    },
+  },
+};
 </script>
 <style lang="scss" scoped>
 .userList {
-    text-align: left;
-    margin: 10px 20px;
-    color: #4b9bb7;
+  text-align: left;
+  margin: 10px 20px;
+  color: #4b9bb7;
 
-    header {
-        background-color: #09152f;
+  header {
+    background-color: #09152f;
 
-        .headerContent {
-            padding: 0 40px;
-            display: flex;
-            line-height: 100px;
-            justify-content: space-between;
-            align-items: center;
+    .headerContent {
+      padding: 0 40px;
+      display: flex;
+      line-height: 100px;
+      justify-content: space-between;
+      align-items: center;
 
-            .search {
-                display: flex;
-                justify-content: flex-start;
+      .search {
+        display: flex;
+        justify-content: flex-start;
 
-                span {
-                    flex: 1;
-                }
-
-                .el-input {
-                    flex: 2;
-                    color: #1d3f57;
-
-                    &::v-deep .el-input__inner {
-                        background-color: #09152f;
-                        border: 1px solid #17324c;
-                    }
-                }
-
-            }
-
-            .findBtn {
-                line-height: 100px;
-                margin-left: 15px;
-                display: flex;
-                align-items: center;
-                margin-top: -2px;
-
-                .el-button {
-                    padding: 12px 25px;
-                    border-radius: 20px;
-                }
-            }
-
-            .addBtn {
-                background-color: #eb5d01;
-                border: none;
-                border-radius: 20px;
-                padding: 12px 30px;
-            }
+        span {
+          flex: 1;
         }
+
+        .el-input {
+          flex: 2;
+          color: #1d3f57;
+
+          &::v-deep .el-input__inner {
+            background-color: #09152f;
+            border: 1px solid #17324c;
+          }
+        }
+      }
+
+      .findBtn {
+        line-height: 100px;
+        margin-left: 15px;
+        display: flex;
+        align-items: center;
+        margin-top: -2px;
+
+        .el-button {
+          padding: 12px 25px;
+          border-radius: 20px;
+        }
+      }
+
+      .addBtn {
+        background-color: #eb5d01;
+        border: none;
+        border-radius: 20px;
+        padding: 12px 30px;
+      }
+    }
+  }
+
+  &::v-deep .el-input__inner {
+    background-color: #09152f;
+    border: 1px solid #17324c;
+  }
+
+  main {
+    background-color: #09152f;
+    margin-top: 20px;
+    padding-bottom: 50px;
+
+    .btn span:hover {
+      cursor: pointer;
     }
 
-    &::v-deep .el-input__inner {
-        background-color: #09152f;
+    .type-nav {
+      display: flex;
+      line-height: 40px;
+      margin-left: 30px;
+      padding-top: 10px;
+      margin-bottom: 10px;
+
+      .type-item {
+        min-width: 80px;
+        text-align: center;
+        padding-right: 10px;
+
+        &:hover {
+          cursor: pointer;
+        }
+      }
+
+      .is-active {
+        background-color: #070f22;
+        border-radius: 4px;
+        color: #fff;
+      }
+    }
+
+    .tools {
+      display: flex;
+      justify-content: space-between;
+      align-items: center;
+      padding: 0 20px;
+
+      .funs-sp {
         border: 1px solid #17324c;
-    }
+      }
 
-    main {
-        background-color: #09152f;
-        margin-top: 20px;
-        padding-bottom: 50px;
+      .funs {
+        display: flex;
 
-        .btn span:hover {
-            cursor: pointer;
-        }
+        .funsItem {
+          line-height: 28px;
+          display: flex;
+          align-items: center;
+          border-radius: 4px;
+          font-size: 12px;
+          margin-left: 10px;
 
-        .type-nav {
-            display: flex;
-            line-height: 40px;
-            margin-left: 30px;
-            padding-top: 10px;
-            margin-bottom: 10px;
+          .el-checkbox {
+            width: 80px;
+            padding: 0 10px;
+          }
 
-            .type-item {
-                min-width: 80px;
-                text-align: center;
-                padding-right: 10px;
+          .el-select {
+            width: 120px;
+          }
 
-                &:hover {
-                    cursor: pointer;
-                }
-            }
+          &:hover {
+            border: 1px solid #4b9bb7;
+          }
 
-            .is-active {
-                background-color: #070f22;
-                border-radius: 4px;
-                color: #fff;
-            }
-        }
-
-        .tools {
-            display: flex;
-            justify-content: space-between;
-            align-items: center;
-            padding: 0 20px;
-
-            .funs-sp {
-                border: 1px solid #17324c;
-            }
-
-            .funs {
-                display: flex;
-
-                .funsItem {
-                    line-height: 28px;
-                    display: flex;
-                    align-items: center;
-                    border-radius: 4px;
-                    font-size: 12px;
-                    margin-left: 10px;
-
-                    .el-checkbox {
-                        width: 80px;
-                        padding: 0 10px;
-                    }
-
-                    .el-select {
-                        width: 120px;
-                    }
-
-                    &:hover {
-                        border: 1px solid #4b9bb7;
-                    }
-
-                    &:hover .el-checkbox {
-                        color: #4b9bb7;
-                    }
-                }
-
-            }
-
-            .pagination {
-                margin-top: 50px;
-                display: flex;
-                line-height: 50px;
-                justify-content: center;
-
-                .el-pagination {
-
-                    &::v-deep li,
-                    &::v-deep .btn-prev,
-                    &::v-deep .btn-next {
-                        background-color: #071f39;
-                        color: #4b9bb7;
-                    }
-
-                    &::v-deep .active {
-                        background-color: #409eff;
-                        color: #fff;
-                    }
-                }
-            }
-        }
-
-        .el-table {
+          &:hover .el-checkbox {
             color: #4b9bb7;
-            font-size: 10px;
-
-            &::v-deep .cell {
-                text-overflow: ellipsis;
-                white-space: nowrap;
-                overflow: hidden;
-            }
-
-
-            .operation {
-                display: flex;
-
-                .line {
-                    padding: 0 5px;
-                }
-
-                span:hover {
-                    cursor: pointer;
-                }
-            }
+          }
         }
+      }
+
+      .pagination {
+        margin-top: 50px;
+        display: flex;
+        line-height: 50px;
+        justify-content: center;
+
+        .el-pagination {
+          &::v-deep li,
+          &::v-deep .btn-prev,
+          &::v-deep .btn-next {
+            background-color: #071f39;
+            color: #4b9bb7;
+          }
+
+          &::v-deep .active {
+            background-color: #409eff;
+            color: #fff;
+          }
+        }
+      }
     }
 
-    .line {
-        padding: 0 5px;
+    .el-table {
+      color: #4b9bb7;
+      font-size: 10px;
+
+      &::v-deep .cell {
+        text-overflow: ellipsis;
+        white-space: nowrap;
+        overflow: hidden;
+      }
+
+      .operation {
+        display: flex;
+
+        .line {
+          padding: 0 5px;
+        }
+
+        span:hover {
+          cursor: pointer;
+        }
+      }
     }
+  }
+
+  .line {
+    padding: 0 5px;
+  }
 
   :deep(.el-range-input) {
     background-color: #09152f;
diff --git a/src/views/operate/images/updateUser/index.vue b/src/views/operate/images/updateUser/index.vue
index 309a684..38cc177 100644
--- a/src/views/operate/images/updateUser/index.vue
+++ b/src/views/operate/images/updateUser/index.vue
@@ -2,19 +2,36 @@
   <div class="updateUser">
     <main>
       <div class="mainContent">
-        <el-form label-position="right" label-width="150px"  :model="imagedata" :rules="rules" :disabled="isDisabled" ref="user" style="width: 100%;">
+        <el-form
+          label-position="right"
+          label-width="150px"
+          :model="imagedata"
+          :rules="rules"
+          :disabled="isDisabled"
+          ref="user"
+          style="width: 100%"
+        >
           <el-form-item prop="belongToId" label="鎵�灞炰簨浠剁紪鍙�">
-            <el-input v-model="imagedata.belongToId"></el-input>
+            <el-input v-model="imagedata.code"></el-input>
           </el-form-item>
           <el-form-item prop="eventSource" label="浜嬩欢鏉ユ簮">
-            <el-input v-model="imagedata.eventSource"></el-input>
+            <el-input
+              v-model="getEventSource(imagedata.eventSource).label"
+            ></el-input>
           </el-form-item>
           <el-form-item prop="category" label="闂绫诲埆">
-            <el-input v-model="imagedata.category"></el-input>
+            <el-input
+              v-model="getCategory(imagedata.category).label"
+            ></el-input>
           </el-form-item>
           <el-form-item prop="type" label="绫诲瀷">
             <el-select v-model="imagedata.type">
-              <el-option v-for="item in getResourceType()" :key="item.value" :label="item.label" :value="item.value" />
+              <el-option
+                v-for="item in getResourceType()"
+                :key="item.value"
+                :label="item.label"
+                :value="item.value"
+              />
             </el-select>
           </el-form-item>
           <el-form-item prop="regionName" label="绀惧尯鍚嶇О">
@@ -24,10 +41,20 @@
             <el-input v-model="imagedata.id"></el-input>
           </el-form-item>
           <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>
+            <my-upload
+              :picture-list="imageList"
+              :is-show-upload="dialogType !== 'view'"
+              @setPictureUrl="setPictureUrl"
+              @delPictureUrl="delPictureUrl"
+            ></my-upload>
           </el-form-item>
           <div v-if="!isDisabled" class="optionBtn">
-            <el-button type="primary" class="btn submit" @click.native.prevent="onSubmit">鎻愪氦</el-button>
+            <el-button
+              type="primary"
+              class="btn submit"
+              @click.native.prevent="onSubmit"
+              >鎻愪氦</el-button
+            >
           </div>
         </el-form>
       </div>
@@ -35,7 +62,12 @@
   </div>
 </template>
 <script>
-import { deepClone, RESOURCE_TYPE } from "@/utils/helper";
+import {
+  deepClone,
+  RESOURCE_TYPE,
+  CATEGOTY,
+  EVENT_SOURCE,
+} from "@/utils/helper";
 import imageManagement from "@/api/operate/imageManagement";
 import { FILE_ORIGINAL_URL } from "@/utils";
 import MyUpload from "@/components/myUpload";
@@ -47,43 +79,59 @@
       if (this.imagedata.url) {
         callback();
       } else {
-        callback(new Error('璇蜂笂浼犲浘鐗�'));
+        callback(new Error("璇蜂笂浼犲浘鐗�"));
       }
     };
     return {
       imagedata: {
-        belongToId: '',
-        eventSource: '',
-        regionName: '',
-        category: '',
-        id: '',
-        url: '',
-        type: ''
+        belongToId: "",
+        eventSource: 1,
+        regionName: "",
+        category: 1,
+        id: "",
+        url: "",
+        type: "",
       },
       rules: {
-        belongToId: [{ required: true, trigger: 'blur', message: '璇疯緭鍏ユ墍灞炰簨浠剁紪鍙�' }],
-        eventSource: [{ required: true, trigger: 'blur', message: '璇疯緭鍏ヤ簨浠舵潵婧�' }],
-        regionName: [{ required: true, trigger: 'blur', message: '璇疯緭鍏ョぞ鍖哄悕绉�' }],
-        id: [{ required: true, trigger: 'blur', message: '璇疯緭鍏ュ浘鐗嘔d' }],
-        category: [{ required: true, trigger: 'blue', message: '璇疯緭鍏ラ棶棰樼被鍨�' }],
+        belongToId: [
+          { required: true, trigger: "blur", message: "璇疯緭鍏ユ墍灞炰簨浠剁紪鍙�" },
+        ],
+        eventSource: [
+          { required: true, trigger: "blur", message: "璇疯緭鍏ヤ簨浠舵潵婧�" },
+        ],
+        regionName: [
+          { required: true, trigger: "blur", message: "璇疯緭鍏ョぞ鍖哄悕绉�" },
+        ],
+        id: [{ required: true, trigger: "blur", message: "璇疯緭鍏ュ浘鐗嘔d" }],
+        category: [
+          { required: true, trigger: "blue", message: "璇疯緭鍏ラ棶棰樼被鍨�" },
+        ],
         url: [{ required: true, validator: validateImageUrl }],
-        type: [{ required: true, trigger: ['blur', 'change'], message: '璇烽�夋嫨绫诲瀷' }]
+        type: [
+          {
+            required: true,
+            trigger: ["blur", "change"],
+            message: "璇烽�夋嫨绫诲瀷",
+          },
+        ],
       },
       isDisabled: false,
-      imageList: []
-    }
+      imageList: [],
+    };
   },
 
   created() {
-    this.imagedata = deepClone(this.originalData);
-    if (this.dialogType !== 'create') {
-      this.imageList = this.imagedata.url.split(',');
+    if (this.originalData) {
+      this.imagedata = deepClone(this.originalData);
     }
-    this.isDisabled = this.dialogType === 'view';
+    if (this.dialogType !== "create") {
+      this.imageList = this.imagedata.url.split(",");
+    }
+    this.isDisabled = this.dialogType === "view";
   },
   methods: {
     onSubmit() {
-      this.$refs.user.validate(valid => {
+      this.$refs.user.validate((valid) => {
         if (valid) {
           const params = Object.assign({}, this.imagedata);
           delete params.regionName;
@@ -91,48 +139,59 @@
           delete params.eventSource;
           delete params.id;
           params.belongToId = +params.belongToId;
-          if (this.dialogType === 'create') {
-            imageManagement.addImageResource(params)
-                .then(() => {
-                  this.$message.success('鎿嶄綔鎴愬姛');
-                  this.$emit('closeDialog');
-                })
-                .catch(err => this.$message.error(`${err}`))
+          if (this.dialogType === "create") {
+            imageManagement
+              .addImageResource(params)
+              .then(() => {
+                this.$message.success("鎿嶄綔鎴愬姛");
+                this.$emit("closeDialog");
+              })
+              .catch((err) => this.$message.error(`${err}`));
           } else {
-            imageManagement.updateImageResource(params)
-                .then(() => {
-                  this.$message.success('鎿嶄綔鎴愬姛');
-                  this.$emit('closeDialog');
-                })
-                .catch(err => this.$message.error(`${err}`))
+            imageManagement
+              .updateImageResource(params)
+              .then(() => {
+                this.$message.success("鎿嶄綔鎴愬姛");
+                this.$emit("closeDialog");
+              })
+              .catch((err) => this.$message.error(`${err}`));
           }
         } else {
-          this.$message.warning('璇锋鏌ュ繀濉」');
+          this.$message.warning("璇锋鏌ュ繀濉」");
         }
-      })
+      });
     },
     setPictureUrl({ url }) {
       this.imageList.push(`${FILE_ORIGINAL_URL}${url}`);
-      this.imagedata.url = this.imageList.join(',');
+      this.imagedata.url = this.imageList.join(",");
     },
     delPictureUrl({ url }) {
-      this.imageList = this.imageList.filter(item => item !== url);
-      this.imagedata.url = this.imageList.join(',');
+      this.imageList = this.imageList.filter((item) => item !== url);
+      this.imagedata.url = this.imageList.join(",");
+    },
+    getCategory(value) {
+      return CATEGOTY.find((item) => item.value === value);
+    },
+
+    getEventSource(value) {
+      return EVENT_SOURCE.find((item) => item.value === value);
     },
     getResourceType(value) {
-      return value ? RESOURCE_TYPE.find(item => item.value === value) : RESOURCE_TYPE;
-    }
+      return value
+        ? RESOURCE_TYPE.find((item) => item.value === value)
+        : RESOURCE_TYPE;
+    },
   },
   props: {
     originalData: {
       type: Object,
-      default: () => null
+      default: () => null,
     },
     dialogType: {
       type: String,
-      default: () => 'create'
-    }
-  }
+      default: () => "create",
+    },
+  },
 };
 </script>
 <style lang="scss" scoped>
@@ -281,7 +340,8 @@
   color: red;
 }
 
-.el-input, .el-select {
+.el-input,
+.el-select {
   width: 280px !important;
 }
 </style>
\ No newline at end of file

--
Gitblit v1.8.0