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..aeebc8b 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',
}
}
@@ -436,6 +453,7 @@ export default {
type: '',
formData: {}
})
+ justUpdateFilledFormData();
this.$emit('step-added', this.steps.length)
} catch (error) {
console.error('添加步骤失败:', error)
@@ -447,6 +465,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/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: {
diff --git a/src/views/business/comps/template/comps/sp/SP00456.vue b/src/views/business/comps/template/comps/sp/SP00456.vue
index ee2008b..248877e 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')
}}
@@ -24,8 +40,18 @@
+
+ />
+
@@ -126,15 +152,20 @@ 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";
+import LadderConfig from "@/views/business/comps/template/comps/sp/comps/LadderConfig.vue";
export default {
name: "SP00456",
- components: { BaseInfoFormPackage, LineLabel, TableList, Step, CustomTable, SelectReagentDialog, TableOpertaion },
+ components: { LadderConfig,BaseInfoFormPackage, LineLabel, TableList, Step, CustomTable, SelectReagentDialog, TableOpertaion, TableOpertaionDelete, LadderConfig },
mixins: [templateMixin],
props: {
fillType: {
@@ -155,6 +186,10 @@ export default {
},
},
computed: {
+ //选板信息;
+ jcbColumns(){
+ return getJcbColumnsConfig(this);
+ },
// 存储条件表单配置
storageFormConfig() {
return getStorageConditionFormConfig(this);
@@ -183,6 +218,7 @@ export default {
},
},
data() {
+ const labArr = ["LBA005","LBA007"]
return {
subSolutionVisible: false,
currentSubKey: "",//当前点击的子项key
@@ -193,6 +229,7 @@ export default {
currentTableKey: "",//当前点击的表格key
targetAcSolutionFromTable: true,//是否从表格中获取实际原始溶液浓度
currentRowData: {},//当前点击的行数据
+ isLba: labArr.includes(this.sn),
};
},
mounted() {
@@ -204,7 +241,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 +449,7 @@ export default {
paralleTableFormData: [],
showParalleConfig: true
});
+ this.justUpdateFilledFormData();
},
//新增阶梯配制
handleAddLadder() {
@@ -422,6 +465,7 @@ export default {
ladderTableFormData: [],
showLadderConfig: true
});
+ this.justUpdateFilledFormData();
},
// 删除阶梯配制配置
deleteConfig(type, config) {
@@ -616,8 +660,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,21 +685,26 @@ 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 = [];
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/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
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() || {}