From 2eaa683a0c74a622cf98404c6220baab8c552d87 Mon Sep 17 00:00:00 2001
From: HanLong <404402223@qq.com>
Date: Thu, 16 Apr 2026 23:14:47 +0800
Subject: [PATCH] =?UTF-8?q?fix:[=E6=A8=A1=E6=9D=BF=E7=AE=A1=E7=90=86][PCR0?=
=?UTF-8?q?07]?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/lang/en/template/commonTemplate.js | 1 +
src/lang/zh/template/commonTemplate.js | 1 +
.../business/comps/template/comps/pcr/PCR007.vue | 84 +++++++++++++++++-----
3 files changed, 69 insertions(+), 17 deletions(-)
diff --git a/src/lang/en/template/commonTemplate.js b/src/lang/en/template/commonTemplate.js
index bb848f9..b9c46ee 100644
--- a/src/lang/en/template/commonTemplate.js
+++ b/src/lang/en/template/commonTemplate.js
@@ -57,6 +57,7 @@ export default {
addBtn: 'Add',
deleteBtn: 'Delete',
downloadTemplate: 'Download Template',
+ downloadTableData: 'Download Table',
importTemplate: 'Import Template',
// 错误提示
diff --git a/src/lang/zh/template/commonTemplate.js b/src/lang/zh/template/commonTemplate.js
index 48f7dc5..9f52319 100644
--- a/src/lang/zh/template/commonTemplate.js
+++ b/src/lang/zh/template/commonTemplate.js
@@ -58,6 +58,7 @@ export default {
saveBtn: '保存',
deleteBtn: '刪除',
downloadTemplate: '下载模板',
+ downloadTableData: '下载表格数据',
importTemplate: '导入模板',
// 错误提示
diff --git a/src/views/business/comps/template/comps/pcr/PCR007.vue b/src/views/business/comps/template/comps/pcr/PCR007.vue
index 40c32a4..951ec90 100644
--- a/src/views/business/comps/template/comps/pcr/PCR007.vue
+++ b/src/views/business/comps/template/comps/pcr/PCR007.vue
@@ -21,13 +21,16 @@
$t('template.common.downloadTemplate') }}
{{
$t('template.common.importTemplate')
- }}
+ }}
+ {{
+ $t('template.common.downloadTableData') }}
+
+ :showOperation="fillType === 'preFill'" fieldItemLabel="template.common.operationSteps"
+ @clickButton="handleClickButton">
deleteRow(rowIndex)">
@@ -53,19 +56,21 @@ import TableList from "@/components/Template/Table";
import Step from "@/components/Template/Step";
import templateMixin from "../../mixins/templateMixin.js";
import CustomTable from '@/components/Template/CustomTable.vue';
-import { isValueEmpty } from '@/utils/index';
+import { isValueEmpty, getStringWidth } from '@/utils/index';
import { getLatestSnArr } from '@/api/template';
import { EventBus } from "@/utils/eventBus";
import { volumeConverter } from "@/utils/volConverter";//体积单位转换
import { convertConcentration } from "@/utils/conConverter";//浓度单位转换
import SelectReagentDialog from '../../dialog/SelectReagentDialog.vue';
-import { getPCR007Config } from "../../formConfig/PCRTableConfig.js";
+import { getPCR007Config } from "../../formConfig/PCRTableConfig.js";
import TableOpertaion from "@/components/Template/operation/TableOpertaion.vue"
-import { addTj, uniqeResource, uniqeResourceOne, addDecimals,uniqeYqOne } from "@/utils/calUnitTools";
+import { addTj, uniqeResource, uniqeResourceOne, addDecimals, uniqeYqOne } from "@/utils/calUnitTools";
import ImportExcelDialog from '../../dialog/ImportExcelDialog'
import { getBalance } from '@/utils/tpph.js';
+import * as XLSX from 'xlsx'
+
export default {
- name: "PCR005",
+ name: "PCR007",
components: { BaseInfoFormPackage, LineLabel, TableList, Step, CustomTable, TableOpertaion, SelectReagentDialog, ImportExcelDialog },
mixins: [templateMixin],
props: {
@@ -192,9 +197,54 @@ export default {
},
mounted() {
const formData = this.getFormDataByTemplateData();
+
this.onHandleTableBlur()
},
methods: {
+ downloadTableData() {
+ this.$modal.loading()
+ let content = this.getFilledFormData();
+ var tabelStr =
+ '' +
+ '' +
+ '| ' + '样品名称' + ' | ' +
+ '' + '采集管重量' + content.headerSelectFields.cjgzlUnit + ' | ' +
+ '
'
+ let _datastr = ''
+ _.forEach(content.stepTableFormData, function (value) {
+ _datastr =
+ _datastr +
+ '' +
+ ' | ' +
+ value.ypmc +
+ ' | ' +
+ ' ' +
+ value.cjgzl +
+ ' | ' +
+ '
'
+ })
+ tabelStr = tabelStr + _datastr + ' '
+ // Worksheet名
+ var worksheet = this.formData.bdmc
+ var uri = 'data:application/vnd.ms-excel;base64,'
+ // 真正要导出(下载)的HTML模板
+ var exportTemplate = `
+
+
+
+ ${tabelStr}
+
+ `
+ var a = document.createElement('a')
+ a.download = worksheet + '.xls'
+ a.href = uri + window.btoa(unescape(encodeURIComponent(exportTemplate)))
+ a.click()
+ this.$modal.closeLoading()
+ },
downloadExcelTemplate() {
this.exportExcel(['样品名称', '样品初始浓采样前样品管试剂预计添加体积度'], 'PCR分析采集管称重记录表导入模板')
},
@@ -212,7 +262,7 @@ export default {
list.push({
ypmc: item[0],
cyqypgsjyjtjtj: item[1],
- id:this.getuuid(),
+ id: this.getuuid(),
})
})
this.$refs.stepTableRef.addRows(list)
@@ -256,11 +306,11 @@ export default {
//使用仪器
tmpYq.push(content.selectInfo_solution || formData.selectInfo_solution)
-
+
//使用的试剂、仪器
const stepResource = this.$refs.stepRef.getStepResource()
this.resourceTmp = uniqeResource(tmpResource, stepResource.sjResource || [])
- this.yqResourceTmp = uniqeYqOne([...stepResource.yqResource || [],...tmpYq])
+ this.yqResourceTmp = uniqeYqOne([...stepResource.yqResource || [], ...tmpYq])
return this.resourceTmp;
},
//保存
@@ -276,18 +326,18 @@ export default {
}
},
//第五步表格按钮点击
- async handleClickButton(e, rowIndex,colIndex,ee,data) {
- if(e==='targetDiluentVolumePrecision'){
+ async handleClickButton(e, rowIndex, colIndex, ee, data) {
+ if (e === 'targetDiluentVolumePrecision') {
const content = this.getFilledFormData()
- let formData = this.formData;
+ let formData = this.formData;
let qy = content.yqInfo_solution || formData.yqInfo_solution
let dw = content.headerSelectFields.cjgzlUnit
- let x = await getBalance({yq:qy,dw:dw})
- if(x && x.success){
- this.$refs.stepTableRef?.updateDataSourceByRowIndex(rowIndex, { cjgzl: x.value },{signData:data,updateFields:['cjgzl']});
- }else{
+ let x = await getBalance({ yq: qy, dw: dw })
+ if (x && x.success) {
+ this.$refs.stepTableRef?.updateDataSourceByRowIndex(rowIndex, { cjgzl: x.value }, { signData: data, updateFields: ['cjgzl'] });
+ } else {
this.$message.error(x.message || '称量失败')
}
}