fix(database): 删除数据库迁移脚本并统一页面大小配置

- 删除 V105 和 V107 数据库迁移脚本文件
- 将前端多个页面的默认页面大小从 20 统一调整为 10
- 更新 TableLayout 组件中的分页大小配置
- 调整 API 认证、审计日志、基础管理等多个模块的分页参数
This commit is contained in:
2026-06-22 16:18:21 +08:00
parent 89015fc6f2
commit ede93dabb9
120 changed files with 150 additions and 422 deletions

View File

@@ -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);

View File

@@ -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. 用户重新登录以加载最新权限

View File

@@ -147,7 +147,7 @@ const props = withDefaults(defineProps<TableProps>(), {
showPagination: false,
total: 0,
pageNo: 1,
pageSize: 20,
pageSize: 10,
isAllData: false,
paginationLeftText: '',
paginationProps: () => ({}),

View File

@@ -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: () => [],

View File

@@ -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']
})

View File

@@ -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()
}

View File

@@ -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()}

View File

@@ -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('新增功能开发中') }

View File

@@ -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('新增功能开发中') }

View File

@@ -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() {

View File

@@ -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() {

View File

@@ -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('新增功能开发中') }

View File

@@ -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('新增功能开发中') }

View File

@@ -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 || '操作失败') }) }) }

View File

@@ -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('新增功能开发中') }

View File

@@ -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 {

View File

@@ -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,

View File

@@ -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,

View File

@@ -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 || '操作失败') }) }) }

View File

@@ -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()
}

View File

@@ -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 {

View File

@@ -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('详情') }

View File

@@ -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('详情') }

View File

@@ -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' }],

View File

@@ -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('新增功能开发中') }

View File

@@ -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()
}

View File

@@ -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()
}

View File

@@ -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':''

View File

@@ -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()})

View File

@@ -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()}

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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()}

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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}

View File

@@ -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}

View File

@@ -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}

View File

@@ -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()}

View File

@@ -1855,7 +1855,7 @@ const querySearchInspectionItems = async (queryString, cb) => {
try {
const params = {
pageNo: 1,
pageSize: 20, // 限制返回数量
pageSize: 10, // 限制返回数量
categoryCode: inspectionCategoryCode.value,
searchKey: queryString
}

View File

@@ -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 || {} }

View File

@@ -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 }

View File

@@ -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 () => {

View File

@@ -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 || {} }

View File

@@ -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}

View File

@@ -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}

View File

@@ -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}

View File

@@ -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||{}}

View File

@@ -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
}

View File

@@ -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{

View File

@@ -90,7 +90,7 @@ const queryParams = reactive({
emrType: '',
status: '',
pageNum: 1,
pageSize: 20
pageSize: 10
})
const emrTypeMap = { ADMISSION: '入院记录', FIRST_COURSE: '首次病程', DAILY_COURSE: '日常病程', DISCHARGE: '出院记录' }

View File

@@ -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)

View File

@@ -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()

View File

@@ -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() } }) }

View File

@@ -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 || '操作失败') }) }) }

View File

@@ -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||[]}

View File

@@ -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 {

View File

@@ -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 {

View File

@@ -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 {

View File

@@ -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 {

View File

@@ -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 {

View File

@@ -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 {

View File

@@ -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})

View File

@@ -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}

View File

@@ -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())

View File

@@ -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||{}}

View File

@@ -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}

View File

@@ -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}

View File

@@ -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)

View File

@@ -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()
}

View File

@@ -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('新增功能开发中') }

View File

@@ -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

View File

@@ -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>

View File

@@ -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()
}

View File

@@ -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()
}

View File

@@ -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()
}

View File

@@ -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()
}

View File

@@ -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()
}

View File

@@ -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()
}

View File

@@ -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,

View File

@@ -125,7 +125,7 @@ const queryParams = reactive({
status: '',
departmentName: '',
pageNum: 1,
pageSize: 20
pageSize: 10
})
const EMR_TYPE_MAP = {

View File

@@ -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);
// 打印相关

View File

@@ -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({})

View File

@@ -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)

View File

@@ -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: '' })

View File

@@ -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,

View File

@@ -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,

View File

@@ -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}

View File

@@ -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()}

View File

@@ -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||{}}

View File

@@ -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}

View File

@@ -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()}

View File

@@ -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