|
@@ -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>
|
|
|
|