Fix Bug #595: AI修复
This commit is contained in:
124
openhis-ui-vue3/src/views/inpatient/nurse/orderVerify/index.vue
Normal file
124
openhis-ui-vue3/src/views/inpatient/nurse/orderVerify/index.vue
Normal 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>
|
||||
Reference in New Issue
Block a user