From e11fe673c30bd68a635cd4164bf8083f8b5052b4 Mon Sep 17 00:00:00 2001
From: HanLong <404402223@qq.com>
Date: Tue, 20 Jan 2026 17:32:40 +0800
Subject: [PATCH] =?UTF-8?q?feat:[=E6=A8=A1=E6=9D=BF=E7=AE=A1=E7=90=86][?=
=?UTF-8?q?=E7=94=9F=E7=89=A9=E6=A0=B7=E5=93=81=E5=88=86=E6=9E=90=E6=96=B9?=
=?UTF-8?q?=E6=B3=95=E5=AD=A6=E6=A0=B7=E5=93=81=E5=88=B6=E5=A4=87=E8=A1=A8?=
=?UTF-8?q?=EF=BC=88Recovery=EF=BC=89]?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/lang/en/template/sp.js | 8 +-
src/lang/zh/template/sp.js | 8 +-
.../template/comps/sp/SWYPFXFFXYPZBB/Recovery.vue | 154 +++++++++++----------
.../formConfig/SWYPFXFFXYPZBBTableConfig.js | 117 ++++++++++++++++
4 files changed, 210 insertions(+), 77 deletions(-)
diff --git a/src/lang/en/template/sp.js b/src/lang/en/template/sp.js
index 485b0e7..6c1da02 100644
--- a/src/lang/en/template/sp.js
+++ b/src/lang/en/template/sp.js
@@ -31,7 +31,13 @@ export default {
sjryxql: 'Actual Solution Extraction Volume',
yjjzxql: 'Expected Blank Substrate Extraction Volume',
sjjzxql: 'Actual Blank Substrate Extraction Volume',
- hhwznd: 'Target Solution Concentration'
+ hhwznd: 'Target Solution Concentration',
+ xzgzy: 'Select Working Solution',
+ xzxsy: 'Select Diluent',
+ yjgzyxql: 'Expected Working Solution Extraction Volume',
+ sjgzyxql: 'Actual Working Solution Extraction Volume',
+ yjxsyxql: 'Expected Diluent Extraction Volume',
+ sjxsyxql: 'Actual Diluent Extraction Volume',
},
//生物样品分析方法学样品制备表(全血稳定)
sp010: {
diff --git a/src/lang/zh/template/sp.js b/src/lang/zh/template/sp.js
index 7d73819..11d39c5 100644
--- a/src/lang/zh/template/sp.js
+++ b/src/lang/zh/template/sp.js
@@ -30,7 +30,13 @@ export default {
sjryxql: '实际溶液吸取量',
yjjzxql: '预计基质吸取量',
sjjzxql: '实际基质吸取量',
- hhwznd: '化合物终浓度'
+ hhwznd: '化合物终浓度',
+ xzgzy: '选择工作液',
+ xzxsy: '选择稀释液',
+ yjgzyxql: '预计工作液吸取量',
+ sjgzyxql: '实际工作液吸取量',
+ yjxsyxql: '预计稀释液吸取量',
+ sjxsyxql: '实际稀释液吸取量',
},
//生物样品分析方法学样品制备表(全血稳定)
sp010: {
diff --git a/src/views/business/comps/template/comps/sp/SWYPFXFFXYPZBB/Recovery.vue b/src/views/business/comps/template/comps/sp/SWYPFXFFXYPZBB/Recovery.vue
index 2e6ca8f..d0e8f49 100644
--- a/src/views/business/comps/template/comps/sp/SWYPFXFFXYPZBB/Recovery.vue
+++ b/src/views/business/comps/template/comps/sp/SWYPFXFFXYPZBB/Recovery.vue
@@ -3,68 +3,48 @@

{{ formData.templateMc ||
- $t('template.sp.sp009.title') }}

+ $t('template.sp.sp009.title') }}

