feat(surgicalschedule): 添加手术单号筛选和详情显示功能 BUG#278

- 在筛选区域添加手术单号输入框支持按手术单号搜索
- 在表格中添加手术单号列并支持点击查看详情
- 修复权限指令使用正确的 v-hasPermi 指令
- 更新查询参数结构体添加 operCode 字段
- 移除冗余的分页重置逻辑
- 优化后端服务层手术安排名称填充逻辑
- 添加系统用户表名称查询作为备选方案
- 修复数据库查询关联条件使用手术单号匹配
- 添加手术单号模糊查询的SQL条件支持
This commit is contained in:
2026-03-31 14:00:20 +08:00
parent 64b02466b1
commit 3b8ef380ae
4 changed files with 246 additions and 44 deletions

View File

@@ -2,6 +2,15 @@
<div class="app-container">
<!-- 顶部筛选区 -->
<el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" class="query-form">
<el-form-item label="手术单号" prop="operCode">
<el-input
v-model="queryParams.operCode"
placeholder="请输入手术单号"
clearable
@keyup.enter="handleQuery"
style="width: 200px"
/>
</el-form-item>
<el-form-item label="安排时间" prop="scheduleDate">
<el-tooltip :content="queryParams.scheduleDate" placement="top" :disabled="!queryParams.scheduleDate">
<el-date-picker
@@ -66,6 +75,13 @@
<!-- 中部表格区 -->
<el-table v-loading="loading" :data="surgeryList" row-key="scheduleId" :row-class-name="getRowClassName" @current-change="handleCurrentChange">
<el-table-column label="手术单号" align="center" prop="operCode" width="180" show-overflow-tooltip>
<template #default="scope">
<el-link type="primary" :underline="false" @click="handleView(scope.row)">
{{ scope.row.operCode }}
</el-link>
</template>
</el-table-column>
<el-table-column label="ID" align="center" width="80">
<template #default="{ $index }">
{{ (applyQueryParams.pageNo - 1) * applyQueryParams.pageSize + $index + 1 }}
@@ -74,15 +90,12 @@
<el-table-column label="卫生机构" align="center" prop="orgName" width="120" show-overflow-tooltip />
<el-table-column label="姓名" align="center" prop="patientName" width="100" />
<el-table-column label="就诊卡号" align="center" prop="visitId" width="120" />
<el-table-column label="手术单号" align="center" prop="operCode" width="180" show-overflow-tooltip>
<el-table-column label="手术名称" align="center" prop="operName" min-width="140" show-overflow-tooltip />
<el-table-column label="申请科室" align="center" prop="applyDeptName" width="100" show-overflow-tooltip>
<template #default="scope">
<el-link type="primary" :underline="false" @click="handleView(scope.row)">
{{ scope.row.operCode }}
</el-link>
{{ scope.row.applyDeptName || '-' }}
</template>
</el-table-column>
<el-table-column label="手术名称" align="center" prop="operName" min-width="140" show-overflow-tooltip />
<el-table-column label="申请科室" align="center" prop="applyDeptName" width="100" show-overflow-tooltip />
<el-table-column label="手术类型" align="center" width="100">
<template #default="scope">
{{ getSurgeryTypeName(scope.row.surgeryNature) }}
@@ -109,7 +122,7 @@
<template #default="scope">
<el-button link type="primary" @click="handleView(scope.row)">查看</el-button>
<el-button link type="primary" @click="handleEdit(scope.row)">编辑</el-button>
<el-button link type="danger" @click="handleDelete(scope.row)" v-has="['surgicalSchedule:delete']">取消</el-button>
<el-button link type="danger" @click="handleDelete(scope.row)" v-hasPermi="['surgicalSchedule:delete']">取消</el-button>
</template>
</el-table-column>
</el-table>
@@ -862,7 +875,8 @@ const queryParams = reactive({
scheduleDate: undefined,
tenantId: undefined,
applyDeptId: undefined,
patientName: undefined
patientName: undefined,
operCode: undefined
})
const open = ref(false)
const isEditMode = ref(false)
@@ -1165,7 +1179,6 @@ function getList() {
}
function getPageList() {
queryParams.pageNo = 1
getList()
}
@@ -1182,7 +1195,8 @@ function resetQuery() {
scheduleDate: undefined,
tenantId: undefined,
applyDeptId: undefined,
patientName: undefined
patientName: undefined,
operCode: undefined
})
getList()
}