diff --git a/openhis-ui-vue3/src/views/basicmanage/InvoiceManagement/index.vue b/openhis-ui-vue3/src/views/basicmanage/InvoiceManagement/index.vue
index f94a16c6..52cf4e99 100644
--- a/openhis-ui-vue3/src/views/basicmanage/InvoiceManagement/index.vue
+++ b/openhis-ui-vue3/src/views/basicmanage/InvoiceManagement/index.vue
@@ -52,8 +52,23 @@
{{ index + 1 }} |
-
- {{ item.operator || '-' }}
+
+
+ {{ item.operator || '-' }}
|
@@ -180,7 +195,7 @@ export default {
name: '',
nickName: '',
employeeId: '',
- status: '' // 0: 启用(管理员), 1: 禁用(普通人员)
+ status: '' // 0: 启用, 1: 禁用(仅用于显示,不再控制权限)
},
// 用户列表,用于操作员下拉选择(将在created中从后端获取)
userList: [],
@@ -195,10 +210,11 @@ export default {
}
},
computed: {
- // 计算属性:判断是否为管理员
+ // 计算属性:判断是否为超级管理员
isAdmin() {
- // 管理员是指在用户管理界面中状态为启用的用户
- return this.currentUser.status === '0';
+ // 只有用户名等于 'admin' 的用户才是超级管理员,可以查看所有数据
+ const userStore = useUserStore();
+ return userStore.name === 'admin';
}
},
created() {
@@ -260,14 +276,25 @@ export default {
},
// 从后端加载发票数据
loadInvoiceData() {
+ // 准备查询参数
+ const queryParams = {
+ pageNo: 1,
+ pageSize: 10000 // 进一步增大分页大小,确保能获取数据库中的所有记录
+ };
+
+ // 非超级管理员用户只能查询自己的发票数据
+ if (!this.isAdmin && this.currentUser.employeeId) {
+ queryParams.invoicingStaffId = this.currentUser.employeeId;
+ console.log('普通用户模式,只查询自己的发票数据,员工ID:', this.currentUser.employeeId);
+ } else {
+ console.log('超级管理员模式,查询所有发票数据');
+ }
+
// 使用request工具从后端API获取发票段数据
request({
url: '/basicmanage/invoice-segment/page', // 更新为发票段的API路径
method: 'get',
- params: {
- pageNo: 1,
- pageSize: 10000 // 进一步增大分页大小,确保能获取数据库中的所有记录
- }
+ params: queryParams
}).then(res => {
console.log('获取到的发票段数据响应:', res);
// 添加更多调试信息
@@ -400,24 +427,24 @@ export default {
}
});
},
- // 根据用户权限过滤数据
+ // 根据用户权限过滤数据(作为后端过滤的补充保障)
filterDataByPermission() {
- console.log('开始过滤数据,当前用户状态:', this.currentUser.status);
+ console.log('开始过滤数据,当前用户:', this.currentUser.name, '是否超级管理员:', this.isAdmin);
console.log('过滤前数据总量:', this.invoiceData.length);
-
+
if (this.isAdmin) {
- // 管理员可以看到所有数据
- console.log('管理员模式,显示所有数据');
+ // 超级管理员可以看到所有数据
+ console.log('超级管理员模式,显示所有数据');
this.filteredData = [...this.invoiceData];
} else {
- // 普通操作员只能看到自己的数据,确保类型一致
- console.log('操作员模式,过滤条件:', this.currentUser.employeeId);
+ // 普通用户只能看到自己的数据,确保类型一致
+ console.log('普通用户模式,过滤条件:', this.currentUser.employeeId);
const currentEmployeeId = String(this.currentUser.employeeId);
- this.filteredData = this.invoiceData.filter(item =>
+ this.filteredData = this.invoiceData.filter(item =>
String(item.employeeId) === currentEmployeeId
);
}
-
+
console.log('过滤后显示的数据量:', this.filteredData.length);
},
@@ -440,6 +467,15 @@ export default {
updateEmployeeId(item, employeeId) {
item.employeeId = employeeId;
},
+
+ // 根据员工ID更新操作员名称(超级管理员使用)
+ updateOperatorFromEmployeeId(item) {
+ if (item.employeeId) {
+ item.operator = this.getUserNameById(item.employeeId);
+ } else {
+ item.operator = '';
+ }
+ },
// 根据员工ID获取用户名称
getUserNameById(employeeId) {
@@ -449,7 +485,7 @@ export default {
},
addNewRow() {
- // 新增行时自动填充当前用户信息
+ // 新增行时根据用户权限填充信息
// 使用负数作为临时ID,避免与后端数据库ID冲突
let maxId = 0;
if (this.invoiceData.length > 0) {
@@ -458,12 +494,12 @@ export default {
const newId = -(maxId + 1);
const newSegmentId = Date.now(); // 生成唯一的segmentId
const currentDate = new Date().toISOString().split('T')[0];
-
+
const newRecord = {
id: newId,
segmentId: newSegmentId, // 为新记录设置segmentId
- operator: this.currentUser.name, // 自动使用当前用户名称
- employeeId: this.currentUser.employeeId,
+ operator: this.isAdmin ? '' : this.currentUser.name, // 超级管理员可选择,普通用户自动填充
+ employeeId: this.isAdmin ? '' : this.currentUser.employeeId, // 超级管理员可选择,普通用户自动填充
date: currentDate, // 自动填充当日日期
startNum: '',
endNum: '',
@@ -472,8 +508,8 @@ export default {
isActive: true, // 新增行默认处于编辑状态
isNewRecord: true // 添加标记表示这是新记录
};
-
- console.log('添加新行,自动填充领用日期为当日:', { newRecord });
+
+ console.log('添加新行:', this.isAdmin ? '超级管理员模式,可选择操作员' : '普通用户模式,自动填充当前用户信息', { newRecord });
this.invoiceData.push(newRecord);
},
@@ -496,8 +532,8 @@ export default {
return;
}
- // 严格检查权限:只能删除自己维护的发票号码段
- if (record.operator !== this.currentUser.name) {
+ // 严格检查权限:超级管理员可以删除所有记录,普通用户只能删除自己维护的发票号码段
+ if (!this.isAdmin && record.operator !== this.currentUser.name) {
alert('您没有权限删除此记录!只能删除自己维护的发票号码段。');
return;
}
diff --git a/openhis-ui-vue3/src/views/doctorstation/components/api.js b/openhis-ui-vue3/src/views/doctorstation/components/api.js
index 4084a5bf..561a546e 100644
--- a/openhis-ui-vue3/src/views/doctorstation/components/api.js
+++ b/openhis-ui-vue3/src/views/doctorstation/components/api.js
@@ -795,3 +795,35 @@ export function getTestResult(queryParams) {
params: queryParams,
});
}
+
+/**
+ * 获取检验申请单列表
+ */
+export function getInspectionApplicationList(queryParams) {
+ return request({
+ url: '/doctor-station/inspection/application-list',
+ method: 'get',
+ params: queryParams,
+ });
+}
+
+/**
+ * 保存检验申请单
+ */
+export function saveInspectionApplication(data) {
+ return request({
+ url: '/doctor-station/inspection/application',
+ method: 'post',
+ data: data,
+ });
+}
+
+/**
+ * 删除检验申请单
+ */
+export function deleteInspectionApplication(id) {
+ return request({
+ url: '/doctor-station/inspection/application/' + id,
+ method: 'delete',
+ });
+}
diff --git a/openhis-ui-vue3/src/views/doctorstation/index.vue b/openhis-ui-vue3/src/views/doctorstation/index.vue
index f1582dd8..18a44eeb 100644
--- a/openhis-ui-vue3/src/views/doctorstation/index.vue
+++ b/openhis-ui-vue3/src/views/doctorstation/index.vue
@@ -161,6 +161,9 @@
+
+
+
@@ -214,6 +217,7 @@ import PrescriptionInfo from './components/prescription/prescriptionInfo.vue';
import eprescriptionlist from './components/eprescriptionlist.vue';
import HospitalizationDialog from './components/hospitalizationDialog.vue';
import tcmAdvice from './components/tcm/tcmAdvice.vue';
+import inspectionApplication from './components/inspection/inspectionApplication.vue';
import { formatDate, formatDateStr } from '@/utils/index';
import useUserStore from '@/store/modules/user';
import { nextTick } from 'vue';
@@ -263,6 +267,7 @@ const registerTime = ref(formatDate(new Date()));
const patientDrawerRef = ref();
const prescriptionRef = ref();
const tcmRef = ref();
+const inspectionRef = ref();
const emrRef = ref();
const diagnosisRef = ref();
const waitCount = ref(0);
@@ -396,6 +401,9 @@ function handleClick(tab) {
case 'tcm':
tcmRef.value.getDiagnosisInfo();
break;
+ case 'inspection':
+ // 检验tab点击处理逻辑可以在这里添加
+ break;
case 'eprescription':
eprescriptionRef.value.getList();
break;
@@ -453,6 +461,7 @@ function handleCardClick(item, index) {
nextTick(() => {
prescriptionRef.value.getListInfo();
tcmRef.value.getListInfo();
+ inspectionRef.value.getList();
diagnosisRef.value.getList();
eprescriptionRef.value.getList();
// emrRef.value.getDetail(item.encounterId);
|