Commit fdfe2b68 by shaojiawen

Merge branch 'feature/act-code' of http://git.gicdev.com/office/haoban-3 into feature/act-code

parents 18ddf7e0 cdf140de
......@@ -322,6 +322,16 @@ module.exports = {
adminList: {
// 1.刷新(按钮)
refreshAdminList: ['刷新', 1, 2]
}
},
// 按钮名称、是否受权限控制0否1是、是否增删改0:跳转 1:增删改 2:其他、按钮跳转路径
actCode: {
addActCode: ['新建活码', 1, 0],
batchActCode: ['批量创建活码', 1, 0],
batchGroup: ['批量分组', 1, 1],
dataActCode: ['数据', 1, 0],
infoActCode: ['详情', 1, 0],
editActCode: ['编辑', 1, 1],
downActCode: ['下载活码', 1, 1],
delActCode: ['作废', 1, 1]
}
}
{"multipleAssign":"multipleAssign","assign":"assign","willSyncTag":"willSyncTag","breakSyncTag":"breakSyncTag","addShowRules":"addShowRules","editShowRules":"editShowRules","delShowRules":"delShowRules","groupExpire":"groupExpire","syncGroup":"syncGroup","addGroupTemp":"addGroupTemp","editGroupTemp":"editGroupTemp","setStoreArea":"setStoreArea","delGroupTemp":"delGroupTemp","searchSetSave":"searchSetSave","saveTrafficTaskSet":"saveTrafficTaskSet","addCard":"addCard","editCard":"editCard","delCard":"delCard","sendCardLog":"sendCardLog","getCardLog":"getCardLog","saveEvaluateSet":"saveEvaluateSet","addMaterialGroup":"addMaterialGroup","editMaterialGroup":"editMaterialGroup","delMaterialGroup":"delMaterialGroup","multipleDelAssets":"multipleDelAssets","multipleMoveAssets":"multipleMoveAssets","addText":"addText","editText":"editText","delText":"delText","textAssignStore":"textAssignStore","addImage":"addImage","editImage":"editImage","delImage":"delImage","imageAssignStore":"imageAssignStore","addWeb":"addWeb","editWeb":"editWeb","delWeb":"delWeb","webAssignStore":"webAssignStore","addVideo":"addVideo","editVideo":"editVideo","delVideo":"delVideo","videoAssignStore":"videoAssignStore","addFile":"addFile","editFile":"editFile","delFile":"delFile","fileAssignStore":"fileAssignStore","addApps":"addApps","editApps":"editApps","delApps":"delApps","appsAssignStore":"appsAssignStore","saveGoodsSet":"saveGoodsSet","exportActiveUser":"exportActiveUser","exportLoginUser":"exportLoginUser","exportAreaLoginUser":"exportAreaLoginUser","multipleDelReport":"multipleDelReport","exportReport":"exportReport","reportDetail":"reportDetail","multipleDelReportDetail":"multipleDelReportDetail","delReportDetail":"delReportDetail","showReportDetail":"showReportDetail","multipleExportReport":"multipleExportReport","saveTaskSet":"saveTaskSet","settingSystemReport":"settingSystemReport","saveSystemReport":"saveSystemReport","addCustomReport":"addCustomReport","copyCustomReport":"copyCustomReport","editCustomReport":"editCustomReport","delCustomReport":"delCustomReport","monthTarget":"monthTarget","dayTarget":"dayTarget","exportMonthTask":"exportMonthTask","checkMonthTask":"checkMonthTask","multipleDelTask":"multipleDelTask","delTask":"delTask","exportStoreList":"exportStoreList","checkStoreList":"checkStoreList","exportStoreDetail":"exportStoreDetail","checkStoreDetail":"checkStoreDetail","exportStoreDetailPop":"exportStoreDetailPop","previewStoreDetail":"previewStoreDetail","exportGrTaskList":"exportGrTaskList","checkGrTaskList":"checkGrTaskList","exportTaskRecord":"exportTaskRecord","multipleDelTaskRecord":"multipleDelTaskRecord","checkTaskRecord":"checkTaskRecord","exportTaskDetail":"exportTaskDetail","multipleDelTaskDetail":"multipleDelTaskDetail","delTaskDetail":"delTaskDetail","resolveTaskDetail":"resolveTaskDetail","previewTaskDetail":"previewTaskDetail","exportTaskView":"exportTaskView","multipleDelTaskView":"multipleDelTaskView","checkTaskView":"checkTaskView","exportTaskViewDetail":"exportTaskViewDetail","multipleDelTaskViewDetail":"multipleDelTaskViewDetail","checkTaskDetail":"checkTaskDetail","addSalutatory":"addSalutatory","editSalutatory":"editSalutatory","delSalutatory":"delSalutatory","multipleResolve":"multipleResolve","singleResolve":"singleResolve","singleReject":"singleReject","saveApplySetting":"saveApplySetting","refreshStoreMember":"refreshStoreMember","exportContact":"exportContact","checkContactDetail":"checkContactDetail","checkContactMemberDetail":"checkContactMemberDetail","checkLog":"checkLog","saveGuideSetting":"saveGuideSetting","saveAppsVisible":"saveAppsVisible","refreshStoreInfo":"refreshStoreInfo","saveMemberSecret":"saveMemberSecret","addMemberAppsSecret":"addMemberAppsSecret","editMemberAppsSecret":"editMemberAppsSecret","delMemberAppsSecret":"delMemberAppsSecret","addAppsSecret":"addAppsSecret","getAppsSecret":"getAppsSecret","editAppsSecret":"editAppsSecret","delAppsSecret":"delAppsSecret","checkAuth":"checkAuth","bindStoreList":"bindStoreList","refreshStore":"refreshStore","refreshAdminList":"refreshAdminList"}
\ No newline at end of file
{"multipleAssign":"multipleAssign","assign":"assign","willSyncTag":"willSyncTag","breakSyncTag":"breakSyncTag","addShowRules":"addShowRules","editShowRules":"editShowRules","delShowRules":"delShowRules","groupExpire":"groupExpire","syncGroup":"syncGroup","addGroupTemp":"addGroupTemp","editGroupTemp":"editGroupTemp","setStoreArea":"setStoreArea","delGroupTemp":"delGroupTemp","searchSetSave":"searchSetSave","saveTrafficTaskSet":"saveTrafficTaskSet","addCard":"addCard","editCard":"editCard","delCard":"delCard","sendCardLog":"sendCardLog","getCardLog":"getCardLog","saveEvaluateSet":"saveEvaluateSet","addMaterialGroup":"addMaterialGroup","editMaterialGroup":"editMaterialGroup","delMaterialGroup":"delMaterialGroup","multipleDelAssets":"multipleDelAssets","multipleMoveAssets":"multipleMoveAssets","addText":"addText","editText":"editText","delText":"delText","textAssignStore":"textAssignStore","addImage":"addImage","editImage":"editImage","delImage":"delImage","imageAssignStore":"imageAssignStore","addWeb":"addWeb","editWeb":"editWeb","delWeb":"delWeb","webAssignStore":"webAssignStore","addVideo":"addVideo","editVideo":"editVideo","delVideo":"delVideo","videoAssignStore":"videoAssignStore","addFile":"addFile","editFile":"editFile","delFile":"delFile","fileAssignStore":"fileAssignStore","addApps":"addApps","editApps":"editApps","delApps":"delApps","appsAssignStore":"appsAssignStore","saveGoodsSet":"saveGoodsSet","exportActiveUser":"exportActiveUser","exportLoginUser":"exportLoginUser","exportAreaLoginUser":"exportAreaLoginUser","multipleDelReport":"multipleDelReport","exportReport":"exportReport","reportDetail":"reportDetail","multipleDelReportDetail":"multipleDelReportDetail","delReportDetail":"delReportDetail","showReportDetail":"showReportDetail","multipleExportReport":"multipleExportReport","saveTaskSet":"saveTaskSet","settingSystemReport":"settingSystemReport","saveSystemReport":"saveSystemReport","addCustomReport":"addCustomReport","copyCustomReport":"copyCustomReport","editCustomReport":"editCustomReport","delCustomReport":"delCustomReport","monthTarget":"monthTarget","dayTarget":"dayTarget","exportMonthTask":"exportMonthTask","checkMonthTask":"checkMonthTask","multipleDelTask":"multipleDelTask","delTask":"delTask","exportStoreList":"exportStoreList","checkStoreList":"checkStoreList","exportStoreDetail":"exportStoreDetail","checkStoreDetail":"checkStoreDetail","exportStoreDetailPop":"exportStoreDetailPop","previewStoreDetail":"previewStoreDetail","exportGrTaskList":"exportGrTaskList","checkGrTaskList":"checkGrTaskList","exportTaskRecord":"exportTaskRecord","multipleDelTaskRecord":"multipleDelTaskRecord","checkTaskRecord":"checkTaskRecord","exportTaskDetail":"exportTaskDetail","multipleDelTaskDetail":"multipleDelTaskDetail","delTaskDetail":"delTaskDetail","resolveTaskDetail":"resolveTaskDetail","previewTaskDetail":"previewTaskDetail","exportTaskView":"exportTaskView","multipleDelTaskView":"multipleDelTaskView","checkTaskView":"checkTaskView","exportTaskViewDetail":"exportTaskViewDetail","multipleDelTaskViewDetail":"multipleDelTaskViewDetail","checkTaskDetail":"checkTaskDetail","addSalutatory":"addSalutatory","editSalutatory":"editSalutatory","delSalutatory":"delSalutatory","multipleResolve":"multipleResolve","singleResolve":"singleResolve","singleReject":"singleReject","saveApplySetting":"saveApplySetting","refreshStoreMember":"refreshStoreMember","exportContact":"exportContact","checkContactDetail":"checkContactDetail","checkContactMemberDetail":"checkContactMemberDetail","checkLog":"checkLog","saveGuideSetting":"saveGuideSetting","saveAppsVisible":"saveAppsVisible","refreshStoreInfo":"refreshStoreInfo","saveMemberSecret":"saveMemberSecret","addMemberAppsSecret":"addMemberAppsSecret","editMemberAppsSecret":"editMemberAppsSecret","delMemberAppsSecret":"delMemberAppsSecret","addAppsSecret":"addAppsSecret","getAppsSecret":"getAppsSecret","editAppsSecret":"editAppsSecret","delAppsSecret":"delAppsSecret","checkAuth":"checkAuth","bindStoreList":"bindStoreList","refreshStore":"refreshStore","refreshAdminList":"refreshAdminList","addActCode":"addActCode","batchActCode":"batchActCode","batchGroup":"batchGroup","dataActCode":"dataActCode","infoActCode":"infoActCode","editActCode":"editActCode","downActCode":"downActCode","delActCode":"delActCode"}
\ No newline at end of file
......@@ -91,14 +91,14 @@ Vue.axios.interceptors.response.use(
return data;
},
err => {
// if (err.response.status == 502) {
// window.location.href = gicHost + '/gic-web/#/login?ishb=1';
// Message.error({ message: '服务异常⊙﹏⊙∥' });
// }
// if (err.response.status != 403) {
// window.location.href = gicHost + '/gic-web/#/login?ishb=1';
// Message.error({ message: '登录失效!' });
// }
if (err.response.status == 502) {
window.location.href = gicHost + '/gic-web/#/login?ishb=1';
Message.error({ message: '服务异常⊙﹏⊙∥' });
}
if (err.response.status != 403) {
window.location.href = gicHost + '/gic-web/#/login?ishb=1';
Message.error({ message: '登录失效!' });
}
return Promise.resolve(err);
}
);
......
......@@ -8,9 +8,9 @@
<!-- 页面内容 -->
<!-- <router-view v-if="activeBrand" :brandId="activeBrand" :activeGroupId="activeGroup" :tabType="activeTab" @showTab="showTab"></router-view> -->
<keep-alive>
<router-view :brand-id="enterpriseId" v-if="$route.meta.keepAlive"></router-view>
<router-view :brand-id="enterpriseId" :key="$route.path" v-if="$route.meta.keepAlive"></router-view>
</keep-alive>
<router-view v-if="!$route.meta.keepAlive" :brand-id="enterpriseId"></router-view>
<router-view v-if="!$route.meta.keepAlive" :key="$route.path" :brand-id="enterpriseId"></router-view>
</div>
</div>
</div>
......
......@@ -4,7 +4,11 @@ const staffActCodeRouter = [
{
path: '/staffActCode',
name: '员工活码',
component: _import('salesleads/actCodeManage/staffActCode', 'index')
component: _import('salesleads/actCodeManage/staffActCode', 'index'),
meta: {
keepAlive: true,
fromPath: ['/actCodeAdd', '/actCodeEdit', '/actCodeBatch', '/actCodeDetail']
}
},
{
path: '/actCodeRecord',
......@@ -13,7 +17,12 @@ const staffActCodeRouter = [
},
{
path: '/actCodeDetail',
name: '活码详情',
name: '活码详情-数据',
component: _import('salesleads/actCodeManage/staffActCode', 'actCodeDetail')
},
{
path: '/actCodeDetails',
name: '活码详情-详情',
component: _import('salesleads/actCodeManage/staffActCode', 'actCodeDetail')
},
{
......
......@@ -248,7 +248,7 @@ export default {
this.welcomeId = item.welcomeId;
},
goLinkDetail(row) {
console.log(row);
this.dialogVisible = false;
if (row.type == 2) {
this.$router.push('/actCodeDetail?hmId=' + row.referId);
} else {
......
<template>
<div class="p-20">
<div class="p-20" v-loading="loading">
<el-form label-width="100px" :model="form" size="small" :rules="rules" ref="form">
<dm-sub-title type="line">基础信息</dm-sub-title>
<div class="section">
......@@ -102,7 +102,7 @@
</div>
<dm-sub-title type="line">欢迎语设置</dm-sub-title>
<div class="section">
<welcomeItem @getWelcomeId="getWelcomeId" :welcomeIdP="form.welcomeId" ref="welcomeItem" :welcomeType="link"></welcomeItem>
<welcomeItem :welcomeId.sync="form.welcomeId" :welcomeType.sync="welcomeType" ref="welcomeItem" welcomeName="link"></welcomeItem>
</div>
<dm-sub-title type="line">落地页配置</dm-sub-title>
<div class="section flex" style="margin-bottom: 40px;">
......@@ -162,8 +162,9 @@ export default {
pageNum: 1,
pageSize: 20
},
link: 'link',
welcomeType: 1,
landingLoading: false,
loading: false,
landingData: [],
total: 0,
landingForm: {},
......@@ -264,25 +265,33 @@ export default {
});
},
getDetail() {
linkDetail({ linkId: this.$route.params.id }).then(res => {
const { result } = res.data;
if (result) {
const { link, page } = result;
link.customRuleJson = JSON.parse(link.customRuleJson);
link.storeRuleJson = JSON.parse(link.storeRuleJson);
link.storeList = link.storeList ? link.storeList : [];
this.form = link;
this.landingForm = page;
this.getStoreList();
}
console.log(result);
});
this.loading = true;
linkDetail({ linkId: this.$route.params.id })
.then(res => {
const { result } = res.data;
if (result) {
const { link, page } = result;
link.customRuleJson = JSON.parse(link.customRuleJson);
link.storeRuleJson = JSON.parse(link.storeRuleJson);
link.storeList = link.storeList ? link.storeList : [];
this.form = link;
if (!this.form.welcomeId) {
this.welcomeType = 2;
}
this.landingForm = page;
this.getStoreList();
}
})
.finally(_ => {
this.loading = false;
});
},
saveTagPop(data) {
const { tagItemId, tagItemName } = data;
this.form.memberLabelName = tagItemName;
this.form.memberLabelId = tagItemId;
this.form.memberLabelStatus = 1;
this.$refs.form.validateField('memberLabelId');
},
handleTagCloseTag() {
this.form.memberLabelName = '';
......@@ -293,9 +302,7 @@ export default {
this.form.storeList = val;
this.$refs.form.validateField('storeList');
},
getWelcomeId(e) {
this.form.welcomeId = e;
},
getList() {
this.landingLoading = true;
guidePageList(this.landingPage)
......@@ -353,6 +360,9 @@ export default {
data.storeRuleJson = JSON.stringify(data.storeRuleJson);
data.customRuleJson = JSON.stringify(data.customRuleJson);
data.wxEnterpriseId = this.wxEnterpriseId;
if (this.welcomeType == 2) {
data.welcomeId = '';
}
delete data.memberLabelStatus;
this.$refs.form.validate(val => {
if (!val) {
......
......@@ -11,7 +11,7 @@
<div class="flex flex-space-between m-b-16">
<div class="flex flex-align-center">
<el-input placeholder="请输入模板ID/名称、创建人" class="w-260" v-model="form.searchParams" @keyup.native="value => toInput(value, searchInput)" clearable @clear="getList"> <i slot="prefix" class="el-input__icon el-icon-search"></i> </el-input>
<el-input placeholder="请输入链接ID/名称、创建人" class="w-260" v-model="form.searchParams" @keyup.native="value => toInput(value, searchInput)" clearable @clear="getList"> <i slot="prefix" class="el-input__icon el-icon-search"></i> </el-input>
<el-select class="m-l-10 w-160" v-model="form.linkType" placeholder="全部类型" @change="getList" clearable @clear="clear">
<el-option v-for="item in options" :key="item.key" :label="item.label" :value="item.key"> </el-option>
</el-select>
......@@ -92,11 +92,11 @@ const tableHead = [
},
{
label: '今日点击人次',
prop: 'clickNum',
prop: 'clickTimes',
width: '130',
sortable: 'custom',
formatter: function(row) {
return `<span>${row.clickNum ? row.clickNum : '- -'}</span>`;
return `<span>${row.clickTimes ? row.clickTimes : '- -'}</span>`;
}
},
{
......
......@@ -25,7 +25,7 @@
</div>
</div>
</div>
<div class="fixed-tab" v-if="scrollTop > 300">
<div class="fixed-tab" v-if="scrollTop >= fixedHeight">
<el-tabs v-model="activeName" type="card">
<el-tab-pane label="详情信息" name="first"> <div></div> </el-tab-pane>
<el-tab-pane label="数据统计" name="second">
......@@ -76,7 +76,7 @@
<ul class="datebox" v-for="(lis, index) in dateLis" :key="lis.key">
<li :class="dateKey == index ? 'activeClass' : 'noActive'" class="dateLisBox" @click="btnChange(index)">{{ lis.value }}</li>
</ul>
<el-date-picker class="w256" v-model="dateDefault" type="daterange" range-separator="~" start-placeholder="创建开始日期" end-placeholder="创建结束日期" :default-time="['00:00:00', '23:59:59']" :picker-options="pickerOptions()" @change="onDateChange" value-format="yyyy-MM-dd"> </el-date-picker>
<el-date-picker class="w256" v-model="dateDefault" type="daterange" range-separator="~" start-placeholder="创建开始日期" end-placeholder="创建结束日期" :default-time="['00:00:00', '23:59:59']" :picker-options="pickerOptions()" @change="onDateChange" value-format="yyyy-MM-dd" :clearable="false"> </el-date-picker>
</div>
</div>
<new-add-chart :charData="charData" id="new-add-chart" style="margin-top:26px"></new-add-chart>
......@@ -115,6 +115,7 @@ export default {
mixins: [mixin],
data() {
return {
fixedHeight: 280,
filters,
statisticsClerk,
loading: false,
......@@ -195,6 +196,21 @@ export default {
statisticsChart(para).then(res => {
const { result } = res.data;
this.charData = result;
// this.charData = [
// { addNum: 1, bizDate: '2021-07', clickNum: 3, clickTimes: 0 },
// { addNum: 2, bizDate: '2021-08', clickNum: 30, clickTimes: 10 },
// { addNum: 3, bizDate: '2021-09', clickNum: 40, clickTimes: 0 },
// { addNum: 4, bizDate: '2021-10', clickNum: 3, clickTimes: 40 },
// { addNum: 5, bizDate: '2021-11', clickNum: 3, clickTimes: 0 },
// { addNum: 6, bizDate: '2021-12', clickNum: 3, clickTimes: 20 },
// { addNum: 0, bizDate: '2022-01', clickNum: 30, clickTimes: 20 },
// { addNum: 6, bizDate: '2022-02', clickNum: 30, clickTimes: 0 },
// { addNum: 4, bizDate: '2022-03', clickNum: 20, clickTimes: 30 },
// { addNum: 4, bizDate: '2022-04', clickNum: 203, clickTimes: 0 },
// { addNum: 4, bizDate: '2022-05', clickNum: 20, clickTimes: 10 },
// { addNum: 4, bizDate: '2022-06', clickNum: 20, clickTimes: 0 },
// { addNum: 4, bizDate: '2022-07', clickNum: 10, clickTimes: 10 }
// ];
});
},
statisticsTotal() {
......@@ -261,6 +277,7 @@ export default {
this.getDetail();
this.getChartList();
this.statisticsTotal();
this.btnChange(0);
document.getElementById('hb-layout-pager-one').addEventListener('scroll', this.scrollMethod);
},
destroyed() {
......@@ -277,11 +294,12 @@ export default {
.fixed-tab {
position: absolute;
top: 80px;
top: 110px;
z-index: 1;
padding-bottom: 0;
height: 40px;
background: white;
width: calc(100% - 180px);
}
.welcome-left-view {
width: 639px;
......
......@@ -21,7 +21,7 @@
<span class="pageTitle">{{ card.pageTitle }}</span>
<img src="@/assets/iphone-head.png" />
<div class="content">
<img :src="card.pageBackgroudImg" v-show="card.pageBackgroudImg" class="bgImg" />
<img :src="card.pageBackgroundImg" v-show="card.pageBackgroundImg" class="bgImg" />
<div class="enterpriseInfo">
<div class="logo">
<img :src="card.merchantLogo" />
......@@ -52,7 +52,7 @@ export default {
merchantName: '',
merchantPhoneNumber: '',
merchantLogo: '',
pageBackgroudImg: '',
pageBackgroundImg: '',
guideComment: ''
}
};
......@@ -68,8 +68,8 @@ export default {
content: {
handler(val) {
if (val) {
const { pageName, pageCode, pageId, pageTitle, merchantName, merchantPhoneNumber, merchantLogo, pageBackgroudImg, guideComment, createorName, createTime } = val;
this.card = { pageName, pageCode, pageId, pageTitle, merchantName, merchantPhoneNumber, merchantLogo, pageBackgroudImg, guideComment, createorName, createTime };
const { pageName, pageCode, pageId, pageTitle, merchantName, merchantPhoneNumber, merchantLogo, pageBackgroundImg, guideComment, createorName, createTime } = val;
this.card = { pageName, pageCode, pageId, pageTitle, merchantName, merchantPhoneNumber, merchantLogo, pageBackgroundImg, guideComment, createorName, createTime };
}
},
immediate: true
......
<template>
<div>
<div class="daily-set-content">
<div class="daily-set-content" v-loading="loading">
<el-form label-width="100px" ref="form" :model="form" :rules="rules" class="form">
<el-form-item label="模板名称" prop="pageName" required>
<el-form-item label="模板名称" prop="pageName">
<el-input show-word-limit placeholder="请输入模板名称" type="text" v-model="form.pageName" maxlength="20" class="w-340"></el-input>
</el-form-item>
<el-form-item label="页面标题" prop="pageTitle">
......@@ -33,7 +33,7 @@
</div>
</div>
<div class="footBtn">
<el-button type="primary" @click="save">保存</el-button>
<el-button type="primary" @click="save" :loading="btnLoading">保存</el-button>
</div>
</div>
</template>
......@@ -77,8 +77,10 @@ export default {
isEdit: this.$route.meta.type == 'edit',
isAdd: this.$route.meta.type == 'add',
loading: false,
btnLoading: false,
rules: {
merchantPhoneNumber: [{ validator: merchantPhoneNumberVal }]
merchantPhoneNumber: [{ validator: merchantPhoneNumberVal }],
pageName: [{ required: true, message: '请输入模板名称' }]
}
};
},
......@@ -92,12 +94,17 @@ export default {
methods: {
getDetail() {
console.log(this.$route);
guidePageDetail({ pageId: this.$route.params.id }).then(res => {
if (res.data.result) {
const result = res.data.result;
this.form = result;
}
});
this.loading = true;
guidePageDetail({ pageId: this.$route.params.id })
.then(res => {
if (res.data.result) {
const result = res.data.result;
this.form = result;
}
})
.finally(_ => {
this.loading = false;
});
},
getEchoEnterpriseInfo() {
wxEnterpriseList({}).then(res => {
......@@ -111,18 +118,18 @@ export default {
});
},
guidePageEdit() {
this.loading = true;
this.btnLoading = true;
guidePageEdit(this.form)
.then(_ => {
this.$router.go(-1);
this.$message.success('保存成功');
})
.finally(_ => {
this.loading = false;
this.btnLoading = false;
});
},
guidePageSave() {
this.loading = true;
this.btnLoading = true;
guidePageSave(this.form)
.then(_ => {
this.$router.go(-1);
......@@ -130,7 +137,7 @@ export default {
this.$message.success('保存成功');
})
.finally(_ => {
this.loading = false;
this.btnLoading = false;
});
},
save() {
......
......@@ -37,6 +37,7 @@ export default {
loading: false,
total: 0,
pageId: '',
dialogVisible: false,
list: [
{
pageName: '模板名称模板名称模板名称模板名称模板',
......@@ -197,7 +198,7 @@ export default {
this.$router.push(`/ladingPageEdit/${item.pageId}`);
},
goLinkDetail(referId) {
console.log(referId);
this.dialogVisible = false;
this.$router.push(`/attractFlowLinkInfo/${referId}`);
}
}
......
......@@ -60,6 +60,86 @@ export default {
{ name: '今日点击人数', value: 'clickNum', marker: { symbol: 'line', style: { stroke: '#14C9C9', lineWidth: 12, lineHeight: 8 } } }
]
});
//坐标轴配置(法一配置)
this.chart.axis('bizDate', {
line: {
style: {
stroke: '#606266',
lineDash: [3, 3]
}
},
tickLine: {
style: {
fill: '#E4E7ED',
lineDash: [3, 3]
}
},
label: {
style: {
fill: '#606266'
}
}
});
this.chart.axis('addNum', {
grid: {
line: {
type: 'line',
style: {
stroke: '#E4E7ED',
lineDash: [3, 3]
}
}
},
label: {
style: {
fill: '#606266'
},
formatter: val => {
// 格式化参数值
return val;
}
}
});
this.chart.axis('clickTimes', {
grid: {
line: {
type: 'line',
style: {
stroke: '#E4E7ED',
lineDash: [3, 3]
}
}
},
label: {
style: {
fill: '#606266'
},
formatter: val => {
// 格式化参数值
return val;
}
}
});
this.chart.axis('clickNum', {
grid: {
line: {
type: 'line',
style: {
stroke: '#E4E7ED',
lineDash: [3, 3]
}
}
},
label: {
style: {
fill: '#606266'
},
formatter: val => {
// 格式化参数值
return val;
}
}
});
this.chart.tooltip({
showCrosshairs: true,
shared: true,
......
......@@ -49,9 +49,11 @@
</el-tabs>
</div>
<el-tabs v-model="activeName" type="card">
<!-- <el-tab-pane label="详情信息" name="first" v-if="$getButtonLimit($buttonCode.infoActCode)" :limit-code="$buttonCode.infoActCode"> -->
<el-tab-pane label="详情信息" name="first">
<act-code-detail-info :enterprise-id="codeInfo.enterpriseId" :welcome-id="codeInfo.welcomeId" :hm-id="$route.query.hmId" @useMemberList="useMemberData"></act-code-detail-info>
</el-tab-pane>
<!-- <el-tab-pane label="数据统计" name="second" v-if="$getButtonLimit($buttonCode.dataActCode)" :limit-code="$buttonCode.dataActCode"> -->
<el-tab-pane label="数据统计" name="second">
<act-code-detail-statistics :hm-id="$route.query.hmId"></act-code-detail-statistics>
</el-tab-pane>
......
......@@ -40,7 +40,7 @@
<ul class="datebox" v-for="(lis, index) in dateLis" :key="lis.key">
<li :class="dateKey == index ? 'activeClass' : 'noActive'" class="dateLisBox" @click="btnChange(index)">{{ lis.value }}</li>
</ul>
<el-date-picker class="w256" v-model="dateDefault" type="daterange" range-separator="~" start-placeholder="创建开始日期" end-placeholder="创建结束日期" :default-time="['00:00:00', '23:59:59']" :picker-options="pickerOptions()" @change="onDateChange" value-format="yyyy-MM-dd"> </el-date-picker>
<el-date-picker class="w256" v-model="dateDefault" type="daterange" range-separator="~" start-placeholder="创建开始日期" end-placeholder="创建结束日期" :default-time="['00:00:00', '23:59:59']" :picker-options="pickerOptions()" @change="onDateChange" value-format="yyyy-MM-dd" :clearable="false"> </el-date-picker>
</div>
</div>
<new-add-chart :charData="overViewData.dateList" id="new-add-chart"></new-add-chart>
......
......@@ -9,12 +9,12 @@
<el-form-item>
<el-select v-model="storeSelect" placeholder="请选择" style="width: 128px" @change="storeMemberSe">
<el-option label="成员所属门店" :value="1"></el-option>
<el-option label="使用成员" :value="2"></el-option>
<el-option label="关联导购" :value="2"></el-option>
</el-select>
<el-select v-model="inFields.storeSelect" v-if="storeSelect == 1" filterable remote placeholder="请输入门店名称/code" :remote-method="remoteMethods" :loading="selectLoading" v-loadmore="onLoadmoreStore" @change="searchList" style="margin-left: -4px; width:196px;">
<el-select v-model="inFields.storeSelect" v-if="storeSelect == 1" filterable remote placeholder="请输入门店名称/code" :remote-method="remoteMethods" :loading="selectLoading" v-loadmore="onLoadmoreStore" @change="searchList" style="margin-left: -4px; width:196px;" clearable>
<el-option v-for="item in shopList" :key="item.storeId" :label="item.storeName" :value="item.storeId"> </el-option>
</el-select>
<el-select v-model="inFields.clerkSelect" v-if="storeSelect == 2" filterable remote placeholder="请输入成员名称/code" :loading="selectLoading" @change="searchList" style="margin-left: -4px; width:196px;">
<el-select v-model="inFields.clerkSelect" v-if="storeSelect == 2" filterable remote placeholder="请输入成员名称/code" :loading="selectLoading" @change="searchList" style="margin-left: -4px; width:196px;" clearable>
<el-option v-for="item in memberList" :key="item.clerkId" :label="item.clerkName" :value="item.clerkId"> </el-option>
</el-select>
</el-form-item>
......@@ -36,6 +36,9 @@
<el-date-picker v-model="dateTime" @change="searchList" :picker-options="pickerOptions" :editable="false" :value-format="'yyyy-MM-dd HH:mm:ss'" type="datetimerange" align="right" unlink-panels range-separator="至" start-placeholder="创建开始日期" end-placeholder="创建结束日期"> </el-date-picker>
</el-form-item>
<el-form-item class="frmbt20">
<!-- <el-button @click="batchGoupEvent" v-if="$getButtonLimit($buttonCode.batchGroup)" :limit-code="$buttonCode.batchGroup">批量分组</el-button>
<el-button class="ghost-btn " @click="$router.push('/actCodeBatch')" v-if="$getButtonLimit($buttonCode.batchActCode)" :limit-code="$buttonCode.batchActCode">批量创建活码</el-button>
<el-button type="primary" @click="$router.push('/actCodeAdd')" v-if="$getButtonLimit($buttonCode.addActCode)" :limit-code="$buttonCode.addActCode">新增活码</el-button> -->
<el-button @click="batchGoupEvent">批量分组</el-button>
<el-button class="ghost-btn " @click="$router.push('/actCodeBatch')">批量创建活码</el-button>
<el-button type="primary" @click="$router.push('/actCodeAdd')">新增活码</el-button>
......@@ -76,7 +79,7 @@
<p>{{ row.addNumT == null ? row.addNumT : '--' }}</p>
</template>
</el-table-column>
<el-table-column label="使用成员" width="120" show-overflow-tooltip>
<el-table-column label="关联导购" width="120" show-overflow-tooltip>
<template slot-scope="{ row }">
<p>{{ row.clerkName ? row.clerkName : '--' }}</p>
<p class="ft-12 phone">{{ row.clerkCode ? row.clerkCode : '--' }}</p>
......@@ -215,21 +218,30 @@ export default {
operateBtnArr: [
{
text: '数据',
visible: true,
visible: row => {
// if (this.$getButtonLimit(this.$buttonCode.dataActCode)) {
return true;
// }
},
handler: row => {
this.$router.push(`/actCodeDetail?hmId=${row.hmId}&activeName=second`);
}
},
{
text: '详情',
visible: true,
visible: row => {
// if (this.$getButtonLimit(this.$buttonCode.infoActCode)) {
return true;
// }
},
handler: row => {
this.$router.push('/actCodeDetail?hmId=' + row.hmId);
this.$router.push('/actCodeDetails?hmId=' + row.hmId);
}
},
{
text: '编辑',
visible: row => {
// if (!this.$getButtonLimit(this.$buttonCode.editActCode) || row.statusFlag == 2) {
if (row.statusFlag == 2) {
return false;
} else {
......@@ -243,6 +255,7 @@ export default {
{
text: '下载活码',
visible: row => {
// if (!this.$getButtonLimit(this.$buttonCode.downActCode) || row.hmType == 1 || row.statusFlag != 1) {
if (row.hmType == 1 || row.statusFlag != 1) {
return false;
} else {
......@@ -258,6 +271,7 @@ export default {
{
text: '作废',
visible: row => {
// if (this.$getButtonLimit(this.$buttonCode.delActCode) && row.statusFlag != 2) {
if (row.statusFlag != 2) {
return true;
}
......@@ -320,6 +334,26 @@ export default {
this.getStraff();
this.getStore();
},
activated() {
if (this.$route.meta.refresh) {
this.inFields = {
hmSelect: '',
statusFlagInt: '',
storeSelect: '',
clerkSelect: '',
hmTypeInt: '',
startTime: '',
endTime: '',
orderByField: 'createTime desc',
hmGroupId: ''
};
this.pageParam = {
pageSize: 20,
pageNo: 1
};
}
this.getTableList();
},
methods: {
storeMemberSe(e) {
if (e == 1) {
......@@ -491,11 +525,11 @@ export default {
watch: {
currentGroupId: {
handler: function(val) {
// if (val != null) {
this.currentGroupId = val;
this.pageParam.pageNo = 1;
this.getTableList();
// }
if (val) {
this.currentGroupId = val;
this.pageParam.pageNo = 1;
this.getTableList();
}
},
immediate: true
}
......
......@@ -9,7 +9,7 @@
</el-form-item>
</template>
<template #member>
<el-form-item label="使用成员" :rules="[{ required: true, message: '请选择使用成员', trigger: 'blur' }]">
<el-form-item label="关联导购" :rules="[{ required: true, message: '请选择使用成员', trigger: 'blur' }]">
<el-radio-group v-model="memberType" @change="radioChange">
<el-radio :label="1">全部成员</el-radio>
<el-radio :label="2">部分成员</el-radio>
......@@ -79,6 +79,7 @@ export default {
await postJsonRequest('/haoban-manage3-web/hm/qrcode/addList', obj).then(res => {
if (res.data.code == 0) {
setTimeout(() => {
this.$route.meta.refresh = true;
this.$router.go(-1);
this.form = {
hmType: 1,
......
......@@ -15,7 +15,7 @@
</el-form-item>
</template>
<template #member>
<el-form-item label="使用成员" :rules="[{ required: true, message: '请选择使用成员', trigger: 'blur' }]">
<el-form-item label="关联导购" :rules="[{ required: true, message: '请选择使用成员', trigger: 'blur' }]">
<p class="tabs" v-if="form.hmType == 1">单人活码仅可选择一名成员</p>
<p class="tabs" v-if="form.hmType == 2">若选择多名成员,则随机分配企微员工</p>
<select-clerk :multiple="multiple" :data="data" @change="onChange" :disabled="clerkDisabled"></select-clerk>
......@@ -128,6 +128,7 @@ export default {
await postJsonRequest('/haoban-manage3-web/hm/qrcode/add', obj).then(res => {
if (res.data.code == 0) {
setTimeout(() => {
this.$route.meta.refresh = true;
this.$router.go(-1);
this.form = {
hmType: 1,
......
......@@ -17,14 +17,13 @@
</el-form-item>
<el-form-item label="活码标签" prop="memberLabelId" class="memberTag-form-item">
<el-button v-if="!form.memberLabelId || !form.memberLabelName" plain class="ylbtn" @click="tagsDialogVisible = true"><i class="iconfont-components3 icon-cp-PlusOutlined addPic"></i>添加标签</el-button>
<!-- <el-tag v-else closable @close="handleTagCloseTag">{{ form.memberLabelName }}</el-tag> -->
<el-tooltip :disabled="form.memberLabelStatus != 0" content="已删除" placement="top" v-else>
<el-tag closable @close="handleTagCloseTag" :type="isEdit && form.memberLabelStatus == 0 ? 'warning' : ''">{{ form.memberLabelName }}</el-tag>
</el-tooltip>
<dm-memberTag-group isHb :visiable.sync="tagsDialogVisible" projectName="haobao-3" @save="saveTagPop"></dm-memberTag-group>
</el-form-item>
<dm-sub-title text="欢迎语设置" type="line" class="mt40b20" />
<welcomeItem @getWelcomeId="getWelcomeId" :welcomeIdP="form.welcomeId" ref="welcomeItem" :welcomeSetType="welcomeSetType"></welcomeItem>
<welcomeItem @getWelcomeId="getWelcomeId" :welcomeId.sync="form.welcomeId" ref="welcomeItem" :welcomeType.sync="welcomeType" welcomeName="code"></welcomeItem>
</el-form>
</div>
<div class="saveBtn">
......@@ -60,7 +59,7 @@ export default {
},
data() {
return {
welcomeSetType: 1,
welcomeType: 1,
form: {
// hmType: 1, //1单人 2多人
// name: '', // 名称
......@@ -162,9 +161,9 @@ export default {
});
return;
}
// if (!this.$refs.welcomeItem.submit()) {
// return;
// }
if (this.welcomeType == 2) {
this.form.welcomeId = '';
}
this.$refs.form.validate(async valid => {
if (valid) {
this.form.passFlag = this.form.passFlag ? 1 : 0;
......@@ -177,16 +176,20 @@ export default {
actCodeData: {
handler: function(val) {
if (val) {
this.welcomeSetType = 2;
this.form.hmGroupId = val.hmGroupId;
// this.form.passFlag = val.passFlag == 1 ? true : false;
this.form.memberLabelId = val.memberLabelId ? val.memberLabelId : '';
this.form.memberLabelName = val.memberLabelName ? val.memberLabelName : '';
this.form.welcomeId = val.welcomeId;
if (this.form.welcomeId) {
this.welcomeType = 1;
} else {
this.welcomeType = 2;
}
}
},
immediate: true,
deep: true
}
// immediate: true,
// deep: true
}
}
};
......
......@@ -34,7 +34,7 @@
<div v-if="type == 'actCode'">
<div class="title flex">
<div class="blue-block"></div>
<span class="font-w-500 color-303133">使用成员</span>
<span class="font-w-500 color-303133">关联导购</span>
</div>
<el-table ref="useMemberTableRef" v-loading="loading" :data="useMemberData" tooltip-effect="dark">
<el-table-column prop="" label="导购信息" show-overflow-tooltip min-width="185px">
......
......@@ -10,7 +10,7 @@
<ul class="datebox" v-for="(lis, index) in dateLis" :key="lis.key">
<li :class="active == index ? 'activeClass' : 'noActive'" class="dateLisBox" @click="btnChange(index)">{{ lis.value }}</li>
</ul>
<el-date-picker class="w256" v-model="dateDefault" type="daterange" range-separator="~" start-placeholder="创建开始日期" end-placeholder="创建结束日期" :default-time="['00:00:00', '23:59:59']" value-format="yyyy-MM-dd" :picker-options="pickerOptions()" @change="onDateChange"> </el-date-picker>
<el-date-picker class="w256" v-model="dateDefault" type="daterange" range-separator="~" start-placeholder="创建开始日期" end-placeholder="创建结束日期" :default-time="['00:00:00', '23:59:59']" value-format="yyyy-MM-dd" :picker-options="pickerOptions()" @change="onDateChange" :clearable="false"> </el-date-picker>
</div>
</el-row>
<el-table class="mt18" :data="tableData" @sort-change="sortChange">
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment