huhaobangding.js 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286
  1. const app = getApp()
  2. const utils = require("../../utils/util.js")
  3. Page({
  4. data: {
  5. selectedTag: '',
  6. showCustomInput: false,
  7. customTagLength: 0,
  8. showDrawer: false,
  9. showPreview: false,
  10. // 是否可以切换水务公司
  11. isChange: true,
  12. // 新增数据
  13. waterCompany: '',
  14. waterCompanyList: app.globalData.waterCompanys,
  15. //当前用户的默认水务公司的下标
  16. waterCompanyIndex: [0],
  17. waterCompanyId: app.globalData.launchPara,
  18. showWaterCompanyPicker: false,
  19. huHao: '',
  20. huMing: '',
  21. customTag: '',
  22. tagLength: 0,
  23. showQueryMethods: false,
  24. // 水站联系方式
  25. phoneQueryList: [
  26. ],
  27. // 户号预览图地址
  28. ylt:''
  29. },
  30. selectTag(e) {
  31. const tag = e.currentTarget.dataset.tag;
  32. this.setData({
  33. selectedTag: tag,
  34. showCustomInput: tag === '自定义'
  35. });
  36. },
  37. onCustomInput(e) {
  38. const value = e.detail.value;
  39. this.setData({
  40. customTagLength: value.length,
  41. customTag: value
  42. });
  43. },
  44. // 显示抽屉
  45. showDrawer() {
  46. this.setData({
  47. showDrawer: true
  48. });
  49. },
  50. // 隐藏抽屉
  51. hideDrawer() {
  52. this.setData({
  53. showDrawer: false
  54. });
  55. },
  56. // 拨打电话
  57. makePhoneCall(e) {
  58. const phone = e.currentTarget.dataset.phone;
  59. wx.makePhoneCall({
  60. phoneNumber: phone
  61. });
  62. },
  63. // 修改预览图片方法
  64. previewImage: function() {
  65. this.setData({
  66. showPreview: true
  67. });
  68. },
  69. // 关闭预览
  70. closePreview: function() {
  71. this.setData({
  72. showPreview: false
  73. });
  74. },
  75. // 防止点击图片内容时关闭预览
  76. preventBubble: function() {
  77. return;
  78. },
  79. // 显示水站公司选择器
  80. showWaterCompanyPicker: function() {
  81. this.setData({
  82. showWaterCompanyPicker: true,
  83. waterCompanyIndex: this.data.waterCompanyIndex
  84. });
  85. },
  86. // 隐藏水站公司选择器
  87. hideWaterCompanyPicker: function() {
  88. this.setData({
  89. showWaterCompanyPicker: false
  90. });
  91. },
  92. // 水站公司选择变化
  93. onWaterCompanyChange: function(e) {
  94. this.setData({
  95. waterCompanyIndex: e.detail.value
  96. });
  97. },
  98. // 确认水站公司选择
  99. confirmWaterCompany: function(e) {
  100. const index = this.data.waterCompanyIndex[0];
  101. this.setData({
  102. waterCompanyIndex: this.data.waterCompanyIndex,
  103. waterCompany: this.data.waterCompanyList[index].name,
  104. showWaterCompanyPicker: false,
  105. phoneQueryList: this.data.waterCompanyList[index].businessPoint.map((data,index)=>{
  106. return {
  107. id: index+1,
  108. name: index+1+'、'+data.address,
  109. phone: data.cphone,
  110. time: data.worktime
  111. }
  112. }),
  113. ylt:app.globalData.imgPreviewUrl+"pagePart/"+this.data.waterCompanyList[index].swCompanyInfo.overduenoticeimage.split("-;-")[0]
  114. });
  115. },
  116. // 户号输入
  117. onHuHaoInput: function(e) {
  118. this.setData({
  119. huHao: e.detail.value
  120. });
  121. },
  122. // 户名输入
  123. onHuMingInput: function(e) {
  124. this.setData({
  125. huMing: e.detail.value
  126. });
  127. },
  128. // 确认绑定
  129. confirmBinding: function() {
  130. // 验证必填字段
  131. if (!this.data.waterCompany) {
  132. wx.showToast({
  133. title: '请选择水站公司',
  134. icon: 'none'
  135. });
  136. return;
  137. }
  138. if (!this.data.huHao) {
  139. wx.showToast({
  140. title: '请输入户号',
  141. icon: 'none'
  142. });
  143. return;
  144. }
  145. if (!this.data.huMing) {
  146. wx.showToast({
  147. title: '请输入户名',
  148. icon: 'none'
  149. });
  150. return;
  151. }
  152. // 处理分组信息
  153. let groupInfo = this.data.selectedTag;
  154. if (this.data.selectedTag === '自定义' && this.data.customTag) {
  155. groupInfo = this.data.customTag;
  156. }
  157. // 提交数据
  158. wx.showLoading({
  159. title: '绑定中...',
  160. });
  161. // 调用绑定接口
  162. wx.request({
  163. url: app.globalData.interfaceUrls.accountBind,
  164. method: 'POST',
  165. data: {
  166. bindWaterCompany: this.data.waterCompanyList[this.data.waterCompanyIndex[0]].id,
  167. accountNum: this.data.huHao,
  168. accountName: this.data.huMing,
  169. groupType: groupInfo,
  170. openId: app.globalData.userWxInfo.openId,
  171. defaultAccount: 0,
  172. otherDsKey: (app.globalData.bindAccountInfo||[]).map(data=>data.dsKey)
  173. },
  174. header: {
  175. 'content-type': 'application/json', // 默认值
  176. 'token':app.globalData.userWxInfo.token,
  177. 'source':"wc",
  178. '!SAAS_LOGIN_TOKEN_!':this.data.waterCompanyList[this.data.waterCompanyIndex[0]].id
  179. },
  180. success (res) {
  181. wx.hideLoading();
  182. let apiReturnData=res.data
  183. if(apiReturnData.code=='200'){
  184. wx.hideLoading();
  185. utils.simleInfo('绑定成功')
  186. app.globalData.currentAccountInfo=apiReturnData.data[0];
  187. setTimeout(function(){
  188. app.globalData.refresh=1;
  189. wx.switchTab({
  190. url: '/pages/homepage/homepage',
  191. });
  192. },2000)
  193. }else{
  194. wx.showToast({
  195. title: apiReturnData.msg,
  196. icon: 'error',
  197. duration: 2000
  198. })
  199. wx.hideLoading();
  200. }
  201. },fail(error) {
  202. wx.hideLoading()
  203. utils.simleInfo('登录失败,请稍后再试')
  204. }
  205. })
  206. },
  207. onLoad: function() {
  208. // 延迟设置导航栏,确保页面已完全加载
  209. setTimeout(() => {
  210. wx.setNavigationBarTitle({
  211. title: '户号绑定'
  212. });
  213. wx.setNavigationBarColor({
  214. frontColor: '#ffffff',
  215. backgroundColor: '#0066FF'
  216. });
  217. }, 100);
  218. if(app.globalData.launchPara){
  219. this.setData({
  220. waterCompanyIndex:[app.globalData.waterCompanys.findIndex(data=>data.id==app.globalData.launchPara)],
  221. waterCompany: app.globalData.waterCompanys.filter(data=>data.id==app.globalData.launchPara)[0].name,
  222. isChange:false,
  223. phoneQueryList: app.globalData.waterCompanys.filter(data=>data.id==app.globalData.launchPara)[0].businessPoint.map((data,index)=>{
  224. return {
  225. id: index+1,
  226. name: data.address,
  227. phone: data.contactphone,
  228. time: data.worktime
  229. }
  230. }),
  231. ylt:app.globalData.imgPreviewUrl+
  232. app.globalData.currentAccountInfo.dsId+"?fileId="
  233. +app.globalData.waterCompanys.filter(data=>data.id==app.globalData.launchPara)[0].swCompanyInfo.overduenoticeimage.split("-;-")[1]
  234. });
  235. }
  236. },
  237. // 添加返回方法
  238. navigateBack: function() {
  239. wx.navigateBack();
  240. },
  241. onTagInput(e) {
  242. this.setData({
  243. tagLength: e.detail.value.length
  244. });
  245. },
  246. showQueryMethodsModal() {
  247. this.setData({
  248. showQueryMethods: true
  249. });
  250. },
  251. closeQueryMethods() {
  252. this.setData({
  253. showQueryMethods: false
  254. });
  255. }
  256. });