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"
/>
-
-
-
-
-
- deleteTableRow(rowIndex, 'sysjTableRef')"
- >
-
-
-
-
-
onRegentSubmit(e)"
- :showOperation="fillType === 'actFill'"
- :showAddRow="fillType === 'actFill'"
- :formData="formData"
- :prefixKey="`yqsyTable`"
- >
-
- deleteTableRow(rowIndex, 'yqsyTableRef')"
- >
-
-
+ :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"
/>
-
-
-
- deleteTableRow(rowIndex, 'sysjTableRef')"
- >
-
-
-
-
-
onRegentSubmit(e)"
- :showOperation="fillType === 'actFill'"
- :showAddRow="fillType === 'actFill'"
- :formData="formData"
- :prefixKey="`yqsyTable`"
- >
-
- deleteTableRow(rowIndex, 'yqsyTableRef')"
- >
-
-
+ :dataSource="resource"
+ />
+
+
-
-
-
- deleteTableRow(rowIndex, 'sysjTableRef')"
- >
-
-
-
-
-
onRegentSubmit(e)"
- :showOperation="fillType === 'actFill'"
- :showAddRow="fillType === 'actFill'"
- :formData="formData"
- :prefixKey="`yqsyTable`"
- >
-
- deleteTableRow(rowIndex, 'yqsyTableRef')"
- >
-
-
+ :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 @@
onRegentSubmit"
+ @beforeSaveRecord = "beforeSaveRecord"
:showAddRow="false" :showOperation="false"
- ref="stepTableRef" :columns="stepColumns" :formData="formData">
-
+ 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 @@
onRegentSubmit"
+ @beforeSaveRecord = "beforeSaveRecord"
:showAddRow="false" :showOperation="false"
- ref="stepTableRef" :columns="stepColumns" :formData="formData">
+ ref="stepTableRef" :columns="stepColumns" :formData="tableFormData">