| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456 | let _Http = getApp().globalData.http,    DataCarousel = null;Page({    data: {        appid: "wxc1b6ae925ac1d06a",        bannerList: [], //banner列表        gridList: [],        notice: "",        msgCount: 1,        msgList: [], //消息列表    },    onLoad(options) {        this.setData({ //获取胶囊位置信息            capsule: wx.getMenuButtonBoundingClientRect()        })				this.refreshData() //更新权限等信息        this.getTabBar().unReadMessageCount();//更新信息数量    },    /* 更新站点信息 */    refreshData() {        this.setData({            user: wx.getStorageSync('userMsg')        })        if (wx.getStorageSync('userauth').length != 0) {            let authList = {},                entrance = [{                    label: "通用",                    icon: "work-tongyong",                    appid: "wx197f219a82a89d7b",                    list: getapps()                }, {                    label: "E-订单",                    appid: "wxc1b6ae925ac1d06a",                    icon: "work-E-dingdan",                    list: getedd()                }, {                    label: "E-服务",                    appid: "wxc1b6ae925ac1d06a",                    icon: "work-E-fuwu",                    list: geteservice()                }, {                    label: "营销工具",                    icon: "work-yingxiaogongju",                    appid: "wx197f219a82a89d7b",                    list: gettool()                }, {                    label: "CRM",                    appid: "wx197f219a82a89d7b",                    icon: "work-CRM",                    list: getcrm()                }];            //通用            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"                }];                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)            }            //营销工具            function gettool() {                const paths = [{                    name: "通告",                    path: "/pages/annunciate/index",                    icon: "work-a-shouyejingangqutonggao"                }, {                    name: "营销物料",                    path: "/pages/mediaLibrary/index",                    icon: "work-a-shouyejingangquyingxiaowuliao"                }, {                    name: "推广素材",                    path: "/pages/promotional/index",                    icon: "work-a-shouyejingangqutuiguangsucai"                }, {                    name: "商学院",                    path: "/pages/college/index",                    icon: "work-a-shangxueyuanxuexi"                }, {                    name: "提报",                    path: "/pages/submission/index",                    icon: "work-a-tibaoguanlitibao"                }];                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",                }, {                    name: "公海线索",                    path: "/packageA/publicClue/index",                    icon: "work-xiaochengxu_xiaoshoumubiao"                }, {                    name: "销售线索",                    path: "/packageA/saleClue/index",                    icon: "work-xiaoshouxiansuo"                }, {                    name: "公海客户",                    path: "/packageA/publicCustomer/index",                    icon: "work-gonghaikehu"                }, {                    name: "我的客户",                    path: "/packageA/setclient/index",                    icon: "work-kehu"                }, {                    name: "项目商机",                    path: "/packageA/project/index",                    icon: "work-xiangmushangji"                }, {                    name: "报价单",                    path: "/packageA/offers/index",                    icon: "work-xiangmubaojia"                }, {                    name: "竞争对手",                    path: "/packageA/opponent/index",                    icon: "work-jingzhengduishou"                }, {                    name: "合同",                    path: "/packageA/contract/index",                    icon: "work-hetong"                }, {                    name: "销售目标",                    path: "/packageA/target/index",                    icon: "work-xiaochengxu_xiaoshoumubiao"                }, {                    name: "销售预测",                    path: "/packageA/salesForecasting/index",                    icon: "work-xiaochengxu_xiaoshouyuce"                }];                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"                }, {                    name: "销售订单",                    path: "/packageA/orderForm/index",                    icon: "work-dingdan"                }, {                    name: "收货",                    path: "/packageA/shipment/index",                    icon: "work-shouhuo"                }, {                    name: "业绩目标",                    path: "/packageA/target/index",                    icon: "work-yejimubiao"                }, {                    name: "账户",                    path: "/packageA/account/index",                    icon: "work-zhanghu"                }, {                    name: "促销活动",                    path: "/packageA/activity/index",                    icon: "work-cuxiaohuodong"                }, {                    name: "工具查询",                    path: "/packageA/tool/index",                    icon: "work-gongjuchaxun"                }, {                    name: "购物车",                    path: "/packageA/shopping/index",                    icon: "work-gouwuche"                }, {                    name: "开票",                    path: "/packageA/invoice/index",                    icon: "work-kaipiao"                }, {                    name: "打款凭证",                    path: "/packageA/remitVoucher/index",                    icon: "work-dakuanpingzheng"                }, {                    name: "工具借用",                    path: "/packageA/borrow/index",                    icon: "work-shujuchaxun"                }, {                    name: "工具归还",                    path: "/packageA/toolBill/index",                    icon: "work-shujuchaxun"                }, {                    name: "退返申请",                    path: "/packageA/returnOne/index",                    icon: "work-shujuchaxun"                }, {                    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"                }, {                    name: "申请单",                    path: "/Eservice/agent/serviceBillList/index",                    icon: "work-shenqingdan"                }, {                    name: "申请单管理",                    path: "/Eservice/workerLeader/serviceBillList/index",                    icon: "work-shenqingdanguanli"                }, {                    name: "业务员服务申请单",                    path: "/Eservice/saler/serviceBillList/index",                    icon: "work-yewuyuanfuwushenqingdan"                }];                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            })        } else {            setTimeout(this.refreshData, 10);            return;        }    },    /* 获取最新信息 */    queryMessage(i = 0) {        _Http.basic({            "classname": "system.message.Message",            "method": "queryMessage",            content: {                nocache: true,                pageNumber: 1,                pageSize: 5,                pageTotal: 1,                type: "",                where: {}            },        }, false).then(res => {            if (res.msg != '成功') return (i <= 5) ? this.queryMessage(i + 1) : wx.showToast({                title: res.msg,                icon: "none"            })            this.setData({                msgList: res.data,                notice: res.data[0]            })            if (this.data.msgList.length > 2) this.startDataCarousel();        })    },    /* 开启消息轮播 */    startDataCarousel() {        clearInterval(DataCarousel);        DataCarousel = setInterval(() => {            let count = this.data.msgCount < this.data.msgList.length ? this.data.msgCount : 0;            this.setData({                msgCount: count + 1,                notice: this.data.msgList[count]            })        }, 5000)    },    /* 去消息详情 */    toMsg(e) {        const {            item        } = e.currentTarget.dataset;        wx.navigateTo({            url: '/pages/tabbar/message/details?id=' + item.messageid,        })    },    /* banner */    bannerClick(e) {        const {            item        } = e.currentTarget.dataset,            hyperlink = item.hyperlink.split(":");        if (hyperlink[0] == 'path') wx.navigateTo({            url: hyperlink[1]        })    },    onShow() {        this.getTabBar().init();        if (this.data.msgList.length > 2) this.startDataCarousel();        this.queryMessage(0); //更新最新消息    },    onHide() {        clearInterval(DataCarousel);    },    onReady() {        // this.setListHeight();    },    /* 设置页面高度 */    setListHeight() {        this.selectComponent("#ListBox").setHeight(".grld-title", this);    },    onShareAppMessage() {}})
 |