apps.js 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183
  1. let authList = {};
  2. //通用
  3. function getapps() {
  4. const paths = [{
  5. name: "联系人",
  6. path: "/packageA/contacts/index",
  7. icon: "work-xiaochengxutongxunlu"
  8. }, {
  9. name: "工作汇报",
  10. path: "/packageA/report/index",
  11. icon: "work-gongzuohuibao"
  12. }, {
  13. name: "360°画像",
  14. path: "/portrayal/index/index",
  15. icon: "work-kehuhuaxiang"
  16. }, {
  17. name: "销售数据",
  18. path: "/salesPanel/index/index",
  19. icon: "work-xiaoshoushuju"
  20. }, {
  21. name: "数据总览",
  22. path: "/salesPanel/dataOverview/index",
  23. icon: "work-shujutongji"
  24. }];
  25. let app = [...getApp().globalData.queryPer.query(wx.getStorageSync('userauth'), ['通用'], ['通用', '工作汇报']),
  26. ...getApp().globalData.queryPer.query(wx.getStorageSync('userauth'), ['CRM'], ['业务管理', '数据统计'])
  27. ],
  28. list = [];
  29. app.forEach((v, i) => {
  30. v.apps.forEach(s => {
  31. authList[s.name] = {
  32. options: s.meta.auth.map(a => a.option),
  33. optionnames: s.meta.auth.map(a => a.optionname),
  34. istask: s.istask == 1,
  35. isdatafollowup: s.isdatafollowup == 1,
  36. isdatatag: s.isdatatag == 1,
  37. isdatateam: s.isdatateam == 1,
  38. }
  39. if (authList[s.name].options.some(s => s == "read")) {
  40. let i = paths.findIndex(k => k.name == s.meta.title);
  41. if (i != -1) {
  42. paths[i].index = i;
  43. paths[i].appName = s.name;
  44. list.push(paths[i])
  45. }
  46. }
  47. })
  48. });
  49. return dye(list.sort((a, b) => a.index - b.index))
  50. };
  51. //CRM
  52. function getcrm() {
  53. const paths = [{
  54. name: "市场活动",
  55. path: "/prsx/activity/index",
  56. icon: "work-shichanghuodong",
  57. objectname: "sat_campaign"
  58. }, {
  59. name: "医院管理",
  60. path: "/prsx/hospital/index",
  61. icon: "work-kehu",
  62. objectname: "sa_customers"
  63. }, {
  64. name: "科室管理",
  65. path: "/prsx/department/index",
  66. icon: "work-kehu",
  67. objectname: "sa_hospitaldep"
  68. }, {
  69. name: "医生管理",
  70. path: "/prsx/doctors/index",
  71. icon: "work-kehu",
  72. objectname: "sa_doctor"
  73. }, {
  74. name: "合同管理",
  75. path: "/packageA/contract/index",
  76. icon: "work-hetong",
  77. objectname: "sa_contract"
  78. }, {
  79. name: "营销目标",
  80. path: "/packageA/target/index",
  81. icon: "work-xiaochengxu_xiaoshoumubiao",
  82. objectname: "sa_salestarget"
  83. }, {
  84. name: "销售订单",
  85. path: "/packageA/orderForm/index",
  86. icon: "work-dingdan",
  87. objectname: "sa_order"
  88. }, {
  89. name: "经销商管理",
  90. path: "/prsx/dealer/index",
  91. icon: "work-dingdan",
  92. objectname: "sa_order"
  93. }];
  94. let crm = getApp().globalData.queryPer.query(wx.getStorageSync('userauth'), ['CRM'], ['业务管理', '销售管理', '营销目标']),
  95. list = [];
  96. crm.forEach(v => {
  97. v.apps.forEach(s => {
  98. authList[s.name] = {
  99. options: s.meta.auth.map(a => a.option),
  100. optionnames: s.meta.auth.map(a => a.optionname),
  101. istask: s.istask == 1,
  102. isdatafollowup: s.isdatafollowup == 1,
  103. isdatatag: s.isdatatag == 1,
  104. isdatateam: s.isdatateam == 1,
  105. }
  106. if (authList[s.name].options.some(s => s == "read")) {
  107. let i = paths.findIndex(k => k.name == s.meta.title);
  108. if (i != -1) {
  109. paths[i].index = i;
  110. paths[i].appName = s.name;
  111. list.push(paths[i])
  112. }
  113. }
  114. })
  115. });
  116. return dye(list.sort((a, b) => a.index - b.index))
  117. };
  118. //染色
  119. function dye(list) {
  120. let colorList = [{
  121. color: "#3874F6",
  122. bColor: "#F0F3FF",
  123. }, {
  124. color: "#5AB73F",
  125. bColor: "#F4FAEF",
  126. }, {
  127. color: "#F29C37",
  128. bColor: "#FCF6EF",
  129. }, {
  130. color: "#EB4B5C",
  131. bColor: "#FDF1ED",
  132. }, {
  133. color: "#3874F6",
  134. bColor: "#F0F3FF",
  135. }, {
  136. color: "#F29C37",
  137. bColor: "#FCF6EF",
  138. }, {
  139. color: "#EB4B5C",
  140. bColor: "#FDF1ED",
  141. }, {
  142. color: "#3874F6",
  143. bColor: "#F0F3FF",
  144. }, {
  145. color: "#5AB73F",
  146. bColor: "#F4FAEF",
  147. }, {
  148. color: "#F29C37",
  149. bColor: "#FCF6EF",
  150. }, {
  151. color: "#5AB73F",
  152. bColor: "#F4FAEF",
  153. }, {
  154. color: "#3874F6",
  155. bColor: "#F0F3FF",
  156. }, {
  157. color: "#F29C37",
  158. bColor: "#FCF6EF",
  159. }, {
  160. color: "#EB4B5C",
  161. bColor: "#FDF1ED",
  162. }, {
  163. color: "#5AB73F",
  164. bColor: "#F4FAEF",
  165. }];
  166. return list.map((v, i) => {
  167. if (getApp().globalData.http.appName && v.appName == getApp().globalData.http.appName) {
  168. wx.navigateTo({
  169. url: v.path
  170. })
  171. delete getApp().globalData.http.appName
  172. }
  173. return {
  174. ...v,
  175. ...colorList[i > colorList.length - 1 ? i - colorList.length : i]
  176. }
  177. })
  178. };
  179. module.exports = {
  180. getapps,
  181. getcrm,
  182. authList
  183. };