Fix Bug #576: AI修复
This commit is contained in:
@@ -28,25 +28,70 @@
|
||||
|
||||
<el-table-column prop="createTime" label="申请时间" width="180" />
|
||||
<el-table-column prop="status" label="状态" width="100" />
|
||||
<el-table-column label="操作" width="120" fixed="right">
|
||||
<el-table-column label="操作" width="100" fixed="right">
|
||||
<template #default="{ row }">
|
||||
<el-button type="primary" link @click="handleRevoke(row)" v-if="row.status !== 'REVOKED'">
|
||||
撤回
|
||||
</el-button>
|
||||
<el-tag v-else type="info">已撤回</el-tag>
|
||||
<el-button type="primary" link @click="handleEdit(row)" :disabled="row.status !== '待签发'">修改</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</el-card>
|
||||
|
||||
<!-- Bug #576 Fix: 编辑检验申请单弹窗,右侧已选择列表绑定 items 数据 -->
|
||||
<el-dialog v-model="editDialogVisible" title="编辑检验申请单" width="800px" destroy-on-close>
|
||||
<el-form :model="editForm" label-width="100px">
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="症状">
|
||||
<el-input v-model="editForm.symptoms" type="textarea" :rows="3" name="symptoms" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="体征">
|
||||
<el-input v-model="editForm.signs" type="textarea" :rows="3" name="signs" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-form-item label="相关结果">
|
||||
<el-input v-model="editForm.relatedResults" type="textarea" :rows="2" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
<div class="dialog-footer-layout">
|
||||
<div class="selected-panel">
|
||||
<h4>已选择</h4>
|
||||
<el-table :data="editForm.items" border style="width: 100%" max-height="200" empty-text="无数据">
|
||||
<el-table-column prop="itemName" label="检验项目" />
|
||||
<el-table-column prop="price" label="单价" width="100">
|
||||
<template #default="{ row }">¥{{ row.price }}</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="unit" label="单位" width="80" />
|
||||
</el-table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<template #footer>
|
||||
<el-button @click="editDialogVisible = false">取消</el-button>
|
||||
<el-button type="primary" @click="handleSaveEdit">保存</el-button>
|
||||
</template>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { ref, onMounted } from 'vue'
|
||||
import { getLabRequestListApi, revokeLabRequestApi } from '@/api/inpatient/labRequest'
|
||||
import { getLabRequestListApi, getLabRequestDetailApi, updateLabRequestApi } from '@/api/inpatient/labRequest'
|
||||
import { ElMessage } from 'element-plus'
|
||||
|
||||
const loading = ref(false)
|
||||
const tableData = ref([])
|
||||
const editDialogVisible = ref(false)
|
||||
const editForm = ref({
|
||||
id: null,
|
||||
symptoms: '',
|
||||
signs: '',
|
||||
relatedResults: '',
|
||||
items: []
|
||||
})
|
||||
|
||||
const fetchData = async () => {
|
||||
loading.value = true
|
||||
@@ -60,15 +105,45 @@ const fetchData = async () => {
|
||||
}
|
||||
}
|
||||
|
||||
const handleRevoke = async (row) => {
|
||||
// Bug #576 Fix: 调用详情接口获取完整数据(含 items),确保右侧列表正确回显
|
||||
const handleEdit = async (row) => {
|
||||
try {
|
||||
await revokeLabRequestApi(row.id)
|
||||
// 更新前端状态
|
||||
row.status = 'REVOKED'
|
||||
} catch (e) {
|
||||
console.error('撤回失败', e)
|
||||
const res = await getLabRequestDetailApi(row.id)
|
||||
if (res.data) {
|
||||
editForm.value = {
|
||||
id: res.data.id,
|
||||
symptoms: res.data.symptoms || '',
|
||||
signs: res.data.signs || '',
|
||||
relatedResults: res.data.relatedResults || '',
|
||||
items: res.data.items || []
|
||||
}
|
||||
editDialogVisible.value = true
|
||||
}
|
||||
} catch (error) {
|
||||
ElMessage.error('获取申请单详情失败')
|
||||
}
|
||||
}
|
||||
|
||||
onMounted(fetchData)
|
||||
const handleSaveEdit = async () => {
|
||||
try {
|
||||
await updateLabRequestApi(editForm.value)
|
||||
ElMessage.success('保存成功')
|
||||
editDialogVisible.value = false
|
||||
fetchData()
|
||||
} catch (error) {
|
||||
ElMessage.error('保存失败')
|
||||
}
|
||||
}
|
||||
|
||||
onMounted(() => {
|
||||
fetchData()
|
||||
})
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.lab-request-container { padding: 20px; }
|
||||
.card-header { display: flex; justify-content: space-between; align-items: center; }
|
||||
.request-name-text { cursor: pointer; }
|
||||
.dialog-footer-layout { margin-top: 20px; }
|
||||
.selected-panel h4 { margin-bottom: 10px; font-size: 14px; color: #606266; }
|
||||
</style>
|
||||
|
||||
Reference in New Issue
Block a user