index.js 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319
  1. Page({
  2. data: {
  3. appid: "wx08b337e860e3ea58",
  4. },
  5. onLoad(options) {
  6. this.refreshData() //更新权限等信息
  7. this.setData({ //最近使用记录
  8. recorded: wx.getStorageSync('recorded') || []
  9. });
  10. },
  11. /* 更新站点信息 */
  12. refreshData() {
  13. if (wx.getStorageSync('userauth').length != 0) {
  14. let authList = {},
  15. entrance = [{
  16. label: "通用",
  17. appid: "wx08b337e860e3ea58",
  18. icon: "work-tongyong",
  19. list: dye([{
  20. name: "签到",
  21. path: "/packageA/clockIn/index",
  22. icon: "work-a-wodemendianxinxidizhi"
  23. }, {
  24. name: "任务",
  25. path: "/packageA/work/index",
  26. icon: "work-a-woderenwuzhongxin"
  27. }, {
  28. name: "通讯录",
  29. path: "/packageA/contacts/index",
  30. icon: "work-xiaochengxutongxunlu"
  31. }])
  32. }, {
  33. label: "营销工具",
  34. appid: "wx08b337e860e3ea58",
  35. icon: "work-yingxiaogongju",
  36. list: gettool()
  37. }, {
  38. label: "CRM",
  39. appid: "wx08b337e860e3ea58",
  40. icon: "work-CRM",
  41. list: getcrm()
  42. }, {
  43. label: "E-订单",
  44. appid: "wxc1b6ae925ac1d06a",
  45. icon: "work-E-dingdan",
  46. list: getedd()
  47. }];
  48. //营销工具
  49. function gettool() {
  50. const paths = [{
  51. name: "通告",
  52. path: "/pages/annunciate/index",
  53. icon: "work-a-shouyejingangqutonggao"
  54. }, {
  55. name: "营销物料",
  56. path: "/pages/tabbar/smartStore/index",
  57. icon: "work-a-shouyejingangquyingxiaowuliao",
  58. openType: "switchTab"
  59. }, {
  60. name: "推广素材",
  61. path: "/pages/promotional/index",
  62. icon: "work-a-shouyejingangqutuiguangsucai"
  63. }, {
  64. name: "商学院",
  65. path: "/pages/college/index",
  66. icon: "work-a-shangxueyuanxuexi"
  67. }, {
  68. name: "提报",
  69. path: "/pages/submission/index",
  70. icon: "work-a-tibaoguanlitibao"
  71. }];
  72. let tool = getApp().globalData.queryPer.query(wx.getStorageSync('userauth'), ['营销工具'], paths.map(v => v.name)),
  73. list = [];
  74. tool.forEach(v => {
  75. let auth = v.apps[0].meta.auth;
  76. if (!auth.some(r => r.option == 'read')) return;
  77. authList[v.apps[0].name] = {
  78. options: auth.map(a => a.option),
  79. optionnames: auth.map(a => a.optionname)
  80. };
  81. let item = paths.find(s => s.name == v.systemmodulename);
  82. item && list.push(item)
  83. });
  84. return dye(list)
  85. };
  86. //CRM
  87. function getcrm() {
  88. const paths = [{
  89. name: "市场活动",
  90. path: "/packageA/activity/index",
  91. icon: "work-shichanghuodong",
  92. }, {
  93. name: "公海线索",
  94. path: "/packageA/publicClue/index",
  95. icon: "work-xiaochengxu_xiaoshoumubiao"
  96. }, {
  97. name: "销售线索",
  98. path: "/packageA/saleClue/index",
  99. icon: "work-xiaoshouxiansuo"
  100. }, {
  101. name: "公海客户",
  102. path: "/packageA/publicCustomer/index",
  103. icon: "work-gonghaikehu"
  104. }, {
  105. name: "客户",
  106. path: "/packageA/setclient/index",
  107. icon: "work-kehu"
  108. }, {
  109. name: "项目商机",
  110. path: "/packageA/project/index",
  111. icon: "work-xiangmushangji"
  112. }, {
  113. name: "报价单",
  114. path: "/packageA/offers/index",
  115. icon: "work-xiangmubaojia"
  116. }, {
  117. name: "竞争对手",
  118. path: "/packageA/opponent/index",
  119. icon: "work-jingzhengduishou"
  120. }, {
  121. name: "合同",
  122. path: "/packageA/contract/index",
  123. icon: "work-hetong"
  124. }, {
  125. name: "销售目标",
  126. path: "/packageA/target/index",
  127. icon: "work-xiaochengxu_xiaoshoumubiao"
  128. }, {
  129. name: "销售预测",
  130. path: "/packageA/salesForecasting/index",
  131. icon: "work-xiaochengxu_xiaoshouyuce"
  132. }];
  133. let crm = getApp().globalData.queryPer.query(wx.getStorageSync('userauth'), ['CRM'], ['销售预测', '销售线索', '销售目标', '合同管理', '客户管理', '项目管理']),
  134. list = [];
  135. crm.forEach(v => {
  136. v.apps.forEach(s => {
  137. authList[s.name] = {
  138. options: s.meta.auth.map(a => a.option),
  139. optionnames: s.meta.auth.map(a => a.optionname),
  140. }
  141. if (authList[s.name].options.some(s => s == "read")) {
  142. let i = paths.findIndex(k => k.name == s.meta.title);
  143. if (i != -1) {
  144. paths[i].index = i;
  145. list.push(paths[i])
  146. }
  147. }
  148. })
  149. });
  150. return dye(list.sort((a, b) => a.index - b.index))
  151. };
  152. //E订单
  153. function getedd() {
  154. let paths = [{
  155. name: "商城",
  156. path: "/packageA/market/index",
  157. icon: "work-shangcheng"
  158. }, {
  159. name: "销售订单",
  160. path: "/packageA/orderForm/index",
  161. icon: "work-dingdan"
  162. }, {
  163. name: "收货",
  164. path: "/packageA/shipment/index",
  165. icon: "work-shouhuo"
  166. }, {
  167. name: "业绩目标",
  168. path: "/packageA/target/index",
  169. icon: "work-yejimubiao"
  170. }, {
  171. name: "账户",
  172. path: "/packageA/account/index",
  173. icon: "work-zhanghu"
  174. }, {
  175. name: "促销活动",
  176. path: "/packageA/activity/index",
  177. icon: "work-cuxiaohuodong"
  178. }, {
  179. name: "工具查询",
  180. path: "/packageA/tool/index",
  181. icon: "work-gongjuchaxun"
  182. }, {
  183. name: "购物车",
  184. path: "/packageA/shopping/index",
  185. icon: "work-gouwuche"
  186. }, {
  187. name: "开票",
  188. path: "/packageA/invoice/index",
  189. icon: "work-kaipiao"
  190. }, {
  191. name: "打款凭证",
  192. path: "/packageA/remitVoucher/index",
  193. icon: "work-dakuanpingzheng"
  194. }, {
  195. name: "工具借用",
  196. path: "/packageA/borrow/index",
  197. icon: "work-shujuchaxun"
  198. }, {
  199. name: "工具归还",
  200. path: "/packageA/toolBill/index",
  201. icon: "work-shujuchaxun"
  202. }, {
  203. name: "居间费结算",
  204. path: "/packageA/betweenFee/index",
  205. icon: "work-jujianfeijiesuan"
  206. }];
  207. /* , {
  208. name: "数据查询",
  209. path: "#",
  210. icon: "work-shujuchaxun"
  211. } */
  212. let edd = getApp().globalData.queryPer.query(wx.getStorageSync('userauth'), ["E-订单"], ["商品档案", "销售管理", "财务管理", "售后管理", "发货与库存", "业绩查询"]),
  213. list = [];
  214. edd.forEach(v => {
  215. v.apps.forEach(s => {
  216. authList[s.name] = {
  217. options: s.meta.auth.map(a => a.option),
  218. optionnames: s.meta.auth.map(a => a.optionname),
  219. }
  220. if (authList[s.name].options.some(s => s == "read")) {
  221. let i = paths.findIndex(k => k.name == s.meta.title);
  222. if (i != -1) {
  223. paths[i].index = i;
  224. list.push(paths[i])
  225. }
  226. }
  227. })
  228. });
  229. return dye(list.sort((a, b) => a.index - b.index))
  230. };
  231. //染色
  232. function dye(list) {
  233. let colorList = [{
  234. color: "#3874F6",
  235. bColor: "#F0F3FF",
  236. }, {
  237. color: "#5AB73F",
  238. bColor: "#F4FAEF",
  239. }, {
  240. color: "#F29C37",
  241. bColor: "#FCF6EF",
  242. }, {
  243. color: "#EB4B5C",
  244. bColor: "#FDF1ED",
  245. }, {
  246. color: "#3874F6",
  247. bColor: "#F0F3FF",
  248. }, {
  249. color: "#F29C37",
  250. bColor: "#FCF6EF",
  251. }, {
  252. color: "#EB4B5C",
  253. bColor: "#FDF1ED",
  254. }, {
  255. color: "#3874F6",
  256. bColor: "#F0F3FF",
  257. }, {
  258. color: "#5AB73F",
  259. bColor: "#F4FAEF",
  260. }, {
  261. color: "#F29C37",
  262. bColor: "#FCF6EF",
  263. }, {
  264. color: "#5AB73F",
  265. bColor: "#F4FAEF",
  266. }, {
  267. color: "#3874F6",
  268. bColor: "#F0F3FF",
  269. }, {
  270. color: "#F29C37",
  271. bColor: "#FCF6EF",
  272. }, {
  273. color: "#EB4B5C",
  274. bColor: "#FDF1ED",
  275. }, {
  276. color: "#5AB73F",
  277. bColor: "#F4FAEF",
  278. }];
  279. return list.map((v, i) => {
  280. return {
  281. ...v,
  282. ...colorList[i > colorList.length - 1 ? i - colorList.length : i]
  283. }
  284. })
  285. };
  286. wx.setStorageSync('auth', authList)
  287. this.setData({
  288. entrance,
  289. auth: JSON.stringify(authList),
  290. userMsg: JSON.stringify(wx.getStorageSync('userMsg'))
  291. })
  292. } else {
  293. setTimeout(this.refreshData, 10);
  294. return;
  295. }
  296. },
  297. /* 使用记录 */
  298. openRecord(e) {
  299. let {
  300. item,
  301. it
  302. } = e.currentTarget.dataset;
  303. if (!it) return;
  304. if (item.appid) it.appid = item.appid;
  305. this.data.recorded.unshift(it);
  306. let recorded = this.data.recorded.reduce((pre, cur) => {
  307. if (!pre.some(v => v.name == cur.name)) pre.push(cur)
  308. return pre
  309. }, []);
  310. this.setData({
  311. recorded: recorded.slice(0, 5)
  312. })
  313. wx.setStorageSync('recorded', recorded.slice(0, 5))
  314. },
  315. onShow() {
  316. this.getTabBar().init();
  317. },
  318. })