xuxueyang
2024-08-31 32526e5bddb7b14328b2467cd18783f480b33f3b
pages/user/address/address.vue
@@ -129,7 +129,9 @@
   // import qqmapwx from '@/plugins/qqmap-wx-jssdk.min.js';
   // const lockey = 'VUHBZ-2AMLP-B7AD7-VUQZ7-D4TW5-MFFVN'; //使用在腾讯位置服务申请的key
   // const chooseLocation = requirePlugin('chooseLocation');
   import {
      mapState
   } from 'vuex'
   export default {
      async onPullDownRefresh() {
         this.page.current = 0
@@ -141,6 +143,14 @@
         this.source = options.source || ''
         this.listApi = '/api/address/list'
         await this.getList()
      },
      computed: {
         ...mapState({
            address: state => {
               return state.defaultaddress || {}
            },
         }),
      },
      data() {
@@ -178,7 +188,14 @@
               this.submitForm.province = ''
               this.submitForm.city = ''
               this.submitForm.region = ''
               if (e.detail.value.length <= 3) {
               if (e.detail.value.length == 2) {
                  if (!!e.detail.value[0])
                     this.submitForm.province = e.detail.value[0].value
                  if (!!e.detail.value[0])
                     this.submitForm.city = e.detail.value[0].value
                  if (!!e.detail.value[1])
                     this.submitForm.region = e.detail.value[1].value
               } else if (e.detail.value.length <= 3) {
                  if (!!e.detail.value[0])
                     this.submitForm.province = e.detail.value[0].value
                  if (!!e.detail.value[1])
@@ -201,9 +218,22 @@
            }
         },
         async init_area() {
            const res = await this.$http.request('get', '/api/pub/china/area/json')
            this.regionDataPlus = res.data && JSON.parse(res.data.replaceAll('code', 'value').replaceAll('name',
               'text')) || []
            if (this.regionDataPlus && this.regionDataPlus.length > 0) {
            } else {
               var a = this.$storage.getItem('cache_area')
               if (a) {
                  this.regionDataPlus = JSON.parse(a) || []
               } else {
                  const res = await this.$http.request('get', '/api/pub/china/area/json')
                  // console.log('area', JSON.parse(res.data))
                  this.regionDataPlus = res.data && JSON.parse(res.data.replaceAll('code', 'value').replaceAll(
                     'name',
                     'text')) || []
                  this.$storage.setItem('cache_area', JSON.stringify(this.regionDataPlus))
               }
            }
         },
         chooseLocation() {
            //前往接口挑选位置
@@ -311,7 +341,7 @@
            this.$message.hideLoading()
            if (code === 0) {
               this.$message.showToast('删除成功')
               if (item.isDefault) {
               if (this.address.id === item.id) {
                  //要清空地址了
                  this.$store.commit('setDefaultAddress', {})
               }
@@ -339,8 +369,10 @@
               this.$message.hideLoading()
            } else {
               this.submitForm = {
                  name: this.currentInfo && this.currentInfo.nickName || '',
                  tel: this.currentInfo && this.currentInfo.tel || '',
                  // name: this.currentInfo && this.currentInfo.nickName || '',
                  // tel: this.currentInfo && this.currentInfo.tel || '',
                  name: '',
                  tel: '',
                  address: '',
                  isDefault: false,
                  province: '',
@@ -372,11 +404,18 @@
            if (code === 0) {
               this.$refs.popup_form.close()
               this.$message.showToast(this.submitForm.id ? '修改成功' : '新增成功')
               let tmp = this
               setTimeout(() => {
                  tmp.page.current = 1
                  tmp.refreshList()
               }, 300)
               //如果当前选择的地址是这个,需要更新一下数据
               if (this.address.id && this.submitForm.id === this.address.id) {
                  this.$store.commit('setDefaultAddress', {
                     ...this.submitForm
                  })
               }
            }
         },