From b16881fbf542827c1073802afb4229e1f57d3bc3 Mon Sep 17 00:00:00 2001 From: luojie <125330818@qq.com> Date: Mon, 9 Mar 2026 20:36:20 +0800 Subject: [PATCH 1/6] =?UTF-8?q?feat:[=E6=A8=A1=E6=9D=BF=E7=AE=A1=E7=90=86]?= =?UTF-8?q?[=E6=9A=82=E5=AD=98]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../business/comps/template/comps/sp/SP00456.vue | 51 +++++++++++++++++++--- .../template/formConfig/paralleAndLadderConfig.js | 26 +++++++++-- 2 files changed, 66 insertions(+), 11 deletions(-) diff --git a/src/views/business/comps/template/comps/sp/SP00456.vue b/src/views/business/comps/template/comps/sp/SP00456.vue index ee2008b..648c2c6 100644 --- a/src/views/business/comps/template/comps/sp/SP00456.vue +++ b/src/views/business/comps/template/comps/sp/SP00456.vue @@ -10,10 +10,26 @@ ref="baseInfoRef" :formConfig="baseInfoFormConfig" :formData="formData" /> - - +
+ + + + +
+
{{ $t('template.common.xzpxpz') }} @@ -126,15 +142,19 @@ import templateMixin from "../../mixins/templateMixin.js"; import CustomTable from '@/components/Template/CustomTable.vue'; import SelectReagentDialog from '../../dialog/SelectReagentDialog.vue'; import TableOpertaion from "@/components/Template/operation/TableOpertaion.vue"; +import TableOpertaionDelete from "@/components/Template/operation/TableOpertaionDelete.vue" import { getExpireDate, duplicateResource } from "@/utils/index.js"; import { getuuid } from "@/utils/index.js"; import { isCommonUnit } from "@/utils/conTools"; import moment from "moment"; import { addTj, uniqeResource, uniqeResourceOne, addDecimals } from "@/utils/calUnitTools"; -import { getLadderColumnsConfig, getParallelColumnsConfig, getLadderFormConfig, getBaseInfoFormConfig, getRemarkFormConfig, getStorageConditionFormConfig, getParalleStepFormConfig } from "../../formConfig/paralleAndLadderConfig.js"; +import { + getLadderColumnsConfig, getParallelColumnsConfig, getLadderFormConfig, + getBaseInfoFormConfig, getRemarkFormConfig, getStorageConditionFormConfig, getParalleStepFormConfig ,getJcbColumnsConfig +} from "../../formConfig/paralleAndLadderConfig.js"; export default { name: "SP00456", - components: { BaseInfoFormPackage, LineLabel, TableList, Step, CustomTable, SelectReagentDialog, TableOpertaion }, + components: { BaseInfoFormPackage, LineLabel, TableList, Step, CustomTable, SelectReagentDialog, TableOpertaion, TableOpertaionDelete }, mixins: [templateMixin], props: { fillType: { @@ -155,6 +175,10 @@ export default { }, }, computed: { + //选板信息; + jcbColumns(){ + return getJcbColumnsConfig(this); + }, // 存储条件表单配置 storageFormConfig() { return getStorageConditionFormConfig(this); @@ -183,6 +207,7 @@ export default { }, }, data() { + const labArr = ["LBA005","LBA007"] return { subSolutionVisible: false, currentSubKey: "",//当前点击的子项key @@ -193,6 +218,7 @@ export default { currentTableKey: "",//当前点击的表格key targetAcSolutionFromTable: true,//是否从表格中获取实际原始溶液浓度 currentRowData: {},//当前点击的行数据 + isLba: labArr.includes(this.sn), }; }, mounted() { @@ -204,7 +230,12 @@ export default { } }, methods: { - + deleteJcbRow(rowIndex){ + const jcbRef = this.$refs['jcbRef']; + if (jcbRef) { + jcbRef.deleteRow(rowIndex); + } + }, onBeforeSaveRecord(data, type, configIndex) { if (type === "ladder") { const formFields = this.$refs[`ladderStepFormPackageRef_${configIndex}`][0]?.getFilledFormData(); @@ -407,6 +438,7 @@ export default { paralleTableFormData: [], showParalleConfig: true }); + this.justUpdateFilledFormData(); }, //新增阶梯配制 handleAddLadder() { @@ -422,6 +454,7 @@ export default { ladderTableFormData: [], showLadderConfig: true }); + this.justUpdateFilledFormData(); }, // 删除阶梯配制配置 deleteConfig(type, config) { @@ -616,8 +649,9 @@ export default { }, //只做校验 async validFields() { + const { isLba } = this; + const refsToValidate = isLba ? ["baseInfoRef", "jcbRef", "remarkRef"]: ["baseInfoRef", "storageConditionRef", "remarkRef"] // 构建需要验证的引用数组 - let refsToValidate = ["baseInfoRef", "storageConditionRef", "remarkRef"]; // 添加阶梯配制相关的引用 if (this.formData.ladderConfigs && this.formData.ladderConfigs.length > 0) { @@ -640,7 +674,10 @@ export default { }, getFilledFormData() { const baseData = this.$refs.baseInfoRef.getFilledFormData(); - const conditionData = this.$refs.storageConditionRef.getFilledFormData(); + let conditionData = {}; + if (!this.isLba) { + conditionData = this.$refs.storageConditionRef.getFilledFormData(); + } // 获取所有阶梯配制数据 const ladderConfigsData = []; diff --git a/src/views/business/comps/template/formConfig/paralleAndLadderConfig.js b/src/views/business/comps/template/formConfig/paralleAndLadderConfig.js index c4de2fc..748fcc1 100644 --- a/src/views/business/comps/template/formConfig/paralleAndLadderConfig.js +++ b/src/views/business/comps/template/formConfig/paralleAndLadderConfig.js @@ -477,7 +477,7 @@ export const getLadderFormConfig = ($this) => { export const getBaseInfoFormConfig = ($this) => { const sn = $this.sn; const labArr = ["LBA005","LBA007"] - const isLab = labArr.includes(sn); + const isLba = labArr.includes(sn); return [ { type: 'cardItem', @@ -509,7 +509,7 @@ export const getBaseInfoFormConfig = ($this) => { }, { type: 'conditionItem', - label:isLab? 'template.lba.lba002.cztj':'template.common.testConfigurationConditions', + label:isLba? 'template.lba.lba002.cztj':'template.common.testConfigurationConditions', config: { pre: { label: 'template.common.preFill', @@ -530,7 +530,7 @@ export const getBaseInfoFormConfig = ($this) => { } } }, - { + isLba?{}:{ type: 'conditionItem', label: 'template.sp.sp00456.rqcz', config: { @@ -546,7 +546,7 @@ export const getBaseInfoFormConfig = ($this) => { }, { type: 'cellItem', - label: 'template.common.configurationTime', + label: isLba?'template.lba.lba002.czsj':'template.common.configurationTime', config: { startDate: { label: 'template.common.startTime', @@ -625,3 +625,21 @@ export const getParalleStepFormConfig = ($this) => { } ] } + +//选板信息; +export const getJcbColumnsConfig = ($this) => { + return [{ + label: 'template.lba.lba002.jcbmc', + prop: 'jcb', + bodyType: 'input', + bodyFillType: 'preFill', + width: 280, + bodyMaxlength:20 + },{ + label: '', + prop: 'jcbBh', + bodyType: 'jcb', + bodyFillType: 'actFill', + width: 280 + }] +} \ No newline at end of file From ab67937c93b5df00d6d365c6a3b98cd8b53b1f3e Mon Sep 17 00:00:00 2001 From: memorylkf <312904636@qq.com> Date: Mon, 9 Mar 2026 21:04:47 +0800 Subject: [PATCH 2/6] =?UTF-8?q?feat:=20[=E6=AD=A5=E9=AA=A4=E7=AE=A1?= =?UTF-8?q?=E7=90=86]=20=E5=85=A8=E8=A1=80=E7=A8=B3=E5=AE=9A=E6=80=A7?= =?UTF-8?q?=E6=AD=A5=E9=AA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/Template/Step.vue | 17 ++++ .../Template/StepComponents/qxwdx/qxfz.vue | 75 +++++++++++++++++ .../Template/StepComponents/qxwdx/qxjz.vue | 95 ++++++++++++++++++++++ src/components/Template/StepComponents/ry/ddhy.vue | 2 +- src/components/Template/StepComponents/ry/hwhy.vue | 8 +- 5 files changed, 192 insertions(+), 5 deletions(-) create mode 100644 src/components/Template/StepComponents/qxwdx/qxfz.vue create mode 100644 src/components/Template/StepComponents/qxwdx/qxjz.vue diff --git a/src/components/Template/Step.vue b/src/components/Template/Step.vue index d039871..179432d 100644 --- a/src/components/Template/Step.vue +++ b/src/components/Template/Step.vue @@ -140,6 +140,12 @@ import fy_spyjzzb from './StepComponents/spyjzzb/fy_spyjzzb.vue';//色谱匀浆 import jz_spyjzzb from './StepComponents/spyjzzb/jz_spyjzzb.vue';//色谱匀浆组织表-静置 +//全血稳定性 +//全血稳定性-颠倒混匀:使用溶液-颠倒混匀 +//全血稳定性-恒温平衡:使用溶液-恒温混匀 +import qxfz from './StepComponents/qxwdx/qxfz.vue';//全血稳定性-全血分装 +import qxjz from './StepComponents/qxwdx/qxjz.vue';//全血稳定性-全血静置 + import { public_templateStepList } from '@/api/business/public/public'; @@ -275,6 +281,10 @@ export default { yjbc, fy_spyjzzb, jz_spyjzzb, + + //全血稳定性 + qxfz, + qxjz, }, computed: { stepComponentMap() { @@ -375,6 +385,13 @@ export default { 'yjyhh':'jszz', 'fy_spyjzzb':'fy_spyjzzb', 'jz_spyjzzb':'jz_spyjzzb', + + + //全血稳定性 + 'ddhy_qxwdx': 'Ddhy', + 'hwph':'Hwhy', + 'qxfz':'qxfz', + 'qxjz':'qxjz', } } diff --git a/src/components/Template/StepComponents/qxwdx/qxfz.vue b/src/components/Template/StepComponents/qxwdx/qxfz.vue new file mode 100644 index 0000000..fd5a4b4 --- /dev/null +++ b/src/components/Template/StepComponents/qxwdx/qxfz.vue @@ -0,0 +1,75 @@ + + + + + + \ No newline at end of file diff --git a/src/components/Template/StepComponents/qxwdx/qxjz.vue b/src/components/Template/StepComponents/qxwdx/qxjz.vue new file mode 100644 index 0000000..a7e710b --- /dev/null +++ b/src/components/Template/StepComponents/qxwdx/qxjz.vue @@ -0,0 +1,95 @@ + + + + + + \ No newline at end of file diff --git a/src/components/Template/StepComponents/ry/ddhy.vue b/src/components/Template/StepComponents/ry/ddhy.vue index 90db60f..0137da5 100644 --- a/src/components/Template/StepComponents/ry/ddhy.vue +++ b/src/components/Template/StepComponents/ry/ddhy.vue @@ -23,7 +23,7 @@ import stepMixins from '@/components/Template/mixins/stepMixins.js'; let config = [{ config:{ text1:{ - label:"将溶液进行上下颠倒,预计颠倒", + label:this.sn==='ddhy_qxwdx'?"将全血样品进行轻轻上下颠倒,预计颠倒":"将溶液进行上下颠倒,预计颠倒", type:"text", }, ddcs1:{ diff --git a/src/components/Template/StepComponents/ry/hwhy.vue b/src/components/Template/StepComponents/ry/hwhy.vue index 9eb60af..5171e3e 100644 --- a/src/components/Template/StepComponents/ry/hwhy.vue +++ b/src/components/Template/StepComponents/ry/hwhy.vue @@ -40,7 +40,7 @@ export default { fillType: "preFill", }, text3: { - label: "°C,实际温度为", + label: "°C,设置实际温度为", type: "text", }, sjwd: { @@ -64,7 +64,7 @@ export default { fillType: "preFill", }, text8: { - label: "实际转速为", + label: "实际设置转速为", type: "text", }, sjzs: { @@ -93,7 +93,7 @@ export default { fillType: "preFill", }, text5: { - label: ",实际时长为", + label: ",实际设置时长为", type: "text", }, sjsc: { @@ -108,7 +108,7 @@ export default { fillType: "preFill", }, text6: { - label: ",进行恒温混匀,混匀", + label: this.sn==='hwph'?",进行恒温平衡,平衡": ",进行恒温混匀,混匀", type: "text", }, startDate: { From 9aedae322e1aec18c24c29afa299feacc2c338fb Mon Sep 17 00:00:00 2001 From: luojie <125330818@qq.com> Date: Mon, 9 Mar 2026 22:42:48 +0800 Subject: [PATCH 3/6] =?UTF-8?q?feat:[=E6=A8=A1=E6=9D=BF=E7=AE=A1=E7=90=86]?= =?UTF-8?q?[=E9=98=B6=E6=A2=AF/=E5=B9=B3=E8=A1=8C=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E7=BB=84=E4=BB=B6=E6=8A=BD=E7=A6=BB=EF=BC=8C=E6=9C=AA=E5=AE=8C?= =?UTF-8?q?]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/Template/CustomTable.vue | 17 +- src/components/Template/Step.vue | 2 + .../business/comps/template/comps/sp/SP00456.vue | 31 +- .../comps/template/comps/sp/comps/LadderConfig.vue | 338 +++++++++++++++++++++ .../comps/template/mixins/templateMixin.js | 2 - 5 files changed, 366 insertions(+), 24 deletions(-) create mode 100644 src/views/business/comps/template/comps/sp/comps/LadderConfig.vue diff --git a/src/components/Template/CustomTable.vue b/src/components/Template/CustomTable.vue index b36964d..672beaf 100644 --- a/src/components/Template/CustomTable.vue +++ b/src/components/Template/CustomTable.vue @@ -732,19 +732,7 @@ export default { errors: errors }; }, - // 判断值是否为空 - isValueEmpty(value) { - if (value === null || value === undefined || value === '') { - return true; - } - if (typeof value === 'string' && value.trim() === '') { - return true; - } - if (Array.isArray(value) && value.length === 0) { - return true; - } - return false; - }, + // 表头选择器变化 onHeaderSelectChange(col, value) { if (col.headerSelectTo) { @@ -943,6 +931,9 @@ export default { this.isIndeterminate = false; this.$emit('selectionChange', this.selectedRows); }, + updateHeaderSelectFields(fields) { + this.headerSelectFields = {...this.headerSelectFields, ...fields}; + }, // 更新数据方法,可在formData变更时调用,也可由父组件调用 updateDataSource(dataSource = []) { this.oldLocalDataSource = JSON.parse(JSON.stringify(this.localDataSource)); diff --git a/src/components/Template/Step.vue b/src/components/Template/Step.vue index d039871..e12be5f 100644 --- a/src/components/Template/Step.vue +++ b/src/components/Template/Step.vue @@ -436,6 +436,7 @@ export default { type: '', formData: {} }) + justUpdateFilledFormData(); this.$emit('step-added', this.steps.length) } catch (error) { console.error('添加步骤失败:', error) @@ -447,6 +448,7 @@ export default { if (this.steps.length > 1) { const removedStep = this.steps.splice(index, 1)[0] + justUpdateFilledFormData(); this.$emit('step-removed', { index, step: removedStep, remaining: this.steps.length }) } else { this.$message.warning('至少需要保留一个步骤') diff --git a/src/views/business/comps/template/comps/sp/SP00456.vue b/src/views/business/comps/template/comps/sp/SP00456.vue index 648c2c6..248877e 100644 --- a/src/views/business/comps/template/comps/sp/SP00456.vue +++ b/src/views/business/comps/template/comps/sp/SP00456.vue @@ -40,8 +40,18 @@
+ + /> +
@@ -152,9 +162,10 @@ import { getLadderColumnsConfig, getParallelColumnsConfig, getLadderFormConfig, getBaseInfoFormConfig, getRemarkFormConfig, getStorageConditionFormConfig, getParalleStepFormConfig ,getJcbColumnsConfig } from "../../formConfig/paralleAndLadderConfig.js"; +import LadderConfig from "@/views/business/comps/template/comps/sp/comps/LadderConfig.vue"; export default { name: "SP00456", - components: { BaseInfoFormPackage, LineLabel, TableList, Step, CustomTable, SelectReagentDialog, TableOpertaion, TableOpertaionDelete }, + components: { LadderConfig,BaseInfoFormPackage, LineLabel, TableList, Step, CustomTable, SelectReagentDialog, TableOpertaion, TableOpertaionDelete, LadderConfig }, mixins: [templateMixin], props: { fillType: { @@ -684,14 +695,16 @@ export default { if (this.formData.ladderConfigs && this.formData.ladderConfigs.length > 0) { for (let i = 0; i < this.formData.ladderConfigs.length; i++) { const id = this.formData.ladderConfigs[i].id; - const ladderFormData = this.$refs[`ladderStepFormPackageRef_${i}`][0].getFilledFormData(); - const ladderTableFormData = this.$refs[`ladderStepTableRef_${i}`][0].getFilledFormData(); - const ladderStepData = this.$refs[`ladderStepRef_${i}`][0].getFilledFormData(); + const { + baseFormData, + tableData, + stepData, + } = this.$refs[`ladderRef_${i}`][0].getFilledFormData(); ladderConfigsData.push({ - ...ladderFormData, - ...ladderTableFormData, - ladderStepData: ladderStepData.stepData, + ...baseFormData, + ...tableData, + ladderStepData: stepData, showLadderConfig: true, id }); diff --git a/src/views/business/comps/template/comps/sp/comps/LadderConfig.vue b/src/views/business/comps/template/comps/sp/comps/LadderConfig.vue new file mode 100644 index 0000000..2912f44 --- /dev/null +++ b/src/views/business/comps/template/comps/sp/comps/LadderConfig.vue @@ -0,0 +1,338 @@ + + + + + \ No newline at end of file diff --git a/src/views/business/comps/template/mixins/templateMixin.js b/src/views/business/comps/template/mixins/templateMixin.js index 126a174..a4407f1 100644 --- a/src/views/business/comps/template/mixins/templateMixin.js +++ b/src/views/business/comps/template/mixins/templateMixin.js @@ -372,10 +372,8 @@ export default { }, //统一校验form表单是否填写 async validFormFields(refArr = []) { - console.log(refArr,2121) let result = {} const refs = refArr.map((ref) => { - console.log(ref,312312321) let refData = {} if (this.$refs[ref][0]) { refData = this.$refs[ref][0]?.getFormData() || {} From 04e6a69cfec10e5d6ef7d3d66e58a95ad9a9146c Mon Sep 17 00:00:00 2001 From: ouqian <13568766802@163.com> Date: Mon, 9 Mar 2026 23:15:54 +0800 Subject: [PATCH 4/6] =?UTF-8?q?feat:[=E6=A8=A1=E6=9D=BF=E7=AE=A1=E7=90=86]?= =?UTF-8?q?[DL007~DL014=E4=BC=98=E5=8C=96]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/lang/en/template/dl.js | 6 +- src/lang/zh/template/dl.js | 6 +- .../business/comps/template/comps/dl/DL007.vue | 5 +- .../business/comps/template/comps/dl/DL008.vue | 5 +- .../business/comps/template/comps/dl/DL009.vue | 24 +-- .../business/comps/template/comps/dl/DL010.vue | 200 +++++---------------- .../business/comps/template/comps/dl/DL011.vue | 164 +++-------------- .../business/comps/template/comps/dl/DL012.vue | 154 ++-------------- .../business/comps/template/comps/dl/DL013.vue | 3 +- .../business/comps/template/comps/dl/DL014.vue | 105 +++++++---- 10 files changed, 179 insertions(+), 493 deletions(-) diff --git a/src/lang/en/template/dl.js b/src/lang/en/template/dl.js index 5d7650a..5fcd221 100644 --- a/src/lang/en/template/dl.js +++ b/src/lang/en/template/dl.js @@ -30,6 +30,7 @@ const common = { export default { dl001: {}, common, + czsj: 'Operation Time', dl003: { ...common, pytj: '培养条件', @@ -127,6 +128,8 @@ export default { yslhnzsjyjrl: 'Preset 0.9% Sodium Chloride Injection Volume', sjlhnzsjyjrl: 'Actual 0.9% Sodium Chloride Injection Volume', sjgs: 'Bone Marrow Collection', + sj: 'Collection', + gusui: 'Bone Marrow', lx: 'Centrifugation', ysjrxq: 'Preset Serum Addition', sjjrxq: 'Actual Serum Addition', @@ -148,7 +151,8 @@ export default { pyxbh: 'Incubator Number', pytjText: 'Culture Conditions', pykssj: 'Culture Start Time', - pykssjButton: 'Start' + pykssjButton: 'Start', + bqdy: 'Label Print' }, dl012: { ...common, diff --git a/src/lang/zh/template/dl.js b/src/lang/zh/template/dl.js index 8a56b24..2b6e2fc 100644 --- a/src/lang/zh/template/dl.js +++ b/src/lang/zh/template/dl.js @@ -30,6 +30,7 @@ const common = { export default { dl001: {}, common, + czsj: '操作时间', dl003: { ...common, pytj: '培养条件', @@ -128,6 +129,8 @@ export default { yslhnzsjyjrl: '预设0.9%氯化钠注射液加入量', sjlhnzsjyjrl: '实际0.9%氯化钠注射液加入量', sjgs: '收集骨髓', + sj: '收集', + gusui: '骨髓', lx: '离心', ysjrxq: '预设加入血清', sjjrxq: '实际加入血清', @@ -149,7 +152,8 @@ export default { pyxbh: '培养箱编号', pytjText: '培养条件', pykssj: '培养开始时间', - pykssjButton: '开始' + pykssjButton: '开始', + bqdy: '标签打印' }, dl012: { ...common, diff --git a/src/views/business/comps/template/comps/dl/DL007.vue b/src/views/business/comps/template/comps/dl/DL007.vue index 2e12a9b..e177c8e 100644 --- a/src/views/business/comps/template/comps/dl/DL007.vue +++ b/src/views/business/comps/template/comps/dl/DL007.vue @@ -133,11 +133,10 @@ export default { } }, { - type: 'conditionItem', + type: 'cellItem', label: 'template.dl.dl007.sydd', config: { sydd: { - span: 1, label: 'template.dl.dl007.sydd', type: 'select', options: this.getDictOptions('business_sydd'), @@ -148,7 +147,7 @@ export default { }, { type: 'cellItem', - label: 'template.common.configurationTime', + label: 'template.dl.czsj', config: { startDate: { label: 'template.common.startTime', diff --git a/src/views/business/comps/template/comps/dl/DL008.vue b/src/views/business/comps/template/comps/dl/DL008.vue index a75927c..c3b3023 100644 --- a/src/views/business/comps/template/comps/dl/DL008.vue +++ b/src/views/business/comps/template/comps/dl/DL008.vue @@ -181,11 +181,10 @@ export default { } }, { - type: 'conditionItem', + type: 'cellItem', label: 'template.dl.dl007.sydd', config: { sydd: { - span: 1, label: 'template.dl.dl007.sydd', type: 'select', options: this.getDictOptions('business_sydd'), @@ -196,7 +195,7 @@ export default { }, { type: 'cellItem', - label: 'template.common.configurationTime', + label: 'template.dl.czsj', config: { startDate: { label: 'template.common.startTime', diff --git a/src/views/business/comps/template/comps/dl/DL009.vue b/src/views/business/comps/template/comps/dl/DL009.vue index 6cea609..53271e4 100644 --- a/src/views/business/comps/template/comps/dl/DL009.vue +++ b/src/views/business/comps/template/comps/dl/DL009.vue @@ -22,12 +22,6 @@ :formData="formData" /> - - - - - - - - - - - + :dataSource="resource" + /> +
@@ -130,8 +102,6 @@ import ImportExcelDialog from '../../dialog/ImportExcelDialog' const refConf = { base: 'baseInfoRef', - sysj: 'sysjTableRef', - yqsy: 'yqsyTableRef', sjxxStep: 'sjxxStepRef', sjxx: 'sjxxTableRef', remark: 'remarkRef' @@ -195,11 +165,10 @@ export default { } }, { - type: 'conditionItem', + type: 'cellItem', label: 'template.dl.dl010.dwzs', config: { dwzs: { - span: 1, label: 'template.dl.dl010.dwzs', type: 'select', options: this.getDictOptions('business_dwzs'), @@ -214,9 +183,9 @@ export default { config: { cjdd: { label: 'template.dl.dl010.cjdd', - type: 'input', - fillType: 'actFill', - maxlength: 200 + type: 'select', + options: this.getDictOptions('business_cjdd'), + fillType: 'actFill' } } }, @@ -226,18 +195,17 @@ export default { config: { zpdd: { label: 'template.dl.dl010.zpdd', - type: 'input', - fillType: 'actFill', - maxlength: 200 + type: 'select', + options: this.getDictOptions('business_zpdd'), + fillType: 'actFill' } } }, { - type: 'conditionItem', + type: 'cellItem', label: 'template.dl.dl010.cjbw', config: { cjbw: { - span: 1, label: 'template.dl.dl010.cjbw', type: 'select', options: this.getDictOptions('business_cjbw'), @@ -250,97 +218,20 @@ export default { type: 'cellItem', label: 'template.dl.dl010.jprq', config: { - jprqKssj: { + startDate: { label: 'template.dl.dl010.jprqKssj', type: 'input', disabled: true }, - jprqJssj: { + endDate: { label: 'template.dl.dl010.jprqJssj', type: 'input', - fillType: 'actFill', - maxlength: 200 + disabled: true } } } ] }, - // 试验试剂信息 - sysjColumns() { - return [ - { - label: 'template.dl.dl010.sjmc', - prop: 'sjmc', - bodyType: 'input', - bodyFillType: 'actFill' - }, - { - label: 'template.dl.dl010.bh', - prop: 'bh', - bodyType: 'input', - bodyFillType: 'actFill' - }, - { - label: 'template.dl.dl010.ph', - prop: 'ph', - bodyType: 'input', - bodyFillType: 'actFill' - }, - { - label: 'template.dl.dl010.ndhlcd', - prop: 'ndhlcd', - bodyType: 'input', - bodyFillType: 'actFill' - }, - { - label: 'template.dl.dl010.ly', - prop: 'ly', - bodyType: 'input', - bodyFillType: 'actFill' - }, - { - label: 'template.dl.dl010.sxr', - prop: 'sxr', - bodyType: 'input', - bodyFillType: 'actFill' - } - ] - }, - // 仪器使用信息 - yqsyColumns() { - return [ - { - label: 'template.dl.dl010.yqmc', - prop: 'yqmc', - bodyType: 'input', - bodyDisabled: true, - bodyFillType: 'actFill', - disabled: true - }, - { - label: 'template.dl.dl010.yqxh', - prop: 'yqxh', - bodyType: 'input', - bodyDisabled: true, - bodyFillType: 'actFill', - disabled: true - }, - { - label: 'template.dl.dl010.yqbh', - prop: 'yqbh', - bodyType: 'yq', - bodyFillType: 'actFill' - }, - { - label: 'template.dl.dl010.xccsjzjdrq', - prop: 'jzrq', - bodyType: 'input', - bodyDisabled: true, - bodyFillType: 'actFill', - disabled: true - } - ] - }, // 采集信息列表 sjxxColumns() { return [ @@ -354,6 +245,7 @@ export default { { label: 'template.dl.dl010.yslhnzsjyjrl', headerSelectKey: 'yslhnUnit', + headerSelectTo: 'sjlhnUnit', headerOptions: this.getDictOptions('business_tjdw'), prop: 'yslhnzsjyjrl', bodyType: 'inputNumber', @@ -363,10 +255,12 @@ export default { }, { label: 'template.dl.dl010.sjlhnzsjyjrl', - headerSelectKey: 'yslhnUnit', + headerSelectKey: 'sjlhnUnit', headerOptions: this.getDictOptions('business_tjdw'), prop: 'sjlhnzsjyjrl', bodyMaxlength: 10, + compareTo: 'yslhnzsjyjrl', + copyFrom: 'yslhnzsjyjrl', bodyType: 'inputNumber', bodyFillType: 'actFill', fillType: 'preFill' @@ -378,9 +272,14 @@ export default { checkboxLabel: '', bodyFillType: 'actFill', headerColumns: [ - { type: 'span', label: '收集' }, - { type: 'inputNumber', fillType: 'actFill', key: 'gs' }, - { type: 'span', label: '骨髓' } + { type: 'span', label: 'template.dl.dl010.sj' }, + { + type: 'inputNumber', + fillType: 'actFill', + maxLength: 10, + key: 'gs' + }, + { type: 'span', label: 'template.dl.dl010.gusui' } ], span: 3 }, @@ -398,7 +297,8 @@ export default { bodyFillType: 'preFill', bodyMaxlength: 10, fillType: 'preFill', - headerSelectKey: 'yslhnUnit', + headerSelectKey: 'ysjrxqUnit', + headerSelectTo: 'sjjrxqUnit', headerOptions: this.getDictOptions('business_tjdw') }, { @@ -408,7 +308,9 @@ export default { bodyMaxlength: 10, bodyFillType: 'actFill', fillType: 'preFill', - headerSelectKey: 'yslhnUnit', + compareTo: 'ysjrxq', + copyFrom: 'ysjrxq', + headerSelectKey: 'sjjrxqUnit', headerOptions: this.getDictOptions('business_tjdw') } ] @@ -543,16 +445,12 @@ export default { // 获取已填写的表单数据 getFilledFormData() { const baseData = this.$refs.baseInfoRef.getFilledFormData() - const sysjData = this.$refs.sysjTableRef.getFilledFormData() - const yqsyData = this.$refs.yqsyTableRef.getFilledFormData() const sjxxStepData = this.$refs.sjxxStepRef.getFilledFormData() const sjxxData = this.$refs.sjxxTableRef.getFilledFormData() const remarkData = this.$refs.remarkRef.getFilledFormData() return { ...baseData, - ...sysjData, - ...yqsyData, ...sjxxStepData, ...sjxxData, ...remarkData @@ -571,8 +469,6 @@ export default { async validFields() { const refsToValidate = [ 'baseInfoRef', - 'sysjTableRef', - 'yqsyTableRef', 'sjxxStepRef', 'sjxxTableRef', 'remarkRef' @@ -580,28 +476,14 @@ export default { return await this.validFormFields(refsToValidate) }, getResource() { - const sysjStepResource = this.$refs.sysjTableRef.getStepResource() - const yqsyStepResource = this.$refs.yqsyTableRef.getStepResource() + const sjxxStepResource = this.$refs.sjxxStepRef.getStepResource() // 使用的试剂、仪器 - this.resourceTmp = [ - ...(sysjStepResource.sjResource || []), - ...(yqsyStepResource.sjResource || []) - ] - this.yqResourceTmp = yqsyStepResource.yqResource || [] + this.resourceTmp = sjxxStepResource.sjResource || [] + this.yqResourceTmp = sjxxStepResource.yqResource || [] return this.resourceTmp }, onRegentSubmit(e) { - const { selectInfo, key, rowIndex } = e - const { row } = selectInfo - - if (key === 'yqbh') { - const params = { - yqmc: row.mc, - yqxh: row.xh, - jzrq: row.jzrq - } - this.$refs.yqsyTableRef.updateDataSourceByRowIndex(rowIndex, params) - } + // 预留方法,如果需要处理试剂提交事件可以在这里添加 }, // 保存 async onSave() { diff --git a/src/views/business/comps/template/comps/dl/DL011.vue b/src/views/business/comps/template/comps/dl/DL011.vue index cf339c2..089ce92 100644 --- a/src/views/business/comps/template/comps/dl/DL011.vue +++ b/src/views/business/comps/template/comps/dl/DL011.vue @@ -16,48 +16,25 @@ :formData="formData" /> - - - - - - - - - + :dataSource="resource" + /> +
+
+ {{ + $t('template.dl.dl011.bqdy') + }} +
- - - - - - - - - + :dataSource="resource" + /> + @@ -108,8 +80,6 @@ import moment from 'moment' const refConf = { base: 'baseInfoRef', - sysj: 'sysjTableRef', - yqsy: 'yqsyTableRef', xbxx: 'xbxxRef', step: 'stepRef', pyxx: 'pyxxRef', @@ -173,10 +143,10 @@ export default { } }, { - type: 'conditionItem', + type: 'cellItem', + label: 'template.dl.dl012.sydd', config: { sydd: { - span: 1, label: 'template.dl.dl012.sydd', type: 'select', options: this.getDictOptions('business_sydd'), @@ -203,78 +173,6 @@ export default { } ] }, - // 试验试剂信息 - sysjColumns() { - return [ - { - label: 'template.dl.dl012.sjmc', - prop: 'sjmc', - bodyType: 'input', - bodyFillType: 'actFill' - }, - { - label: 'template.dl.dl012.bh', - prop: 'bh', - bodyType: 'input', - bodyFillType: 'actFill' - }, - { - label: 'template.dl.dl012.ph', - prop: 'ph', - bodyType: 'input', - bodyFillType: 'actFill' - }, - { - label: 'template.dl.dl012.ndhlcd', - prop: 'ndhlcd', - bodyType: 'input', - bodyFillType: 'actFill' - }, - { - label: 'template.dl.dl012.ly', - prop: 'ly', - bodyType: 'input', - bodyFillType: 'actFill' - }, - { - label: 'template.dl.dl012.sxr', - prop: 'sxr', - bodyType: 'input', - bodyFillType: 'actFill' - } - ] - }, - // 仪器使用信息 - yqsyColumns() { - return [ - { - label: 'template.dl.dl012.yqmc', - prop: 'yqmc', - bodyType: 'input', - bodyFillType: 'actFill' - }, - { - label: 'template.dl.dl012.yqxh', - prop: 'yqxh', - bodyType: 'input', - bodyFillType: 'actFill' - }, - { - label: 'template.dl.dl012.yqbh', - prop: 'yqbh', - bodyType: 'yq', - bodyFillType: 'actFill' - }, - { - label: 'template.dl.dl012.xccsjzjdrq', - prop: 'xccsjzjdrq', - bodyType: 'input', - bodyDisabled: true, - bodyFillType: 'actFill', - disabled: true - } - ] - }, // 培养信息配置 pyxxConfig() { return [ @@ -364,7 +262,8 @@ export default { fillType: 'actFill', subOptions: this.getDictOptions('business_nddw'), maxlength: 10, - copyFrom: 'zbhxbyjtj' //复制哪个字段 + compareTo: 'zbhxbyjtj', + copyFrom: 'zbhxbyjtj' } } } @@ -408,7 +307,7 @@ export default { } }, methods: { - handleClickButton(e,signData) { + handleClickButton(e, signData) { console.log(e) const { subKey } = e || {} if (subKey === 'pykssjButton') { @@ -436,33 +335,14 @@ export default { return await this.validFormFields(refNames) }, getResource() { - const sysjStepResource = this.$refs.sysjTableRef.getStepResource() - const yqsyStepResource = this.$refs.yqsyTableRef.getStepResource() const stepResource = this.$refs.stepRef.getStepResource() // 使用的试剂、仪器 - this.resourceTmp = [ - ...(sysjStepResource.sjResource || []), - ...(yqsyStepResource.sjResource || []), - ...(stepResource.sjResource || []) - ] - this.yqResourceTmp = [ - ...(yqsyStepResource.yqResource || []), - ...(stepResource.yqResource || []) - ] + this.resourceTmp = stepResource.sjResource || [] + this.yqResourceTmp = stepResource.yqResource || [] return this.resourceTmp }, onRegentSubmit(e) { - const { selectInfo, key, rowIndex } = e - const { row } = selectInfo - - if (key === 'yqbh') { - const params = { - yqmc: row.mc, - yqxh: row.xh, - xccsjzjdrq: row.jzrq - } - this.$refs.yqsyTableRef.updateDataSourceByRowIndex(rowIndex, params) - } + // 预留方法,如果需要处理试剂提交事件可以在这里添加 }, // 保存 async onSave() { diff --git a/src/views/business/comps/template/comps/dl/DL013.vue b/src/views/business/comps/template/comps/dl/DL013.vue index 72f5fc1..67a9324 100644 --- a/src/views/business/comps/template/comps/dl/DL013.vue +++ b/src/views/business/comps/template/comps/dl/DL013.vue @@ -179,11 +179,10 @@ export default { } }, { - type: 'conditionItem', + type: 'cellItem', label: 'template.dl.dl013.sydd', config: { sydd: { - span: 1, label: 'template.dl.dl013.sydd', type: 'select', options: this.getDictOptions('business_sydd'), diff --git a/src/views/business/comps/template/comps/dl/DL014.vue b/src/views/business/comps/template/comps/dl/DL014.vue index cb485c8..31e7488 100644 --- a/src/views/business/comps/template/comps/dl/DL014.vue +++ b/src/views/business/comps/template/comps/dl/DL014.vue @@ -16,8 +16,16 @@ :formData="formData" /> - - + +
+ + + item.yqbh) - .map(item => ({ + .filter((item) => item.yqbh) + .map((item) => ({ bh: item.yqbh, mc: item.yqmc, xh: item.yqxh })) - + // 从剂量组表格中提取试剂资源(如果有 S9混合液编号或细胞编号) const jlzData = this.$refs.jlzTableRef?.getFilledFormData() const jlzList = jlzData?.stepTableFormData || [] - + const sjResourceFromJlz = [] - jlzList.forEach(item => { + jlzList.forEach((item) => { // 如果有细胞编号,添加到试剂资源 if (item.xybh) { sjResourceFromJlz.push({ @@ -639,9 +680,9 @@ export default { }) } }) - + this.resourceTmp = sjResourceFromJlz - + return this.resourceTmp }, onRegentSubmit(e) { @@ -668,7 +709,7 @@ export default { // 处理剂量组配制信息的 blur 事件 onJlzInfoBlur(e) { const { key, value } = e - + // 当剂量组总数改变时,清空剂量组名称表格数据和剂量组列表数据 if (key === 'jlzzs') { // 检查值是否真的改变了 @@ -677,24 +718,26 @@ export default { this.$set(this.formData, 'jlzmcTableData', []) // 同时清空剂量组列表数据 this.$set(this.formData, 'jlzTableData', []) - - this.$message.info('剂量组总数已改变,已清空剂量组名称和剂量组列表数据') + + this.$message.info( + '剂量组总数已改变,已清空剂量组名称和剂量组列表数据' + ) } - + // 更新旧值 this.oldJlzzs = value } - + // 当平行瓶数改变时,清空剂量组列表数据 if (key === 'pxpb') { // 检查值是否真的改变了 if (this.oldPxpb !== null && this.oldPxpb !== value) { // 清空剂量组列表数据 this.$set(this.formData, 'jlzTableData', []) - + this.$message.info('平行瓶数已改变,已清空剂量组列表数据') } - + // 更新旧值 this.oldPxpb = value } @@ -702,7 +745,7 @@ export default { // 处理剂量组名称表格的 blur 事件 onJlzmcTableBlur(e) { const { colKey } = e - + // 当剂量组名称字段改变时,清空剂量组列表数据 if (colKey === 'jlzzmc') { // 检查剂量组列表是否有数据 From da8dac342cd90e636c23319ff0f7f958de62afad Mon Sep 17 00:00:00 2001 From: lslaiwy <1209768238@qq.com> Date: Mon, 9 Mar 2026 23:24:27 +0800 Subject: [PATCH 5/6] =?UTF-8?q?fix[=E6=A8=A1=E6=9D=BF=E7=AE=A1=E7=90=86]DL?= =?UTF-8?q?016-19=E5=AE=8C=E5=96=84=E8=A1=A8=E6=A0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../business/comps/template/comps/dl/DL016.vue | 96 +++++----------- .../business/comps/template/comps/dl/DL017.vue | 123 ++++++++++++--------- .../business/comps/template/comps/dl/DL018.vue | 98 +++++++++------- .../business/comps/template/comps/dl/DL019.vue | 98 +++++++++------- 4 files changed, 212 insertions(+), 203 deletions(-) diff --git a/src/views/business/comps/template/comps/dl/DL016.vue b/src/views/business/comps/template/comps/dl/DL016.vue index b25f678..ddfbebd 100644 --- a/src/views/business/comps/template/comps/dl/DL016.vue +++ b/src/views/business/comps/template/comps/dl/DL016.vue @@ -21,7 +21,7 @@ fieldItemLabel="template.common.operationSteps" @blur="onHandleTableBlur" @beforeSaveRecord = "beforeSaveRecord" :showAddRow="false" :showOperation="false" - ref="qcxjjyqkTableRef" :columns="stepColumns" :formData="qcxjjyqkFormData"> + ref="qcxjjyqkTableRef" :columns="stepColumns" :formData="tableFormData"> @@ -62,10 +62,10 @@ export default { }, }, computed: { - // 换液情况表格数据 - qcxjjyqkFormData() { + // 表格数据 + tableFormData() { return { - stepTableFormData: this.formData.qcxjjyqkData || [], + stepTableFormData: this.formData.stepTableFormData || [], headerSelectFields: {} } }, @@ -196,42 +196,34 @@ export default { }; }, mounted() { + console.log('mounted=============',this.formData); }, methods: { onRegentSubmit(e) { - debugger const { selectInfo, key, rowIndex } = e const { row } = selectInfo - console.log('selectInfo==============',selectInfo,key,rowIndex) if (key === 'qxbd') { try { // 解析前序表单的内容 const bdnr = JSON.parse(row.bdnr) - console.log('前序表单数据:', bdnr) - // 获取剂量组列表数据 - const qcxjjyqkData = bdnr.jlzTableData || [] + const stepTableFormData = bdnr.jlzTableData || [] - // if (qcxjjyqkData.length === 0) { - // this.$message.warning('前序表单中没有剂量组数据') - // return - // } + if (stepTableFormData.length === 0) { + // 清空当前的换液情况列表数据 + this.$set(this.formData, 'stepTableFormData', []) + this.$message.warning('前序表单中没有剂量组数据') + return + } // 从剂量组数据中提取剂量组别和悬液编号 - const itemData = qcxjjyqkData.map(item => ({ + const itemData = stepTableFormData.map(item => ({ jlzb: item.jlzb || '', // 剂量组别 xybh: item.xybh || '', // 悬液编号 - hyqszqk: '', // 换液前生长情况 - hyqcdjqk: '', // 换液前沉淀情况 - hyqqtqk: '', // 换液前其他情况 - qqpyy: '', // 倾去培养液 - pbsxd: '', // PBS洗涤 - pyybrl: '' // 培养液补入量 + qsxjjrl: '', // })) - debugger - // 使用 $set 更新 formData,触发 CustomTable 的响应式更新 - this.$set(this.formData, 'qcxjjyqkData', itemData) + this.$set(this.formData, 'stepTableFormData', itemData) this.$message.success(`已从前序表单加载 ${itemData.length} 条剂量组数据`) } catch (error) { @@ -262,48 +254,6 @@ export default { const formFields = this.$refs.swypyjInfoRef?.getFilledFormData(); this.onCommonVerifyNdException(formFields,data); }, - configComplete(val) { - const { rowData, headerSelectFields } = val; - //计算实际目标溶液体积(实际起始溶液体积+实际稀释液体积) - const { total, unit } = addTj([rowData.actStartSolutionVolume, rowData.actDiluentVolume], [headerSelectFields.actStartSolutionVolumeUnit, headerSelectFields.actDiluentVolumeUnit]) - let postData = { - mc: null, - bh: rowData.targetSolutionCode + rowData.subTargetSolutionCode, - nd: rowData.actSolutionConcentration,//实际目标溶液浓度 - nddw: headerSelectFields.actSolutionConcentrationUnit, - studySubjectId: this.formData.studySubjectId, - studyFormId:this.formData.id, - studyId:this.formData.studyId, - kc: total, - kcdw: unit, - } - this.configCompleteRequest(postData); - }, - //分装回调 - subPackageSubmit(data) { - const { fzsj, rowData, headerSelectFields } = data; - const { fzList = [], dw = "", mybh } = fzsj; - if (fzList && fzList.length > 0) { - const list = fzList.map((item) => { - return { - bh: mybh + item.preCode + item.subCode, - kc: item.num, - kcdw: dw, - } - }) - let postData = { - studyId: this.formData.studyId, - studyFormId: this.formData.id, - bh: mybh, - nd: rowData.actSolutionConcentration || 0, - nddw: headerSelectFields.actSolutionConcentrationUnit, - studySubjectId: this.formData.studySubjectId, - studyFormId:this.formData.id, - list: list - } - this.subPackageRequest(postData); - } - }, //获取已填写的表单数据 getFilledFormData() { return this.getFilledFormDataByRefs(["baseInfoRef", "swypyjInfoRef", "qcxjjyqkTableRef", "stepRef","remarkRef"]) @@ -311,13 +261,27 @@ export default { //获取填写完成的表单数据 async getFormData() { let content = await this.validFormFields(["baseInfoRef", "swypyjInfoRef", "qcxjjyqkTableRef", "stepRef","remarkRef"]); - return content; + console.log('获取填写完成的表单数据==============',content); + return content; }, getResource() { //使用的试剂、仪器 const stepResource = this.$refs.stepRef.getStepResource() + const tableList = this.$refs.qcxjjyqkTableRef?.getFilledFormData()?.stepTableFormData || [] + // const tableList = hyqkData?.stepTableFormData || [] + // 从操作步骤中提取试剂和仪器资源 this.resourceTmp = stepResource.sjResource || [] this.yqResourceTmp = stepResource.yqResource || [] + + const tableFromHyqk = tableList + .filter(item => item.xybh) + .map(item => ({ + bh: item.xybh, + type: 'cell' + })) + + this.resourceTmp = [...this.resourceTmp, ...tableFromHyqk] + console.log('回显填写完成的表单数据==============',this.resourceTmp); return this.resourceTmp; }, //保存 diff --git a/src/views/business/comps/template/comps/dl/DL017.vue b/src/views/business/comps/template/comps/dl/DL017.vue index 0c2ddef..b517588 100644 --- a/src/views/business/comps/template/comps/dl/DL017.vue +++ b/src/views/business/comps/template/comps/dl/DL017.vue @@ -12,22 +12,16 @@ - + ref="stepTableRef" :columns="stepColumns" :formData="tableFormData"> @@ -57,7 +51,7 @@ import TableOpertaionDelete from "@/components/Template/operation/TableOpertaion export default { name: "DL017", dicts: [ - 'business_dl_qsxjbltj','business_tjdw','business_dl_sjqszqk','business_dl_sjqcdqk','business_dl_sjqqtqk','business_dl_xbmc' + 'business_dl_qsxjbltj','business_tjdw','business_dl_sjqszqk','business_dl_sjqcdqk','business_dl_sjqqtqk','business_dl_xbmc',"business_sydd" ], components: { BaseInfoFormPackage, LineLabel, TableList, Step, CustomTable,TableOpertaionDelete }, mixins: [templateMixin], @@ -68,6 +62,13 @@ export default { }, }, computed: { + // 表格数据 + tableFormData() { + return { + stepTableFormData: this.formData.stepTableFormData, + headerSelectFields: {} + } + }, // 备注表单配置 remarkConig() { return [ @@ -113,7 +114,7 @@ export default { label: 'template.dl.dl017.sydd', type: 'select', fillType: 'actFill', - options: this.getDictOptions('business_dl_xbmc'), + options: this.getDictOptions('business_sydd'), otherCode: 'xbmcOther', showOtherLabel:false }, @@ -146,7 +147,7 @@ export default { label: 'template.dl.dl017.qxbd', type: 'qxbd', fillType: 'actFill', - qxbdType:'DL017', + qxbdType:'DL014', filledCodes:['bdmc','bdbh'], }, bltj: { @@ -187,21 +188,21 @@ export default { width: 180, bodyType: "select", bodyFillType: "actFill", - options: this.getDictOptions('business_dl_sjqszqk'), + bodyOptions: this.getDictOptions('business_dl_sjqszqk'), },{ label: "template.dl.dl017.sjqcdqk", prop: "sjqcdqk", width: 180, bodyType: "select", bodyFillType: "actFill", - options: this.getDictOptions('business_dl_sjqcdqk'), + bodyOptions: this.getDictOptions('business_dl_sjqcdqk'), },{ label: "template.dl.dl017.saqqtqk", prop: "saqqtqk", width: 180, bodyType: "select", bodyFillType: "actFill", - options: this.getDictOptions('business_dl_sjqqtqk'), + bodyOptions: this.getDictOptions('business_dl_sjqqtqk'), },{ label: "template.dl.dl017.ddpyy", prop: "ddpyy", @@ -209,7 +210,6 @@ export default { bodyType: "checkbox", bodyFillType: "actFill", bodyMaxlength: 10, - bodyDisabled: true, },{ label: "template.dl.dl017.xd", prop: "xd", @@ -217,7 +217,6 @@ export default { bodyType: "checkbox", bodyFillType: "actFill", bodyMaxlength: 10, - bodyDisabled: true, },{ label: "template.dl.dl017.sj", prop: "sj", @@ -225,7 +224,6 @@ export default { bodyType: "checkbox", bodyFillType: "actFill", bodyMaxlength: 10, - bodyDisabled: true, },{ label: "template.dl.dl017.ds", prop: "ds", @@ -233,7 +231,6 @@ export default { bodyType: "checkbox", bodyFillType: "actFill", bodyMaxlength: 10, - bodyDisabled: true, },{ label: "template.dl.dl017.dy1gd", prop: "dy1gd", @@ -241,7 +238,6 @@ export default { bodyType: "checkbox", bodyFillType: "actFill", bodyMaxlength: 10, - bodyDisabled: true, },{ label: "template.dl.dl017.dy2gd", prop: "dy2gd", @@ -249,7 +245,6 @@ export default { bodyType: "checkbox", bodyFillType: "actFill", bodyMaxlength: 10, - bodyDisabled: true, },{ label: "template.dl.dl017.dy3gd", prop: "dy3gd", @@ -257,7 +252,6 @@ export default { bodyType: "checkbox", bodyFillType: "actFill", bodyMaxlength: 10, - bodyDisabled: true, },{ label: "template.dl.dl017.dy4gd", prop: "dy4gd", @@ -265,7 +259,6 @@ export default { bodyType: "checkbox", bodyFillType: "actFill", bodyMaxlength: 10, - bodyDisabled: true, }, ] }, @@ -281,13 +274,47 @@ export default { onRegentSubmit(e) { const { selectInfo, key, rowIndex } = e const { row } = selectInfo - console.log('selectInfo==============',selectInfo) - if (key === 'yqbh') { - const params = { - jlzb: row.mc, - xybh: row.xh, + if (key === 'qxbd') { + try { + // 解析前序表单的内容 + const bdnr = JSON.parse(row.bdnr) + console.log('前序表单内容============', bdnr) + // 获取剂量组列表数据 + const stepTableFormData = bdnr.jlzTableData || [] + + if (stepTableFormData.length === 0) { + // 清空当前的细胞操作情况列表数据 + this.$set(this.formData, 'stepTableFormData', []) + this.$message.warning('前序表单中没有剂量组数据') + return + } + + // 从剂量组数据中提取剂量组别和悬液编号 + const itemData = stepTableFormData.map(item => ({ + jlzb: item.jlzb || '', + xybh: item.xybh || '', + sjqszqk: '', + sjqcdqk: '', + saqqtqk: '', + ddpyy: '', + xd: '', + sj: '', + ds: '', + dy1gd: '', + dy2gd: '', + dy3gd: '', + dy4gd: '' + })) + + // 使用 $set 更新 formData,触发 CustomTable 的响应式更新 + this.$set(this.formData, 'stepTableFormData', itemData) + + this.$message.success(`已从前序表单加载 ${itemData.length} 条剂量组数据`) + } catch (error) { + this.$set(this.formData, 'stepTableFormData', []) + console.error('解析前序表单数据失败:', error) + this.$message.error('解析前序表单数据失败') } - this.$refs.yqsyTableRef.updateDataSourceByRowIndex(rowIndex, params) } }, //选择table header下拉框也要更新体积 @@ -329,31 +356,7 @@ export default { } this.configCompleteRequest(postData); }, - //分装回调 - subPackageSubmit(data) { - const { fzsj, rowData, headerSelectFields } = data; - const { fzList = [], dw = "", mybh } = fzsj; - if (fzList && fzList.length > 0) { - const list = fzList.map((item) => { - return { - bh: mybh + item.preCode + item.subCode, - kc: item.num, - kcdw: dw, - } - }) - let postData = { - studyId: this.formData.studyId, - studyFormId: this.formData.id, - bh: mybh, - nd: rowData.actSolutionConcentration || 0, - nddw: headerSelectFields.actSolutionConcentrationUnit, - studySubjectId: this.formData.studySubjectId, - studyFormId:this.formData.id, - list: list - } - this.subPackageRequest(postData); - } - }, + //获取已填写的表单数据 getFilledFormData() { return this.getFilledFormDataByRefs(["baseInfoRef", "swypyjInfoRef", "stepTableRef", "stepRef","remarkRef"]) @@ -366,8 +369,20 @@ export default { getResource() { //使用的试剂、仪器 const stepResource = this.$refs.stepRef.getStepResource() + const hyqkData = this.$refs.stepTableRef?.getFilledFormData() + const tableList = hyqkData?.stepTableFormData || [] + // 从操作步骤中提取试剂和仪器资源 this.resourceTmp = stepResource.sjResource || [] this.yqResourceTmp = stepResource.yqResource || [] + + const sjResourceFromHyqk = tableList + .filter(item => item.xybh) + .map(item => ({ + bh: item.xybh, + type: 'cell' + })) + + this.resourceTmp = [...this.resourceTmp, ...sjResourceFromHyqk] return this.resourceTmp; }, //保存 diff --git a/src/views/business/comps/template/comps/dl/DL018.vue b/src/views/business/comps/template/comps/dl/DL018.vue index 4a245a3..fd828e8 100644 --- a/src/views/business/comps/template/comps/dl/DL018.vue +++ b/src/views/business/comps/template/comps/dl/DL018.vue @@ -12,16 +12,16 @@ + ref="stepTableRef" :columns="stepColumns" :formData="tableFormData">