Przeglądaj źródła

用户地址优化

jiayubo 3 miesięcy temu
rodzic
commit
d167538e5a

+ 9 - 9
pages_mine/components/pickerAddress/pickerAddress.vue

@@ -117,15 +117,15 @@ export default {
 			/**
 			 * 点击确定
 			 * */
-			bindPickerChange(e) {
-				this.$emit('change', {
-					index: this.value,
-					data: selectVal,
-					code: selectCode
-				})
-				console.log(selectCode)
-				return this
-			}
+			// bindPickerChange(e) {
+			// 	this.$emit('change', {
+			// 		index: this.value,
+			// 		data: selectVal,
+			// 		code: selectCode
+			// 	})
+			// 	console.log(selectCode)
+			// 	return this
+			// }
 		}
 }
 </script>

+ 26 - 40
pages_mine/components/setupUser/Add.vue

@@ -34,23 +34,12 @@
       <up-form-item label="手机号" prop="telephone" borderBottom labelWidth="70">
         <up-input v-model="modelForm.telephone" border="none" placeholder="请输入手机号"></up-input>
       </up-form-item>
-      <up-form-item label="地区" prop="area" borderBottom @click="() => (addressShow = true)" labelWidth="70">
-        <pickerAddress @change="addressChange" :selectValue="[
-          modelForm.provinceInd,
-          modelForm.cityInd,
-          modelForm.districtInd,
-        ]">
-          <view class="inp" :class="modelForm.provinceName &&
-              modelForm.cityName &&
-              modelForm.districtName
-              ? ''
-              : 'address-inp'
-            ">
-            {{ modelForm.provinceName ? modelForm.provinceName : '省' }} /
-            {{ modelForm.cityName ? modelForm.cityName : '市' }} /
-            {{ modelForm.districtName ? modelForm.districtName : '区' }}
-          </view>
-        </pickerAddress>
+      <up-form-item label="地区" prop="area" borderBottom @click="onCityWx" labelWidth="70">
+        <view class="inp" :class="modelForm.provinceName && modelForm.cityName && modelForm.districtName ? '' : 'address-inp'">
+          {{ modelForm.provinceName ? modelForm.provinceName : '省' }} /
+          {{ modelForm.cityName ? modelForm.cityName : '市' }} /
+          {{ modelForm.districtName ? modelForm.districtName : '区' }}
+        </view>
         <template #right>
           <up-icon name="map" size="22" @click="onCityWx"></up-icon>
         </template>
@@ -71,10 +60,9 @@
 
 <script setup>
 import { ref, reactive, computed } from 'vue'
-import pickerAddress from '@/pages_mine/components/pickerAddress/pickerAddress.vue' // 地区选择器组件
 import { splitAddress } from '@/utils/adress'
 import config from '@/config'
-const mapKey = config.mapKey // 从配置文件中直接获取腾讯地图key
+const mapKey = config.mapKey
 const formRef = ref(null)
 const modelForm = ref({
   name: '',
@@ -106,6 +94,15 @@ const rulesForm = ref({
     required: true,
     message: '请填写姓名',
     trigger: ['blur', 'change'],
+    validator: (rule, value, callback) => {
+      if (!value || value.trim() === '') {
+        callback(new Error('请填写姓名'));
+      } else if (!/^[\u4e00-\u9fa5]+$/.test(value)) {
+        callback(new Error('姓名只能输入中文'));
+      } else {
+        callback();
+      }
+    }
   },
   // sex: {
   //   type: 'number',
@@ -130,6 +127,15 @@ const rulesForm = ref({
     required: true,
     message: '请填写手机号',
     trigger: ['blur', 'change'],
+    validator: (rule, value, callback) => {
+      if (value === '') {
+        callback(new Error('请填写手机号'));
+      } else if (!/^\d{11}$/.test(value)) {
+        callback(new Error('请输入11位数字手机号'));
+      } else {
+        callback();
+      }
+    }
   },
   detailAddress: {
     type: 'string',
@@ -147,10 +153,8 @@ const rulesForm = ref({
 
 let sexFlag = ref(false)
 let labelFlag = ref(false)
-let addressShow = ref(false)
 let index = ref(0)
-// 新增一个响应式变量,控制传染病内容的显示
-const showContagionContent = ref(false)
+
 
 const sexOptions = ref([
   {
@@ -212,24 +216,6 @@ function sexSelectsHip(e) {
   labelFlag.value = false
 }
 
-function addressChange(info) {
-  console.log(info, '>>>>data')
-
-  const { data, code, index } = info
-
-  modelForm.value.provinceName = data[0]
-  modelForm.value.provinceCode = code[0]
-  modelForm.value.provinceInd = index[0]
-
-  modelForm.value.cityName = data[1]
-  modelForm.value.cityCode = code[1]
-  modelForm.value.cityInd = index[1]
-
-  modelForm.value.districtName = data[2]
-  modelForm.value.districtCode = code[2]
-  modelForm.value.districtInd = index[2]
-}
-
 // 使用腾讯地图 API 的函数
 function getAdcodeByCoordinates(latitude, longitude) {
   if (!mapKey) {

+ 7 - 10
pages_mine/pages/selectAddress/edit.vue

@@ -23,16 +23,13 @@
       <up-form-item label="手机号" prop="telephone" borderBottom labelWidth="70">
         <up-input v-model="modelForm.telephone" border="none" placeholder="请输入手机号"></up-input>
       </up-form-item>
-      <up-form-item label="地区" prop="area" borderBottom @click="()=> addressShow = true" labelWidth="70">
-        <pickerAddress @change="addressChange"
-          :selectValue="[ modelForm.provinceInd, modelForm.cityInd, modelForm.districtInd ]">
-          <view class="inp"
-            :class="modelForm.provinceName&&modelForm.cityName&&modelForm.districtName?'':'address-inp'">
-            {{modelForm.provinceName ? modelForm.provinceName:'省'}} /
-            {{modelForm.cityName ? modelForm.cityName:'市'}} /
-            {{modelForm.districtName ? modelForm.districtName:'区'}}
-          </view>
-        </pickerAddress>
+      <up-form-item label="地区" prop="area" borderBottom @click="onCityWx" labelWidth="70">
+        <view class="inp"
+          :class="modelForm.provinceName && modelForm.cityName && modelForm.districtName ? '' : 'address-inp'">
+          {{ modelForm.provinceName ? modelForm.provinceName : '省' }} /
+          {{ modelForm.cityName ? modelForm.cityName : '市' }} /
+          {{ modelForm.districtName ? modelForm.districtName : '区' }}
+        </view>
         <template #right>
           <up-icon name="map" size="22" @click="onCityWx"></up-icon>
         </template>