xdd 2 месяцев назад
Родитель
Сommit
5b6a9ffe36

+ 63 - 15
src/views/store/adv/index.vue

@@ -115,7 +115,7 @@
         </template>
       </el-table-column>
     </el-table>
-    
+
     <pagination
       v-show="total>0"
       :total="total"
@@ -130,7 +130,13 @@
         <el-form-item label="广告标题" prop="advTitle">
           <el-input v-model="form.advTitle" placeholder="请输入广告标题" />
         </el-form-item>
-         <el-form-item label="广告图片" prop="imageUrl">
+        <el-form-item label="展示类型" prop="urlType">
+          <el-radio-group v-model="form.urlType">
+            <el-radio :label="1">图片</el-radio>
+            <el-radio :label="2">视频</el-radio>
+          </el-radio-group>
+        </el-form-item>
+         <el-form-item label="广告图片" prop="imageUrl" v-if="form.urlType==1">
             <el-upload
               v-model="form.icon"
               class="avatar-uploader"
@@ -142,24 +148,40 @@
               <i v-else class="el-icon-plus avatar-uploader-icon"></i>
             </el-upload>
         </el-form-item>
-        
+        <el-form-item label="广告视频" prop="video" v-if="form.urlType==2">
+          <div>
+            <el-upload
+              ref="upload"
+              class="upload-demo"
+              :action="uploadUrl"
+              :on-success="handleSuccess"
+              :before-upload="beforeUpload"
+              :limit="1"
+              :accept="videoAccept"
+            >
+              <el-button size="small" type="primary">点击上传视频</el-button>
+            </el-upload>
+            <video v-if="form.imageUrl" :src="form.imageUrl" controls style="max-width: 300px; max-height: 300px; margin-top: 10px"></video>
+          </div>
+        </el-form-item>
+
         <el-form-item label="广告位置" prop="advType">
           <el-radio-group v-model="form.advType">
             <el-radio :label="item.dictValue" v-for="item in advTypeOptions" >{{item.dictLabel}}</el-radio>
           </el-radio-group>
         </el-form-item>
-        <el-form-item label="显示方式" prop="showType">
+        <el-form-item label="显示方式" prop="showType" v-if="form.urlType==1">
           <el-radio-group @change="showTypeChange" v-model="form.showType">
             <el-radio :label="item.dictValue" v-for="item in showTypeOptions" >{{item.dictLabel}}</el-radio>
           </el-radio-group>
         </el-form-item>
-        <el-form-item label="公众号链接" prop="advUrl" v-if="form.showType==1">
+        <el-form-item label="公众号链接" prop="advUrl" v-if="form.showType==1 && form.urlType==1 " >
           <el-input v-model="form.advUrl" placeholder="请输入公众号链接" />
         </el-form-item>
-        <el-form-item label="小程序地址" prop="advUrl" v-if="form.showType==2">
+        <el-form-item label="小程序地址" prop="advUrl" v-if="form.showType==2 && form.urlType==1 ">
           <el-input v-model="form.advUrl" placeholder="请输入小程序地址" />
         </el-form-item>
-        <el-form-item label="文章内容" v-if="form.showType==3">
+        <el-form-item label="文章内容" v-if="form.showType==3 && form.urlType==1 ">
           <editor ref="myeditor" @on-text-change="updateText" />
         </el-form-item>
         <el-form-item label="状态" prop="status">
@@ -191,6 +213,7 @@ export default {
     return {
       uploadUrl:process.env.VUE_APP_BASE_API+"/common/uploadOSS",
       baseUrl: process.env.VUE_APP_BASE_API,
+      videoAccept:"video/*",
       statusOptions:[],
       advTypeOptions:[],
       showTypeOptions:[],
@@ -237,7 +260,7 @@ export default {
         imageUrl: [
           { required: true, message: "广告图不能为空", trigger: "blur" }
         ],
-      
+
       }
     };
   },
