diff --git a/src/App.vue b/src/App.vue index efff5c3..078b5d2 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1,9 +1,5 @@ - + diff --git a/src/api/liswork/work/LisWork.ts b/src/api/liswork/work/LisWork.ts index b6fefde..5acc965 100644 --- a/src/api/liswork/work/LisWork.ts +++ b/src/api/liswork/work/LisWork.ts @@ -282,6 +282,30 @@ export function redoResult(query?: Object) { params: query }) } +// 保存复查结果 +export function saveRedo(query?: Object) { + return request({ + url: '/lisworkpageinfo/saveredo', + method: 'post', + data: query + }) +} +// 交换复查结果 +export function swapRedo(query?: Object) { + return request({ + url: '/lisworkpageinfo/swapredo', + method: 'post', + data: query + }) +} +// 删除复查结果 +export function delRedo(query?: Object) { + return request({ + url: '/lisworkpageinfo/deleteRedo', + method: 'post', + data: query + }) +} // 仪器组可操作仪器查询 export function getGroupInstrdList(query?: Object) { return request({ @@ -298,5 +322,13 @@ export function getresultchangelog(query?: Object) { params: query }) } +// 获取临床意义 +export function clinicInfo(query?: Object) { + return request({ + url: '/lisworkpageinfo/clinicref', + method: 'get', + params: query + }) +} diff --git a/src/main.js b/src/main.js index 447d705..b7f312a 100644 --- a/src/main.js +++ b/src/main.js @@ -12,6 +12,11 @@ import 'vxe-pc-ui/lib/style.css' import VXETable from 'vxe-table' import 'vxe-table/lib/style.css' import '@/assets/styles/index.scss' // global css + +import { + setupRem +} from './utils/rem'; +setupRem(); // 初始化rem适配 // 先导入 jQuery 并设置全局变量 // import * as $ from 'jquery'; diff --git a/src/utils/classCom.ts b/src/utils/classCom.ts index 99f53ca..94f8938 100644 --- a/src/utils/classCom.ts +++ b/src/utils/classCom.ts @@ -106,7 +106,50 @@ function base64ToBlob(base64: string) { +import { ref, onMounted, onUnmounted, Ref } from 'vue'; +/** + * 自动根据屏幕分辨率切换按钮尺寸(small/default) + * @returns 按钮尺寸的响应式ref + */ +function useAutoSize() { + const autoSize = ref<'small' | 'default'>('default'); + console.log('333==>', 333); + // 防抖函数,避免频繁触发 + const debounce = (fn: Function, delay: number) => { + let timer: number; + return (...args: any[]) => { + clearTimeout(timer); + timer = setTimeout(() => fn.apply(null, args), delay); + }; + }; -export const classCom = { decimalToHexColor, convertHexToNumber, getContrastTextColor, printBase64PDF, printPDF } + const calculateSize = () => { + const screenWidth = window.innerWidth || document.documentElement.clientWidth; + console.log('screenWidth==>', screenWidth); + autoSize.value = screenWidth < 1600 ? 'small' : 'default'; + }; + // 防抖版本的计算函数 + const debouncedCalculateSize = debounce(calculateSize, 100); + + onMounted(() => { + calculateSize(); + // 添加防抖的resize监听 + window.addEventListener('resize', debouncedCalculateSize); + + // 在组件实例上存储清理函数 + (autoSize as any)._cleanup = () => { + window.removeEventListener('resize', debouncedCalculateSize); + }; + }); + + onUnmounted(() => { + const cleanup = (autoSize as any)._cleanup; + if (cleanup) cleanup(); + }); + + return autoSize; +} + +export const classCom = { decimalToHexColor, convertHexToNumber, getContrastTextColor, printBase64PDF, printPDF, useAutoSize } diff --git a/src/utils/mitt.ts b/src/utils/mitt.ts index ae5fac7..5b14b6a 100644 --- a/src/utils/mitt.ts +++ b/src/utils/mitt.ts @@ -1,5 +1,30 @@ -// utils/mitt.ts -import mitt from "mitt" -const emitter = mitt() + +import mitt, { Emitter, EventType } from "mitt" + +// 扩展原始Emitter类型,添加自定义方法 +interface CustomEmitter extends Emitter> { + emitWithCache?: (eventName: string, data: any) => void + getCache?: (eventName: string) => any +} + +const emitter = mitt() as CustomEmitter + +// 全局缓存:key为事件名,value为最新的事件数据 +const eventCache = new Map() + +// 触发事件时自动缓存数据 +emitter.emitWithCache = (eventName: string, data: any) => { + // 缓存数据(覆盖旧数据,只保留最新一次) + eventCache.set(eventName, data) + // 正常触发事件(供已挂载的组件监听) + emitter.emit(eventName, data) +} + +// 获取并清除缓存(避免重复处理) +emitter.getCache = (eventName: string) => { + const data = eventCache.get(eventName) + eventCache.delete(eventName) // 取出后删除,确保只处理一次 + return data +} export default emitter \ No newline at end of file diff --git a/src/utils/rem.ts b/src/utils/rem.ts new file mode 100644 index 0000000..c1fec08 --- /dev/null +++ b/src/utils/rem.ts @@ -0,0 +1,22 @@ +// src/utils/rem.ts +export const setupRem = () => { + const baseDesignWidth = 1920; // 设计稿宽度 + const baseFontSize = 16; // 设计稿对应根字体大小(1rem = 16px) + const minWidth = 1280; // 最小支持宽度(避免过小屏幕错乱) + + const updateRem = () => { + // 获取当前屏幕宽度(取可视区域宽度) + const clientWidth = document.documentElement.clientWidth || window.innerWidth; + // 限制最小宽度 + const actualWidth = Math.max(clientWidth, minWidth); + // 计算当前根字体大小(按比例缩放) + const currentFontSize = (actualWidth / baseDesignWidth) * baseFontSize; + // 设置到 html 元素 + document.documentElement.style.fontSize = `${currentFontSize.toFixed(2)}px`; + }; + + // 初始化计算 + updateRem(); + // 监听窗口尺寸变化,实时更新 + window.addEventListener('resize', updateRem); +}; \ No newline at end of file diff --git a/src/views/liswork/work/clinical/index.vue b/src/views/liswork/work/clinical/index.vue index 8690f52..6c49d62 100644 --- a/src/views/liswork/work/clinical/index.vue +++ b/src/views/liswork/work/clinical/index.vue @@ -1,10 +1,38 @@ @@ -13,4 +41,13 @@ height: 82vh; overflow-y: auto; } + +.info-text { + width: 100%; + height: 100%; + padding: 10px; + text-indent: 2rem; + color: #2b2a2a; + font-family: SourceHanSansCN, SourceHanSansCN; +} \ No newline at end of file diff --git a/src/views/liswork/work/components/labpat.vue b/src/views/liswork/work/components/labpat.vue index da64d73..00bb86c 100644 --- a/src/views/liswork/work/components/labpat.vue +++ b/src/views/liswork/work/components/labpat.vue @@ -1,9 +1,9 @@