Commit 44483e01 by caoyanzhi

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

parents fe21a344 de6c6a94
......@@ -11,8 +11,8 @@ module.exports = {
assign: ['分配', 1, 2],
},
memberTagSet: {
// 1.同步历史 (按钮,控制“同步记录”页面的所哟有操作权限)
syncTagLog: ['同步历史', 0, 0, 'syncHistory']
willSyncTag: ['待开启同步标签', 1, 2],
breakSyncTag: ['关闭同步', 1, 2]
},
// 客户展示设置
memberShowSet: {
......@@ -25,17 +25,17 @@ module.exports = {
},
memberGroupSet: {
// 1.会员分组失效后不展示(按钮)
groupExpire: ['分组失效后不展示', 1, 2],
groupExpire: ['客户分组列表-分组失效后不展示', 1, 2],
// 2.立即同步(按钮)
syncGroup: ['立即同步', 1, 2],
syncGroup: ['客户分组列表-立即同步', 1, 2],
// 1.新建模板 (按钮,控制“客户分组设置”新建页面内所有操作权限)
addGroupTemp: ['新建模板', 1, 0, 'addGroupTemplate'],
addGroupTemp: ['分组展示设置-新建模板', 1, 0, 'addGroupTemplate'],
// 2.编辑 (按钮,控制“客户分组设置”修改页面内所有操作权限)
editGroupTemp: ['编辑', 1, 0, 'editGroupTemplate'],
editGroupTemp: ['分组展示设置-编辑', 1, 0, 'editGroupTemplate'],
// 3.门店范围设置 (按钮,控制“门店范围设置”页面内所有操作权限)
setStoreArea: ['门店范围设置', 1, 0, 'storeRangeSet'],
setStoreArea: ['分组展示设置-门店范围设置', 1, 0, 'storeRangeSet'],
// 4.删除(按钮)
delGroupTemp: ['删除', 1, 1]
delGroupTemp: ['分组展示设置-删除', 1, 1]
},
memberSearchSet: {
// 1.保存(按钮)
......@@ -159,19 +159,19 @@ module.exports = {
saveTaskSet: ['保存', 1, 1]
},
// 云日报设置-系统报表
systemReport: {
'daily-setting': {
// 1.模板设置(按钮,控制“模板设置”弹窗内所有操作权限);
settingSystemReport: ['模板设置', 1, 2],
settingSystemReport: ['系统报表-模板设置', 1, 2],
// 2.保存并启用(按钮)
saveSystemReport: ['保存并启用', 1, 2],
saveSystemReport: ['系统报表-保存并启用', 1, 2],
// 1.新建模板(按钮,控制“新建模板”页面内所有操作权限);
addCustomReport: ['新建模板', 1, 0, 'customReportSet'],
addCustomReport: ['自定义报表-新建模板', 1, 0, 'customReportSet'],
// 2.复制(按钮,控制“新建模板”页面内所有操作权限);
copyCustomReport: ['复制', 1, 0, 'customReportCopy'],
copyCustomReport: ['自定义报表-复制', 1, 0, 'customReportCopy'],
// 3.编辑(按钮,控制“编辑模板”页面内所有操作权限);
editCustomReport: ['编辑', 1, 0, 'customReportEdit'],
editCustomReport: ['自定义报表-编辑', 1, 0, 'customReportEdit'],
// 4.删除(按钮)
delCustomReport: ['删除', 1, 1]
delCustomReport: ['自定义报表-删除', 1, 1]
},
monthList: {
// 1.门店月指标 (按钮,控制“门店月指标”页面内所有操作权限);
......
{"multipleAssign":"multipleAssign","assign":"assign","syncTagLog":"syncTagLog","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"}
\ No newline at end of file
......@@ -30,9 +30,9 @@ module.exports = [
{
menu: ['客户分组设置', 'memberGroupSet', 1],
children: [
{ menu: ['新建模板', 'addGroupTemplate', 1 ]},
{ menu: ['新建模板', 'addGroupTemplate', 1] },
{ menu: ['编辑模板', 'editGroupTemplate', 1] },
{ menu: ['门店范围设置', 'storeRangeSet', 1] },
{ menu: ['门店范围设置', 'storeRangeSet', 1] }
]
},
{ menu: ['客户管理设置', 'memberSearchSet', 1] },
......@@ -148,7 +148,7 @@ module.exports = [
{ menu: ['云日报导出', 'dailyExport', 1] },
{ menu: ['任务下发设置', 'taskAssign', 1] },
{
menu: ['云日报设置', 'systemReport', 1],
menu: ['云日报设置', 'daily-setting', 1],
children: [
{ menu: ['新建模板', 'customReportSet', 1]},
{ menu: ['复制模板', 'customReportCopy', 1]},
......@@ -215,7 +215,7 @@ module.exports = [
{
menu: ['导购设置', '', 1, 'icondaogoushezhi'],
children: [
{ menu: ['导购设置', 'guide-setting', 1] }
{menu: ['导购设置', 'guide-setting', 1]}
]
},
{
......
No preview for this file type
......@@ -298,15 +298,10 @@ export const constantRouterMap = [
component: _import('apps/cloudDaily', 'taskAssign')
},
{
path: '/systemReport',
path: '/daily-setting',
name: '系统报表',
component: _import('apps/cloudDaily', 'daily-setting')
component: _import('apps/cloudDaily', 'daily-setting'),
},
// {
// path: '/customReport',
// name: '自定义报表',
// component: _import('apps/cloudDaily', 'customReport')
// },
{
path: '/customReportSet',
name: '新增自定义报表设置',
......
......@@ -195,25 +195,11 @@ export default {
});
}
},
watch: {
brandId: function(newData, oldData) {
let that = this;
if (!!newData) {
that.activeBrand = newData;
that.getData();
}
}
},
mounted() {
document.documentElement.style.backgroundColor = '#f0f2f5';
this.$emit('showTab', '32');
if (!!this.brandId) {
this.getData();
}
},
destroyed() {
document.documentElement.style.backgroundColor = '#fff';
},
components: {
appDetail,
commonDetailTop,
......
<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>
<div>
<el-tabs class="daily-setting" v-model="activeName">
<el-tab-pane label="系统报表" name="first">
<system-report :brand-id="brandId"></system-report>
</el-tab-pane>
<el-tab-pane label="自定义报表" name="second">
<custom-report :brand-id="brandId"></custom-report>
</el-tab-pane>
</el-tabs>
</div>
</template>
<script>
......@@ -14,6 +16,12 @@ import SystemReport from './systemReport.vue';
import CustomReport from './customReport.vue';
export default {
name: 'DailySetting',
props: {
brandId: {
type: String,
default: ''
}
},
components: { SystemReport, CustomReport },
data() {
return {
......
......@@ -418,6 +418,28 @@ export default {
if (!!that.brandId) {
that.getTableList();
}
let start = new Date();
start = new Date(start.setMonth(start.getMonth() - 3));
const end = new Date();
const startDate = [];
const endDate = [];
startDate.push(start.getFullYear());
startDate.push((start.getMonth() + 1).toString().padStart(2, '0'));
startDate.push(
start
.getDate()
.toString()
.padStart(2, '0')
);
endDate.push(end.getFullYear());
endDate.push((end.getMonth() + 1).toString().padStart(2, '0'));
endDate.push(
end
.getDate()
.toString()
.padStart(2, '0')
);
this.conditionObj.dateRange = [startDate.join('-'), endDate.join('-')];
},
components: {
multipleDel,
......
......@@ -290,7 +290,6 @@ export default {
mounted() {
const that = this;
that.$emit('showTab', '12');
sessionStorage.setItem('memberGroupSet', 'second');
if (that.brandId && !!that.$route.query.templateId) {
that.getTemplateSet(that.brandId);
}
......
<!--
* @Descripttion: 当前组件信息
* @version: 1.0.0
* @Author: 无尘
* @Date: 2019-03-20 14:36:37
* @LastEditors: 无尘
* @LastEditTime: 2020-08-26 10:01:07
-->
<!--
我的客户应用:
<app-detail ></app-detail>
-->
<template>
<div class=" border-box p-lbr-20">
<div class="flex flex-space-between">
<div></div>
<div>
<span class="font-12 color-909399">最多新建20个模板</span>
<el-button v-if="$getButtonLimit($buttonCode.addGroupTemp)" :limit-code="$buttonCode.addGroupTemp" :disabled="$store.state.wxEnterpriseType || templateList.length >= 20" class="m-l-20" type="primary" @click="addTemplate">新建模版</el-button>
</div>
</div>
<div class="m-t-20">
<el-table class="select-table" ref="tempTable" v-loading="loading" :data="templateList" tooltip-effect="dark" :style="{ width: '100%' }">
<el-table-column label="模板名称" show-overflow-tooltip>
<template slot-scope="scope">{{ scope.row.templateName }}</template>
</el-table-column>
<el-table-column label="模板id" show-overflow-tooltip>
<template slot-scope="scope">{{ scope.row.templateId }}</template>
</el-table-column>
<el-table-column label="编辑人" show-overflow-tooltip>
<template slot-scope="scope">{{ scope.row.editPerson }}</template>
</el-table-column>
<el-table-column prop="" label="最近编辑时间" show-overflow-tooltip>
<template slot-scope="scope">
<div class="line-18">{{ scope.row.editTime | timeStampToYmd }}</div>
<div class="line-18">{{ scope.row.editTime | timeStampToHms }}</div>
</template>
</el-table-column>
<el-table-column label="操作" v-if="$getButtonLimit($buttonCode.editGroupTemp) || $getButtonLimit($buttonCode.setStoreArea) || $getButtonLimit($buttonCode.delGroupTemp)">
<template slot-scope="scope">
<el-button v-if="$getButtonLimit($buttonCode.editGroupTemp)" :limit-code="$buttonCode.editGroupTemp" @click="toEdit(scope.$index, scope.row)" type="text" :disabled="$store.state.wxEnterpriseType">编辑</el-button>
<el-button v-if="$getButtonLimit($buttonCode.setStoreArea)" :limit-code="$buttonCode.setStoreArea" @click="toStore(scope.$index, scope.row)" type="text" :disabled="$store.state.wxEnterpriseType">门店范围设置</el-button>
<el-button v-if="$getButtonLimit($buttonCode.delGroupTemp)" :limit-code="$buttonCode.delGroupTemp" @click="toDel(scope.$index, scope.row)" type="text" :disabled="$store.state.wxEnterpriseType">删除</el-button>
</template>
</el-table-column>
</el-table>
</div>
</div>
</template>
<script>
import showMsg from '@/common/js/showmsg';
import errMsg from '@/common/js/error';
import { postRequest } from '@/api/api';
export default {
name: 'app-detail',
props: {
brandId: {
type: String,
default: ''
}
},
data() {
return {
wxEnterpriseRelatedId: sessionStorage.getItem('userInfos') ? JSON.parse(sessionStorage.getItem('userInfos')).wxEnterpriseId : '',
loading: false,
// 模板
templateList: []
};
},
methods: {
/**
* 删除
*/
toDel(index, row) {
const that = this;
that
.$confirm('是否要删除选中的模板?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
})
.then(() => {
that.delTempList(row.templateId);
})
.catch(() => {});
},
/**
* 删除卡券
*/
delTempList(templateId) {
const that = this;
let para = {
templateId: templateId
};
postRequest('/haoban-app-customer-web/del-group-template', para)
.then(res => {
let resData = res.data;
if (resData.errorCode == 1) {
showMsg.showmsg('删除成功', 'success');
that.getTableList();
return;
}
errMsg.errorMsg(resData);
})
.catch(function(error) {
that.$message.error({
duration: 1000,
message: error.message
});
});
},
/**
* 编辑
*/
toEdit(index, row) {
const that = this;
that.$router.push(`/editGroupTemplate?templateId=${row.templateId}`);
},
/**
* 门店范围设置
*/
toStore(index, row) {
const that = this;
that.$router.push(`/storeRangeSet?templateId=${row.templateId}&brandId=${that.brandId}`);
},
/**
* 新增模板
*/
addTemplate() {
const that = this;
that.$router.push('/addGroupTemplate');
},
/**
* 获取模板
*/
getTableList() {
const that = this;
let para = {
enterpriseId: that.brandId,
wxEnterpriseRelatedId: that.wxEnterpriseRelatedId
};
postRequest('/haoban-app-customer-web/get-template-list', para)
.then(res => {
let resData = res.data;
if (resData.errorCode == 1) {
that.templateList = resData.result || [];
return;
}
errMsg.errorMsg(resData);
})
.catch(function(error) {
that.$message.error({
duration: 1000,
message: error.message
});
});
}
},
mounted() {
const that = this;
that.getTableList();
}
};
</script>
<style lang="scss" scoped>
.p-lbr-20 {
padding: 0 20px 20px 20px;
}
.m-l-20 {
margin-left: 20px;
}
</style>
......@@ -45,7 +45,6 @@
</el-select>
</div>
<div class="btn-group">
<el-button v-if="$getButtonLimit($buttonCode.syncTagLog)" :limit-code="$buttonCode.syncTagLog" @click="$router.push('/syncHistory')">同步历史</el-button>
<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>
......
......@@ -297,7 +297,6 @@ export default {
mounted() {
const that = this;
that.$emit('showTab', '12');
sessionStorage.setItem('memberGroupSet', 'second');
if (that.brandId) {
that.getTableList(that.brandId);
}
......
<template>
<div class="guide-setting">
<p class="app-auth-tip">设置导购可见应用</p>
<el-row>
<el-checkbox-group v-model="settingData.checked">
<el-col :span="3" v-for="el in allApps" :key="el.applicationId" style="margin-bottom: 12px">
<el-checkbox :label="el.applicationId">{{ el.applicationName }}</el-checkbox>
</el-col>
</el-checkbox-group>
</el-row>
<el-button class="save-btn" v-if="$getButtonLimit($buttonCode.saveAppsVisible)" :limit-code="$buttonCode.saveAppsVisible" :loading="loading" type="primary" @click="onSave">保存</el-button>
</div>
</template>
<script>
import { getRequest, postRequest } from '@/api/api.js';
import errorMsg from '@/common/js/error.js';
export default {
name: 'AppVisibleSetting',
data() {
return {
loading: false,
settingData: {
checked: []
},
allApps: []
};
},
created() {
this.getSetting();
},
methods: {
getSetting() {
getRequest('/haoban-manage3-web/application-open-close-list', {}).then(res => {
const { errorCode, result } = res.data || {};
if (errorCode != 1) {
return errorMsg.errorMsg(res.data);
}
let { allList } = result || {};
allList = Array.isArray(allList) ? allList : [];
this.allApps = allList;
this.settingData.checked = allList.filter(el => el.openFlag == 1).map(el => el.applicationId);
});
},
onSave() {
this.loading = true;
const { checked } = this.settingData;
const dataJson = this.allApps.map(el => {
return { applicationId: el.applicationId, openFlag: checked.includes(el.applicationId) ? 1 : 0 };
});
const params = { dataJson: JSON.stringify(dataJson) };
postRequest('/haoban-manage3-web/open-or-close', params)
.then(res => {
const { errorCode } = res.data || {};
if (errorCode != 1) {
return errorMsg.errorMsg(res.data);
}
this.$message.success('保存成功');
})
.finally(() => {
setTimeout(() => (this.loading = false), 100);
});
}
}
};
</script>
<style lang="scss" scoped>
.guide-setting {
padding: 0 20px 20px;
.app-auth-tip {
margin-bottom: 16px;
font-size: 14px;
font-weight: 400;
color: #303133;
line-height: 20px;
}
.save-btn {
margin-top: 40px;
}
}
</style>
<template>
<div class="guide-setting">
<div class="guide-auth-list">
<div class="guide-auth-item">
<span class="auth-item-label">允许编辑导购信息</span>
<el-switch v-model="settingData.editClerkFlag" :active-value="1" :inactive-value="0"></el-switch>
</div>
<div class="guide-auth-item">
<span class="auth-item-label">允许店长添加导购</span>
<el-switch v-model="settingData.addClerkFlag" :active-value="1" :inactive-value="0"></el-switch>
</div>
<div class="guide-auth-item">
<span class="auth-item-label">允许店长删除导购</span>
<el-switch v-model="settingData.delClerkFlag" :active-value="1" :inactive-value="0"></el-switch>
</div>
</div>
<el-button class="save-btn" v-if="$getButtonLimit($buttonCode.saveGuideSetting)" :limit-code="$buttonCode.saveGuideSetting" :loading="loading" type="primary" @click="onSave">保存</el-button>
</div>
</template>
<script>
import { getRequest, postRequest } from '@/api/api.js';
import errorMsg from '@/common/js/error.js';
export default {
name: 'GuideAuthSetting',
data() {
return {
loading: false,
settingData: {
editClerkFlag: 0,
addClerkFlag: 0,
delClerkFlag: 0
}
};
},
created() {
this.getSetting();
},
methods: {
getSetting() {
getRequest('/haoban-manage3-web/application-open-close-list', {}).then(res => {
const { errorCode, result } = res.data || {};
if (errorCode != 1) {
return errorMsg.errorMsg(res.data);
}
let { clerkEditInfo } = result || {};
Object.assign(this.settingData, clerkEditInfo);
});
},
onSave() {
this.loading = true;
const { editClerkFlag, addClerkFlag, delClerkFlag } = this.settingData;
const params = { editClerkFlag, addClerkFlag, delClerkFlag };
postRequest('/haoban-manage3-web/save-clerk-edit-flag', params)
.then(res => {
const { errorCode } = res.data || {};
if (errorCode != 1) {
return errorMsg.errorMsg(res.data);
}
this.$message.success('保存成功');
})
.finally(() => {
setTimeout(() => (this.loading = false), 100);
});
}
}
};
</script>
<style lang="scss" scoped>
.guide-setting {
padding: 0 20px 20px;
.guide-auth-list {
border-radius: 4px;
border: 1px solid #dcdfe6;
.guide-auth-item {
display: flex;
justify-content: flex-start;
align-items: center;
padding: 0 20px;
height: 67px;
+ .guide-auth-item {
border-top: 1px solid #dcdfe6;
}
.auth-item-label {
margin-right: 60px;
font-size: 14px;
font-weight: 400;
color: #303133;
}
}
}
.save-btn {
margin-top: 40px;
}
}
</style>
<template>
<el-tabs v-model="activeName">
<el-tab-pane label="导购操作权限设置" name="first">
<div class="guide-setting">
<div class="guide-auth-list">
<div class="guide-auth-item">
<span class="auth-item-label">允许编辑导购信息</span>
<el-switch v-model="settingData.editClerkFlag" :active-value="1" :inactive-value="0"></el-switch>
</div>
<div class="guide-auth-item">
<span class="auth-item-label">允许店长添加导购</span>
<el-switch v-model="settingData.addClerkFlag" :active-value="1" :inactive-value="0"></el-switch>
</div>
<div class="guide-auth-item">
<span class="auth-item-label">允许店长删除导购</span>
<el-switch v-model="settingData.delClerkFlag" :active-value="1" :inactive-value="0"></el-switch>
</div>
</div>
<el-button class="save-btn" v-if="$getButtonLimit($buttonCode.saveGuideSetting)" :limit-code="$buttonCode.saveGuideSetting" :loading="loading" type="primary" @click="onSave">保存</el-button>
</div>
</el-tab-pane>
<el-tab-pane label="应用可见权限设置" name="second">
<div class="guide-setting">
<p class="app-auth-tip">设置导购可见应用</p>
<el-row>
<el-checkbox-group v-model="settingData.checked">
<el-col :span="3" v-for="el in allApps" :key="el.applicationId" style="margin-bottom: 12px">
<el-checkbox :label="el.applicationId">{{ el.applicationName }}</el-checkbox>
</el-col>
</el-checkbox-group>
</el-row>
<el-button class="save-btn" v-if="$getButtonLimit($buttonCode.saveAppsVisible)" :limit-code="$buttonCode.saveAppsVisible" :loading="loading" type="primary" @click="onSave">保存</el-button>
</div>
</el-tab-pane>
</el-tabs>
<div>
<el-tabs v-model="activeName">
<el-tab-pane label="导购操作权限设置" name="first">
<guide-auth-setting></guide-auth-setting>
</el-tab-pane>
<el-tab-pane label="应用可见权限设置" name="second">
<app-visible-setting></app-visible-setting>
</el-tab-pane>
</el-tabs>
</div>
</template>
<script>
import { getRequest, postRequest } from '@/api/api.js';
import errorMsg from '@/common/js/error.js';
import GuideAuthSetting from './guide-auth-setting.vue';
import AppVisibleSetting from './app-visible-setting.vue';
export default {
name: 'GuideSetting',
components: { GuideAuthSetting, AppVisibleSetting },
data() {
return {
loading: false,
activeName: 'first',
settingData: {
editClerkFlag: 0,
addClerkFlag: 0,
delClerkFlag: 0,
checked: []
},
allApps: []
activeName: 'first'
};
},
created() {
this.getSetting();
},
methods: {
getSetting() {
getRequest('/haoban-manage3-web/application-open-close-list', {}).then(res => {
const { errorCode, result } = res.data || {};
if (errorCode != 1) {
return errorMsg.errorMsg(res.data);
}
let { allList, clerkEditInfo } = result || {};
allList = Array.isArray(allList) ? allList : [];
this.allApps = allList;
this.settingData.checked = allList.filter(el => el.openFlag == 1).map(el => el.applicationId);
Object.assign(this.settingData, clerkEditInfo);
});
},
onSave() {
this.loading = true;
const { editClerkFlag, addClerkFlag, delClerkFlag, checked } = this.settingData;
let params = {};
if (this.activeName == 'first') {
params = { editClerkFlag, addClerkFlag, delClerkFlag };
} else if (this.activeName == 'second') {
const dataJson = this.allApps.map(el => {
return { applicationId: el.applicationId, openFlag: checked.includes(el.applicationId) ? 1 : 0 };
});
params = { dataJson: JSON.stringify(dataJson) };
}
const methods = {
first: params => postRequest('/haoban-manage3-web/save-clerk-edit-flag', params),
second: params => postRequest('/haoban-manage3-web/open-or-close', params)
};
methods[this.activeName](params)
.then(res => {
const { errorCode } = res.data || {};
if (errorCode != 1) {
return errorMsg.errorMsg(res.data);
}
this.$message.success('保存成功');
})
.finally(() => {
setTimeout(() => (this.loading = false), 100);
});
}
}
};
</script>
<style lang="scss" scoped>
.guide-setting {
padding: 0 20px 20px;
.guide-auth-list {
border-radius: 4px;
border: 1px solid #dcdfe6;
.guide-auth-item {
display: flex;
justify-content: flex-start;
align-items: center;
padding: 0 20px;
height: 67px;
+ .guide-auth-item {
border-top: 1px solid #dcdfe6;
}
.auth-item-label {
margin-right: 60px;
font-size: 14px;
font-weight: 400;
color: #303133;
}
}
}
.app-auth-tip {
margin-bottom: 16px;
font-size: 14px;
font-weight: 400;
color: #303133;
line-height: 20px;
}
.save-btn {
margin-top: 40px;
}
}
</style>
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