activity.js 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249
  1. /*******************************************************************************
  2. * Copyright(c) 2022 dongke All rights reserved. / Confidential
  3. * 类的信息:
  4. * 1.程序名称:活动(用于续费、注册)
  5. * 编辑履历:
  6. * 作者 日期 版本 修改内容
  7. * 周兴 2024-5-15 1.00 新建
  8. *******************************************************************************/
  9. const Constants = require('@/utils/Constants.js');
  10. const util = require('@/utils/util.js')
  11. const mixins = require('@/mixins/index.js');
  12. const app = getApp()
  13. Page({
  14. mixins: [mixins],
  15. /**
  16. * 页面的初始数据
  17. */
  18. data: {
  19. // 企业名称
  20. companyName: null,
  21. staffName: null,
  22. staffPhone: null,
  23. webMaxNum: app.globalData.company.webMaxNum,
  24. wxMaxNum: app.globalData.company.wxMaxNum,
  25. cpEndDate: null,
  26. activityTable: null,
  27. readFlag:false,
  28. staffCount: {
  29. maxNum: 1,
  30. webMaxNum: 0,
  31. wxMaxNum: 0
  32. },
  33. curentAdItem: null,
  34. summaryInfo: {},
  35. // 主键Id
  36. primaryKey: 'orderId',
  37. routeObjName: 'order',
  38. pageFlag: false,
  39. //按钮
  40. buttonSaveList: [
  41. { code: 'save', title: mixins.$t('save'), width: '120rpx' }
  42. ],
  43. noticeInfo:{
  44. title:'注册须知:',
  45. cpName:'用于登录系统时显示公司信息。',
  46. contact:'负责人和联系电话:用于开通系统电话确认核实信息。',
  47. cpSize:'公司规模及门店规模:用于开通系统配置基础档案。'
  48. }
  49. },
  50. /**
  51. * @desc : 选择活动明细
  52. * @author : 周兴
  53. * @date : 2024/4/1
  54. */
  55. chooseAdItem(e) {
  56. let item = e.currentTarget.dataset.item;
  57. let summaryInfo = this.data.summaryInfo
  58. // 计算截止日期
  59. let months = item.validLong + item.extraLong
  60. let endDate = app.globalData.company.endDate
  61. endDate = new Date(endDate).addMonths(months)
  62. summaryInfo.endDate = endDate.toDateStr();
  63. console.log('f', summaryInfo);
  64. this.setData({
  65. curentAdItem: item,
  66. summaryInfo: summaryInfo
  67. })
  68. // 计算金额
  69. this.countSummaryAmount(item);
  70. },
  71. /**
  72. * @desc : 计算金额
  73. * @author : 周兴
  74. * @date : 2024/4/1
  75. */
  76. countSummaryAmount() {
  77. let item = this.data.curentAdItem;
  78. let staffCount = this.data.staffCount;
  79. let summaryInfo = this.data.summaryInfo
  80. let amount = 0;
  81. // 先清空
  82. summaryInfo.amountInfo = '';
  83. // 共通用户
  84. if (staffCount.maxNum) {
  85. summaryInfo.amountInfo = item.stdPrice + '(打包价格)*' + staffCount.maxNum
  86. amount += item.stdPrice * staffCount.maxNum
  87. }
  88. // 手机端用户
  89. if (staffCount.wxMaxNum) {
  90. if (summaryInfo.amountInfo) {
  91. summaryInfo.amountInfo += ' + '
  92. }
  93. summaryInfo.amountInfo += item.wxPrice + '(手机端价格)*' + staffCount.wxMaxNum
  94. amount += item.wxPrice * staffCount.wxMaxNum
  95. }
  96. // 电脑端用户
  97. if (staffCount.webMaxNum) {
  98. if (summaryInfo.amountInfo) {
  99. summaryInfo.amountInfo += ' + '
  100. }
  101. summaryInfo.amountInfo += item.webPrice + '(电脑端价格)*' + staffCount.webMaxNum
  102. amount += item.webPrice * staffCount.webMaxNum
  103. }
  104. if (summaryInfo.amountInfo) {
  105. summaryInfo.amountInfo += ' = ' + amount + '(元)'
  106. }
  107. this.setData({
  108. summaryInfo: summaryInfo
  109. })
  110. // 统计两端用户数
  111. this.countStaffInfo();
  112. },
  113. /**
  114. * @desc : 统计电脑端和手机端的用户数
  115. * @author : 周兴
  116. * @date : 2024/4/1
  117. */
  118. countStaffInfo(){
  119. let summaryInfo = this.data.summaryInfo;
  120. let staffCount = this.data.staffCount;
  121. if(!staffCount){
  122. return;
  123. }
  124. let webNum = staffCount.webMaxNum + staffCount.maxNum
  125. let wxNum = staffCount.wxMaxNum + staffCount.maxNum
  126. summaryInfo.staffInfo = '可配置手机端授权' + wxNum + '个;电脑端授权' + webNum + '个(包含当前用户)'
  127. this.setData({
  128. summaryInfo:summaryInfo
  129. })
  130. },
  131. /**
  132. * @desc : 修改用户数
  133. * @author : 周兴
  134. * @date : 2024/4/1
  135. */
  136. changeStaffCount(e) {
  137. let staffCount = this.data.staffCount
  138. let ds = e.currentTarget.dataset
  139. if (ds.type == 'wx') {
  140. staffCount.wxMaxNum = e.detail
  141. } else if (ds.type == 'web') {
  142. staffCount.webMaxNum = e.detail
  143. } else {
  144. staffCount.maxNum = e.detail
  145. }
  146. this.setData({
  147. staffCount: staffCount
  148. })
  149. // 计算金额
  150. this.countSummaryAmount();
  151. },
  152. /**
  153. * @desc : 校验
  154. * @author : 周兴
  155. * @date : 2024/4/1
  156. */
  157. validData() {
  158. let curentAdItem = this.data.curentAdItem;
  159. if (!curentAdItem) {
  160. util.showToast('未选择活动');
  161. return false
  162. }
  163. return true;
  164. },
  165. /**
  166. * @desc : 查询活动
  167. * @author : 周兴
  168. * @date : 2024/4/1
  169. */
  170. getActivity() {
  171. let params = {
  172. appCode: Constants.APP_CODE,
  173. activityTypeList: [Constants.kindCode.activityGrade, Constants.kindCode.activityMenu],
  174. gradeCode: app.globalData.company.gradeCode
  175. }
  176. let service = app.globalData['activityService']
  177. this.excute(service, service.selectActivityItems, params).then(res => {
  178. if (res.data.code == Constants.SUCESS_CODE) {
  179. if (res.data && res.data.data) {
  180. let activityTable = res.data.data;
  181. this.setData({
  182. activityTable: activityTable
  183. })
  184. }
  185. }
  186. });
  187. },
  188. /**
  189. * 生命周期函数--监听页面加载
  190. */
  191. onLoad(options) {
  192. this.setData({
  193. companyName: app.globalData.company.cpName,
  194. staffName: app.globalData.user.staffName,
  195. cpEndDate: app.globalData.company.endDate,
  196. })
  197. // 获取活动
  198. this.getActivity();
  199. },
  200. /**
  201. * 生命周期函数--监听页面初次渲染完成
  202. */
  203. onReady() {
  204. },
  205. /**
  206. * 生命周期函数--监听页面显示
  207. */
  208. onShow() {
  209. },
  210. /**
  211. * 生命周期函数--监听页面隐藏
  212. */
  213. onHide() {
  214. },
  215. /**
  216. * 生命周期函数--监听页面卸载
  217. */
  218. onUnload() {
  219. },
  220. /**
  221. * 页面相关事件处理函数--监听用户下拉动作
  222. */
  223. onPullDownRefresh() {
  224. },
  225. /**
  226. * 页面上拉触底事件的处理函数
  227. */
  228. onReachBottom() {
  229. },
  230. /**
  231. * 用户点击右上角分享
  232. */
  233. onShareAppMessage() {
  234. }
  235. })