diff --git a/package.json b/package.json index b450e9b..bfbf776 100644 --- a/package.json +++ b/package.json @@ -41,6 +41,7 @@ "vue-plugin-hiprint": "^0.0.60", "vue-router": "4.2.5", "vue3-print-nb": "^0.1.4", + "vue3-seamless-scroll": "^3.0.2", "vue3-select2-component": "^0.1.7", "vuedraggable": "^4.1.0", "vxe-pc-ui": "^4.3.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1da1977..9b06f24 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -92,6 +92,9 @@ importers: vue3-print-nb: specifier: ^0.1.4 version: 0.1.4(typescript@5.9.3) + vue3-seamless-scroll: + specifier: ^3.0.2 + version: 3.0.2(vue@3.5.23(typescript@5.9.3)) vue3-select2-component: specifier: ^0.1.7 version: 0.1.7 @@ -2711,6 +2714,9 @@ packages: vue3-print-nb@0.1.4: resolution: {integrity: sha512-LExI7viEzplR6ZKQ2b+V4U0cwGYbVD4fut/XHvk3UPGlT5CcvIGs6VlwGp107aKgk6P8Pgx4rco3Rehv2lti3A==} + vue3-seamless-scroll@3.0.2: + resolution: {integrity: sha512-LpKoL1ht71MASabUBsoSqbhLqcuKSrD+u01dgHac+/cthPAShKvcdM7dSGtaxjVntSFqdeViqJssjcwy/KqRSA==} + vue3-select2-component@0.1.7: resolution: {integrity: sha512-8UPZmFl02I47XwW+j8ICmHyAND8wfbavlvMrqh10wwdSVER1aF2kI9XCmfIrNlVQvxSbvc0mJjWQAHHSCW9dkw==} @@ -5611,6 +5617,13 @@ snapshots: transitivePeerDependencies: - typescript + vue3-seamless-scroll@3.0.2(vue@3.5.23(typescript@5.9.3)): + dependencies: + element-plus: 2.11.5(vue@3.5.23(typescript@5.9.3)) + transitivePeerDependencies: + - '@vue/composition-api' + - vue + vue3-select2-component@0.1.7: dependencies: jquery: 3.7.1 diff --git a/src/App.vue b/src/App.vue index 078b5d2..c7d0432 100644 --- a/src/App.vue +++ b/src/App.vue @@ -6,13 +6,28 @@ import useSettingsStore from '@/store/modules/settings' import { handleThemeStyle } from '@/utils/theme' import { ref, onMounted, onUnmounted, nextTick } from 'vue'; - +import { useFingerprint } from '@/utils/useFingerprint'; +import { useCommonStore } from '@/store/modules/commonStore' +const mbStore = useCommonStore(); +// 使用自定义hook获取指纹信息 +const { + fingerprint, + loading, + error, + getFingerprint +} = useFingerprint(); onMounted(() => { nextTick(() => { // 初始化主题样式 handleThemeStyle(useSettingsStore().theme) }) + + if (!mbStore.fingerprint) { + // 重新获取指纹 + getFingerprint(); + mbStore.setFingerprint(fingerprint) + } }) diff --git a/src/api/liswork/micro/index.ts b/src/api/liswork/micro/index.ts new file mode 100644 index 0000000..57790ab --- /dev/null +++ b/src/api/liswork/micro/index.ts @@ -0,0 +1,142 @@ +// @ts-ignore +import request from '@/utils/request' + + +// 查询微生物数据列表 +export function wswsampleList(query?: Object) { + return request({ + url: '/lisworkgerm/wswsamplelist', + method: 'get', + params: query + }) +} +// 查询微生物数据列表 分页 +export function wswsamplelistpage(query?: Object) { + return request({ + url: '/lisworkgerm/wswsamplelistpage', + method: 'get', + params: query + }) +} +// 获取微生物样本信息 +export function sampleMedInfo(query?: Object) { + return request({ + url: '/lisworkgerm/getresultlist', + method: 'get', + params: query + }) +} +// 获取药敏数据 +export function getresultmedList(query?: Object) { + return request({ + url: '/lisworkgerm/getresultmedlist', + method: 'get', + params: query + }) +} +// 写入专家评语 +export function savetestResult(query?: Object) { + return request({ + url: '/lisworkgerm/savetestresult', + method: 'post', + data: query + }) +} +// 获取操作记录 +export function getComLog(query?: Object) { + return request({ + url: '/lisworkgerm/getcomlog', + method: 'get', + params: query + }) +} + +//新增结果明细 +export function newresult(data?: Object) { + return request({ + url: '/lisworkgerm/newresult', + method: 'post', + data + }) +} +//修改结果明细 +export function changeresult(data?: Object) { + return request({ + url: '/lisworkgerm/changeresult', + method: 'post', + data + }) +} + +//修改结果明细 +export function saveresult(data?: Object) { + return request({ + url: '/lisworkgerm/saveresult', + method: 'post', + data + }) +} +//获取药敏字典 +export function getmeddictList(data?: Object) { + return request({ + url: '/lisworkgerm/getmeddict', + method: 'get', + params: data + }) +} +//获取药敏模板 +export function getmedgroupList(data?: Object) { + return request({ + url: '/lisworkgerm/getmedgrouplist', + method: 'get', + params: data + }) +} +//获取药敏模板明细 +export function getmedgroupMbList(data?: Object) { + return request({ + url: '/lisworkgerm/getmedgroup', + method: 'get', + params: data + }) +} +//保存药敏结果 +export function savemedresult(data?: Object) { + return request({ + url: '/lisworkgerm/savemedresult', + method: 'post', + data + }) +} +//保存所有药敏结果 +export function savemedresultall(data?: Object) { + return request({ + url: '/lisworkgerm/savemedresultall', + method: 'post', + data + }) +} +//删除药敏结果 +export function deletemedresult(data?: Object) { + return request({ + url: '/lisworkgerm/deletemedresult', + method: 'post', + data + }) +} +//获取培养基记录 +export function getmediumList(data?: Object) { + return request({ + url: '/lisworkgerm/getmedium', + method: 'get', + params: data + }) +} +//微生物报告审核 +export function cbebCheck(data?: Object) { + return request({ + url: '/lisworkgerm/check', + method: 'get', + params: data + }) +} \ No newline at end of file diff --git a/src/api/liswork/work/LisWork.ts b/src/api/liswork/work/LisWork.ts index 6899b6e..4b35c5c 100644 --- a/src/api/liswork/work/LisWork.ts +++ b/src/api/liswork/work/LisWork.ts @@ -9,7 +9,6 @@ export function queryLabPatList(query?: Object) { params: query }) } - // 查询数据 export function queryLabPat(query?: Object) { return request({ diff --git a/src/api/liswork/xmKnowledge/xmKnowledgeApi.ts b/src/api/liswork/xmKnowledge/xmKnowledgeApi.ts new file mode 100644 index 0000000..770e12b --- /dev/null +++ b/src/api/liswork/xmKnowledge/xmKnowledgeApi.ts @@ -0,0 +1,41 @@ +//知识库 +// @ts-ignore +import request from '@/utils/request' + +//查询数据 +export function queryService(params:any){ + return request({ + url: '/xmKnowledge/query', + method: 'get', + params + }) +} + +//查询明细数据 +export function queryDetailService(xmdh: string){ + return request({ + url: '/xmKnowledge/detail', + method: 'get', + params: { + xmdh + } + }) +} + +//新增数据 +export function addService(params:any){ + return request({ + url: '/xmKnowledge/add', + method: 'post', + params + }) +} + +//删除数据 +export function delService(params:any){ + return request({ + url: '/xmKnowledge/del', + method: 'get', + params + }) +} \ No newline at end of file diff --git a/src/api/liswork/xtwh/xmFeeinstrApi.ts b/src/api/liswork/xtwh/xmFeeinstrApi.ts new file mode 100644 index 0000000..90374d5 --- /dev/null +++ b/src/api/liswork/xtwh/xmFeeinstrApi.ts @@ -0,0 +1,39 @@ +//仪器收费项目对照 +// @ts-ignore +import request from '@/utils/request' + +//查询已分配数据 +export function queryService(params:any){ + return request({ + url: '/feeinstr/query', + method: 'get', + params + }) +} + +//查询未分配的项目数据 +export function queryXmService(params:any){ + return request({ + url: '/feeinstr/queryXm', + method: 'get', + params + }) +} + +//新增数据 +export function addService(params:any){ + return request({ + url: '/feeinstr/add', + method: 'post', + params + }) +} + +//删除数据 +export function delService(params:any){ + return request({ + url: '/feeinstr/del', + method: 'delete', + params + }) +} \ No newline at end of file diff --git a/src/api/regional/index.ts b/src/api/regional/index.ts index 2514fd8..9b302ea 100644 --- a/src/api/regional/index.ts +++ b/src/api/regional/index.ts @@ -32,4 +32,28 @@ export function querySampleSignBack(query?: Object) { method: 'get', params: query }) +} +// 标本报表 +export function sampleTypeCount(query?: Object) { + return request({ + url: '/transitReport/sampleTypeCount', + method: 'get', + params: query + }) +} +// 标本报表费用 +export function sampleitemCount(query?: Object) { + return request({ + url: '/transitReport/itemCount', + method: 'get', + params: query + }) +} +// 标本报表费用 +export function getallcount(query?: Object) { + return request({ + url: '/transitstat/getallcount', + method: 'get', + params: query + }) } \ No newline at end of file diff --git a/src/api/system/parameter.ts b/src/api/system/parameter.ts index 1779402..6ecf44c 100644 --- a/src/api/system/parameter.ts +++ b/src/api/system/parameter.ts @@ -41,4 +41,13 @@ export function paramTree(query?: Object) { method: 'get', params: query, }); +} + +// 查询某个参数 +export function queryOneService(yq: string,xxdh: string) { + return request({ + url: '/param/queryOne', + method: 'get', + params: {yq,xxdh} + }); } \ No newline at end of file diff --git a/src/assets/styles/btn.scss b/src/assets/styles/btn.scss index 3590d8d..595ec48 100644 --- a/src/assets/styles/btn.scss +++ b/src/assets/styles/btn.scss @@ -97,3 +97,19 @@ font-size: 14px; border-radius: 4px; } + + +.btn_green { + background-color: #aef5ef !important; + color: #148A7F; + border-color: #aef5ef; +} + +.btns_box { + padding: .3125rem .625rem !important; + font-size: .875rem; + height: 1.25rem !important; + margin: 5px 0; + margin-left: .625rem !important; + border-radius: 0 !important; +} \ No newline at end of file diff --git a/src/assets/styles/index.scss b/src/assets/styles/index.scss index 10bf9a5..2123427 100644 --- a/src/assets/styles/index.scss +++ b/src/assets/styles/index.scss @@ -286,4 +286,21 @@ aside { width: 3.125rem; } } +} + +.next_box { + display: flex; + align-items: center; + justify-content: space-between; + + .jtIcon { + width: 2.5rem; + height: 2rem; + line-height: 2rem; + font-size: 1rem; + text-align: center; + background-color: #1f6dd3; + color: #fff; + cursor: pointer; + } } \ No newline at end of file diff --git a/src/assets/styles/ruoyi.scss b/src/assets/styles/ruoyi.scss index 563193f..c8a4094 100644 --- a/src/assets/styles/ruoyi.scss +++ b/src/assets/styles/ruoyi.scss @@ -106,13 +106,63 @@ .el-dialog:not(.is-fullscreen) { margin-top: 6vh !important; + padding: 0; + // border-radius: 20px; + + .el-dialog__body { + padding: 10px; + } } .el-dialog.scrollbar .el-dialog__body { overflow: auto; overflow-x: hidden; max-height: 70vh; - padding: 10px 20px 0; + padding: 16px; + } + + .el-dialog__header { + background: linear-gradient(90deg, #0c1a97 0%, #1373d3 100%); + padding: 10px 20px; + position: relative; + font-family: SourceHanSansCN, SourceHanSansCN; + + &::before { + content: ''; + position: absolute; + left: 20px; + top: 50%; + transform: translateY(-50%); + width: 28px; + height: 28px; + background: url('@/assets/logo/logo.png') no-repeat center; + background-size: contain; + z-index: 1; + } + + // 标题文本样式 + .el-dialog__title { + color: #fff; + /* 标题文字颜色 */ + padding-left: 40px; + /* 给 Logo 留出空间 */ + font-size: 16px; + font-weight: 600; + } + + .el-dialog__headerbtn .el-dialog__close { + color: #fff; + /* 关闭按钮颜色 */ + font-size: 18px; + + &:hover { + color: #fff; + } + } + } + + .el-dialog__footer { + padding: 10px; } .el-table { @@ -125,7 +175,7 @@ word-break: break-word; background-color: #1F6DD3 !important; color: #FFF; - height: 1.875rem !important; + height: 1.6875rem !important; font-size: .8125rem; } } @@ -136,6 +186,11 @@ } } + .el-table__body td { + font-size: .8125rem; + + } + /* 表格最外层边框(可选) */ .el-table--border { @@ -177,10 +232,13 @@ padding: 0 !important; } - .el-table--default .cell { - padding: 0 !important; + .el-table--default { + .cell { + padding: 0 !important; + } } + .el-table__cell { padding: 0 !important; height: 30px; @@ -249,7 +307,7 @@ } .el-input.is-disabled .el-input__inner { - -webkit-text-fill-color: #4e4c4c + -webkit-text-fill-color: #4e4c4c; } @@ -337,11 +395,6 @@ cursor: pointer; } - .btn_green { - background-color: #aef5ef !important; - color: #148A7F; - border-color: #aef5ef; - } // 表格input宽度,表格select宽度 .full-width-input .el-input__inner .el-select__inner { diff --git a/src/components/elTable/index.vue b/src/components/elTable/index.vue index 58c924d..bfe57ab 100644 --- a/src/components/elTable/index.vue +++ b/src/components/elTable/index.vue @@ -390,6 +390,13 @@ defineExpose({ } +:deep(.el-table__footer-wrapper tfoot td.el-table__cell) { + color: #1f6dd3 !important; + font-weight: 700; + /* 可替换为任意颜色值 */ +} + + diff --git a/src/components/tabViews/index.vue b/src/components/tabViews/index.vue index 457d2e8..bdc7554 100644 --- a/src/components/tabViews/index.vue +++ b/src/components/tabViews/index.vue @@ -114,7 +114,7 @@ setTimeout(() => { .scroll-btn { width: 1.875rem; - height: 3rem; + height: 2.9375rem; display: flex; align-items: center; justify-content: center; @@ -173,8 +173,8 @@ setTimeout(() => { font-size: 1rem; color: #1F6DD3; width: 5.625rem; - height: 3rem; - line-height: 3rem; + height: 2.9375rem; + line-height: 2.9375rem; text-align: center; flex-shrink: 0; cursor: pointer; diff --git a/src/components/vxeTable/index.vue b/src/components/vxeTable/index.vue index c61e114..9aea70d 100644 --- a/src/components/vxeTable/index.vue +++ b/src/components/vxeTable/index.vue @@ -13,13 +13,16 @@