index.js 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295
  1. let pageInit = null,
  2. _Http = getApp().globalData.http;
  3. Page({
  4. data: {
  5. PageCur: 'Home',
  6. collectCount: "", //购物车商品数量
  7. msgList: []
  8. },
  9. onLoad(options) {
  10. pageInit = {
  11. Home: false,
  12. Message: false,
  13. Market: false,
  14. Collect: false,
  15. UserCenter: false,
  16. };
  17. if (options.PageCur) this.setData({
  18. PageCur: options.PageCur
  19. })
  20. this.refreshData();
  21. this.getCollectCount();
  22. this.updateMsgCount();
  23. },
  24. /**
  25. * 更新站点信息
  26. * 主要用来渲染首页的banner和宫格
  27. */
  28. refreshData() {
  29. getApp().globalData.getCollectCount = this.getCollectCount.bind(this); //更新购物车件数
  30. getApp().globalData.socketCallback = this.updateMsgCount.bind(this); //更新信息数量
  31. getApp().globalData.changeBar = this.cutBar.bind(this); //切换首页页面
  32. let page = this.selectComponent("#Home");
  33. if (page && wx.getStorageSync('userauth').length != 0) {
  34. let authList = {},
  35. entrance = [{
  36. label: "营销工具",
  37. icon: "work-yingxiaogongju",
  38. appid: "wx7505ddb0a1ec6146",
  39. list: gettool()
  40. }, {
  41. label: "E-订单",
  42. appid: "wx7505ddb0a1ec6146",
  43. icon: "work-E-dingdan",
  44. list: getedd()
  45. }];
  46. //营销工具
  47. function gettool() {
  48. const paths = [{
  49. name: "通告",
  50. path: "/marketing/annunciate/index",
  51. icon: "work-a-shouyejingangqutonggao",
  52. objectname: "sat_notice"
  53. }, {
  54. name: "营销物料",
  55. path: "/marketing/mediaLibrary/index",
  56. icon: "work-a-shouyejingangquyingxiaowuliao",
  57. objectname: "sys_attachment"
  58. }, {
  59. name: "推广素材",
  60. path: "/marketing/promotional/index",
  61. icon: "work-a-shouyejingangqutuiguangsucai",
  62. objectname: "sat_sharematerial"
  63. }, {
  64. name: "商学院",
  65. path: "/marketing/college/index",
  66. icon: "work-a-shangxueyuanxuexi",
  67. objectname: "sat_courseware"
  68. }, {
  69. name: "提报",
  70. path: "/marketing/submission/index",
  71. icon: "work-a-tibaoguanlitibao",
  72. objectname: "sat_submiteditmodel"
  73. }];
  74. let tool = getApp().globalData.queryPer.query(wx.getStorageSync('userauth'), ['营销工具'], paths.map(v => v.name)),
  75. list = [];
  76. tool.forEach(v => {
  77. let auth = v.apps[0].meta.auth;
  78. if (!auth.some(r => r.option == 'read')) return;
  79. authList[v.apps[0].name] = {
  80. options: auth.map(a => a.option),
  81. optionnames: auth.map(a => a.optionname)
  82. };
  83. let item = paths.find(s => s.name == v.systemmodulename);
  84. item && list.push(item)
  85. });
  86. return dye(list.sort((a, b) => a.index - b.index))
  87. };
  88. //E订单
  89. function getedd() {
  90. let paths = [{
  91. name: "商城",
  92. PageCur: "Market",
  93. icon: "work-shangcheng"
  94. }, {
  95. name: "销售订单",
  96. path: "/packageA/orderForm/index",
  97. icon: "work-dingdan"
  98. }, {
  99. name: "订单明细",
  100. path: "/packageA/orderForm/rows",
  101. icon: "work-dingdan"
  102. }, {
  103. name: "账户",
  104. path: "/packageA/account/index",
  105. icon: "work-zhanghu"
  106. }, {
  107. name: "促销活动",
  108. path: "/packageA/activity/index",
  109. icon: "work-cuxiaohuodong"
  110. }, {
  111. name: "打款凭证",
  112. path: "/packageA/remitVoucher/index",
  113. icon: "work-dakuanpingzheng"
  114. }, {
  115. name: "返退单",
  116. path: "/packageA/returnOne/index",
  117. icon: "work-shujuchaxun"
  118. }, {
  119. name: "发货单",
  120. path: "/packageA/dispatchBill/index",
  121. icon: "icon-shouhuo"
  122. }, {
  123. name: "发货明细",
  124. path: "/packageA/dispatchBill/rows",
  125. icon: "icon-shouhuo"
  126. }, {
  127. name: "工厂发退明细",
  128. path: "/packageA/dispatchBill/sentandback",
  129. icon: "icon-shouhuo"
  130. }];
  131. let edd = getApp().globalData.queryPer.query(wx.getStorageSync('userauth'), ["E-订单"], ["商品档案", "销售管理", "财务管理", "售后管理", "发货管理", "业绩查询"]),
  132. list = [];
  133. edd.forEach(v => {
  134. v.apps.forEach(s => {
  135. authList[s.name] = {
  136. options: s.meta.auth.map(a => a.option),
  137. optionnames: s.meta.auth.map(a => a.optionname),
  138. }
  139. if (authList[s.name].options.some(s => s == "read")) {
  140. let i = paths.findIndex(k => k.name == s.meta.title);
  141. if (i != -1) {
  142. paths[i].index = i;
  143. list.push(paths[i])
  144. }
  145. }
  146. })
  147. });
  148. return dye(list.sort((a, b) => a.index - b.index))
  149. };
  150. //染色
  151. function dye(list) {
  152. let colorList = [{
  153. color: "#3874F6",
  154. bColor: "#F0F3FF",
  155. }, {
  156. color: "#5AB73F",
  157. bColor: "#F4FAEF",
  158. }, {
  159. color: "#F29C37",
  160. bColor: "#FCF6EF",
  161. }, {
  162. color: "#EB4B5C",
  163. bColor: "#FDF1ED",
  164. }, {
  165. color: "#3874F6",
  166. bColor: "#F0F3FF",
  167. }, {
  168. color: "#F29C37",
  169. bColor: "#FCF6EF",
  170. }, {
  171. color: "#EB4B5C",
  172. bColor: "#FDF1ED",
  173. }, {
  174. color: "#3874F6",
  175. bColor: "#F0F3FF",
  176. }, {
  177. color: "#5AB73F",
  178. bColor: "#F4FAEF",
  179. }, {
  180. color: "#F29C37",
  181. bColor: "#FCF6EF",
  182. }, {
  183. color: "#5AB73F",
  184. bColor: "#F4FAEF",
  185. }, {
  186. color: "#3874F6",
  187. bColor: "#F0F3FF",
  188. }, {
  189. color: "#F29C37",
  190. bColor: "#FCF6EF",
  191. }, {
  192. color: "#EB4B5C",
  193. bColor: "#FDF1ED",
  194. }, {
  195. color: "#5AB73F",
  196. bColor: "#F4FAEF",
  197. }];
  198. return list.map((v, i) => {
  199. return {
  200. ...v,
  201. ...colorList[i > colorList.length - 1 ? i - colorList.length : i]
  202. }
  203. })
  204. };
  205. wx.setStorageSync('auth', authList)
  206. let banner = wx.getStorageSync('banner_list').find(v => v.location == "index_top");
  207. page.setData({
  208. entrance,
  209. bannerList: banner ? banner.ads : []
  210. });
  211. pageInit.Home = true;
  212. page.selectComponent("#ListBox").setHeight(".head", page);
  213. } else {
  214. setTimeout(this.refreshData, 10);
  215. return;
  216. }
  217. },
  218. /**
  219. * 更新购物车数量
  220. */
  221. getCollectCount() {
  222. return _Http.basic({
  223. "id": 20220927093202,
  224. "content": {}
  225. }).then(res => {
  226. console.log("购物车数量", res)
  227. getApp().globalData.collectCount = res.data.num;
  228. pageInit.Collect = false;
  229. this.setData({
  230. collectCount: res.data.num
  231. })
  232. return res.data.num;
  233. });
  234. },
  235. /* 更新消息数量 */
  236. updateMsgCount() {
  237. pageInit.Message = false;
  238. _Http.basic({
  239. "classname": "system.message.Message",
  240. "method": "unReadMessageCount",
  241. "content": {
  242. nocache: true
  243. }
  244. }, false).then(res => {
  245. console.log('信息数量', res)
  246. if (res.msg != '成功') return;
  247. let fcount = res.data.fcount > 99 ? '99+' : res.data.fcount;
  248. if (res.data.fcount == 0) fcount = "";
  249. this.setData({
  250. fcount
  251. })
  252. });
  253. _Http.basic({
  254. "classname": "system.message.Message",
  255. "method": "queryMessage",
  256. content: {
  257. nocache: true,
  258. pageNumber: 1,
  259. pageSize: 1,
  260. type: "",
  261. where: {}
  262. },
  263. }).then(res => {
  264. if (res.msg != '成功') return;
  265. this.selectComponent("#Home").setData({
  266. msgList: res.data
  267. })
  268. })
  269. },
  270. /**
  271. * 切换页面
  272. */
  273. NavChange(e) {
  274. this.cutBar({
  275. detail: e.currentTarget.dataset.cur
  276. });
  277. if (!getApp().globalData.socketEstablish) getApp().initSocket();
  278. },
  279. /**
  280. * 切换bar
  281. */
  282. cutBar({
  283. detail
  284. }) {
  285. let page = this.selectComponent("#" + detail);
  286. if (!page) return;
  287. if (!pageInit[detail] && page.init()) pageInit[detail] = true;
  288. this.setData({
  289. PageCur: detail
  290. })
  291. },
  292. })