feature_0521
郑皇 6 years ago
parent ba02ce7252
commit c432ef5d34

@ -1,22 +1,21 @@
<template> <template>
<div class="activity_code"> <div class="activity_code">
<Table :loading="loading" <Table :loading="loading" border :columns="columns" :data="data"></Table>
border <Page
:columns="columns" :total="totalSize"
:data="data"></Table>
<Page :total="totalSize"
:current="pageNum" :current="pageNum"
:page-size="pageSize" :page-size="pageSize"
show-elevator show-elevator
show-total show-total
placement="top" placement="top"
@on-change="handlePage" @on-change="handlePage"
class-name="ks-page"></Page> class-name="ks-page"
></Page>
</div> </div>
</template> </template>
<script> <script>
import { activityCodeList } from '../../services/ActivityManager/ActivityManager'; import { activityCodeList } from "../../services/ActivityManager/ActivityManager";
export default { export default {
name: "ActivityCode", name: "ActivityCode",
data() { data() {
@ -67,14 +66,20 @@ export default {
title: "推广码", title: "推广码",
key: "qrCode", key: "qrCode",
render(h, params) { render(h, params) {
return h("div", { return h(
class: "qrcode" }, [ "div",
{
class: "qrcode",
},
[
h( h(
"Button", "Button",
{ {
props: { type: "primary", size: "small" }, props: { type: "primary", size: "small" },
style: { marginRight: "8px" }, style: { marginRight: "8px" },
on: { "mouseover.native": () => _this.showQrcode(params.row) } on: {
"mouseover.native": () => _this.showQrcode(params.row),
},
}, },
"二维码" "二维码"
), ),
@ -82,14 +87,12 @@ export default {
"div", "div",
{ {
class: "qrcodeBox", class: "qrcodeBox",
style: { display: "none" } style: { display: "none" },
}, [ },
h( [h("img", { attrs: { src: params.row.qrCode } })]
"img", ),
{ attrs: { src: params.row.qrCode } } ]
)] );
)
]);
}, },
}, },
{ {
@ -108,11 +111,11 @@ export default {
}, },
}, },
"查看导购码" "查看导购码"
) ),
]); ]);
}, },
}, },
] ],
}; };
}, },
created() { created() {
@ -125,7 +128,7 @@ export default {
this.load(); this.load();
}, },
showQrcode(row) { showQrcode(row) {
console.log(row) console.log(row);
}, },
load(params = {}) { load(params = {}) {
let _this = this; let _this = this;
@ -133,15 +136,14 @@ export default {
params.pageSize = this.pageSize; params.pageSize = this.pageSize;
params.pageNum = this.pageNum; params.pageNum = this.pageNum;
params.instanceId = this.instanceId; params.instanceId = this.instanceId;
activityCodeList(params, res => { activityCodeList(params, (res) => {
_this.data = res.data.results.this.records _this.data = res.data.results.this.records;
_this.totalSize = res.data.results.this.total _this.totalSize = res.data.results.this.total;
_this.loading = false; _this.loading = false;
}) });
} },
} },
}; };
</script> </script>
<style> <style></style>
</style>

