apps.js 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206
  1. let authList = {};
  2. //通用
  3. function getapps() {
  4. const paths = [{
  5. name: "服务受理",
  6. path: "/bgj/handling/index",
  7. icon: "work-xiaochengxutongxunlu"
  8. }, {
  9. name: "服务工单",
  10. path: "/bgj/workOrder/index",
  11. icon: "work-gongzuohuibao"
  12. }, {
  13. name: "客户档案",
  14. path: "/bgj/customerArchive/index",
  15. icon: "work-kehuhuaxiang"
  16. }, {
  17. name: "工人之家",
  18. path: "/bgj/workerHome/index",
  19. icon: "work-xiaoshoushuju"
  20. }];
  21. let app = [...getApp().globalData.queryPer.query(wx.getStorageSync('userauth'), ['班管家'], ['班管家'])],
  22. list = [];
  23. app.forEach((v, i) => {
  24. v.apps.forEach(s => {
  25. authList[s.name] = {
  26. options: s.meta.auth.map(a => a.option),
  27. optionnames: s.meta.auth.map(a => a.optionname),
  28. istask: s.istask == 1,
  29. isdatafollowup: s.isdatafollowup == 1,
  30. isdatatag: s.isdatatag == 1,
  31. isdatateam: s.isdatateam == 1,
  32. }
  33. if (authList[s.name].options.some(s => s == "read")) {
  34. let i = paths.findIndex(k => k.name == s.meta.title);
  35. if (i != -1) {
  36. paths[i].index = i;
  37. paths[i].appName = s.name;
  38. paths[i].remarks = s.remarks;
  39. list.push(paths[i])
  40. }
  41. }
  42. })
  43. });
  44. return dye(list.sort((a, b) => a.index - b.index))
  45. };
  46. //CRM
  47. function getcrm() {
  48. const paths = [{
  49. name: "行事历",
  50. path: "/prsx/calendar/index",
  51. icon: "work-hangshili",
  52. objectname: ""
  53. }, {
  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-yiyuanguanli",
  62. objectname: "sa_customers"
  63. }, {
  64. name: "科室管理",
  65. path: "/prsx/department/index",
  66. icon: "work-keshiguanli",
  67. objectname: "sa_hospitaldep"
  68. }, {
  69. name: "医生管理",
  70. path: "/prsx/doctors/index",
  71. icon: "work-yishengguanli",
  72. objectname: "sa_doctor"
  73. }, {
  74. name: "经销商管理",
  75. path: "/prsx/dealer/index",
  76. icon: "work-jingxiaoshangguanli",
  77. objectname: "sa_agents"
  78. }, {
  79. name: "经销商协议",
  80. path: "/prsx/contract/index",
  81. icon: "work-hetong",
  82. objectname: "sa_contract"
  83. }, {
  84. name: "试用申请",
  85. path: "/prsx/tryOut/index",
  86. icon: "work-shiyongshenqing",
  87. objectname: "sa_trial"
  88. }, {
  89. name: "安装确认",
  90. path: "/prsx/winstall/index",
  91. icon: "work-anzhuangqueren",
  92. objectname: "sa_install"
  93. }, {
  94. name: "销售订单",
  95. path: "/prsx/orderForm/index",
  96. icon: "work-dingdan",
  97. objectname: "sa_order"
  98. }, {
  99. name: "人员目标",
  100. path: "/salesPanel/personTarget/index",
  101. icon: "work-dingdan"
  102. }, {
  103. name: "医院目标",
  104. path: "/salesPanel/hospitalTarget/index",
  105. icon: "work-dingdan"
  106. }, {
  107. name: "经销商目标",
  108. path: "/salesPanel/agencyTarget/index",
  109. icon: "work-dingdan"
  110. }];
  111. let crm = getApp().globalData.queryPer.query(wx.getStorageSync('userauth'), ['CRM'], ['业务管理', '销售管理', '营销目标']),
  112. list = [];
  113. try {
  114. let xsl = getApp().globalData.queryPer.query(wx.getStorageSync('userauth'), ['行事历'], ['行事历'])[0]
  115. if (xsl) crm.push(xsl)
  116. } catch (error) {
  117. }
  118. crm.forEach(v => {
  119. v.apps.forEach(s => {
  120. authList[s.name] = {
  121. options: s.meta.auth.map(a => a.option),
  122. optionnames: s.meta.auth.map(a => a.optionname),
  123. istask: s.istask == 1,
  124. isdatafollowup: s.isdatafollowup == 1,
  125. isdatatag: s.isdatatag == 1,
  126. isdatateam: s.isdatateam == 1,
  127. }
  128. if (authList[s.name].options.some(s => s == "read")) {
  129. let i = paths.findIndex(k => k.name == s.meta.title);
  130. if (i != -1) {
  131. paths[i].index = i;
  132. paths[i].appName = s.name;
  133. list.push(paths[i])
  134. }
  135. }
  136. })
  137. });
  138. return dye(list.sort((a, b) => a.index - b.index))
  139. };
  140. //染色
  141. function dye(list) {
  142. let colorList = [{
  143. color: "#3874F6",
  144. bColor: "#F0F3FF",
  145. }, {
  146. color: "#5AB73F",
  147. bColor: "#F4FAEF",
  148. }, {
  149. color: "#F29C37",
  150. bColor: "#FCF6EF",
  151. }, {
  152. color: "#EB4B5C",
  153. bColor: "#FDF1ED",
  154. }, {
  155. color: "#3874F6",
  156. bColor: "#F0F3FF",
  157. }, {
  158. color: "#F29C37",
  159. bColor: "#FCF6EF",
  160. }, {
  161. color: "#EB4B5C",
  162. bColor: "#FDF1ED",
  163. }, {
  164. color: "#3874F6",
  165. bColor: "#F0F3FF",
  166. }, {
  167. color: "#5AB73F",
  168. bColor: "#F4FAEF",
  169. }, {
  170. color: "#F29C37",
  171. bColor: "#FCF6EF",
  172. }, {
  173. color: "#5AB73F",
  174. bColor: "#F4FAEF",
  175. }, {
  176. color: "#3874F6",
  177. bColor: "#F0F3FF",
  178. }, {
  179. color: "#F29C37",
  180. bColor: "#FCF6EF",
  181. }, {
  182. color: "#EB4B5C",
  183. bColor: "#FDF1ED",
  184. }, {
  185. color: "#5AB73F",
  186. bColor: "#F4FAEF",
  187. }];
  188. return list.map((v, i) => {
  189. if (getApp().globalData.http.appName && v.appName == getApp().globalData.http.appName) {
  190. wx.navigateTo({
  191. url: v.path
  192. })
  193. delete getApp().globalData.http.appName
  194. }
  195. return {
  196. ...v,
  197. ...colorList[i > colorList.length - 1 ? i - colorList.length : i]
  198. }
  199. })
  200. };
  201. module.exports = {
  202. getapps,
  203. getcrm,
  204. authList
  205. };