Explorar el Código

工作台渲染应用抽公共文件

xiaohaizhao hace 2 años
padre
commit
e89f1e7941
Se han modificado 6 ficheros con 480 adiciones y 452 borrados
  1. 11 451
      pages/tabbar/home/index.js
  2. 1 1
      static/font-icon.wxss
  3. 374 0
      utils/work/apps.js
  4. 0 0
      utils/work/work-icon.wxss
  5. 94 0
      utils/work/work.js
  6. 0 0
      utils/work/work.wxss

+ 11 - 451
pages/tabbar/home/index.js

@@ -1,5 +1,10 @@
 let _Http = getApp().globalData.http,
 let _Http = getApp().globalData.http,
     DataCarousel = null;
     DataCarousel = null;
+import {
+    initWorkbench,
+    isHistory,
+    isRemindChangePassword
+} from "../../../utils/work/work";
 Page({
 Page({
     data: {
     data: {
         appid: wx.getStorageSync('appid'),
         appid: wx.getStorageSync('appid'),
@@ -15,6 +20,7 @@ Page({
         })
         })
         this.refreshData() //更新权限等信息
         this.refreshData() //更新权限等信息
         this.getTabBar().unReadMessageCount(); //更新信息数量
         this.getTabBar().unReadMessageCount(); //更新信息数量
+
         _Http.basic({
         _Http.basic({
             "classname": "sysmanage.develop.querytemplet.querytemplet",
             "classname": "sysmanage.develop.querytemplet.querytemplet",
             "method": "query",
             "method": "query",
@@ -29,38 +35,8 @@ Page({
             }
             }
             wx.setStorageSync('templetList', res.data)
             wx.setStorageSync('templetList', res.data)
         });
         });
-        let history = getApp().globalData.LaunchOptions;
-        if (history && !getCurrentPages().some(v => v.__route__ == history.path)) {
-            let url = `/${history.path}?`;
-            for (const key in history.query) {
-                url += `${key}=${history.query[key]}&`
-            }
-            wx.navigateTo({
-                url,
-                success(res) {
-                    wx.showToast({
-                        title: '已恢复页面',
-                        icon: "none"
-                    });
-                    getApp().globalData.LaunchOptions = null;
-                }
-            })
-        }
-        //查询密码是否为初始状态
-        if (getApp().globalData.remindchangepassword) wx.showModal({
-            title: "提示",
-            content: "当前密码为初始密码,请前往修改密码",
-            confirmText: '前往修改',
-            cancelText: "下次再说",
-            success: ({
-                confirm
-            }) => {
-                getApp().globalData.remindchangepassword = null;
-                if (confirm) wx.navigateTo({
-                    url: '/pages/tabbar/mine/changePassword/index',
-                })
-            },
-        })
+        isHistory();
+        isRemindChangePassword();
     },
     },
     /* 更新站点信息 */
     /* 更新站点信息 */
     refreshData() {
     refreshData() {
@@ -68,429 +44,13 @@ Page({
             user: wx.getStorageSync('userMsg')
             user: wx.getStorageSync('userMsg')
         })
         })
         if (wx.getStorageSync('userauth').length != 0) {
         if (wx.getStorageSync('userauth').length != 0) {
-            let authList = {},
-                entrance = [{
-                    label: "通用",
-                    icon: "work-tongyong",
-                    appid: "wx197f219a82a89d7b",
-                    list: getapps()
-                }, {
-                    label: "营销工具",
-                    icon: "work-yingxiaogongju",
-                    appid: "wx197f219a82a89d7b",
-                    list: gettool()
-                }, {
-                    label: "CRM",
-                    appid: "wx197f219a82a89d7b",
-                    icon: "work-CRM",
-                    list: getcrm()
-                }, {
-                    label: "E-订单",
-                    appid: "wxc1b6ae925ac1d06a",
-                    icon: "work-E-dingdan",
-                    list: getedd()
-                }, {
-                    label: "E-服务",
-                    appid: "wxc1b6ae925ac1d06a",
-                    icon: "work-E-fuwu",
-                    list: geteservice()
-                }];
-            //通用
-            function getapps() {
-                const paths = [{
-                    name: "签到",
-                    path: "/packageA/clockIn/index",
-                    icon: "work-a-wodemendianxinxidizhi"
-                }, {
-                    name: "任务",
-                    path: "/packageA/work/index",
-                    icon: "work-a-woderenwuzhongxin"
-                }, {
-                    name: "通讯录",
-                    path: "/packageA/contacts/index",
-                    icon: "work-xiaochengxutongxunlu"
-                }, {
-                    name: "工作汇报",
-                    path: "/packageA/report/index",
-                    icon: "work-gongzuohuibao"
-                }, {
-                    name: "作业看板",
-                    path: "/packageA/achievement/index",
-                    icon: "work-zuoyekanban"
-                }, {
-                    name: "销售漏斗",
-                    path: "/packageA/salesHourglass/index",
-                    icon: "work-xiaoshouloudou"
-                }];
-                let app = 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),
-                        }
-                        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;
-                                list.push(paths[i])
-                            }
-                        }
-                    })
-                });
-                return dye(list.sort((a, b) => a.index - b.index))
-            }
-            //营销工具
-            function gettool() {
-                const paths = [{
-                    name: "通告",
-                    path: "/pages/annunciate/index",
-                    icon: "work-a-shouyejingangqutonggao",
-                    objectname: "sat_notice"
-                }, {
-                    name: "营销物料",
-                    path: "/pages/mediaLibrary/index",
-                    icon: "work-a-shouyejingangquyingxiaowuliao",
-                    objectname: "sys_attachment"
-                }, {
-                    name: "推广素材",
-                    path: "/pages/promotional/index",
-                    icon: "work-a-shouyejingangqutuiguangsucai",
-                    objectname: "sat_sharematerial"
-                }, {
-                    name: "商学院",
-                    path: "/pages/college/index",
-                    icon: "work-a-shangxueyuanxuexi",
-                    objectname: "sat_courseware"
-                }, {
-                    name: "提报",
-                    path: "/pages/submission/index",
-                    icon: "work-a-tibaoguanlitibao",
-                    objectname: "sat_submiteditmodel"
-                }];
-                let tool = getApp().globalData.queryPer.query(wx.getStorageSync('userauth'), ['营销工具'], paths.map(v => v.name)),
-                    list = [];
-                tool.forEach(v => {
-                    let auth = v.apps[0].meta.auth;
-                    if (!auth.some(r => r.option == 'read')) return;
-                    authList[v.apps[0].name] = {
-                        options: auth.map(a => a.option),
-                        optionnames: auth.map(a => a.optionname)
-                    };
-                    let item = paths.find(s => s.name == v.systemmodulename);
-                    item && list.push(item)
-                });
-
-                return dye(list)
-            };
-            //CRM
-            function getcrm() {
-                const paths = [{
-                    name: "市场活动",
-                    path: "/packageA/activity/index",
-                    icon: "work-shichanghuodong",
-                    objectname: "sat_campaign"
-                }, {
-                    name: "公海线索",
-                    path: "/packageA/publicClue/index",
-                    icon: "work-xiaochengxu_xiaoshoumubiao",
-                    objectname: "sat_orderclue"
-                }, {
-                    name: "销售线索",
-                    path: "/packageA/saleClue/index",
-                    icon: "work-xiaoshouxiansuo",
-                    objectname: "sat_orderclue"
-                }, {
-                    name: "公海客户",
-                    path: "/packageA/publicCustomer/index",
-                    icon: "work-gonghaikehu",
-                    objectname: "sa_customers"
-                }, {
-                    name: "我的客户",
-                    path: "/packageA/setclient/index",
-                    icon: "work-kehu",
-                    objectname: "sa_customers"
-                }, {
-                    name: "项目商机",
-                    path: "/packageA/project/index",
-                    icon: "work-xiangmushangji",
-                    objectname: "sa_project"
-                }, {
-                    name: "报价单",
-                    path: "/packageA/offers/index",
-                    icon: "work-xiangmubaojia",
-                    objectname: "sa_quotedprice"
-                }, {
-                    name: "竞争对手",
-                    path: "/packageA/opponent/index",
-                    icon: "work-jingzhengduishou",
-                    objectname: "sa_competitor"
-                }, {
-                    name: "合同",
-                    path: "/packageA/contract/index",
-                    icon: "work-hetong",
-                    objectname: "sa_contract"
-                }, {
-                    name: "销售目标",
-                    path: "/packageA/target/index",
-                    icon: "work-xiaochengxu_xiaoshoumubiao",
-                    objectname: "sa_salestarget"
-                }, {
-                    name: "销售预测",
-                    path: "/packageA/salesForecasting/index",
-                    icon: "work-xiaochengxu_xiaoshouyuce",
-                    objectname: "sa_salesforecastbill"
-                }, {
-                    name: "项目成交预测",
-                    path: "/packageA/finishforecast/index",
-                    icon: "work-xiangmuchengjiaoyuce"
-                }, {
-                    name: "项目成交预测管理",
-                    path: "/packageA/finishforecast/admin",
-                    icon: "work-xiangmuchengjiaoyuceguanli"
-                }, {
-                    name: "出货开票预测",
-                    path: "/packageA/invoiceforecast/index",
-                    icon: "work-chuhuokaipiaoyuce"
-                }, {
-                    name: "出货开票预测管理",
-                    path: "/packageA/invoiceforecast/admin",
-                    icon: "work-chuhuokaipiaoyuceguanli"
-                }];
-                let crm = getApp().globalData.queryPer.query(wx.getStorageSync('userauth'), ['CRM'], ['销售预测', '销售线索', '销售目标', '合同管理', '客户管理', '项目管理']),
-                    list = [];
-                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),
-                        }
-                        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;
-                                list.push(paths[i])
-                            }
-                        }
-                    })
-                });
-                return dye(list.sort((a, b) => a.index - b.index))
-            };
-            //E订单
-            function getedd() {
-                let paths = [{
-                    name: "商城",
-                    path: "/packageA/market/index",
-                    icon: "work-shangcheng",
-                    objectname: "sa_itemgroup"
-                }, {
-                    name: "销售订单",
-                    path: "/packageA/orderForm/index",
-                    icon: "work-dingdan",
-                    objectname: "sa_order"
-                }, {
-                    name: "收货",
-                    path: "/packageA/shipment/index",
-                    icon: "work-shouhuo",
-                    objectname: "sa_logistics"
-                }, {
-                    name: "业绩目标",
-                    path: "/packageA/target/index",
-                    icon: "work-yejimubiao"
-                }, {
-                    name: "账户",
-                    path: "/packageA/account/index",
-                    icon: "work-zhanghu",
-                    objectname: "sa_accountbalance"
-                }, {
-                    name: "促销活动",
-                    path: "/packageA/activity/index",
-                    icon: "work-cuxiaohuodong",
-                    objectname: "sa_promotion"
-                }, {
-                    name: "工具查询",
-                    path: "/packageA/tool/index",
-                    icon: "work-gongjuchaxun"
-                }, {
-                    name: "购物车",
-                    path: "/packageA/shopping/index",
-                    icon: "work-gouwuche"
-                }, {
-                    name: "开票",
-                    path: "/packageA/invoice/index",
-                    icon: "work-kaipiao",
-                    objectname: "sa_invoiceapplyid"
-                }, {
-                    name: "打款凭证",
-                    path: "/packageA/remitVoucher/index",
-                    icon: "work-dakuanpingzheng"
-                }, {
-                    name: "工具借用",
-                    path: "/packageA/borrow/index",
-                    icon: "work-shujuchaxun",
-                    objectname: "sa_order"
-                }, {
-                    name: "工具归还",
-                    path: "/packageA/toolBill/index",
-                    icon: "work-shujuchaxun",
-                    objectname: "sa_order"
-                }, {
-                    name: "退返申请",
-                    path: "/packageA/returnOne/index",
-                    icon: "work-shujuchaxun",
-                    objectname: "sa_aftersalesmag"
-                }, {
-                    name: "居间费结算",
-                    path: "/packageA/betweenFee/index",
-                    icon: "work-jujianfeijiesuan"
-                }, ];
-                /* {
-                    name: "数据查询",
-                    path: "#",
-                    icon: "work-shujuchaxun"
-                } */
-                let edd = getApp().globalData.queryPer.query(wx.getStorageSync('userauth'), ["E-订单"], ["商品档案", "销售管理", "财务管理", "售后管理", "发货与库存", "业绩查询"]),
-                    list = [];
-                edd.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),
-                        }
-                        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;
-                                list.push(paths[i])
-                            }
-                        }
-                    })
-                });
-                return dye(list.sort((a, b) => a.index - b.index))
-            };
-            //E服务
-            function geteservice() {
-                let paths = [{
-                    name: "工单",
-                    path: "/Eservice/workOrder/index",
-                    icon: "work-gongdan",
-                    objectname: "sa_workorder"
-                }, {
-                    name: "申请单",
-                    path: "/Eservice/agent/serviceBillList/index",
-                    icon: "work-shenqingdan",
-                    // objectname: "sa_serviceorder"
-                }, {
-                    name: "申请单管理",
-                    path: "/Eservice/workerLeader/serviceBillList/index",
-                    icon: "work-shenqingdanguanli",
-                    // objectname: "sa_serviceorder"
-                }, {
-                    name: "业务员服务申请单",
-                    path: "/Eservice/saler/serviceBillList/index",
-                    icon: "work-yewuyuanfuwushenqingdan",
-                    // objectname: "sa_serviceorder"
-                }];
-                let eservice = getApp().globalData.queryPer.query(wx.getStorageSync('userauth'), ["E-服务"], ["工单管理"]),
-                    list = [];
-                eservice.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),
-                        }
-                        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;
-                                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) => {
-                    return {
-                        ...v,
-                        ...colorList[i > colorList.length - 1 ? i - colorList.length : i]
-                    }
-                })
-            };
-            wx.setStorageSync('auth', authList)
-            this.setData({
-                entrance,
-                auth: JSON.stringify(authList),
-                userMsg: JSON.stringify(wx.getStorageSync('userMsg')),
-                site: JSON.stringify(wx.getStorageSync('siteP'))
-            })
-            /* 获取首页banner */
-            let banner = wx.getStorageSync('banner_list').find(v => v.location == "index_top");
-            if (banner) this.setData({
-                bannerList: banner.ads
-            })
-            //用于消息跳转对照权限以及路径
-            wx.setStorageSync('authComparison', entrance.map(v => {
-                v = v.list.map(s => {
-                    s.appid = v.appid;
-                    return s
-                })
-                return v
-            }).flat())
+            initWorkbench(this)
         } else {
         } else {
-            setTimeout(this.refreshData, 10);
+            setTimeout(this.refreshData, 100);
             return;
             return;
         }
         }
     },
     },
