index.js 7.3 KB

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