let authList = {}; //通用 function getapps() { const paths = [{ name: "联系人", path: "/prsx/contacts/index", icon: "work-xiaochengxutongxunlu" }, { name: "工作汇报", path: "/prsx/report/index", icon: "work-gongzuohuibao" }, { name: "360°画像", path: "/portrayal/index/index", icon: "work-kehuhuaxiang" }, { name: "销售数据", path: "/salesPanel/index/index", icon: "work-xiaoshoushuju" }, { name: "数据总览", path: "/salesPanel/dataOverview/index", icon: "work-shujutongji" }]; let app = [...getApp().globalData.queryPer.query(wx.getStorageSync('userauth'), ['通用'], ['通用', '工作汇报']), ...getApp().globalData.queryPer.query(wx.getStorageSync('userauth'), ['CRM'], ['业务管理', '数据统计']), ...getApp().globalData.queryPer.query(wx.getStorageSync('userauth'), ['行事历'], ['行事历']) ], list = []; app.forEach((v, i) => { v.apps.forEach(s => { authList[s.name] = { options: s.meta.auth.map(a => a.option), optionnames: s.meta.auth.map(a => a.optionname), istask: s.istask == 1, isdatafollowup: s.isdatafollowup == 1, isdatatag: s.isdatatag == 1, isdatateam: s.isdatateam == 1, } if (authList[s.name].options.some(s => s == "read")) { let i = paths.findIndex(k => k.name == s.meta.title); if (i != -1) { paths[i].index = i; paths[i].appName = s.name; list.push(paths[i]) } } }) }); return dye(list.sort((a, b) => a.index - b.index)) }; //CRM function getcrm() { const paths = [{ name: "行事历", path: "/prsx/calendar/index", icon: "work-shichanghuodong", objectname: "" }, { name: "市场活动", path: "/prsx/activity/index", icon: "work-shichanghuodong", objectname: "sat_campaign" }, { name: "医院管理", path: "/prsx/hospital/index", icon: "work-yiyuanguanli", objectname: "sa_customers" }, { name: "科室管理", path: "/prsx/department/index", icon: "work-keshiguanli", objectname: "sa_hospitaldep" }, { name: "医生管理", path: "/prsx/doctors/index", icon: "work-yishengguanli", objectname: "sa_doctor" }, { name: "经销商管理", path: "/prsx/dealer/index", icon: "work-jingxiaoshangguanli", objectname: "sa_agents" }, { name: "合同管理", path: "/prsx/contract/index", icon: "work-hetong", objectname: "sa_contract" }, { name: "试用申请", path: "/prsx/tryOut/index", icon: "work-shiyongshenqing", objectname: "sa_trial" }, { name: "安装确认", path: "/prsx/winstall/index", icon: "work-anzhuangqueren", objectname: "sa_install" }, { name: "销售订单", path: "/prsx/orderForm/index", icon: "work-dingdan", objectname: "sa_order" }, { name: "营销目标", path: "/prsx/target/index", icon: "work-xiaochengxu_xiaoshoumubiao", objectname: "sa_salestarget" }]; let crm = getApp().globalData.queryPer.query(wx.getStorageSync('userauth'), ['CRM'], ['业务管理', '销售管理', '营销目标', '行事历']), list = []; try { crm.push(getApp().globalData.queryPer.query(wx.getStorageSync('userauth'), ['行事历'], ['行事历'])[0]) } catch (error) { } crm.forEach(v => { v.apps.forEach(s => { authList[s.name] = { options: s.meta.auth.map(a => a.option), optionnames: s.meta.auth.map(a => a.optionname), istask: s.istask == 1, isdatafollowup: s.isdatafollowup == 1, isdatatag: s.isdatatag == 1, isdatateam: s.isdatateam == 1, } if (authList[s.name].options.some(s => s == "read")) { let i = paths.findIndex(k => k.name == s.meta.title); if (i != -1) { paths[i].index = i; paths[i].appName = s.name; list.push(paths[i]) } } }) }); return dye(list.sort((a, b) => a.index - b.index)) }; //染色 function dye(list) { let colorList = [{ color: "#3874F6", bColor: "#F0F3FF", }, { color: "#5AB73F", bColor: "#F4FAEF", }, { color: "#F29C37", bColor: "#FCF6EF", }, { color: "#EB4B5C", bColor: "#FDF1ED", }, { color: "#3874F6", bColor: "#F0F3FF", }, { color: "#F29C37", bColor: "#FCF6EF", }, { color: "#EB4B5C", bColor: "#FDF1ED", }, { color: "#3874F6", bColor: "#F0F3FF", }, { color: "#5AB73F", bColor: "#F4FAEF", }, { color: "#F29C37", bColor: "#FCF6EF", }, { color: "#5AB73F", bColor: "#F4FAEF", }, { color: "#3874F6", bColor: "#F0F3FF", }, { color: "#F29C37", bColor: "#FCF6EF", }, { color: "#EB4B5C", bColor: "#FDF1ED", }, { color: "#5AB73F", bColor: "#F4FAEF", }]; return list.map((v, i) => { if (getApp().globalData.http.appName && v.appName == getApp().globalData.http.appName) { wx.navigateTo({ url: v.path }) delete getApp().globalData.http.appName } return { ...v, ...colorList[i > colorList.length - 1 ? i - colorList.length : i] } }) }; module.exports = { getapps, getcrm, authList };