fix(consultation): 解决会诊流程中的多个功能问题
- 在 deptappthoursManage.js 中添加 status 参数以仅获取已启动的机构 - 为 consultationapplication 组件添加已确认和已签名状态选项 - 扩展操作列宽度并添加打印功能按钮 - 优化 handlePrint 方法以支持行参数和性别枚举转换 - 为 consultationconfirmation 组件添加必填验证和编辑权限控制 - 修复会诊确认医师信息回显逻辑 - 在 inspectionApplication 组件中修复表格行点击事件和检验项目加载 - 禁用非紧急标记的编辑权限以解决Bug #268 - 为 surgeryApplication 组件添加响应码验证和错误处理 - 在 consultation 组件中添加表单验证清除功能 - 为 PackageManagement 组件实现动态机构选项加载 - 重构 PackageSettings 组件的套餐金额显示和只读模式 - 为检查项目设置组件添加套餐筛选和下级类型选择功能 - 实现检验套餐的编辑和查看模式切换功能
This commit is contained in:
@@ -33,7 +33,9 @@
|
||||
max-height="300px"
|
||||
style="width: 100%; min-width: 100%"
|
||||
class="inspection-table"
|
||||
highlight-current-row
|
||||
@selection-change="handleSelectionChange"
|
||||
@current-change="handleRowClick"
|
||||
@cell-click="handleCellClick"
|
||||
>
|
||||
<el-table-column type="selection" width="55" align="center" header-align="center" />
|
||||
@@ -292,16 +294,20 @@
|
||||
</template>
|
||||
<el-row type="flex" :gutter="16" wrap>
|
||||
<el-col :xs="12" :sm="6" :md="6" :lg="6">
|
||||
<!-- 🔧 Bug #268 修复:只有急标记能编辑 -->
|
||||
<el-checkbox v-model="formData.priorityCode" :true-value="1" :false-value="0">急</el-checkbox>
|
||||
</el-col>
|
||||
<el-col :xs="12" :sm="6" :md="6" :lg="6">
|
||||
<el-checkbox v-model="formData.applyStatus" :true-value="1" :false-value="0">收费</el-checkbox>
|
||||
<!-- 🔧 Bug #268 修复:收费标记默认不勾选并不可编辑 -->
|
||||
<el-checkbox v-model="formData.applyStatus" :true-value="1" :false-value="0" disabled>收费</el-checkbox>
|
||||
</el-col>
|
||||
<el-col :xs="12" :sm="6" :md="6" :lg="6">
|
||||
<el-checkbox v-model="formData.needRefund" :true-value="true" :false-value="false">退费</el-checkbox>
|
||||
<!-- 🔧 Bug #268 修复:退费标记默认不勾选并不可编辑 -->
|
||||
<el-checkbox v-model="formData.needRefund" :true-value="true" :false-value="false" disabled>退费</el-checkbox>
|
||||
</el-col>
|
||||
<el-col :xs="12" :sm="6" :md="6" :lg="6">
|
||||
<el-checkbox v-model="formData.needExecute" :true-value="true" :false-value="false">执行</el-checkbox>
|
||||
<!-- 🔧 Bug #268 修复:执行标记默认不勾选并不可编辑 -->
|
||||
<el-checkbox v-model="formData.needExecute" :true-value="true" :false-value="false" disabled>执行</el-checkbox>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-card>
|
||||
@@ -1521,62 +1527,87 @@ function handleDelete(row) {
|
||||
function handleCellClick(row, column) {
|
||||
// 点击表格行时,将该申请单的数据加载到表单中
|
||||
if (row && row.applicationId) {
|
||||
// 切换到申请单 TAB
|
||||
leftActiveTab.value = 'application'
|
||||
|
||||
// 加载表单数据
|
||||
Object.assign(formData, {
|
||||
applicationId: row.applicationId,
|
||||
applyNo: row.applyNo,
|
||||
patientName: row.patientName,
|
||||
medicalrecordNumber: row.medicalrecordNumber,
|
||||
natureofCost: row.natureofCost || 'self',
|
||||
applyTime: row.applyTime,
|
||||
applyDepartment: row.applyDepartment,
|
||||
applyDocName: row.applyDocName,
|
||||
executeDepartment: row.executeDepartment || 'medical_lab',
|
||||
clinicDesc: row.clinicDesc,
|
||||
contraindication: row.contraindication,
|
||||
clinicDiag: row.clinicDiag,
|
||||
medicalHistorySummary: row.medicalHistorySummary,
|
||||
purposeofInspection: row.purposeofInspection,
|
||||
physicalExam: row.physicalExam,
|
||||
applyRemark: row.applyRemark,
|
||||
priorityCode: row.priorityCode || 0,
|
||||
applyStatus: row.applyStatus || 1,
|
||||
needRefund: row.needRefund || false,
|
||||
needExecute: row.needExecute || false,
|
||||
inspectionDoctor: row.inspectionDoctor,
|
||||
inspectionTime: row.inspectionTime,
|
||||
auditDoctor: row.auditDoctor,
|
||||
auditTime: row.auditTime,
|
||||
visitNo: row.visitNo,
|
||||
applyDocCode: row.applyDocCode,
|
||||
applyDeptCode: row.applyDeptCode,
|
||||
specimenName: row.specimenName,
|
||||
encounterId: row.encounterId,
|
||||
patientId: row.patientId,
|
||||
applyOrganizationId: row.applyOrganizationId
|
||||
})
|
||||
|
||||
// 根据检验项目名称解析已选项目
|
||||
selectedInspectionItems.value = []
|
||||
if (row.itemName || row.inspectionItem) {
|
||||
const itemNames = (row.itemName || row.inspectionItem).split('、')
|
||||
inspectionCategories.value.forEach(category => {
|
||||
category.items.forEach(item => {
|
||||
if (itemNames.includes(item.itemName)) {
|
||||
selectedInspectionItems.value.push({ ...item })
|
||||
}
|
||||
})
|
||||
loadApplicationToForm(row);
|
||||
}
|
||||
}
|
||||
|
||||
// 🔧 Bug #269 修复:行点击事件处理
|
||||
function handleRowClick(currentRow, oldRow) {
|
||||
// 点击表格行时,将该申请单的数据加载到表单中
|
||||
if (currentRow && currentRow.applicationId) {
|
||||
loadApplicationToForm(currentRow);
|
||||
}
|
||||
}
|
||||
|
||||
// 🔧 Bug #269 修复:提取公共方法加载申请单到表单
|
||||
function loadApplicationToForm(row) {
|
||||
// 切换到申请单 TAB
|
||||
leftActiveTab.value = 'application'
|
||||
|
||||
// 加载表单数据
|
||||
Object.assign(formData, {
|
||||
applicationId: row.applicationId,
|
||||
applyNo: row.applyNo,
|
||||
patientName: row.patientName,
|
||||
medicalrecordNumber: row.medicalrecordNumber,
|
||||
natureofCost: row.natureofCost || 'self',
|
||||
applyTime: row.applyTime,
|
||||
applyDepartment: row.applyDepartment,
|
||||
applyDocName: row.applyDocName,
|
||||
executeDepartment: row.executeDepartment || 'medical_lab',
|
||||
clinicDesc: row.clinicDesc,
|
||||
contraindication: row.contraindication,
|
||||
clinicDiag: row.clinicDiag,
|
||||
medicalHistorySummary: row.medicalHistorySummary,
|
||||
purposeofInspection: row.purposeofInspection,
|
||||
physicalExam: row.physicalExam,
|
||||
applyRemark: row.applyRemark,
|
||||
priorityCode: row.priorityCode || 0,
|
||||
applyStatus: row.applyStatus || 0, // 🔧 Bug #268: 默认为 0
|
||||
needRefund: row.needRefund || false,
|
||||
needExecute: row.needExecute || false,
|
||||
inspectionDoctor: row.inspectionDoctor,
|
||||
inspectionTime: row.inspectionTime,
|
||||
auditDoctor: row.auditDoctor,
|
||||
auditTime: row.auditTime,
|
||||
visitNo: row.visitNo,
|
||||
applyDocCode: row.applyDocCode,
|
||||
applyDeptCode: row.applyDeptCode,
|
||||
specimenName: row.specimenName,
|
||||
encounterId: row.encounterId,
|
||||
patientId: row.patientId,
|
||||
applyOrganizationId: row.applyOrganizationId
|
||||
})
|
||||
|
||||
// 🔧 Bug #269 修复:根据检验项目 ID 加载详细的检验项目数据
|
||||
selectedInspectionItems.value = []
|
||||
if (row.labApplyItemList && row.labApplyItemList.length > 0) {
|
||||
// 如果后端返回了检验项目列表,直接使用
|
||||
selectedInspectionItems.value = row.labApplyItemList.map(item => ({
|
||||
...item,
|
||||
itemId: item.itemId || item.id || Math.random().toString(36).substring(2, 11),
|
||||
itemName: item.itemName || item.name || '',
|
||||
itemPrice: item.itemPrice || item.price || 0,
|
||||
itemAmount: item.itemAmount || item.price || 0,
|
||||
}))
|
||||
} else if (row.itemName || row.inspectionItem) {
|
||||
// 如果只有项目名称,尝试从本地分类中查找匹配项
|
||||
const itemNames = (row.itemName || row.inspectionItem).split(/[+,]/) // 支持多种分隔符
|
||||
inspectionCategories.value.forEach(category => {
|
||||
category.items.forEach(item => {
|
||||
if (itemNames.includes(item.itemName)) {
|
||||
selectedInspectionItems.value.push({ ...item })
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
// 重置验证错误状态
|
||||
Object.keys(validationErrors).forEach(key => {
|
||||
validationErrors[key] = false
|
||||
})
|
||||
}
|
||||
|
||||
// 重置验证错误状态
|
||||
Object.keys(validationErrors).forEach(key => {
|
||||
validationErrors[key] = false
|
||||
})
|
||||
|
||||
console.log('已加载申请单到表单:', row.applyNo);
|
||||
}
|
||||
|
||||
// 监听activeTab变化
|
||||
|
||||
Reference in New Issue
Block a user