活动加banner

This commit is contained in:
dengbw
2022-11-18 22:39:14 +08:00
parent 3bf36b28c8
commit 0c9c685ebb
4 changed files with 120 additions and 9 deletions
@@ -117,7 +117,7 @@
/>
<div class="ele-text-secondary">建议尺寸750X1500</div>
</el-form-item>
<el-form-item label="直播图片:" prop="channelImg" v-show="false">
<el-form-item label="直播图片:" v-show="false">
<ele-image-upload
v-model="form.channelImg"
:limit="1"
@@ -136,6 +136,17 @@
type="textarea"
/>
</el-form-item>
<el-form-item label="banner:">
<ele-image-upload
v-model="form.banner"
:limit="1"
:drag="true"
:multiple="false"
:upload-handler="bannerHandler"
@upload="onUpload"
/>
<div class="ele-text-secondary">建议尺寸750*340</div>
</el-form-item>
<el-form-item label="分享图片:" prop="sharePhoto">
<ele-image-upload
v-model="form.sharePhoto"
@@ -222,6 +233,7 @@
shareImg: [],
bgImg: [],
channelImg: [],
banner: [],
sharePhoto: [],
drawCode: '',
pay: { way: 1, price: '', img: [] }
@@ -354,6 +366,27 @@
this.form.pay.img.push(item);
this.onUpload(item);
},
bannerHandler(file) {
const item = {
file,
uid: file.uid,
name: file.name,
progress: 0,
status: null
};
if (!file.type.startsWith('image')) {
this.$message.error('只能选择图片');
return;
}
if (file.size / 1024 / 1024 > 2) {
this.$message.error('大小不能超过 2MB');
return;
}
item.url = window.URL.createObjectURL(file);
// 关键就是这里要自己 push 添加数据而不是靠 v-modal 自动更新
this.form.banner.push(item);
this.onUpload(item);
},
channelImgHandler(file) {
const item = {
file,
@@ -5,9 +5,8 @@
ref="table"
title="区域统计"
:columns="columns"
:pageSize="100"
:datasource="datasource"
size="mini"
:need-page="false"
>
<template v-slot:toolkit>
<div class="list-tool-item">
@@ -80,12 +80,19 @@
class="ele-fluid"
/>
</el-form-item>
<el-form-item label="收货地址:">
<el-radio-group v-model="form.ifAddress">
<el-radio :label="0">不需要</el-radio>
<el-radio :label="1">需要</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="排序:">
<el-input
clearable
:maxlength="60"
<el-input-number
v-model="form.sort"
placeholder="请输入排序"
controls-position="right"
:min="0"
:max="100"
style="width: 150px; margin-right: 10px"
/>
</el-form-item>
<el-form-item label="商品详情:" prop="descrip">
@@ -132,7 +139,8 @@
banner: [],
dateRange: '',
useRange: '',
sort: '',
sort: 0,
ifAddress: 0,
descrip: ''
};
return {
+72 -1
View File
@@ -37,6 +37,20 @@
class="ele-fluid"
/>
</el-form-item>
<el-form-item
label="logo:"
v-show="form.teamType == 1 ? true : false"
>
<ele-image-upload
v-model="form.logo"
:limit="1"
:drag="true"
:multiple="false"
:upload-handler="logoHandler"
@upload="onUpload"
/>
<div class="ele-text-secondary">建议尺寸100X100</div>
</el-form-item>
</el-col>
<el-col v-bind="styleResponsive ? { sm: 12 } : { span: 12 }">
<el-form-item label="团队类型:" prop="teamType">
@@ -78,10 +92,18 @@
import TeamTypeSelect from './team-type-select.vue';
import TeamOrgSelect from './team-org-select.vue';
import RegionsSelect from '@/components/RegionsSelect/index.vue';
import EleImageUpload from 'ele-admin/es/ele-image-upload';
import request from '@/utils/request';
import { addTeam, updateTeam } from '@/api/sylive/team';
export default {
components: { TeamSelect, TeamTypeSelect, TeamOrgSelect, RegionsSelect },
components: {
TeamSelect,
TeamTypeSelect,
TeamOrgSelect,
RegionsSelect,
EleImageUpload
},
props: {
// 弹窗是否打开
visible: Boolean,
@@ -101,6 +123,7 @@
sortNumber: null,
comments: '',
city: [],
logo: [],
organizationId: null
};
return {
@@ -169,6 +192,54 @@
});
});
},
/* 上传事件 */
logoHandler(file) {
const item = {
file,
uid: file.uid,
name: file.name,
progress: 0,
status: null
};
if (!file.type.startsWith('image')) {
this.$message.error('只能选择图片');
return;
}
if (file.size / 1024 / 1024 > 2) {
this.$message.error('大小不能超过 2MB');
return;
}
item.url = window.URL.createObjectURL(file);
// 关键就是这里要自己 push 添加数据而不是靠 v-modal 自动更新
this.form.logo.push(item);
this.onUpload(item);
},
/* 上传 item */
onUpload(item) {
item.status = 'uploading';
const formData = new FormData();
formData.append('file', item.file);
request({
url: '/upload',
method: 'post',
data: formData,
onUploadProgress: (e) => {
if (e.lengthComputable) {
item.progress = (e.loaded / e.total) * 100;
}
}
})
.then((res) => {
if (res.data.code === 0) {
item.status = 'done';
item.url = res.data.data.full_url;
item.fileUrl = res.data.data.url;
}
})
.catch(() => {
item.status = 'exception';
});
},
/* 更新visible */
updateVisible(value) {
this.$emit('update:visible', value);