index.js 7.7 KB

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