@@ -254,6 +277,30 @@ export default {
     this.getList();
   },
   methods: {
+    handleSuccess(response, file) {
+      // 上传成功后的回调函数
+      this.myloading.close();
+      this.form.imageUrl = response.url;
+      this.$refs.upload.clearFiles();
+    },
+    beforeUpload(file) {
+      // 上传前的钩子函数,可以在这里对文件进行处理
+      // 返回 false 则取消上传
+
+      // 例如限制文件大小
+      const isLt2M = file.size / 1024 / 1024 < 200;
+      if (!isLt2M) {
+        this.$message.error('上传视频文件大小不能超过 200MB!');
+        return false;
+      }
+      this.myloading = this.$loading({
+        lock: true,
+        text: '上传中',
+        spinner: 'el-icon-loading',
+        background: 'rgba(0, 0, 0, 0.7)'
+      });
+
+    },
     showTypeChange(e){
       console.log(e)
       if(e==3){
@@ -272,10 +319,10 @@ export default {
         else{
           this.msgError(res.msg);
         }
-        
+
     },
     beforeAvatarUpload(file) {
-      const isLt1M = file.size / 1024 / 1024 < 1;
+      const isLt1M = file.size / 1024 / 1024 < 200;
       if (!isLt1M) {
         this.$message.error('上传图片大小不能超过 1MB!');
       }
@@ -299,6 +346,7 @@ export default {
     reset() {
       this.form = {
         advId: null,
+        urlType:1,
         advTitle: null,
         imageUrl: null,
         advUrl: null,
@@ -307,8 +355,8 @@ export default {
         updateTime: null,
         status: "1",
         sort: null,
-        advType: "1",
-        showType: "1"
+        advType: null,
+        showType: null
       };
       this.resetForm("form");
     },
@@ -424,7 +472,7 @@ export default {
   }
 </style>
 <style scoped>
-  
+
   .avatar-uploader-icon {
     font-size: 28px;
     color: #8c939d;
@@ -438,7 +486,7 @@ export default {
     height: 150px;
     display: block;
   }
- 
- 
+
+
 </style>
 

+ 43 - 0
src/views/store/storeProduct/index.vue

@@ -144,6 +144,22 @@
           </el-popover>
         </template>
       </el-table-column>
+      <el-form-item label="商品视频" prop="video">
+        <div>
+          <el-upload
+            ref="upload"
+            class="upload-demo"
+            :action="uploadUrl"
+            :on-success="handleSuccess"
+            :before-upload="beforeUpload"
+            :limit="1"
+            :accept="videoAccept"
+          >
+            <el-button size="small" type="primary">点击上传视频</el-button>
+          </el-upload>
+          <video v-if="form.video" :src="form.video" controls style="max-width: 300px; max-height: 300px; margin-top: 10px"></video>
+        </div>
+      </el-form-item>
       <el-table-column label="商品名称" show-overflow-tooltip align="center" prop="productName" />
       <el-table-column label="分类" align="center" prop="cateName" />
       <el-table-column label="售价" align="center" prop="price" >
@@ -594,6 +610,8 @@ export default {
   },
   data() {
     return {
+      uploadUrl:process.env.VUE_APP_BASE_API+"/common/uploadOSS",
+      videoAccept:"video/*",
       upload: {
         // 是否显示弹出层
         open: false,
@@ -775,6 +793,31 @@ export default {
     this.loadWarehouseOptions();
   },
   methods: {
+    handleSuccess(response, file) {
+      // 上传成功后的回调函数
+      this.myloading.close();
+      this.form.video = response.url;
+      this.$refs.upload.clearFiles();
+    },
+    beforeUpload(file) {
+      // 上传前的钩子函数,可以在这里对文件进行处理
+      // 返回 false 则取消上传
+
+      // 例如限制文件大小
+      const isLt2M = file.size / 1024 / 1024 < 200;
+      if (!isLt2M) {
+        this.$message.error('上传视频文件大小不能超过 200MB!');
+        return false;
+      }
+      this.myloading = this.$loading({
+        lock: true,
+        text: '上传中',
+        spinner: 'el-icon-loading',
+        background: 'rgba(0, 0, 0, 0.7)'
+      });
+
+    },
+
     // 加载仓库数据
     loadWarehouseOptions(){
       listWarehousesAll({

+ 17 - 0
src/views/system/config/config.vue

@@ -89,6 +89,7 @@
                 <el-radio :label="1">七牛云</el-radio>
                 <el-radio :label="2">阿里云</el-radio>
                 <el-radio :label="3">腾讯云</el-radio>
+                 <el-radio :label="4">华为云</el-radio>
               </el-radio-group>
             </el-form-item>
             <el-form-item v-if="form2.type==1" label="七牛绑定的域名" prop="qiniuDomain">
@@ -142,6 +143,22 @@
             </el-form-item>
              <el-form-item v-if="form2.type==3" label="所属地区" prop="qcloudRegion">
                 <el-input  v-model="form2.qcloudRegion" label="所属地区不能为空"></el-input>
+            </el-form-item>
+            <el-form-item v-if="form2.type==4" label="华为云绑定的域名" prop="huaweiDomain">
+              <el-input  v-model="form2.huaweiDomain" label="华为云绑定的域名格式不正确"></el-input>
+            </el-form-item>
+            <el-form-item v-if="form2.type==4" label="华为云Endpoint" prop="huaweiBucketName">
+              <el-input  v-model="form2.huaweiEndpoint" label="华为云Endpoint不能为空"></el-input>
+            </el-form-item>
+
+            <el-form-item v-if="form2.type==4" label="华为云AK" prop="huaweiAK">
+              <el-input  v-model="form2.huaweiAK" label="华为云AK不能为空"></el-input>
+            </el-form-item>
+            <el-form-item v-if="form2.type==4" label="华为云SK" prop="huaweiSK">
+              <el-input  v-model="form2.huaweiSK" label="华为云SK不能为空"></el-input>
+            </el-form-item>
+            <el-form-item v-if="form2.type==4" label="华为云BucketName" prop="huaweiBucketName">
+              <el-input  v-model="form2.huaweiBucketName" label="华为云BucketName不能为空"></el-input>
             </el-form-item>
              <div   class="footer">
               <el-button type="primary" @click="submitForm2">提  交</el-button>