index.ts 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325
  1. import { FunCode } from "../../../../constants/enum/funcode"
  2. import { sendMsgToMQ } from "../../../../services/api/common/index"
  3. import { divisions, isEncrypted, protoHeader, userid, timetample } from '../../../../services/utils'
  4. import { areaList } from '@vant/area-data';
  5. import Toast from "../../../../miniprogram_npm/@vant/weapp/toast/toast";
  6. /// regions
  7. const regions = divisions()
  8. Page({
  9. /**
  10. * 页面的初始数据
  11. */
  12. data: {
  13. /// 收货人姓名
  14. username: '',
  15. /// 电话好嘛
  16. mobile: '',
  17. /// 详细收货地址
  18. detailAddress: '',
  19. /// 显示地址
  20. region: '请选择地区',
  21. /// 省份地区
  22. province: 0,
  23. /// 市
  24. city: 0,
  25. /// 区、乡镇
  26. country: 0,
  27. /// 是否选择地区
  28. show: false,
  29. /// 省市区数据
  30. areaList,
  31. /// 自增id
  32. autoid: 0,
  33. /// 是否默认
  34. check: true
  35. },
  36. /// 关闭地址选择组件
  37. cancelArea() {
  38. /// 关闭
  39. this.setData({ show: false })
  40. },
  41. /// 确认地址选择组件
  42. confirmArea(e: any) {
  43. /// 区、乡镇
  44. const c = regions.filter(obj => { return obj.divisioncode == e.detail.values[2].code })[0]
  45. /// 关闭
  46. this.setData({
  47. /// 不显示
  48. show: false,
  49. /// 省份
  50. province: regions.filter(obj => {
  51. return obj.divisioncode == e.detail.values[0].code
  52. })[0].autoid,
  53. /// 城市
  54. city: regions.filter(obj => {
  55. return obj.divisioncode == e.detail.values[1].code
  56. })[0].autoid,
  57. /// 区、乡镇
  58. country: c.autoid,
  59. /// 选择地区
  60. region: c.pathname
  61. })
  62. },
  63. /**
  64. * 返回上层视图
  65. */
  66. backToParent() {
  67. /// 返回上层视图
  68. wx.navigateBack()
  69. },
  70. /**
  71. * 按钮点击响应事件
  72. */
  73. onButtonPressed(e: any) {
  74. switch (e.target.id) {
  75. case "region-selsct": /// 地区选择
  76. if (!this.data.show) { this.setData ({ show: true }) }
  77. break;
  78. case "delete": /// 删除
  79. this.deleteReciveInfoReq()
  80. break
  81. default:
  82. /// 发送业务操作
  83. this.userReciveInfoReq()
  84. break;
  85. }
  86. },
  87. /**
  88. * 开关响应事件
  89. */
  90. onChange({ detail }){
  91. // 需要手动对 checked 状态进行更新
  92. this.setData({ checked: detail });
  93. /// 设为默认
  94. if (!this.data.check) {
  95. this.receiveIsDefaultReq()
  96. }
  97. },
  98. /// 合规性校验
  99. check(): boolean {
  100. /// 请输入用户名
  101. if (this.data.username.length == 0) {
  102. Toast('请输入用户名!')
  103. return false
  104. }
  105. /// 请输入收货人手机号码
  106. if (this.data.mobile.length == 0) {
  107. Toast('请输入收货人手机号码!')
  108. return false
  109. }
  110. /// 请输入选择地区
  111. if (this.data.province == 0) {
  112. Toast('请输入选择地区!')
  113. return false
  114. }
  115. /// 请输入详细地址信息
  116. if (this.data.detailAddress.length == 0) {
  117. Toast('请输入详细地址信息!')
  118. return false
  119. }
  120. return true
  121. },
  122. /**
  123. * 删除收货地址信息
  124. */
  125. deleteReciveInfoReq() {
  126. /// loding.....
  127. Toast.loading({ message: '删除操作请求中.....'})
  128. /// 参数信息
  129. const userInfo = {
  130. ReceiveInfoId: this.data.autoid,
  131. Header: protoHeader(FunCode.DelUserReceiveInfoReq)
  132. }
  133. /// 发送请求
  134. sendMsgToMQ({
  135. data: {
  136. data: JSON.stringify(userInfo),
  137. funCodeReq: FunCode.DelUserReceiveInfoReq,
  138. funCodeRsp: FunCode.DelUserReceiveInfoRsp,
  139. isEncrypted: isEncrypted()
  140. },
  141. success: (res) => {
  142. /// 操作失败
  143. if (res.code != 0) {
  144. Toast.fail({ message: '删除操作失败,原因:'+res.msg })
  145. return
  146. }
  147. /// 操作成功
  148. Toast.success({ message: '删除操作成功' })
  149. /// 返回上层视图
  150. wx.navigateBack()
  151. },
  152. fail: (emsg) => {
  153. /// 操作失败
  154. Toast.fail({ message: '删除操作失败,原因:'+emsg })
  155. }, complete: () => {
  156. /// hideLoading
  157. Toast.clear()
  158. }
  159. })
  160. },
  161. /**
  162. * 将收货地址设为默认
  163. */
  164. receiveIsDefaultReq() {
  165. /// loding.....
  166. Toast.loading({ message: '操作请求中.....'})
  167. /// 参数信息
  168. const data = {
  169. AutoId: this.data.autoid,
  170. UserId: userid(),
  171. Header: protoHeader(FunCode.UserReceiveIsDefaultReq)
  172. }
  173. /// 发送请求
  174. sendMsgToMQ({
  175. data: {
  176. data: JSON.stringify(data),
  177. funCodeReq: FunCode.UserReceiveIsDefaultReq,
  178. funCodeRsp: FunCode.UserReceiveIsDefaultRsp,
  179. isEncrypted: isEncrypted()
  180. },
  181. success: (res) => {
  182. /// 操作失败
  183. if (res.code != 0) {
  184. Toast.fail('操作失败,原因:'+res.msg)
  185. return
  186. }
  187. /// 操作成功
  188. Toast.success('操作成功')
  189. /// 返回上层视图
  190. wx.navigateBack()
  191. },
  192. fail: (emsg) => {
  193. /// 操作失败
  194. Toast.fail('操作失败,原因:'+emsg)
  195. }, complete: () => {
  196. /// hideLoading
  197. Toast.clear()
  198. }
  199. })
  200. },
  201. /**
  202. * 业务操作
  203. */
  204. userReciveInfoReq() {
  205. /// 合规性校验
  206. if (!this.check()) { return }
  207. /// loding.....
  208. Toast.loading('操作请求中......')
  209. /// 参数信息
  210. const userInfo = { ClientSerialID: timetample(),
  211. UserID: userid(),
  212. ReceiverName: this.data.username,
  213. CardTypeID: 0,
  214. CardNum: '0',
  215. PhoneNum: this.data.mobile,
  216. CountryID: 0,
  217. ProvinceID: this.data.province,
  218. CityID: this.data.city,
  219. DistrictID: this.data.country,
  220. Address: this.data.detailAddress,
  221. TakeRemark: '',
  222. ReceiveInfoId: this.data.autoid,
  223. Header: protoHeader(FunCode.UserReceiveInfoReq)
  224. }
  225. /// 发送请求
  226. sendMsgToMQ({
  227. data: {
  228. data: JSON.stringify(userInfo),
  229. funCodeReq: FunCode.UserReceiveInfoReq,
  230. funCodeRsp: FunCode.UserReceiveInfoRsp,
  231. isEncrypted: isEncrypted()
  232. },
  233. success: (res) => {
  234. /// 操作失败
  235. if (res.code != 0) {
  236. Toast.fail('操作失败,原因:'+res.msg)
  237. return
  238. }
  239. /// 操作成功
  240. Toast.success('操作成功')
  241. /// 返回上层视图
  242. wx.navigateBack()
  243. },
  244. fail: (emsg) => {
  245. /// 操作失败
  246. Toast.fail('操作失败,原因:'+emsg)
  247. }, complete: () => {
  248. /// hideLoading
  249. Toast.clear()
  250. }
  251. })
  252. },
  253. /**
  254. * 生命周期函数--监听页面加载
  255. */
  256. onLoad(options: any) {
  257. /// 传参信息
  258. const d: GuangZuan.UserReceiveInfo = JSON.parse(options.id ?? '')
  259. this.setData({
  260. username: d.receivername,
  261. mobile: d.phonenum,
  262. province: d.provinceid,
  263. city: d.cityid,
  264. country: d.districtid,
  265. detailAddress: d.address,
  266. autoid: d.autoid,
  267. region: d.provincename+d.cityname+d.countryname,
  268. check: d.isdefault == 1
  269. })
  270. },
  271. /**
  272. * 生命周期函数--监听页面初次渲染完成
  273. */
  274. onReady() {},
  275. /**
  276. * 生命周期函数--监听页面显示
  277. */
  278. onShow() {},
  279. /**
  280. * 生命周期函数--监听页面隐藏
  281. */
  282. onHide() {},
  283. /**
  284. * 生命周期函数--监听页面卸载
  285. */
  286. onUnload() {
  287. },
  288. /**
  289. * 页面相关事件处理函数--监听用户下拉动作
  290. */
  291. onPullDownRefresh() {},
  292. /**
  293. * 页面上拉触底事件的处理函数
  294. */
  295. onReachBottom() {},
  296. /**
  297. * 用户点击右上角分享
  298. */
  299. onShareAppMessage() {}
  300. })