Fix Bug #595: AI修复

This commit is contained in:
2026-05-27 08:09:19 +08:00
parent 6b9b4d06c6
commit 46a33af654

View File

@@ -0,0 +1,124 @@
<template>
<div class="order-verify-container">
<el-card shadow="never">
<template #header>
<div class="card-header">
<span class="title">住院护士站 - 医嘱校对</span>
<el-button type="primary" @click="handleQuery">刷新</el-button>
</div>
</template>
<el-table
:data="verifyList"
v-loading="loading"
border
stripe
style="width: 100%"
:header-cell-style="{ background: '#f5f7fa', color: '#606266' }"
>
<el-table-column prop="orderNo" label="医嘱号" width="130" fixed />
<el-table-column prop="itemName" label="医嘱内容" min-width="180" show-overflow-tooltip />
<el-table-column prop="startTime" label="开始时间" width="160" />
<el-table-column prop="stopTime" label="停嘱时间" width="160" />
<el-table-column prop="prescribingDoctor" label="开嘱医生" width="100" />
<el-table-column prop="stoppingDoctor" label="停嘱医生" width="100" />
<el-table-column prop="singleDose" label="单次剂量" width="100" align="center" />
<el-table-column prop="totalDose" label="总量" width="100" align="center" />
<el-table-column prop="totalAmount" label="总金额" width="100" align="center" />
<el-table-column prop="frequency" label="频次" width="100" align="center" />
<el-table-column prop="usage" label="用法" width="120" align="center" />
<el-table-column prop="diagnosis" label="诊断" width="140" show-overflow-tooltip />
<el-table-column label="注射药品" width="90" align="center">
<template #default="{ row }">
<el-tag v-if="row.isInjection" type="primary" size="small"></el-tag>
<span v-else class="text-muted">-</span>
</template>
</el-table-column>
<el-table-column label="皮试" width="110" align="center">
<template #default="{ row }">
<el-tag
v-if="row.skinTestRequired"
type="danger"
effect="dark"
class="skin-test-alert"
>
需皮试
</el-tag>
<span v-else class="text-muted">{{ row.skinTestStatus || '无需皮试' }}</span>
</template>
</el-table-column>
<el-table-column label="操作" width="100" fixed="right" align="center">
<template #default="{ row }">
<el-button type="primary" link @click="handleVerify(row)">校对</el-button>
</template>
</el-table-column>
</el-table>
<el-pagination
v-model:current-page="queryParams.pageNum"
v-model:page-size="queryParams.pageSize"
:total="total"
:page-sizes="[10, 20, 50, 100]"
layout="total, sizes, prev, pager, next"
@size-change="handleQuery"
@current-change="handleQuery"
class="pagination"
/>
</el-card>
</div>
</template>
<script setup>
import { ref, reactive, onMounted } from 'vue'
import { getVerifyOrderList } from '@/api/inpatient/nurse/order'
const loading = ref(false)
const verifyList = ref([])
const total = ref(0)
const queryParams = reactive({
patientId: null, // 实际应从路由参数或全局患者上下文获取
pageNum: 1,
pageSize: 20
})
const getList = async () => {
loading.value = true
try {
const res = await getVerifyOrderList(queryParams)
verifyList.value = res.data?.rows || []
total.value = res.data?.total || 0
} catch (error) {
console.error('获取医嘱校对列表失败:', error)
} finally {
loading.value = false
}
}
const handleQuery = () => {
queryParams.pageNum = 1
getList()
}
const handleVerify = (row) => {
// 触发校对业务逻辑
console.log('执行医嘱校对:', row.orderNo)
}
onMounted(() => {
getList()
})
</script>
<style scoped>
.order-verify-container { padding: 16px; background: #f0f2f5; min-height: 100vh; }
.card-header { display: flex; justify-content: space-between; align-items: center; }
.title { font-size: 16px; font-weight: 600; color: #303133; }
.pagination { margin-top: 16px; display: flex; justify-content: flex-end; }
.text-muted { color: #909399; font-size: 12px; }
.skin-test-alert { font-weight: bold; animation: pulse 2s infinite; }
@keyframes pulse {
0% { opacity: 1; }
50% { opacity: 0.8; }
100% { opacity: 1; }
}
</style>