评论需要添加功能,提交订单有问题
This commit is contained in:
@@ -1,13 +1,29 @@
|
||||
<script setup>
|
||||
import { onLoad } from '@dcloudio/uni-app'
|
||||
import { reactive, ref } from 'vue'
|
||||
import { PHONE_REGEX } from '@/utils/validate'
|
||||
import {
|
||||
addUserAddress,
|
||||
updateUserAddress,
|
||||
getUserAddressDetail
|
||||
} from '@/api'
|
||||
import { navigateBack } from '@/utils/router'
|
||||
|
||||
const props = defineProps({
|
||||
type: {
|
||||
type: String,
|
||||
default: 'add'
|
||||
}
|
||||
})
|
||||
|
||||
const formRef = ref(null)
|
||||
const formData = reactive({
|
||||
id: '',
|
||||
name: '',
|
||||
phone: '',
|
||||
address: '',
|
||||
/** 省市区选择 */
|
||||
selectAddress: '',
|
||||
/** 门牌号 */
|
||||
houseNum: '',
|
||||
/** 是否默认地址 */
|
||||
defaultAddress: false
|
||||
})
|
||||
@@ -27,26 +43,60 @@
|
||||
errorMessage: '手机号不能为空'
|
||||
},
|
||||
{
|
||||
format: 'number',
|
||||
errorMessage: '手机号只能输入数字'
|
||||
validateFunction: (rule, value, data, callback) => {
|
||||
if (!PHONE_REGEX.test(value)) {
|
||||
callback('手机号格式不正确')
|
||||
return false
|
||||
}
|
||||
return true
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
selectAddress: {
|
||||
houseNum: {
|
||||
rules: [
|
||||
{
|
||||
required: true,
|
||||
errorMessage: '所在地区不能为空'
|
||||
errorMessage: '门牌号不能为空'
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
const submitForm = () => {
|
||||
formRef.value.validate().then(res => {
|
||||
console.log(res, '校验通过')
|
||||
formRef.value.validate().then(async () => {
|
||||
const data = {
|
||||
houseNum: formData.houseNum,
|
||||
name: formData.name,
|
||||
phone: formData.phone,
|
||||
address: formData.address,
|
||||
defaultAddress: formData.defaultAddress ? 1 : 0
|
||||
}
|
||||
// updateUserAddress
|
||||
if (props.type === 'edit') {
|
||||
await updateUserAddress({ id: formData.id, ...data })
|
||||
} else {
|
||||
await addUserAddress(data)
|
||||
}
|
||||
navigateBack()
|
||||
})
|
||||
}
|
||||
|
||||
const getData = async id => {
|
||||
const { data } = await getUserAddressDetail(id)
|
||||
formData.id = data.id
|
||||
formData.name = data.name
|
||||
formData.phone = data.phone
|
||||
formData.houseNum = data.houseNum
|
||||
formData.address = data.address
|
||||
formData.defaultAddress = data.defaultAddress == 1
|
||||
}
|
||||
|
||||
onLoad(e => {
|
||||
if (props.type === 'edit') {
|
||||
getData(e.id)
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
<template>
|
||||
@@ -75,6 +125,7 @@
|
||||
:rules="rules"
|
||||
:modelValue="formData"
|
||||
label-width="150rpx"
|
||||
class="address-form"
|
||||
>
|
||||
<uni-forms-item label="收件人" required name="name">
|
||||
<uni-easyinput
|
||||
@@ -88,10 +139,10 @@
|
||||
placeholder="请输入手机号"
|
||||
/>
|
||||
</uni-forms-item>
|
||||
<uni-forms-item label="所在地区" required name="selectAddress">
|
||||
<uni-forms-item label="门牌号" required name="houseNum">
|
||||
<uni-easyinput
|
||||
v-model="formData.selectAddress"
|
||||
placeholder="请选择地区"
|
||||
v-model="formData.houseNum"
|
||||
placeholder="请输入门牌号"
|
||||
/>
|
||||
</uni-forms-item>
|
||||
<uni-forms-item label="详细地址" name="address">
|
||||
@@ -163,5 +214,11 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.address-form {
|
||||
:deep(.uni-easyinput__content) {
|
||||
border-radius: 34rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
Reference in New Issue
Block a user