Merge remote-tracking branch 'remotes/git/feature_0521' into feature/20200514_version

# Conflicts:
#	src/services/CommonHttp.js
feature_0521
root 6 years ago
commit 65ffcd6698

@ -1,19 +1,20 @@
<template>
<div class="activityManager">
<Spin v-show="loading"
fix>加载中...</Spin>
<Spin v-show="loading" fix>加载中...</Spin>
<Row>
<i-col class="activityListClass"
v-for="(item, index) in activityList"
:key="index"
span="7"
offset="1">
<i-col
class="activityListClass"
v-for="(item, index) in activityList"
:key="index"
span="7"
offset="1"
>
<Card>
<div class="operateAndThemeItem">
<div class="ThemeItem">
<div class="schedule-image"><img class="img"
:src="'/kiisoo-ic' + item.logo"
alt /></div>
<div class="schedule-image">
<img class="img" :src="'/kiisoo-ic' + item.logo" alt />
</div>
<div class="tipItem">
<span>{{ item.name }}</span>
<span>{{ item.description }}</span>
@ -21,30 +22,26 @@
</div>
<div class="operateItem">
<div @click="disPlayUseTable(item)">使</div>
<div v-show="roleCode === 'GLY-ADMIN'"
@click="dispalyAddActivity(item.id)">配置</div>
<div v-show="roleCode === 'GLY-ADMIN'" @click="dispalyAddActivity(item.id)"></div>
</div>
</div>
</Card>
</i-col>
</Row>
<Row v-show="roleCode === 'GLY-ADMIN'">
<i-col span="7"
offset="1">
<div @click="dispalyAddActivity('')"
class="addactivity">
<i-col span="7" offset="1">
<div @click="dispalyAddActivity('')" class="addactivity">
<span>+</span>
<span>添加活动</span>
</div>
</i-col>
</Row>
<useTable ref="useTable"
@doShow="doShow"
:show="showUse"
:schedule="useSchedule"></useTable>
<addActivity @dispalyAddActivityModal="dispalyAddActivityModal"
:addActivityModal="addActivityModal"
:id="id"></addActivity>
<useTable ref="useTable" @doShow="doShow" :show="showUse" :schedule="useSchedule"></useTable>
<addActivity
@dispalyAddActivityModal="dispalyAddActivityModal"
:addActivityModal="addActivityModal"
:id="id"
></addActivity>
</div>
</template>
@ -52,16 +49,16 @@
import useTable from "./useTable";
import addActivity from "./addActivity";
import ActivityManager from "../../services/ActivityManager/ActivityManager";
import store from '../../store';
import store from "../../store";
export default {
name: "ActivityManager",
components: {
useTable,
addActivity,
addActivity
},
inject: ["setMenuName"],
data () {
data() {
return {
showUse: false,
addActivityModal: false,
@ -73,72 +70,75 @@ export default {
roleCode: ""
};
},
created () {
store.commit("RSET_useData")
created() {
store.commit("RSET_useData");
},
mounted () {
mounted() {
this.setMenuName("活动管理", "活动池");
this.getActivityTable();
this.roleCode = sessionStorage.getItem("roleCode");
},
methods: {
doShow (show) {
doShow(show) {
this.showUse = show;
},
getActivityData (id) {
getActivityData(id) {
let that = this;
let data = {
instanceId: id,
instanceId: id
};
that.loading = true;
ActivityManager.getActivityInfo(data, function (data) {
ActivityManager.getActivityInfo(data, function(data) {
that.inputActivityList = [];
data.data.results.params.forEach((item) => {
data.data.results.params.forEach(item => {
that.inputActivityList.push({
value1: item.name,
value2: item.description,
value2: item.description
});
});
this.useModal = true;
that.loading = false;
});
},
getActivityTable () {
getActivityTable() {
let that = this;
ActivityManager.getActivityList({ categoryCode: "promotion" }, function (data) {
ActivityManager.getActivityList({ categoryCode: "promotion" }, function(
data
) {
that.activityList = data.data.results;
});
},
disPlayUseTable (item) {
disPlayUseTable(item) {
console.log("disPlayUseTable");
let that = this;
let data = {
id: item.id,
id: item.id
};
// let data = new FormData()
// data.append('instanceId', item.id)
ActivityManager.getActivityInfo(data, function (data) {
ActivityManager.getActivityInfo(data, function(data) {
that.useSchedule = data.data.results;
that.showUse = true;
that.$forceUpdate()
that.$forceUpdate();
});
},
dispalyAddActivity (id) {
dispalyAddActivity(id) {
this.addActivityModal = true;
this.id = id.toString();
},
dispalyuseModal (displayModalFlag, isCancle) {
dispalyuseModal(displayModalFlag, isCancle) {
this.useModal = displayModalFlag;
if (isCancle === true) {
this.getActivityTable();
}
},
dispalyAddActivityModal (displayModalFlag, isCancle) {
dispalyAddActivityModal(displayModalFlag, isCancle) {
this.addActivityModal = displayModalFlag;
if (isCancle === true) {
this.getActivityTable();
}
},
},
}
}
};
</script>

@ -1,129 +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="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>
@ -143,7 +142,7 @@ export default {
useTable,
planDetail
},
data () {
data() {
const _this = this;
return {
showStoreName: "",
@ -162,14 +161,14 @@ export default {
shopList: [],
showUse: false,
activityInstance: {},
qrCodeImage: '',
qrCodeImage: "",
formValidate: {
date: null,
organizationId: null,
storeId: null,
status: 2,
startDate: null,
endDate: null,
endDate: null
},
startDateOptions: {},
endDateOptions: {},
@ -204,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) {
@ -220,7 +219,7 @@ export default {
{
title: "活动类型",
key: "scheduleVO.name",
render (h, params) {
render(h, params) {
return h("span", params.row["params"][0]["name"]);
}
},
@ -228,54 +227,54 @@ 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) + "人");
}
},
{
title: "活动码",
slot: 'qrCodeAction',
className: 'table-width-80',
slot: "qrCodeAction",
className: "table-width-80"
// render (h, p) {
// return h(
// "Button",
@ -290,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", "进行中");
@ -300,8 +299,8 @@ export default {
},
{
title: "操作",
slot: 'action',
width: 200,
slot: "action",
width: 200
// render (h, p) {
// let r = [
// h(
@ -333,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({
@ -366,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({
@ -387,11 +386,14 @@ export default {
});
});
},
handlePage: function (value) {
handlePage: function(value) {
this.pageNum = value;
this.searchTable();
},
stop (instance) {
stop(instance) {
if (instance.status > 2) {
return;
}
let _this = this;
this.$Modal.confirm({
title: "您确认要终止?",
@ -410,10 +412,10 @@ export default {
}
);
},
onCancel: () => { }
onCancel: () => {}
});
},
getDetail (instanceId) {
getDetail(instanceId) {
return new Promise((resolve, reject) => {
ActivityManager.instanceDetail(
{
@ -425,7 +427,7 @@ export default {
);
});
},
modify (instance) {
modify(instance) {
let _this = this;
this.getDetail(instance.id).then(res => {
store.commit("SET_useData", res);
@ -433,13 +435,14 @@ export default {
_this.showUse = true;
});
},
navigateCode (instance) {
navigateCode(instance) {
return;
this.$router.push({
path: "/activity/plan/code",
query: { instanceId: instance.id }
});
},
searchTable (params = {}) {
searchTable(params = {}) {
this.loading = true;
if (
this.formValidate.date !== null &&
@ -463,7 +466,7 @@ export default {
if (params.status == 0) {
params.status = undefined;
}
params.categoryCode = "promotion"
params.categoryCode = "promotion";
params.date = undefined;
http.get("/activity/instance/list", params).then(res => {
const data = res.data.results.this || {};
@ -472,46 +475,53 @@ export default {
this.loading = false;
});
},
startDateChange: function (e) {
startDateChange: function(e) {
//
this.endDateOptions = {
disabledDate: date => {
let startTime = this.formValidate.startDate ? new Date(this.formValidate.startDate).valueOf() : '';
return date && (date.valueOf() < startTime)
let startTime = this.formValidate.startDate
? new Date(this.formValidate.startDate).valueOf()
: "";
return date && date.valueOf() < startTime;
}
}
};
},
endDateChange: function (e) {
endDateChange: function(e) {
//
let endTime = this.formValidate.endDate ? new Date(this.formValidate.endDate).valueOf() - 1 * 24 * 60 * 60 * 1000 : '';
let endTime = this.formValidate.endDate
? new Date(this.formValidate.endDate).valueOf() -
1 * 24 * 60 * 60 * 1000
: "";
this.startDateOptions = {
disabledDate: date => {
return date && (date.valueOf() > endTime);
return date && date.valueOf() > endTime;
}
}
};
},
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) {
debugger
download: function(index) {
debugger;
let fileName = index.name + "-门店码";
http.downloadImg({
url: index.qrCodeAction
}, fileName, function (/*data*/) {
})
http.downloadImg(
{
url: index.qrCodeAction
},
fileName,
function(/*data*/) {}
);
},
ok: function () {
ok: function() {
this.isShow = false;
},
}
}
};
</script>
@ -528,6 +538,9 @@ export default {
color: #3496eb !important;
margin-left: -15px;
}
.router-btn.disable {
color: #999 !important;
}
.table-img-qr-code {
margin-left: 5px;
margin-top: 5px;

@ -1,5 +1,12 @@
<template>
<Modal v-model="dispalyModal" width="1000" :loading="true" :mask-closable="false">
<Modal
v-model="dispalyModal"
width="1000"
:loading="true"
:mask-closable="false"
@on-visible-change="visibleChange"
@on-cancel="cancel"
>
<p slot="header" style="color:#f60;text-align:left">
<span>配置活动</span>
</p>
@ -176,6 +183,11 @@ export default {
this.formValidate.params.splice(index, 1);
this.$forceUpdate();
},
visibleChange(show) {
if (!show) {
this.$emit("dispalyAddActivityModal", false, false);
}
},
cancel() {
this.$emit("dispalyAddActivityModal", false, false);
},

@ -2,7 +2,7 @@
<div class="use_box">
<Modal :scrollable="false"
v-model="showUse"
title="使用活动"
:title="title"
@on-cancel="cancel"
:loading="true"
width="70%">
@ -69,6 +69,10 @@ export default {
isModify: {
type: Boolean,
default: false
},
title: {
type: String,
default: "使用活动"
}
},
watch: {

@ -1,49 +1,46 @@
<template>
<div class="use_box">
<Modal :scrollable="false"
v-model="showUse"
title="使用活动"
@on-cancel="cancel"
:loading="true"
width="70%">
<Steps style="padding: 40px;"
:current="currentStep">
<Modal
:scrollable="false"
v-model="showUse"
title="使用活动"
@on-cancel="cancel"
:loading="true"
width="70%"
@on-visible-change="visibleChange"
>
<Steps style="padding: 40px;" :current="currentStep">
<Step title="基本信息"></Step>
<Step :title="isModify ? '修改零售公司' : '选择零售公司'"
content></Step>
<Step :title="isModify ? '修改店铺' : '选择店铺'"
content></Step>
<Step title="确认信息"
content></Step>
<Step :title="isModify ? '修改零售公司' : '选择零售公司'" content></Step>
<Step :title="isModify ? '修改店铺' : '选择店铺'" content></Step>
<Step title="确认信息" content></Step>
</Steps>
<useActivityStepOne :schedule="schedule"
:isModify="isModify"
v-if="currentStep == 0 && show"></useActivityStepOne>
<useActivityStepTwo :schedule="schedule"
:isModify="isModify"
v-if="currentStep == 1"></useActivityStepTwo>
<useActivityStepThree :schedule="schedule"
:isModify="isModify"
v-if="currentStep == 2"></useActivityStepThree>
<useActivityStepFoure :schedule="schedule"
:isModify="isModify"
v-if="currentStep == 3"></useActivityStepFoure>
<useActivityStepOne :schedule="schedule" :isModify="isModify" v-if="currentStep == 0 && show"></useActivityStepOne>
<useActivityStepTwo :schedule="schedule" :isModify="isModify" v-if="currentStep == 1"></useActivityStepTwo>
<useActivityStepThree :schedule="schedule" :isModify="isModify" v-if="currentStep == 2"></useActivityStepThree>
<useActivityStepFoure :schedule="schedule" :isModify="isModify" v-if="currentStep == 3"></useActivityStepFoure>
<div slot="footer">
<Button v-if="currentStep !== 0"
type="primary"
shape="circle"
:loading="modal_loading"
@click="back">上一步</Button>
<Button v-if="currentStep !== 3"
type="primary"
shape="circle"
:loading="modal_loading"
@click="next">下一步</Button>
<Button v-if="currentStep == 3"
type="primary"
shape="circle"
:loading="modal_loading"
@click="finish">完成</Button>
<Button
v-if="currentStep !== 0"
type="primary"
shape="circle"
:loading="modal_loading"
@click="back"
>上一步</Button>
<Button
v-if="currentStep !== 3"
type="primary"
shape="circle"
:loading="modal_loading"
@click="next"
>下一步</Button>
<Button
v-if="currentStep == 3"
type="primary"
shape="circle"
:loading="modal_loading"
@click="finish"
>完成</Button>
</div>
</Modal>
</div>
@ -55,20 +52,21 @@ import useActivityStepThree from "./useActivityStepThree";
import useActivityStepFoure from "./useActivityStepFoure";
import ActivityManager from "../../services/ActivityManager/ActivityManager";
import store from "../../store/index";
import { formatDate } from '../../utils/Common';
import { formatDate } from "../../utils/Common";
export default {
name: "useTable",
components: {
useActivityStepOne,
useActivityStepTwo,
useActivityStepThree,
useActivityStepFoure,
useActivityStepFoure
},
data () {
inject: ["setMenuName"],
data() {
return {
currentStep: 0,
modal_loading: false,
showUse: false,
showUse: false
};
},
props: {
@ -85,26 +83,27 @@ export default {
}
},
watch: {
show () {
show() {
this.showUse = this.show;
},
schedule () {
schedule() {
store.getters.useData.scheduleId = this.schedule.id;
},
}
},
mounted () { },
created() {
this.setMenuName("活动管理", "活动计划");
},
mounted() {},
methods: {
cancel () {
this.currentStep = 0;
},
cancel () {
visibleChange(show) {},
cancel() {
store.commit("RSET_useData");
this.$emit("doShow", false);
this.modal_loading = false;
this.showUse = false;
this.currentStep = 0;
},
next () {
next() {
let data = store.getters.useData;
data.name = this.schedule.name;
if (this.currentStep === 0) {
@ -143,19 +142,19 @@ export default {
if (typeof data.endTime == "object") {
data.endTime = formatDate(data.endTime);
}
console.log("data", data)
console.log("data", data);
store.commit("SET_useData", data);
this.currentStep = this.currentStep + 1;
},
back () {
back() {
this.currentStep = this.currentStep - 1;
},
finish () {
finish() {
let that = this;
let data = store.getters.useData;
data.isGetActivityInfo = true;
this.modal_loading = true;
ActivityManager.saveActivityData(store.getters.useData, function (data) {
ActivityManager.saveActivityData(store.getters.useData, function(data) {
store.commit("RSET_useData");
that.$emit("doShow", false);
that.$router.push("/activity/plan");
@ -163,8 +162,8 @@ export default {
that.modal_loading = false;
that.showUse = false;
});
},
},
}
}
};
</script>

@ -11,7 +11,7 @@
<span class="" style="border: 0px; color: rgb(52, 150, 235); margin-left: 15px; cursor: pointer;" @click="showStores"></span>
</i-col>
<i-col span="8">
<i-switch size="large">
<i-switch size="large" @on-change="witchChange">
<span slot="open">开启</span>
<span slot="close">关闭</span>
</i-switch>
@ -52,8 +52,9 @@ import selectStoreStep from '../activity/selectStoreStep'
import store from '../../store'
import bulletinService from '../../services/recruit/Bulletin'
import http from '../../services/CommonHttp';
import axios from "axios";
export default {
inject:['reload'],
components: {
selectStoreStep,
},
@ -69,7 +70,9 @@ export default {
inidData:{},
showUpload:false,
btnStr:'编辑',
imgUrl:''
imgUrl:'',
onWitch:false,
uploadUrl:""
};
},
mounted: function() {
@ -79,15 +82,17 @@ export default {
this.initData();
},
methods: {
witchChange(status) {
this.onWitch = status;
},
initData(){
let that = this;
bulletinService.getDetail({}, function (data) {
console.log(data);
data.data.results.scheduleVO.params.forEach(item => {
item.defaultVal = http.getBaseUrl() + item.defaultVal;
});
if(data.data.results.scheduleVO.params.length>0){
that.imgUrl = http.getBaseUrl() + data.data.results.scheduleVO.params[0].defaultVal;
}
that.initData = data.data.results;
that.imgUrl = that.initData.scheduleVO.params[0].defaultVal
}, function (err) {
that.$Message.error("网络异常,请重试");
@ -97,10 +102,7 @@ export default {
doShow () {
this.showStoreCheck = false
this.welcome = store.getters.useData
console.log(this.welcome)
},
change (status) {
this.$Message.info('开关状态:' + status);
console.log(this.welcome);
},
showStores () {
console.log({ ...store.getters.useData, ...this.welcome })
@ -108,8 +110,44 @@ export default {
this.showStoreCheck = true
},
onEdit(){
this.showUpload = true;
this.btnStr = '保存'
if(this.btnStr == '编辑'){
this.showUpload = true;
this.btnStr = '保存'
}else{
this.initData.isGetActivityInfo = true;
try{
if(this.welcome.stores.length>0){
this.initData.stores = this.welcome.stores;
}
}catch(e){
console.log(e);
}
if(this.onWitch){
this.initData.status = 1;
this.initData.stores.forEach(item => {
item.status = 1;
})
}else{
this.initData.status = 3;
this.initData.stores.forEach(item => {
item.status = 2;
})
}
if(this.uploadUrl != ""){
this.initData.scheduleVO.params.forEach(item => {
item.defaultVal = item.description = this.uploadUrl;
})
}
let that = this;
bulletinService.dosave(this.initData, function (data) {
console.log(data);
that.reload();
}, function (err) {
that.$Message.error("网络异常,请重试");
that.setNoLoading();
});
}
},
onCancel(){
this.showUpload = false;
@ -119,7 +157,7 @@ export default {
this.imageName = file.name;
},
handleBeforeUpload (res) {
const me = this;
const _this = this;
let data = new FormData();
data.append("file", res);
axios({
@ -131,6 +169,9 @@ export default {
},
}).then(function (res) {
if (res.data.success) {
console.log(res);
_this.uploadUrl = res.data.results.localPath;
_this.imgUrl = http.getBaseUrl() + res.data.results.localPath;
}
});
return false;

@ -39,11 +39,11 @@
</div>
<div v-else-if="item.type == 2">
<i-col style="line-height: 32px" :span="4">标题 {{ index + 1 }}</i-col>
<i-col :span="8">
<i-col :span="6">
<i-input class="inputClass" type="text" disabled v-model="item.description"></i-input>
</i-col>
<i-col style="line-height: 32px" :span="4">URL {{ index + 1 }}</i-col>
<i-col :span="8">
<i-col :span="6">
<i-input class="inputClass" type="text" disabled v-model="item.defaultVal"></i-input>
</i-col>
</div>
@ -73,14 +73,19 @@
>全部店铺</Button>
</FormItem>
<FormItem>
<Button type="primary" long @click="submit"></Button>
<Button
type="primary"
:loading="loading"
long
@click="submit"
>{{loading ? "保存中" : "确定"}}</Button>
</FormItem>
</Form>
</i-col>
</Row>
<Modal v-model="showMessageTypes" title="添加图片/网页/小程序消息" :footer-hide="true">
<Row :gutter="24">
<i-col :span="8">
<i-col :span="8" v-if="imageFilter()">
<Upload
ref="upload"
:show-upload-list="false"
@ -100,16 +105,16 @@
</Upload>
</i-col>
<i-col :span="8">
<Button long @click="doShowWeb" type="primary"></Button>
<Button long @click="doShowWeb" v-if="webFilter()" type="primary"></Button>
</i-col>
<i-col :span="8">
<Button long @click="doShowMini" type="primary">小程</Button>
<Button long @click="doShowMini" v-if="miniFilter()" type="primary"></Button>
</i-col>
</Row>
</Modal>
<Modal v-model="showWeb" title="添加网页消息" :loading="true">
<Form ref="webForm" :model="webForm" :rules="webFormRules">
<FormItem label="标题" prop="url">
<FormItem label="标题" prop="title">
<i-input v-model="webForm.title" type="text" placeholder="请输入网页标题"></i-input>
</FormItem>
<FormItem label="添加网页消息" prop="url">
@ -162,7 +167,13 @@
<Button type="primary" @click="okMini"></Button>
</div>
</Modal>
<selectStoreStep :isModify="id>0" @doShow="doShow" :schedule="welcome" :show="showStoreCheck"></selectStoreStep>
<selectStoreStep
:title="'配置范围'"
:isModify="id>0"
@doShow="doShow"
:schedule="welcome"
:show="showStoreCheck"
></selectStoreStep>
</div>
</template>
@ -189,6 +200,7 @@ export default {
id: 0,
showMessageTypes: false,
imageUploading: false,
loading: false,
welcome: {
content: "",
params: [],
@ -248,6 +260,21 @@ export default {
selectStoreStep
},
methods: {
webFilter() {
return (
this._.filter(this.welcome.params, item => item.type == 2).length < 1
);
},
imageFilter() {
return (
this._.filter(this.welcome.params, item => item.type == 1).length < 1
);
},
miniFilter() {
return (
this._.filter(this.welcome.params, item => item.type == 3).length < 1
);
},
doShow() {
this.showStoreCheck = false;
this.welcome = store.getters.useData;
@ -405,10 +432,45 @@ export default {
},
submit() {
let _this = this;
_this.loading = true;
if (this.welcome.stores.length <= 0) {
_this.$Message.error("请至少选择一个店铺");
_this.loading = false;
return false;
}
// let params = this.welcome.params;
// let imageCount = 0;
// let webCount = 0;
// let miniCount = 0;
// for (const key in params) {
// if (params.hasOwnProperty(key)) {
// const element = params[key];
// if (element.type == 1) {
// imageCount++;
// }
// if (element.type == 2) {
// webCount++;
// }
// if (element.type == 3) {
// miniCount++;
// }
// }
// }
// if (imageCount > 1) {
// _this.loading = false;
// _this.$Message.error("");
// return false;
// }
// if (webCount > 1) {
// _this.loading = false;
// _this.$Message.error("");
// return false;
// }
// if (miniCount > 1) {
// _this.loading = false;
// _this.$Message.error("");
// return false;
// }
this.$refs["welcomeForm"].validate(valid => {
if (valid) {
let data = _this.welcome;
@ -421,6 +483,7 @@ export default {
"Content-Type": "applications/json"
}
}).then(res => {
_this.loading = false;
_this.$router.push("/shop/increase/welcome/list");
});
}

@ -17,12 +17,16 @@
size="small">
<template slot-scope="{ row, index }"
slot="action">
<Button type="primary"
size="small"
@click="handleEdit(row, index)">修改</Button>
<Button type="error"
size="small"
@click="handleDelete(row, index)">删除</Button>
<i-col span="12">
<Button ghost
class="router-btn"
@click="() => {handleEdit(row, index)}">修改</Button>
</i-col>
<i-col span="12">
<Button ghost
class="router-btn"
@click="() => {handleDelete(row, index)}">删除</Button>
</i-col>
</template>
</Table>
<Page :total="total"
@ -187,4 +191,19 @@ export default {
};
</script>
<style scoped></style>
<style scoped>
.router-btn {
border: none;
color: #3496eb !important;
margin-left: -15px;
}
.table-img-qr-code {
margin-left: 5px;
margin-top: 5px;
width: 30px;
height: 30px;
}
button:hover {
background: inherit !important;
}
</style>

@ -5,6 +5,11 @@ export function getDetail(params, call) {
return http.get('/fission/detail', params).then(call)
}
export function dosave(params, call) {
return http.post('/fission/save', params).then(call)
}
export default {
getDetail,
dosave
}

Loading…
Cancel
Save