From 9057e04efad1b7d61c77a72e5c37a504d0aee935 Mon Sep 17 00:00:00 2001
From: doum <doum>
Date: 星期五, 26 九月 2025 09:24:03 +0800
Subject: [PATCH] H5静态化

---
 admin/src/components/common/UploadFileCommon.vue |  150 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 150 insertions(+), 0 deletions(-)

diff --git a/admin/src/components/common/UploadFileCommon.vue b/admin/src/components/common/UploadFileCommon.vue
new file mode 100644
index 0000000..8ad4306
--- /dev/null
+++ b/admin/src/components/common/UploadFileCommon.vue
@@ -0,0 +1,150 @@
+<template>
+  <div>
+    <el-upload
+      class="avatar-uploader"
+      :accept="uploadData.fileTyp"
+      :style="customStyle"
+      :action="uploadImgUrl"
+      :file="file1"
+      :data="uploadData"
+      :limit="1"
+      :show-file-list="false"
+      :on-success="handleSuccess"
+      :on-error="uploadError"
+      :before-upload="beforeAvatarUpload">
+      <img v-if="file.fileType==0 && file.fileUrlFull" :src="file.fileUrlFull" style="width: 90px;height: 90px" class="avatar">
+      <video v-if="file.fileType==1 &&file.fileUrlFull" :src="file.fileUrlFull" style="width: 90px;height: 90px" class="avatar" />
+      <span v-if="file.fileType==2 &&file.fileUrlFull"  style="width: 90px;height: 90px" class="avatar" >{{file.fileName}}</span>
+      <div class="desc_data_list_item_img" style="cursor: pointer; background: #8c939d;">
+          <i  class="el-icon-plus"></i>
+      </div>
+    </el-upload>
+  </div>
+
+</template>
+
+<script>
+export default {
+  props: {
+    file: {
+      type: Object,
+      default: () => {}
+    },
+    tipsLabel: '',
+    customStyle: {
+      type: String,
+      default: 'width: 90px; height: 90px;'
+    },
+    uploadData: Object
+  },
+  data() {
+    return {
+      uploadImgUrl: process.env.VUE_APP_API_PREFIX + '/web/public/upload'
+    }
+  },
+
+  methods: {
+    // 涓婁紶鍥剧墖
+    handleSuccess(res, file) {
+      if (res.code == 200) {
+        let { data } = res
+        this.file.fileUrl = data.imgaddr
+        this.file.fileType = data.type
+        this.file.fileName= data.originname
+        this.file.fileUrlFull = data.url
+        this.$message.success('涓婁紶鎴愬姛')
+        this.$emit('uploadSuccess', { fileurl: data.imgaddr, fileUrlFull: data.url, name: data.originname })
+      } else {
+        this.$message.error('涓婁紶澶辫触')
+      }
+      this.$emit('uploadEnd')
+    },
+    uploadError() {
+      this.$message.error('涓婁紶澶辫触')
+      this.$emit('uploadEnd')
+    },
+    // // 鎷︽埅
+    beforeAvatarUpload(file) {
+      this.$emit('uploadBegin')
+      return true
+    }
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+.desc_data_list_item_img {
+  flex-shrink: 0;
+  width: 80px;
+  height: 80px;
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  overflow: hidden;
+  .el-icon-plus {
+    font-size: 26px;
+    color: #ffffff;
+  }
+  img {
+    width: 100%;
+    height: 100%;
+  }
+}
+
+$image-width: 100px;
+.avatar-uploader {
+  width: $image-width;
+  height: $image-width;
+}
+::v-deep .el-upload {
+  border: 1px dashed #d9d9d9;
+  border-radius: 6px;
+  cursor: pointer;
+  position: relative;
+  width: $image-width;
+  height: $image-width;
+  overflow: hidden;
+}
+.avatar-uploader .el-upload:hover {
+  border-color: #409EFF;
+}
+.avatar-uploader-icon {
+  line-height: 90px;
+  font-size: 28px;
+  color: #8c939d;
+  width: $image-width;
+  height: $image-width;
+  text-align: center;
+}
+.avatar {
+  width: $image-width;
+  height: $image-width;
+  display: block;
+}
+.tips-style {
+  height: 13px;
+  font-size: 13px;
+  font-weight: 400;
+  color: #999999;
+  line-height: 13px;
+}
+</style>
+<style lang="scss" scoped>
+::v-deep .el-upload--picture-card{
+  width: 90px !important;
+  height: 90px !important;
+}
+::v-deep .el-upload-list__item {
+  width: 90px !important;
+  height: 90px !important;
+}
+.icon {
+  -webkit-transform: translate(-50%,-50%);
+  -ms-transform: translate(-50%,-50%);
+  transform: translate(0%, -85%);
+}
+::v-deep .el-upload-list__item {
+  width: 90px !important;
+  height: 90px !important;
+}
+</style>

--
Gitblit v1.9.3