index.ts 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244
  1. import Toast from "../../../miniprogram_npm/@vant/weapp/toast/toast"
  2. import { gzCertAddressConfig, gzCertAddressParam } from "../../../services/api/orders/index"
  3. import { hideLoading, showLoading, showToast } from "../../../utils/message/index"
  4. // mHome/pages/cerserach/index.ts
  5. Page({
  6. /**
  7. * 页面的初始数据
  8. */
  9. data: {
  10. /// tabs
  11. tabs: [{id: 0, name: '国内'}, {id: 1, name: '国际'}],
  12. /// tab索引
  13. active: 0,
  14. /// 参数配置信息
  15. configs: <GuangZuan.GzCertAddressConfig[]>[],
  16. /// 显示的数据
  17. datas: <GuangZuan.GzCertAddressConfig[]>[],
  18. /// 选中的证书类型
  19. config: <GuangZuan.GzCertAddressConfig>{},
  20. /// 证书参数信息
  21. params: <GuangZuan.GzCertAddressParam[]>[],
  22. /// 证书号
  23. certno: '',
  24. /// 防伪码
  25. securityCode: '',
  26. /// 查询地址
  27. paramAddress: ''
  28. },
  29. /**
  30. * 证书查询
  31. */
  32. certSearch() {
  33. /// 合规性校验
  34. if (!this.check()) { return }
  35. var param = ''
  36. /// 参数拼接
  37. var filters = this.data.params.filter(itm => {
  38. return itm.certtype == this.data.config.certtype
  39. })
  40. /// 地址拼接
  41. filters.forEach(obj => {
  42. if (obj.orderindex == 1) {
  43. param = param.concat(obj.paramkey+'='+this.data.certno+(filters.length > 1 ? '&' : ''))
  44. } else {
  45. param = param.concat(obj.paramkey+'='+this.data.securityCode)
  46. }
  47. })
  48. /// 最终的查询地址
  49. this.setData({ paramAddress: this.data.config.queryaddress+(param != "" ? param : '') })
  50. },
  51. /**
  52. * 清空
  53. */
  54. clear() {
  55. /// 数据清空
  56. this.setData({
  57. certno: '',
  58. securityCode: '',
  59. paramAddress: ''
  60. })
  61. },
  62. /**
  63. * 获取证书地址参数查询
  64. */
  65. gzCertAddressConfig() {
  66. /// loding.....
  67. showLoading(()=>{
  68. /// 发送查询
  69. gzCertAddressConfig({
  70. success: (res) => {
  71. if (res.code != 200) {
  72. hideLoading(()=>{}, '参数加载失败,原因:'+res.msg, 'error')
  73. return
  74. }
  75. /// 加载成功
  76. hideLoading(()=>{
  77. /// 设置数据
  78. this.setData({
  79. /// 配置数据
  80. configs: res.data,
  81. /// 显示数据
  82. datas: res.data.filter(itm => {
  83. /// 默认选中第一个
  84. if (itm.orderindex == 1) { itm.isCheck = true }
  85. return itm.certregion == this.data.active+1
  86. }),
  87. })
  88. /// 默认选中第一个
  89. this.setData({ config: this.data.datas[0] })
  90. })
  91. },
  92. fail: (emsg) => {
  93. hideLoading(()=>{}, '参数加载失败,原因:'+emsg, 'error')
  94. }
  95. })
  96. })
  97. },
  98. /**
  99. * 钻石证书地址参数
  100. */
  101. gzCertAddressParam() {
  102. /// showLoading
  103. showLoading(()=>{
  104. /// 发送查询
  105. gzCertAddressParam({
  106. success: (res) => {
  107. if (res.code != 200) {
  108. hideLoading(()=>{}, '证书地址参数加载失败,原因:'+res.msg, 'error')
  109. return
  110. }
  111. hideLoading(()=>{
  112. /// 设置数据
  113. this.setData({
  114. /// 配置数据
  115. params: res.data,
  116. })
  117. })
  118. },
  119. fail: (emsg) => {
  120. hideLoading(()=>{}, '证书地址参数加载失败,原因:'+emsg, 'error')
  121. }
  122. })
  123. })
  124. },
  125. /**
  126. * tab触发事件
  127. */
  128. onTabChange(e: any) {
  129. /// 设置激活项
  130. this.setData({
  131. active: e.detail.index,
  132. /// 显示数据
  133. datas: this.data.configs.filter(itm => {
  134. return itm.certregion == e.detail.index+1
  135. })
  136. })
  137. /// 默认选中第一个
  138. this.setData({ config: this.data.datas[0] })
  139. },
  140. /**
  141. * 返回上层视图
  142. */
  143. backToParent() {
  144. /// 返回上层视图
  145. wx.navigateBack()
  146. },
  147. /// 形状按钮点击事件
  148. onButtonClick(e: any) {
  149. const index = e.target.id
  150. /// 设置数据
  151. this.setData({
  152. datas: this.data.datas.map(item => {
  153. item.isCheck = item.orderindex == index
  154. return item
  155. }),
  156. })
  157. this.setData({ config: this.data.datas.filter(itm => { return itm.orderindex == index })[0] })
  158. },
  159. /**
  160. * 生命周期函数--监听页面加载
  161. */
  162. onLoad() {
  163. /// 获取参数配置信息
  164. this.gzCertAddressConfig()
  165. /// 获取钻石证书地址参数
  166. this.gzCertAddressParam()
  167. },
  168. /**
  169. * 生命周期函数--监听页面初次渲染完成
  170. */
  171. onReady() {
  172. },
  173. /// 合规性校验
  174. check(): boolean {
  175. /// 请输入证书号
  176. if (this.data.certno.length == 0) {
  177. showToast('请输入证书号!')
  178. return false
  179. }
  180. /// 请输入防伪码
  181. if (this.data.securityCode.length == 0) {
  182. showToast('请输入防伪码!')
  183. return false
  184. }
  185. return true
  186. },
  187. /**
  188. * 生命周期函数--监听页面显示
  189. */
  190. onShow() {
  191. },
  192. /**
  193. * 生命周期函数--监听页面隐藏
  194. */
  195. onHide() {
  196. },
  197. /**
  198. * 生命周期函数--监听页面卸载
  199. */
  200. onUnload() {
  201. },
  202. /**
  203. * 页面相关事件处理函数--监听用户下拉动作
  204. */
  205. onPullDownRefresh() {
  206. },
  207. /**
  208. * 页面上拉触底事件的处理函数
  209. */
  210. onReachBottom() {
  211. },
  212. /**
  213. * 用户点击右上角分享
  214. */
  215. onShareAppMessage() {
  216. }
  217. })