From f8867b8df117d1ac0f1311970994e15059c3da03 Mon Sep 17 00:00:00 2001
From: xuxueyang <xuxy@fengyuntec.com>
Date: 星期四, 05 九月 2024 15:57:36 +0800
Subject: [PATCH] add 兼容扫码问题

---
 pages/user/address/address.vue |   55 +++++++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 47 insertions(+), 8 deletions(-)

diff --git a/pages/user/address/address.vue b/pages/user/address/address.vue
index 9df16bb..8b2c9e5 100644
--- a/pages/user/address/address.vue
+++ b/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
+						})
+					}
 				}
 			},
 

--
Gitblit v1.9.3