+
     /* 获取最新信息 */
     /* 获取最新信息 */
     queryMessage(i = 0) {
     queryMessage(i = 0) {
         _Http.basic({
         _Http.basic({

+ 1 - 1
static/font-icon.wxss

@@ -1,4 +1,4 @@
-@import "./work-icon.wxss";
+@import "/utils/work/work-icon.wxss";
 @import "./stylesheet.wxss";
 @import "./stylesheet.wxss";
 
 
 .iconfont {
 .iconfont {

+ 374 - 0
utils/work/apps.js

@@ -0,0 +1,374 @@
+let authList = {};
+//通用
+function getapps() {
+    const paths = [{
+        name: "签到",
+        path: "/packageA/clockIn/index",
+        icon: "work-a-wodemendianxinxidizhi"
+    }, {
+        name: "任务",
+        path: "/packageA/work/index",
+        icon: "work-a-woderenwuzhongxin"
+    }, {
+        name: "通讯录",
+        path: "/packageA/contacts/index",
+        icon: "work-xiaochengxutongxunlu"
+    }, {
+        name: "工作汇报",
+        path: "/packageA/report/index",
+        icon: "work-gongzuohuibao"
+    }, {
+        name: "作业看板",
+        path: "/packageA/achievement/index",
+        icon: "work-zuoyekanban"
+    }, {
+        name: "销售漏斗",
+        path: "/packageA/salesHourglass/index",
+        icon: "work-xiaoshouloudou"
+    }];
+    let app = 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),
+            }
+            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;
+                    list.push(paths[i])
+                }
+            }
+        })
+    });
+    return dye(list.sort((a, b) => a.index - b.index))
+}
+//营销工具
+function gettool() {
+    const paths = [{
+        name: "通告",
+        path: "/pages/annunciate/index",
+        icon: "work-a-shouyejingangqutonggao",
+        objectname: "sat_notice"
+    }, {
+        name: "营销物料",
+        path: "/pages/mediaLibrary/index",
+        icon: "work-a-shouyejingangquyingxiaowuliao",
+        objectname: "sys_attachment"
+    }, {
+        name: "推广素材",
+        path: "/pages/promotional/index",
+        icon: "work-a-shouyejingangqutuiguangsucai",
+        objectname: "sat_sharematerial"
+    }, {
+        name: "商学院",
+        path: "/pages/college/index",
+        icon: "work-a-shangxueyuanxuexi",
+        objectname: "sat_courseware"
+    }, {
+        name: "提报",
+        path: "/pages/submission/index",
+        icon: "work-a-tibaoguanlitibao",
+        objectname: "sat_submiteditmodel"
+    }];
+    let tool = getApp().globalData.queryPer.query(wx.getStorageSync('userauth'), ['营销工具'], paths.map(v => v.name)),
+        list = [];
+    tool.forEach(v => {
+        let auth = v.apps[0].meta.auth;
+        if (!auth.some(r => r.option == 'read')) return;
+        authList[v.apps[0].name] = {
+            options: auth.map(a => a.option),
+            optionnames: auth.map(a => a.optionname)
+        };
+        let item = paths.find(s => s.name == v.systemmodulename);
+        item && list.push(item)
+    });
+    return dye(list)
+};
+//CRM
+function getcrm() {
+    const paths = [{
+        name: "市场活动",
+        path: "/packageA/activity/index",
+        icon: "work-shichanghuodong",
+        objectname: "sat_campaign"
+    }, {
+        name: "公海线索",
+        path: "/packageA/publicClue/index",
+        icon: "work-xiaochengxu_xiaoshoumubiao",
+        objectname: "sat_orderclue"
+    }, {
+        name: "销售线索",
+        path: "/packageA/saleClue/index",
+        icon: "work-xiaoshouxiansuo",
+        objectname: "sat_orderclue"
+    }, {
+        name: "公海客户",
+        path: "/packageA/publicCustomer/index",
+        icon: "work-gonghaikehu",
+        objectname: "sa_customers"
+    }, {
+        name: "我的客户",
+        path: "/packageA/setclient/index",
+        icon: "work-kehu",
+        objectname: "sa_customers"
+    }, {
+        name: "项目商机",
+        path: "/packageA/project/index",
+        icon: "work-xiangmushangji",
+        objectname: "sa_project"
+    }, {
+        name: "报价单",
+        path: "/packageA/offers/index",
+        icon: "work-xiangmubaojia",
+        objectname: "sa_quotedprice"
+    }, {
+        name: "竞争对手",
+        path: "/packageA/opponent/index",
+        icon: "work-jingzhengduishou",
+        objectname: "sa_competitor"
+    }, {
+        name: "合同",
+        path: "/packageA/contract/index",
+        icon: "work-hetong",
+        objectname: "sa_contract"
+    }, {
+        name: "销售目标",
+        path: "/packageA/target/index",
+        icon: "work-xiaochengxu_xiaoshoumubiao",
+        objectname: "sa_salestarget"
+    }, {
+        name: "销售预测",
+        path: "/packageA/salesForecasting/index",
+        icon: "work-xiaochengxu_xiaoshouyuce",
+        objectname: "sa_salesforecastbill"
+    }, {
+        name: "项目成交预测",
+        path: "/packageA/finishforecast/index",
+        icon: "work-xiangmuchengjiaoyuce"
+    }, {
+        name: "项目成交预测管理",
+        path: "/packageA/finishforecast/admin",
+        icon: "work-xiangmuchengjiaoyuceguanli"
+    }, {
+        name: "出货开票预测",
+        path: "/packageA/invoiceforecast/index",
+        icon: "work-chuhuokaipiaoyuce"
+    }, {
+        name: "出货开票预测管理",
+        path: "/packageA/invoiceforecast/admin",
+        icon: "work-chuhuokaipiaoyuceguanli"
+    }];
+    let crm = getApp().globalData.queryPer.query(wx.getStorageSync('userauth'), ['CRM'], ['销售预测', '销售线索', '销售目标', '合同管理', '客户管理', '项目管理']),
+        list = [];
+    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),
+            }
+            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;
+                    list.push(paths[i])
+                }
+            }
+        })
+    });
+    return dye(list.sort((a, b) => a.index - b.index))
+};
+//E订单
+function getedd() {
+    let paths = [{
+        name: "商城",
+        path: "/packageA/market/index",
+        icon: "work-shangcheng",
+        objectname: "sa_itemgroup"
+    }, {
+        name: "销售订单",
+        path: "/packageA/orderForm/index",
+        icon: "work-dingdan",
+        objectname: "sa_order"
+    }, {
+        name: "收货",
+        path: "/packageA/shipment/index",
+        icon: "work-shouhuo",
+        objectname: "sa_logistics"
+    }, {
+        name: "业绩目标",
+        path: "/packageA/target/index",
+        icon: "work-yejimubiao"
+    }, {
+        name: "账户",
+        path: "/packageA/account/index",
+        icon: "work-zhanghu",
+        objectname: "sa_accountbalance"
+    }, {
+        name: "促销活动",
+        path: "/packageA/activity/index",
+        icon: "work-cuxiaohuodong",
+        objectname: "sa_promotion"
+    }, {
+        name: "工具查询",
+        path: "/packageA/tool/index",
+        icon: "work-gongjuchaxun"
+    }, {
+        name: "购物车",
+        path: "/packageA/shopping/index",
+        icon: "work-gouwuche"
+    }, {
+        name: "开票",
+        path: "/packageA/invoice/index",
+        icon: "work-kaipiao",
+        objectname: "sa_invoiceapplyid"
+    }, {
+        name: "打款凭证",
+        path: "/packageA/remitVoucher/index",
+        icon: "work-dakuanpingzheng"
+    }, {
+        name: "工具借用",
+        path: "/packageA/borrow/index",
+        icon: "work-shujuchaxun",
+        objectname: "sa_order"
+    }, {
+        name: "工具归还",
+        path: "/packageA/toolBill/index",
+        icon: "work-shujuchaxun",
+        objectname: "sa_order"
+    }, {
+        name: "退返申请",
+        path: "/packageA/returnOne/index",
+        icon: "work-shujuchaxun",
+        objectname: "sa_aftersalesmag"
+    }, {
+        name: "居间费结算",
+        path: "/packageA/betweenFee/index",
+        icon: "work-jujianfeijiesuan"
+    }, ];
+    let edd = getApp().globalData.queryPer.query(wx.getStorageSync('userauth'), ["E-订单"], ["商品档案", "销售管理", "财务管理", "售后管理", "发货与库存", "业绩查询"]),
+        list = [];
+    edd.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),
+            }
+            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;
+                    list.push(paths[i])
+                }
+            }
+        })
+    });
+    return dye(list.sort((a, b) => a.index - b.index))
+};
+//E服务
+function geteservice() {
+    let paths = [{
+        name: "工单",
+        path: "/Eservice/workOrder/index",
+        icon: "work-gongdan",
+        objectname: "sa_workorder"
+    }, {
+        name: "申请单",
+        path: "/Eservice/agent/serviceBillList/index",
+        icon: "work-shenqingdan",
+        // objectname: "sa_serviceorder"
+    }, {
+        name: "申请单管理",
+        path: "/Eservice/workerLeader/serviceBillList/index",
+        icon: "work-shenqingdanguanli",
+        // objectname: "sa_serviceorder"
+    }, {
+        name: "业务员服务申请单",
+        path: "/Eservice/saler/serviceBillList/index",
+        icon: "work-yewuyuanfuwushenqingdan",
+        // objectname: "sa_serviceorder"
+    }];
+    let eservice = getApp().globalData.queryPer.query(wx.getStorageSync('userauth'), ["E-服务"], ["工单管理"]),
+        list = [];
+    eservice.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),
+            }
+            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;
+                    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) => {
+        return {
+            ...v,
+            ...colorList[i > colorList.length - 1 ? i - colorList.length : i]
+        }
+    })
+};
+module.exports = {
+    getapps,
+    gettool,
+    getcrm,
+    getedd,
+    geteservice,
+    authList
+}

