|
|
|
@ -1,128 +1,128 @@
|
|
|
|
|
<template>
|
|
|
|
|
<div>
|
|
|
|
|
<Spin v-if="saving" fix>加载中...</Spin>
|
|
|
|
|
<Form ref="formValidate" :model="formValidate" :label-width="80">
|
|
|
|
|
<Spin v-if="saving"
|
|
|
|
|
fix>加载中...</Spin>
|
|
|
|
|
<Form ref="formValidate"
|
|
|
|
|
:model="formValidate"
|
|
|
|
|
:label-width="80">
|
|
|
|
|
<Row :gutter="10">
|
|
|
|
|
<i-col span="6">
|
|
|
|
|
<FormItem label="选择日期" prop>
|
|
|
|
|
<Date-picker
|
|
|
|
|
style="width: 100%"
|
|
|
|
|
v-model="formValidate.date"
|
|
|
|
|
type="daterange"
|
|
|
|
|
placement="bottom-end"
|
|
|
|
|
placeholder="选择日期区间"
|
|
|
|
|
></Date-picker>
|
|
|
|
|
<FormItem label="选择日期"
|
|
|
|
|
prop>
|
|
|
|
|
<Date-picker style="width: 100%"
|
|
|
|
|
v-model="formValidate.date"
|
|
|
|
|
type="daterange"
|
|
|
|
|
placement="bottom-end"
|
|
|
|
|
placeholder="选择日期区间"></Date-picker>
|
|
|
|
|
</FormItem>
|
|
|
|
|
</i-col>
|
|
|
|
|
<i-col span="6">
|
|
|
|
|
<FormItem label="零售公司" prop>
|
|
|
|
|
<Select
|
|
|
|
|
v-model="formValidate.organizationId"
|
|
|
|
|
filterable
|
|
|
|
|
@on-change="selectCompany"
|
|
|
|
|
placeholder="全部"
|
|
|
|
|
clearable
|
|
|
|
|
>
|
|
|
|
|
<Option
|
|
|
|
|
v-for="(item, index) in companyList"
|
|
|
|
|
:key="index"
|
|
|
|
|
:value="item.value"
|
|
|
|
|
>{{ item.label }}</Option>
|
|
|
|
|
<FormItem label="零售公司"
|
|
|
|
|
prop>
|
|
|
|
|
<Select v-model="formValidate.organizationId"
|
|
|
|
|
filterable
|
|
|
|
|
@on-change="selectCompany"
|
|
|
|
|
placeholder="全部"
|
|
|
|
|
clearable>
|
|
|
|
|
<Option v-for="(item, index) in companyList"
|
|
|
|
|
:key="index"
|
|
|
|
|
:value="item.value">{{ item.label }}</Option>
|
|
|
|
|
</Select>
|
|
|
|
|
</FormItem>
|
|
|
|
|
</i-col>
|
|
|
|
|
<i-col span="6">
|
|
|
|
|
<FormItem label="店铺" prop>
|
|
|
|
|
<Select v-model="formValidate.storeId" filterable placeholder="全部" clearable>
|
|
|
|
|
<Option
|
|
|
|
|
v-for="(item, index) in shopList"
|
|
|
|
|
:key="index"
|
|
|
|
|
:value="item.value"
|
|
|
|
|
>{{ item.label }}</Option>
|
|
|
|
|
<FormItem label="店铺"
|
|
|
|
|
prop>
|
|
|
|
|
<Select v-model="formValidate.storeId"
|
|
|
|
|
filterable
|
|
|
|
|
placeholder="全部"
|
|
|
|
|
clearable>
|
|
|
|
|
<Option v-for="(item, index) in shopList"
|
|
|
|
|
:key="index"
|
|
|
|
|
:value="item.value">{{ item.label }}</Option>
|
|
|
|
|
</Select>
|
|
|
|
|
</FormItem>
|
|
|
|
|
</i-col>
|
|
|
|
|
<i-col span="3">
|
|
|
|
|
<FormItem label="活动状态" prop>
|
|
|
|
|
<FormItem label="活动状态"
|
|
|
|
|
prop>
|
|
|
|
|
<Select v-model="formValidate.status">
|
|
|
|
|
<Option
|
|
|
|
|
v-for="(item, index) in activityStatusList"
|
|
|
|
|
:key="index"
|
|
|
|
|
:value="item.value"
|
|
|
|
|
>{{ item.label }}</Option>
|
|
|
|
|
<Option v-for="(item, index) in activityStatusList"
|
|
|
|
|
:key="index"
|
|
|
|
|
:value="item.value">{{ item.label }}</Option>
|
|
|
|
|
</Select>
|
|
|
|
|
</FormItem>
|
|
|
|
|
</i-col>
|
|
|
|
|
<i-col span="3">
|
|
|
|
|
<Button type="primary" @click="() => {pageNum = 1;searchTable()}">查询</Button>
|
|
|
|
|
<Button type="primary"
|
|
|
|
|
@click="() => {pageNum = 1;searchTable()}">查询</Button>
|
|
|
|
|
</i-col>
|
|
|
|
|
</Row>
|
|
|
|
|
<Row style="margin-top:50px">
|
|
|
|
|
<Table
|
|
|
|
|
:loading="loading"
|
|
|
|
|
border
|
|
|
|
|
@on-row-dblclick="showDetail"
|
|
|
|
|
:columns="columns1"
|
|
|
|
|
:data="data"
|
|
|
|
|
>
|
|
|
|
|
<template slot-scope="{row}" slot="qrCodeAction">
|
|
|
|
|
<img
|
|
|
|
|
:src="require('../../../static/img/qrCode-init.png')"
|
|
|
|
|
@click="navigateCode(row)"
|
|
|
|
|
class="table-img-qr-code"
|
|
|
|
|
/>
|
|
|
|
|
<Table :loading="loading"
|
|
|
|
|
border
|
|
|
|
|
@on-row-dblclick="showDetail"
|
|
|
|
|
:columns="columns1"
|
|
|
|
|
:data="data">
|
|
|
|
|
<template slot-scope="{row}"
|
|
|
|
|
slot="qrCodeAction">
|
|
|
|
|
<img :src="require('../../../static/img/qrCode-init.png')"
|
|
|
|
|
@click="navigateCode(row)"
|
|
|
|
|
class="table-img-qr-code" />
|
|
|
|
|
</template>
|
|
|
|
|
<template slot="action" slot-scope="{row}">
|
|
|
|
|
<template slot="action"
|
|
|
|
|
slot-scope="{row}">
|
|
|
|
|
<i-col span="12">
|
|
|
|
|
<Button
|
|
|
|
|
ghost
|
|
|
|
|
:class="row.status > 2 ? 'router-btn disable' : 'router-btn'"
|
|
|
|
|
@click="() => {stop(row)}"
|
|
|
|
|
>终止</Button>
|
|
|
|
|
<Button ghost
|
|
|
|
|
:class="row.status > 2 ? 'router-btn disable' : 'router-btn'"
|
|
|
|
|
@click="() => {stop(row)}">终止</Button>
|
|
|
|
|
</i-col>
|
|
|
|
|
<i-col span="12">
|
|
|
|
|
<Button ghost class="router-btn" @click="() => {modify(row)}">修改</Button>
|
|
|
|
|
<Button ghost
|
|
|
|
|
class="router-btn"
|
|
|
|
|
@click="() => {modify(row)}">修改</Button>
|
|
|
|
|
</i-col>
|
|
|
|
|
</template>
|
|
|
|
|
</Table>
|
|
|
|
|
<Page
|
|
|
|
|
:total="totalSize"
|
|
|
|
|
:current="pageNum"
|
|
|
|
|
:page-size="pageSize"
|
|
|
|
|
show-elevator
|
|
|
|
|
show-total
|
|
|
|
|
placement="top"
|
|
|
|
|
@on-change="handlePage"
|
|
|
|
|
class-name="ks-page"
|
|
|
|
|
></Page>
|
|
|
|
|
<Page :total="totalSize"
|
|
|
|
|
:current="pageNum"
|
|
|
|
|
:page-size="pageSize"
|
|
|
|
|
show-elevator
|
|
|
|
|
show-total
|
|
|
|
|
placement="top"
|
|
|
|
|
@on-change="handlePage"
|
|
|
|
|
class-name="ks-page"></Page>
|
|
|
|
|
</Row>
|
|
|
|
|
</Form>
|
|
|
|
|
<useTable
|
|
|
|
|
ref="useTable"
|
|
|
|
|
@doShow="doShow"
|
|
|
|
|
:show="showUse"
|
|
|
|
|
:isModify="true"
|
|
|
|
|
:schedule="activityInstance.scheduleVO"
|
|
|
|
|
></useTable>
|
|
|
|
|
<Modal v-model="isShowDetail" title="活动计划详情" width="70%" :footer-hide="true">
|
|
|
|
|
<planDetail v-if="isShowDetail" :detail="detail"></planDetail>
|
|
|
|
|
<useTable ref="useTable"
|
|
|
|
|
@doShow="doShow"
|
|
|
|
|
:show="showUse"
|
|
|
|
|
:isModify="true"
|
|
|
|
|
:schedule="activityInstance.scheduleVO"></useTable>
|
|
|
|
|
<Modal v-model="isShowDetail"
|
|
|
|
|
title="活动计划详情"
|
|
|
|
|
width="70%"
|
|
|
|
|
:footer-hide="true">
|
|
|
|
|
<planDetail v-if="isShowDetail"
|
|
|
|
|
:detail="detail"></planDetail>
|
|
|
|
|
</Modal>
|
|
|
|
|
<!-- 预览二维码 -->
|
|
|
|
|
<Modal
|
|
|
|
|
v-model="isShow"
|
|
|
|
|
:title="showStoreName"
|
|
|
|
|
:footer-hide="true"
|
|
|
|
|
width="230"
|
|
|
|
|
class-name="vertical-center-modal"
|
|
|
|
|
@on-ok="ok"
|
|
|
|
|
>
|
|
|
|
|
<Modal v-model="isShow"
|
|
|
|
|
:title="showStoreName"
|
|
|
|
|
:footer-hide="true"
|
|
|
|
|
width="230"
|
|
|
|
|
class-name="vertical-center-modal"
|
|
|
|
|
@on-ok="ok">
|
|
|
|
|
<div slot="header">
|
|
|
|
|
<p></p>
|
|
|
|
|
</div>
|
|
|
|
|
<p>{{this.showStoreName}}</p>
|
|
|
|
|
<img :src="qrCodeImage" style="width:200px;height:200px;" />
|
|
|
|
|
<img :src="qrCodeImage"
|
|
|
|
|
style="width:200px;height:200px;" />
|
|
|
|
|
<div style="text-align: center;">
|
|
|
|
|
<Button ghost type="primary" @click="download(rowData)">下载</Button>
|
|
|
|
|
<Button ghost
|
|
|
|
|
type="primary"
|
|
|
|
|
@click="download(rowData)">下载</Button>
|
|
|
|
|
</div>
|
|
|
|
|
</Modal>
|
|
|
|
|
</div>
|
|
|
|
@ -142,7 +142,7 @@ export default {
|
|
|
|
|
useTable,
|
|
|
|
|
planDetail
|
|
|
|
|
},
|
|
|
|
|
data() {
|
|
|
|
|
data () {
|
|
|
|
|
const _this = this;
|
|
|
|
|
return {
|
|
|
|
|
showStoreName: "",
|
|
|
|
@ -203,7 +203,7 @@ export default {
|
|
|
|
|
width: 60,
|
|
|
|
|
align: "center",
|
|
|
|
|
title: "序号",
|
|
|
|
|
render(h, params) {
|
|
|
|
|
render (h, params) {
|
|
|
|
|
let num = parseInt(params.index) + 1;
|
|
|
|
|
console.log(_this.pageSize);
|
|
|
|
|
if (_this.pageSize > 1) {
|
|
|
|
@ -219,7 +219,7 @@ export default {
|
|
|
|
|
{
|
|
|
|
|
title: "活动类型",
|
|
|
|
|
key: "scheduleVO.name",
|
|
|
|
|
render(h, params) {
|
|
|
|
|
render (h, params) {
|
|
|
|
|
return h("span", params.row["params"][0]["name"]);
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
@ -227,47 +227,47 @@ export default {
|
|
|
|
|
title: "活动时间",
|
|
|
|
|
key: "beginTime",
|
|
|
|
|
width: 230,
|
|
|
|
|
render(h, params) {
|
|
|
|
|
render (h, params) {
|
|
|
|
|
return h("span", params.row.beginTime + " - " + params.row.endTime);
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
title: "零售公司",
|
|
|
|
|
key: "shop",
|
|
|
|
|
render(h, params) {
|
|
|
|
|
render (h, params) {
|
|
|
|
|
return h(
|
|
|
|
|
"span",
|
|
|
|
|
params.row.companyName +
|
|
|
|
|
"等" +
|
|
|
|
|
(params.row.companyCount || 0) +
|
|
|
|
|
"家公司"
|
|
|
|
|
"等" +
|
|
|
|
|
(params.row.companyCount || 0) +
|
|
|
|
|
"家公司"
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
title: "店铺",
|
|
|
|
|
key: "shop",
|
|
|
|
|
render(h, params) {
|
|
|
|
|
render (h, params) {
|
|
|
|
|
return h(
|
|
|
|
|
"span",
|
|
|
|
|
params.row.storeName +
|
|
|
|
|
"等" +
|
|
|
|
|
(params.row.storeCount || 0) +
|
|
|
|
|
"家店铺"
|
|
|
|
|
"等" +
|
|
|
|
|
(params.row.storeCount || 0) +
|
|
|
|
|
"家店铺"
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
title: "添加好友数",
|
|
|
|
|
key: "addFriendNum",
|
|
|
|
|
render(h, params) {
|
|
|
|
|
render (h, params) {
|
|
|
|
|
return h("span", (params.row.friends || 0) + "人");
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
title: "参与活动客户数",
|
|
|
|
|
key: "joinActivityClientNum",
|
|
|
|
|
render(h, params) {
|
|
|
|
|
render (h, params) {
|
|
|
|
|
return h("span", (params.row.friends || 0) + "人");
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
@ -289,7 +289,7 @@ export default {
|
|
|
|
|
{
|
|
|
|
|
title: "活动状态",
|
|
|
|
|
key: "status",
|
|
|
|
|
render(h, p) {
|
|
|
|
|
render (h, p) {
|
|
|
|
|
const status = p.row.status;
|
|
|
|
|
if (status === 1) return h("span", "未开始");
|
|
|
|
|
if (status === 2) return h("span", "进行中");
|
|
|
|
@ -332,30 +332,30 @@ export default {
|
|
|
|
|
]
|
|
|
|
|
};
|
|
|
|
|
},
|
|
|
|
|
mounted() {
|
|
|
|
|
mounted () {
|
|
|
|
|
this.setMenuName("活动管理", "活动计划");
|
|
|
|
|
this.getCompanyInfo();
|
|
|
|
|
this.getShopInfo();
|
|
|
|
|
this.searchTable();
|
|
|
|
|
},
|
|
|
|
|
methods: {
|
|
|
|
|
doShow(show) {
|
|
|
|
|
doShow (show) {
|
|
|
|
|
this.showUse = show;
|
|
|
|
|
this.searchTable();
|
|
|
|
|
},
|
|
|
|
|
showDetail(detail) {
|
|
|
|
|
showDetail (detail) {
|
|
|
|
|
let _this = this;
|
|
|
|
|
this.getDetail(detail.id).then(res => {
|
|
|
|
|
_this.detail = res;
|
|
|
|
|
_this.isShowDetail = true;
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
getCompanyInfo() {
|
|
|
|
|
getCompanyInfo () {
|
|
|
|
|
let that = this;
|
|
|
|
|
let data = {
|
|
|
|
|
userId: JSON.parse(sessionStorage.getItem("loginInfo")).userId
|
|
|
|
|
};
|
|
|
|
|
ActivityManager.getCompany(data, function(data) {
|
|
|
|
|
ActivityManager.getCompany(data, function (data) {
|
|
|
|
|
that.companyList = [];
|
|
|
|
|
data.data.results.forEach(element => {
|
|
|
|
|
that.companyList.push({
|
|
|
|
@ -365,18 +365,18 @@ export default {
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
selectCompany(value) {
|
|
|
|
|
selectCompany (value) {
|
|
|
|
|
this.customerId = value;
|
|
|
|
|
this.getShopInfo();
|
|
|
|
|
},
|
|
|
|
|
getShopInfo() {
|
|
|
|
|
getShopInfo () {
|
|
|
|
|
let that = this;
|
|
|
|
|
let data = {
|
|
|
|
|
userId: JSON.parse(sessionStorage.getItem("loginInfo")).userId,
|
|
|
|
|
customerIds: this.customerId,
|
|
|
|
|
scheduleId: null
|
|
|
|
|
};
|
|
|
|
|
ActivityManager.getShop(data, function(data) {
|
|
|
|
|
ActivityManager.getShop(data, function (data) {
|
|
|
|
|
that.shopList = [];
|
|
|
|
|
data.data.results.forEach(element => {
|
|
|
|
|
that.shopList.push({
|
|
|
|
@ -386,11 +386,11 @@ export default {
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
handlePage: function(value) {
|
|
|
|
|
handlePage: function (value) {
|
|
|
|
|
this.pageNum = value;
|
|
|
|
|
this.searchTable();
|
|
|
|
|
},
|
|
|
|
|
stop(instance) {
|
|
|
|
|
stop (instance) {
|
|
|
|
|
if (instance.status > 2) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
@ -412,10 +412,10 @@ export default {
|
|
|
|
|
}
|
|
|
|
|
);
|
|
|
|
|
},
|
|
|
|
|
onCancel: () => {}
|
|
|
|
|
onCancel: () => { }
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
getDetail(instanceId) {
|
|
|
|
|
getDetail (instanceId) {
|
|
|
|
|
return new Promise((resolve, reject) => {
|
|
|
|
|
ActivityManager.instanceDetail(
|
|
|
|
|
{
|
|
|
|
@ -427,7 +427,7 @@ export default {
|
|
|
|
|
);
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
modify(instance) {
|
|
|
|
|
modify (instance) {
|
|
|
|
|
let _this = this;
|
|
|
|
|
this.getDetail(instance.id).then(res => {
|
|
|
|
|
store.commit("SET_useData", res);
|
|
|
|
@ -435,14 +435,13 @@ export default {
|
|
|
|
|
_this.showUse = true;
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
navigateCode(instance) {
|
|
|
|
|
return;
|
|
|
|
|
navigateCode (instance) {
|
|
|
|
|
this.$router.push({
|
|
|
|
|
path: "/activity/plan/code",
|
|
|
|
|
query: { instanceId: instance.id }
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
searchTable(params = {}) {
|
|
|
|
|
searchTable (params = {}) {
|
|
|
|
|
this.loading = true;
|
|
|
|
|
if (
|
|
|
|
|
this.formValidate.date !== null &&
|
|
|
|
@ -475,7 +474,7 @@ export default {
|
|
|
|
|
this.loading = false;
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
startDateChange: function(e) {
|
|
|
|
|
startDateChange: function (e) {
|
|
|
|
|
//设置开始时间
|
|
|
|
|
this.endDateOptions = {
|
|
|
|
|
disabledDate: date => {
|
|
|
|
@ -486,11 +485,11 @@ export default {
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
},
|
|
|
|
|
endDateChange: function(e) {
|
|
|
|
|
endDateChange: function (e) {
|
|
|
|
|
//设置结束时间
|
|
|
|
|
let endTime = this.formValidate.endDate
|
|
|
|
|
? new Date(this.formValidate.endDate).valueOf() -
|
|
|
|
|
1 * 24 * 60 * 60 * 1000
|
|
|
|
|
1 * 24 * 60 * 60 * 1000
|
|
|
|
|
: "";
|
|
|
|
|
this.startDateOptions = {
|
|
|
|
|
disabledDate: date => {
|
|
|
|
@ -498,17 +497,17 @@ export default {
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
},
|
|
|
|
|
show: function(index) {
|
|
|
|
|
show: function (index) {
|
|
|
|
|
this.isShow = true;
|
|
|
|
|
this.showStoreName = index.name;
|
|
|
|
|
this.qrCodeImage = index.qrCodeAction;
|
|
|
|
|
this.rowData = index;
|
|
|
|
|
},
|
|
|
|
|
hide: function() {
|
|
|
|
|
hide: function () {
|
|
|
|
|
this.isShow = false;
|
|
|
|
|
},
|
|
|
|
|
// 下载二维码
|
|
|
|
|
download: function(index) {
|
|
|
|
|
download: function (index) {
|
|
|
|
|
debugger;
|
|
|
|
|
let fileName = index.name + "-门店码";
|
|
|
|
|
http.downloadImg(
|
|
|
|
@ -516,10 +515,10 @@ export default {
|
|
|
|
|
url: index.qrCodeAction
|
|
|
|
|
},
|
|
|
|
|
fileName,
|
|
|
|
|
function(/*data*/) {}
|
|
|
|
|
function (/*data*/) { }
|
|
|
|
|
);
|
|
|
|
|
},
|
|
|
|
|
ok: function() {
|
|
|
|
|
ok: function () {
|
|
|
|
|
this.isShow = false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|