apps.js 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244
  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. name: "数据总览",
  43. path: "/salesPanel/dataOverview/index",
  44. icon: "work-shujutongji"
  45. }];
  46. let app = [...getApp().globalData.queryPer.query(wx.getStorageSync('userauth'), ['通用'], ['通用']), ...getApp().globalData.queryPer.query(wx.getStorageSync('userauth'), ['数据统计'], ['数据分析'])],
  47. list = [];
  48. app.forEach((v, i) => {
  49. v.apps.forEach(s => {
  50. authList[s.name] = {
  51. options: s.meta.auth.map(a => a.option),
  52. optionnames: s.meta.auth.map(a => a.optionname),
  53. istask: s.istask == 1,
  54. isdatafollowup: s.isdatafollowup == 1,
  55. isdatatag: s.isdatatag == 1,
  56. isdatateam: s.isdatateam == 1,
  57. }
  58. if (authList[s.name].options.some(s => s == "read")) {
  59. let i = paths.findIndex(k => k.name == s.meta.title);
  60. if (i != -1) {
  61. paths[i].index = i;
  62. paths[i].appName = s.name;
  63. list.push(paths[i])
  64. }
  65. }
  66. })
  67. });
  68. return dye(list.sort((a, b) => a.index - b.index))
  69. };
  70. //CRM
  71. function getcrm() {
  72. const paths = [{
  73. name: "市场活动",
  74. path: "/packageA/activity/index",
  75. icon: "work-shichanghuodong",
  76. objectname: "sat_campaign"
  77. }, {
  78. name: "公海线索",
  79. path: "/packageA/publicClue/index",
  80. icon: "work-xiaochengxu_xiaoshoumubiao",
  81. objectname: "sat_orderclue"
  82. }, {
  83. name: "销售线索",
  84. path: "/packageA/saleClue/index",
  85. icon: "work-xiaoshouxiansuo",
  86. objectname: "sat_orderclue"
  87. }, {
  88. name: "线索管理",
  89. path: "/packageA/saleAdmin/index",
  90. icon: "work-xiaoshouxiansuo",
  91. objectname: "sat_orderclue"
  92. }, {
  93. name: "公海客户",
  94. path: "/packageA/publicCustomer/index",
  95. icon: "work-gonghaikehu",
  96. objectname: "sa_customers"
  97. }, {
  98. name: "我的客户",
  99. path: "/packageA/setclient/index",
  100. icon: "work-kehu",
  101. objectname: "sa_customers"
  102. }, {
  103. name: "项目商机",
  104. path: "/packageA/project/index",
  105. icon: "work-xiangmushangji",
  106. objectname: "sa_project"
  107. }, {
  108. name: "报价单",
  109. path: "/packageA/offers/index",
  110. icon: "work-xiangmubaojia",
  111. objectname: "sa_quotedprice"
  112. }, {
  113. name: "竞争对手",
  114. path: "/packageA/opponent/index",
  115. icon: "work-jingzhengduishou",
  116. objectname: "sa_competitor"
  117. }, {
  118. name: "合同",
  119. path: "/packageA/contract/index",
  120. icon: "work-hetong",
  121. objectname: "sa_contract"
  122. }, {
  123. name: "销售目标",
  124. path: "/packageA/target/index",
  125. icon: "work-xiaochengxu_xiaoshoumubiao",
  126. objectname: "sa_salestarget"
  127. }, {
  128. name: "销售预测",
  129. path: "/packageA/salesForecasting/index",
  130. icon: "work-xiaochengxu_xiaoshouyuce"
  131. }, {
  132. name: "项目成交预测",
  133. path: "/packageA/finishforecast/index",
  134. icon: "work-xiangmuchengjiaoyuce",
  135. objectname: "sa_salesforecastbill"
  136. }, {
  137. name: "项目成交预测管理",
  138. path: "/packageA/finishforecast/admin",
  139. icon: "work-xiangmuchengjiaoyuceguanli"
  140. }, {
  141. name: "出货开票预测",
  142. path: "/packageA/invoiceforecast/index",
  143. icon: "work-chuhuokaipiaoyuce",
  144. objectname: "sa_salesforecastbill"
  145. }, {
  146. name: "出货开票预测管理",
  147. path: "/packageA/invoiceforecast/admin",
  148. icon: "work-chuhuokaipiaoyuceguanli"
  149. }, {
  150. name: "销售订单",
  151. path: "/packageA/orderForm/index",
  152. icon: "work-dingdan",
  153. objectname: "sa_order"
  154. }, ];
  155. let crm = getApp().globalData.queryPer.query(wx.getStorageSync('userauth'), ['CRM'], ['销售预测', '销售线索', '销售目标', '合同管理', '客户管理', '项目管理', '销售管理']),
  156. list = [];
  157. crm.forEach(v => {
  158. v.apps.forEach(s => {
  159. authList[s.name] = {
  160. options: s.meta.auth.map(a => a.option),
  161. optionnames: s.meta.auth.map(a => a.optionname),
  162. istask: s.istask == 1,
  163. isdatafollowup: s.isdatafollowup == 1,
  164. isdatatag: s.isdatatag == 1,
  165. isdatateam: s.isdatateam == 1,
  166. }
  167. if (authList[s.name].options.some(s => s == "read")) {
  168. let i = paths.findIndex(k => k.name == s.meta.title);
  169. if (i != -1) {
  170. paths[i].index = i;
  171. paths[i].appName = s.name;
  172. list.push(paths[i])
  173. }
  174. }
  175. })
  176. });
  177. return dye(list.sort((a, b) => a.index - b.index))
  178. };
  179. //染色
  180. function dye(list) {
  181. let colorList = [{
  182. color: "#3874F6",
  183. bColor: "#F0F3FF",
  184. }, {
  185. color: "#5AB73F",
  186. bColor: "#F4FAEF",
  187. }, {
  188. color: "#F29C37",
  189. bColor: "#FCF6EF",
  190. }, {
  191. color: "#EB4B5C",
  192. bColor: "#FDF1ED",
  193. }, {
  194. color: "#3874F6",
  195. bColor: "#F0F3FF",
  196. }, {
  197. color: "#F29C37",
  198. bColor: "#FCF6EF",
  199. }, {
  200. color: "#EB4B5C",
  201. bColor: "#FDF1ED",
  202. }, {
  203. color: "#3874F6",
  204. bColor: "#F0F3FF",
  205. }, {
  206. color: "#5AB73F",
  207. bColor: "#F4FAEF",
  208. }, {
  209. color: "#F29C37",
  210. bColor: "#FCF6EF",
  211. }, {
  212. color: "#5AB73F",
  213. bColor: "#F4FAEF",
  214. }, {
  215. color: "#3874F6",
  216. bColor: "#F0F3FF",
  217. }, {
  218. color: "#F29C37",
  219. bColor: "#FCF6EF",
  220. }, {
  221. color: "#EB4B5C",
  222. bColor: "#FDF1ED",
  223. }, {
  224. color: "#5AB73F",
  225. bColor: "#F4FAEF",
  226. }];
  227. return list.map((v, i) => {
  228. if (getApp().globalData.http.appName && v.appName == getApp().globalData.http.appName) {
  229. wx.navigateTo({
  230. url: v.path
  231. })
  232. delete getApp().globalData.http.appName
  233. }
  234. return {
  235. ...v,
  236. ...colorList[i > colorList.length - 1 ? i - colorList.length : i]
  237. }
  238. })
  239. };
  240. module.exports = {
  241. getapps,
  242. getcrm,
  243. authList
  244. };