From a473c0680b7b003c33fa6ae5f646eb851e17fe8f Mon Sep 17 00:00:00 2001
From: 龚焕茏 <2842157468@qq.com>
Date: 星期三, 06 三月 2024 18:06:56 +0800
Subject: [PATCH] 上传图片

---
 src/views/tp/trafficPropaganda/index.vue |   58 +++++++++++++++++++
 src/views/dg/danger/index.vue            |   89 +++++++++++++++++++----------
 2 files changed, 114 insertions(+), 33 deletions(-)

diff --git a/src/views/dg/danger/index.vue b/src/views/dg/danger/index.vue
index 8a9b40c..df55df3 100644
--- a/src/views/dg/danger/index.vue
+++ b/src/views/dg/danger/index.vue
@@ -102,26 +102,48 @@
         <el-form-item label="瀹屾垚鎯呭喌" prop="performance">
           <el-input v-model="form.performance" placeholder="璇疯緭鍏ュ畬鎴愭儏鍐�" />
         </el-form-item>
+        <el-form-item label="鍥剧墖" prop="">
+          <el-upload action="#" list-type="picture-card" :auto-upload="false">
+            <el-icon><Plus /></el-icon>
+            <template #file="{ file }">
+              <div>
+                <img class="el-upload-list__item-thumbnail" :src="file.url" alt="" />
+                <span class="el-upload-list__item-actions">
+                  <span
+                    class="el-upload-list__item-preview"
+                    @click="handlePictureCardPreview(file)"
+                  >
+                    <el-icon><zoom-in /></el-icon>
+                  </span>
+                  <span
+                    v-if="!disabled"
+                    class="el-upload-list__item-delete"
+                    @click="handleDownload(file)"
+                  >
+                    <el-icon><Download /></el-icon>
+                  </span>
+                  <span
+                    v-if="!disabled"
+                    class="el-upload-list__item-delete"
+                    @click="handleRemove(file)"
+                  >
+                    <el-icon><Delete /></el-icon>
+                  </span>
+                </span>
+              </div>
+            </template>
+          </el-upload>
+          <el-dialog v-model="dialogVisible">
+            <img w-full :src="dialogImageUrl" alt="Preview Image" />
+          </el-dialog>
+        </el-form-item>
         <el-form-item label="鐘舵��" prop="status">
           <el-select v-model="form.status" placeholder="璇烽�夋嫨">
             <el-option key="1" label="宸插惎鐢�" :value="1" />
             <el-option key="2" label="宸茬鐢�" :value="2" />
           </el-select>
         </el-form-item>
-        <el-upload
-          label="涓婁紶鍥剧墖"
-          v-model:file-list="fileList"
-          action="https://run.mocky.io/v3/9d059bf9-4660-45f2-925d-ce80ad6c4d15"
-          list-type="picture-card"
-          :on-preview="handlePictureCardPreview"
-          :on-remove="handleRemove"
-        >
-          <el-icon><Plus /></el-icon>
-        </el-upload>
 
-        <el-dialog v-model="dialogVisible">
-          <img w-full :src="dialogImageUrl" alt="Preview Image" />
-        </el-dialog>
       </el-form>
       <template #footer>
         <div class="dialog-footer">
@@ -141,31 +163,13 @@
 <script setup name="DangerInfo" lang="ts">
 import { getDangerType, listDangerInfo, getDangerInfo, delDangerInfo, addDangerInfo, updateDangerInfo } from '@/api/dg/dangerInfo';
 import { DangerInfoVO, DangerInfoQuery, DangerInfoForm } from '@/api/dg/dangerInfo/types';
-import type { TabsPaneContext, UploadProps, UploadUserFile } from "element-plus";
-const fileList = ref<UploadUserFile[]>([])
+import type { TabsPaneContext } from "element-plus";
 
-const dialogImageUrl = ref('')
-const dialogVisible = ref(false)
-
-const handleRemove: UploadProps['onRemove'] = (uploadFile, uploadFiles) => {
-  console.log(uploadFile, uploadFiles)
-}
-
-const handlePictureCardPreview: UploadProps['onPreview'] = (uploadFile) => {
-  dialogImageUrl.value = uploadFile.url!
-  dialogVisible.value = true
-}
 const activeName = ref('first')
 const handleClick = (tab: TabsPaneContext) => {
   tab.props.label
 }
 const { proxy } = getCurrentInstance() as ComponentInternalInstance;
