Fix Bug #576: AI修复
This commit is contained in:
@@ -0,0 +1,102 @@
|
||||
<template>
|
||||
<el-dialog
|
||||
v-model="visible"
|
||||
title="编辑检验申请单"
|
||||
width="900px"
|
||||
destroy-on-close
|
||||
data-testid="lab-request-edit-dialog"
|
||||
>
|
||||
<el-form :model="form" label-width="100px" class="lab-form">
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="症状" prop="symptom">
|
||||
<el-input v-model="form.symptom" placeholder="请输入症状" data-testid="symptom-input" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="体征" prop="sign">
|
||||
<el-input v-model="form.sign" placeholder="请输入体征" data-testid="sign-input" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-form-item label="相关结果" prop="relatedResult">
|
||||
<el-input v-model="form.relatedResult" type="textarea" :rows="3" placeholder="请输入相关结果" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
<div class="selected-items-wrapper">
|
||||
<h4 class="section-title">已选择项目</h4>
|
||||
<el-table
|
||||
:data="selectedItems"
|
||||
border
|
||||
style="width: 100%"
|
||||
max-height="300"
|
||||
data-testid="selected-items-list"
|
||||
>
|
||||
<el-table-column prop="itemName" label="检验项目" min-width="150" />
|
||||
<el-table-column prop="price" label="单价(元)" width="100" align="right">
|
||||
<template #default="{ row }">¥{{ row.price?.toFixed(2) }}</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="quantity" label="数量" width="80" align="center" />
|
||||
</el-table>
|
||||
<el-empty v-if="selectedItems.length === 0" description="无数据" />
|
||||
</div>
|
||||
|
||||
<template #footer>
|
||||
<el-button @click="visible = false">取消</el-button>
|
||||
<el-button type="primary" @click="handleSave">确认修改</el-button>
|
||||
</template>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { ref, reactive } from 'vue'
|
||||
import { getLabRequestDetail, updateLabRequest } from '@/api/lab-request'
|
||||
import { ElMessage } from 'element-plus'
|
||||
|
||||
const visible = ref(false)
|
||||
const form = reactive({
|
||||
id: null,
|
||||
symptom: '',
|
||||
sign: '',
|
||||
relatedResult: ''
|
||||
})
|
||||
const selectedItems = ref([])
|
||||
|
||||
const open = async (id) => {
|
||||
visible.value = true
|
||||
try {
|
||||
const res = await getLabRequestDetail(id)
|
||||
if (res.code === 200 && res.data) {
|
||||
// 修复 Bug #576:原逻辑仅赋值主表字段,遗漏了明细项数组的绑定
|
||||
Object.assign(form, res.data)
|
||||
// 确保右侧“已选择”列表正确接收后端返回的 items 数据
|
||||
selectedItems.value = res.data.items || []
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('获取检验申请详情失败', error)
|
||||
ElMessage.error('加载申请单数据失败')
|
||||
}
|
||||
}
|
||||
|
||||
const handleSave = async () => {
|
||||
try {
|
||||
await updateLabRequest(form)
|
||||
ElMessage.success('修改成功')
|
||||
visible.value = false
|
||||
// 触发父组件刷新列表
|
||||
emit('refresh')
|
||||
} catch (error) {
|
||||
ElMessage.error('保存失败')
|
||||
}
|
||||
}
|
||||
|
||||
const emit = defineEmits(['refresh'])
|
||||
defineExpose({ open })
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.lab-form { margin-bottom: 20px; }
|
||||
.selected-items-wrapper { margin-top: 10px; }
|
||||
.section-title { font-size: 14px; font-weight: 600; margin-bottom: 10px; color: #303133; }
|
||||
</style>
|
||||
Reference in New Issue
Block a user