diff --git a/src/api/liswork/xmmb/index.ts b/src/api/liswork/xmmb/index.ts index f03e9ca..153f6bb 100644 --- a/src/api/liswork/xmmb/index.ts +++ b/src/api/liswork/xmmb/index.ts @@ -51,4 +51,100 @@ export function deleteDetail(query?: Object) { data: query, }); } +// 查询项目组合 +export function xmCompQuery(query?: Object) { + return request({ + url: '/xmComp/query', + method: 'get', + params: query, + }); +} +// 增加项目组合 +export function addxmComp(query?: Object) { + return request({ + url: '/xmComp/add', + method: 'post', + data: query, + }); +} +// 修改项目组合 +export function editxmComp(query?: Object) { + return request({ + url: '/xmComp/update', + method: 'post', + data: query, + }); +} +// 删除项目组合 +export function delxmComp(query?: Object) { + return request({ + url: '/xmComp/del', + method: 'get', + params: query, + }); +} +// 查询明细数据 +export function queryDetailComp(query?: Object) { + return request({ + url: '/xmComp/queryDetail', + method: 'get', + params: query, + }); +} +// 删除明细数据 +export function deleteDetailComp(query?: Object) { + return request({ + url: '/xmComp/deleteDetail', + method: 'post', + data: query, + }); +} +// 查询仪器组合列表 +export function queryInstrgroupList(query?: Object) { + return request({ + url: '/instrgroup/query', + method: 'get', + params: query, + }); +} +// 新增仪器组合 +export function addInstrgroup(query?: Object) { + return request({ + url: '/instrgroup/add', + method: 'post', + data: query, + }); +} +// 修改仪器组合 +export function updateInstrgroup(query?: Object) { + return request({ + url: '/instrgroup/update', + method: 'post', + data: query, + }); +} +// 删除仪器组合 +export function deleteInstrgroup(query?: Object) { + return request({ + url: '/instrgroup/delete', + method: 'get', + params: query, + }); +} +// 查询明细数据 +export function queryDetailInstrgroup(query?: Object) { + return request({ + url: '/instrgroup/queryDetail', + method: 'get', + params: query, + }); +} +// 删除明细数据 +export function delDetailInstrgroup(query?: Object) { + return request({ + url: '/instrgroup/deleteDetail', + method: 'post', + data: query, + }); +} diff --git a/src/api/liswork/xtwh/StatsparameterApi.ts b/src/api/liswork/xtwh/StatsparameterApi.ts index c302caa..feb7d95 100644 --- a/src/api/liswork/xtwh/StatsparameterApi.ts +++ b/src/api/liswork/xtwh/StatsparameterApi.ts @@ -62,4 +62,20 @@ export function getstatsQuery(params: any) { data: params }) } +// 打印模板数据 +export function printTemplate(params: any) { + return request({ + url: '/stats/print', + method: 'post', + data: params + }) +} +// 导出excel +export function exportTemplate(params: any) { + return request({ + url: '/stats/exportExcel', + method: 'post', + data: params + }) +} diff --git a/src/assets/styles/index.scss b/src/assets/styles/index.scss index 7c5b221..a95fbaf 100644 --- a/src/assets/styles/index.scss +++ b/src/assets/styles/index.scss @@ -468,4 +468,49 @@ aside { border-bottom: 1px solid #ccc !important; background-color: #eff6fa !important; } +} + + +.el-input.is-disabled .el-input__wrapper { + background-color: #dee1e5 !important; +} + +.el-select__wrapper.is-disabled { + background-color: #dee1e5 !important; +} + +.el-select__wrapper.is-disabled .el-select__selected-item { + color: #606266 !important; +} + +.el-date-editor.is-disabled, +.el-date-editor.is-disabled .el-input__wrapper { + background-color: #dee1e5 !important; +} + +.el-radio__input.is-disabled+span.el-radio__label, +.el-checkbox.is-disabled { + color: #606266 !important; +} + +.el-radio__input.is-disabled.is-checked .el-radio__inner { + background: #1f6dd3; + border-color: #1f6dd3; + + &::after { + background: #dee1e5; + + } +} + +.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner { + background: #00a5ff; + + &::after { + border-color: #fff; + } +} + +.el-checkbox__input.is-disabled+span.el-checkbox__label { + color: #606266 !important; } \ No newline at end of file diff --git a/src/assets/styles/ruoyi.scss b/src/assets/styles/ruoyi.scss index ffab150..2c6cd84 100644 --- a/src/assets/styles/ruoyi.scss +++ b/src/assets/styles/ruoyi.scss @@ -90,17 +90,15 @@ color: inherit; } - .el-form .el-form-item__label { - font-weight: 700; - } + .el-form--inline .el-form-item { margin-right: .9375rem; } .el-form-item__label { - font-weight: 400; - font-size: .875rem; + // font-weight: 700; + // font-size: 14px; color: #08355E; } diff --git a/src/utils/classCom.ts b/src/utils/classCom.ts index 7b05eb4..40b75ec 100644 --- a/src/utils/classCom.ts +++ b/src/utils/classCom.ts @@ -82,29 +82,56 @@ function printPDF(pdfUrl: string) { }; } -// 打印base64 pdf -function printBase64PDF(base64: string) { - const blob = base64ToBlob(base64); - const pdfUrl = URL.createObjectURL(blob); - const iframe = document.createElement('iframe'); - iframe.style.display = 'none'; - iframe.src = pdfUrl; - document.body.appendChild(iframe); - iframe.onload = () => { - iframe.contentWindow?.print(); - setTimeout(() => URL.revokeObjectURL(pdfUrl), 1000); // 释放内存 - }; -} - -function base64ToBlob(base64: string) { +/** + * base64转blob + * @param base64 纯base64,不带data前缀 + * @param mimeType mime类型 + */ +function base64ToBlob(base64: string, mimeType: string) { const binaryString = atob(base64.replace(/[\n\r]/g, '')); const bytes = new Uint8Array(binaryString.length); for (let i = 0; i < binaryString.length; i++) { bytes[i] = binaryString.charCodeAt(i); } - return new Blob([bytes], { type: 'application/pdf' }); + return new Blob([bytes], { type: mimeType }); } +/** + * @param base64 base64字符串 + * @param type 可选,'pdf' | 'excel',不传默认 pdf + * @param fileName 可选,excel下载文件名 + */ +function printBase64PDF(base64: string, type: 'pdf' | 'excel' = 'pdf', fileName: string = '文件') { + if (type === 'pdf') { + // PDF打印逻辑 + const blob = base64ToBlob(base64, 'application/pdf'); + const pdfUrl = URL.createObjectURL(blob); + const iframe = document.createElement('iframe'); + iframe.style.display = 'none'; + iframe.src = pdfUrl; + document.body.appendChild(iframe); + iframe.onload = () => { + iframe.contentWindow?.print(); + setTimeout(() => { + URL.revokeObjectURL(pdfUrl); + iframe.remove(); // 修复原代码iframe残留dom + }, 1000); + }; + } else if (type === 'excel') { + // excel导出下载逻辑 + const blob = base64ToBlob(base64, 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); + const downloadUrl = URL.createObjectURL(blob); + const a = document.createElement('a'); + a.href = downloadUrl; + a.download = encodeURIComponent(fileName + '.xlsx'); + document.body.appendChild(a); + a.click(); + a.remove(); + URL.revokeObjectURL(downloadUrl); + } +} + + // 计算两个日期的天数差(支持带时分秒) const getDayDiff = (start: string, end: string): number => { const startTime = new Date(start).getTime(); diff --git a/src/views/liswork/xmmb/index.vue b/src/views/liswork/xmmb/index.vue index 02381cb..096922c 100644 --- a/src/views/liswork/xmmb/index.vue +++ b/src/views/liswork/xmmb/index.vue @@ -10,7 +10,7 @@ - + @@ -18,12 +18,14 @@
查询 新增 + 保存
- - - + + + @@ -34,66 +36,60 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- 保存 - 新增 - 删除 -
-
- - - - -
-
-
-
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ 新增明细 +
+
+ + + + + +
+
+ + \ No newline at end of file diff --git a/src/views/liswork/xtwh/statstemplate/data.vue b/src/views/liswork/xtwh/statstemplate/data.vue index 2dd4e89..7b728c5 100644 --- a/src/views/liswork/xtwh/statstemplate/data.vue +++ b/src/views/liswork/xtwh/statstemplate/data.vue @@ -84,6 +84,12 @@ + + + + @@ -149,22 +155,46 @@
- - - - - - - - - - - - - {{ dict.label }} - + + + 是 + 否 + + + + + + + + + + + + + + + + + + + + + + + + + + {{ dict.label }} + + + + + + + @@ -296,7 +326,7 @@ const queryParams = ref({ paramType: undefined, status: undefined, pageNum: 1, - pageSize: 17 + pageSize: 20 }); // 表单校验规则 diff --git a/src/views/liswork/xtwh/statstemplate/index.vue b/src/views/liswork/xtwh/statstemplate/index.vue index 35ae79e..9390fc2 100644 --- a/src/views/liswork/xtwh/statstemplate/index.vue +++ b/src/views/liswork/xtwh/statstemplate/index.vue @@ -35,10 +35,11 @@
- + - +