|
@@ -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) {
|