newAddress.js 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190
  1. var _request = require('../../../../utils/request.js')
  2. var validator = require('../../../../utils/validator.js')
  3. var _handle = require('../../../../utils/handle.js')
  4. var placeJson = require('../../../../utils/place.js')
  5. Page({
  6. data: {
  7. address: '请选择',
  8. region: ['北京市', '北京市', '东城区'],
  9. name: '',
  10. tel: 0,
  11. more: '',
  12. type: 0,//0为新建,1为编辑
  13. multiArray: [['北京市'], ['北京市'], ['东城区']],
  14. multiIndex: [0, 0, 0],
  15. placearr:[],
  16. cityarr:[],
  17. areaarr:[]
  18. },
  19. onLoad: function (options) {
  20. console.log('options',options)
  21. if(options.type == 1){
  22. var address = wx.getStorageSync('editAddr');
  23. console.log('addrhere',address)
  24. this.setData({
  25. type: 1,
  26. address:address.province+address.city+address.district,
  27. region:[address.province,address.city,address.district],
  28. name:address.remark,
  29. tel:address.tel,
  30. name:address.contact,
  31. more:address.address,
  32. addrid:address.id
  33. })
  34. }
  35. this.getPlaceData();
  36. },
  37. bindName: function (e) {
  38. this.setData({
  39. name: e.detail.value
  40. })
  41. },
  42. bindTel: function (e) {
  43. this.setData({
  44. tel: e.detail.value
  45. })
  46. },
  47. bindMore: function (e) {
  48. this.setData({
  49. more: e.detail.value
  50. })
  51. },
  52. validate () {
  53. var msg
  54. if (!validator.required(this.data.name)) {
  55. msg = '收货人不能为空'
  56. } else if (!validator.required1(this.data.name)) {
  57. msg = '国家安全局规定:运单禁止出现“先生”,“小姐”,“女士”等,请填写完整名字'
  58. } else if (!validator.required(this.data.tel)) {
  59. msg = '联系电话不能为空'
  60. } else if (!validator.telphone(this.data.tel)) {
  61. msg = '手机号码格式不正确'
  62. } else if (this.data.address === '请选择') {
  63. msg = '请选择所在地区'
  64. } else if (!validator.required(this.data.more)) {
  65. msg = '详细地址不能为空'
  66. }
  67. return { isOk: !msg, msg }
  68. },
  69. save: function (e) {
  70. _handle.setFormId(e)
  71. var { isOk, msg } = this.validate()
  72. if (isOk) {
  73. this.requestAddress()
  74. } else {
  75. wx.showToast({
  76. title: msg,
  77. icon: 'none',
  78. duration: 2000
  79. })
  80. }
  81. },
  82. requestAddress () {
  83. console.log('requestAddress')
  84. var that = this
  85. if(that.data.type == 1){
  86. var url = 'v1/address/'+that.data.addrid;
  87. }else{
  88. var url = 'v1/address';
  89. }
  90. var params = {
  91. contact: this.data.name,
  92. tel: this.data.tel,
  93. province: this.data.region[0],
  94. city: this.data.region[1],
  95. district: this.data.region[2],
  96. address: this.data.more,
  97. set_default: 1
  98. }
  99. var success = function (res) {
  100. wx.navigateBack({
  101. delta: 1
  102. })
  103. }
  104. if(that.data.type == 1){
  105. _request.$put(url, params, success)
  106. }else{
  107. _request.$post(url, params, success)
  108. }
  109. },
  110. bindRegionChange: function (e) {
  111. console.log(e)
  112. this.setData({
  113. region: e.detail.value,
  114. address: e.detail.value[0] + e.detail.value[1] + e.detail.value[2]
  115. })
  116. },
  117. onShareAppMessage: function (val) {
  118. return _request.share({
  119. sc: 'xcx_user_newaddress'
  120. })
  121. },
  122. getPlaceData(){
  123. var placedata = placeJson['placeJson'];
  124. console.log('t',this.data.multiIndex);
  125. var placei = this.data.multiIndex[0];
  126. var cityi = this.data.multiIndex[1];
  127. var areai = this.data.multiIndex[2];
  128. console.log('placei',placei);
  129. console.log('cityi',cityi);
  130. console.log('areai',areai);
  131. var arr1 = [];
  132. var arr2 = [];
  133. var arr3 = [];
  134. console.log('placeJson',placedata);
  135. for(var i in placedata){
  136. var data = placedata[i];
  137. arr1.push(data['name']);
  138. if(placei == i){
  139. for(var c in data['city']){
  140. var citydata = data['city'][c];
  141. arr2.push(citydata['name']);
  142. if(cityi == c){
  143. arr3 = citydata['area'];
  144. }
  145. }
  146. }
  147. }
  148. console.log(arr1);
  149. console.log(arr2);
  150. console.log(arr3);
  151. var mixdata = [];
  152. mixdata.push(arr1);
  153. mixdata.push(arr2);
  154. mixdata.push(arr3);
  155. this.setData({
  156. multiArray:mixdata,
  157. placearr:arr1,
  158. cityarr:arr2,
  159. areaarr:arr3
  160. })
  161. },
  162. bindMultiPickerChange: function (e) {
  163. console.log('picker发送选择改变,携带值为', e.detail)
  164. this.setData({
  165. multiIndex: e.detail.value,
  166. region: [this.data.placearr[e.detail.value[0]],this.data.cityarr[e.detail.value[1]],this.data.areaarr[e.detail.value[2]]],
  167. address: this.data.placearr[e.detail.value[0]] + this.data.cityarr[e.detail.value[1]] + this.data.areaarr[e.detail.value[2]]
  168. })
  169. },
  170. bindMultiPickerColumnChange: function (e) {
  171. console.log('修改的列为', e.detail.column, ',值为', e.detail.value);
  172. var data = {
  173. multiArray: this.data.multiArray,
  174. multiIndex: this.data.multiIndex
  175. };
  176. data.multiIndex[e.detail.column] = e.detail.value;
  177. console.log(data.multiIndex);
  178. this.setData(data);
  179. this.getPlaceData();
  180. },
  181. })