+ 0 - 0
static/work-icon.wxss → utils/work/work-icon.wxss


+ 94 - 0
utils/work/work.js

@@ -0,0 +1,94 @@
+import apps from "./apps";
+
+function initWorkbench(that) {
+    let entrance = [{
+        label: "通用",
+        icon: "work-tongyong",
+        appid: "wx197f219a82a89d7b",
+        list: apps.getapps()
+    }, {
+        label: "营销工具",
+        icon: "work-yingxiaogongju",
+        appid: "wx197f219a82a89d7b",
+        list: apps.gettool()
+    }, {
+        label: "CRM",
+        appid: "wx197f219a82a89d7b",
+        icon: "work-CRM",
+        list: apps.getcrm()
+    }, {
+        label: "E-订单",
+        appid: "wxc1b6ae925ac1d06a",
+        icon: "work-E-dingdan",
+        list: apps.getedd()
+    }, {
+        label: "E-服务",
+        appid: "wxc1b6ae925ac1d06a",
+        icon: "work-E-fuwu",
+        list: apps.geteservice()
+    }];
+    wx.setStorageSync('auth', apps.authList)
+    that.setData({
+        entrance,
+        auth: JSON.stringify(apps.authList),
+        userMsg: JSON.stringify(wx.getStorageSync('userMsg')),
+        site: JSON.stringify(wx.getStorageSync('siteP'))
+    })
+    /* 获取首页banner */
+    let banner = wx.getStorageSync('banner_list').find(v => v.location == "index_top");
+    if (banner) that.setData({
+        bannerList: banner.ads
+    })
+    //用于消息跳转对照权限以及路径
+    wx.setStorageSync('authComparison', entrance.map(v => {
+        v = v.list.map(s => {
+            s.appid = v.appid;
+            return s
+        })
+        return v
+    }).flat())
+}
+
+function isHistory() {
+    let history = getApp().globalData.LaunchOptions;
+    if (history && !getCurrentPages().some(v => v.__route__ == history.path) && history.path != 'pages/login/phone') {
+        let url = `/${history.path}?`;
+        for (const key in history.query) {
+            url += `${key}=${history.query[key]}&`
+        }
+        wx.navigateTo({
+            url,
+            success(res) {
+                wx.showToast({
+                    title: '已恢复页面',
+                    icon: "none"
+                });
+                getApp().globalData.LaunchOptions = null;
+            }
+        })
+    } else {
+        getApp().globalData.LaunchOptions = null;
+    }
+}
+
+function isRemindChangePassword() {
+    if (getApp().globalData.remindchangepassword) wx.showModal({
+        title: "提示",
+        content: "当前密码为初始密码,请前往修改密码",
+        confirmText: '前往修改',
+        cancelText: "下次再说",
+        success: ({
+            confirm
+        }) => {
+            getApp().globalData.remindchangepassword = null;
+            if (confirm) wx.navigateTo({
+                url: '/pages/tabbar/mine/changePassword/index',
+            })
+        },
+    })
+}
+module.exports = {
+    initWorkbench,
+    isHistory,
+    isRemindChangePassword
+}

+ 0 - 0
static/work.wxss → utils/work/work.wxss