@@ -81,12 +61,12 @@ import Step from "@/components/Template/Step";
import templateMixin from "../../../mixins/templateMixin";
import CustomTable from '@/components/Template/CustomTable.vue';
import { getLatestSn } from '@/api/template';
-import {getSWYPFXFFXYPZBBTableConfig} from "../../../formConfig/SWYPFXFFXYPZBBTableConfig.js";
+import { getSWYPFXFFXYPZBBTableConfig, getSWYPFXFFXYPZBBTQHSLTableConfig } from "../../../formConfig/SWYPFXFFXYPZBBTableConfig.js";
import TableOpertaion from "@/components/Template/operation/TableOpertaion.vue"
export default {
name: "SWYPFXRYPZB",
- components: { BaseInfoFormPcakge, LineLabel, TableList, Step, CustomTable,TableOpertaion },
+ components: { BaseInfoFormPcakge, LineLabel, TableList, Step, CustomTable, TableOpertaion },
mixins: [templateMixin],
props: {
fillType: {
@@ -107,7 +87,6 @@ export default {
options: this.getDictOptions("business_cctj"),
otherCode: "storageConditionOther",
},
-
}
}
];
@@ -222,17 +201,41 @@ export default {
{
type: "step",
config: {
- jz1: {
- label: 'template.sp.sp009.xzjz',
- type: "span",
- label: 'template.common.storageConditionLabel',
+ jz: {
+ label: 'template.sp.sp008.xzjz',
+ type: "input",
fillType: "preFill",
- options: this.getDictOptions("business_cctj"),
- otherCode: "storageConditionOther",
+ subType: "clickable",
+ subKey: "subJz",
+ subFillType: "actFill",
+ maxlength: 20,
+ labelWidth: 80,
},
-
- jz: {
- label: 'template.sp.sp009.xzjz',
+ }
+ }
+ ]
+ },
+ rongyeStepFormConfig() {
+ return [
+ {
+ type: "step",
+ config: {
+ gzy: {
+ label: 'template.sp.sp009.xzgzy',
+ type: "input",
+ fillType: "preFill",
+ subType: "clickable",
+ subKey: "subSolution",
+ subFillType: "actFill",
+ maxlength: 20,
+ },
+ }
+ },
+ {
+ type: "step",
+ config: {
+ xsy: {
+ label: 'template.sp.sp009.xzxsy',
type: "input",
fillType: "preFill",
subType: "clickable",
@@ -240,14 +243,15 @@ export default {
subFillType: "actFill",
maxlength: 20,
},
-
}
},
-
]
},
tableStepColumns() {
- return getSWYPFXFFXYPZBBTableConfig(this);
+ return getSWYPFXFFXYPZBBTableConfig(this, 'business_sp_tqhsl', false);
+ },
+ rongyeTableStepColumns() {
+ return getSWYPFXFFXYPZBBTQHSLTableConfig(this, 'business_sp_tqhsl');
},
},
data() {
@@ -278,7 +282,7 @@ export default {
formData: {
immediate: true,
handler(v) {
- if(!v.targetCodeSn && this.fillType === "actFill"){
+ if (!v.targetCodeSn && this.fillType === "actFill") {
this.getCode();
}
}
@@ -287,36 +291,36 @@ export default {
methods: {
//点击表格单元格
handleClickable(col, rowIndex) {
- console.log("clickable",rowIndex, col)
- if(col.prop === "sjry"){
+ console.log("clickable", rowIndex, col)
+ if (col.prop === "sjry") {
//调用对应弹窗的方法;
}
- this.$refs.tableRef.updateDataSourceByRowIndex(rowIndex,{
+ this.$refs.tableRef.updateDataSourceByRowIndex(rowIndex, {
sjry: "我是填充进来的数据",
})
},
//获取目标溶液编号
- async getCode(){
+ async getCode() {
const result = await getLatestSn({
count: 1,
})
- if(result.code == 200){
- this.$refs.stepFormPackageRef.updateFormData("targetCodeSn",result.data)
+ if (result.code == 200) {
+ this.$refs.stepFormPackageRef.updateFormData("targetCodeSn", result.data)
}
},
//获取已填写的表单数据
- getFilledFormData(){
- return this.getFilledFormDataByRefs(["baseInfoRef", "storageConditionRef", "stepFormPackageRef", "tableRef","stepRef", "remarkRef"])
+ getFilledFormData() {
+ return this.getFilledFormDataByRefs(["baseInfoRef", "storageConditionRef", "stepFormPackageRef", "tableRef", "stepRef", "remarkRef"])
},
async getFormData() {
- let content = await this.validFormFields(["baseInfoRef", "storageConditionRef", "stepFormPackageRef","tableRef" ,"stepRef", "remarkRef"]);
+ let content = await this.validFormFields(["baseInfoRef", "storageConditionRef", "stepFormPackageRef", "tableRef", "stepRef", "remarkRef"]);
//生成resource
let tmpResource = []
debugger
//配置的试剂
tmpResource.push({
mc: content.targetName,
- bh: content.targetCode+content.targetCodeSn,
+ bh: content.targetCode + content.targetCodeSn,
ph: '',
nd: content.targetActConcentration + content.targetActConcentrationUnit,
source: 'ELN配制',
@@ -326,12 +330,12 @@ export default {
kc: content.targetActVolume,
kcdw: content.targetActVolumeUnit,
syl: null,
- syldw:content.targetActVolumeUnit,
- yxzq:content.effectivePeriod,
- yxzqdw:content.effectivePeriodUnit,
+ syldw: content.targetActVolumeUnit,
+ yxzq: content.effectivePeriod,
+ yxzqdw: content.effectivePeriodUnit,
})
//使用的试剂
- this.resource=tmpResource
+ this.resource = tmpResource
return content;
},
diff --git a/src/views/business/comps/template/formConfig/SWYPFXFFXYPZBBTableConfig.js b/src/views/business/comps/template/formConfig/SWYPFXFFXYPZBBTableConfig.js
index 6207f24..bca0667 100644
--- a/src/views/business/comps/template/formConfig/SWYPFXFFXYPZBBTableConfig.js
+++ b/src/views/business/comps/template/formConfig/SWYPFXFFXYPZBBTableConfig.js
@@ -104,3 +104,120 @@ export const getSWYPFXFFXYPZBBTableConfig = (
}
return arr
}
+
+// 提取回收率-溶液稀释
+export const getSWYPFXFFXYPZBBTQHSLTableConfig = (
+ $this,
+ selectKey,
+) => {
+ let arr = [
+ {
+ label: 'template.sp.sp008.bh',
+ prop: 'bh',
+ bodyType: 'select',
+ bodyOptions: $this.getDictOptions(selectKey),
+ bodySubType: 'span',
+ bodySubKey: 'bhCode',
+ bodyFillType: 'preFill',
+ width: 280
+ },
+ {
+ label: 'template.sp.sp008.ysry',
+ prop: 'ysry',
+ bodyType: 'input',
+ bodyFillType: 'preFill',
+ width: 280
+ },
+ {
+ label: 'template.sp.sp008.sjry',
+ prop: 'sjry',
+ bodyType: 'clickable',
+ bodyFillType: 'actFill',
+ width: 280
+ },
+ {
+ label: 'template.sp.sp008.yjryxql',
+ prop: 'yjryxql',
+ width: 320,
+ headerSelectKey: 'yjryxqlUnit',
+ fillType: 'preFill',
+ headerOptions: $this.getDictOptions('business_tjdw'),
+ bodyType: 'inputNumber',
+ bodyFillType: 'preFill',
+ bodyMaxlength: 10
+ },
+ {
+ label: 'template.sp.sp008.sjryxql',
+ prop: 'sjryxql',
+ width: 300,
+ headerSelectKey: 'sjryxqlUnit',
+ fillType: 'preFill',
+ headerOptions: $this.getDictOptions('business_tjdw'),
+ bodyType: 'inputNumber',
+ bodyFillType: 'actFill',
+ bodyMaxlength: 10,
+ bodyCompareTo: 'yjryxql',
+ copyFrom: 'yjryxql'
+ },
+ {
+ label: 'template.sp.sp009.yjgzyxql',
+ prop: 'yjgzyxql',
+ width: 350,
+ headerSelectKey: 'yjgzyxqlUnit',
+ fillType: 'preFill',
+ headerOptions: $this.getDictOptions('business_tjdw'),
+ bodyType: 'inputNumber',
+ bodyFillType: 'preFill',
+ bodyMaxlength: 10
+ },
+ {
+ label: 'template.sp.sp009.sjgzyxql',
+ prop: 'sjgzyxql',
+ width: 350,
+ headerSelectKey: 'sjgzyxqlUnit',
+ fillType: 'preFill',
+ headerOptions: $this.getDictOptions('business_tjdw'),
+ bodyType: 'inputNumber',
+ bodyFillType: 'actFill',
+ bodyMaxlength: 10,
+ bodyCompareTo: 'yjjzxql',
+ copyFrom: 'yjjzxql'
+ },
+ {
+ label: 'template.sp.sp009.yjxsyxql',
+ prop: 'yjxsyxql',
+ width: 350,
+ headerSelectKey: 'yjxsyxqlUnit',
+ fillType: 'preFill',
+ headerOptions: $this.getDictOptions('business_tjdw'),
+ bodyType: 'inputNumber',
+ bodyFillType: 'preFill',
+ bodyMaxlength: 10
+ },
+ {
+ label: 'template.sp.sp009.sjxsyxql',
+ prop: 'sjxsyxql',
+ width: 350,
+ headerSelectKey: 'sjxsyxqlUnit',
+ fillType: 'preFill',
+ headerOptions: $this.getDictOptions('business_tjdw'),
+ bodyType: 'inputNumber',
+ bodyFillType: 'actFill',
+ bodyMaxlength: 10,
+ bodyCompareTo: 'yjjzxql',
+ copyFrom: 'yjjzxql'
+ },
+ {
+ label: 'template.sp.sp008.hhwznd',
+ prop: 'hhwznd',
+ width: 280,
+ headerSelectKey: 'hhwzndUnit',
+ fillType: 'preFill',
+ headerOptions: $this.getDictOptions('business_nddw'),
+ bodyType: 'inputNumber',
+ bodyFillType: 'preFill',
+ bodyMaxlength: 10
+ }
+ ]
+ return arr
+}