From 375f509beeeceb55a49a6e1668bf2aee3d20d4e8 Mon Sep 17 00:00:00 2001 From: wuyy Date: Mon, 9 Mar 2026 18:04:16 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E6=95=B4=E5=90=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/checkCode/index.ts | 126 ++ src/api/liswork/xtwh/configdictApi.ts | 46 + src/api/login.ts | 9 + src/api/mzcx/cydj.ts | 58 + src/api/mzcx/index.ts | 155 +++ src/api/regional/dict/diagnosis.js | 44 + src/api/regional/dict/hospital.js | 44 + src/api/regional/dict/itemclass.js | 44 + src/api/regional/dict/regdict.js | 44 + src/api/regional/index.ts | 59 + src/assets/images/xjt.png | Bin 0 -> 1767 bytes src/assets/images/yjt.png | Bin 0 -> 1135 bytes src/router/index.ts | 6 + src/store/modules/printStore.ts | 36 + src/store/modules/user.ts | 32 +- src/utils/printHelper.ts | 50 + src/views/index.vue | 1164 +--------------- src/views/liswork/Issueorder/index.vue | 32 +- .../liswork/xtwh/components/DynamicInput.vue | 441 ++++++ src/views/liswork/xtwh/configdict/index.vue | 365 +++++ src/views/liswork/xtwh/localconfig/index.vue | 231 ++++ src/views/regional/circulation/bbcx/index.vue | 267 ++++ src/views/regional/circulation/bbqs/index.vue | 249 ++++ src/views/regional/circulation/bbth/index.vue | 223 +++ .../circulation/components/OutPatList.vue | 168 +++ src/views/regional/circulation/mzcy/index.vue | 543 ++++++++ src/views/regional/circulation/sjdj/index.vue | 255 ++++ src/views/regional/circulation/zycy/index.vue | 802 +++++++++++ src/views/regional/dict/diagnosis/index.vue | 228 +++ src/views/regional/dict/hospital/index.vue | 227 +++ src/views/regional/dict/item/index.vue | 11 + src/views/regional/dict/itemclass/index.vue | 274 ++++ src/views/regional/dict/itemvs/index.vue | 11 + src/views/regional/dict/regdict/index.vue | 238 ++++ src/views/regional/dict/sampletype/index.vue | 11 + .../inspectionReport/report/index.vue | 1015 ++++++++++++++ src/views/regional/regConfig/index.vue | 238 ++++ src/views/regional/statistics/bbtj/index.vue | 223 +++ src/views/regional/statistics/fytj/index.vue | 188 +++ .../regional/statistics/overview/css/icon.css | 1225 +++++++++++++++++ .../statistics/overview/css/index.css | 510 +++++++ .../statistics/overview/css/public.css | 1063 ++++++++++++++ .../statistics/overview/fonts/DIN-Bold.otf | Bin 0 -> 28640 bytes .../statistics/overview/fonts/DIN-Light.otf | Bin 0 -> 27580 bytes .../statistics/overview/fonts/DIN-Medium.otf | Bin 0 -> 27828 bytes .../statistics/overview/images/bg2.jpg | Bin 0 -> 210564 bytes .../statistics/overview/images/border_bg.jpg | Bin 0 -> 20837 bytes .../overview/images/title_border_bg.png | Bin 0 -> 2799 bytes .../overview/images/title_left_bg.png | Bin 0 -> 19456 bytes .../overview/images/title_right_bg.png | Bin 0 -> 2895 bytes .../regional/statistics/overview/index.vue | 524 +++++++ src/views/system/menu/index.vue | 684 +++++---- vite.config.ts | 2 +- 53 files changed, 10601 insertions(+), 1564 deletions(-) create mode 100644 src/api/checkCode/index.ts create mode 100644 src/api/liswork/xtwh/configdictApi.ts create mode 100644 src/api/mzcx/cydj.ts create mode 100644 src/api/mzcx/index.ts create mode 100644 src/api/regional/dict/diagnosis.js create mode 100644 src/api/regional/dict/hospital.js create mode 100644 src/api/regional/dict/itemclass.js create mode 100644 src/api/regional/dict/regdict.js create mode 100644 src/api/regional/index.ts create mode 100644 src/assets/images/xjt.png create mode 100644 src/assets/images/yjt.png create mode 100644 src/store/modules/printStore.ts create mode 100644 src/utils/printHelper.ts create mode 100644 src/views/liswork/xtwh/components/DynamicInput.vue create mode 100644 src/views/liswork/xtwh/configdict/index.vue create mode 100644 src/views/liswork/xtwh/localconfig/index.vue create mode 100644 src/views/regional/circulation/bbcx/index.vue create mode 100644 src/views/regional/circulation/bbqs/index.vue create mode 100644 src/views/regional/circulation/bbth/index.vue create mode 100644 src/views/regional/circulation/components/OutPatList.vue create mode 100644 src/views/regional/circulation/mzcy/index.vue create mode 100644 src/views/regional/circulation/sjdj/index.vue create mode 100644 src/views/regional/circulation/zycy/index.vue create mode 100644 src/views/regional/dict/diagnosis/index.vue create mode 100644 src/views/regional/dict/hospital/index.vue create mode 100644 src/views/regional/dict/item/index.vue create mode 100644 src/views/regional/dict/itemclass/index.vue create mode 100644 src/views/regional/dict/itemvs/index.vue create mode 100644 src/views/regional/dict/regdict/index.vue create mode 100644 src/views/regional/dict/sampletype/index.vue create mode 100644 src/views/regional/inspectionReport/report/index.vue create mode 100644 src/views/regional/regConfig/index.vue create mode 100644 src/views/regional/statistics/bbtj/index.vue create mode 100644 src/views/regional/statistics/fytj/index.vue create mode 100644 src/views/regional/statistics/overview/css/icon.css create mode 100644 src/views/regional/statistics/overview/css/index.css create mode 100644 src/views/regional/statistics/overview/css/public.css create mode 100644 src/views/regional/statistics/overview/fonts/DIN-Bold.otf create mode 100644 src/views/regional/statistics/overview/fonts/DIN-Light.otf create mode 100644 src/views/regional/statistics/overview/fonts/DIN-Medium.otf create mode 100644 src/views/regional/statistics/overview/images/bg2.jpg create mode 100644 src/views/regional/statistics/overview/images/border_bg.jpg create mode 100644 src/views/regional/statistics/overview/images/title_border_bg.png create mode 100644 src/views/regional/statistics/overview/images/title_left_bg.png create mode 100644 src/views/regional/statistics/overview/images/title_right_bg.png create mode 100644 src/views/regional/statistics/overview/index.vue 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 0000000000000000000000000000000000000000..c641ad5daec3d6053164c3c234b4731a20a595e7 GIT binary patch literal 1767 zcmeH|`#0Nn7{}=vmyoSPqq?+ZWzEqc9H(MMq>Z8O>Q>=|Vm58vGMCLIJt=M7iflqA zr7hziXla8*rB#w3zU`UIW>iWd->SLIHA|N7zS;k<-}=Mn^Ld`$Gb5`KaAwaPpZUT2;LR}hMr?Yf9zZUZzd2|!bmF-__BMfT z9C(QKKJoo{{)b1=Ir=6Ow5t~i|Je_J^0jd0)pfjV<$k`CvduGKvD>;bIxjPTvVL=O zJR|DaJD&s5QG>M>ug}gBavqk~hZZHaO{^)y0|Yc7MS5EN^UGhel$7Ic<(*S4T=SW= z<+hSE46V2mR~7ts8uaJFQeaD~0b><_dNH@Q&*v7h97_r7odW|$ti$q%T`Er{-cTY4 zuen{aM=qoNNW<23=krQ_qo8OI)%DJDnu;V1K1wm9m{8WOAELHdH9GZna!JDQ(jyktXYtrmd&u^b*?6DTt_BJO&w$KtgJ9?^ zw>xmIlO~vv7W=uTElIxb70 z9_#Hs>Mkqb^^Wt?-irHli#e%!%?c-b@OUX5^E_6a z0JwgLa1I{ZvZJnTVnzCqY?|~QiyCmKZy{o$YwDG1jGglZGW|h|B}&XsdnWFqi#}>@ z%~O}XNB|Cd+zgy_fj*N*nITxjGL3`_R^*%X6HEY}Cw>+3LiLI6DEn-K$e7Avwxd9b zd`=Nm!Sb`3iGj)DfoOMGabLSDB(QJ*Z7sWoji%W&W9r&vtcX5c1B+C95Yb#2jKFh2 zcG0cm5}XsYUivRllZuc-fs4g;5iNq zGY7QEN_c|jV}W)O8USw&Yt*jSN=N_&>>97IS?%Ot(W_?PWVYg@ zt3pAhfq-qv;h7*S)RmxBy@X**%->XSKD zE8~6TzSO=3I)amRQG1yBbdlvxgWi4F77BF26sDDH)xsxyF0%Y95v5Ya7O;rU3tR`!a|EkEsHSwnJoKFMe;v|dG!@qAgMZDPUC%_T&i_eAs z)nb;J)30Ba-ut%a-+qUf`Hdx(Kx-Sl^BYTSz>MpSFAly*4T}6_*|0;8`DHQCZA{b8 zF}>!cfChA;afcKwr{sV|?iJetL$^3*dG zl2*MhtEMy;#MEh=GD!F( z<8Y_1v1ZnpWve~EE_l!0>+s+apUa`8eyh4Ca9-r@=we;OuGtN=3h0oD4x45I!}UOF zvcgPXEl_65QK%}|G$&-5ow`6e)5$Wh)2BNa%@3LOg4IQKZf$G}^Ul+?L6PS_Q0 literal 0 HcmV?d00001 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 */