-
-const activeIndex = ref('1')
-const activeIndex2 = ref('1')
-const handleSelect = (key: string, keyPath: string[]) => {
-  console.log(key, keyPath)
-}
 
 const dangerInfoList = ref<DangerInfoVO[]>([]);
 const buttonLoading = ref(false);
@@ -347,4 +351,25 @@
   getList();
   getDangerTypes();
 });
+
+import { Delete, Download, Plus, ZoomIn } from '@element-plus/icons-vue'
+
+import type { UploadFile } from 'element-plus'
+
+const dialogImageUrl = ref('')
+const dialogVisible = ref(false)
+const disabled = ref(false)
+
+const handleRemove = (file: UploadFile) => {
+  console.log(file)
+}
+
+const handlePictureCardPreview = (file: UploadFile) => {
+  dialogImageUrl.value = file.url!
+  dialogVisible.value = true
+}
+
+const handleDownload = (file: UploadFile) => {
+  console.log(file)
+}
 </script>
diff --git a/src/views/tp/trafficPropaganda/index.vue b/src/views/tp/trafficPropaganda/index.vue
index e80cbe4..3255ac6 100644
--- a/src/views/tp/trafficPropaganda/index.vue
+++ b/src/views/tp/trafficPropaganda/index.vue
@@ -77,8 +77,43 @@
         <el-form-item label="鏍囬" prop="title">
           <el-input v-model="form.title" placeholder="璇疯緭鍏ユ爣棰�" />
         </el-form-item>
-        <el-form-item label="鎺掑簭" prop="title">
+        <el-form-item label="鎺掑簭" prop="sequence">
           <el-input v-model="form.sequence" placeholder="璇疯緭鍏ユ帓搴�" />
+        </el-form-item>
+        <el-form-item label="瑙嗛" prop="">
+          <el-upload action="#" list-type="picture-card" :auto-upload="false">
+            <el-icon><Plus /></el-icon>
+            <template #file="{ file }">
+              <div>
+                <img class="el-upload-list__item-thumbnail" :src="file.url" alt="" />
+                <span class="el-upload-list__item-actions">
+                  <span
+                    class="el-upload-list__item-preview"
+                    @click="handlePictureCardPreview(file)"
+                  >
+                    <el-icon><zoom-in /></el-icon>
+                  </span>
+                  <span
+                    v-if="!disabled"
+                    class="el-upload-list__item-delete"
+                    @click="handleDownload(file)"
+                  >
+                    <el-icon><Download /></el-icon>
+                  </span>
+                  <span
+                    v-if="!disabled"
+                    class="el-upload-list__item-delete"
+                    @click="handleRemove(file)"
+                  >
+                    <el-icon><Delete /></el-icon>
+                  </span>
+                </span>
+              </div>
+            </template>
+          </el-upload>
+          <el-dialog v-model="dialogVisible">
+            <img w-full :src="dialogImageUrl" alt="Preview Image" />
+          </el-dialog>
         </el-form-item>
         <el-form-item label="鐘舵��" prop="status">
           <el-select v-model="form.status" placeholder="璇烽�夋嫨">
@@ -249,4 +284,25 @@
 onMounted(() => {
   getList();
 });
+
+import { Delete, Download, Plus, ZoomIn } from '@element-plus/icons-vue'
+
+import type { UploadFile } from 'element-plus'
+
+const dialogImageUrl = ref('')
+const dialogVisible = ref(false)
+const disabled = ref(false)
+
+const handleRemove = (file: UploadFile) => {
+  console.log(file)
+}
+
+const handlePictureCardPreview = (file: UploadFile) => {
+  dialogImageUrl.value = file.url!
+  dialogVisible.value = true
+}
+
+const handleDownload = (file: UploadFile) => {
+  console.log(file)
+}
 </script>

--
Gitblit v1.8.0