From 0027df1e43c4e1bdfc2646987e85210a695647e1 Mon Sep 17 00:00:00 2001
From: luobisheng <727299681@qq.com>
Date: 星期三, 16 十一月 2022 17:06:09 +0800
Subject: [PATCH] 图片,视频资源部分

---
 src/views/operate/images/updateUser/index.vue |   84 ++++++++++++++++++++++++++++-------------
 1 files changed, 57 insertions(+), 27 deletions(-)

diff --git a/src/views/operate/images/updateUser/index.vue b/src/views/operate/images/updateUser/index.vue
index ebcd0ad..7cf2e92 100644
--- a/src/views/operate/images/updateUser/index.vue
+++ b/src/views/operate/images/updateUser/index.vue
@@ -2,29 +2,35 @@
   <div class="updateUser">
     <main>
       <div class="mainContent">
-        <el-form :disabled="isDisabled" ref="user" style="width: 100%;">
+        <el-form :model="imagedata" :rules="rules" :disabled="isDisabled" ref="user" style="width: 100%;">
           <el-form-item prop="baseId" label="鎵�灞炰簨浠剁紪鍙�">
             <el-input v-model="imagedata.baseId"></el-input>
           </el-form-item>
-          <el-form-item prop="eventSource" label="澶х被鍚嶇О">
+          <el-form-item prop="eventSource" label="浜嬩欢鏉ユ簮">
             <el-input v-model="imagedata.eventSource"></el-input>
           </el-form-item>
-          <el-form-item prop="regionName" label="灏忕被鍚嶇О">
+          <el-form-item prop="category" label="闂绫诲埆">
+            <el-input v-model="imagedata.category"></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-select>
+          </el-form-item>
+          <el-form-item prop="regionName" label="绀惧尯鍚嶇О">
             <el-input v-model="imagedata.regionName"></el-input>
           </el-form-item>
           <el-form-item prop="id" label="鍥剧墖Id">
             <el-input v-model="imagedata.id"></el-input>
           </el-form-item>
-          <el-form-item prop="createTime" label="涓婁紶鏃堕棿">
-            <el-input v-model="imagedata.createTime"></el-input>
-          </el-form-item>
-          <el-form-item prop="eventSource" label="鍥剧墖:" min-width="8">
-<!--            <img style="width: 180px;height: 120px;" :src=imagedata.url>-->
+          <el-form-item prop="url" label="鍥剧墖:" min-width="8">
             <el-upload
+                class="avatar-uploader"
                 action=""
+                ref="image"
                 :show-file-list="false"
-                :on-success="handleImageSuccess"
-                :before-upload="beforeImageUpload">
+                :auto-upload="true"
+                :http-request="imageUpload">
               <img v-if="imagedata.url" :src="imagedata.url" class="avatar">
               <i v-else class="el-icon-plus avatar-uploader-icon"></i>
             </el-upload>
@@ -38,26 +44,47 @@
   </div>
 </template>
 <script>
-import { deepClone } from "@/utils/helper";
+import { deepClone, RESOURCE_TYPE } from "@/utils/helper";
 import imageManagement from "@/api/operate/imageManagement";
+import { FILE_ORIGINAL_URL } from "@/utils";
 
 export default {
   data() {
+    const validateImageUrl = (rule, value, callback) => {
+      if (this.imagedata.url) {
+        callback();
+      } else {
+        callback(new Error('璇蜂笂浼犲浘鐗�'));
+      }
+    };
     return {
       imagedata: {
-        code: '',
+        baseId: '',
         eventSource: '',
         regionName: '',
-        smallType: '',
+        category: '',
         id: '',
-        createTime: '',
-        url: ''
+        url: '',
+        type: ''
+      },
+      rules: {
+        baseId: [{ 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: '璇烽�夋嫨绫诲瀷' }]
       },
       isDisabled: false
     }
   },
+
   created() {
     this.imagedata = deepClone(this.originalData);
+    if (this.dialogType !== 'create') {
+      this.imagedata.url = this.imagedata.url.split(',')[0];
+    }
     this.isDisabled = this.dialogType === 'view';
   },
   methods: {
@@ -84,12 +111,22 @@
         }
       })
     },
-    handleImageSuccess() {},
-    beforeImageUpload(file) {
-      imageManagement.importImage(file)
+    imageUpload(file) {
+      const formData = new FormData();
+      formData.append('file', file.file);
+      imageManagement.importImage(formData)
           .then(res => {
+            this.$refs.image.clearFiles();
+            this.$set(this.imagedata, 'url', FILE_ORIGINAL_URL + res.url1);
+            this.$message.success('涓婁紶鎴愬姛');
           })
-          .catch(err => this.$message.error(`${err}`))
+          .catch(err => {
+            this.$message.error(`${err}`);
+            this.$refs.image.clearFiles();
+          })
+    },
+    getResourceType(value) {
+      return value ? RESOURCE_TYPE.find(item => item.value === value) : RESOURCE_TYPE;
     }
   },
   props: {
@@ -115,13 +152,6 @@
     padding: 0 55px;
     background-color: #09152f;
     padding-bottom: 50px;
-
-    // .mainTitle {
-    //     color: #4b9bb7;
-    //     font-weight: 600;
-    //     line-height: 100px;
-    //     font-size: 14px;
-    // }
 
     .mainContent {
       display: flex;
@@ -257,7 +287,7 @@
   color: red;
 }
 
-.el-input {
+.el-input, .el-select {
   width: 280px !important;
 }
 </style>
\ No newline at end of file

--
Gitblit v1.8.0