market_api_928_2

This commit is contained in:
dengbw
2022-09-28 16:29:22 +08:00
parent 387c245b97
commit dd5e7a63af
3 changed files with 68 additions and 58 deletions
+12
View File
@@ -64,6 +64,18 @@ export async function updateActivity(data) {
return Promise.reject(new Error(res.data.message));
}
/**
* 修改活动商品
* @param data 活动信息
*/
export async function updateActivityItem(data) {
const res = await request.put('/sylive/activity/item', data);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除活动
* @param id 活动id
@@ -18,13 +18,21 @@
placeholder="请输入商品标题"
/>
</el-form-item>
<el-form-item label="商品图片:" prop="shareImg">
<el-form-item label="商品价格:" prop="price">
<el-input
clearable
:maxlength="60"
v-model="form.price"
placeholder="请输入商品价格"
/>
</el-form-item>
<el-form-item label="商品图片:" prop="itemImg">
<ele-image-upload
v-model="form.shareImg"
v-model="form.itemImg"
:limit="10"
:drag="true"
:multiple="true"
:upload-handler="shareImgHandler"
:upload-handler="itemImgHandler"
@upload="onUpload"
/>
</el-form-item>
@@ -44,7 +52,7 @@
<el-input
v-model="form.introduction"
placeholder="请输入商品简介"
:rows="3"
:rows="5"
type="textarea"
/>
</el-form-item>
@@ -61,28 +69,23 @@
<script>
import EleImageUpload from 'ele-admin/es/ele-image-upload';
import request from '@/utils/request';
import { addActivity, updateActivity } from '@/api/sylive/activity';
import { updateActivityItem } from '@/api/sylive/activity';
export default {
components: { EleImageUpload },
props: {
// 弹窗是否打开
visible: Boolean,
// 修改回显的数据
data: Object,
// 全部机构
organizationList: Array
data: Object
},
data() {
const defaultForm = {
activityId: null,
bizIds: [],
title: '',
channelId: '',
price: '',
itemImg: [],
dateRange: '',
introduction: '',
shareTitle: [''],
shareImg: [],
bgImg: []
introduction: ''
};
return {
defaultForm,
@@ -97,38 +100,24 @@
trigger: 'blur'
}
],
bizIds: [
price: [
{
required: true,
message: '请选择所属门店',
message: '请输入商品价格',
trigger: 'blur'
}
],
bgImg: [
itemImg: [
{
required: true,
message: '请上传背景图',
trigger: 'blur'
}
],
channelId: [
{
required: true,
message: '请输入直播频道',
message: '请上传商品图',
trigger: 'blur'
}
],
dateRange: [
{
required: true,
message: '请选择直播时间',
trigger: 'blur'
}
],
introduction: [
{
required: true,
message: '请输入商品简介',
message: '请选择抢购时间',
trigger: 'blur'
}
]
@@ -146,26 +135,17 @@
}
},
methods: {
/* 添加分享描述 */
addShareTitle() {
this.form.shareTitle.push('');
},
/* 保存编辑 */
save() {
this.$refs.form.validate((valid) => {
if (!valid) {
return false;
}
this.form.shareTitle.forEach((item, i) => {
if (item == '') {
this.form.shareTitle.splice(i, 1);
}
});
this.loading = true;
const data = {
...this.form
};
const saveOrUpdate = this.isUpdate ? updateActivity : addActivity;
const saveOrUpdate = updateActivityItem;
saveOrUpdate(data)
.then((msg) => {
this.loading = false;
@@ -184,7 +164,7 @@
this.$emit('update:visible', value);
},
/* 上传事件 */
shareImgHandler(file) {
itemImgHandler(file) {
const item = {
file,
uid: file.uid,
@@ -202,7 +182,7 @@
}
item.url = window.URL.createObjectURL(file);
// 关键就是这里要自己 push 添加数据而不是靠 v-modal 自动更新
this.form.shareImg.push(item);
this.form.itemImg.push(item);
this.onUpload(item);
},
/* 上传 item */
@@ -240,13 +220,8 @@
...this.data
});
this.isUpdate = true;
if (this.form.shareTitle.length == 0) {
this.form.shareTitle.push('');
}
} else {
this.form.organizationId = this.organizationId;
this.form.bgImg = [];
this.form.shareImg = [];
this.form.itemImg = [];
this.isUpdate = false;
}
} else {
+30 -7
View File
@@ -59,6 +59,14 @@
>
二维码
</el-link>
<el-link
type="primary"
:underline="false"
icon="el-icon-edit"
@click="openEditItem(row)"
>
商品
</el-link>
<el-link
type="primary"
:underline="false"
@@ -88,6 +96,12 @@
:organization-list="organizationList"
@done="reload"
/>
<!-- 编辑商品弹窗 -->
<activity-item
:data="current"
:visible.sync="showEditItem"
@done="reload"
/>
<!-- 二维码 -->
<qr-code :visible.sync="showCode" :data="current" />
</div>
@@ -97,6 +111,7 @@
import QrCode from './components/qr-code.vue';
import ActivitySearch from './components/activity-search.vue';
import ActivityEdit from './components/activity-edit.vue';
import ActivityItem from './components/activity-item.vue';
import {
pageActivity,
removeActivity,
@@ -110,7 +125,8 @@
components: {
QrCode,
ActivitySearch,
ActivityEdit
ActivityEdit,
ActivityItem
},
data() {
return {
@@ -140,14 +156,14 @@
label: '标题',
sortable: 'custom',
showOverflowTooltip: true,
minWidth: 110
minWidth: 150
},
{
prop: 'channelId',
label: '直播频道',
sortable: 'custom',
showOverflowTooltip: true,
minWidth: 110,
minWidth: 70,
slot: 'nickname'
},
{
@@ -155,21 +171,21 @@
label: '直播开始时间',
sortable: 'custom',
showOverflowTooltip: true,
minWidth: 110
minWidth: 100
},
{
prop: 'e_time',
label: '直播结束时间',
sortable: 'custom',
showOverflowTooltip: true,
minWidth: 110
minWidth: 100
},
{
prop: 'createTime',
label: '创建时间',
sortable: 'custom',
showOverflowTooltip: true,
minWidth: 110,
minWidth: 100,
formatter: (_row, _column, cellValue) => {
return this.$util.toDateString(cellValue);
}
@@ -187,7 +203,7 @@
{
columnKey: 'action',
label: '操作',
width: 270,
width: 330,
align: 'center',
resizable: false,
slot: 'action'
@@ -199,6 +215,8 @@
current: null,
// 是否显示编辑弹窗
showEdit: false,
// 是否显示编辑商品弹窗
showEditItem: false,
// 是否显示二维码弹窗
showCode: false
};
@@ -237,6 +255,11 @@
this.current = row;
this.showEdit = true;
},
/* 打开编辑弹窗 */
openEditItem(row) {
this.current = row.item;
this.showEditItem = true;
},
/* 打开二维码弹窗 */
openCode(row) {
this.current = row;