fix(database): 删除数据库迁移脚本并统一页面大小配置
- 删除 V105 和 V107 数据库迁移脚本文件 - 将前端多个页面的默认页面大小从 20 统一调整为 10 - 更新 TableLayout 组件中的分页大小配置 - 调整 API 认证、审计日志、基础管理等多个模块的分页参数
This commit is contained in:
@@ -1,8 +0,0 @@
|
||||
-- V104__add_patient_info_to_emr_search_index_hisdev.sql
|
||||
-- 在 healthlink_his schema 上添加患者信息字段
|
||||
|
||||
ALTER TABLE emr_search_index ADD COLUMN IF NOT EXISTS patient_gender VARCHAR(10);
|
||||
ALTER TABLE emr_search_index ADD COLUMN IF NOT EXISTS patient_age VARCHAR(10);
|
||||
ALTER TABLE emr_search_index ADD COLUMN IF NOT EXISTS patient_phone VARCHAR(20);
|
||||
ALTER TABLE emr_search_index ADD COLUMN IF NOT EXISTS patient_id_card VARCHAR(20);
|
||||
ALTER TABLE emr_search_index ADD COLUMN IF NOT EXISTS encounter_no VARCHAR(50);
|
||||
@@ -1,264 +0,0 @@
|
||||
-- V107__fix_role_permission_alignment.sql
|
||||
-- 全面修复角色-权限匹配问题:菜单展示但API报403
|
||||
|
||||
-- ============================================================
|
||||
-- 第一部分:修复权限前缀不一致(历史遗留的infection:前缀)
|
||||
-- ============================================================
|
||||
|
||||
-- 修复EMR相关菜单权限(infection:emr → emr)
|
||||
UPDATE sys_menu SET perms = 'emr:list' WHERE perms = 'infection:emr:list';
|
||||
UPDATE sys_menu SET perms = 'emr:edit' WHERE perms = 'infection:emr:edit';
|
||||
UPDATE sys_menu SET perms = 'emr:sync:list' WHERE perms = 'infection:emr:sync:list';
|
||||
|
||||
-- 修复病案统计明细(infection:mrhomepage → mrhomepage:mrhomepage)
|
||||
UPDATE sys_menu SET perms = 'mrhomepage:mrhomepage:list' WHERE perms = 'infection:mrhomepage:list';
|
||||
|
||||
-- 修复报表维度(infection:report → reportmanage:report)
|
||||
UPDATE sys_menu SET perms = 'reportmanage:report:list' WHERE perms = 'infection:report:list';
|
||||
UPDATE sys_menu SET perms = 'reportmanage:report:edit' WHERE perms = 'infection:report:edit';
|
||||
|
||||
-- 修复inpatient相关(inpatient:emr → emr,已由V101处理,此处兜底)
|
||||
UPDATE sys_menu SET perms = 'emr:list' WHERE perms = 'inpatient:emr:list';
|
||||
UPDATE sys_menu SET perms = 'emr:edit' WHERE perms = 'inpatient:emr:edit';
|
||||
|
||||
-- ============================================================
|
||||
-- 第二部分:确保所有Controller需要的权限在sys_menu中存在
|
||||
-- ============================================================
|
||||
|
||||
-- 检查并插入缺失的菜单权限(如果菜单不存在则创建)
|
||||
-- 这些是后端Controller @PreAuthorize使用的权限,但菜单表中可能缺失
|
||||
|
||||
-- administration模块
|
||||
INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
|
||||
SELECT '医务人员患者管理',
|
||||
(SELECT menu_id FROM sys_menu WHERE menu_name = '系统管理' AND menu_type = 'M' LIMIT 1),
|
||||
99, 'practitioner-patient', 'administration/practitioner-patient/index', 'C', '0', '0',
|
||||
'administration:practitionerPatient:list', 'user', 'admin', NOW(), 'admin', NOW(),
|
||||
'医务人员患者管理菜单'
|
||||
WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE perms = 'administration:practitionerPatient:list');
|
||||
|
||||
-- basicmanage模块
|
||||
INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
|
||||
SELECT '电子健康卡',
|
||||
(SELECT menu_id FROM sys_menu WHERE menu_name = '基础管理' AND menu_type = 'M' LIMIT 1),
|
||||
10, 'ehcard', 'basicmanage/ehcard/index', 'C', '0', '0',
|
||||
'basicmanage:ehcard:list', 'card', 'admin', NOW(), 'admin', NOW(),
|
||||
'电子健康卡管理'
|
||||
WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE perms = 'basicmanage:ehcard:list');
|
||||
|
||||
INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
|
||||
SELECT '电子发票',
|
||||
(SELECT menu_id FROM sys_menu WHERE menu_name = '基础管理' AND menu_type = 'M' LIMIT 1),
|
||||
20, 'einvoice', 'basicmanage/einvoice/index', 'C', '0', '0',
|
||||
'basicmanage:invoice:list', 'invoice', 'admin', NOW(), 'admin', NOW(),
|
||||
'电子发票管理'
|
||||
WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE perms = 'basicmanage:invoice:list');
|
||||
|
||||
-- document模块(病程记录)
|
||||
INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
|
||||
SELECT '病程记录',
|
||||
(SELECT menu_id FROM sys_menu WHERE menu_name = '电子病历管理' AND menu_type = 'M' LIMIT 1),
|
||||
50, 'progress-note', 'document/progress-note/index', 'C', '0', '0',
|
||||
'document:progressnote:list', 'note', 'admin', NOW(), 'admin', NOW(),
|
||||
'病程记录管理'
|
||||
WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE perms = 'document:progressnote:list');
|
||||
|
||||
-- epidemic模块(传染病报卡)
|
||||
INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
|
||||
SELECT '传染病报卡',
|
||||
(SELECT menu_id FROM sys_menu WHERE menu_name = '医院感染管理' AND menu_type = 'M' LIMIT 1),
|
||||
10, 'epidemic', 'infection/epidemic/index', 'C', '0', '0',
|
||||
'epidemic:list', 'alert', 'admin', NOW(), 'admin', NOW(),
|
||||
'传染病报卡管理'
|
||||
WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE perms = 'epidemic:list');
|
||||
|
||||
-- flowable模块(工作流表单)
|
||||
INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
|
||||
SELECT '流程表单',
|
||||
(SELECT menu_id FROM sys_menu WHERE menu_name = '系统管理' AND menu_type = 'M' LIMIT 1),
|
||||
98, 'flowable-form', 'flowable/form/index', 'C', '0', '0',
|
||||
'flowable:form:list', 'form', 'admin', NOW(), 'admin', NOW(),
|
||||
'流程表单管理'
|
||||
WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE perms = 'flowable:form:list');
|
||||
|
||||
-- tcm模块(中医)
|
||||
INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
|
||||
SELECT '中医诊断',
|
||||
(SELECT menu_id FROM sys_menu WHERE menu_name = '门诊医生工作站' AND menu_type = 'M' LIMIT 1),
|
||||
99, 'tcm', 'tcm/diagnosis/index', 'C', '0', '0',
|
||||
'tcm:list', '中医', 'admin', NOW(), 'admin', NOW(),
|
||||
'中医诊断管理'
|
||||
WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE perms = 'tcm:list');
|
||||
|
||||
-- surgery模块(手术安全核查)
|
||||
INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
|
||||
SELECT '手术安全核查',
|
||||
(SELECT menu_id FROM sys_menu WHERE menu_name = '手术管理' AND menu_type = 'M' LIMIT 1),
|
||||
50, 'surgery-safety', 'surgery/safety-check/index', 'C', '0', '0',
|
||||
'surgery:schedule:list', 'safety', 'admin', NOW(), 'admin', NOW(),
|
||||
'手术安全核查管理'
|
||||
WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE perms = 'surgery:schedule:list');
|
||||
|
||||
-- ============================================================
|
||||
-- 第三部分:为所有角色授予基础查看权限
|
||||
-- ============================================================
|
||||
|
||||
-- 获取所有非管理员角色ID
|
||||
-- 为每个角色授予关键模块的查看权限
|
||||
|
||||
-- 授予所有活跃角色emr:list权限(电子病历查看)
|
||||
INSERT INTO sys_role_menu (role_id, menu_id)
|
||||
SELECT r.role_id, m.menu_id
|
||||
FROM sys_role r
|
||||
CROSS JOIN sys_menu m
|
||||
WHERE r.status = '0'
|
||||
AND m.perms IN (
|
||||
'emr:list',
|
||||
'emr:edit',
|
||||
'infection:cdss:list',
|
||||
'infection:regional:list',
|
||||
'reportmanage:report:list',
|
||||
'mrhomepage:mrhomepage:list',
|
||||
'epidemic:list',
|
||||
'document:progressnote:list',
|
||||
'basicmanage:ehcard:list',
|
||||
'basicmanage:invoice:list',
|
||||
'surgery:schedule:list',
|
||||
'tcm:list'
|
||||
)
|
||||
AND NOT EXISTS (
|
||||
SELECT 1 FROM sys_role_menu rm
|
||||
WHERE rm.role_id = r.role_id AND rm.menu_id = m.menu_id
|
||||
);
|
||||
|
||||
-- ============================================================
|
||||
-- 第四部分:为医生角色授予专属权限
|
||||
-- ============================================================
|
||||
|
||||
-- 医生角色:授予门诊医生工作站、住院医生工作站相关权限
|
||||
INSERT INTO sys_role_menu (role_id, menu_id)
|
||||
SELECT r.role_id, m.menu_id
|
||||
FROM sys_role r
|
||||
CROSS JOIN sys_menu m
|
||||
WHERE r.status = '0'
|
||||
AND r.role_name IN ('医生', 'doctor', '门诊医生', '住院医生', '主任医师', '副主任医师')
|
||||
AND m.perms IN (
|
||||
'emr:list',
|
||||
'emr:edit',
|
||||
'infection:cdss:list',
|
||||
'infection:cdss:edit',
|
||||
'infection:check:list',
|
||||
'infection:check:edit',
|
||||
'document:progressnote:list',
|
||||
'document:progressnote:add',
|
||||
'document:progressnote:edit',
|
||||
'tcm:list',
|
||||
'tcm:edit',
|
||||
'surgery:schedule:list',
|
||||
'surgery:schedule:edit',
|
||||
'epidemic:list',
|
||||
'epidemic:edit',
|
||||
'nursing:nursing:list',
|
||||
'outpatient:telehealth:list',
|
||||
'outpatient:telehealth:edit'
|
||||
)
|
||||
AND NOT EXISTS (
|
||||
SELECT 1 FROM sys_role_menu rm
|
||||
WHERE rm.role_id = r.role_id AND rm.menu_id = m.menu_id
|
||||
);
|
||||
|
||||
-- ============================================================
|
||||
-- 第五部分:为护士角色授予专属权限
|
||||
-- ============================================================
|
||||
|
||||
INSERT INTO sys_role_menu (role_id, menu_id)
|
||||
SELECT r.role_id, m.menu_id
|
||||
FROM sys_role r
|
||||
CROSS JOIN sys_menu m
|
||||
WHERE r.status = '0'
|
||||
AND r.role_name IN ('护士', 'nurse', '护士长')
|
||||
AND m.perms IN (
|
||||
'nursing:nursing:list',
|
||||
'nursing:nursing:edit',
|
||||
'nursing:execution:list',
|
||||
'nursing:execution:add',
|
||||
'nursing:execution:edit',
|
||||
'nursing:record:list',
|
||||
'nursing:record:add',
|
||||
'nursing:record:edit',
|
||||
'inpatient:anesthesia:list',
|
||||
'inpatient:anesthesia:edit',
|
||||
'inpatient:clinical:list',
|
||||
'inpatient:clinical:edit',
|
||||
'inpatient:criticalvalue:list',
|
||||
'inpatient:criticalvalue:edit',
|
||||
'inpatient:bloodtransfusion:list',
|
||||
'inpatient:bloodtransfusion:edit',
|
||||
'emr:list',
|
||||
'emr:edit'
|
||||
)
|
||||
AND NOT EXISTS (
|
||||
SELECT 1 FROM sys_role_menu rm
|
||||
WHERE rm.role_id = r.role_id AND rm.menu_id = m.menu_id
|
||||
);
|
||||
|
||||
-- ============================================================
|
||||
-- 第六部分:为药房角色授予专属权限
|
||||
-- ============================================================
|
||||
|
||||
INSERT INTO sys_role_menu (role_id, menu_id)
|
||||
SELECT r.role_id, m.menu_id
|
||||
FROM sys_role r
|
||||
CROSS JOIN sys_menu m
|
||||
WHERE r.status = '0'
|
||||
AND r.role_name IN ('药房', 'pharmacy', '药师', '药剂师')
|
||||
AND m.perms IN (
|
||||
'infection:rationaldrug:edit',
|
||||
'inpatient:clinical:list',
|
||||
'inpatient:clinical:edit',
|
||||
'inpatient:criticalvalue:list',
|
||||
'emr:list'
|
||||
)
|
||||
AND NOT EXISTS (
|
||||
SELECT 1 FROM sys_role_menu rm
|
||||
WHERE rm.role_id = r.role_id AND rm.menu_id = m.menu_id
|
||||
);
|
||||
|
||||
-- ============================================================
|
||||
-- 第七部分:为管理员角色授予所有权限
|
||||
-- ============================================================
|
||||
|
||||
-- 管理员角色获取所有菜单权限(通过admin用户已有的 *:*:* 权限)
|
||||
-- 但确保管理员角色在sys_role_menu中有所有菜单的关联
|
||||
INSERT INTO sys_role_menu (role_id, menu_id)
|
||||
SELECT 1, m.menu_id
|
||||
FROM sys_menu m
|
||||
WHERE m.status = '0'
|
||||
AND NOT EXISTS (
|
||||
SELECT 1 FROM sys_role_menu rm
|
||||
WHERE rm.role_id = 1 AND rm.menu_id = m.menu_id
|
||||
);
|
||||
|
||||
-- ============================================================
|
||||
-- 第八部分:修复doctor_enhanced菜单的重复问题(V66/V76遗留)
|
||||
-- ============================================================
|
||||
|
||||
-- 删除可能存在的重复菜单(保留perms正确的那个)
|
||||
DELETE FROM sys_menu
|
||||
WHERE menu_name = '门诊医生增强'
|
||||
AND perms = 'infection:emr:list'
|
||||
AND menu_id IN (
|
||||
SELECT menu_id FROM (
|
||||
SELECT menu_id FROM sys_menu
|
||||
WHERE menu_name = '门诊医生增强'
|
||||
ORDER BY menu_id DESC
|
||||
LIMIT 1 OFFSET 1
|
||||
) t
|
||||
);
|
||||
|
||||
-- ============================================================
|
||||
-- 完成:刷新菜单缓存的提示
|
||||
-- ============================================================
|
||||
-- 执行完此脚本后,需要:
|
||||
-- 1. 重启应用或调用 /system/menu/refreshCache 刷新菜单缓存
|
||||
-- 2. 用户重新登录以加载最新权限
|
||||
@@ -147,7 +147,7 @@ const props = withDefaults(defineProps<TableProps>(), {
|
||||
showPagination: false,
|
||||
total: 0,
|
||||
pageNo: 1,
|
||||
pageSize: 20,
|
||||
pageSize: 10,
|
||||
isAllData: false,
|
||||
paginationLeftText: '',
|
||||
paginationProps: () => ({}),
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<template>
|
||||
<template>
|
||||
<div class="table-layout-container">
|
||||
<div class="card-content-wrapper">
|
||||
<div
|
||||
@@ -150,7 +150,7 @@ const props = withDefaults(defineProps<TableLayoutProps>(), {
|
||||
total: 0,
|
||||
queryParams: () => ({
|
||||
pageNo: 1,
|
||||
pageSize: 20,
|
||||
pageSize: 10,
|
||||
}),
|
||||
sideQueryParams: () => ({}),
|
||||
formItems: () => [],
|
||||
|
||||
@@ -324,7 +324,7 @@ const statCards = ref([
|
||||
{label:'异常调用', value:0, color:'#409eff'}
|
||||
])
|
||||
|
||||
const q = ref({pageNo:1, pageSize:20, status:''})
|
||||
const q = ref({pageNo:1, pageSize: 10, status:''})
|
||||
const formData = ref({
|
||||
appName:'', description:'', rateLimit:100, ipWhitelist:'', permissions:['read']
|
||||
})
|
||||
|
||||
@@ -186,7 +186,7 @@ const tableData = ref([])
|
||||
const total = ref(0)
|
||||
const q = ref({
|
||||
pageNo: 1,
|
||||
pageSize: 20,
|
||||
pageSize: 10,
|
||||
userName: '',
|
||||
module: '',
|
||||
action: '',
|
||||
@@ -221,7 +221,7 @@ const loadStats = async () => {
|
||||
}
|
||||
|
||||
const resetQuery = () => {
|
||||
q.value = { pageNo: 1, pageSize: 20, userName: '', module: '', action: '', riskLevel: '', businessType: '' }
|
||||
q.value = { pageNo: 1, pageSize: 10, userName: '', module: '', action: '', riskLevel: '', businessType: '' }
|
||||
dateRange.value = null
|
||||
loadData()
|
||||
}
|
||||
|
||||
@@ -199,7 +199,7 @@ import {ref,onMounted} from 'vue'
|
||||
import {ElMessage} from 'element-plus'
|
||||
import {getPage,del} from './api'
|
||||
const tableData=ref([]);const total=ref(0)
|
||||
const q=ref({pageNo:1,pageSize:20,userName:'',module:'',action:'',result:''})
|
||||
const q=ref({pageNo:1,pageSize: 10,userName:'',module:'',action:'',result:''})
|
||||
const detailVisible=ref(false);const detail=ref({})
|
||||
const loadData=async()=>{const r=await getPage(q.value);tableData.value=r.data?.records||[];total.value=r.data?.total||0}
|
||||
const delItem=async(id)=>{await del(id);ElMessage.success('已删除');loadData()}
|
||||
|
||||
@@ -89,7 +89,7 @@
|
||||
<script setup>
|
||||
import { ref, onMounted } from 'vue'
|
||||
import { ElMessage } from 'element-plus'
|
||||
const queryParams = ref({ searchKey: '', pageNum: 1, pageSize: 20 })
|
||||
const queryParams = ref({ searchKey: '', pageNum: 1, pageSize: 10 })
|
||||
const tableData = ref([])
|
||||
const handleQuery = () => { tableData.value = [] }
|
||||
const handleAdd = () => { ElMessage.info('新增功能开发中') }
|
||||
|
||||
@@ -89,7 +89,7 @@
|
||||
<script setup>
|
||||
import { ref, onMounted } from 'vue'
|
||||
import { ElMessage } from 'element-plus'
|
||||
const queryParams = ref({ searchKey: '', pageNum: 1, pageSize: 20 })
|
||||
const queryParams = ref({ searchKey: '', pageNum: 1, pageSize: 10 })
|
||||
const tableData = ref([])
|
||||
const handleQuery = () => { tableData.value = [] }
|
||||
const handleAdd = () => { ElMessage.info('新增功能开发中') }
|
||||
|
||||
@@ -275,7 +275,7 @@ import { ref, onMounted } from 'vue'
|
||||
import { ElMessage, ElMessageBox } from 'element-plus'
|
||||
import { getBedPage, addBed, updateBed, deleteBed, updateBedStatus } from './components/api'
|
||||
const loading = ref(false); const tableData = ref([]); const total = ref(0)
|
||||
const queryParams = ref({ bedNo: '', status: undefined, pageNo: 1, pageSize: 20 })
|
||||
const queryParams = ref({ bedNo: '', status: undefined, pageNo: 1, pageSize: 10 })
|
||||
const formVisible = ref(false); const formTitle = ref('新增床位'); const isEdit = ref(false); const formRef = ref()
|
||||
const form = ref({ id: null, bedNo: '', bedName: '', wardName: '', deptName: '', bedType: 1, remark: '' })
|
||||
const rules = { bedNo: [{ required: true, message: '请输入床号', trigger: 'blur' }] }
|
||||
@@ -286,7 +286,7 @@ function getList() {
|
||||
getBedPage(queryParams.value).then(res => { tableData.value = res.data?.records || []; total.value = res.data?.total || 0 }).finally(() => { loading.value = false })
|
||||
}
|
||||
function handleQuery() { queryParams.value.pageNo = 1; getList() }
|
||||
function resetQuery() { queryParams.value = { bedNo: '', status: undefined, pageNo: 1, pageSize: 20 }; getList() }
|
||||
function resetQuery() { queryParams.value = { bedNo: '', status: undefined, pageNo: 1, pageSize: 10 }; getList() }
|
||||
function handleAdd() { isEdit.value = false; formTitle.value = '新增床位'; form.value = { id: null, bedNo: '', bedName: '', wardName: '', deptName: '', bedType: 1, remark: '' }; formVisible.value = true }
|
||||
function handleEdit(row) { isEdit.value = true; formTitle.value = '编辑床位'; form.value = { ...row }; formVisible.value = true }
|
||||
function submitForm() {
|
||||
|
||||
@@ -198,7 +198,7 @@ import { ref, onMounted } from 'vue'
|
||||
import { ElMessage } from 'element-plus'
|
||||
import { getDiagnosisPage, addDiagnosis, updateDiagnosis, stopDiagnosis, startDiagnosis } from './components/api'
|
||||
const loading = ref(false); const tableData = ref([]); const total = ref(0)
|
||||
const queryParams = ref({ searchKey: '', pageNo: 1, pageSize: 20 })
|
||||
const queryParams = ref({ searchKey: '', pageNo: 1, pageSize: 10 })
|
||||
const formVisible = ref(false); const formTitle = ref('新增诊断'); const isEdit = ref(false); const formRef = ref()
|
||||
const form = ref({ id: null, conditionCode: '', name: '', pyStr: '', typeCode: 'WEST' })
|
||||
const rules = { conditionCode: [{ required: true, message: '请输入编码', trigger: 'blur' }], name: [{ required: true, message: '请输入名称', trigger: 'blur' }] }
|
||||
@@ -207,7 +207,7 @@ function getList() {
|
||||
getDiagnosisPage(queryParams.value).then(res => { tableData.value = res.data?.records || []; total.value = res.data?.total || 0 }).finally(() => { loading.value = false })
|
||||
}
|
||||
function handleQuery() { queryParams.value.pageNo = 1; getList() }
|
||||
function resetQuery() { queryParams.value = { searchKey: '', pageNo: 1, pageSize: 20 }; getList() }
|
||||
function resetQuery() { queryParams.value = { searchKey: '', pageNo: 1, pageSize: 10 }; getList() }
|
||||
function handleAdd() { isEdit.value = false; formTitle.value = '新增诊断'; form.value = { id: null, conditionCode: '', name: '', pyStr: '', typeCode: 'WEST' }; formVisible.value = true }
|
||||
function handleEdit(row) { isEdit.value = true; formTitle.value = '编辑诊断'; form.value = { ...row }; formVisible.value = true }
|
||||
function submitForm() {
|
||||
|
||||
@@ -89,7 +89,7 @@
|
||||
<script setup>
|
||||
import { ref, onMounted } from 'vue'
|
||||
import { ElMessage } from 'element-plus'
|
||||
const queryParams = ref({ searchKey: '', pageNum: 1, pageSize: 20 })
|
||||
const queryParams = ref({ searchKey: '', pageNum: 1, pageSize: 10 })
|
||||
const tableData = ref([])
|
||||
const handleQuery = () => { tableData.value = [] }
|
||||
const handleAdd = () => { ElMessage.info('新增功能开发中') }
|
||||
|
||||
@@ -89,7 +89,7 @@
|
||||
<script setup>
|
||||
import { ref, onMounted } from 'vue'
|
||||
import { ElMessage } from 'element-plus'
|
||||
const queryParams = ref({ searchKey: '', pageNum: 1, pageSize: 20 })
|
||||
const queryParams = ref({ searchKey: '', pageNum: 1, pageSize: 10 })
|
||||
const tableData = ref([])
|
||||
const handleQuery = () => { tableData.value = [] }
|
||||
const handleAdd = () => { ElMessage.info('新增功能开发中') }
|
||||
|
||||
@@ -190,13 +190,13 @@ import { ref, onMounted } from 'vue'
|
||||
import { ElMessage } from 'element-plus'
|
||||
import { getFeePage, addFee, updateFee } from './components/api'
|
||||
const loading = ref(false); const tableData = ref([]); const total = ref(0)
|
||||
const queryParams = ref({ searchKey: '', pageNo: 1, pageSize: 20 })
|
||||
const queryParams = ref({ searchKey: '', pageNo: 1, pageSize: 10 })
|
||||
const formVisible = ref(false); const formTitle = ref('新增项目'); const isEdit = ref(false); const formRef = ref()
|
||||
const form = ref({ id: null, conditionCode: '', name: '', typeCode: 'TREAT' })
|
||||
const rules = { conditionCode: [{ required: true, message: '请输入编码', trigger: 'blur' }], name: [{ required: true, message: '请输入名称', trigger: 'blur' }] }
|
||||
function getList() { loading.value = true; getFeePage(queryParams.value).then(res => { tableData.value = res.data?.records || []; total.value = res.data?.total || 0 }).finally(() => { loading.value = false }) }
|
||||
function handleQuery() { queryParams.value.pageNo = 1; getList() }
|
||||
function resetQuery() { queryParams.value = { searchKey: '', pageNo: 1, pageSize: 20 }; getList() }
|
||||
function resetQuery() { queryParams.value = { searchKey: '', pageNo: 1, pageSize: 10 }; getList() }
|
||||
function handleAdd() { isEdit.value = false; formTitle.value = '新增项目'; form.value = { id: null, conditionCode: '', name: '', typeCode: 'TREAT' }; formVisible.value = true }
|
||||
function handleEdit(row) { isEdit.value = true; formTitle.value = '编辑项目'; form.value = { ...row }; formVisible.value = true }
|
||||
function submitForm() { formRef.value.validate(valid => { if (!valid) return; const action = isEdit.value ? updateFee(form.value) : addFee(form.value); action.then(res => { if (res.code === 200) { ElMessage.success(isEdit.value ? '修改成功' : '新增成功'); formVisible.value = false; getList() } else ElMessage.error(res.msg || '操作失败') }) }) }
|
||||
|
||||
@@ -89,7 +89,7 @@
|
||||
<script setup>
|
||||
import { ref, onMounted } from 'vue'
|
||||
import { ElMessage } from 'element-plus'
|
||||
const queryParams = ref({ searchKey: '', pageNum: 1, pageSize: 20 })
|
||||
const queryParams = ref({ searchKey: '', pageNum: 1, pageSize: 10 })
|
||||
const tableData = ref([])
|
||||
const handleQuery = () => { tableData.value = [] }
|
||||
const handleAdd = () => { ElMessage.info('新增功能开发中') }
|
||||
|
||||
@@ -94,7 +94,7 @@
|
||||
import { ref, onMounted } from 'vue'
|
||||
import { ElMessage, ElMessageBox } from 'element-plus'
|
||||
import { getList, remove } from './components/api'
|
||||
const queryParams = ref({ searchKey: '', pageNum: 1, pageSize: 20 })
|
||||
const queryParams = ref({ searchKey: '', pageNum: 1, pageSize: 10 })
|
||||
const tableData = ref([])
|
||||
const handleQuery = async () => {
|
||||
try {
|
||||
|
||||
@@ -106,7 +106,7 @@ const tableWrapper = ref();
|
||||
const currentIndex = ref(0); // 当前选中行索引
|
||||
const currentSelectRow = ref({});
|
||||
const queryParams = ref({
|
||||
pageSize: 20,
|
||||
pageSize: 10,
|
||||
pageNum: 1,
|
||||
adviceTypes: '1,2,3',
|
||||
organizationId: null,
|
||||
|
||||
@@ -86,7 +86,7 @@ const tableWrapper = ref();
|
||||
const currentIndex = ref(0);
|
||||
const currentSelectRow = ref({});
|
||||
const queryParams = ref({
|
||||
pageSize: 20,
|
||||
pageSize: 10,
|
||||
pageNum: 1,
|
||||
searchKey: '',
|
||||
organizationId: props.organizationId,
|
||||
|
||||
@@ -166,13 +166,13 @@ import { ref, onMounted } from 'vue'
|
||||
import { ElMessage } from 'element-plus'
|
||||
import { getTcmPage, addTcm, updateTcm } from './components/api'
|
||||
const loading = ref(false); const tableData = ref([]); const total = ref(0)
|
||||
const queryParams = ref({ searchKey: '', pageNo: 1, pageSize: 20 })
|
||||
const queryParams = ref({ searchKey: '', pageNo: 1, pageSize: 10 })
|
||||
const formVisible = ref(false); const formTitle = ref('新增处方'); const isEdit = ref(false); const formRef = ref()
|
||||
const form = ref({ id: null, conditionCode: '', name: '', typeCode: '' })
|
||||
const rules = { conditionCode: [{ required: true, message: '请输入编码', trigger: 'blur' }], name: [{ required: true, message: '请输入名称', trigger: 'blur' }] }
|
||||
function getList() { loading.value = true; getTcmPage(queryParams.value).then(res => { tableData.value = res.data?.records || []; total.value = res.data?.total || 0 }).finally(() => { loading.value = false }) }
|
||||
function handleQuery() { queryParams.value.pageNo = 1; getList() }
|
||||
function resetQuery() { queryParams.value = { searchKey: '', pageNo: 1, pageSize: 20 }; getList() }
|
||||
function resetQuery() { queryParams.value = { searchKey: '', pageNo: 1, pageSize: 10 }; getList() }
|
||||
function handleAdd() { isEdit.value = false; formTitle.value = '新增处方'; form.value = { id: null, conditionCode: '', name: '', typeCode: '' }; formVisible.value = true }
|
||||
function handleEdit(row) { isEdit.value = true; formTitle.value = '编辑处方'; form.value = { ...row }; formVisible.value = true }
|
||||
function submitForm() { formRef.value.validate(valid => { if (!valid) return; const action = isEdit.value ? updateTcm(form.value) : addTcm(form.value); action.then(res => { if (res.code === 200) { ElMessage.success(isEdit.value ? '修改成功' : '新增成功'); formVisible.value = false; getList() } else ElMessage.error(res.msg || '操作失败') }) }) }
|
||||
|
||||
@@ -211,7 +211,7 @@ const statCards = ref([
|
||||
{label:'平均住院日', value:0, color:'#409eff'}
|
||||
])
|
||||
|
||||
const q = ref({pageNo:1, pageSize:20, departmentName:'', dateRange:null})
|
||||
const q = ref({pageNo:1, pageSize: 10, departmentName:'', dateRange:null})
|
||||
|
||||
function formatMoney(val) {
|
||||
if (!val) return '0.00'
|
||||
@@ -235,7 +235,7 @@ async function loadData() {
|
||||
}
|
||||
|
||||
function resetQuery() {
|
||||
q.value = {pageNo:1, pageSize:20, departmentName:'', dateRange:null}
|
||||
q.value = {pageNo:1, pageSize: 10, departmentName:'', dateRange:null}
|
||||
loadData()
|
||||
}
|
||||
|
||||
|
||||
@@ -102,7 +102,7 @@
|
||||
import { ref, onMounted } from 'vue'
|
||||
import { ElMessage, ElMessageBox } from 'element-plus'
|
||||
import { getList, remove } from './components/api'
|
||||
const queryParams = ref({ searchKey: '', pageNum: 1, pageSize: 20 })
|
||||
const queryParams = ref({ searchKey: '', pageNum: 1, pageSize: 10 })
|
||||
const tableData = ref([])
|
||||
const handleQuery = async () => {
|
||||
try {
|
||||
|
||||
@@ -75,7 +75,7 @@
|
||||
<script setup>
|
||||
import { ref, onMounted } from 'vue'
|
||||
import { ElMessage } from 'element-plus'
|
||||
const queryParams = ref({ searchKey: '', pageNum: 1, pageSize: 20 })
|
||||
const queryParams = ref({ searchKey: '', pageNum: 1, pageSize: 10 })
|
||||
const tableData = ref([])
|
||||
const handleQuery = async () => { tableData.value = [] }
|
||||
const handleDetail = (row) => { ElMessage.info('详情') }
|
||||
|
||||
@@ -75,7 +75,7 @@
|
||||
<script setup>
|
||||
import { ref, onMounted } from 'vue'
|
||||
import { ElMessage } from 'element-plus'
|
||||
const queryParams = ref({ searchKey: '', pageNum: 1, pageSize: 20 })
|
||||
const queryParams = ref({ searchKey: '', pageNum: 1, pageSize: 10 })
|
||||
const tableData = ref([])
|
||||
const handleQuery = async () => { tableData.value = [] }
|
||||
const handleDetail = (row) => { ElMessage.info('详情') }
|
||||
|
||||
@@ -131,7 +131,7 @@ const dialogVisible = ref(false)
|
||||
const isEdit = ref(false)
|
||||
const formRef = ref(null)
|
||||
|
||||
const queryParams = reactive({ diseaseCode: '', diseaseName: '', pageNo: 1, pageSize: 20 })
|
||||
const queryParams = reactive({ diseaseCode: '', diseaseName: '', pageNo: 1, pageSize: 10 })
|
||||
const formData = reactive({ diseaseCode: '', diseaseName: '', pathwayName: '', standardLos: 7, pathwayContent: '' })
|
||||
const formRules = {
|
||||
diseaseCode: [{ required: true, message: '请输入疾病编码', trigger: 'blur' }],
|
||||
|
||||
@@ -89,7 +89,7 @@
|
||||
<script setup>
|
||||
import { ref, onMounted } from 'vue'
|
||||
import { ElMessage } from 'element-plus'
|
||||
const queryParams = ref({ searchKey: '', pageNum: 1, pageSize: 20 })
|
||||
const queryParams = ref({ searchKey: '', pageNum: 1, pageSize: 10 })
|
||||
const tableData = ref([])
|
||||
const handleQuery = () => { tableData.value = [] }
|
||||
const handleAdd = () => { ElMessage.info('新增功能开发中') }
|
||||
|
||||
@@ -185,7 +185,7 @@ import { ref, onMounted } from 'vue'
|
||||
import { ElMessage, ElMessageBox } from 'element-plus'
|
||||
import { getPatientPage, getRefundDetail, submitRefund, init } from './components/api'
|
||||
|
||||
const queryParams = ref({ searchKey: '', pageNum: 1, pageSize: 20 })
|
||||
const queryParams = ref({ searchKey: '', pageNum: 1, pageSize: 10 })
|
||||
const dateRange = ref([])
|
||||
const tableData = ref([])
|
||||
const detailVisible = ref(false)
|
||||
@@ -207,7 +207,7 @@ const handleQuery = async () => {
|
||||
}
|
||||
|
||||
const resetQuery = () => {
|
||||
queryParams.value = { searchKey: '', pageNum: 1, pageSize: 20 }
|
||||
queryParams.value = { searchKey: '', pageNum: 1, pageSize: 10 }
|
||||
dateRange.value = []
|
||||
handleQuery()
|
||||
}
|
||||
|
||||
@@ -298,7 +298,7 @@ const statCards = ref([
|
||||
{label:'医嘱回写', value:0, color:'#f56c6c'}
|
||||
])
|
||||
|
||||
const q = ref({pageNo:1, pageSize:20, feedbackType:'', feedbackStatus:''})
|
||||
const q = ref({pageNo:1, pageSize: 10, feedbackType:'', feedbackStatus:''})
|
||||
const formData = ref({
|
||||
consultationId:'', patientName:'', feedbackType:'PROGRESS_NOTES', contentSummary:''
|
||||
})
|
||||
@@ -334,7 +334,7 @@ async function loadData() {
|
||||
}
|
||||
|
||||
function resetQuery() {
|
||||
q.value = {pageNo:1, pageSize:20, feedbackType:'', feedbackStatus:''}
|
||||
q.value = {pageNo:1, pageSize: 10, feedbackType:'', feedbackStatus:''}
|
||||
loadData()
|
||||
}
|
||||
|
||||
|
||||
@@ -157,7 +157,7 @@ import {ref,onMounted} from 'vue'
|
||||
import {ElMessage} from 'element-plus'
|
||||
import {getPage,checkTimeout} from './api'
|
||||
const tableData=ref([]);const total=ref(0)
|
||||
const q=ref({pageNo:1,pageSize:20,requestDept:'',timeoutFlag:null})
|
||||
const q=ref({pageNo:1,pageSize: 10,requestDept:'',timeoutFlag:null})
|
||||
const loadData=async()=>{const r=await getPage(q.value);tableData.value=r.data?.records||[];total.value=r.data?.total||0}
|
||||
const runTimeoutCheck=async()=>{const r=await checkTimeout();ElMessage.info('发现 '+r.data.overdueCount+' 条超时会诊');loadData()}
|
||||
const rowClass=({row})=>row.timeoutFlag?'timeout-row':''
|
||||
|
||||
@@ -112,7 +112,7 @@
|
||||
import {ref,onMounted} from 'vue'
|
||||
import {getPage,getSummary} from './api'
|
||||
const tableData=ref([]);const total=ref(0);const summary=ref({})
|
||||
const q=ref({pageNo:1,pageSize:20,statMonth:'',deptName:''})
|
||||
const q=ref({pageNo:1,pageSize: 10,statMonth:'',deptName:''})
|
||||
const loadData=async()=>{const r=await getPage(q.value);tableData.value=r.data?.records||[];total.value=r.data?.total||0}
|
||||
const refreshSummary=async()=>{const r=await getSummary({statMonth:q.value.statMonth||'2026-06'});summary.value=r.data||{}}
|
||||
onMounted(()=>{loadData();refreshSummary()})
|
||||
|
||||
@@ -190,7 +190,7 @@ import {ref,onMounted} from 'vue'
|
||||
import {ElMessage} from 'element-plus'
|
||||
import {getPage,getSummary,stopSale,dispose} from './api'
|
||||
const tableData=ref([]);const total=ref(0);const summary=ref({})
|
||||
const q=ref({pageNo:1,pageSize:20,drugName:'',alertLevel:''})
|
||||
const q=ref({pageNo:1,pageSize: 10,drugName:'',alertLevel:''})
|
||||
const loadData=async()=>{const r=await getPage(q.value);tableData.value=r.data?.records||[];total.value=r.data?.total||0}
|
||||
const refreshSummary=async()=>{const r=await getSummary();summary.value=r.data||{}}
|
||||
const stopSaleItem=async(id)=>{await stopSale(id);ElMessage.success('已停售');loadData();refreshSummary()}
|
||||
|
||||
@@ -139,7 +139,7 @@
|
||||
import {ref,onMounted} from 'vue'
|
||||
import {getPage} from './api'
|
||||
const tableData=ref([]);const total=ref(0)
|
||||
const q=ref({pageNo:1,pageSize:20,ambulanceId:'',linkStatus:''})
|
||||
const q=ref({pageNo:1,pageSize: 10,ambulanceId:'',linkStatus:''})
|
||||
const loadData=async()=>{const r=await getPage(q.value);tableData.value=r.data?.records||[];total.value=r.data?.total||0}
|
||||
onMounted(()=>loadData())
|
||||
</script>
|
||||
|
||||
@@ -125,7 +125,7 @@
|
||||
import {ref,onMounted} from 'vue'
|
||||
import {getPage} from './api'
|
||||
const tableData=ref([]);const total=ref(0)
|
||||
const q=ref({pageNo:1,pageSize:20,antibioticLevel:'',auditStatus:''})
|
||||
const q=ref({pageNo:1,pageSize: 10,antibioticLevel:'',auditStatus:''})
|
||||
const loadData=async()=>{const r=await getPage(q.value);tableData.value=r.data?.records||[];total.value=r.data?.total||0}
|
||||
onMounted(()=>loadData())
|
||||
</script>
|
||||
|
||||
@@ -152,7 +152,7 @@
|
||||
import {ref,onMounted} from 'vue'
|
||||
import {getPage} from './api'
|
||||
const tableData=ref([]);const total=ref(0)
|
||||
const q=ref({pageNo:1,pageSize:20,consentType:'',consentStatus:''})
|
||||
const q=ref({pageNo:1,pageSize: 10,consentType:'',consentStatus:''})
|
||||
const loadData=async()=>{const r=await getPage(q.value);tableData.value=r.data?.records||[];total.value=r.data?.total||0}
|
||||
onMounted(()=>loadData())
|
||||
</script>
|
||||
|
||||
@@ -144,7 +144,7 @@
|
||||
import {ref,onMounted} from 'vue'
|
||||
import {getPage} from './api'
|
||||
const tableData=ref([]);const total=ref(0)
|
||||
const q=ref({pageNo:1,pageSize:20,alertType:'',alertLevel:''})
|
||||
const q=ref({pageNo:1,pageSize: 10,alertType:'',alertLevel:''})
|
||||
const loadData=async()=>{const r=await getPage(q.value);tableData.value=r.data?.records||[];total.value=r.data?.total||0}
|
||||
onMounted(()=>loadData())
|
||||
</script>
|
||||
|
||||
@@ -174,7 +174,7 @@
|
||||
import {ref,onMounted} from 'vue'
|
||||
import {getPage} from './api'
|
||||
const tableData=ref([]);const total=ref(0)
|
||||
const q=ref({pageNo:1,pageSize:20,assessmentType:'',riskLevel:''})
|
||||
const q=ref({pageNo:1,pageSize: 10,assessmentType:'',riskLevel:''})
|
||||
const loadData=async()=>{const r=await getPage(q.value);tableData.value=r.data?.records||[];total.value=r.data?.total||0}
|
||||
onMounted(()=>loadData())
|
||||
</script>
|
||||
|
||||
@@ -152,7 +152,7 @@
|
||||
import {ref,onMounted} from 'vue'
|
||||
import {getPage} from './api'
|
||||
const tableData=ref([]);const total=ref(0)
|
||||
const q=ref({pageNo:1,pageSize:20,deptName:'',shiftType:''})
|
||||
const q=ref({pageNo:1,pageSize: 10,deptName:'',shiftType:''})
|
||||
const loadData=async()=>{const r=await getPage(q.value);tableData.value=r.data?.records||[];total.value=r.data?.total||0}
|
||||
onMounted(()=>loadData())
|
||||
</script>
|
||||
|
||||
@@ -269,7 +269,7 @@ import {ElMessage} from 'element-plus'
|
||||
import {getPage,getUnreadCount,markRead,handleAlert} from './api'
|
||||
const tableData=ref([]);const total=ref(0);const unreadCount=ref(0)
|
||||
const handleVisible=ref(false);const handleForm=ref({handler:'',handleResult:''});let currentId=null
|
||||
const q=ref({pageNo:1,pageSize:20,alertType:'',alertLevel:'',handleFlag:null})
|
||||
const q=ref({pageNo:1,pageSize: 10,alertType:'',alertLevel:'',handleFlag:null})
|
||||
const loadData=async()=>{const r=await getPage(q.value);tableData.value=r.data?.records||[];total.value=r.data?.total||0;refreshUnread()}
|
||||
const refreshUnread=async()=>{const r=await getUnreadCount();unreadCount.value=r.data||0}
|
||||
const markReadItem=async(id)=>{await markRead(id);loadData()}
|
||||
|
||||
@@ -150,7 +150,7 @@
|
||||
import {ref,onMounted} from 'vue'
|
||||
import {getPage} from './api'
|
||||
const tableData=ref([]);const total=ref(0)
|
||||
const q=ref({pageNo:1,pageSize:20,patientName:'',checkResult:'',fixStatus:''})
|
||||
const q=ref({pageNo:1,pageSize: 10,patientName:'',checkResult:'',fixStatus:''})
|
||||
const loadData=async()=>{const r=await getPage(q.value);tableData.value=r.data?.records||[];total.value=r.data?.total||0}
|
||||
onMounted(()=>loadData())
|
||||
</script>
|
||||
|
||||
@@ -128,7 +128,7 @@
|
||||
import {ref,onMounted} from 'vue'
|
||||
import {getPage} from './api'
|
||||
const tableData=ref([]);const total=ref(0)
|
||||
const q=ref({pageNo:1,pageSize:20,orderType:'',executionStatus:''})
|
||||
const q=ref({pageNo:1,pageSize: 10,orderType:'',executionStatus:''})
|
||||
const loadData=async()=>{const r=await getPage(q.value);tableData.value=r.data?.records||[];total.value=r.data?.total||0}
|
||||
onMounted(()=>loadData())
|
||||
</script>
|
||||
|
||||
@@ -121,7 +121,7 @@
|
||||
import {ref,onMounted} from 'vue'
|
||||
import {getPage} from './api'
|
||||
const tableData=ref([]);const total=ref(0)
|
||||
const q=ref({pageNo:1,pageSize:20,orderType:'',feedbackStatus:''})
|
||||
const q=ref({pageNo:1,pageSize: 10,orderType:'',feedbackStatus:''})
|
||||
const loadData=async()=>{const r=await getPage(q.value);tableData.value=r.data?.records||[];total.value=r.data?.total||0}
|
||||
onMounted(()=>loadData())
|
||||
</script>
|
||||
|
||||
@@ -133,7 +133,7 @@
|
||||
import {ref,onMounted} from 'vue'
|
||||
import {getPage} from './api'
|
||||
const tableData=ref([]);const total=ref(0)
|
||||
const q=ref({pageNo:1,pageSize:20,deptName:'',statType:''})
|
||||
const q=ref({pageNo:1,pageSize: 10,deptName:'',statType:''})
|
||||
const loadData=async()=>{const r=await getPage(q.value);tableData.value=r.data?.records||[];total.value=r.data?.total||0}
|
||||
onMounted(()=>loadData())
|
||||
</script>
|
||||
|
||||
@@ -112,7 +112,7 @@
|
||||
import {ref,onMounted} from 'vue'
|
||||
import {getPage} from './api'
|
||||
const tableData=ref([]);const total=ref(0)
|
||||
const q=ref({pageNo:1,pageSize:20,drugName:'',interceptResult:''})
|
||||
const q=ref({pageNo:1,pageSize: 10,drugName:'',interceptResult:''})
|
||||
const loadData=async()=>{const r=await getPage(q.value);tableData.value=r.data?.records||[];total.value=r.data?.total||0}
|
||||
onMounted(()=>loadData())
|
||||
</script>
|
||||
|
||||
@@ -201,7 +201,7 @@ import {ref,onMounted} from 'vue'
|
||||
import {ElMessage} from 'element-plus'
|
||||
import {getPage,add,del} from './api'
|
||||
const tableData=ref([]);const total=ref(0);const dlgVisible=ref(false)
|
||||
const q=ref({pageNo:1,pageSize:20,patientName:'',chainStatus:''})
|
||||
const q=ref({pageNo:1,pageSize: 10,patientName:'',chainStatus:''})
|
||||
const form=ref({patientId:null,encounterId:null,surgeryId:null,surgeryName:'',anesthesiaId:null,nursingRecordId:null,progressNoteId:null,pathologyLinkId:null,preopDiscussionId:null,consentFormId:null})
|
||||
const loadData=async()=>{const r=await getPage(q.value);tableData.value=r.data?.records||[];total.value=r.data?.total||0}
|
||||
const showAdd=()=>{form.value={patientId:null,encounterId:null,surgeryId:null,surgeryName:'',anesthesiaId:null,nursingRecordId:null,progressNoteId:null,pathologyLinkId:null,preopDiscussionId:null,consentFormId:null};dlgVisible.value=true}
|
||||
|
||||
@@ -203,7 +203,7 @@ import {ref,onMounted} from 'vue'
|
||||
import {ElMessage} from 'element-plus'
|
||||
import {getPage,trigger,receive,del} from './api'
|
||||
const tableData=ref([]);const total=ref(0);const triggerVisible=ref(false)
|
||||
const q=ref({pageNo:1,pageSize:20,patientName:'',linkStatus:''})
|
||||
const q=ref({pageNo:1,pageSize: 10,patientName:'',linkStatus:''})
|
||||
const triggerForm=ref({patientId:null,patientName:'',encounterId:null,surgeryId:null,surgeryName:'',specimenSource:'',specimenCount:1,operator:'',remark:''})
|
||||
const loadData=async()=>{const r=await getPage(q.value);tableData.value=r.data?.records||[];total.value=r.data?.total||0}
|
||||
const showTrigger=()=>{triggerForm.value={patientId:null,patientName:'',encounterId:null,surgeryId:null,surgeryName:'',specimenSource:'',specimenCount:1,operator:'',remark:''};triggerVisible.value=true}
|
||||
|
||||
@@ -225,7 +225,7 @@ import {ref,onMounted} from 'vue'
|
||||
import {ElMessage} from 'element-plus'
|
||||
import {getPage,add} from './api'
|
||||
const tableData=ref([]);const total=ref(0);const dlgVisible=ref(false)
|
||||
const q=ref({pageNo:1,pageSize:20,patientName:'',transferType:'',infoContinuityStatus:''})
|
||||
const q=ref({pageNo:1,pageSize: 10,patientName:'',transferType:'',infoContinuityStatus:''})
|
||||
const form=ref({patientId:null,patientName:'',encounterId:null,transferType:'DEPT',fromDept:'',toDept:'',transferReason:'',transferDoctor:''})
|
||||
const loadData=async()=>{const r=await getPage(q.value);tableData.value=r.data?.records||[];total.value=r.data?.total||0}
|
||||
const showAdd=()=>{form.value={patientId:null,patientName:'',encounterId:null,transferType:'DEPT',fromDept:'',toDept:'',transferReason:'',transferDoctor:''};dlgVisible.value=true}
|
||||
|
||||
@@ -525,13 +525,13 @@ import {getTrayPage,addTray,scanTrace,getTraceHistory,getBatchPage,completeBatch
|
||||
const { cssd_trace_status, cssd_process_step, cssd_tray_type } = useDict('cssd_trace_status', 'cssd_process_step', 'cssd_tray_type')
|
||||
const activeTab=ref('tray')
|
||||
const trayData=ref([]);const batchData=ref([]);const expiryData=ref([]);const stats=ref({})
|
||||
const trayQ=ref({pageNo:1,pageSize:20,trayCode:'',status:''})
|
||||
const trayQ=ref({pageNo:1,pageSize: 10,trayCode:'',status:''})
|
||||
const trayDialog=ref(false);const trayForm=ref({trayCode:'',trayName:'',trayType:'COMMON',departmentSource:''})
|
||||
const scanForm=ref({trayCode:'',stepType:'RECYCLE',operatorName:'',deviceName:''})
|
||||
const scanResult=ref(null)
|
||||
const traceDialog=ref(false);const traceHistory=ref([])
|
||||
const loadTrays=async()=>{const r=await getTrayPage(trayQ.value);trayData.value=r.data?.records||[]}
|
||||
const loadBatch=async()=>{const r=await getBatchPage({pageNo:1,pageSize:20});batchData.value=r.data?.records||[]}
|
||||
const loadBatch=async()=>{const r=await getBatchPage({pageNo:1,pageSize: 10});batchData.value=r.data?.records||[]}
|
||||
const loadExpiry=async()=>{const r=await getExpiryAlerts();expiryData.value=r.data||[]}
|
||||
const loadStats=async()=>{const r=await getStats();stats.value=r.data||{}}
|
||||
const doAddTray=async()=>{await addTray(trayForm.value);ElMessage.success('新增成功');trayDialog.value=false;loadTrays()}
|
||||
|
||||
@@ -1855,7 +1855,7 @@ const querySearchInspectionItems = async (queryString, cb) => {
|
||||
try {
|
||||
const params = {
|
||||
pageNo: 1,
|
||||
pageSize: 20, // 限制返回数量
|
||||
pageSize: 10, // 限制返回数量
|
||||
categoryCode: inspectionCategoryCode.value,
|
||||
searchKey: queryString
|
||||
}
|
||||
|
||||
@@ -196,7 +196,7 @@ import { ElMessage, ElMessageBox } from 'element-plus'
|
||||
|
||||
const loading = ref(false); const dataList = ref([]); const total = ref(0); const showSearch = ref(true)
|
||||
const stats = ref({})
|
||||
const queryParams = reactive({ alertType: '', status: '', pageNo: 1, pageSize: 20 })
|
||||
const queryParams = reactive({ alertType: '', status: '', pageNo: 1, pageSize: 10 })
|
||||
|
||||
const getList = async () => { loading.value = true; const res = await getAlertPage(queryParams); dataList.value = res.data?.records || []; total.value = res.data?.total || 0; loading.value = false }
|
||||
const loadStats = async () => { const res = await getStatistics(); stats.value = res.data || {} }
|
||||
|
||||
@@ -237,7 +237,7 @@ import { ElMessage, ElMessageBox } from 'element-plus'
|
||||
|
||||
const loading = ref(false); const dataList = ref([]); const total = ref(0); const showSearch = ref(true)
|
||||
const dialogVisible = ref(false); const dialogTitle = ref('新增批次')
|
||||
const queryParams = reactive({ batchNo: '', drugName: '', status: '', pageNo: 1, pageSize: 20 })
|
||||
const queryParams = reactive({ batchNo: '', drugName: '', status: '', pageNo: 1, pageSize: 10 })
|
||||
const formData = ref({})
|
||||
|
||||
const getList = async () => { loading.value = true; const res = await getBatchPage(queryParams); dataList.value = res.data?.records || []; total.value = res.data?.total || 0; loading.value = false }
|
||||
|
||||
@@ -251,7 +251,7 @@ const total = ref(0)
|
||||
const showSearch = ref(true)
|
||||
const dialogVisible = ref(false)
|
||||
const dialogTitle = ref('新增追溯码')
|
||||
const queryParams = reactive({ drugName: '', batchNo: '', status: '', pageNo: 1, pageSize: 20 })
|
||||
const queryParams = reactive({ drugName: '', batchNo: '', status: '', pageNo: 1, pageSize: 10 })
|
||||
const formData = ref({})
|
||||
|
||||
const getList = async () => {
|
||||
|
||||
@@ -212,7 +212,7 @@ import { ElMessage } from 'element-plus'
|
||||
const loading = ref(false); const dataList = ref([]); const total = ref(0); const showSearch = ref(true)
|
||||
const searchCode = ref(''); const verifyVisible = ref(false); const verifyResult = ref(null)
|
||||
const stats = ref({})
|
||||
const queryParams = reactive({ scanType: '', drugName: '', pageNo: 1, pageSize: 20 })
|
||||
const queryParams = reactive({ scanType: '', drugName: '', pageNo: 1, pageSize: 10 })
|
||||
|
||||
const getList = async () => { loading.value = true; const res = await getScanPage(queryParams); dataList.value = res.data?.records || []; total.value = res.data?.total || 0; loading.value = false }
|
||||
const loadStats = async () => { const res = await getStatistics(); stats.value = res.data || {} }
|
||||
|
||||
@@ -264,7 +264,7 @@ const addForm=ref({patientId:null,diseaseType:'',targetTime:90,doctor:''})
|
||||
const addFormRef=ref(null)
|
||||
const addFormRules={patientId:[{required:true,message:'请选择患者',trigger:'change'}]}
|
||||
const completeForm=ref({doorToTreatmentTime:60});let currentId=null
|
||||
const q=ref({pageNo:1,pageSize:20,diseaseType:'',isAchieved:null})
|
||||
const q=ref({pageNo:1,pageSize: 10,diseaseType:'',isAchieved:null})
|
||||
const loadData=async()=>{const r=await getPage(q.value);tableData.value=r.data?.records||[];total.value=r.data?.total||0}
|
||||
const refreshStats=async()=>{const r=await getStats({});stats.value=r.data||{}}
|
||||
const showAdd=()=>{addForm.value={patientId:null,diseaseType:'',targetTime:90,doctor:''};addVisible.value=true}
|
||||
|
||||
@@ -251,7 +251,7 @@ import {ElMessage} from 'element-plus'
|
||||
import {getPage,add,discharge,del} from './api'
|
||||
const tableData=ref([]);const total=ref(0);const dlgVisible=ref(false);const isEdit=ref(false)
|
||||
const dischargeVisible=ref(false);const dischargeForm=ref({disposition:'ADMIT'});let currentId=null
|
||||
const q=ref({pageNo:1,pageSize:20,doctor:'',bedNo:'',disposition:''})
|
||||
const q=ref({pageNo:1,pageSize: 10,doctor:'',bedNo:'',disposition:''})
|
||||
const form=ref({patientId:null,triageId:null,bedNo:'',doctor:'',diagnosis:''})
|
||||
const loadData=async()=>{const r=await getPage(q.value);tableData.value=r.data?.records||[];total.value=r.data?.total||0}
|
||||
const showAdd=()=>{isEdit.value=false;form.value={patientId:null,triageId:null,bedNo:'',doctor:'',diagnosis:''};dlgVisible.value=true}
|
||||
|
||||
@@ -272,7 +272,7 @@ import {ElMessage} from 'element-plus'
|
||||
import {getPage,add,endRescue,updateResult,del} from './api'
|
||||
const tableData=ref([]);const total=ref(0);const dlgVisible=ref(false);const isEdit=ref(false)
|
||||
const resultVisible=ref(false);const resultForm=ref({rescueResult:'SUCCESS',outcome:''});let currentId=null
|
||||
const q=ref({pageNo:1,pageSize:20,chiefDoctor:'',rescueResult:''})
|
||||
const q=ref({pageNo:1,pageSize: 10,chiefDoctor:'',rescueResult:''})
|
||||
const form=ref({patientId:null,triageId:null,chiefDoctor:'',rescueTeam:'',procedures:'',medications:''})
|
||||
const loadData=async()=>{const r=await getPage(q.value);tableData.value=r.data?.records||[];total.value=r.data?.total||0}
|
||||
const showAdd=()=>{isEdit.value=false;form.value={patientId:null,triageId:null,chiefDoctor:'',rescueTeam:'',procedures:'',medications:''};dlgVisible.value=true}
|
||||
|
||||
@@ -375,7 +375,7 @@ import {ref,onMounted} from 'vue'
|
||||
import {ElMessage} from 'element-plus'
|
||||
import {getPage,getRealtime,add,update,startTreatment,complete,del} from './api'
|
||||
const tableData=ref([]);const total=ref(0);const dlgVisible=ref(false);const isEdit=ref(false);const realtime=ref({})
|
||||
const q=ref({pageNo:1,pageSize:20,patientName:'',triageLevel:null,status:''})
|
||||
const q=ref({pageNo:1,pageSize: 10,patientName:'',triageLevel:null,status:''})
|
||||
const form=ref({patientId:null,patientName:'',triageLevel:3,chiefComplaint:'',temperature:36.5,pulse:80,respiration:20,systolicBp:120,diastolicBp:80,spo2:98,consciousness:'清醒',area:'诊室',triageNurse:''})
|
||||
const loadData=async()=>{const r=await getPage(q.value);tableData.value=r.data?.records||[];total.value=r.data?.total||0}
|
||||
const refreshRealtime=async()=>{const r=await getRealtime();realtime.value=r.data||{}}
|
||||
|
||||
@@ -307,7 +307,7 @@ const loadPatients = async () => {
|
||||
|
||||
const loadLogs = async () => {
|
||||
logLoading.value = true
|
||||
const res = await getMergeLogPage({ pageNo: 1, pageSize: 20 })
|
||||
const res = await getMergeLogPage({ pageNo: 1, pageSize: 10 })
|
||||
mergeLogs.value = res.data?.records || []
|
||||
logLoading.value = false
|
||||
}
|
||||
|
||||
@@ -134,7 +134,7 @@ import {getRevisionPage} from './api'
|
||||
import {ElMessage} from 'element-plus'
|
||||
const route=useRoute()
|
||||
const tableData=ref([]);const total=ref(0)
|
||||
const q=ref({pageNo:1,pageSize:20,emrId:null,operatorName:''})
|
||||
const q=ref({pageNo:1,pageSize: 10,emrId:null,operatorName:''})
|
||||
const detailVisible=ref(false);const detail=ref({})
|
||||
const loadData=async()=>{
|
||||
try{
|
||||
|
||||
@@ -90,7 +90,7 @@ const queryParams = reactive({
|
||||
emrType: '',
|
||||
status: '',
|
||||
pageNum: 1,
|
||||
pageSize: 20
|
||||
pageSize: 10
|
||||
})
|
||||
|
||||
const emrTypeMap = { ADMISSION: '入院记录', FIRST_COURSE: '首次病程', DAILY_COURSE: '日常病程', DISCHARGE: '出院记录' }
|
||||
|
||||
@@ -83,7 +83,7 @@ import { generateCda, getCdaPage, publishCdaDocument } from './api'
|
||||
const typeMap = { admission: '入院记录', discharge: '出院记录', lab_report: '检验报告', referral: '转诊记录' }
|
||||
const docList = ref([])
|
||||
const pageTotal = ref(0)
|
||||
const page = ref({ pageNo: 1, pageSize: 20 })
|
||||
const page = ref({ pageNo: 1, pageSize: 10 })
|
||||
const showGenerate = ref(false)
|
||||
const genForm = ref({ encounterId: '', patientId: '', documentType: 'admission', documentTitle: '', clinicalData: '' })
|
||||
const showXml = ref(false)
|
||||
|
||||
@@ -112,7 +112,7 @@ const fromFhirJson = ref('')
|
||||
const fromFhirResult = ref('')
|
||||
const fhirList = ref([])
|
||||
const listTotal = ref(0)
|
||||
const listPage = ref({ pageNo: 1, pageSize: 20 })
|
||||
const listPage = ref({ pageNo: 1, pageSize: 10 })
|
||||
|
||||
const loadStats = async () => {
|
||||
const r = await getFhirTypeStats()
|
||||
|
||||
@@ -276,12 +276,12 @@ import { ref, onMounted } from 'vue'
|
||||
import { ElMessage } from 'element-plus'
|
||||
import { getMessagePage, sendMessage, retryMessage, getMessageStats } from './components/api'
|
||||
const loading = ref(false); const tableData = ref([]); const total = ref(0); const stats = ref(null)
|
||||
const queryParams = ref({ sourceSystem: '', targetSystem: '', status: '', pageNo: 1, pageSize: 20 })
|
||||
const queryParams = ref({ sourceSystem: '', targetSystem: '', status: '', pageNo: 1, pageSize: 10 })
|
||||
const sendVisible = ref(false); const sendForm = ref({ messageType: '', sourceSystem: '', targetSystem: '', messageFormat: 'JSON', messageContent: '' })
|
||||
const statusType = (s) => ({ '待发送': 'warning', '已发送': 'success', '发送失败': 'danger', '重试中': 'info' }[s] || 'info')
|
||||
function getList() { loading.value = true; getMessagePage(queryParams.value).then(res => { tableData.value = res.data?.records || []; total.value = res.data?.total || 0 }).finally(() => { loading.value = false }) }
|
||||
function handleQuery() { queryParams.value.pageNo = 1; getList() }
|
||||
function resetQuery() { queryParams.value = { sourceSystem: '', targetSystem: '', status: '', pageNo: 1, pageSize: 20 }; getList() }
|
||||
function resetQuery() { queryParams.value = { sourceSystem: '', targetSystem: '', status: '', pageNo: 1, pageSize: 10 }; getList() }
|
||||
function handleSend() { sendForm.value = { messageType: '', sourceSystem: '', targetSystem: '', messageFormat: 'JSON', messageContent: '' }; sendVisible.value = true }
|
||||
function submitSend() { sendMessage(sendForm.value).then(res => { if (res.code === 200) { ElMessage.success('消息已提交'); sendVisible.value = false; getList(); loadStats() } }) }
|
||||
function handleRetry(row) { retryMessage(row.id).then(res => { if (res.code === 200) { ElMessage.success('重试已提交'); getList(); loadStats() } }) }
|
||||
|
||||
@@ -260,13 +260,13 @@ import { ref, onMounted } from 'vue'
|
||||
import { ElMessage, ElMessageBox } from 'element-plus'
|
||||
import { getRegistryPage, addRegistry, updateRegistry, deleteRegistry, updateRegistryStatus } from './components/api'
|
||||
const loading = ref(false); const tableData = ref([]); const total = ref(0)
|
||||
const queryParams = ref({ serviceName: '', serviceStatus: '', pageNo: 1, pageSize: 20 })
|
||||
const queryParams = ref({ serviceName: '', serviceStatus: '', pageNo: 1, pageSize: 10 })
|
||||
const formVisible = ref(false); const formTitle = ref('注册服务'); const isEdit = ref(false); const formRef = ref()
|
||||
const form = ref({ id: null, serviceName: '', serviceVersion: '', serviceEndpoint: '', protocol: 'HTTP', timeoutMs: 5000, serviceDescription: '' })
|
||||
const rules = { serviceName: [{ required: true, message: '请输入服务名称', trigger: 'blur' }], serviceEndpoint: [{ required: true, message: '请输入端点地址', trigger: 'blur' }] }
|
||||
function getList() { loading.value = true; getRegistryPage(queryParams.value).then(res => { tableData.value = res.data?.records || []; total.value = res.data?.total || 0 }).finally(() => { loading.value = false }) }
|
||||
function handleQuery() { queryParams.value.pageNo = 1; getList() }
|
||||
function resetQuery() { queryParams.value = { serviceName: '', serviceStatus: '', pageNo: 1, pageSize: 20 }; getList() }
|
||||
function resetQuery() { queryParams.value = { serviceName: '', serviceStatus: '', pageNo: 1, pageSize: 10 }; getList() }
|
||||
function handleAdd() { isEdit.value = false; formTitle.value = '注册服务'; form.value = { id: null, serviceName: '', serviceVersion: '', serviceEndpoint: '', protocol: 'HTTP', timeoutMs: 5000, serviceDescription: '' }; formVisible.value = true }
|
||||
function handleEdit(row) { isEdit.value = true; formTitle.value = '编辑服务'; form.value = { ...row }; formVisible.value = true }
|
||||
function submitForm() { formRef.value.validate(valid => { if (!valid) return; const action = isEdit.value ? updateRegistry(form.value) : addRegistry(form.value); action.then(res => { if (res.code === 200) { ElMessage.success(isEdit.value ? '修改成功' : '注册成功'); formVisible.value = false; getList() } else ElMessage.error(res.msg || '操作失败') }) }) }
|
||||
|
||||
@@ -247,7 +247,7 @@ import {ElMessage,ElMessageBox} from 'element-plus'
|
||||
import {retryMessage,retryAllFailed,getDeadLetterPage,resolveDeadLetter,ignoreDeadLetter,getMonitorStats,getTimeline} from './api'
|
||||
const activeTab=ref('deadletter')
|
||||
const stats=ref({});const deadLetterData=ref([]);const dlqTotal=ref(0);const timelineData=ref([])
|
||||
const dlq=ref({pageNo:1,pageSize:20,status:'',sourceSystem:''})
|
||||
const dlq=ref({pageNo:1,pageSize: 10,status:'',sourceSystem:''})
|
||||
const loadStats=async()=>{const r=await getMonitorStats();stats.value=r.data||{}}
|
||||
const loadDeadLetter=async()=>{const r=await getDeadLetterPage(dlq.value);deadLetterData.value=r.data?.records||[];dlqTotal.value=r.data?.total||0}
|
||||
const loadTimeline=async()=>{const r=await getTimeline({hours:24});timelineData.value=r.data||[]}
|
||||
|
||||
@@ -91,7 +91,7 @@
|
||||
import { ref, onMounted } from 'vue'
|
||||
import { ElMessage, ElMessageBox } from 'element-plus'
|
||||
import { getList, remove } from './components/api'
|
||||
const queryParams = ref({ searchKey: '', pageNum: 1, pageSize: 20 })
|
||||
const queryParams = ref({ searchKey: '', pageNum: 1, pageSize: 10 })
|
||||
const tableData = ref([])
|
||||
const handleQuery = async () => {
|
||||
try {
|
||||
|
||||
@@ -91,7 +91,7 @@
|
||||
import { ref, onMounted } from 'vue'
|
||||
import { ElMessage, ElMessageBox } from 'element-plus'
|
||||
import { getList, remove } from './components/api'
|
||||
const queryParams = ref({ searchKey: '', pageNum: 1, pageSize: 20 })
|
||||
const queryParams = ref({ searchKey: '', pageNum: 1, pageSize: 10 })
|
||||
const tableData = ref([])
|
||||
const handleQuery = async () => {
|
||||
try {
|
||||
|
||||
@@ -91,7 +91,7 @@
|
||||
import { ref, onMounted } from 'vue'
|
||||
import { ElMessage, ElMessageBox } from 'element-plus'
|
||||
import { getList, remove } from './components/api'
|
||||
const queryParams = ref({ searchKey: '', pageNum: 1, pageSize: 20 })
|
||||
const queryParams = ref({ searchKey: '', pageNum: 1, pageSize: 10 })
|
||||
const tableData = ref([])
|
||||
const handleQuery = async () => {
|
||||
try {
|
||||
|
||||
@@ -91,7 +91,7 @@
|
||||
import { ref, onMounted } from 'vue'
|
||||
import { ElMessage, ElMessageBox } from 'element-plus'
|
||||
import { getList, remove } from './components/api'
|
||||
const queryParams = ref({ searchKey: '', pageNum: 1, pageSize: 20 })
|
||||
const queryParams = ref({ searchKey: '', pageNum: 1, pageSize: 10 })
|
||||
const tableData = ref([])
|
||||
const handleQuery = async () => {
|
||||
try {
|
||||
|
||||
@@ -91,7 +91,7 @@
|
||||
import { ref, onMounted } from 'vue'
|
||||
import { ElMessage, ElMessageBox } from 'element-plus'
|
||||
import { getList, remove } from './components/api'
|
||||
const queryParams = ref({ searchKey: '', pageNum: 1, pageSize: 20 })
|
||||
const queryParams = ref({ searchKey: '', pageNum: 1, pageSize: 10 })
|
||||
const tableData = ref([])
|
||||
const handleQuery = async () => {
|
||||
try {
|
||||
|
||||
@@ -91,7 +91,7 @@
|
||||
import { ref, onMounted } from 'vue'
|
||||
import { ElMessage, ElMessageBox } from 'element-plus'
|
||||
import { getList, remove } from './components/api'
|
||||
const queryParams = ref({ searchKey: '', pageNum: 1, pageSize: 20 })
|
||||
const queryParams = ref({ searchKey: '', pageNum: 1, pageSize: 10 })
|
||||
const tableData = ref([])
|
||||
const handleQuery = async () => {
|
||||
try {
|
||||
|
||||
@@ -264,7 +264,7 @@ import {ElMessage} from 'element-plus'
|
||||
import {getPage,add,handle,close,del} from './api'
|
||||
const { complaint_type, complaint_status } = useDict('complaint_type', 'complaint_status')
|
||||
const tableData=ref([]);const total=ref(0)
|
||||
const q=ref({pageNo:1,pageSize:20,patientName:'',complaintType:'',status:''})
|
||||
const q=ref({pageNo:1,pageSize: 10,patientName:'',complaintType:'',status:''})
|
||||
const addVisible=ref(false);const handleVisible=ref(false)
|
||||
const addForm=ref({patientId:null,patientName:'',complaintType:'ATTITUDE',complaintContent:'',departmentName:''})
|
||||
const handleForm=ref({id:null,handler:'',handleResult:'',satisfactionAfter:5})
|
||||
|
||||
@@ -313,7 +313,7 @@ import {ref,onMounted} from 'vue'
|
||||
import {ElMessage} from 'element-plus'
|
||||
import {getPage,add,update,del,complete} from './api'
|
||||
const tableData=ref([]);const total=ref(0);const dlgVisible=ref(false);const isEdit=ref(false)
|
||||
const q=ref({pageNo:1,pageSize:20,patientName:'',diseaseCode:'',followupType:'',status:'',responsibleDoctor:''})
|
||||
const q=ref({pageNo:1,pageSize: 10,patientName:'',diseaseCode:'',followupType:'',status:'',responsibleDoctor:''})
|
||||
const form=ref({patientId:null,patientName:'',encounterId:null,diseaseCode:'',diseaseName:'',followupType:'PHONE',frequency:'MONTHLY',totalTimes:1,responsibleDoctor:'',responsibleNurse:'',startDate:'',endDate:''})
|
||||
const loadData=async()=>{const r=await getPage(q.value);tableData.value=r.data?.records||[];total.value=r.data?.total||0}
|
||||
const showAdd=()=>{isEdit.value=false;form.value={patientId:null,patientName:'',encounterId:null,diseaseCode:'',diseaseName:'',followupType:'PHONE',frequency:'MONTHLY',totalTimes:1,responsibleDoctor:'',responsibleNurse:'',startDate:'',endDate:''};dlgVisible.value=true}
|
||||
|
||||
@@ -161,7 +161,7 @@ import {ref,onMounted} from 'vue'
|
||||
import {ElMessage} from 'element-plus'
|
||||
import {getPage,del} from './api'
|
||||
const tableData=ref([]);const total=ref(0)
|
||||
const q=ref({pageNo:1,pageSize:20,taskId:'',medicationCompliance:''})
|
||||
const q=ref({pageNo:1,pageSize: 10,taskId:'',medicationCompliance:''})
|
||||
const loadData=async()=>{const r=await getPage(q.value);tableData.value=r.data?.records||[];total.value=r.data?.total||0}
|
||||
const delItem=async(id)=>{await del(id);ElMessage.success('已删除');loadData()}
|
||||
onMounted(()=>loadData())
|
||||
|
||||
@@ -229,7 +229,7 @@ import {ref,onMounted} from 'vue'
|
||||
import {ElMessage} from 'element-plus'
|
||||
import {getPage,getStats,add,del} from './api'
|
||||
const tableData=ref([]);const total=ref(0);const stats=ref({});const dlgVisible=ref(false)
|
||||
const q=ref({pageNo:1,pageSize:20,departmentName:'',doctorName:'',surveyType:''})
|
||||
const q=ref({pageNo:1,pageSize: 10,departmentName:'',doctorName:'',surveyType:''})
|
||||
const form=ref({patientId:null,patientName:'',surveyType:'DISCHARGE',departmentName:'',doctorName:'',overallScore:5,serviceScore:5,environmentScore:5,suggestions:''})
|
||||
const loadData=async()=>{const r=await getPage(q.value);tableData.value=r.data?.records||[];total.value=r.data?.total||0}
|
||||
const refreshStats=async()=>{const r=await getStats({departmentName:q.value.departmentName});stats.value=r.data||{}}
|
||||
|
||||
@@ -316,7 +316,7 @@ import {ref,onMounted} from 'vue'
|
||||
import {ElMessage} from 'element-plus'
|
||||
import {getPage,getToday,execute,markAbnormal,del} from './api'
|
||||
const tableData=ref([]);const total=ref(0)
|
||||
const q=ref({pageNo:1,pageSize:20,patientName:'',operatorName:'',scheduledDate:'',result:''})
|
||||
const q=ref({pageNo:1,pageSize: 10,patientName:'',operatorName:'',scheduledDate:'',result:''})
|
||||
const execVisible=ref(false);const execForm=ref({taskId:null,patientId:null,contactContent:'',patientCondition:'',medicationCompliance:'FULL',symptoms:'',reappointmentFlag:false,reappointmentDate:'',transferFlag:false,transferReason:''})
|
||||
const abnormalVisible=ref(false);const abnormalNextAction=ref('');let currentTaskId=null
|
||||
const loadData=async()=>{const r=await getPage(q.value);tableData.value=r.data?.records||[];total.value=r.data?.total||0}
|
||||
|
||||
@@ -213,7 +213,7 @@ import {ref,onMounted} from 'vue'
|
||||
import {ElMessage} from 'element-plus'
|
||||
import {getPage,verify,del} from './api'
|
||||
const tableData=ref([]);const total=ref(0)
|
||||
const q=ref({pageNo:1,pageSize:20,patientName:'',verifyResult:''})
|
||||
const q=ref({pageNo:1,pageSize: 10,patientName:'',verifyResult:''})
|
||||
const dlgVisible=ref(false)
|
||||
const form=ref({patientId:null,patientName:'',idCard:'',birthDate:null,gender:'',verifyResult:'PENDING',verifySource:''})
|
||||
const loadData=async()=>{const r=await getPage(q.value);tableData.value=r.data?.records||[];total.value=r.data?.total||0}
|
||||
|
||||
@@ -159,7 +159,7 @@ const searchKey = ref('')
|
||||
const patientList = ref([])
|
||||
const patientTotal = ref(0)
|
||||
const pageNo = ref(1)
|
||||
const pageSize = ref(20)
|
||||
const $110)
|
||||
const currentPatient = ref(null)
|
||||
const feeItems = ref([])
|
||||
const feeLoading = ref(false)
|
||||
|
||||
@@ -252,7 +252,7 @@ import { getPatientPage, getPatientPrescription } from './components/api'
|
||||
const loading = ref(false)
|
||||
const tableData = ref([])
|
||||
const total = ref(0)
|
||||
const queryParams = ref({ searchKey: '', deptName: '', pageNo: 1, pageSize: 20 })
|
||||
const queryParams = ref({ searchKey: '', deptName: '', pageNo: 1, pageSize: 10 })
|
||||
const detailVisible = ref(false)
|
||||
const detailData = ref(null)
|
||||
const prescriptionItems = ref([])
|
||||
@@ -266,7 +266,7 @@ function handleQuery() {
|
||||
}
|
||||
|
||||
function resetQuery() {
|
||||
queryParams.value = { searchKey: '', deptName: '', pageNo: 1, pageSize: 20 }
|
||||
queryParams.value = { searchKey: '', deptName: '', pageNo: 1, pageSize: 10 }
|
||||
handleQuery()
|
||||
}
|
||||
|
||||
|
||||
@@ -89,7 +89,7 @@
|
||||
<script setup>
|
||||
import { ref, onMounted } from 'vue'
|
||||
import { ElMessage } from 'element-plus'
|
||||
const queryParams = ref({ searchKey: '', pageNum: 1, pageSize: 20 })
|
||||
const queryParams = ref({ searchKey: '', pageNum: 1, pageSize: 10 })
|
||||
const tableData = ref([])
|
||||
const handleQuery = () => { tableData.value = [] }
|
||||
const handleAdd = () => { ElMessage.info('新增功能开发中') }
|
||||
|
||||
@@ -412,7 +412,7 @@ const dateRange = ref([])
|
||||
const tableRef = ref()
|
||||
const formRef = ref()
|
||||
|
||||
const queryParams = ref({ patientName: '', statusEnum: undefined, pageNo: 1, pageSize: 20 })
|
||||
const queryParams = ref({ patientName: '', statusEnum: undefined, pageNo: 1, pageSize: 10 })
|
||||
|
||||
const formVisible = ref(false)
|
||||
const formTitle = ref('新增手术')
|
||||
@@ -445,7 +445,7 @@ function getList() {
|
||||
}
|
||||
|
||||
function handleQuery() { queryParams.value.pageNo = 1; getList() }
|
||||
function resetQuery() { queryParams.value = { patientName: '', statusEnum: undefined, pageNo: 1, pageSize: 20 }; dateRange.value = []; getList() }
|
||||
function resetQuery() { queryParams.value = { patientName: '', statusEnum: undefined, pageNo: 1, pageSize: 10 }; dateRange.value = []; getList() }
|
||||
|
||||
function handleAdd() {
|
||||
isEdit.value = false
|
||||
|
||||
@@ -128,7 +128,7 @@
|
||||
import {ref,onMounted} from 'vue'
|
||||
import {getPage} from './api'
|
||||
const tableData=ref([]);const total=ref(0)
|
||||
const q=ref({pageNo:1,pageSize:20,patientName:'',infectionType:'',status:''})
|
||||
const q=ref({pageNo:1,pageSize: 10,patientName:'',infectionType:'',status:''})
|
||||
const loadData=async()=>{const r=await getPage(q.value);tableData.value=r.data?.records||[];total.value=r.data?.total||0}
|
||||
onMounted(()=>loadData())
|
||||
</script>
|
||||
|
||||
@@ -365,7 +365,7 @@ const statCards = ref([
|
||||
{label:'平均菌落', value:0, color:'#409eff'}
|
||||
])
|
||||
|
||||
const q = ref({pageNo:1, pageSize:20, sampleType:'', monitorResult:''})
|
||||
const q = ref({pageNo:1, pageSize: 10, sampleType:'', monitorResult:''})
|
||||
const formData = reactive({
|
||||
sampleType:'AIR', sampleLocation:'', sampleDate:'', monitorResult:'QUALIFIED',
|
||||
bacterialCount:0, standardLimit:0, monitorPerson:''
|
||||
@@ -401,7 +401,7 @@ async function loadData() {
|
||||
}
|
||||
|
||||
function resetQuery() {
|
||||
q.value = {pageNo:1, pageSize:20, sampleType:'', monitorResult:''}
|
||||
q.value = {pageNo:1, pageSize: 10, sampleType:'', monitorResult:''}
|
||||
loadData()
|
||||
}
|
||||
|
||||
|
||||
@@ -327,7 +327,7 @@ const total = ref(0)
|
||||
const showAdd = ref(false)
|
||||
const stats = ref({total:0, blood:0, bodyFluid:0, followupRate:'0%'})
|
||||
|
||||
const q = ref({pageNo:1, pageSize:20, exposureType:''})
|
||||
const q = ref({pageNo:1, pageSize: 10, exposureType:''})
|
||||
const formData = reactive({
|
||||
staffName:'', departmentName:'', exposureType:'BLOOD', exposureSource:'',
|
||||
exposureSite:'', exposureLevel:'轻度', treatment:''
|
||||
@@ -357,7 +357,7 @@ async function loadData() {
|
||||
}
|
||||
|
||||
function resetQuery() {
|
||||
q.value = {pageNo:1, pageSize:20, exposureType:''}
|
||||
q.value = {pageNo:1, pageSize: 10, exposureType:''}
|
||||
loadData()
|
||||
}
|
||||
|
||||
|
||||
@@ -301,7 +301,7 @@ const statCards = ref([
|
||||
{label:'达标率', value:'0%', color:'#409eff'}
|
||||
])
|
||||
|
||||
const q = ref({pageNo:1, pageSize:20, departmentName:'', complianceType:''})
|
||||
const q = ref({pageNo:1, pageSize: 10, departmentName:'', complianceType:''})
|
||||
const formData = reactive({
|
||||
departmentName:'', staffName:'', complianceType:'COMPLIANT', handwashType:'SOAP', opportunities:''
|
||||
})
|
||||
@@ -327,7 +327,7 @@ async function loadData() {
|
||||
}
|
||||
|
||||
function resetQuery() {
|
||||
q.value = {pageNo:1, pageSize:20, departmentName:'', complianceType:''}
|
||||
q.value = {pageNo:1, pageSize: 10, departmentName:'', complianceType:''}
|
||||
loadData()
|
||||
}
|
||||
|
||||
|
||||
@@ -344,7 +344,7 @@ const total = ref(0)
|
||||
const showAdd = ref(false)
|
||||
const stats = ref({total:0, isolated:0, isolationRate:'0%', cureRate:'0%'})
|
||||
|
||||
const q = ref({pageNo:1, pageSize:20, bacteriaType:'', isolationStatus:''})
|
||||
const q = ref({pageNo:1, pageSize: 10, bacteriaType:'', isolationStatus:''})
|
||||
const formData = reactive({
|
||||
patientName:'', bacteriaType:'MRSA', departmentName:'', sampleType:'',
|
||||
isolationStatus:'ISOLATED', antibioticUsage:''
|
||||
@@ -371,7 +371,7 @@ async function loadData() {
|
||||
}
|
||||
|
||||
function resetQuery() {
|
||||
q.value = {pageNo:1, pageSize:20, bacteriaType:'', isolationStatus:''}
|
||||
q.value = {pageNo:1, pageSize: 10, bacteriaType:'', isolationStatus:''}
|
||||
loadData()
|
||||
}
|
||||
|
||||
|
||||
@@ -358,7 +358,7 @@ const statCards = ref([
|
||||
{label:'平均感染率', value:'0%', color:'#409eff'}
|
||||
])
|
||||
|
||||
const q = ref({pageNo:1, pageSize:20, surveillanceType:'', status:'', dateRange:null})
|
||||
const q = ref({pageNo:1, pageSize: 10, surveillanceType:'', status:'', dateRange:null})
|
||||
const formData = reactive({
|
||||
surveillanceType:'ICU', departmentName:'', totalPatients:0, infectionCount:0,
|
||||
deviceUsageRate:0, surveillancePeriod:'', remark:''
|
||||
@@ -398,7 +398,7 @@ async function loadData() {
|
||||
}
|
||||
|
||||
function resetQuery() {
|
||||
q.value = {pageNo:1, pageSize:20, surveillanceType:'', status:'', dateRange:null}
|
||||
q.value = {pageNo:1, pageSize: 10, surveillanceType:'', status:'', dateRange:null}
|
||||
loadData()
|
||||
}
|
||||
|
||||
|
||||
@@ -358,7 +358,7 @@ const total = ref(0)
|
||||
const showAdd = ref(false)
|
||||
const stats = ref({})
|
||||
|
||||
const q = ref({pageNo:1, pageSize:20, warningLevel:'', diseaseType:''})
|
||||
const q = ref({pageNo:1, pageSize: 10, warningLevel:'', diseaseType:''})
|
||||
const formData = reactive({
|
||||
diseaseName:'', warningLevel:'LEVEL2', diseaseType:'RESPIRATORY',
|
||||
caseCount:0, thresholdCount:0, affectedArea:'', departmentName:''
|
||||
@@ -382,7 +382,7 @@ async function loadData() {
|
||||
}
|
||||
|
||||
function resetQuery() {
|
||||
q.value = {pageNo:1, pageSize:20, warningLevel:'', diseaseType:''}
|
||||
q.value = {pageNo:1, pageSize: 10, warningLevel:'', diseaseType:''}
|
||||
loadData()
|
||||
}
|
||||
|
||||
|
||||
@@ -491,7 +491,7 @@ const statusOptions = [
|
||||
{ label: '已作废', value: 4 }
|
||||
]
|
||||
|
||||
const queryParams = reactive({ patientName: '', consentType: null, status: null, encounterId: null, pageNo: 1, pageSize: 20 })
|
||||
const queryParams = reactive({ patientName: '', consentType: null, status: null, encounterId: null, pageNo: 1, pageSize: 10 })
|
||||
|
||||
const formData = reactive({
|
||||
id: null, patientName: '', encounterId: null, patientId: null, consentType: null,
|
||||
|
||||
@@ -125,7 +125,7 @@ const queryParams = reactive({
|
||||
status: '',
|
||||
departmentName: '',
|
||||
pageNum: 1,
|
||||
pageSize: 20
|
||||
pageSize: 10
|
||||
})
|
||||
|
||||
const EMR_TYPE_MAP = {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<template>
|
||||
<template>
|
||||
<div style="height: calc(100vh - 126px)">
|
||||
<!-- 操作工具栏 -->
|
||||
<div
|
||||
@@ -300,7 +300,7 @@ const patientInfo = ref('');
|
||||
|
||||
// 分页相关
|
||||
const currentPage = ref(1);
|
||||
const pageSize = ref(20);
|
||||
const $110);
|
||||
const total = ref(0);
|
||||
|
||||
// 打印相关
|
||||
|
||||
@@ -338,7 +338,7 @@ const total = ref(0)
|
||||
const keyword = ref('')
|
||||
const category = ref('')
|
||||
const pageNo = ref(1)
|
||||
const pageSize = ref(20)
|
||||
const pageSize = ref(10)
|
||||
const showAdd = ref(false)
|
||||
const detailVisible = ref(false)
|
||||
const detailData = ref({})
|
||||
|
||||
@@ -84,7 +84,7 @@ const loading = ref(false)
|
||||
const tableData = ref([])
|
||||
const total = ref(0)
|
||||
const pageNo = ref(1)
|
||||
const pageSize = ref(20)
|
||||
const $110)
|
||||
const keyword = ref('')
|
||||
const showEdit = ref(false)
|
||||
const showSteps = ref(false)
|
||||
|
||||
@@ -82,7 +82,7 @@ const loading = ref(false)
|
||||
const tableData = ref([])
|
||||
const total = ref(0)
|
||||
const pageNo = ref(1)
|
||||
const pageSize = ref(20)
|
||||
const $110)
|
||||
const showForm = ref(false)
|
||||
|
||||
const filters = ref({ sourceType: '', targetType: '', relationType: '' })
|
||||
|
||||
@@ -145,7 +145,7 @@ const stats = ref({ total: 0, qualified: 0, unqualified: 0 })
|
||||
const tableRef = ref(null)
|
||||
const printRef = ref(null)
|
||||
|
||||
const query = ref({ assessmentName: '', pageNo: 1, pageSize: 20 })
|
||||
const query = ref({ assessmentName: '', pageNo: 1, pageSize: 10 })
|
||||
|
||||
const defaultForm = () => ({
|
||||
assessmentName: '', assessmentOrg: '', assessmentYear: 2026, assessmentQuarter: 1,
|
||||
|
||||
@@ -105,7 +105,7 @@ const tableData = ref([])
|
||||
const total = ref(0)
|
||||
const stats = ref({ total: 0, passed: 0, failed: 0 })
|
||||
|
||||
const query = ref({ qcItem: '', isPass: null, pageNo: 1, pageSize: 20 })
|
||||
const query = ref({ qcItem: '', isPass: null, pageNo: 1, pageSize: 10 })
|
||||
|
||||
const defaultForm = () => ({
|
||||
qcItem: '', instrumentName: '', targetValue: null, actualValue: null,
|
||||
|
||||
@@ -221,7 +221,7 @@
|
||||
import { useDict } from '@/utils/dict'
|
||||
import {ref,onMounted} from 'vue';import {ElMessage} from 'element-plus';import {getPage,appoint,checkin,startExam,complete,cancel} from './api'
|
||||
const { exam_appointment_status } = useDict('exam_appointment_status')
|
||||
const tableData=ref([]);const total=ref(0);const q=ref({pageNo:1,pageSize:20,patientName:'',status:''})
|
||||
const tableData=ref([]);const total=ref(0);const q=ref({pageNo:1,pageSize: 10,patientName:'',status:''})
|
||||
const dlgVisible=ref(false);const form=ref({patientId:null,encounterId:null,patientName:'',examName:'',appointDate:null,appointTime:'',room:''})
|
||||
const loadData=async()=>{const r=await getPage(q.value);tableData.value=r.data?.records||[];total.value=r.data?.total||0}
|
||||
const openAppoint=()=>{form.value={patientId:null,encounterId:null,patientName:'',examName:'',appointDate:null,appointTime:'',room:''};dlgVisible.value=true}
|
||||
|
||||
@@ -122,7 +122,7 @@
|
||||
</template>
|
||||
<script setup>
|
||||
import {ref,onMounted} from 'vue';import {ElMessage} from 'element-plus';import {getPage,add,update,del} from './api'
|
||||
const tableData=ref([]);const total=ref(0);const q=ref({pageNo:1,pageSize:20,keyword:''})
|
||||
const tableData=ref([]);const total=ref(0);const q=ref({pageNo:1,pageSize: 10,keyword:''})
|
||||
const dlgVisible=ref(false);const isEdit=ref(false);const form=ref({})
|
||||
const loadData=async()=>{const r=await getPage(q.value);tableData.value=r.data?.records||[];total.value=r.data?.total||0}
|
||||
const saveData=async()=>{if(isEdit.value){await update(form.value)}else{await add(form.value)}ElMessage.success('保存成功');dlgVisible.value=false;loadData()}
|
||||
|
||||
@@ -189,7 +189,7 @@
|
||||
</template>
|
||||
<script setup>
|
||||
import {ref,onMounted} from 'vue';import {ElMessage} from 'element-plus';import {getPage,enterPathway,getStats} from './api'
|
||||
const tableData=ref([]);const total=ref(0);const stats=ref({});const q=ref({pageNo:1,pageSize:20})
|
||||
const tableData=ref([]);const total=ref(0);const stats=ref({});const q=ref({pageNo:1,pageSize: 10})
|
||||
const enterDialog=ref(false);const enterForm=ref({pathwayId:null,pathwayName:'',patientId:null,encounterId:null,patientName:'',expectedDays:7,expectedCost:0})
|
||||
const loadData=async()=>{const r=await getPage(q.value);tableData.value=r.data?.records||[];total.value=r.data?.total||0}
|
||||
const loadStats=async()=>{const r=await getStats();stats.value=r.data||{}}
|
||||
|
||||
@@ -200,7 +200,7 @@
|
||||
import { useDict } from '@/utils/dict'
|
||||
import {ref,onMounted} from 'vue';import {ElMessage,ElMessageBox} from 'element-plus';import {getReportPage,addReport,submitReport,verifyReport} from './api'
|
||||
const { lab_report_status } = useDict('lab_report_status')
|
||||
const tableData=ref([]);const total=ref(0);const q=ref({pageNo:1,pageSize:20,status:''})
|
||||
const tableData=ref([]);const total=ref(0);const q=ref({pageNo:1,pageSize: 10,status:''})
|
||||
const dlgVisible=ref(false);const form=ref({applyId:null,encounterId:null,patientName:'',examName:'',reportType:'',findings:'',impression:'',conclusion:'',reportDoctor:''})
|
||||
const loadData=async()=>{const r=await getReportPage(q.value);tableData.value=r.data?.records||[];total.value=r.data?.total||0}
|
||||
const openReport=()=>{form.value={applyId:null,encounterId:null,patientName:'',examName:'',reportType:'',findings:'',impression:'',conclusion:'',reportDoctor:''};dlgVisible.value=true}
|
||||
|
||||
@@ -214,7 +214,7 @@
|
||||
</template>
|
||||
<script setup>
|
||||
import {ref,onMounted} from 'vue';import {ElMessage} from 'element-plus';import {getPage,add,update,del} from './api'
|
||||
const tableData=ref([]);const total=ref(0);const q=ref({pageNo:1,pageSize:20,itemCode:'',gender:''})
|
||||
const tableData=ref([]);const total=ref(0);const q=ref({pageNo:1,pageSize: 10,itemCode:'',gender:''})
|
||||
const dlgVisible=ref(false);const isEdit=ref(false);const form=ref({})
|
||||
const loadData=async()=>{const r=await getPage(q.value);tableData.value=r.data?.records||[];total.value=r.data?.total||0}
|
||||
const saveData=async()=>{if(isEdit.value){await update(form.value)}else{await add(form.value)}ElMessage.success('保存成功');dlgVisible.value=false;loadData()}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<template>
|
||||
<template>
|
||||
<el-container class="inspection-container">
|
||||
<!-- 左侧导航 -->
|
||||
<el-aside
|
||||
@@ -2790,7 +2790,7 @@ const currentEditingRow = ref(null);
|
||||
const handleProjectInlineSearch = async (query, cb, row) => {
|
||||
currentEditingRow.value = row;
|
||||
try {
|
||||
const params = { pageNo: 1, pageSize: 20, statusEnum: 2, searchKey: query || undefined };
|
||||
const params = { pageNo: 1, pageSize: 10, statusEnum: 2, searchKey: query || undefined };
|
||||
const response = await getDiagnosisTreatmentList(params);
|
||||
if (response.code === 200) {
|
||||
let list = [];
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user