Commit 55e6bf37 by caoyanzhi

Merge branch 'feature/4月-菜单和权限' into dev

parents 18c62965 5490747c
...@@ -12,13 +12,10 @@ module.exports = { ...@@ -12,13 +12,10 @@ module.exports = {
}, },
memberTagSet: { memberTagSet: {
// 1.同步历史 (按钮,控制“同步记录”页面的所哟有操作权限) // 1.同步历史 (按钮,控制“同步记录”页面的所哟有操作权限)
syncTagLog: ['同步历史', 0, 0, 'syncHistory'], syncTagLog: ['同步历史', 0, 0, 'syncHistory']
// 2.待开启同步标签 (按钮,控制“待开启同步标签”所有操作权限)
willSyncTag: ['待开启同步标签', 1, 2]
}, },
// 客户展示设置 // 客户展示设置
memberShowSet: { memberShowSet: {
// 按钮名称、是否受权限控制0否1是、是否增删改0跳转1是2其他、按钮跳转路径
// 1.特殊策略配置 (按钮,控制“新增特殊策略配置”弹窗内所有操作权限) // 1.特殊策略配置 (按钮,控制“新增特殊策略配置”弹窗内所有操作权限)
addShowRules: ['新增特殊策略', 1, 0, 'addMemberShowRules'], addShowRules: ['新增特殊策略', 1, 0, 'addMemberShowRules'],
// 2.编辑 (按钮,控制“修改特殊策略配置”弹窗内所有操作权限) // 2.编辑 (按钮,控制“修改特殊策略配置”弹窗内所有操作权限)
...@@ -44,11 +41,11 @@ module.exports = { ...@@ -44,11 +41,11 @@ module.exports = {
// 1.保存(按钮) // 1.保存(按钮)
searchSetSave: ['保存', 1, 1] searchSetSave: ['保存', 1, 1]
}, },
// TODO 会话任务 // 会话任务
// TODO 1.新增会话任务设置 (按钮,控制“新增会话任务设置”页面内所有操作权限) // 1.新增会话任务设置 (按钮,控制“新增会话任务设置”页面内所有操作权限)
// TODO 2.查看 (按钮,控制“查看会话任务设置”页面内所有操作权限) trafficTaskSet: {
// TODO 3.编辑 (按钮,控制“修改会话任务设置”页面内所有操作权限) saveTrafficTaskSet: ['保存', 1, 1]
// TODO 4.删除 (按钮) },
cardList: { cardList: {
// 1.新增卡券 (按钮,控制“新增卡券”页面内所有操作权限) // 1.新增卡券 (按钮,控制“新增卡券”页面内所有操作权限)
addCard: ['新增卡券', 1, 0, 'newCard'], addCard: ['新增卡券', 1, 0, 'newCard'],
...@@ -67,6 +64,9 @@ module.exports = { ...@@ -67,6 +64,9 @@ module.exports = {
saveEvaluateSet: ['保存', 1, 1] saveEvaluateSet: ['保存', 1, 1]
}, },
material: { material: {
addMaterialGroup: ['新建分组', 1, 1],
editMaterialGroup: ['编辑分组', 1, 1],
delMaterialGroup: ['删除分组', 1, 1],
// 1.新建文本 (按钮,控制“新建文本”弹窗内所有操作权限); // 1.新建文本 (按钮,控制“新建文本”弹窗内所有操作权限);
addText: ['文本-新建文本', 1, 1], addText: ['文本-新建文本', 1, 1],
// 2.编辑 (按钮,控制“编辑文本”弹窗内所有操作权限); // 2.编辑 (按钮,控制“编辑文本”弹窗内所有操作权限);
...@@ -75,8 +75,6 @@ module.exports = { ...@@ -75,8 +75,6 @@ module.exports = {
delText: ['文本-删除', 1, 1], delText: ['文本-删除', 1, 1],
// 4.分配企业 (按钮,控制“分配企业”弹窗内所有操作权限) // 4.分配企业 (按钮,控制“分配企业”弹窗内所有操作权限)
textAssignStore: ['文本-分配企业', 1, 2], textAssignStore: ['文本-分配企业', 1, 2],
// TODO 5.适用门店 (按钮,控制“适用门店”弹窗内所有操作权限)
textUsedStore: ['文本-适用门店', 1, 2],
// 1.新建图片 (按钮,控制“新建图片”弹窗内所有操作权限); // 1.新建图片 (按钮,控制“新建图片”弹窗内所有操作权限);
addImage: ['图片-新建图片', 1, 1], addImage: ['图片-新建图片', 1, 1],
// 2.编辑 (按钮,控制“编辑图片”弹窗内所有操作权限); // 2.编辑 (按钮,控制“编辑图片”弹窗内所有操作权限);
...@@ -85,8 +83,6 @@ module.exports = { ...@@ -85,8 +83,6 @@ module.exports = {
delImage: ['图片-删除', 1, 1], delImage: ['图片-删除', 1, 1],
// 4.分配企业 (按钮,控制“分配企业”弹窗内所有操作权限) // 4.分配企业 (按钮,控制“分配企业”弹窗内所有操作权限)
imageAssignStore: ['图片-分配企业', 1, 2], imageAssignStore: ['图片-分配企业', 1, 2],
// TODO 5.适用门店 (按钮,控制“适用门店”弹窗内所有操作权限)
imageUsedStore: ['图片-适用门店', 1, 2],
// 1.新建网页 (按钮,控制“新建网页”弹窗内所有操作权限); // 1.新建网页 (按钮,控制“新建网页”弹窗内所有操作权限);
addWeb: ['网页-新建网页', 1, 1], addWeb: ['网页-新建网页', 1, 1],
// 2.编辑 (按钮,控制“编辑网页”弹窗内所有操作权限); // 2.编辑 (按钮,控制“编辑网页”弹窗内所有操作权限);
...@@ -95,8 +91,6 @@ module.exports = { ...@@ -95,8 +91,6 @@ module.exports = {
delWeb: ['网页-删除', 1, 1], delWeb: ['网页-删除', 1, 1],
// 4.分配企业 (按钮,控制“分配企业”弹窗内所有操作权限) // 4.分配企业 (按钮,控制“分配企业”弹窗内所有操作权限)
webAssignStore: ['网页-分配企业', 1, 2], webAssignStore: ['网页-分配企业', 1, 2],
// TODO 5.适用门店 (按钮,控制“适用门店”弹窗内所有操作权限)
webUsedStore: ['网页-适用门店', 1, 2],
// 1.新建视频 (按钮,控制“新建视频”弹窗内所有操作权限); // 1.新建视频 (按钮,控制“新建视频”弹窗内所有操作权限);
addVideo: ['视频-新建视频', 1, 1], addVideo: ['视频-新建视频', 1, 1],
// 2.编辑 制“编辑视频”弹窗内所有操作权限); // 2.编辑 制“编辑视频”弹窗内所有操作权限);
...@@ -105,8 +99,6 @@ module.exports = { ...@@ -105,8 +99,6 @@ module.exports = {
delVideo: ['视频-删除', 1, 1], delVideo: ['视频-删除', 1, 1],
// 4.分配企业 (按钮,控制“分配企业”弹窗内所有操作权限) // 4.分配企业 (按钮,控制“分配企业”弹窗内所有操作权限)
videoAssignStore: ['视频-分配企业', 1, 2], videoAssignStore: ['视频-分配企业', 1, 2],
// TODO 5.适用门店 (按钮,控制“适用门店”弹窗内所有操作权限)
videoUsedStore: ['视频-适用门店', 1, 2],
// 1.新建文件 (按钮,控制“新建文件”弹窗内所有操作权限); // 1.新建文件 (按钮,控制“新建文件”弹窗内所有操作权限);
addFile: ['文件-新建文件', 1, 1], addFile: ['文件-新建文件', 1, 1],
// 2.编辑 (按钮,控制“编辑文件”弹窗内所有操作权限); // 2.编辑 (按钮,控制“编辑文件”弹窗内所有操作权限);
...@@ -115,8 +107,6 @@ module.exports = { ...@@ -115,8 +107,6 @@ module.exports = {
delFile: ['文件-删除', 1, 1], delFile: ['文件-删除', 1, 1],
// 4.分配企业 (按钮,控制“分配企业”弹窗内所有操作权限) // 4.分配企业 (按钮,控制“分配企业”弹窗内所有操作权限)
fileAssignStore: ['文件-分配企业', 1, 2], fileAssignStore: ['文件-分配企业', 1, 2],
// TODO 5.适用门店 (按钮,控制“适用门店”弹窗内所有操作权限)
fileUsedStore: ['文件-适用门店', 1, 2],
// 1.新建小程序 (按钮,控制“新建小程序”弹窗内所有操作权限); // 1.新建小程序 (按钮,控制“新建小程序”弹窗内所有操作权限);
addApps: ['小程序-新建小程序', 1, 1], addApps: ['小程序-新建小程序', 1, 1],
// 2.编辑 (按钮,控制“编辑小程序”弹窗内所有操作权限); // 2.编辑 (按钮,控制“编辑小程序”弹窗内所有操作权限);
...@@ -125,8 +115,6 @@ module.exports = { ...@@ -125,8 +115,6 @@ module.exports = {
delApps: ['小程序-删除', 1, 1], delApps: ['小程序-删除', 1, 1],
// 4.分配企业 (按钮,控制“分配企业”弹窗内所有操作权限) // 4.分配企业 (按钮,控制“分配企业”弹窗内所有操作权限)
appsAssignStore: ['小程序-分配企业', 1, 2], appsAssignStore: ['小程序-分配企业', 1, 2],
// TODO 5.适用门店 (按钮,控制“适用门店”弹窗内所有操作权限)
appsUsedStore: ['小程序-适用门店', 1, 2],
}, },
goodsShowSet: { goodsShowSet: {
// 1.保存(按钮) // 1.保存(按钮)
...@@ -168,14 +156,21 @@ module.exports = { ...@@ -168,14 +156,21 @@ module.exports = {
// 1.保存(按钮) // 1.保存(按钮)
saveTaskSet: ['保存', 1, 1] saveTaskSet: ['保存', 1, 1]
}, },
// TODO 云日报设置-系统报表 // 云日报设置-系统报表
// TODO 1.模板设置 (按钮,控制“模板设置”弹窗内所有操作权限); systemReport: {
// TODO 2.保存并启用(按钮) // 1.模板设置(按钮,控制“模板设置”弹窗内所有操作权限);
// TODO 云日报设置-自定义报表 settingSystemReport: ['模板设置', 1, 2],
// TODO 1.新建模板 (按钮,控制“新建模板”页面内所有操作权限); // 2.保存并启用(按钮)
// TODO 2.复制 (按钮,控制“新建模板”页面内所有操作权限); saveSystemReport: ['保存并启用', 1, 2],
// TODO 3.编辑 (按钮,控制“编辑模板”页面内所有操作权限); // 1.新建模板(按钮,控制“新建模板”页面内所有操作权限);
// TODO 4.删除(按钮) addCustomReport: ['新建模板', 1, 0, 'customReportSet'],
// 2.复制(按钮,控制“新建模板”页面内所有操作权限);
copyCustomReport: ['复制', 1, 0, 'customReportCopy'],
// 3.编辑(按钮,控制“编辑模板”页面内所有操作权限);
editCustomReport: ['编辑', 1, 0, 'customReportEdit'],
// 4.删除(按钮)
delCustomReport: ['删除', 1, 1]
},
monthList: { monthList: {
// 1.门店月指标 (按钮,控制“门店月指标”页面内所有操作权限); // 1.门店月指标 (按钮,控制“门店月指标”页面内所有操作权限);
monthTarget: ['门店月指标', 1, 0, 'storeMonthTask'], monthTarget: ['门店月指标', 1, 0, 'storeMonthTask'],
...@@ -242,7 +237,6 @@ module.exports = { ...@@ -242,7 +237,6 @@ module.exports = {
exportTaskView: ['导出', 1, 2], exportTaskView: ['导出', 1, 2],
// 2.批量删除(按钮) // 2.批量删除(按钮)
multipleDelTaskView: ['批量删除', 1, 1], multipleDelTaskView: ['批量删除', 1, 1],
// TODO 3.导出任务执行情况(按钮)
// 4.查看详情(按钮,控制话务“任务门店详情”页面权限) // 4.查看详情(按钮,控制话务“任务门店详情”页面权限)
checkTaskView: ['查看详情', 0, 0, 'taskViewDetail'] checkTaskView: ['查看详情', 0, 0, 'taskViewDetail']
}, },
...@@ -252,6 +246,7 @@ module.exports = { ...@@ -252,6 +246,7 @@ module.exports = {
// 6.任务门店详情-批量删除(按钮) // 6.任务门店详情-批量删除(按钮)
multipleDelTaskViewDetail: ['批量删除', 1, 1], multipleDelTaskViewDetail: ['批量删除', 1, 1],
// 查看详情按钮权限与门店视图中查看详情权限一致 // 查看详情按钮权限与门店视图中查看详情权限一致
checkTaskDetail: ['查看详情', 0, 0, 'taskRecord']
}, },
salutatory: { salutatory: {
// 1.新建欢迎语 (按钮,控制“新建欢迎语”页面内所有操作权限); // 1.新建欢迎语 (按钮,控制“新建欢迎语”页面内所有操作权限);
...@@ -261,12 +256,20 @@ module.exports = { ...@@ -261,12 +256,20 @@ module.exports = {
// 3.删除(按钮) // 3.删除(按钮)
delSalutatory: ['删除', 1, 1] delSalutatory: ['删除', 1, 1]
}, },
// TODO 审核中心-待审核 // 审核中心-待审核
// TODO 1.批量同意(按钮) unreview: {
// TODO 2.同意(按钮) // 1.批量同意(按钮)
// TODO 3.拒绝(按钮) multipleResolve: ['批量同意', 1, 2],
// TODO 审核中心-审核设置 // 2.同意(按钮)
// TODO 1.保存(按钮) singleResolve: ['同意', 1, 2],
// 3.拒绝(按钮)
singleReject: ['拒绝', 1, 2]
},
// 审核中心-审核设置
reviewSet: {
// 1.保存(按钮)
saveApplySetting: ['保存', 1, 2]
},
contactsList: { contactsList: {
// 1.刷新企业成员(按钮) // 1.刷新企业成员(按钮)
refreshStoreMember: ['刷新企业成员', 1, 2], refreshStoreMember: ['刷新企业成员', 1, 2],
...@@ -277,6 +280,9 @@ module.exports = { ...@@ -277,6 +280,9 @@ module.exports = {
// 4.详情(按钮,控制“成员详情”弹窗内所有操作权限); // 4.详情(按钮,控制“成员详情”弹窗内所有操作权限);
checkContactMemberDetail: ['详情', 1, 2] checkContactMemberDetail: ['详情', 1, 2]
}, },
syncLog: {
checkLog: ['查看失败日志', 1, 2]
},
// 导购设置-导购操作权限设置 // 导购设置-导购操作权限设置
// 保存(按钮) // 保存(按钮)
'guide-setting': { 'guide-setting': {
...@@ -306,7 +312,9 @@ module.exports = { ...@@ -306,7 +312,9 @@ module.exports = {
// 1.查看授权设置(按钮,控制“查看授权商户”页面内所有操作权限); // 1.查看授权设置(按钮,控制“查看授权商户”页面内所有操作权限);
checkAuth: ['查看授权设置', 1, 0, 'authMerchantForm'], checkAuth: ['查看授权设置', 1, 0, 'authMerchantForm'],
// 2.绑定门店列表(按钮,控制“绑定门店列表”页面内所有操作权限) // 2.绑定门店列表(按钮,控制“绑定门店列表”页面内所有操作权限)
bindStoreList: ['绑定门店列表', 1, 0, 'merchantStoreList'] bindStoreList: ['绑定门店列表', 1, 0, 'merchantStoreList'],
// 刷新门店
refreshStore: ['刷新门店', 1, 2]
}, },
adminList: { adminList: {
// 1.刷新(按钮) // 1.刷新(按钮)
......
...@@ -13,8 +13,8 @@ module.exports = [ ...@@ -13,8 +13,8 @@ module.exports = [
{ {
menu: ['客户标签', '', 1, 'iconkehubiaoqian'], menu: ['客户标签', '', 1, 'iconkehubiaoqian'],
children: [ children: [
{ menu: ['客户标签', 'memberTagSet', 1] }, { menu: ['同步手工标签', 'memberTagSet', 1] },
{ menu: ['同步历史', 'syncHistory', 1] } { menu: ['标签同步历史', 'syncHistory', 1] }
] ]
}, },
{ {
...@@ -31,12 +31,11 @@ module.exports = [ ...@@ -31,12 +31,11 @@ module.exports = [
menu: ['客户分组设置', 'memberGroupSet', 1], menu: ['客户分组设置', 'memberGroupSet', 1],
children: [ children: [
{ menu: ['新建模板', 'addGroupTemplate', 1 ]}, { menu: ['新建模板', 'addGroupTemplate', 1 ]},
{ menu: ['编辑模板', 'editGroupTemplate', 1] }, // update 本次新增路径 { menu: ['编辑模板', 'editGroupTemplate', 1] },
{ menu: ['门店范围设置', 'storeRangeSet', 1] }, { menu: ['门店范围设置', 'storeRangeSet', 1] },
] ]
}, },
{ menu: ['客户管理设置', 'memberSearchSet', 1] },// TODO 本次新增页面 { menu: ['客户管理设置', 'memberSearchSet', 1] },
{ menu: ['客户详情设置', 'memberDetailSet', 1] }
] ]
} }
] ]
...@@ -47,41 +46,36 @@ module.exports = [ ...@@ -47,41 +46,36 @@ module.exports = [
{ {
menu: ['任务触达', '', 1, 'iconrenwuchuda'], menu: ['任务触达', '', 1, 'iconrenwuchuda'],
children: [ children: [
// { {
// menu: ['会话任务', '', 1], // TODO 本次新增页面 menu: ['会话任务设置', 'trafficTaskSet', 1]
// children: [ }
// { menu: ['新增规则策略', '', 1] }, // TODO 本次新增页面
// { menu: ['查看规则策略', '', 1] }, // TODO 本次新增页面
// { menu: ['编辑规则策略', '', 1] }, // TODO 本次新增页面
// ]
// }
] ]
}, },
{ {
menu: ['卡券活动', '', 1, 'iconkaquanhuodong'], menu: ['卡券活动', '', 1, 'iconkaquanhuodong'],
children: [ children: [
{ {
menu: ['卡券列表', 'cardList', 1], menu: ['卡券赠送列表', 'cardList', 1],
children: [ children: [
{ menu: ['新增卡券', 'newCard', 1] }, { menu: ['新增卡券', 'newCard', 1] },
{ menu: ['编辑卡券', 'editCard', 1] }, // update 本次新增路径 { menu: ['编辑卡券', 'editCard', 1] },
] ]
}, },
{ menu: ['卡券记录', 'cardRecord', 1] }, { menu: ['卡券赠送记录', 'cardRecord', 1] },
] ]
}, },
{ {
menu: ['评价回访', '', 1, 'iconpingjiahuifang'], menu: ['订单评价', '', 1, 'iconpingjiahuifang'],
children: [ children: [
{ {
menu: ['评价回访设置', 'evaluate-set', 1], menu: ['评价回访设置', 'evaluate-set', 1],
} }
] ]
}, },
{ {
menu: ['素材库', '', 1, 'iconsucaiku1'], menu: ['素材库', '', 1, 'iconsucaiku1'],
children: [ children: [
{ menu: ['素材库', 'material', 1] } { menu: ['素材库管理', 'material', 1] }
] ]
}, },
{ {
...@@ -109,47 +103,20 @@ module.exports = [ ...@@ -109,47 +103,20 @@ module.exports = [
] ]
}, },
{ {
menu: ['云日报', '', 1, 'iconyunribao'], menu: ['会话任务记录', '', 1, 'iconhuihuarenwujilu'],
children: [
{
menu: ['云日报记录', 'dailyRecord', 1],
children: [
{ menu: ['云日报记录详情', 'dailyDetail', 1], }
]
},
{ menu: ['云日报导出', 'dailyExport', 1] },
{ menu: ['任务下发设置', 'taskAssign', 1] },
// {
// menu: ['云日报设置', '', 1], // TODO 本次新增页面
// children: [
// { menu: ['新建模板', 'customReportSet', 1]},
// { menu: ['复制模板', 'customReportCopy', 1]}, // update 本次新增路径
// { menu: ['编辑模板', 'customReportEdit', 1]} // update 本次新增路径
// ]
// },
]
},
{
menu: ['月指标', '', 1, 'iconyuezhibiao'],
children: [ children: [
{ {
menu: ['月指标设置', 'monthList', 1], menu: ['门店视图', 'taskRecord', 1],
children: [ children: [
{ { menu: ['详情', 'taskDetail', 1] }
menu: ['门店月指标', 'storeMonthTask', 1],
children: [
{ menu: ['导购月指标详情', 'salerMonthDetail', 1] }
]
},
{ menu: ['商户日权重', 'companyDaySet', 1]},
] ]
}, },
{ {
menu: ['月指标任务报表', 'monthTask', 1], menu: ['任务视图', 'taskView', 1],
children: [ children: [
{ menu: ['月指标任务详情', 'monthTaskDetail', 1] } { menu: ['详情', 'taskViewDetail', 1] }
] ]
}, }
] ]
}, },
{ {
...@@ -170,20 +137,47 @@ module.exports = [ ...@@ -170,20 +137,47 @@ module.exports = [
] ]
}, },
{ {
menu: ['会话任务记录', '', 1, 'iconhuihuarenwujilu'], menu: ['云日报', '', 1, 'iconyunribao'],
children: [ children: [
{ {
menu: ['门店视图', 'taskRecord', 1], menu: ['云日报记录', 'dailyRecord', 1],
children: [ children: [
{ menu: ['详情', 'taskDetail', 1] } { menu: ['云日报记录详情', 'dailyDetail', 1], }
] ]
}, },
{ menu: ['云日报导出', 'dailyExport', 1] },
{ menu: ['任务下发设置', 'taskAssign', 1] },
{ {
menu: ['任务视图', 'taskView', 1], menu: ['云日报设置', 'systemReport', 1],
children: [ children: [
{ menu: ['详情', 'taskViewDetail', 1] } { menu: ['新建模板', 'customReportSet', 1]},
{ menu: ['复制模板', 'customReportCopy', 1]},
{ menu: ['编辑模板', 'customReportEdit', 1]}
] ]
} },
]
},
{
menu: ['月指标', '', 1, 'iconyuezhibiao'],
children: [
{
menu: ['月指标设置', 'monthList', 1],
children: [
{
menu: ['门店月指标', 'storeMonthTask', 1],
children: [
{ menu: ['导购月指标详情', 'salerMonthDetail', 1] }
]
},
{ menu: ['商户日权重', 'companyDaySet', 1]},
]
},
{
menu: ['月指标任务报表', 'monthTask', 1],
children: [
{ menu: ['月指标任务详情', 'monthTaskDetail', 1] }
]
},
] ]
}, },
] ]
...@@ -192,30 +186,30 @@ module.exports = [ ...@@ -192,30 +186,30 @@ module.exports = [
menu: ['设置', '', 1], menu: ['设置', '', 1],
children: [ children: [
{ {
menu: ['欢迎语设置', '', 1, 'iconhuanyingyu-o'], menu: ['通讯录', '', 1, 'icontongxunlu1'],
children: [
{menu: ['企微通讯录', 'contactsList', 1]},
{menu: ['通讯录日志', 'syncLog', 1]}
]
},
{
menu: ['欢迎语', '', 1, 'iconhuanyingyu-o'],
children: [ children: [
{ {
menu: ['欢迎语', 'salutatory', 1], menu: ['欢迎语设置', 'salutatory', 1],
children: [ children: [
{ menu: ['新建欢迎语', 'salutatorySet', 1] }, { menu: ['新建欢迎语', 'salutatorySet', 1] },
{ menu: ['编辑欢迎语', 'editSalutatorySet', 1] } // update 本次新增路径 { menu: ['编辑欢迎语', 'editSalutatorySet', 1] }
] ]
} }
] ]
}, },
{ {
menu: ['审核中心', '', 1, 'iconshenhezhongxin1'], menu: ['审核中心', '', 1, 'iconshenhezhongxin1'],
// children: [
// {menu: ['待审核', '', 1]}, // update 本次新增页面
// {menu: ['已审核', '', 1]}, // update 本次新增页面
// {menu: ['生活设置', '', 1]} // update 本次新增页面
// ]
},
{
menu: ['通讯录', '', 1, 'icontongxunlu1'],
children: [ children: [
{menu: ['通讯录', 'contactsList', 1]}, {menu: ['待审核', 'unreview', 1]},
{menu: ['通讯录日志', 'syncLog', 1]} {menu: ['已审核', 'reviewed', 1]},
{menu: ['审核设置', 'reviewSet', 1]}
] ]
}, },
{ {
...@@ -225,16 +219,16 @@ module.exports = [ ...@@ -225,16 +219,16 @@ module.exports = [
] ]
}, },
{ {
menu: ['应用接入', '', 1, 'iconyingyongjieru'], menu: ['管理员', '', 1, 'iconguanliyuanliebiao'],
children: [ children: [
{ menu: ['应用接入', 'enterpriseSet', 1] } { menu: ['管理员列表', 'adminList', 1] }
] ]
}, },
{ {
menu: ['授权商户', '', 1, 'iconshouquanshanghu'], menu: ['授权商户', '', 1, 'iconshouquanshanghu'],
children: [ children: [
{ {
menu: ['授权商户', 'authMerchant', 1], menu: ['授权商户列表', 'authMerchant', 1],
children: [ children: [
{menu: ['查看授权设置', 'authMerchantForm', 1]}, {menu: ['查看授权设置', 'authMerchantForm', 1]},
{menu: ['绑定门店列表', 'merchantStoreList', 1]} {menu: ['绑定门店列表', 'merchantStoreList', 1]}
...@@ -243,11 +237,11 @@ module.exports = [ ...@@ -243,11 +237,11 @@ module.exports = [
] ]
}, },
{ {
menu: ['管理员列表', '', 1, 'iconguanliyuanliebiao'], menu: ['应用接入', '', 1, 'iconyingyongjieru'],
children: [ children: [
{ menu: ['管理员列表', 'adminList', 1] } { menu: ['小程序接入', 'enterpriseSet', 1] }
] ]
}, }
] ]
}, },
]; ];
...@@ -20,7 +20,11 @@ Vue.axios.defaults.headers.common['platform'] = 'haoban'; ...@@ -20,7 +20,11 @@ Vue.axios.defaults.headers.common['platform'] = 'haoban';
Vue.axios.defaults.timeout = 500000; Vue.axios.defaults.timeout = 500000;
let local = window.location.origin; let local = window.location.origin;
const userInfos = JSON.parse(sessionStorage.getItem('userInfos') || '{}'); const userInfos = JSON.parse(sessionStorage.getItem('userInfos') || '{}');
const gicHost = typeof userInfos.gicHost == 'string' ? userInfos.gicHost.replace(/\/$/, '') : ''; let gicHost = typeof userInfos.gicHost == 'string' ? userInfos.gicHost.replace(/\/$/, '') : '';
if (local.indexOf('localhost') >= 0) {
gicHost = local;
}
gicHost = local;
// let local = process.env.NODE_ENV == 'development' ? 'https://www.gicdev.com' : ''; // let local = process.env.NODE_ENV == 'development' ? 'https://www.gicdev.com' : '';
......
...@@ -9,7 +9,10 @@ ...@@ -9,7 +9,10 @@
/* 后台返回消息提示 */ /* 后台返回消息提示 */
import { Message } from 'element-ui'; import { Message } from 'element-ui';
const userInfos = JSON.parse(sessionStorage.getItem('userInfos') || '{}'); const userInfos = JSON.parse(sessionStorage.getItem('userInfos') || '{}');
const gicHost = typeof userInfos.gicHost == 'string' ? userInfos.gicHost.replace(/\/$/, '') : ''; let gicHost = typeof userInfos.gicHost == 'string' ? userInfos.gicHost.replace(/\/$/, '') : '';
if (location.origin.indexOf('localhost') >= 0) {
gicHost = location.origin;
}
// 后台返回异常提示 // 后台返回异常提示
export default { export default {
......
...@@ -31,8 +31,8 @@ ...@@ -31,8 +31,8 @@
<span style="font-size:14px;" class="m-l-10">创建时间:</span><el-date-picker class="m-l-10" v-model="conditionObj.dateRange" :picker-options="pickerOptions" @change="changeDate" :editable="false" :value-format="'yyyy-MM-dd'" type="daterange" align="right" unlink-panels range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期"> </el-date-picker> <span style="font-size:14px;" class="m-l-10">创建时间:</span><el-date-picker class="m-l-10" v-model="conditionObj.dateRange" :picker-options="pickerOptions" @change="changeDate" :editable="false" :value-format="'yyyy-MM-dd'" type="daterange" align="right" unlink-panels range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期"> </el-date-picker>
</div> </div>
<div class="table-condition-right"> <div class="table-condition-right">
<el-button type="danger" @click="multDel">批量删除</el-button> <el-button type="danger" v-if="$getButtonLimit($buttonCode.multipleDelTaskView)" :limit-code="$buttonCode.multipleDelTaskView" @click="multDel">批量删除</el-button>
<el-button :loading="loadingBtn" type="primary" @click="exportExcel">导出</el-button> <el-button :loading="loadingBtn" type="primary" v-if="$getButtonLimit($buttonCode.exportTaskView)" :limit-code="$buttonCode.exportTaskView" @click="exportExcel">导出</el-button>
</div> </div>
</div> </div>
<el-table class="select-table" ref="multipleTable" :key="tableRefresh" v-loading="loading" :data="tableData" tooltip-effect="dark" :style="{ width: '100%', minHeight: tableH }" @selection-change="handleSelectionChange"> <el-table class="select-table" ref="multipleTable" :key="tableRefresh" v-loading="loading" :data="tableData" tooltip-effect="dark" :style="{ width: '100%', minHeight: tableH }" @selection-change="handleSelectionChange">
...@@ -70,9 +70,9 @@ ...@@ -70,9 +70,9 @@
<span v-else>{{ scope.row.delStatusDesc }}</span> <span v-else>{{ scope.row.delStatusDesc }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="操作"> <el-table-column label="操作" v-if="$getButtonLimit($buttonCode.checkTaskView)">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button type="text" @click="toDetail(scope.$index, scope.row)">查看详情</el-button> <el-button type="text" v-if="$getButtonLimit($buttonCode.checkTaskView)" :limit-code="$buttonCode.checkTaskView" @click="toDetail(scope.$index, scope.row)">查看详情</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
......
...@@ -236,11 +236,11 @@ export const constantRouterMap = [ ...@@ -236,11 +236,11 @@ export const constantRouterMap = [
name: '客户搜索设置', name: '客户搜索设置',
component: _import('apps/customerApp', 'memberSearchSet') component: _import('apps/customerApp', 'memberSearchSet')
}, },
{ // {
path: '/memberDetailSet', // path: '/memberDetailSet',
name: '客户详情设置', // name: '客户详情设置',
component: _import('apps/customerApp', 'memberDetailSet') // component: _import('apps/customerApp', 'memberDetailSet')
}, // },
{ {
path: '/memberTagSet', path: '/memberTagSet',
name: '客户标签设置', name: '客户标签设置',
...@@ -295,13 +295,13 @@ export const constantRouterMap = [ ...@@ -295,13 +295,13 @@ export const constantRouterMap = [
{ {
path: '/systemReport', path: '/systemReport',
name: '系统报表', name: '系统报表',
component: _import('apps/cloudDaily', 'systemReport') component: _import('apps/cloudDaily', 'daily-setting')
},
{
path: '/customReport',
name: '自定义报表',
component: _import('apps/cloudDaily', 'customReport')
}, },
// {
// path: '/customReport',
// name: '自定义报表',
// component: _import('apps/cloudDaily', 'customReport')
// },
{ {
path: '/customReportSet', path: '/customReportSet',
name: '新增自定义报表设置', name: '新增自定义报表设置',
......
...@@ -14,7 +14,7 @@ ...@@ -14,7 +14,7 @@
<!-- <span>模板列表({{ tableData.length }}</span> --> <!-- <span>模板列表({{ tableData.length }}</span> -->
<span class="font-14 color-909399">注:创建自定义日报后才能触发并下发日报</span> <span class="font-14 color-909399">注:创建自定义日报后才能触发并下发日报</span>
</div> </div>
<div><el-button type="primary" @click="toCustomSet('')">新建模板</el-button></div> <div><el-button v-if="$getButtonLimit($buttonCode.addCustomReport)" :limit-code="$buttonCode.addCustomReport" type="primary" @click="toCustomSet('')">新建模板</el-button></div>
</div> </div>
<el-table class="select-table" ref="multipleTable" :data="tableData" tooltip-effect="dark" style="width: 100%"> <el-table class="select-table" ref="multipleTable" :data="tableData" tooltip-effect="dark" style="width: 100%">
<el-table-column label="模板名称" show-overflow-tooltip> <el-table-column label="模板名称" show-overflow-tooltip>
...@@ -32,12 +32,12 @@ ...@@ -32,12 +32,12 @@
<span v-if="scope.row.storeType == 4">托管门店</span> <span v-if="scope.row.storeType == 4">托管门店</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="操作"> <el-table-column label="操作" v-if="$getButtonLimit($buttonCode.copyCustomReport) || $getButtonLimit($buttonCode.editCustomReport) || $getButtonLimit($buttonCode.delCustomReport)">
<template slot-scope="scope"> <template slot-scope="scope">
<!-- <el-button type="text" @click="handlePreview(scope.$index, scope.row)">预览</el-button> --> <!-- <el-button type="text" @click="handlePreview(scope.$index, scope.row)">预览</el-button> -->
<el-button type="text" @click="handleCopy(scope.$index, scope.row)">复制</el-button> <el-button v-if="$getButtonLimit($buttonCode.copyCustomReport)" :limit-code="$buttonCode.copyCustomReport" type="text" @click="handleCopy(scope.$index, scope.row)">复制</el-button>
<el-button type="text" @click="handleEdit(scope.$index, scope.row)">编辑</el-button> <el-button v-if="$getButtonLimit($buttonCode.editCustomReport)" :limit-code="$buttonCode.editCustomReport" type="text" @click="handleEdit(scope.$index, scope.row)">编辑</el-button>
<el-button type="text" @click="handleDelete(scope.$index, scope.row)">删除</el-button> <el-button v-if="$getButtonLimit($buttonCode.delCustomReport)" :limit-code="$buttonCode.delCustomReport" type="text" @click="handleDelete(scope.$index, scope.row)">删除</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
......
...@@ -560,13 +560,6 @@ export default { ...@@ -560,13 +560,6 @@ export default {
} }
return Math.ceil(len); return Math.ceil(len);
}, },
/**
* 返回
*/
returnBack() {
const that = this;
that.changeRoute(`/customReport?brandId=${that.brandId}&appIcon=${that.$route.query.appIcon}`);
},
cloneItem(original) { cloneItem(original) {
const that = this; const that = this;
...@@ -994,7 +987,7 @@ export default { ...@@ -994,7 +987,7 @@ export default {
that.loadingBtn = false; that.loadingBtn = false;
if (resData.errorCode == 1) { if (resData.errorCode == 1) {
showMsg.showmsg('保存成功', 'success'); showMsg.showmsg('保存成功', 'success');
// that.changeRoute(`/customReport?brandId=${that.brandId}`); this.$router.go(-1);
return; return;
} }
errMsg.errorMsg(resData); errMsg.errorMsg(resData);
......
<template>
<el-tabs class="daily-setting" v-model="activeName">
<el-tab-pane label="系统报表" name="first">
<system-report></system-report>
</el-tab-pane>
<el-tab-pane label="自定义报表" name="second">
<custom-report></custom-report>
</el-tab-pane>
</el-tabs>
</template>
<script>
import SystemReport from './systemReport.vue';
import CustomReport from './customReport.vue';
export default {
name: 'DailySetting',
components: { SystemReport, CustomReport },
data() {
return {
activeName: 'first'
};
}
};
</script>
<style lang="scss" scoped>
.daily-setting.el-tabs >>> .el-tabs__header {
margin-bottom: 0;
}
</style>
...@@ -7,8 +7,9 @@ ...@@ -7,8 +7,9 @@
* @LastEditTime: 2020-09-25 10:17:45 * @LastEditTime: 2020-09-25 10:17:45
--> -->
<template> <template>
<div class="template-wrap" :style="{ minHeight: bodyHeight }"> <div class="template-wrap">
<div class="template-contain"> <div class="template-contain">
<div class="template-cell-title font-14 color-303133">系统字段</div>
<!-- 头部标题 --> <!-- 头部标题 -->
<div class="template-head"> <div class="template-head">
<div class="template-title flex-1"> <div class="template-title flex-1">
...@@ -20,16 +21,15 @@ ...@@ -20,16 +21,15 @@
</div> </div>
</div> </div>
<div class="template-btns flex-1 flex-r"> <div class="template-btns flex-1 flex-r">
<el-button type="primary" plain @click="templateSet">模板设置</el-button> <el-button type="primary" plain v-if="$getButtonLimit($buttonCode.settingSystemReport)" :limit-code="$buttonCode.settingSystemReport" @click="templateSet">模板设置</el-button>
<!-- <el-button type="primary" plain @click="saveAndBack('preview')">预览</el-button> --> <!-- <el-button type="primary" plain @click="saveAndBack('preview')">预览</el-button> -->
<el-button type="primary" :loading="loadingBtn" @click="saveAndBack('save')">保存并启用</el-button> <el-button type="primary" v-if="$getButtonLimit($buttonCode.saveSystemReport)" :limit-code="$buttonCode.saveSystemReport" :loading="loadingBtn" @click="saveAndBack('save')">保存并启用</el-button>
</div> </div>
</div> </div>
<!-- 模板body --> <!-- 模板body -->
<div class="template-body"> <div class="template-body">
<!-- 左侧 --> <!-- 左侧 -->
<div class="template-cell template-cell-l system-template-tab"> <div class="template-cell template-cell-l system-template-tab">
<div class="template-cell-title font-14 color-303133">系统字段</div>
<!-- tab 切换 --> <!-- tab 切换 -->
<el-tabs v-model="activeName"> <el-tabs v-model="activeName">
<el-tab-pane label="卡片" name="first"> <el-tab-pane label="卡片" name="first">
...@@ -157,7 +157,6 @@ export default { ...@@ -157,7 +157,6 @@ export default {
// right tab // right tab
rightName: 'first', rightName: 'first',
dialogVisible: false, dialogVisible: false,
bodyHeight: (document.documentElement.clientHeight || document.body.clientHeight) - 277 + 'px',
// option // option
isDragging: false, isDragging: false,
delayedDragging: false, delayedDragging: false,
...@@ -653,26 +652,26 @@ export default { ...@@ -653,26 +652,26 @@ export default {
color: #2f54eb; color: #2f54eb;
} }
.template-wrap { .template-wrap {
width: 100%; /*height: 100%;*/ width: 100%;
min-height: 560px; padding: 20px;
padding: 0;
margin: 0; margin: 0;
background: #fff; background: #fff;
box-sizing: border-box;
.b-t-1 { .b-t-1 {
border-top: 1px solid #e4e7ed; border-top: 1px solid #e4e7ed;
} }
.template-contain { .template-contain {
min-width: 1200px; min-width: 1200px;
} }
.template-cell-title {
font-weight: bold;
margin-bottom: 20px;
}
.template-head { .template-head {
display: -webkit-box;
display: -webkit-flex;
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
height: 60px; padding: 0;
padding: 0 20px;
align-items: center; align-items: center;
border-bottom: 1px solid #e4e7ed;
.flex-1 { .flex-1 {
-webkit-flex: 1; -webkit-flex: 1;
-moz-flex: 1; -moz-flex: 1;
...@@ -714,7 +713,7 @@ export default { ...@@ -714,7 +713,7 @@ export default {
overflow: hidden; overflow: hidden;
.el-tab-pane { .el-tab-pane {
height: calc(100vh - 225px); height: calc(100vh - 225px);
overflow-y: scroll; overflow-y: auto;
} /* 左侧 */ } /* 左侧 */
.template-cell-l { .template-cell-l {
width: 420px; width: 420px;
...@@ -723,13 +722,11 @@ export default { ...@@ -723,13 +722,11 @@ export default {
float: left; float: left;
height: calc(100vh - 190px); height: calc(100vh - 190px);
padding-top: 16px; /* border-right: 2px solid #E4E7ED; */ padding-top: 16px; /* border-right: 2px solid #E4E7ED; */
border-right: 2px solid #E4E7ED; // border-right: 2px solid #E4E7ED;
.template-cell-title {
font-weight: bold;
padding-left: 20px;
margin-bottom: 12px;
}
.el-tabs { .el-tabs {
>>> .el-tabs__header {
margin-bottom: 20px;
}
>>> .el-tabs__item { >>> .el-tabs__item {
/* // width: 50%; // width: 175px */ /*padding: 0;*/ /* */ /* color: rgba(255, 255, 255, 0.5); */ /* // width: 50%; // width: 175px */ /*padding: 0;*/ /* */ /* color: rgba(255, 255, 255, 0.5); */
&.is-active { &.is-active {
......
...@@ -39,7 +39,7 @@ ...@@ -39,7 +39,7 @@
</el-form-item> </el-form-item>
</el-form> </el-form>
<hb-form-bottom> <hb-form-bottom>
<el-button @click="$router.go(-1)">取消</el-button> <el-button @click="$router.go(-1)">返回</el-button>
<el-button type="primary" :loading="loading" @click="onSave">保 存</el-button> <el-button type="primary" :loading="loading" @click="onSave">保 存</el-button>
</hb-form-bottom> </hb-form-bottom>
</div> </div>
......
...@@ -13,18 +13,23 @@ ...@@ -13,18 +13,23 @@
--> -->
<template> <template>
<div class="app-detail-wrap"> <div class="app-detail-wrap">
<div class="app-detail-pane border-box p-20"> <el-form>
<el-checkbox v-model="myCustomData.searchFlag">允许全品牌搜索</el-checkbox> <el-form-item>
<div class="m-t-46"> <el-checkbox v-model="myCustomData.searchFlag" :true-label="1" :false-label="0">允许全品牌搜索</el-checkbox>
<el-button v-if="$getButtonLimit($buttonCode.searchSetSave)" :limit-code="$buttonCode.searchSetSave" type="primary" :loading="loading" @click="submit('searchFlag')" :disabled="$store.state.wxEnterpriseType">保 存</el-button> </el-form-item>
</div> <el-form-item>
<el-checkbox v-model="myCustomData.handoverFlag" :true-label="1" :false-label="0">离职继承</el-checkbox>
<div class="set-tip-text">保存勾选项后,店长可以选择离职的导购名下的好友会员,选择离职继承</div>
</el-form-item>
</el-form>
<div class="m-t-46">
<el-button v-if="$getButtonLimit($buttonCode.searchSetSave)" :limit-code="$buttonCode.searchSetSave" type="primary" :loading="loading" @click="setData">保 存</el-button>
</div> </div>
</div> </div>
</template> </template>
<script> <script>
import showMsg from '@/common/js/showmsg'; import showMsg from '@/common/js/showmsg';
import errMsg from '@/common/js/error'; import errMsg from '@/common/js/error';
import { _debounce } from '@/common/js/public';
import { postRequest } from '@/api/api'; import { postRequest } from '@/api/api';
export default { export default {
name: 'app-detail', name: 'app-detail',
...@@ -38,173 +43,71 @@ export default { ...@@ -38,173 +43,71 @@ export default {
}, },
data() { data() {
return { return {
projectName: '', // 当前项目名
wxEnterpriseRelatedId: JSON.parse(sessionStorage.getItem('userInfos')).wxEnterpriseId, wxEnterpriseRelatedId: JSON.parse(sessionStorage.getItem('userInfos')).wxEnterpriseId,
myCustomData: { myCustomData: {
searchFlag: false searchFlag: 0,
handoverFlag: 0
}, },
activeId: '1',
loading: false loading: false
}; };
}, },
methods: { methods: {
/** /**
* 保存
*/
submit: _debounce(function(type) {
const that = this;
that.loading = true;
that.setData(type);
}, 500),
/**
* 保存-API * 保存-API
*/ */
setData(type) { setData() {
const that = this;
let para = { let para = {
enterpriseId: that.brandId, enterpriseId: this.brandId,
wxEnterpriseRelatedId: that.wxEnterpriseRelatedId wxEnterpriseRelatedId: this.wxEnterpriseRelatedId
// enterpriseId: JSON.parse(localStorage.getItem('userInfos')).enterpriseId // enterpriseId: JSON.parse(localStorage.getItem('userInfos')).enterpriseId
}; };
let url; para.searchFlag = this.myCustomData.searchFlag;
if (type != 'showFlag') { para.handoverFlag = this.myCustomData.handoverFlag;
para[type] = !!that.myCustomData[type] ? 1 : 0;
url = '/haoban-app-customer-web/customer/save-online-chat-setting';
if (type === 'searchFlag') {
url = '/haoban-app-customer-web/customer/save-customer-setting';
}
}
postRequest(url, para) postRequest('/haoban-app-customer-web/customer/save-customer-setting', para).then(res => {
.then(res => { let resData = res.data;
let resData = res.data; if (resData.errorCode == 1) {
that.loading = false; showMsg.showmsg('保存成功', 'success');
if (resData.errorCode == 1) { return;
showMsg.showmsg('保存成功', 'success'); }
return; errMsg.errorMsg(resData);
} });
errMsg.errorMsg(resData);
})
.catch(function(error) {
that.loading = false;
that.$message.error({
duration: 1000,
message: error.message
});
});
},
/**
* 改变
*/
changeAllowGuide(e) {
const that = this;
that.myCustomData.allowGuideMobile = e;
that.myCustomData.allowGuideMessage = e;
that.myCustomData.allowGuideOnlineChat = e;
},
/**
* 改变联系
*/
changeContact() {
const that = this;
if (!that.myCustomData.allowGuideMobile && !that.myCustomData.allowGuideMessage && !that.myCustomData.allowGuideOnlineChat) {
that.myCustomData.allowGuideContact = false;
}
}, },
/** /**
* 获取全品牌搜索设置数据 * 获取全品牌搜索设置数据
*/ */
getCustomerSet(brandId) { getCustomerSet() {
const that = this; const para = {
let para = { enterpriseId: this.brandId,
enterpriseId: that.brandId, wxEnterpriseRelatedId: this.wxEnterpriseRelatedId
wxEnterpriseRelatedId: that.wxEnterpriseRelatedId
}; };
postRequest('/haoban-app-customer-web/customer/find-customer-setting', para) postRequest('/haoban-app-customer-web/customer/find-customer-setting', para).then(res => {
.then(res => { const { errorCode, result } = res.data || {};
let resData = res.data; if (errorCode == 1) {
if (resData.errorCode == 1) { if (result) {
if (!!resData.result) { this.myCustomData.searchFlag = result.searchFlag;
that.myCustomData.searchFlag = !!resData.result.searchFlag ? true : false; this.myCustomData.handoverFlag = result.handoverFlag;
}
return;
} }
errMsg.errorMsg(resData); return;
}) }
.catch(function(error) { errMsg.errorMsg(res.data);
that.$message.error({ });
duration: 1000,
message: error.message
});
});
}
},
watch: {
brandId: function(newData, oldData) {
const that = this;
that.getCustomerSet(that.brandId);
} }
}, },
mounted() { mounted() {
const that = this; this.getCustomerSet();
that.getCustomerSet(that.brandId); }
},
components: {}
}; };
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.w-500 { .app-detail-wrap {
width: 500px;
}
.w-195 {
width: 195px;
}
.color-1890ff {
color: #2f54eb;
}
.p-20 {
padding: 20px; padding: 20px;
} }
.set-tip-text {
.p-l-38 { padding: 0 0 0 25px;
padding-left: 38px; font-size: 12px;
} font-weight: 400;
color: #909399;
.p-l-199 { line-height: 17px;
padding-left: 199px;
}
.app-detail-wrap {
height: 100%;
background: #fff;
.el-tabs {
background: #fff;
>>> .el-tabs__nav-wrap {
/* height: 48px;
line-height: 48px; */
&::after {
height: 1px;
}
/* .el-tabs__nav-scroll {
padding-left: 20px;
} */
}
}
.condition-tip {
width: 740px;
.el-alert--info {
background: #e6f7ff;
border: 1px solid rgba(145, 213, 255, 1);
.el-alert__icon {
font-size: 12px;
}
}
}
} }
</style> </style>
...@@ -46,7 +46,7 @@ ...@@ -46,7 +46,7 @@
</div> </div>
<div class="btn-group"> <div class="btn-group">
<el-button v-if="$getButtonLimit($buttonCode.syncTagLog)" :limit-code="$buttonCode.syncTagLog" @click="$router.push('/syncHistory')">同步历史</el-button> <el-button v-if="$getButtonLimit($buttonCode.syncTagLog)" :limit-code="$buttonCode.syncTagLog" @click="$router.push('/syncHistory')">同步历史</el-button>
<el-button v-if="$getButtonLimit($buttonCode.willSyncTag)" :limit-code="$buttonCode.willSyncTag" @click="drawer = true" type="primary" :disabled="!canSync || !canUseCount" :class="['sync-btn', isShake ? 'shake' : '']">待开启同步标签( {{ tagIds.length }}</el-button><span v-if="canUseCount === 0" class="no-use-count">本月同步次数已用尽</span> <el-button @click="drawer = true" type="primary" :disabled="!canSync || !canUseCount" :class="['sync-btn', isShake ? 'shake' : '']">待开启同步标签( {{ tagIds.length }}</el-button><span v-if="canUseCount === 0" class="no-use-count">本月同步次数已用尽</span>
</div> </div>
</div> </div>
<div class="tag-content-bottom"> <div class="tag-content-bottom">
......
...@@ -69,7 +69,7 @@ ...@@ -69,7 +69,7 @@
<template slot-scope="scope"> <template slot-scope="scope">
<el-button type="text" v-if="$getButtonLimit($buttonCode.checkAuth)" :limit-code="$buttonCode.checkAuth" @click="AddAuthMerchant(scope.row)">查看授权设置</el-button> <el-button type="text" v-if="$getButtonLimit($buttonCode.checkAuth)" :limit-code="$buttonCode.checkAuth" @click="AddAuthMerchant(scope.row)">查看授权设置</el-button>
<el-button v-if="$getButtonLimit($buttonCode.bindStoreList)" :limit-code="$buttonCode.bindStoreList" type="text" @click="toStoreList(scope.row)">绑定门店列表</el-button> <el-button v-if="$getButtonLimit($buttonCode.bindStoreList)" :limit-code="$buttonCode.bindStoreList" type="text" @click="toStoreList(scope.row)">绑定门店列表</el-button>
<el-button slot="reference" type="text" @click="refreshStoreBind(scope.row)">刷新门店 </el-button> <el-button v-if="$getButtonLimit($buttonCode.refreshStore)" :limit-code="$buttonCode.refreshStore" type="text" @click="refreshStoreBind(scope.row)">刷新门店 </el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
......
...@@ -47,9 +47,9 @@ ...@@ -47,9 +47,9 @@
<span :class="['span-dot', scope.row.statusFlag == 4 ? 'bg-52c41a' : 'bg-f5222d']"></span><span class="font-14 color-606266">{{ scope.row.statusFlag == 4 ? '成功' : scope.row.statusFlag == 5 ? '完成有错误' : scope.row.statusFlag == 6 ? '有错误关闭' : '' }}</span> <span :class="['span-dot', scope.row.statusFlag == 4 ? 'bg-52c41a' : 'bg-f5222d']"></span><span class="font-14 color-606266">{{ scope.row.statusFlag == 4 ? '成功' : scope.row.statusFlag == 5 ? '完成有错误' : scope.row.statusFlag == 6 ? '有错误关闭' : '' }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="" label="操作" show-overflow-tooltip> <el-table-column prop="" label="操作" show-overflow-tooltip v-if="$getButtonLimit($buttonCode.checkLog)">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button v-if="scope.row.statusFlag == 5 || scope.row.statusFlag == 6" type="text" @click="toShowLog(scope.$index, scope.row)">查看失败日志</el-button> <el-button v-if="(scope.row.statusFlag == 5 || scope.row.statusFlag == 6) && $getButtonLimit($buttonCode.checkLog)" :limit-code="$buttonCode.checkLog" type="text" @click="toShowLog(scope.$index, scope.row)">查看失败日志</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
......
...@@ -15,7 +15,10 @@ ...@@ -15,7 +15,10 @@
<div class="material-body flex"> <div class="material-body flex">
<div class="material-left"> <div class="material-left">
<div class="material-left-add m-t-10 text-center"> <div class="material-left-add m-t-10 text-center">
<div class="add-group font-14 color-909399 cursor-pointer line-h-32" @click="addGroup"><span class="el-icon-plus"></span><span class="p-l-5">新建分组</span></div> <div class="add-group font-14 color-909399 cursor-pointer line-h-32" v-if="$getButtonLimit($buttonCode.addMaterialGroup)" :limit-code="$buttonCode.addMaterialGroup" @click="addGroup">
<span class="el-icon-plus"></span>
<span class="p-l-5">新建分组</span>
</div>
</div> </div>
<div class="group-body"> <div class="group-body">
<div :class="['no-group m-t-10 line-h-32 font-14 color-606266 cursor-pointer', currentCategoryId == '-1' ? 'current-group' : '']" @click="selectNoGroup"><span style="color: transparent;" :class="['color-c0c4cc font-12 cursor-pointer p-l-10 el-icon-caret-bottom el-icon-caret-right']"></span>全部分组</div> <div :class="['no-group m-t-10 line-h-32 font-14 color-606266 cursor-pointer', currentCategoryId == '-1' ? 'current-group' : '']" @click="selectNoGroup"><span style="color: transparent;" :class="['color-c0c4cc font-12 cursor-pointer p-l-10 el-icon-caret-bottom el-icon-caret-right']"></span>全部分组</div>
...@@ -24,11 +27,11 @@ ...@@ -24,11 +27,11 @@
<li class="group-cell" :key="index + 'group'"> <li class="group-cell" :key="index + 'group'">
<div class="cursor-pointer group-cell-div" @click.stop="selectGroup(item)"> <div class="cursor-pointer group-cell-div" @click.stop="selectGroup(item)">
<span :class="['color-c0c4cc font-12 cursor-pointer', item.children.length ? 'color-c0c4cc' : 'color-transparent', item.expand ? 'el-icon-caret-bottom' : 'el-icon-caret-right']"></span><span :class="['group-name font-14 color-606266 p-l-10', currentCategoryId == item.categoryId ? 'current-group' : '']">{{ item.categoryName }}</span> <span :class="['color-c0c4cc font-12 cursor-pointer', item.children.length ? 'color-c0c4cc' : 'color-transparent', item.expand ? 'el-icon-caret-bottom' : 'el-icon-caret-right']"></span><span :class="['group-name font-14 color-606266 p-l-10', currentCategoryId == item.categoryId ? 'current-group' : '']">{{ item.categoryName }}</span>
<el-popover placement="bottom" width="75" trigger="hover" popper-class="group-popover"> <el-popover placement="bottom" width="75" trigger="hover" popper-class="group-popover" v-if="$getButtonLimit($buttonCode.addMaterialGroup) || $getButtonLimit($buttonCode.editMaterialGroup) || $getButtonLimit($buttonCode.delMaterialGroup)">
<ul> <ul>
<li class="line-h-32 font-14 color-606266" @click.stop="addChildGroup(item)">新增子分组</li> <li class="line-h-32 font-14 color-606266" v-if="$getButtonLimit($buttonCode.addMaterialGroup)" :limit-code="$buttonCode.addMaterialGroup" @click.stop="addChildGroup(item)">新增子分组</li>
<li class="line-h-32 font-14 color-606266" @click.stop="editGroup(item)">编辑</li> <li class="line-h-32 font-14 color-606266" v-if="$getButtonLimit($buttonCode.editMaterialGroup)" :limit-code="$buttonCode.editMaterialGroup" @click.stop="editGroup(item)">编辑</li>
<li v-if="!item.children.length" class="line-h-32 font-14 color-606266" @click.stop="delGroup(item)">删除</li> <li v-if="!item.children.length && $getButtonLimit($buttonCode.delMaterialGroup)" :limit-code="$buttonCode.delMaterialGroup" class="line-h-32 font-14 color-606266" @click.stop="delGroup(item)">删除</li>
</ul> </ul>
<span class="iconfont-hb3 icongengduo color-afaeae cursor-pointer operate-icon" slot="reference"></span> <span class="iconfont-hb3 icongengduo color-afaeae cursor-pointer operate-icon" slot="reference"></span>
</el-popover> </el-popover>
......
...@@ -56,6 +56,7 @@ ...@@ -56,6 +56,7 @@
<el-table-column prop="updateTime" label="更新时间" width="180" show-overflow-tooltip> <el-table-column prop="updateTime" label="更新时间" width="180" show-overflow-tooltip>
<template slot-scope="{ row }">{{ row.updateTime | formatTimeStamp }}</template> <template slot-scope="{ row }">{{ row.updateTime | formatTimeStamp }}</template>
</el-table-column> </el-table-column>
<el-table-column prop="creatorName" label="创建人" width="120" show-overflow-tooltip> </el-table-column>
<el-table-column prop="operatorName" label="操作人" width="120" show-overflow-tooltip> </el-table-column> <el-table-column prop="operatorName" label="操作人" width="120" show-overflow-tooltip> </el-table-column>
<el-table-column prop="suitDepartmentName" label="适用范围" width="300"> <el-table-column prop="suitDepartmentName" label="适用范围" width="300">
<template slot-scope="{ row }"> <template slot-scope="{ row }">
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
<template> <template>
<div class="unreview-wrap common-set-wrap"> <div class="unreview-wrap common-set-wrap">
<div class="right-content"> <div class="right-content">
<div class="right-box" style="min-height: calc(100vh - 126px)"> <div class="right-box">
<!-- <div> <!-- <div>
<el-switch v-model="storeSwitch" active-text="" inactive-text=""> </el-switch> <el-switch v-model="storeSwitch" active-text="" inactive-text=""> </el-switch>
<el-tooltip content="开启后,所有门店在小程序端修改门店资料需要审核通过后才能修改" placement="top"> <el-tooltip content="开启后,所有门店在小程序端修改门店资料需要审核通过后才能修改" placement="top">
...@@ -31,7 +31,7 @@ ...@@ -31,7 +31,7 @@
<div class="font-14 color-909399 set-tip-item">开启后,企业微信成员在好办小程序店长删除或新增导购需要进行审核</div> <div class="font-14 color-909399 set-tip-item">开启后,企业微信成员在好办小程序店长删除或新增导购需要进行审核</div>
</div> </div>
<div class="m-t-46 m-l-25"> <div class="m-t-46 m-l-25">
<el-button type="primary" :loading="loading" @click="postData">保 存</el-button> <el-button v-if="$getButtonLimit($buttonCode.saveApplySetting)" :limit-code="$buttonCode.saveApplySetting" type="primary" :loading="loading" @click="postData">保 存</el-button>
</div> </div>
</div> </div>
</div> </div>
...@@ -117,11 +117,7 @@ export default { ...@@ -117,11 +117,7 @@ export default {
} }
.right-content { .right-content {
min-height: calc(100% - 126px); padding: 20px;
.right-box {
background: #fff;
min-height: 500px;
}
} }
.m-l-25 { .m-l-25 {
margin-left: 25px; margin-left: 25px;
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
<template> <template>
<div class="reviewed-wrap common-set-wrap"> <div class="reviewed-wrap common-set-wrap">
<div class="right-content"> <div class="right-content">
<div class="right-box" style="min-height: calc(100vh - 126px)"> <div class="right-box">
<div class="reviewed-body-head"> <div class="reviewed-body-head">
<el-input class="w-250" maxlength="50" placeholder="请输入提交人姓名或门店名称" prefix-icon="el-icon-search" v-model="searchValue" clearable @clear="clearSearch" @keyup.native="value => searchEnterFun(value, searchInput)"> </el-input><el-select class="w-130 m-l-10" v-model="filterValue" placeholder="全部状态" @change="getTableList"> <el-option v-for="item in filterOptions" :key="item.value" :label="item.label" :value="item.value"> </el-option> </el-select <el-input class="w-250" maxlength="50" placeholder="请输入提交人姓名或门店名称" prefix-icon="el-icon-search" v-model="searchValue" clearable @clear="clearSearch" @keyup.native="value => searchEnterFun(value, searchInput)"> </el-input><el-select class="w-130 m-l-10" v-model="filterValue" placeholder="全部状态" @change="getTableList"> <el-option v-for="item in filterOptions" :key="item.value" :label="item.label" :value="item.value"> </el-option> </el-select
><el-select class="w-168 m-l-10" v-model="filterBrand" placeholder="全部品牌" @change="getTableList"> ><el-select class="w-168 m-l-10" v-model="filterBrand" placeholder="全部品牌" @change="getTableList">
...@@ -569,11 +569,8 @@ export default { ...@@ -569,11 +569,8 @@ export default {
} }
.right-content { .right-content {
/*width: 100%;*/ padding: 20px;
min-height: calc(100% - 126px);
.right-box { .right-box {
background: #fff;
min-height: 500px;
.w-280 { .w-280 {
width: 280px; width: 280px;
} }
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
<template> <template>
<div class="unreview-wrap common-set-wrap"> <div class="unreview-wrap common-set-wrap">
<div class="right-content"> <div class="right-content">
<div class="right-box" style="min-height: calc(100vh - 126px)"> <div class="right-box">
<div class="reviewed-body-head flex flex-space-between"> <div class="reviewed-body-head flex flex-space-between">
<div> <div>
<el-input class="w-250" maxlength="50" placeholder="请输入提交人姓名或门店名称" prefix-icon="el-icon-search" v-model="searchValue" clearable @clear="clearSearch" @keyup.native="value => searchEnterFun(value, searchInput)"> </el-input><el-select v-model="filterValue" placeholder="全部事项" @change="getTableList" class="w-130 m-l-10"> <el-option v-for="item in filterOptions" :key="item.value" :label="item.label" :value="item.value"> </el-option> </el-select <el-input class="w-250" maxlength="50" placeholder="请输入提交人姓名或门店名称" prefix-icon="el-icon-search" v-model="searchValue" clearable @clear="clearSearch" @keyup.native="value => searchEnterFun(value, searchInput)"> </el-input><el-select v-model="filterValue" placeholder="全部事项" @change="getTableList" class="w-130 m-l-10"> <el-option v-for="item in filterOptions" :key="item.value" :label="item.label" :value="item.value"> </el-option> </el-select
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
<el-option v-for="item in brandOptions" :key="item.enterpriseId" :label="item.enterpriseName" :value="item.enterpriseId"> </el-option> <el-option v-for="item in brandOptions" :key="item.enterpriseId" :label="item.enterpriseName" :value="item.enterpriseId"> </el-option>
</el-select> </el-select>
</div> </div>
<el-button type="primary" @click="approveAll">批量同意</el-button> <el-button v-if="$getButtonLimit($buttonCode.multipleResolve)" :limit-code="$buttonCode.multipleResolve" type="primary" @click="approveAll">批量同意</el-button>
</div> </div>
<div class="reviewed-body-content"> <div class="reviewed-body-content">
<el-table ref="multipleTable" v-loading="loading" :data="tableData" tooltip-effect="dark" style="width: 100%" @selection-change="handleSelectionChange"> <el-table ref="multipleTable" v-loading="loading" :data="tableData" tooltip-effect="dark" style="width: 100%" @selection-change="handleSelectionChange">
...@@ -91,10 +91,10 @@ ...@@ -91,10 +91,10 @@
<div class="line-h-18">{{ scope.row.createTime | timeStampToHms }}</div> <div class="line-h-18">{{ scope.row.createTime | timeStampToHms }}</div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="操作" width="150"> <el-table-column label="操作" width="150" v-if="$getButtonLimit($buttonCode.singleResolve) || $getButtonLimit($buttonCode.singleReject)">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button @click="handleClick(scope.$index, scope.row)" type="text">同意</el-button> <el-button v-if="$getButtonLimit($buttonCode.singleResolve)" :limit-code="$buttonCode.singleResolve" @click="handleClick(scope.$index, scope.row)" type="text">同意</el-button>
<el-button @click="handleClick(scope.$index, scope.row, 'refuse')" type="text">拒绝</el-button> <el-button v-if="$getButtonLimit($buttonCode.singleReject)" :limit-code="$buttonCode.singleReject" @click="handleClick(scope.$index, scope.row, 'refuse')" type="text">拒绝</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
...@@ -798,10 +798,8 @@ export default { ...@@ -798,10 +798,8 @@ export default {
} }
.right-content { .right-content {
min-height: calc(100% - 126px); padding: 20px;
.right-box { .right-box {
background: #fff;
min-height: 500px;
.w-280 { .w-280 {
width: 280px; width: 280px;
} }
......
...@@ -65,9 +65,9 @@ import taskViewDetail from '@/components/app/taskViewDetail.vue'; ...@@ -65,9 +65,9 @@ import taskViewDetail from '@/components/app/taskViewDetail.vue';
<el-table-column prop="" label="逾期中/逾期失效" show-overflow-tooltip> <el-table-column prop="" label="逾期中/逾期失效" show-overflow-tooltip>
<template slot-scope="scope">{{ scope.row.overdueCount || '--' }}/{{ scope.row.invalidCount || '--' }}</template> <template slot-scope="scope">{{ scope.row.overdueCount || '--' }}/{{ scope.row.invalidCount || '--' }}</template>
</el-table-column> </el-table-column>
<el-table-column label="操作" v-if="$getButtonLimit($buttonCode.checkTaskView)"> <el-table-column label="操作" v-if="$getButtonLimit($buttonCode.checkTaskDetail)">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button v-if="$getButtonLimit($buttonCode.checkTaskView)" :limit-code="$buttonCode.checkTaskView" type="text" @click="toDetail(scope.$index, scope.row)">查看详情</el-button> <el-button v-if="$getButtonLimit($buttonCode.checkTaskDetail)" :limit-code="$buttonCode.checkTaskDetail" type="text" @click="toDetail(scope.$index, scope.row)">查看详情</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
......
...@@ -81,7 +81,7 @@ ...@@ -81,7 +81,7 @@
</div> --> </div> -->
<div class="set-line-item"> <div class="set-line-item">
<span class="set-line-item_title font-14 color-606266 text-right"></span> <span class="set-line-item_title font-14 color-606266 text-right"></span>
<el-button type="primary" :loading="loadingBtn" @click="saveSet" :disabled="$store.state.wxEnterpriseType">保存</el-button> <el-button v-if="$getButtonLimit($buttonCode.saveTrafficTaskSet)" :limit-code="$buttonCode.saveTrafficTaskSet" type="primary" :loading="loadingBtn" @click="saveSet">保存</el-button>
</div> </div>
</div> </div>
......
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