diff --git a/src/api/checkCode/index.ts b/src/api/checkCode/index.ts new file mode 100644 index 0000000..152c693 --- /dev/null +++ b/src/api/checkCode/index.ts @@ -0,0 +1,126 @@ +//@ts-ignore js语法检查忽略 +import request from '@/utils/request'; + +// 生成条码 +export function addObj(query?: Object) { + return request({ + url: 'zyreq/add', + method: 'get', + params: query, + }); +} + + +// 查询申请单列表 +export function fetchCodeList(query?: Object) { + return request({ + url: '/zyreq/query', + method: 'get', + params: query, + }); +} +// 查询项目 +export function fetchCodeDetail(query?: Object) { + return request({ + url: 'zyreq/detail', + method: 'get', + params: query, + }); +} +// 执行条码 +export function fetchCodeExec(query?: Object) { + return request({ + url: '/zyreq/exec', + method: 'get', + params: query, + }); +} +// 执行条码 +export function printSendSample(query?: Object) { + return request({ + url: '/zyreq/printSendSample', + method: 'post', + data: query, + }); +} +// 获取申请单主表信息 +export function fetchCodeReqmain(query?: Object) { + return request({ + url: 'zyreq/reqmain', + method: 'get', + params: query, + }); +} +// 查询报告单列表 +export function reportList(query?: Object) { + return request({ + url: '/report/ReportList', + method: 'post', + data: query, + }); +} +// 查询报告Pdf预览 +export function reportViewPdf(query?: Object) { + return request({ + url: '/report/pdf', + method: 'get', + params: query, + }); +} +// 查询报告Pdf打印 +export function reportPrintPdf(query?: Object) { + return request({ + url: '/report/print', + method: 'post', + data: query, + }); +} +// 查询项目报告 +export function reportResult(query?: Object) { + return request({ + url: '/report/result', + method: 'post', + data: query, + }); +} +// 查询微生物报告 +export function reportMedList(query?: Object) { + return request({ + url: '/report/MedList', + method: 'post', + data: query, + }); +} +// 查询微生物报告 +export function reportFsresult(query?: Object) { + return request({ + url: '/report/fsresult', + method: 'post', + data: query, + }); +} +// 打印机插件检查 +export function printcheck(query?: Object) { + return request({ + url: '/zyreq/printcheck', + method: 'get', + params: query, + }); +} +// 打印机插件设置 +export function printsetup(query?: Object) { + return request({ + url: '/zyreq/printsetup', + method: 'get', + params: query, + }); +} +// 取消采样 +export function cancelExecSQD(query?: Object) { + return request({ + url: '/zyreq/cancelExecSQD', + method: 'post', + data: query, + }); +} + diff --git a/src/api/liswork/xtwh/configdictApi.ts b/src/api/liswork/xtwh/configdictApi.ts new file mode 100644 index 0000000..1c87a87 --- /dev/null +++ b/src/api/liswork/xtwh/configdictApi.ts @@ -0,0 +1,46 @@ +//参数设置字典 +// @ts-ignore +import request from '@/utils/request' + +// 查询字典列表 +export function listconfigdict(params:any) { + return request({ + url: '/configdict/list', + method: 'get', + params + }) +} + +// 查询字典详细 +export function getconfigdict(id:number) { + return request({ + url: `/configdict/${id}`, + method: 'get' + }) +} + +// 新增字典 +export function addconfigdict(params:any) { + return request({ + url: '/configdict', + method: 'post', + data:params + }) +} + +// 修改字典 +export function updateconfigdict(params:any) { + return request({ + url: '/configdict', + method: 'put', + data:params + }) +} + +// 删除字典 +export function delconfigdict(id:any) { + return request({ + url: `/configdict/${id}`, + method: 'delete' + }) +} diff --git a/src/api/login.ts b/src/api/login.ts index b2244f8..37eeaa3 100644 --- a/src/api/login.ts +++ b/src/api/login.ts @@ -20,6 +20,15 @@ export function login(username: string, password: string, code: string, uuid: st }) } +// 单点登录 +export function loginAnonymous(data: { username: string; yljg: string }): Promise { + return request({ + url: '/loginAnonymous', + method: 'post', + data: data + }) +} + // 注册方法 export function register(data: SysRegister): Promise { return request({ diff --git a/src/api/mzcx/cydj.ts b/src/api/mzcx/cydj.ts new file mode 100644 index 0000000..4cc8470 --- /dev/null +++ b/src/api/mzcx/cydj.ts @@ -0,0 +1,58 @@ +import request from '@/utils/request' + +// 查询采样登记列表 +export function querySQD(query: Object) { + return request({ + url: '/mzcx/querySQD', + method: 'get', + params: query + }) +} +// 查询采样登记列表 +export function printBarcode(query: Object) { + return request({ + url: '/mzcx/printBarcode', + method: 'get', + params: query + }) +} +export function printBarcodeall(data: Object) { + return request({ + url: '/mzcx/printBarcode', + method: 'post', + data: data + }) +} +// 查询病人列表 +export function queryPatList() { + return request({ + url: '/mzcx/queryPatList', + method: 'get' + }) +} + +// 打印回单 +export function printBackpaper(data: Object) { + return request({ + url: '/mzcx/printBackpaper', + method: 'post', + data: data + }) +} + +// 修改采样登记 +export function updateReqmain(data: Object) { + return request({ + url: '/system/reqmain', + method: 'put', + data: data + }) +} + +// 删除采样登记 +export function delReqmain(sqh: string) { + return request({ + url: '/system/reqmain/' + sqh, + method: 'delete' + }) +} diff --git a/src/api/mzcx/index.ts b/src/api/mzcx/index.ts new file mode 100644 index 0000000..ef65ab3 --- /dev/null +++ b/src/api/mzcx/index.ts @@ -0,0 +1,155 @@ +//@ts-ignore js语法检查忽略 +import request from '@/utils/request'; + + +// 查询条码类别 +export function feeitemclassList(query?: Object) { + return request({ + url: 'feeitemclass/query', + method: 'get', + params: query, + }); +} +// 报告领取规则 +export function rptgetrules(query?: Object) { + return request({ + url: '/rptgetrule/query', + method: 'get', + params: query, + }); +} +// 新增条码类别 +export function feeitemclassAdd(query?: Object) { + return request({ + url: '/feeitemclass/add', + method: 'post', + data: query, + }); +} +// 修改条码类别 +export function feeitemclassUpdate(query?: Object) { + return request({ + url: '/feeitemclass/update', + method: 'post', + data: query, + }); +} +// 删除条码类别 +export function feeitemclassDel(query?: Object) { + return request({ + url: '/feeitemclass/del', + method: 'delete', + params: query, + }); +} + + + + +// 收费项目维护列表 +export function xmfeeList(query?: Object) { + return request({ + url: 'xmfee/query', + method: 'get', + params: query, + }); +} +// 收费项目新增 +export function xmfeeadd(query?: Object) { + return request({ + url: 'xmfee/addXmfee', + method: 'post', + data: query, + }); +} +// 收费项目修改 +export function xmfeeUpdate(query?: Object) { + return request({ + url: 'xmfee/update', + method: 'post', + data: query, + }); +} +// 收费项目删除 +export function xmfeeDel(query?: Object) { + return request({ + url: 'xmfee/del', + method: 'delete', + params: query, + }); +} + + + +// 报告领取规则维护列表 +export function rptgetruleList(query?: Object) { + return request({ + url: 'rptgetrule/query', + method: 'get', + params: query, + }); +} +// 报告领取规则明细列表 +export function rptgetruleDetail(query?: Object) { + return request({ + url: 'rptgetrule/queryDetail', + method: 'get', + params: query, + }); +} +// 报告领取规则新增 +export function rptgetruleadd(query?: Object) { + return request({ + url: 'rptgetrule/add', + method: 'post', + data: query, + }); +} +// 报告领取规则修改 +export function rptgetruleUpdate(query?: Object) { + return request({ + url: 'rptgetrule/update', + method: 'post', + data: query, + }); +} +// 报告领取规则删除 +export function rptgetruleDel(query?: Object) { + return request({ + url: 'rptgetrule/del', + method: 'delete', + params: query, + }); +} +// 报告领取规则明细删除 +export function rptgetruleDelDetail(query?: Object) { + return request({ + url: 'rptgetrule/delDetail', + method: 'delete', + params: query, + }); +} +// 查询条码类别与项目对照 +export function feeitemvsList(query?: Object) { + return request({ + url: '/feeitemvsclass/query', + method: 'get', + params: query, + }); +} +// 保存对照的项目 +export function feeitemvAdd(query?: Object) { + return request({ + url: '/feeitemvsclass/add', + method: 'post', + data: query, + }); +} +// 保存对照的项目 +export function feeitemvDel(query?: Object) { + return request({ + url: '/feeitemvsclass/del', + method: 'delete', + params: query, + }); +} \ No newline at end of file diff --git a/src/api/regional/dict/diagnosis.js b/src/api/regional/dict/diagnosis.js new file mode 100644 index 0000000..3c2f72d --- /dev/null +++ b/src/api/regional/dict/diagnosis.js @@ -0,0 +1,44 @@ +import request from '@/utils/request' + +// 查询诊断列表 +export function listdiagnosis(query) { + return request({ + url: '/transitdict/diagnosis/list', + method: 'get', + params: query + }) +} + +// 查询诊断详细 +export function getdiagnosis(diagnosisId) { + return request({ + url: '/transitdict/diagnosis/' + diagnosisId, + method: 'get' + }) +} + +// 新增诊断 +export function adddiagnosis(data) { + return request({ + url: '/transitdict/diagnosis', + method: 'post', + data: data + }) +} + +// 修改诊断 +export function updatediagnosis(data) { + return request({ + url: '/transitdict/diagnosis', + method: 'put', + data: data + }) +} + +// 删除诊断 +export function deldiagnosis(diagnosisId) { + return request({ + url: '/transitdict/diagnosis/' + diagnosisId, + method: 'delete' + }) +} diff --git a/src/api/regional/dict/hospital.js b/src/api/regional/dict/hospital.js new file mode 100644 index 0000000..797dfd6 --- /dev/null +++ b/src/api/regional/dict/hospital.js @@ -0,0 +1,44 @@ +import request from '@/utils/request' + +// 查询医疗机构列表 +export function listhospital(query) { + return request({ + url: '/transitdict/hospital/list', + method: 'get', + params: query + }) +} + +// 查询医疗机构详细 +export function gethospital(hospitalId) { + return request({ + url: '/transitdict/hospital/' + hospitalId, + method: 'get' + }) +} + +// 新增医疗机构 +export function addhospital(data) { + return request({ + url: '/transitdict/hospital', + method: 'post', + data: data + }) +} + +// 修改医疗机构 +export function updatehospital(data) { + return request({ + url: '/transitdict/hospital', + method: 'put', + data: data + }) +} + +// 删除医疗机构 +export function delhospital(hospitalId) { + return request({ + url: '/transitdict/hospital/' + hospitalId, + method: 'delete' + }) +} diff --git a/src/api/regional/dict/itemclass.js b/src/api/regional/dict/itemclass.js new file mode 100644 index 0000000..44b6fa3 --- /dev/null +++ b/src/api/regional/dict/itemclass.js @@ -0,0 +1,44 @@ +import request from '@/utils/request' + +// 查询诊断列表 +export function listitemclass(query) { + return request({ + url: '/transitdict/itemclass/list', + method: 'get', + params: query + }) +} + +// 查询诊断详细 +export function getitemclass(itemclassId) { + return request({ + url: '/transitdict/itemclass/' + itemclassId, + method: 'get' + }) +} + +// 新增诊断 +export function additemclass(data) { + return request({ + url: '/transitdict/itemclass', + method: 'post', + data: data + }) +} + +// 修改诊断 +export function updateitemclass(data) { + return request({ + url: '/transitdict/itemclass', + method: 'put', + data: data + }) +} + +// 删除诊断 +export function delitemclass(itemclassId) { + return request({ + url: '/transitdict/itemclass/' + itemclassId, + method: 'delete' + }) +} diff --git a/src/api/regional/dict/regdict.js b/src/api/regional/dict/regdict.js new file mode 100644 index 0000000..57c3ffb --- /dev/null +++ b/src/api/regional/dict/regdict.js @@ -0,0 +1,44 @@ +import request from '@/utils/request' + +// 查询字典列表 +export function listregdict(query) { + return request({ + url: '/transitdict/regdict/list', + method: 'get', + params: query + }) +} + +// 查询字典详细 +export function getregdict(regdictId) { + return request({ + url: '/transitdict/regdict/' + regdictId, + method: 'get' + }) +} + +// 新增字典 +export function addregdict(data) { + return request({ + url: '/transitdict/regdict', + method: 'post', + data: data + }) +} + +// 修改字典 +export function updateregdict(data) { + return request({ + url: '/transitdict/regdict', + method: 'put', + data: data + }) +} + +// 删除字典 +export function delregdict(regdictId) { + return request({ + url: '/transitdict/regdict/' + regdictId, + method: 'delete' + }) +} diff --git a/src/api/regional/index.ts b/src/api/regional/index.ts new file mode 100644 index 0000000..9b302ea --- /dev/null +++ b/src/api/regional/index.ts @@ -0,0 +1,59 @@ +// @ts-ignore +import request from '@/utils/request' + +// 获取流转数据 +export function querySample(query?: Object) { + return request({ + url: '/transit/querySample', + method: 'get', + params: query + }) +} +// 获取未签收的标本 +export function querySampleSign(query?: Object) { + return request({ + url: '/transit/querySampleSign', + method: 'get', + params: query + }) +} +// 签收标本 +export function sampleSign(query?: Object) { + return request({ + url: '/transit/sampleSign', + method: 'post', + data: query + }) +} +// 退回的标本 +export function querySampleSignBack(query?: Object) { + return request({ + url: '/transit/querySampleSignBack', + 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/assets/images/xjt.png b/src/assets/images/xjt.png new file mode 100644 index 0000000..c641ad5 Binary files /dev/null and b/src/assets/images/xjt.png differ diff --git a/src/assets/images/yjt.png b/src/assets/images/yjt.png new file mode 100644 index 0000000..0aec41f Binary files /dev/null and b/src/assets/images/yjt.png differ diff --git a/src/router/index.ts b/src/router/index.ts index 5b89721..2541e79 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -47,6 +47,12 @@ export const constantRoutes = [ component: () => import('@/views/register.vue'), hidden: true }, + // 大屏 + { + path: '/regional/statistics/overview', + component: () => import('@/views/regional/statistics/overview/index.vue'), + hidden: true + }, { path: "/:pathMatch(.*)*", component: () => import('@/views/error/404.vue'), diff --git a/src/store/modules/printStore.ts b/src/store/modules/printStore.ts new file mode 100644 index 0000000..f410c28 --- /dev/null +++ b/src/store/modules/printStore.ts @@ -0,0 +1,36 @@ +// 打印状态管理 +import { defineStore } from 'pinia' + +export const usePrintStore = defineStore('printStore', { + state: () => ({ + isConnected: false, // 存储连接状态 + clientInfo: null, // 存储客户端信息 + printerList: [] as any[], // 存储打印机列表 + defaultPrinter: '' as string, // 存储默认打印机名称 + }), + actions: { + setConnected(status: boolean) { + this.isConnected = status + }, + setClientInfo(info: any) { + this.clientInfo = info + }, + setPrinterList(list: any[]) { + this.printerList = list + }, + + setDefaultPrinter(printerName: string) { + this.defaultPrinter = printerName + } + }, + + // 持久化配置 + persist: { + // 指定要持久化的状态字段 + pick: ['defaultPrinter',], + // 可选配置:自定义存储键名(默认是store的id) + // key: 'common_store', + // 可选配置:指定存储位置(默认是localStorage 也可以用sessionStorage) + storage: localStorage, + } +}) \ No newline at end of file diff --git a/src/store/modules/user.ts b/src/store/modules/user.ts index 9ff4a82..ee0e104 100644 --- a/src/store/modules/user.ts +++ b/src/store/modules/user.ts @@ -1,6 +1,6 @@ import router from '@/router' import { ElMessageBox } from 'element-plus' -import { login, logout, getInfo } from '@/api/login' +import { login, logout, getInfo, loginAnonymous } from '@/api/login' import { getToken, setToken, removeToken } from '@/utils/auth' import { isHttp, isEmpty } from "@/utils/validate" import defAva from '@/assets/images/profile.jpg' @@ -28,6 +28,24 @@ const useUserStore = defineStore( permissions: [] }), actions: { + // 单点登录 + loginAnonymous(data: { name: string; yljg: string }) { + return new Promise((resolve, reject) => { + loginAnonymous({ + username: data.name, + yljg: data.yljg + }).then(res => { + if (res.code == 200) { + setToken(res.token) + this.token = res.token + resolve(true) + } + + }).catch(error => { + reject(error) + }) + }) + }, // 登录 login(userInfo: { username: string; password: string; code: string; uuid: string }) { const username = userInfo.username.trim() @@ -64,16 +82,16 @@ const useUserStore = defineStore( this.nickName = user.nickName || '' this.avatar = avatar /* 初始密码提示 */ - if(res.isDefaultModifyPwd) { - ElMessageBox.confirm('您的密码还是初始密码,请修改密码!', '安全提示', { confirmButtonText: '确定', cancelButtonText: '取消', type: 'warning' }).then(() => { + if (res.isDefaultModifyPwd) { + ElMessageBox.confirm('您的密码还是初始密码,请修改密码!', '安全提示', { confirmButtonText: '确定', cancelButtonText: '取消', type: 'warning' }).then(() => { router.push({ name: 'Profile', params: { activeTab: 'resetPwd' } }) - }).catch(() => {}) + }).catch(() => { }) } /* 过期密码提示 */ - if(!res.isDefaultModifyPwd && res.isPasswordExpired) { - ElMessageBox.confirm('您的密码已过期,请尽快修改密码!', '安全提示', { confirmButtonText: '确定', cancelButtonText: '取消', type: 'warning' }).then(() => { + if (!res.isDefaultModifyPwd && res.isPasswordExpired) { + ElMessageBox.confirm('您的密码已过期,请尽快修改密码!', '安全提示', { confirmButtonText: '确定', cancelButtonText: '取消', type: 'warning' }).then(() => { router.push({ name: 'Profile', params: { activeTab: 'resetPwd' } }) - }).catch(() => {}) + }).catch(() => { }) } resolve(res) }).catch(error => { diff --git a/src/utils/printHelper.ts b/src/utils/printHelper.ts new file mode 100644 index 0000000..88ae907 --- /dev/null +++ b/src/utils/printHelper.ts @@ -0,0 +1,50 @@ +/** + * @file printHelper.ts 检查打印服务连接状态 + * @author: w + * @since: 2026-01-26 + */ + +import { ElMessageBox, ElMessage } from 'element-plus' +import { printcheck } from '@/api/checkCode/index' +// @ts-ignore +import Download from '@/plugins/download' + + +export const checkPrintService = async (): Promise => { //连接成功返回true,失败返回false + try { + const res = await printcheck() + if (res.code == 0) { + return true + } else { + await showPrintServiceError(res.msg) + return false + } + } catch (error) { + console.error('打印服务检查失败:', error) + await showPrintServiceError('打印服务连接异常') + return false + } +} + + +export const showPrintServiceError = async (msg: string) => { + // 挂载downExe方法到window,供提示框内的onclick调用 + if (!(window as any).downExe) { + (window as any).downExe = () => { + Download.name('lisprintsetup.exe', false) + } + } + + await ElMessageBox.alert( + `${msg}!
请确保目标服务器已下载安装 并运行打印服务!`, + "客户端未连接", + { + dangerouslyUseHTMLString: true, + } + ) +} + +//触发打印服务安装包下载 +export const downloadPrintSetup = () => { + Download.name('lisprintsetup.exe', false) +} \ No newline at end of file diff --git a/src/views/index.vue b/src/views/index.vue index acf6f07..7deb6f9 100644 --- a/src/views/index.vue +++ b/src/views/index.vue @@ -1,1168 +1,12 @@ - - - + \ No newline at end of file diff --git a/src/views/liswork/Issueorder/index.vue b/src/views/liswork/Issueorder/index.vue index 8ac701d..6ebd461 100644 --- a/src/views/liswork/Issueorder/index.vue +++ b/src/views/liswork/Issueorder/index.vue @@ -1,7 +1,7 @@ /** * @file index.vue 科内开单 * @author: w -* @since: 2026-03-02 +* @since: 2026-03-09 */