@ -1,92 +1,103 @@
<template> <template>
<div> <div>
<Spin v-if="saving" <Spin v-if="saving" fix>加载中...</Spin>
fix>加载中...</Spin> <Form ref="formValidate" :model="formValidate" :label-width="80">
<Form ref="formValidate"
:model="formValidate"
:label-width="80">
<Row :gutter="10"> <Row :gutter="10">
<i-col span="4"> <i-col span="4">
<FormItem label="选择日期" <FormItem label="选择日期" prop="">
prop=""> <Date-picker
<Date-picker v-model="formValidate.date" v-model="formValidate.date"
type="daterange" type="daterange"
placement="bottom-end" placement="bottom-end"
placeholder="选择日期区间"></Date-picker> placeholder="选择日期区间"
></Date-picker>
</FormItem> </FormItem>
</i-col> </i-col>
<i-col span="6"> <i-col span="6">
<FormItem label="零售公司" <FormItem label="零售公司" prop="">
prop=""> <Select
<Select v-model="formValidate.organizationId" v-model="formValidate.organizationId"
filterable filterable
@on-change="selectCompany" @on-change="selectCompany"
placeholder="全部" placeholder="全部"
clearable> clearable
<Option v-for="(item, index) in companyList" >
<Option
v-for="(item, index) in companyList"
:key="index" :key="index"
:value="item.value">{{ item.label }} :value="item.value"
>{{ item.label }}
</Option> </Option>
</Select> </Select>
</FormItem> </FormItem>
</i-col> </i-col>
<i-col span="6"> <i-col span="6">
<FormItem label="店铺" <FormItem label="店铺" prop="">
prop=""> <Select
<Select v-model="formValidate.storeId" v-model="formValidate.storeId"
filterable filterable
placeholder="全部" placeholder="全部"
clearable> clearable
<Option v-for="(item, index) in shopList" >
<Option
v-for="(item, index) in shopList"
:key="index" :key="index"
:value="item.value">{{ item.label }} :value="item.value"
>{{ item.label }}
</Option> </Option>
</Select> </Select>
</FormItem> </FormItem>
</i-col> </i-col>
<i-col span="4"> <i-col span="4">
<FormItem label="活动状态" <FormItem label="活动状态" prop="">
prop="">
<Select v-model="formValidate.status"> <Select v-model="formValidate.status">
<Option v-for="(item, index) in activityStatusList" <Option
v-for="(item, index) in activityStatusList"
:key="index" :key="index"
:value="item.value">{{ item.label }} :value="item.value"
>{{ item.label }}
</Option> </Option>
</Select> </Select>
</FormItem> </FormItem>
</i-col> </i-col>
<i-col span="4"> <i-col span="4">
<Button type="primary" <Button type="primary" @click="searchTable"></Button>
@click="searchTable">查询</Button>
</i-col> </i-col>
</Row> </Row>
<Row style="margin-top:50px"> <Row style="margin-top:50px">
<Table :loading="loading" <Table
:loading="loading"
border border
@on-row-dblclick="showDetail" @on-row-dblclick="showDetail"
:columns="columns1" :columns="columns1"
:data="data"></Table> :data="data"
<Page :total="totalSize" ></Table>
<Page
:total="totalSize"
:current="pageNum" :current="pageNum"
:page-size="pageSize" :page-size="pageSize"
show-elevator show-elevator
show-total show-total
placement="top" placement="top"
@on-change="handlePage" @on-change="handlePage"
class-name="ks-page"></Page> class-name="ks-page"
></Page>
</Row> </Row>
</Form> </Form>
<useTable ref="useTable" <useTable
ref="useTable"
@doShow="doShow" @doShow="doShow"
:show="showUse" :show="showUse"
:isModify="true" :isModify="true"
:schedule="activityInstance.scheduleVO"></useTable> :schedule="activityInstance.scheduleVO"
<Modal v-model="isShowDetail" ></useTable>
<Modal
v-model="isShowDetail"
title="活动计划详情" title="活动计划详情"
width="70%" width="70%"
:footer-hide="true"> :footer-hide="true"
<planDetail v-if="isShowDetail" >
:detail="detail"></planDetail> <planDetail v-if="isShowDetail" :detail="detail"></planDetail>
</Modal> </Modal>
</div> </div>
</template> </template>
@ -97,12 +108,13 @@ import useTable from "./useTable";
import http from "../../services/CommonHttp"; import http from "../../services/CommonHttp";
import { formatDate } from "../../utils/Common"; import { formatDate } from "../../utils/Common";
import store from "../../store"; import store from "../../store";
import planDetail from './PlanDetail'; import planDetail from "./PlanDetail";
export default { export default {
name: "ActivityPlan", name: "ActivityPlan",
inject: ["setMenuName"], inject: ["setMenuName"],
components: { components: {
useTable, planDetail useTable,
planDetail,
}, },
data() { data() {
const _this = this; const _this = this;
@ -150,13 +162,14 @@ export default {
{ {
label: "已结束", label: "已结束",
value: 3, value: 3,
} },
], ],
columns1: [ columns1: [
{ {
type: "index", type: "index",
width: 60, width: 60,
align: "center", align: "center",
title: "序号",
}, },
{ {
title: "活动名称", title: "活动名称",
@ -174,21 +187,33 @@ export default {
key: "beginTime", key: "beginTime",
width: 230, width: 230,
render(h, params) { render(h, params) {
return h("span", (params.row.beginTime) + " - " + (params.row.endTime)); return h("span", params.row.beginTime + " - " + params.row.endTime);
}, },
}, },
{ {
title: "零售公司", title: "零售公司",
key: "shop", key: "shop",
render(h, params) { render(h, params) {
return h("span", (params.row.companyName) + "等" + (params.row.companyCount || 0) + "家公司"); return h(
"span",
params.row.companyName +
"等" +
(params.row.companyCount || 0) +
"家公司"
);
}, },
}, },
{ {
title: "店铺", title: "店铺",
key: "shop", key: "shop",
render(h, params) { render(h, params) {
return h("span", (params.row.storeName) + "等" + (params.row.storeCount || 0) + "家店铺"); return h(
"span",
params.row.storeName +
"等" +
(params.row.storeCount || 0) +
"家店铺"
);
}, },
}, },
{ {
@ -273,10 +298,10 @@ export default {
}, },
showDetail(detail) { showDetail(detail) {
let _this = this; let _this = this;
this.getDetail(detail.id).then(res => { this.getDetail(detail.id).then((res) => {
_this.detail = res; _this.detail = res;
_this.isShowDetail = true; _this.isShowDetail = true;
}) });
}, },
getCompanyInfo() { getCompanyInfo() {
let that = this; let that = this;
@ -301,7 +326,7 @@ export default {
let that = this; let that = this;
let data = { let data = {
userId: JSON.parse(sessionStorage.getItem("loginInfo")).userId, userId: JSON.parse(sessionStorage.getItem("loginInfo")).userId,
customerIds: this.customerId customerIds: this.customerId,
}; };
ActivityManager.getShop(data, function(data) { ActivityManager.getShop(data, function(data) {
that.shopList = []; that.shopList = [];
@ -320,40 +345,44 @@ export default {
stop(instance) { stop(instance) {
let _this = this; let _this = this;
this.$Modal.confirm({ this.$Modal.confirm({
title: '您确认要终止?', title: "您确认要终止?",
content: '终止之后不可恢复', content: "终止之后不可恢复",
onOk: () => { onOk: () => {
this.saving = true; this.saving = true;
ActivityManager.instanceTerminate({ instanceId: instance.id }, (res) => { ActivityManager.instanceTerminate(
{ instanceId: instance.id },
(res) => {
_this.saving = false; _this.saving = false;
if (res.data.success == undefined || !res.data.success) { if (res.data.success == undefined || !res.data.success) {
_this.$Message.error("终止失败!"); _this.$Message.error("终止失败!");
} else { } else {
_this.searchTable(); _this.searchTable();
} }
});
},
onCancel: () => {
} }
);
},
onCancel: () => {},
}); });
}, },
getDetail(instanceId) { getDetail(instanceId) {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
ActivityManager.instanceDetail({ ActivityManager.instanceDetail(
instanceId {
}, res => { instanceId,
resolve(res.data.results) },
(res) => {
resolve(res.data.results);
}
);
}); });
})
}, },
modify(instance) { modify(instance) {
let _this = this; let _this = this;
this.getDetail(instance.id).then(res => { this.getDetail(instance.id).then((res) => {
store.commit("SET_useData", res); store.commit("SET_useData", res);
_this.activityInstance = res; _this.activityInstance = res;
_this.showUse = true; _this.showUse = true;
}) });
}, },
navigateCode(instance) { navigateCode(instance) {
this.$router.push({ this.$router.push({
@ -398,6 +427,6 @@ export default {
<style> <style>
.ivu-date-picker .ivu-select-dropdown { .ivu-date-picker .ivu-select-dropdown {
left: 0 !important left: 0 !important;
} }
</style> </style>

@ -1,25 +1,27 @@
<template> <template>
<Modal v-model="dispalyModal" <Modal
v-model="dispalyModal"
width="1000" width="1000"
:loading="loading" :loading="loading"
:mask-closable="false" :mask-closable="false"
@on-cancel="cancel" @on-cancel="cancel"
@on-ok="save"> @on-ok="save"
<p slot="header" >
style="color:#f60;text-align:left"> <p slot="header" style="color:#f60;text-align:left">
<span>配置活动</span> <span>配置活动</span>
</p> </p>
<div>基本配置</div> <div>基本配置</div>
<Form ref="formValidate" <Form
ref="formValidate"
:model="formValidate" :model="formValidate"
:rules="ruleValidate" :rules="ruleValidate"
:label-width="80"> :label-width="80"
>
<Row> <Row>
<i-col style="text-align: left;" <i-col style="text-align: left;" span="8">
span="8"> <FormItem label="" prop="logo">
<FormItem label="" <Upload
prop="logo"> ref="upload"
<Upload ref="upload"
:show-upload-list="false" :show-upload-list="false"
:on-success="uploadImgSuccess" :on-success="uploadImgSuccess"
:format="['jpg', 'jpeg', 'png']" :format="['jpg', 'jpeg', 'png']"
@ -28,75 +30,90 @@
multiple multiple
type="drag" type="drag"
action="" action=""
style="display: inline-block;"> style="display: inline-block;"
>
<div style="width: 200px;height:200px;line-height: 200px;"> <div style="width: 200px;height:200px;line-height: 200px;">
<span v-if="!formValidate.logo"></span> <span v-if="!formValidate.logo"></span>
<img v-if="formValidate.logo" <img
v-if="formValidate.logo"
:src="`/kiisoo-ic` + formValidate.logo" :src="`/kiisoo-ic` + formValidate.logo"
alt="" alt=""
style="width: 100%; height: auto" /> style="width: 100%; height: auto"
/>
</div> </div>
</Upload> </Upload>
</FormItem> </FormItem>
</i-col> </i-col>
<i-col span="15" <i-col span="15" offset="1">
offset="1"> <FormItem label="活动名称" prop="name">
<FormItem label="活动名称" <i-input
prop="name"> type="text"
<i-input type="text"
v-model="formValidate.name" v-model="formValidate.name"
placeholder="请输入活动名称"></i-input> placeholder="请输入活动名称"
></i-input>
</FormItem> </FormItem>
<Form-item label="活动描述" <Form-item label="活动描述" prop="description">
prop="description"> <i-input
<i-input v-model="formValidate.description" v-model="formValidate.description"
type="textarea" type="textarea"
:autosize="{ minRows: 3 }" :autosize="{ minRows: 3 }"
placeholder="请输入活动描述"></i-input> placeholder="请输入活动描述"
></i-input>
</Form-item> </Form-item>
<FormItem label="APPID" <FormItem label="APPID" prop="appId">
prop="appId"> <i-input
<i-input type="text" type="text"
v-model="formValidate.appId" v-model="formValidate.appId"
placeholder="请输入appid"></i-input> placeholder="请输入appid"
></i-input>
</FormItem> </FormItem>
<FormItem label="URI" <FormItem label="URI" prop="uri">
prop="uri"> <i-input
<i-input type="text" type="text"
v-model="formValidate.uri" v-model="formValidate.uri"
placeholder="请输入URI"></i-input> placeholder="请输入URI"
></i-input>
</FormItem> </FormItem>
</i-col> </i-col>
</Row> </Row>
</Form> </Form>
<div class="topic">活动类型</div> <div class="topic">活动类型</div>
<Row :gutter="10" <Row
:gutter="10"
class="inputItem" class="inputItem"
v-for="(item, index) in formValidate.params" v-for="(item, index) in formValidate.params"
:key="index"> :key="index"
>
<i-col :span="2"> 类型{{ index + 1 }} </i-col> <i-col :span="2"> 类型{{ index + 1 }} </i-col>
<i-col :span="9"> <i-col :span="9">
<i-input class="inputClass" <i-input
class="inputClass"
type="text" type="text"
v-model="item.name" v-model="item.name"
placeholder="请输入活动类型名称"></i-input> placeholder="请输入活动类型名称"
></i-input>
</i-col> </i-col>
<i-col :span="9"> <i-col :span="9">
<i-input class="inputClass" <i-input
class="inputClass"
type="text" type="text"
style="margin-left: 20px" style="margin-left: 20px"
v-model="item.defaultVal" v-model="item.defaultVal"
placeholder="请输入参数"></i-input> placeholder="请输入参数"
></i-input>
</i-col> </i-col>
<i-col :span="4"> <i-col :span="4">
<Button style="margin-left: 20px" <Button
style="margin-left: 20px"
type="error" type="error"
@click="delActivityInput(index)">删除</Button> @click="delActivityInput(index)"
>删除</Button
>
</i-col> </i-col>
</Row> </Row>
<Button style="margin-top: 10px" <Button style="margin-top: 10px" type="primary" @click="addActivityInput"
type="primary" >+添加活动类型</Button
@click="addActivityInput">+添加活动类型</Button> >
</Modal> </Modal>
</template> </template>
<script> <script>
@ -224,12 +241,21 @@ export default {
}, },
save() { save() {
let that = this; let that = this;
let i = 0;
if (
typeof that.formValidate.logo == "undefined" ||
that.formValidate.logo == "" ||
that.formValidate.logo.length <= 0
) {
that.$Message.error("请上传活动封面!");
that.loading = false;
return false;
}
if (that.formValidate.params.length <= 0) { if (that.formValidate.params.length <= 0) {
that.$Message.error("至少需要填写一个活动类型!"); that.$Message.error("至少需要填写一个活动类型!");
that.loading = false; that.loading = false;
return false; return false;
} }
let i = 0;
for (const key in that.formValidate.params) { for (const key in that.formValidate.params) {
i++; i++;
if (that.formValidate.params.hasOwnProperty(key)) { if (that.formValidate.params.hasOwnProperty(key)) {
@ -246,15 +272,6 @@ export default {
} }
} }
} }
if (
typeof that.formValidate.logo == "undefined" ||
that.formValidate.logo == "" ||
that.formValidate.logo.length <= 0
) {
that.$Message.error("请上传活动封面!");
that.loading = false;
return false;
}
this.loading = true; this.loading = true;
this.$refs["formValidate"].validate((valid) => { this.$refs["formValidate"].validate((valid) => {
if (valid) { if (valid) {

Loading…
Cancel
Save