fix:先提交一版本的续保
This commit is contained in:
@@ -262,12 +262,12 @@
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-col v-if="showOriginalWarrantyYears" :span="12">
|
||||
<el-form-item label="产品年限" prop="originalWarrantyYears">
|
||||
<el-input v-model="formData.originalWarrantyYears" placeholder="请输入产品年限(如:3)" />
|
||||
<el-input v-model="formData.originalWarrantyYears" placeholder="选择续保产品后自动带出产品生效年限,可修改" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-col :span="showOriginalWarrantyYears ? 12 : 24">
|
||||
<el-form-item label="原厂质保里程" prop="originalWarrantyMileage">
|
||||
<el-input v-model="formData.originalWarrantyMileage" placeholder="请输入原厂质保里程" />
|
||||
</el-form-item>
|
||||
@@ -429,7 +429,7 @@ import { Qrcode } from '@/components/Qrcode'
|
||||
import * as FileApi from '@/api/infra/file'
|
||||
import { ElMessageBox } from 'element-plus'
|
||||
|
||||
/** 车辆续保订单 表单 */
|
||||
/** 车辆订单管理 表单 */
|
||||
defineOptions({ name: 'RenewalOrderForm' })
|
||||
|
||||
const { t } = useI18n() // 国际化
|
||||
@@ -467,6 +467,8 @@ const productTypeLabel = computed(() => {
|
||||
const showContractComponents = computed(() => {
|
||||
return formData.value.productType === '00' || formData.value.productType === '02'
|
||||
})
|
||||
// 产品年限:仅当产品类别为 00、02(与合同一致的规定品类)时展示并校验
|
||||
const showOriginalWarrantyYears = computed(() => showContractComponents.value)
|
||||
const formData = ref({
|
||||
id: undefined,
|
||||
carBrand: undefined,
|
||||
@@ -491,7 +493,7 @@ const formData = ref({
|
||||
serviceProduct: undefined,
|
||||
productType: undefined,
|
||||
productValidity: undefined,
|
||||
originalWarrantyYears: '3',
|
||||
originalWarrantyYears: undefined,
|
||||
originalWarrantyMileage: undefined,
|
||||
productFee: undefined,
|
||||
settlementMethod: '00',
|
||||
@@ -529,7 +531,20 @@ const formRules = reactive({
|
||||
productFee: [{ required: true, message: '产品费用不能为空', trigger: 'blur' }],
|
||||
settlementMethod: [{ required: true, message: '结算方式不能为空', trigger: 'change' }],
|
||||
inputUser: [{ required: true, message: '录单人不能为空', trigger: 'blur' }],
|
||||
originalWarrantyYears: [{ required: true, message: '产品年限不能为空', trigger: 'blur' }],
|
||||
originalWarrantyYears: [
|
||||
{
|
||||
validator: (_rule: any, value: any, callback: (e?: Error) => void) => {
|
||||
const pt = formData.value.productType
|
||||
const need = pt === '00' || pt === '02'
|
||||
if (need && (value == null || String(value).trim() === '')) {
|
||||
callback(new Error('产品年限不能为空'))
|
||||
} else {
|
||||
callback()
|
||||
}
|
||||
},
|
||||
trigger: 'blur'
|
||||
}
|
||||
],
|
||||
drivingLicenseUrl: [{ required: true, message: '请上传行驶证', trigger: 'change' }],
|
||||
carInvoiceUrls: [{
|
||||
required: true,
|
||||
@@ -580,6 +595,7 @@ const handleProductChange = async (productId: number) => {
|
||||
formData.value.serviceProduct = undefined
|
||||
formData.value.productType = undefined
|
||||
formData.value.productValidity = undefined
|
||||
formData.value.originalWarrantyYears = undefined
|
||||
return
|
||||
}
|
||||
try {
|
||||
@@ -592,6 +608,16 @@ const handleProductChange = async (productId: number) => {
|
||||
const p: any = product as any
|
||||
formData.value.productType = p.productType || (p.data && p.data.productType) || ''
|
||||
formData.value.productValidity = product.productContent || ''
|
||||
const pt = formData.value.productType
|
||||
const needWarrantyYears = pt === '00' || pt === '02'
|
||||
if (needWarrantyYears) {
|
||||
const eff = p.effectiveYear ?? p.data?.effectiveYear
|
||||
if (eff != null && eff !== '') {
|
||||
formData.value.originalWarrantyYears = String(eff)
|
||||
}
|
||||
} else {
|
||||
formData.value.originalWarrantyYears = undefined
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('获取产品详情失败:', error)
|
||||
message.error('获取产品详情失败')
|
||||
@@ -781,19 +807,22 @@ const submitForm = async () => {
|
||||
await formRef.value.validate()
|
||||
formLoading.value = true
|
||||
try {
|
||||
const data = formData.value as unknown as RenewalOrderVO
|
||||
const payload = { ...formData.value } as unknown as RenewalOrderVO
|
||||
if (payload.productType !== '00' && payload.productType !== '02') {
|
||||
payload.originalWarrantyYears = undefined as any
|
||||
}
|
||||
if (formType.value === 'create') {
|
||||
const res = await RenewalOrderApi.createRenewalOrder(data) as any
|
||||
const res = await RenewalOrderApi.createRenewalOrder(payload) as any
|
||||
const newId = res?.data ?? res
|
||||
if (newId) formData.value.id = newId
|
||||
if ((data.productType === '00' || data.productType === '02') && newId) {
|
||||
if ((payload.productType === '00' || payload.productType === '02') && newId) {
|
||||
message.success('订单已创建,请让客户扫码完成签名后自动生成合同')
|
||||
await openOnlineSignForOrder(newId)
|
||||
return
|
||||
}
|
||||
message.success(t('common.createSuccess'))
|
||||
} else {
|
||||
await RenewalOrderApi.updateRenewalOrder(data)
|
||||
await RenewalOrderApi.updateRenewalOrder(payload)
|
||||
message.success(t('common.updateSuccess'))
|
||||
}
|
||||
dialogVisible.value = false
|
||||
@@ -882,7 +911,7 @@ const resetForm = () => {
|
||||
serviceProduct: undefined,
|
||||
productType: undefined,
|
||||
productValidity: undefined,
|
||||
originalWarrantyYears: '3',
|
||||
originalWarrantyYears: undefined,
|
||||
originalWarrantyMileage: undefined,
|
||||
productFee: undefined,
|
||||
settlementMethod: '00',
|
||||
|
||||
Reference in New Issue
Block a user