apps.js 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419
  1. let authList = {};
  2. //通用
  3. function getapps() {
  4. const paths = [{
  5. name: "签到",
  6. path: "/packageA/clockIn/index",
  7. icon: "work-qiandao"
  8. }, {
  9. name: "任务",
  10. path: "/packageA/work/index",
  11. icon: "work-renwu",
  12. objectname: "sys_task"
  13. }, {
  14. name: "联系人",
  15. path: "/packageA/contacts/index",
  16. icon: "work-xiaochengxutongxunlu"
  17. }, {
  18. name: "通讯录",
  19. path: "/packageA/contacts/index",
  20. icon: "work-xiaochengxutongxunlu"
  21. }, {
  22. name: "工作汇报",
  23. path: "/packageA/report/index",
  24. icon: "work-gongzuohuibao"
  25. }, {
  26. name: "作业看板",
  27. path: "/packageA/achievement/index",
  28. icon: "work-zuoyekanban"
  29. }, {
  30. name: "销售漏斗",
  31. path: "/salesPanel/salesHourglass/index",
  32. icon: "work-xiaoshouloudou"
  33. }, {
  34. name: "360°画像",
  35. path: "/portrayal/index/index",
  36. icon: "work-kehuhuaxiang"
  37. }, {
  38. name: "销售数据",
  39. path: "/salesPanel/index/index",
  40. icon: "work-xiaoshoushuju"
  41. }];
  42. let app = [...getApp().globalData.queryPer.query(wx.getStorageSync('userauth'), ['通用'], ['通用']), ...getApp().globalData.queryPer.query(wx.getStorageSync('userauth'), ['数据统计'], ['数据分析'])],
  43. list = [];
  44. app.forEach((v, i) => {
  45. v.apps.forEach(s => {
  46. authList[s.name] = {
  47. options: s.meta.auth.map(a => a.option),
  48. optionnames: s.meta.auth.map(a => a.optionname),
  49. istask: s.istask == 1,
  50. isdatafollowup: s.isdatafollowup == 1,
  51. isdatatag: s.isdatatag == 1,
  52. isdatateam: s.isdatateam == 1,
  53. }
  54. if (authList[s.name].options.some(s => s == "read")) {
  55. let i = paths.findIndex(k => k.name == s.meta.title);
  56. if (i != -1) {
  57. paths[i].index = i;
  58. paths[i].appName = s.name;
  59. list.push(paths[i])
  60. }
  61. }
  62. })
  63. });
  64. return dye(list.sort((a, b) => a.index - b.index))
  65. };
  66. //营销工具
  67. function gettool() {
  68. const paths = [{
  69. name: "通告",
  70. path: "/pages/annunciate/index",
  71. icon: "work-a-shouyejingangqutonggao",
  72. objectname: "sat_noticeids"
  73. }, {
  74. name: "营销物料",
  75. path: "/pages/mediaLibrary/index",
  76. icon: "work-a-shouyejingangquyingxiaowuliao",
  77. objectname: "sys_attachment"
  78. }, {
  79. name: "推广素材",
  80. path: "/pages/promotional/index",
  81. icon: "work-a-shouyejingangqutuiguangsucai",
  82. objectname: "sat_sharematerial"
  83. }, {
  84. name: "商学院",
  85. path: "/pages/college/index",
  86. icon: "work-a-shangxueyuanxuexi",
  87. objectname: "sat_courseware"
  88. }, {
  89. name: "提报",
  90. path: "/pages/submission/index",
  91. icon: "work-a-tibaoguanlitibao",
  92. objectname: "sat_submiteditmodel"
  93. }];
  94. let tool = getApp().globalData.queryPer.query(wx.getStorageSync('userauth'), ['营销工具'], paths.map(v => v.name)),
  95. list = [];
  96. tool.forEach(v => {
  97. let auth = v.apps[0].meta.auth;
  98. if (!auth.some(r => r.option == 'read')) return;
  99. authList[v.apps[0].name] = {
  100. options: auth.map(a => a.option),
  101. optionnames: auth.map(a => a.optionname)
  102. };
  103. let item = paths.find(s => s.name == v.systemmodulename);
  104. item && list.push(item)
  105. });
  106. return dye(list)
  107. };
  108. //CRM
  109. function getcrm() {
  110. const paths = [{
  111. name: "市场活动",
  112. path: "/packageA/activity/index",
  113. icon: "work-shichanghuodong",
  114. objectname: "sat_campaign"
  115. }, {
  116. name: "公海线索",
  117. path: "/packageA/publicClue/index",
  118. icon: "work-xiaochengxu_xiaoshoumubiao",
  119. objectname: "sat_orderclue"
  120. }, {
  121. name: "销售线索",
  122. path: "/packageA/saleClue/index",
  123. icon: "work-xiaoshouxiansuo",
  124. objectname: "sat_orderclue"
  125. }, {
  126. name: "线索管理",
  127. path: "/packageA/saleAdmin/index",
  128. icon: "work-xiaoshouxiansuo",
  129. objectname: "sat_orderclue"
  130. }, {
  131. name: "公海客户",
  132. path: "/packageA/publicCustomer/index",
  133. icon: "work-gonghaikehu",
  134. objectname: "sa_customers"
  135. }, {
  136. name: "我的客户",
  137. path: "/packageA/setclient/index",
  138. icon: "work-kehu",
  139. objectname: "sa_customers"
  140. }, {
  141. name: "项目商机",
  142. path: "/packageA/project/index",
  143. icon: "work-xiangmushangji",
  144. objectname: "sa_project"
  145. }, {
  146. name: "报价单",
  147. path: "/packageA/offers/index",
  148. icon: "work-xiangmubaojia",
  149. objectname: "sa_quotedprice"
  150. }, {
  151. name: "竞争对手",
  152. path: "/packageA/opponent/index",
  153. icon: "work-jingzhengduishou",
  154. objectname: "sa_competitor"
  155. }, {
  156. name: "合同",
  157. path: "/packageA/contract/index",
  158. icon: "work-hetong",
  159. objectname: "sa_contract"
  160. }, {
  161. name: "销售目标",
  162. path: "/packageA/target/index",
  163. icon: "work-xiaochengxu_xiaoshoumubiao",
  164. objectname: "sa_salestarget"
  165. }, {
  166. name: "销售预测",
  167. path: "/packageA/salesForecasting/index",
  168. icon: "work-xiaochengxu_xiaoshouyuce"
  169. }, {
  170. name: "项目成交预测",
  171. path: "/packageA/finishforecast/index",
  172. icon: "work-xiangmuchengjiaoyuce",
  173. objectname: "sa_salesforecastbill"
  174. }, {
  175. name: "项目成交预测管理",
  176. path: "/packageA/finishforecast/admin",
  177. icon: "work-xiangmuchengjiaoyuceguanli"
  178. }, {
  179. name: "出货开票预测",
  180. path: "/packageA/invoiceforecast/index",
  181. icon: "work-chuhuokaipiaoyuce",
  182. objectname: "sa_salesforecastbill"
  183. }, {
  184. name: "出货开票预测管理",
  185. path: "/packageA/invoiceforecast/admin",
  186. icon: "work-chuhuokaipiaoyuceguanli"
  187. }];
  188. let crm = getApp().globalData.queryPer.query(wx.getStorageSync('userauth'), ['CRM'], ['销售预测', '销售线索', '销售目标', '合同管理', '客户管理', '项目管理']),
  189. list = [];
  190. crm.forEach(v => {
  191. v.apps.forEach(s => {
  192. authList[s.name] = {
  193. options: s.meta.auth.map(a => a.option),
  194. optionnames: s.meta.auth.map(a => a.optionname),
  195. istask: s.istask == 1,
  196. isdatafollowup: s.isdatafollowup == 1,
  197. isdatatag: s.isdatatag == 1,
  198. isdatateam: s.isdatateam == 1,
  199. }
  200. if (authList[s.name].options.some(s => s == "read")) {
  201. let i = paths.findIndex(k => k.name == s.meta.title);
  202. if (i != -1) {
  203. paths[i].index = i;
  204. paths[i].appName = s.name;
  205. list.push(paths[i])
  206. }
  207. }
  208. })
  209. });
  210. return dye(list.sort((a, b) => a.index - b.index))
  211. };
  212. //E订单
  213. function getedd() {
  214. let paths = [{
  215. name: "商城",
  216. path: "/packageA/market/index",
  217. icon: "work-shangcheng",
  218. objectname: "sa_itemgroup"
  219. }, {
  220. name: "销售订单",
  221. path: "/packageA/orderForm/index",
  222. icon: "work-dingdan",
  223. objectname: "sa_order"
  224. }, {
  225. name: "收货",
  226. path: "/packageA/shipment/index",
  227. icon: "work-shouhuo",
  228. objectname: "sa_logistics"
  229. }, {
  230. name: "业绩目标",
  231. path: "/packageA/target/index",
  232. icon: "work-yejimubiao"
  233. }, {
  234. name: "账户",
  235. path: "/packageA/account/index",
  236. icon: "work-zhanghu",
  237. objectname: "sa_accountbalance"
  238. }, {
  239. name: "促销活动",
  240. path: "/packageA/activity/index",
  241. icon: "work-cuxiaohuodong",
  242. objectname: "sa_promotion"
  243. }, {
  244. name: "工具查询",
  245. path: "/packageA/tool/index",
  246. icon: "work-gongjuchaxun"
  247. }, {
  248. name: "购物车",
  249. path: "/packageA/shopping/index",
  250. icon: "work-gouwuche"
  251. }, {
  252. name: "开票",
  253. path: "/packageA/invoice/index",
  254. icon: "work-kaipiao",
  255. objectname: "sa_invoiceapplyid"
  256. }, {
  257. name: "打款凭证",
  258. path: "/packageA/remitVoucher/index",
  259. icon: "work-dakuanpingzheng"
  260. }, {
  261. name: "逾期账款",
  262. path: "/packageA/receivables/index",
  263. icon: "work-kaipiao",
  264. }, {
  265. name: "应收账款",
  266. path: "/packageA/accountReceivable/index",
  267. icon: "work-yingshouzhangkuan",
  268. }, {
  269. name: "工具借用",
  270. path: "/packageA/borrow/index",
  271. icon: "work-shujuchaxun",
  272. objectname: "sa_order"
  273. }, {
  274. name: "工具归还",
  275. path: "/packageA/toolBill/index",
  276. icon: "work-shujuchaxun",
  277. objectname: "sa_order"
  278. }, {
  279. name: "退返申请",
  280. path: "/packageA/returnOne/index",
  281. icon: "work-shujuchaxun",
  282. objectname: "sa_aftersalesmag"
  283. }, {
  284. name: "居间费结算",
  285. path: "/packageA/betweenFee/index",
  286. icon: "work-jujianfeijiesuan"
  287. }, ];
  288. let edd = getApp().globalData.queryPer.query(wx.getStorageSync('userauth'), ["E-订单"], ["商品档案", "销售管理", "财务管理", "售后管理", "发货与库存", "业绩查询"]),
  289. list = [];
  290. edd.forEach(v => {
  291. v.apps.forEach(s => {
  292. authList[s.name] = {
  293. options: s.meta.auth.map(a => a.option),
  294. optionnames: s.meta.auth.map(a => a.optionname),
  295. }
  296. if (authList[s.name].options.some(s => s == "read")) {
  297. let i = paths.findIndex(k => k.name == s.meta.title);
  298. if (i != -1) {
  299. paths[i].index = i;
  300. paths[i].appName = s.name;
  301. list.push(paths[i])
  302. }
  303. }
  304. })
  305. });
  306. return dye(list.sort((a, b) => a.index - b.index))
  307. };
  308. //E服务
  309. function geteservice() {
  310. let paths = [{
  311. name: "工单",
  312. path: "/Eservice/workOrder/index",
  313. icon: "work-gongdan",
  314. objectname: "sa_workorder"
  315. }, {
  316. name: "申请单",
  317. path: "/Eservice/agent/serviceBillList/index",
  318. icon: "work-shenqingdan",
  319. // objectname: "sa_serviceorder"
  320. }, {
  321. name: "申请单管理",
  322. path: "/Eservice/workerLeader/serviceBillList/index",
  323. icon: "work-shenqingdanguanli",
  324. // objectname: "sa_serviceorder"
  325. }, {
  326. name: "业务员服务申请单",
  327. path: "/Eservice/saler/serviceBillList/index",
  328. icon: "work-yewuyuanfuwushenqingdan",
  329. // objectname: "sa_serviceorder"
  330. }];
  331. let eservice = getApp().globalData.queryPer.query(wx.getStorageSync('userauth'), ["E-服务"], ["工单管理"]),
  332. list = [];
  333. eservice.forEach(v => {
  334. v.apps.forEach(s => {
  335. authList[s.name] = {
  336. options: s.meta.auth.map(a => a.option),
  337. optionnames: s.meta.auth.map(a => a.optionname),
  338. }
  339. if (authList[s.name].options.some(s => s == "read")) {
  340. let i = paths.findIndex(k => k.name == s.meta.title);
  341. if (i != -1) {
  342. paths[i].index = i;
  343. paths[i].appName = s.name;
  344. list.push(paths[i])
  345. }
  346. }
  347. })
  348. });
  349. return dye(list.sort((a, b) => a.index - b.index))
  350. };
  351. //染色
  352. function dye(list) {
  353. let colorList = [{
  354. color: "#3874F6",
  355. bColor: "#F0F3FF",
  356. }, {
  357. color: "#5AB73F",
  358. bColor: "#F4FAEF",
  359. }, {
  360. color: "#F29C37",
  361. bColor: "#FCF6EF",
  362. }, {
  363. color: "#EB4B5C",
  364. bColor: "#FDF1ED",
  365. }, {
  366. color: "#3874F6",
  367. bColor: "#F0F3FF",
  368. }, {
  369. color: "#F29C37",
  370. bColor: "#FCF6EF",
  371. }, {
  372. color: "#EB4B5C",
  373. bColor: "#FDF1ED",
  374. }, {
  375. color: "#3874F6",
  376. bColor: "#F0F3FF",
  377. }, {
  378. color: "#5AB73F",
  379. bColor: "#F4FAEF",
  380. }, {
  381. color: "#F29C37",
  382. bColor: "#FCF6EF",
  383. }, {
  384. color: "#5AB73F",
  385. bColor: "#F4FAEF",
  386. }, {
  387. color: "#3874F6",
  388. bColor: "#F0F3FF",
  389. }, {
  390. color: "#F29C37",
  391. bColor: "#FCF6EF",
  392. }, {
  393. color: "#EB4B5C",
  394. bColor: "#FDF1ED",
  395. }, {
  396. color: "#5AB73F",
  397. bColor: "#F4FAEF",
  398. }];
  399. return list.map((v, i) => {
  400. if (getApp().globalData.http.appName && v.appName == getApp().globalData.http.appName) {
  401. wx.navigateTo({
  402. url: v.path
  403. })
  404. delete getApp().globalData.http.appName
  405. }
  406. return {
  407. ...v,
  408. ...colorList[i > colorList.length - 1 ? i - colorList.length : i]
  409. }
  410. })
  411. };
  412. module.exports = {
  413. getapps,
  414. gettool,
  415. getcrm,
  416. getedd,
  417. geteservice,
  418. authList
  419. };