更新
This commit is contained in:
@@ -677,6 +677,28 @@
|
||||
<el-option label="驼奶费用" :value="8" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item v-if="isEditPaymentTimeEditable" label="支付时间" prop="payment_time">
|
||||
<el-date-picker
|
||||
v-model="editOrderForm.payment_time"
|
||||
type="datetime"
|
||||
placeholder="请选择支付时间"
|
||||
format="YYYY-MM-DD HH:mm:ss"
|
||||
value-format="YYYY-MM-DD HH:mm:ss"
|
||||
:clearable="false"
|
||||
class="w-full"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="创建时间" prop="create_time">
|
||||
<el-date-picker
|
||||
v-model="editOrderForm.create_time"
|
||||
type="datetime"
|
||||
placeholder="请选择创建时间"
|
||||
format="YYYY-MM-DD HH:mm:ss"
|
||||
value-format="YYYY-MM-DD HH:mm:ss"
|
||||
:clearable="false"
|
||||
class="w-full"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<template #footer>
|
||||
<el-button @click="editOrderDialogVisible = false">取消</el-button>
|
||||
@@ -1015,9 +1037,32 @@ const editOrderFormRef = ref()
|
||||
const editOrderLoading = ref(false)
|
||||
const editPatientLoading = ref(false)
|
||||
const editPatientList = ref<any[]>([])
|
||||
const editOrderForm = ref<{ id: number; patient_id: number | null; order_type: number } | null>(null)
|
||||
type EditOrderForm = {
|
||||
id: number
|
||||
patient_id: number | null
|
||||
order_type: number
|
||||
status: number
|
||||
payment_time: string
|
||||
create_time: string
|
||||
}
|
||||
|
||||
const editOrderForm = ref<EditOrderForm | null>(null)
|
||||
const isEditPaymentTimeEditable = computed(() => [2, 4].includes(editOrderForm.value?.status ?? 0))
|
||||
const editOrderRules = {
|
||||
order_type: [{ required: true, message: '请选择订单类型', trigger: 'change' }]
|
||||
order_type: [{ required: true, message: '请选择订单类型', trigger: 'change' }],
|
||||
payment_time: [
|
||||
{
|
||||
validator: (_rule: unknown, value: string, callback: (error?: Error) => void) => {
|
||||
if (isEditPaymentTimeEditable.value && !value) {
|
||||
callback(new Error('请选择支付时间'))
|
||||
return
|
||||
}
|
||||
callback()
|
||||
},
|
||||
trigger: 'change'
|
||||
}
|
||||
],
|
||||
create_time: [{ required: true, message: '请选择创建时间', trigger: 'change' }]
|
||||
}
|
||||
|
||||
// 搜索患者
|
||||
@@ -1289,11 +1334,37 @@ const getCreateTypeText = (row: any) => {
|
||||
}
|
||||
|
||||
// 编辑订单
|
||||
const normalizeOrderDateTime = (value: unknown) => {
|
||||
if (value === null || value === undefined || value === '' || value === '-') return ''
|
||||
|
||||
const raw = String(value).trim()
|
||||
const canonicalDateTime = raw.match(/^\d{4}-\d{2}-\d{2}[ T]\d{2}:\d{2}:\d{2}/)?.[0]
|
||||
if (canonicalDateTime) return canonicalDateTime.replace('T', ' ')
|
||||
|
||||
const numericTimestamp = /^\d{10,13}$/.test(raw) ? Number(raw) : 0
|
||||
const parsed = new Date(
|
||||
numericTimestamp
|
||||
? numericTimestamp < 1_000_000_000_000
|
||||
? numericTimestamp * 1000
|
||||
: numericTimestamp
|
||||
: raw
|
||||
)
|
||||
if (Number.isNaN(parsed.getTime())) return ''
|
||||
|
||||
const pad = (part: number) => String(part).padStart(2, '0')
|
||||
return `${parsed.getFullYear()}-${pad(parsed.getMonth() + 1)}-${pad(parsed.getDate())} ${pad(
|
||||
parsed.getHours()
|
||||
)}:${pad(parsed.getMinutes())}:${pad(parsed.getSeconds())}`
|
||||
}
|
||||
|
||||
const handleEditOrder = (row: any) => {
|
||||
editOrderForm.value = {
|
||||
id: row.id,
|
||||
patient_id: row.patient_id || null,
|
||||
order_type: row.order_type
|
||||
order_type: row.order_type,
|
||||
status: Number(row.status),
|
||||
payment_time: [2, 4].includes(Number(row.status)) ? normalizeOrderDateTime(row.payment_time) : '',
|
||||
create_time: normalizeOrderDateTime(row.create_time)
|
||||
}
|
||||
editPatientList.value = row.patient ? [row.patient] : []
|
||||
editOrderDialogVisible.value = true
|
||||
@@ -1320,11 +1391,16 @@ const submitEditOrder = async () => {
|
||||
try {
|
||||
await editOrderFormRef.value?.validate()
|
||||
editOrderLoading.value = true
|
||||
await orderEdit({
|
||||
const payload: Record<string, unknown> = {
|
||||
id: editOrderForm.value.id,
|
||||
patient_id: editOrderForm.value.patient_id ?? 0,
|
||||
order_type: editOrderForm.value.order_type
|
||||
})
|
||||
order_type: editOrderForm.value.order_type,
|
||||
create_time: editOrderForm.value.create_time
|
||||
}
|
||||
if (isEditPaymentTimeEditable.value) {
|
||||
payload.payment_time = editOrderForm.value.payment_time
|
||||
}
|
||||
await orderEdit(payload)
|
||||
feedback.msgSuccess('保存成功')
|
||||
editOrderDialogVisible.value = false
|
||||
getLists()
|
||||
|
||||
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user