From 0753a6f7eb9076bf7507434c6729bbc7c50b733f Mon Sep 17 00:00:00 2001 From: memorylkf <312904636@qq.com> Date: Mon, 30 Mar 2026 14:31:31 +0800 Subject: [PATCH 01/62] =?UTF-8?q?fix:=20[=E6=A8=A1=E6=9D=BF=E7=AE=A1?= =?UTF-8?q?=E7=90=86]=20dl003=E8=87=AA=E5=AE=9A=E4=B9=89=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/business/comps/template/comps/dl/DL003.vue | 13 +++++++------ src/views/business/comps/template/comps/dl/DL013.vue | 2 +- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/views/business/comps/template/comps/dl/DL003.vue b/src/views/business/comps/template/comps/dl/DL003.vue index 6eea372..c0c027b 100644 --- a/src/views/business/comps/template/comps/dl/DL003.vue +++ b/src/views/business/comps/template/comps/dl/DL003.vue @@ -364,6 +364,7 @@ export default { }, getResource() { let content = this.getFilledFormData(); + let formData = this.formData; //生成resource let tmpResource = [] let tmpYq = [] @@ -452,16 +453,16 @@ export default { } } tmpYq.push({ - mc: content.pykssjmc, - xh: content.pykssjxh, + mc: content.pykssjmc || formData.pykssjmc, + xh: content.pykssjxh || formData.pykssjxh, bh: content.fssygbh, - jzrq: content.pykssjjzrq, + jzrq: content.pykssjjzrq || formData.pykssjjzrq, }) tmpYq.push({ - mc: content.pyxmc, - xh: content.pyxxh, + mc: content.pyxmc || formData.pyxmc, + xh: content.pyxxh || formData.pyxxh, bh: content.pyx, - jzrq: content.pyxjzrq, + jzrq: content.pyxjzrq || formData.pyxjzrq, }) this.yqResourceTmp = tmpYq } diff --git a/src/views/business/comps/template/comps/dl/DL013.vue b/src/views/business/comps/template/comps/dl/DL013.vue index 52672c0..5fe7dfc 100644 --- a/src/views/business/comps/template/comps/dl/DL013.vue +++ b/src/views/business/comps/template/comps/dl/DL013.vue @@ -269,7 +269,7 @@ export default { subType: 'select', subKey: 'xbxytjUnit', fillType: 'actFill', - subOptions: this.getDictOptions('business_nddw'), + subOptions: this.getDictOptions('business_tjdw'), maxlength: 10 } } From 7edc9128b4141500c32645263d7db5ffeb744c25 Mon Sep 17 00:00:00 2001 From: luojie <125330818@qq.com> Date: Mon, 30 Mar 2026 14:40:24 +0800 Subject: [PATCH 02/62] =?UTF-8?q?feat:[=E6=A8=A1=E6=9D=BF=E7=AE=A1?= =?UTF-8?q?=E7=90=86][update]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/Template/BaseInfoFormPackage.vue | 7 +- src/components/Template/HandleFormItem.vue | 4 + .../Template/StepComponents/ZLSubPackage.vue | 1 + .../Template/StepComponents/pcr/hsypfz.vue | 1 + .../Template/StepComponents/pcrfxyp/cdnsypfz.vue | 1 + src/components/Template/StepComponents/ry/fz.vue | 13 +- src/components/Template/mixins/stepMixins.js | 332 +++++++++++---------- .../business/comps/template/comps/dl/DL011.vue | 10 +- .../business/comps/template/comps/dl/DL012.vue | 13 +- .../comps/template/dialog/SubPackageDialog.vue | 4 +- 10 files changed, 216 insertions(+), 170 deletions(-) diff --git a/src/components/Template/BaseInfoFormPackage.vue b/src/components/Template/BaseInfoFormPackage.vue index 7350c5b..2d788eb 100644 --- a/src/components/Template/BaseInfoFormPackage.vue +++ b/src/components/Template/BaseInfoFormPackage.vue @@ -183,7 +183,7 @@ :style="{ 'width': sItem.labelWidth ? sItem.labelWidth + 'px' : '150px' }" v-if="sItem.label"> {{ $t(sItem.label) }} -
+
{{ formFields[key] }}
@@ -691,4 +691,9 @@ export default { width: 120px; text-align: center; } +.span-text { + font-size: 14px; + font-weight: normal; + color: #606266; +} \ No newline at end of file diff --git a/src/components/Template/HandleFormItem.vue b/src/components/Template/HandleFormItem.vue index d33f339..fcccc06 100644 --- a/src/components/Template/HandleFormItem.vue +++ b/src/components/Template/HandleFormItem.vue @@ -657,6 +657,10 @@ export default { // 点击按钮 handleClickButton(item) { this.inputValue = `button-${new Date().getTime()}`; + if(item.noSign){//不需要签名的直接emit + this.$emit("clickButton", item); + return; + } this.onCommonHandleSaveRecord(this.inputValue); }, onDateChange(val, format) { diff --git a/src/components/Template/StepComponents/ZLSubPackage.vue b/src/components/Template/StepComponents/ZLSubPackage.vue index 78c6d8a..fcfcb40 100644 --- a/src/components/Template/StepComponents/ZLSubPackage.vue +++ b/src/components/Template/StepComponents/ZLSubPackage.vue @@ -210,6 +210,7 @@ export default { // 根据输入的数量生成新列表 for (let i = 0; i < fzList.length; i++) { fzList[i].subCode = codes[i]; + fzList[i].preCode = `${mybh}-set${codes[i]}` } justUpdateFilledFormData() } diff --git a/src/components/Template/StepComponents/pcr/hsypfz.vue b/src/components/Template/StepComponents/pcr/hsypfz.vue index 5c2afca..20be290 100644 --- a/src/components/Template/StepComponents/pcr/hsypfz.vue +++ b/src/components/Template/StepComponents/pcr/hsypfz.vue @@ -102,6 +102,7 @@ export default { fillType: "actFill", fzType: "step", buttonName: "分装", + noSign: true, maxVolumeField: "sjtj", maxVolumeUnitField: "sjtjdw", myCodeFields: ["lbbh", "lbbhCode"], diff --git a/src/components/Template/StepComponents/pcrfxyp/cdnsypfz.vue b/src/components/Template/StepComponents/pcrfxyp/cdnsypfz.vue index ebc2d90..3e2e849 100644 --- a/src/components/Template/StepComponents/pcrfxyp/cdnsypfz.vue +++ b/src/components/Template/StepComponents/pcrfxyp/cdnsypfz.vue @@ -97,6 +97,7 @@ export default { type:"button", buttonName:"分装", fzType: "step", + noSign: true, maxVolumeField: "sjtj", maxVolumeUnitField: "sjtjdw", myCodeFields: ["lbbh", "lbbhCode"], diff --git a/src/components/Template/StepComponents/ry/fz.vue b/src/components/Template/StepComponents/ry/fz.vue index aadbfd4..e14fc79 100644 --- a/src/components/Template/StepComponents/ry/fz.vue +++ b/src/components/Template/StepComponents/ry/fz.vue @@ -1,6 +1,6 @@ diff --git a/src/components/Template/mixins/stepMixins.js b/src/components/Template/mixins/stepMixins.js index 1b6fc21..6610cef 100644 --- a/src/components/Template/mixins/stepMixins.js +++ b/src/components/Template/mixins/stepMixins.js @@ -1,167 +1,179 @@ -import { getuuid ,justUpdateFilledFormData} from '@/utils/index.js' +import { getuuid, justUpdateFilledFormData } from '@/utils/index.js' import { EventBus } from '@/utils/eventBus' import { getLatestSn, getLatestSnArr } from '@/api/template' export default { - inject: ['templateFillType'], - dicts: [ - 'business_tjdw', - 'business_czhj', - 'business_rqcz', - 'business_zldw', - 'business_yqscdw', - 'business_zsdw', - 'business_wddw', - 'business_ccwz', - 'business_ggdw', - 'business_hjxx', - 'business_zzzc', - 'business_step_pcr', - 'business_fycx', - 'business_step_pcrfxyp', - 'business_cctj' - ], - props: { - formData: { - type: Object, - default: () => ({}) - }, - stepIndex: { - type: String, - default: '' - } - }, - data() { - return { - uuid: getuuid(), - fzInfo:{}, - } - }, - mounted() { - EventBus.$on('dialogSubPackageSubmit', (data) => { - this.onSubPackageSubmit(data) - }) - EventBus.$on('subPackageDialogPrintTag', (data) => { - this.onPrintTag(data) - }) - }, - destroyed() { - EventBus.$off('dialogSubPackageSubmit') - EventBus.$off('subPackageDialogPrintTag') - }, + inject: ['templateFillType', 'getMybh'], + dicts: [ + 'business_tjdw', + 'business_czhj', + 'business_rqcz', + 'business_zldw', + 'business_yqscdw', + 'business_zsdw', + 'business_wddw', + 'business_ccwz', + 'business_ggdw', + 'business_hjxx', + 'business_zzzc', + 'business_step_pcr', + 'business_fycx', + 'business_step_pcrfxyp', + 'business_cctj' + ], + props: { + formData: { + type: Object, + default: () => ({}) + }, + stepIndex: { + type: String, + default: '' + } + }, + data() { + return { + uuid: getuuid(), + fzInfo: {}, + } + }, + mounted() { + EventBus.$on('dialogSubPackageSubmit', (data) => { + this.onSubPackageSubmit(data) + }) + EventBus.$on('subPackageDialogPrintTag', (data) => { + this.onPrintTag(data) + }) + }, + destroyed() { + EventBus.$off('dialogSubPackageSubmit') + EventBus.$off('subPackageDialogPrintTag') + }, - methods: { - //回填编号 preField 前缀 updateField 需要更新的字段 - async handleBackfillCode(preField,updateField){ - const updateValue = this.formData[updateField]; - if (this.templateFillType === 'actFill' && !updateValue) { - const stepFormData = this.getFilledFormData(); - const preValue = stepFormData[preField]; - const result = await this.getLatestSn({ - pre: preValue, - }) - this.$refs.stepFormPackageRef.updateFormData(updateField,result[0]) - this.justUpdateFilledFormData(); - } - }, - justUpdateFilledFormData(){ - justUpdateFilledFormData(); - }, - //获取最新的多个编号 - async getLatestSnArr(params) { - const res = await getLatestSnArr(params) - if (res.code === 200) { - return res.data - } - return [] - }, - async getLatestSn(params) { - const defaultParams = { - count: 1, - type: 1, - pre: '' - } - const finalParams = { ...defaultParams, ...params } - const res = await getLatestSn(finalParams) - if (res.code === 200) { - return res.data - } - return [] - }, - // 打印标签 - onPrintTag(data) { - this.$emit('printTag') - }, - onSubPackageSubmit(data) { - if (data.uuid === this.uuid) { - delete data.uuid //删除uuid字段,不然会导致下次匹配的时候匹配到错误的uuid - this.$refs.stepFormPackageRef.updateFormData('fzInfo',data) - this.justUpdateFilledFormData(); - } - }, - // 点击按钮 - onHandleClickButton(e, item, key) { - const { - buttonName = '', - myCodeFields = [], - maxVolumeField = '', - maxVolumeUnitField = '' - } = e + methods: { + //回填编号 preField 前缀 updateField 需要更新的字段 + async handleBackfillCode(preField, updateField) { + const updateValue = this.formData[updateField]; + if (this.templateFillType === 'actFill' && !updateValue) { + const stepFormData = this.getFilledFormData(); + const preValue = stepFormData[preField]; + const result = await this.getLatestSn({ + pre: preValue, + }) + this.$refs.stepFormPackageRef.updateFormData(updateField, result[0]) + this.justUpdateFilledFormData(); + } + }, + justUpdateFilledFormData() { + justUpdateFilledFormData(); + }, + //获取最新的多个编号 + async getLatestSnArr(params) { + const res = await getLatestSnArr(params) + if (res.code === 200) { + return res.data + } + return [] + }, + async getLatestSn(params) { + const defaultParams = { + count: 1, + type: 1, + pre: '' + } + const finalParams = { ...defaultParams, ...params } + const res = await getLatestSn(finalParams) + if (res.code === 200) { + return res.data + } + return [] + }, + // 打印标签 + onPrintTag(data) { + this.$emit('printTag') + }, + onSubPackageSubmit(data) { + if (data.uuid === this.uuid) { + delete data.uuid //删除uuid字段,不然会导致下次匹配的时候匹配到错误的uuid + this.$refs.stepFormPackageRef.updateFormData('fzInfo', data) + this.justUpdateFilledFormData(); + } + }, + // 点击按钮 + onHandleClickButton(e, item, key) { + const { + buttonName = '', + myCodeFields = [], + maxVolumeField = '', + maxVolumeUnitField = '' + } = e - if (buttonName === '分装') { - const fields = [] - const stepFormData = this.getFilledFormData() - if (!myCodeFields.length || !maxVolumeField || !maxVolumeUnitField) { - console.warn('请配制分装参数') - return - } - const fzInfo = stepFormData.fzInfo || this.formData.fzInfo; - const maxVolume = stepFormData[maxVolumeField] - const maxVolumeUnit = stepFormData[maxVolumeUnitField] - myCodeFields.forEach((key) => { - fields.push(stepFormData[key]) - }) - EventBus.$emit('showSubPackageDialog', { - mybh: fields.join(''), - fzType: 'step', - ...fzInfo, - maxVolume, - maxVolumeUnit, - uuid: this.uuid, - }) - } - }, + if (buttonName === '分装') { + const stepFormData = this.getFilledFormData() + const fzInfo = stepFormData.fzInfo || this.formData.fzInfo; + let fields = [] + let maxVolume, maxVolumeUnit; + if (this.getMybh) { + const { mybh, maxVolume:max, maxVolumeUnit:unit } = this.getMybh() + if(!mybh || !max || !unit){ + this.$message.warning('请先填写分装数据') + return + } + fields.push(mybh) + maxVolume = max || '' + maxVolumeUnit = unit || '' + } else { + if (!myCodeFields.length || !maxVolumeField || !maxVolumeUnitField) { + this.$message.warning('请配制分装参数') + return + } + maxVolume = stepFormData[maxVolumeField] + maxVolumeUnit = stepFormData[maxVolumeUnitField] + myCodeFields.forEach((key) => { + fields.push(stepFormData[key]) + }) + } + EventBus.$emit('showSubPackageDialog', { + mybh: fields.join(''), + fzType: 'step', + ...fzInfo, + maxVolume, + maxVolumeUnit, + uuid: this.uuid, + }) + } + }, - async getFormData() { - const data = await this.$refs.stepFormPackageRef.getFormData(); - data.fzInfo = data.fzInfo || this.formData.fzInfo; - return data - }, - getFilledFormData() { - const data = this.$refs.stepFormPackageRef?.getFilledFormData(); - data.fzInfo = data.fzInfo || this.formData.fzInfo; - return data - }, - getSjResource() { - const data = this.$refs.stepFormPackageRef?.getSjResource(); - data.fzInfo = data.fzInfo || this.formData.fzInfo; - return data - }, - //试验配制条件options - getDictOptions(dictType) { - return this.dict.type[dictType] || [] - }, - resetRecord() { - this.$refs.stepFormPackageRef.resetRecord() - }, - //更新温层数据 - updateWcData(key, value) { - const options = this.getDictOptions('business_ccwz') - const selectedOption = options.find((item) => item.value === value) - if (selectedOption) { - this.$refs.stepFormPackageRef.updateFormData(key, [ - selectedOption.raw.remark - ]) - } - } - } + async getFormData() { + const data = await this.$refs.stepFormPackageRef.getFormData(); + data.fzInfo = data.fzInfo || this.formData.fzInfo; + return data + }, + getFilledFormData() { + const data = this.$refs.stepFormPackageRef?.getFilledFormData(); + data.fzInfo = data.fzInfo || this.formData.fzInfo; + return data + }, + getSjResource() { + const data = this.$refs.stepFormPackageRef?.getSjResource(); + data.fzInfo = data.fzInfo || this.formData.fzInfo; + return data + }, + //试验配制条件options + getDictOptions(dictType) { + return this.dict.type[dictType] || [] + }, + resetRecord() { + this.$refs.stepFormPackageRef.resetRecord() + }, + //更新温层数据 + updateWcData(key, value) { + const options = this.getDictOptions('business_ccwz') + const selectedOption = options.find((item) => item.value === value) + if (selectedOption) { + this.$refs.stepFormPackageRef.updateFormData(key, [ + selectedOption.raw.remark + ]) + } + } + } } diff --git a/src/views/business/comps/template/comps/dl/DL011.vue b/src/views/business/comps/template/comps/dl/DL011.vue index 15463f8..aa423b5 100644 --- a/src/views/business/comps/template/comps/dl/DL011.vue +++ b/src/views/business/comps/template/comps/dl/DL011.vue @@ -107,6 +107,14 @@ export default { TableOpertaionDelete }, mixins: [templateMixin], + provide() { + return { + getMybh: ()=>{ + const data = this.$refs[refConf.xbxx].getFilledFormData() + return {mybh:data.fshxbbh+data.fshxbbhCodeSn,maxVolume:data.fshxbsjtj,maxVolumeUnit:data.fshxbsjtjUnit} + } + } + }, props: { fillType: { type: String, @@ -261,7 +269,7 @@ export default { fillType: 'actFill', copyFrom: 'fshxbyjtj', compareTo: 'fshxbyjtj', - subOptions: this.getDictOptions('business_nddw'), + subOptions: this.getDictOptions('business_tjdw'), maxlength: 10 } } diff --git a/src/views/business/comps/template/comps/dl/DL012.vue b/src/views/business/comps/template/comps/dl/DL012.vue index 0abc403..00b6ba4 100644 --- a/src/views/business/comps/template/comps/dl/DL012.vue +++ b/src/views/business/comps/template/comps/dl/DL012.vue @@ -72,6 +72,15 @@ export default { TableOpertaionDelete }, mixins: [templateMixin], + provide() { + return { + getMybh: ()=>{ + const data = this.$refs[refConf.xbxx].getFilledFormData() + console.log(data,"ddd") + return {mybh:data.fshxbbh+data.fshxbbhCodeSn,maxVolume:data.fshxbsjtj,maxVolumeUnit:data.fshxbsjtjUnit} + } + } + }, props: { fillType: { type: String, @@ -229,7 +238,7 @@ export default { subType: 'select', subKey: 'fshxbyjtjUnit', fillType: 'preFill', - subOptions: this.getDictOptions('business_nddw'), + subOptions: this.getDictOptions('business_tjdw'), maxlength: 10, // selectTo: 'zbhxbsjtjUnit' }, @@ -239,7 +248,7 @@ export default { subType: 'select', subKey: 'zbhxbsjtjUnit', fillType: 'actFill', - subOptions: this.getDictOptions('business_nddw'), + subOptions: this.getDictOptions('business_tjdw'), maxlength: 10, compareTo: 'zbhxbyjtj', copyFrom: 'zbhxbyjtj' diff --git a/src/views/business/comps/template/dialog/SubPackageDialog.vue b/src/views/business/comps/template/dialog/SubPackageDialog.vue index b2cdd0a..bee56e8 100644 --- a/src/views/business/comps/template/dialog/SubPackageDialog.vue +++ b/src/views/business/comps/template/dialog/SubPackageDialog.vue @@ -109,7 +109,7 @@ export default { unitItem() { return { type: "select", - fillType: "preFill", + fillType: "actFill", options: this.dict.type.business_tjdw } } @@ -378,7 +378,7 @@ export default { this.fzList.push({ num: "", subCode: codes[i], - preCode: `-set${codes[i]}` + preCode: `${this.formData.mybh}-set${codes[i]}` }); // 同步初始化错误状态数组 this.fzListErrors.push(false); From 5a3ab4c13ce1a3a4b33b62a042fe1daac3c50419 Mon Sep 17 00:00:00 2001 From: memorylkf <312904636@qq.com> Date: Mon, 30 Mar 2026 15:20:38 +0800 Subject: [PATCH 03/62] =?UTF-8?q?fix:=20[=E6=A8=A1=E6=9D=BF=E7=AE=A1?= =?UTF-8?q?=E7=90=86]=20=E9=9D=9E=E9=85=8D=E7=BD=AE=E5=AD=97=E6=AE=B5?= =?UTF-8?q?=E7=9A=84=E8=B5=8B=E5=80=BC=E4=BD=BF=E7=94=A8=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/business/comps/template/comps/dl/DL006.vue | 7 ++++--- src/views/business/comps/template/comps/dl/DL011.vue | 7 ++++--- src/views/business/comps/template/comps/dl/DL012.vue | 7 ++++--- src/views/business/comps/template/comps/dl/DL022.vue | 7 ++++--- 4 files changed, 16 insertions(+), 12 deletions(-) diff --git a/src/views/business/comps/template/comps/dl/DL006.vue b/src/views/business/comps/template/comps/dl/DL006.vue index 98cfded..ce95c07 100644 --- a/src/views/business/comps/template/comps/dl/DL006.vue +++ b/src/views/business/comps/template/comps/dl/DL006.vue @@ -476,6 +476,7 @@ export default { }, getResource() { let content = this.getFilledFormData(); + let formData = this.formData; let tmpResource = [] let tmpYq = [] let addYq = [] @@ -548,10 +549,10 @@ export default { } } tmpYq.push({ - mc: content.pyxbhmc, - xh: content.pyxbhxh, + mc: content.pyxbhmc || formData.pyxbhmc, + xh: content.pyxbhxh || formData.pyxbhxh, bh: content.pyxbh, - jzrq: content.pyxbhjzrq, + jzrq: content.pyxbhjzrq || formData.pyxbhjzrq, }) } const stepResource = this.$refs.stepRef.getStepResource() diff --git a/src/views/business/comps/template/comps/dl/DL011.vue b/src/views/business/comps/template/comps/dl/DL011.vue index aa423b5..fbf0b59 100644 --- a/src/views/business/comps/template/comps/dl/DL011.vue +++ b/src/views/business/comps/template/comps/dl/DL011.vue @@ -363,6 +363,7 @@ export default { }, getResource() { const content = this.getFilledFormData() + let formData = this.formData; let tmpResource = [] let tmpYq = [] //生成细胞 @@ -405,10 +406,10 @@ export default { }) //使用仪器 tmpYq.push({ - mc: content.pyxbh_mc, - xh: content.pyxbh_xh, + mc: content.pyxbh_mc || formData.pyxbh_mc, + xh: content.pyxbh_xh || formData.pyxbh_xh, bh: content.pyxbh, - jzrq: content.pyxbh_jzrq + jzrq: content.pyxbh_jzrq || formData.pyxbh_jzrq, }) //使用的试剂、仪器 const stepResource = this.$refs.stepRef.getStepResource() diff --git a/src/views/business/comps/template/comps/dl/DL012.vue b/src/views/business/comps/template/comps/dl/DL012.vue index 00b6ba4..531f5ea 100644 --- a/src/views/business/comps/template/comps/dl/DL012.vue +++ b/src/views/business/comps/template/comps/dl/DL012.vue @@ -369,6 +369,7 @@ export default { }, getResource() { const content = this.getFilledFormData() + let formData = this.formData; let tmpResource = [] let tmpYq = [] //生成细胞 @@ -413,10 +414,10 @@ export default { }) //使用仪器 tmpYq.push({ - mc: content.pyxbh_mc, - xh: content.pyxbh_xh, + mc: content.pyxbh_mc || formData.pyxbh_mc, + xh: content.pyxbh_xh || formData.pyxbh_xh, bh: content.pyxbh, - jzrq: content.pyxbh_jzrq, + jzrq: content.pyxbh_jzrq || formData.pyxbh_jzrq, }) //使用的试剂、仪器 const stepResource = this.$refs.stepRef.getStepResource() diff --git a/src/views/business/comps/template/comps/dl/DL022.vue b/src/views/business/comps/template/comps/dl/DL022.vue index e9a0aab..6891ae9 100644 --- a/src/views/business/comps/template/comps/dl/DL022.vue +++ b/src/views/business/comps/template/comps/dl/DL022.vue @@ -343,12 +343,13 @@ export default { }, getResource() { let content = this.getFilledFormData(); + let formData = this.formData; let tmpYq = [] tmpYq.push({ - mc: content.wxjmc, - xh: content.wxjxh, + mc: content.wxjmc || formData.wxjmc, + xh: content.wxjxh || formData.wxjxh, bh: content.xwj, - jzrq: content.wxjjzrq, + jzrq: content.wxjjzrq || formData.wxjjzrq, }) this.resourceTmp = [] From ca3dae947e2a04f06a985cc083a9fe25c6c4ff4c Mon Sep 17 00:00:00 2001 From: "15881625488@163.com" <15881625488@163.com> Date: Mon, 30 Mar 2026 16:31:18 +0800 Subject: [PATCH 04/62] =?UTF-8?q?fix:[=E8=B5=84=E6=BA=90=E5=BA=93=E7=AE=A1?= =?UTF-8?q?=E7=90=86]bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/business/comps/select/SelectStudy.vue | 2 + src/views/business/resource/gyzj/comps/gyzj/Ff.vue | 81 +++++++++++++--------- .../resource/gyzj/comps/gyzj/SelectList.vue | 1 + 3 files changed, 52 insertions(+), 32 deletions(-) diff --git a/src/views/business/comps/select/SelectStudy.vue b/src/views/business/comps/select/SelectStudy.vue index 29ccfb5..bb2127a 100644 --- a/src/views/business/comps/select/SelectStudy.vue +++ b/src/views/business/comps/select/SelectStudy.vue @@ -53,6 +53,8 @@ export default { showStudy() { if (!this.disabled) { this.$refs.selectStudyDialog.show({ needPre: this.needPre }) + this.$emit('change', _.merge({}, { key: this.selectkey })) + this.$emit('input',null) } }, handleChange(obj) { diff --git a/src/views/business/resource/gyzj/comps/gyzj/Ff.vue b/src/views/business/resource/gyzj/comps/gyzj/Ff.vue index efa40b7..96a6f70 100644 --- a/src/views/business/resource/gyzj/comps/gyzj/Ff.vue +++ b/src/views/business/resource/gyzj/comps/gyzj/Ff.vue @@ -3,8 +3,10 @@ - -
+ +
@@ -83,7 +85,7 @@ + }} @@ -104,7 +106,7 @@ + }} @@ -122,7 +124,7 @@ - + @@ -140,26 +142,26 @@ - + - + - + - + @@ -172,21 +174,21 @@ - + - + - + @@ -200,7 +202,8 @@ @@ -218,7 +221,7 @@ import SelectBalanceValue from '@/views/business/comps/select/SelectBalanceValue export default { name: "Ff", - components: { SelectList, SelectDeptUser, SelectStudy, BusinessSelect,SelectBalanceValue }, + components: { SelectList, SelectDeptUser, SelectStudy, BusinessSelect, SelectBalanceValue }, data() { return { isBatch: false, @@ -298,17 +301,27 @@ export default { created() { }, methods: { + validateForm() { + setTimeout(() => { + this.$refs["form"].validate(valid => { + if (valid) { } + }) + }, 200) + }, selectStudyChange(val) { this.form.mdMcs = val.name this.form.mdOther = val.mdOther }, selectStudyChangeBatch(val) { let that = this - if (val && val.id && val.id !== '') { - const _index = _.findIndex(that.selectList, function (o) { return o.id + '' === val.key }) - if (_index > -1) { + const _index = _.findIndex(that.selectList, function (o) { return o.id + '' === val.key }) + if (_index > -1) { + if (val && val.id && val.id !== '') { that.selectList[_index].mdMcs = val.name that.selectList[_index].mdOther = val.mdOther + } else { + that.selectList[_index].mdMcs = null + that.selectList[_index].mdOther = null } } }, @@ -340,7 +353,7 @@ export default { sxrq: item.sxrq, ccwz: item.ccwz, zytj: null, - ckmz:null, + ckmz: null, mdIds: null, ckmz: null, mdMcs: null, @@ -375,8 +388,8 @@ export default { ffr1mm: null, ffr2Id: null, ffr2Mc: null, - ckmz:null, - ckl:null, + ckmz: null, + ckl: null, ffr2mm: null, qmyy: this.$t('page.business.resource.gyzj.lqff'), qmrmm: null, @@ -412,23 +425,27 @@ export default { if (this.selectList.length <= 0) { this.$modal.msgError("请选择要操作的给药制剂") } else { - for (var i = 0; i < params.list.length; i++) { + for (var i = 0; i < params.list.length; i++) { if (!params.list[i].zytj || params.list[i].zytj == '') { - this.$modal.msgError(params.list[i].mc + "转移条件不能为空") - return - } - if (!params.list[i].ckmz || params.list[i].ckmz == '') { - this.$modal.msgError(params.list[i].mc + "出库毛重不能为空") + // this.$modal.msgError(params.list[i].mc + "转移条件不能为空") + this.$modal.msgError( "转移条件不能为空") return } if (!params.list[i].mdMcs || params.list[i].mdMcs == '') { if (!params.list[i].mdOther || params.list[i].mdOther == '') { - this.$modal.msgError(params.list[i].mc + "目的不能为空") + // this.$modal.msgError(params.list[i].mc + "目的不能为空") + this.$modal.msgError( "目的不能为空") } return } + if (!params.list[i].ckmz || params.list[i].ckmz == '') { + // this.$modal.msgError(params.list[i].mc + "出库毛重不能为空") + this.$modal.msgError( "出库毛重不能为空") + return + } if (!params.list[i].remark || params.list[i].remark == '') { - this.$modal.msgError(params.list[i].mc + "备注不能为空") + // this.$modal.msgError(params.list[i].mc + "备注不能为空") + this.$modal.msgError( "备注不能为空") return } } diff --git a/src/views/business/resource/gyzj/comps/gyzj/SelectList.vue b/src/views/business/resource/gyzj/comps/gyzj/SelectList.vue index 2588250..8cd81ea 100644 --- a/src/views/business/resource/gyzj/comps/gyzj/SelectList.vue +++ b/src/views/business/resource/gyzj/comps/gyzj/SelectList.vue @@ -6,6 +6,7 @@ +
{{sItem.otherLabel ? $t(sItem.otherLabel) : $t("template.common.other") }}
@@ -70,6 +73,7 @@ \ No newline at end of file + \ No newline at end of file diff --git a/src/components/Template/StepComponents/jcb/js_jcb.vue b/src/components/Template/StepComponents/jcb/js_jcb.vue index a9b57a5..5cf6524 100644 --- a/src/components/Template/StepComponents/jcb/js_jcb.vue +++ b/src/components/Template/StepComponents/jcb/js_jcb.vue @@ -1,6 +1,6 @@ + + \ No newline at end of file diff --git a/src/components/Template/StepComponents/xb/bpqr.vue b/src/components/Template/StepComponents/xb/bpqr.vue index 4785a9e..2b80039 100644 --- a/src/components/Template/StepComponents/xb/bpqr.vue +++ b/src/components/Template/StepComponents/xb/bpqr.vue @@ -52,13 +52,43 @@ export default { otherCode: "ccwzOther", }, text3: { - label: "冰冻时长为", + label: "冰冻时长预计为", type: "text", }, sj: { fillType: "actFill", type: "input", }, + text6:{ + type:"text", + label:"冰冻", + }, + startDate: { + type: "input", + fillType: "actFill", + disabled: true, + }, + button1:{ + type:"button", + buttonName:"开始", + }, + text7:{ + type:"text", + label:"冰冻", + }, + endDate: { + type: "input", + fillType: "actFill", + disabled: true, + }, + button2:{ + type:"button", + buttonName:"结束", + }, + text8: { + type: "text", + label: "。", + } } }] return config From 9aac4f14188e8c7697290ff8420428f1944656da Mon Sep 17 00:00:00 2001 From: "15881625488@163.com" <15881625488@163.com> Date: Wed, 1 Apr 2026 16:20:36 +0800 Subject: [PATCH 35/62] =?UTF-8?q?fix:[=E6=A8=A1=E6=9D=BF=E7=AE=A1=E7=90=86?= =?UTF-8?q?]=E5=AF=BC=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/business/study/studyFormFill.js | 10 ++ .../business/comps/template/comps/gsp/GSP015.vue | 130 ++++++++++++++++----- 2 files changed, 109 insertions(+), 31 deletions(-) diff --git a/src/api/business/study/studyFormFill.js b/src/api/business/study/studyFormFill.js index 009ca76..119f8b8 100644 --- a/src/api/business/study/studyFormFill.js +++ b/src/api/business/study/studyFormFill.js @@ -24,6 +24,16 @@ export function studyFormFill_exportDetail(query) { params: query }) } + +export function studyFormFill_exportTbByFileUrl(query) { + return request({ + url: '/system/business/studyFormFill/exportTbByFileUrl', + method: 'get', + params: query + }) +} + + export function studyFormFill_exportByFileUrl(query) { return request({ url: '/system/business/studyFormFill/exportByFileUrl', diff --git a/src/views/business/comps/template/comps/gsp/GSP015.vue b/src/views/business/comps/template/comps/gsp/GSP015.vue index 3f0c67e..2478c32 100644 --- a/src/views/business/comps/template/comps/gsp/GSP015.vue +++ b/src/views/business/comps/template/comps/gsp/GSP015.vue @@ -18,7 +18,7 @@ @click="onExportXqjyxx">导出 + }" ref="html2PdfXqjyxx" @beforeDownload="handleBeforeDownload" @progress="onProgressXqjyxx">
@@ -85,9 +85,9 @@ @click="onAdd('ecDataList')">新增 导出 - + }" ref="html2PdfEcxsxx" @beforeDownload="handleBeforeDownload" @progress="onProgressEcxsxx">
-
-
-
- - {{ - $t('template.common.deleteBtn') - }} - -
- - - - -
-
+
+
+
+ + {{ + $t('template.common.deleteBtn') + }} + +
+ + + + +
+
@@ -161,7 +161,9 @@ import { getuuid, justUpdateFilledFormData } from "@/utils/index"; import { isCommonUnit } from "@/utils/conTools"; import { convertConcentration } from "@/utils/conConverter";//浓度单位转换 import { volumeConverter } from "@/utils/volConverter";//体积单位转换 +import { getToken } from "@/utils/auth" import moment from "moment";//时间处理 +import { studyFormFill_exportTbByFileUrl } from "@/api/business/study/studyFormFill" import { getBaseInfoFormConfig, getRemarkFormConfig, getYbsmFormConfig, getQyTableColumns, getJyTableColumns, getEcFormConfig } from "../../formConfig/gsp/gsp015"; const refConfig = { baseInfoRef: "baseInfoRef", @@ -213,12 +215,78 @@ export default { return { refConfig, currentIndex: -1, + appTitle: process.env.VUE_APP_TITLE, + baseUrl: process.env.VUE_APP_FILE_DOMAIN, + uploadFileUrl: process.env.VUE_APP_BASE_API + '/file/upload', // 上传文件服务器地址 }; }, mounted() { }, methods: { + //获取文件blog + async handleBeforeDownload({ html2pdf, options, pdfContent }) { + this.$modal.loading() + // 1. 使用 html2pdf 手动构建 PDF,并获取底层的 jsPDF 实例 + const pdf = await html2pdf() + .set(options) // 应用你的配制选项 + .from(pdfContent) // 指定 PDF 内容 + .toPdf() // 转换为 PDF + .get('pdf'); // 获取 jsPDF 实例 + + // 2. 从 jsPDF 实例中输出 Blob 对象 + const blob = pdf.output('blob'); + + // 3. 将 Blob 上传到你的服务器 + await this.uploadPdfToServer(blob); + + // 注意:如果你还想让文件自动下载,可以在这里调用 .save() + // pdf.save('my-document.pdf'); + }, + //上传到服务器 + async uploadPdfToServer(blob) { + let that=this + const formData = new FormData(); + formData.append('file', blob, 'hxhq-export-form.pdf'); + try { + const response = await fetch(this.uploadFileUrl, { + method: 'POST', + headers: { + Authorization: "Bearer " + getToken(), + }, + body: formData + }); + // 检查响应状态 + if (!response.ok) { + // 如果响应不成功,可以尝试获取错误信息 + const errorData = await response.json().catch(() => ({})); + throw new Error(errorData.message || `HTTP error! status: ${response.status}`); + } + // 获取 JSON 数据 + const data = await response.json(); + // console.log('返回的JSON数据:', data); + if (data.code == 200) { + studyFormFill_exportTbByFileUrl( + { + url: data.data.url, + studyFormFillId:that.formData.id, + version: that.appTitle, + lang: that.$store.getters.language.split("_")[0] + } + ).then(response => { + window.open(that.baseUrl + response.msg) + }).finally(() => { + this.$modal.closeLoading() + }) + } else { + this.$modal.msgError(data.msg) + this.$modal.closeLoading() + } + } catch (error) { + this.$modal.msgError("导出失败,稍后再试") + this.$modal.closeLoading() + } + }, onConfigComplete(e, type) { const { rowData, headerSelectFields } = e; let params = { From 186957cd99238093aef4a350714aee2343994b7a Mon Sep 17 00:00:00 2001 From: luojie <125330818@qq.com> Date: Wed, 1 Apr 2026 16:53:15 +0800 Subject: [PATCH 36/62] =?UTF-8?q?feat:[=E6=A8=A1=E6=9D=BF=E7=AE=A1?= =?UTF-8?q?=E7=90=86][update]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/Template/BaseInfoFormPackage.vue | 16 +- src/components/Template/Step.vue | 10 +- src/components/Template/StepComponents/JcbComp.vue | 10 +- .../Template/StepComponents/stepNameConfig.js | 208 +++++++++++++++++++++ src/components/Template/StepFormPackage.vue | 6 +- src/components/Template/mixins/stepMixins.js | 59 ++++-- .../business/comps/template/TemplateTable.vue | 1 + .../comps/template/comps/gsp/DMYPPZJLB.vue | 9 + .../business/comps/template/comps/gsp/GSP001.vue | 15 +- .../business/comps/template/comps/gsp/GSP003.vue | 9 + .../business/comps/template/comps/gsp/GSP005.vue | 35 +++- .../business/comps/template/comps/gsp/GSP010.vue | 9 + .../business/comps/template/comps/lba/LBA002.vue | 5 + 13 files changed, 348 insertions(+), 44 deletions(-) create mode 100644 src/components/Template/StepComponents/stepNameConfig.js diff --git a/src/components/Template/BaseInfoFormPackage.vue b/src/components/Template/BaseInfoFormPackage.vue index 2d788eb..8301b69 100644 --- a/src/components/Template/BaseInfoFormPackage.vue +++ b/src/components/Template/BaseInfoFormPackage.vue @@ -466,22 +466,30 @@ export default { }, // 获取按钮项 getThirdButtonItem(sItem) { - return { + const o = + { ...sItem, key: sItem.thirdKey, - disabled: sItem.thirdDisabled, buttonName: sItem.thirdButtonName, fillType: sItem.thirdFillType || sItem.fillType } + if(sItem.hasOwnProperty("thirdDisabled")){ + o.disabled = sItem.thirdDisabled; + } + return o; }, getFourthButtonItem(sItem) { - return { + const o = + { ...sItem, key: sItem.fourthKey, buttonName: sItem.fourthButtonName, - disabled: sItem.fourthDisabled, fillType: sItem.fourthFillType || sItem.fillType } + if(sItem.hasOwnProperty("fourthDisabled")){ + o.disabled = sItem.fourthDisabled; + } + return o; }, // 处理fqyq变化 onFqyqChange(key, e) { diff --git a/src/components/Template/Step.vue b/src/components/Template/Step.vue index 87effb0..39cd8d8 100644 --- a/src/components/Template/Step.vue +++ b/src/components/Template/Step.vue @@ -10,7 +10,7 @@ -
@@ -366,6 +366,14 @@ export default { prefixKey: { type: String, default: '' + }, + formIndex: { + type: Number, + default: '' + }, + formType: { + type: String, + default: '' } }, provide() { diff --git a/src/components/Template/StepComponents/JcbComp.vue b/src/components/Template/StepComponents/JcbComp.vue index bdb847d..275226a 100644 --- a/src/components/Template/StepComponents/JcbComp.vue +++ b/src/components/Template/StepComponents/JcbComp.vue @@ -56,11 +56,11 @@ export default { return [ { label: '处理批', - prop: 'clp', + prop: 'mc', width: '200px', bodyType: "jcb", bodyKey: "clpClick", - bodyFillType: this.type==="qb"?"preFill":"detail", + bodyFillType: "preFill", }, { label: '时间', @@ -84,7 +84,7 @@ export default { const { dataSource = [] } = data; const tableRef = this.$refs['tableRef']; if (tableRef) { - tableRef.addRow({ clp: '', time: '' ,id:getuuid(),rowIndex:dataSource.length}); + tableRef.addRow({ mc: '', time: '' ,id:getuuid(),rowIndex:dataSource.length}); // 添加行后触发数据变化 this.onDataChange(); } @@ -116,9 +116,9 @@ export default { return validateResult; }, // 点击按钮事件 - handleClickButton(key, rowIndex) { + handleClickButton(key, rowIndex,colIndex,e,data) { if (key === 'timeClick') { - this.$refs['tableRef'].updateDataSourceByRowIndex(rowIndex, { time: moment().format("YYYY-MM-DD HH:mm:ss") }) + this.$refs['tableRef'].updateDataSourceByRowIndex(rowIndex, { time: moment().format("YYYY-MM-DD HH:mm:ss") },{signData:data,updateFields:['time']}) this.onDataChange(); } }, diff --git a/src/components/Template/StepComponents/stepNameConfig.js b/src/components/Template/StepComponents/stepNameConfig.js new file mode 100644 index 0000000..7fd6e5c --- /dev/null +++ b/src/components/Template/StepComponents/stepNameConfig.js @@ -0,0 +1,208 @@ +const result = { + czdd: "操作地点", + czhj: "操作环境", + xzrq: "选择容器", + jrry: "加入溶液", + tpjysd: "天平校验(双点)", + tpjydd: "天平校验(单点)", + zlfz: "质量分装", + qywz: "取用物质", + clcz: "称量(传值)", + clfcz: "称量(非传值)", + bdtj: "标定(体积)", + bdzl: "标定(质量)", + tjphcz: "调节PH(传值)", + tjphfcz: "调节PH(非传值)", + lx: "离心", + ym: "研磨", + ddhy: "颠倒混匀", + jrjb: "加热搅拌", + jb: "搅拌", + cs: "超声", + sy: "水浴", + zy: "正压", + dc: "氮吹", + glzd: "过滤(自动)", + glsd: "过滤(手动)", + jz: "静置", + jd: "解冻", + fy: "孵育", + qcyy: "取出原药", + frdrq: "复溶(多容器)", + fr: "复溶", + hb: "合并", + rs: "染色", + js: "计数", + mj: "灭菌", + fs: "复苏", + fb: "封板", + wxhy: "涡旋混匀", + zyhy: "振摇混匀", + hwhy: "恒温混匀", + kbyq: "空白(仪器)", + kbsjgsp: "空白(试剂/供试品)", + kb: "空白", + jr: "加热", + fz: "分装", + jrry_b: "加入溶液", + cl: "称量", + lx_b: "离心", + cs_b: "超声", + ddhy_b: "颠倒混匀", + wxhy_b: "涡旋混匀", + zyhy_b: "振摇混匀", + hwhy_b: "恒温混匀", + jb_b: "搅拌", + jrjb_b: "加热搅拌", + sy_b: "水浴", + zy_b: "正压", + dc_b: "氮吹", + glzd_b: "过滤(自动)", + glsd_b: "过滤(手动)", + jz_b: "静置", + jd_b: "解冻", + fy_b: "孵育", + fr_b: "复溶", + jd_swypfx: "解冻", + jryp: "加入样品", + ysfy: "衍生反应", + hhspe: "活化(SPE)", + phspe: "平衡(SPE)", + syspe: "上样(SPE)", + lxspe: "淋洗(SPE)", + xtspe: "洗脱(SPE)", + zyfc: "转移(分层)", + jszz: "剪碎组织", + cqzz: "称取组织", + jryjry: "加入匀浆溶液", + ymyj: "研磨匀浆", + yjyfz2: "匀浆液分装2", + yjyfz3: "匀浆液分装3", + yjbc: "匀浆保存", + yjyhh: "匀浆液混合", + fy_spyjzzb: "孵育", + jz_spyjzzb: "静置", + ddhy_qxwdx: "颠倒混匀", + hwph: "恒温平衡", + qxfz: "全血分装", + qxjz: "全血静置", + qxlx: "全血离心", + qxqy: "全血取样", + jzhlx: "静置后离心", + fq2: "分取2", + fq3: "分取3", + hh: "混合", + qx: "清洗", + zc: "暂存", + qy: "弃液", + sjjy: "试剂加样", + jryp_pcr: "加入样品", + bzyp: "补足样品", + jz_pcr: "静置", + nscyp: "NSC样品", + qrhy: "轻柔混匀", + pebwfz: "PE板位放置", + tgbwfz: "天根板位放置", + lsbwfz: "罗氏板位放置", + tqsj: "提取上机", + lssj: "罗氏上机", + yqzt: "仪器暂停", + ecsj: "二次上机", + czclcl: "磁珠残留处理", + ypzy: "样品转移", + lx_pcr: "离心", + hsypfz: "核酸样品分装", + ypbc: "样品保存", + jd_pcr: "解冻", + sjjyst: "试剂加样(手提)", + ddhy_pcr: "颠倒混匀", + wxhy_pcr: "涡旋混匀", + sy_pcr: "水浴", + sslx: "瞬时离心", + xfzcl: "吸附柱处理", + lxdy: "离心(倒液)", + xfzzysjg: "吸附柱转移(收集管)", + xfzzylxg: "吸附柱转移(离心管)", + xt: "洗脱", + ecxt: "二次洗脱", + ndcd: "浓度测定", + jrry_pcrcjg: "加入溶液", + jszz_pcryj: "剪碎组织", + cqzz_pcryj: "称取组织", + jryjry_pcryj: "加入匀浆溶液", + xs: "稀释", + sjjy_pcrfxyp: "试剂加样", + jryp_pcrfxyp: "加入样品", + fmlx: "封膜离心", + pcrsj: "PCR上机", + pbsz: "排版设置", + cbygxz: "参比荧光选择", + yxpcry: "运行PCR仪", + cdnsypfz: "cDNA样品分装", + bb: "包被", + xb: "洗板", + fb_jcb: "封闭", + jy: "加样", + zh: "中和", + jjcsj: "加检测试剂", + sj: "酸解", + sjjy_jcb: "酸解加样", + zhfy: "中和孵育", + ecsj_jcb: "二次酸解", + xs_jcb: "显色", + zz: "终止", + jc: "检测", + dbmby: "读板(酶标仪)", + dbhxfgxt: "读板(化学发光系统)", + dbdhxfgxt: "读板(电化学发光系统)", + dbygxt: "读板(荧光系统)", + dzacl: "读值(ACL)", + qb: "取板", + jzks: "静置开始", + fyxks: "孵育箱开始", + ycfyks: "摇床孵育开始", + ycks: "摇床开始", + js_jcb: "结束", + fm: "覆膜", + pg: "拍干", + czqx: "磁珠清洗", + czzx: "磁珠重悬", + ychy: "摇床混匀", + czzy: "磁珠转移", + sjbj: "试剂标记", + qxb: "取细胞", + qjz: "取菌株", + fr_xbjzpz: "复溶", + lxqy: "离心(弃液)", + cd: "吹打", + xbzy: "细胞转移", + jzzy: "菌株转移", + dypyy: "倒原培养液", + xd: "洗涤", + xh: "消化", + zzxh: "终止消化", + copy: "CO2培养", + gc: "观察", + cdmd: "测定密度", + ds: "低渗", + gd: "固定", + cdxs: "传代/稀释", + gc_xb: "观察", + xdlc: "洗涤(2次)", + bzpyy: "补足培养液", + xh_xb: "消化", + jrrydh: "加入溶液(多行)", + gd_xb: "固定", + rs_xb: "染色", + bpqr: "破片确认", + dp: "滴片", + bprs: "破片染色", + cx: "冲洗", + lg: "晾干", + hygh: "混匀固化", + hwzd: "恒温振荡", + jbcpyj: "加表层培养基", + xs_ptjhfxyp: "稀释" +}; + +export default result diff --git a/src/components/Template/StepFormPackage.vue b/src/components/Template/StepFormPackage.vue index 1515bde..56340b2 100644 --- a/src/components/Template/StepFormPackage.vue +++ b/src/components/Template/StepFormPackage.vue @@ -53,7 +53,7 @@ @onSubPackageSubmit="onSubPackageSubmit(key) " :stepIndex="stepIndex" :prefixKey="prefixKey+'_'+index" @update="(data)=>onSubPackageUpdate(data,key)" :subData = "formFields[key]" :ref="'zlSubPackageRef_'+key" /> - + width="130px" :show-overflow-tooltip="true"/> @@ -427,6 +426,7 @@ export default { } else { ff(params).then(response => { this.open = false + this.$modal.msgSuccess(this.$t('form.operationSuccess')) this.$emit('callback') }) } diff --git a/src/views/business/resource/gsp/comps/gsp/Gd.vue b/src/views/business/resource/gsp/comps/gsp/Gd.vue index f83eae9..275629e 100644 --- a/src/views/business/resource/gsp/comps/gsp/Gd.vue +++ b/src/views/business/resource/gsp/comps/gsp/Gd.vue @@ -117,11 +117,13 @@ export default { if (this.isBatch) { plgd(this.form).then(response => { this.open = false + this.$modal.msgSuccess(this.$t('form.operationSuccess')) this.$emit('callback') }) } else { gd(this.form).then(response => { this.open = false + this.$modal.msgSuccess(this.$t('form.operationSuccess')) this.$emit('callback') }) } diff --git a/src/views/business/resource/gsp/comps/gsp/Gh.vue b/src/views/business/resource/gsp/comps/gsp/Gh.vue index b9a705f..dfa39f3 100644 --- a/src/views/business/resource/gsp/comps/gsp/Gh.vue +++ b/src/views/business/resource/gsp/comps/gsp/Gh.vue @@ -68,7 +68,7 @@ - + @@ -172,10 +172,11 @@ import { gh, info } from "@/api/business/gsp/gsp" import { mapGetters } from 'vuex' import SelectDeptUser from '@/views/business/comps/select/SelectDeptUser'; +import BusinessSelect from '@/views/business/comps/select/BusinessSelect'; export default { name: "GspGh", - components: { SelectDeptUser }, + components: { SelectDeptUser, BusinessSelect }, data() { return { isBatch: false, @@ -275,20 +276,12 @@ export default { }, show(row) { this.reset() - this.form.id = row.id - this.form.mc = row.mc - this.form.bh = row.bh - this.form.ph = row.ph - this.form.gg = row.gg - this.form.ggdw = row.ggdw - this.form.yxq = row.yxq - this.form.jsrq = row.jsrq - this.form.ffrq = row.ffrq - this.form.cctj = row.cctj - this.form.kc = row.kc - this.form.kcdw = row.kcdw - this.form.zysx = row.zysx - this.open = true + info({id: row.id}).then(response => { + this.form = response.data + this.open = true + }) + + }, save() { this.$refs["form"].validate(valid => { diff --git a/src/views/business/resource/gsp/comps/gsp/Js.vue b/src/views/business/resource/gsp/comps/gsp/Js.vue index 68ae9a1..bbc7d1d 100644 --- a/src/views/business/resource/gsp/comps/gsp/Js.vue +++ b/src/views/business/resource/gsp/comps/gsp/Js.vue @@ -117,6 +117,7 @@ export default { if (valid) { js(this.form).then(response => { this.open = false + this.$modal.msgSuccess(this.$t('form.operationSuccess')) this.$emit('callback') }) } diff --git a/src/views/business/resource/gsp/comps/gsp/Jy.vue b/src/views/business/resource/gsp/comps/gsp/Jy.vue index 6bcd292..483c5c0 100644 --- a/src/views/business/resource/gsp/comps/gsp/Jy.vue +++ b/src/views/business/resource/gsp/comps/gsp/Jy.vue @@ -175,6 +175,7 @@ export default { if (valid) { jy(this.form).then(response => { this.open = false + this.$modal.msgSuccess(this.$t('form.operationSuccess')) this.$emit('callback') }) diff --git a/src/views/business/resource/gsp/comps/gsp/Sd.vue b/src/views/business/resource/gsp/comps/gsp/Sd.vue index 526a2cb..2ec60f3 100644 --- a/src/views/business/resource/gsp/comps/gsp/Sd.vue +++ b/src/views/business/resource/gsp/comps/gsp/Sd.vue @@ -116,11 +116,13 @@ export default { if (this.isBatch) { plsd(this.form).then(response => { this.open = false + this.$modal.msgSuccess(this.$t('form.operationSuccess')) this.$emit('callback') }) } else { sd(this.form).then(response => { this.open = false + this.$modal.msgSuccess(this.$t('form.operationSuccess')) this.$emit('callback') }) } diff --git a/src/views/business/resource/gsp/comps/gsp/Xz.vue b/src/views/business/resource/gsp/comps/gsp/Xz.vue index 9802c38..3336ad1 100644 --- a/src/views/business/resource/gsp/comps/gsp/Xz.vue +++ b/src/views/business/resource/gsp/comps/gsp/Xz.vue @@ -226,6 +226,7 @@ export default { if (valid) { save(this.form).then(response => { this.open = false + this.$modal.msgSuccess(this.$t('form.operationSuccess')) this.$emit('callback') }) } diff --git a/src/views/business/resource/gsp/comps/gsp/Ysff.vue b/src/views/business/resource/gsp/comps/gsp/Ysff.vue index 568997f..1e71361 100644 --- a/src/views/business/resource/gsp/comps/gsp/Ysff.vue +++ b/src/views/business/resource/gsp/comps/gsp/Ysff.vue @@ -207,6 +207,7 @@ export default { params.list = this.selectList ysff(params).then(response => { this.open = false + this.$modal.msgSuccess(this.$t('form.operationSuccess')) this.$emit('callback') }) } diff --git a/src/views/business/resource/gsp/comps/rkjl/Bj.vue b/src/views/business/resource/gsp/comps/rkjl/Bj.vue index 6aa3efc..cd553b1 100644 --- a/src/views/business/resource/gsp/comps/rkjl/Bj.vue +++ b/src/views/business/resource/gsp/comps/rkjl/Bj.vue @@ -214,6 +214,7 @@ export default { if (valid) { bj(this.form).then(response => { this.open = false + this.$modal.msgSuccess(this.$t('form.operationSuccess')) this.$emit('callback') }) } diff --git a/src/views/business/resource/gsp/comps/rkjl/Gd.vue b/src/views/business/resource/gsp/comps/rkjl/Gd.vue index e6aba73..78c629a 100644 --- a/src/views/business/resource/gsp/comps/rkjl/Gd.vue +++ b/src/views/business/resource/gsp/comps/rkjl/Gd.vue @@ -141,11 +141,13 @@ export default { if (this.isBatch) { plgd(this.form).then(response => { this.open = false + this.$modal.msgSuccess(this.$t('form.operationSuccess')) this.$emit('callback') }) } else { gd(this.form).then(response => { this.open = false + this.$modal.msgSuccess(this.$t('form.operationSuccess')) this.$emit('callback') }) } diff --git a/src/views/business/resource/gsp/comps/rkjl/Jd.vue b/src/views/business/resource/gsp/comps/rkjl/Jd.vue index b973659..314a39e 100644 --- a/src/views/business/resource/gsp/comps/rkjl/Jd.vue +++ b/src/views/business/resource/gsp/comps/rkjl/Jd.vue @@ -131,11 +131,13 @@ export default { if (this.isBatch) { jdBatch(this.form).then(response => { this.open = false + this.$modal.msgSuccess(this.$t('form.operationSuccess')) this.$emit('callback') }) } else { jd(this.form).then(response => { this.open = false + this.$modal.msgSuccess(this.$t('form.operationSuccess')) this.$emit('callback') }) } diff --git a/src/views/business/resource/gsp/comps/rkjl/Js.vue b/src/views/business/resource/gsp/comps/rkjl/Js.vue index b195366..1737d35 100644 --- a/src/views/business/resource/gsp/comps/rkjl/Js.vue +++ b/src/views/business/resource/gsp/comps/rkjl/Js.vue @@ -117,6 +117,7 @@ export default { if (valid) { js(this.form).then(response => { this.open = false + this.$modal.msgSuccess(this.$t('form.operationSuccess')) this.$emit('callback') }) } diff --git a/src/views/business/resource/gsp/comps/rkjl/Jy.vue b/src/views/business/resource/gsp/comps/rkjl/Jy.vue index f985c18..186bb3f 100644 --- a/src/views/business/resource/gsp/comps/rkjl/Jy.vue +++ b/src/views/business/resource/gsp/comps/rkjl/Jy.vue @@ -149,6 +149,7 @@ export default { jy(this.form).then(response => { this.open = false + this.$modal.msgSuccess(this.$t('form.operationSuccess')) this.$emit('callback') }) } diff --git a/src/views/business/resource/gsp/comps/rkjl/RkjlImport.vue b/src/views/business/resource/gsp/comps/rkjl/RkjlImport.vue index b287bd7..98e5531 100644 --- a/src/views/business/resource/gsp/comps/rkjl/RkjlImport.vue +++ b/src/views/business/resource/gsp/comps/rkjl/RkjlImport.vue @@ -118,10 +118,12 @@ export default { this.upload.open = false this.upload.isUploading = false this.$refs.upload.clearFiles() - this.$alert("
" + response.msg + "
", "导入结果", { dangerouslyUseHTMLString: true }) if(response.code == 200) { + this.$modal.msgSuccess("导入成功"); this.$emit('callback') this.cancel() + } else { + this.$modal.alertError(response.msg); } }, // 提交上传文件 diff --git a/src/views/business/resource/gsp/comps/rkjl/Sd.vue b/src/views/business/resource/gsp/comps/rkjl/Sd.vue index 78a4d0d..4e4ecd4 100644 --- a/src/views/business/resource/gsp/comps/rkjl/Sd.vue +++ b/src/views/business/resource/gsp/comps/rkjl/Sd.vue @@ -141,11 +141,13 @@ export default { if (this.isBatch) { plsd(this.form).then(response => { this.open = false + this.$modal.msgSuccess(this.$t('form.operationSuccess')) this.$emit('callback') }) } else { sd(this.form).then(response => { this.open = false + this.$modal.msgSuccess(this.$t('form.operationSuccess')) this.$emit('callback') }) } diff --git a/src/views/business/resource/gsp/comps/rkjl/Xz.vue b/src/views/business/resource/gsp/comps/rkjl/Xz.vue index 3c6a9d7..f6d4f80 100644 --- a/src/views/business/resource/gsp/comps/rkjl/Xz.vue +++ b/src/views/business/resource/gsp/comps/rkjl/Xz.vue @@ -221,6 +221,7 @@ export default { if (valid) { xz(this.form).then(response => { this.open = false + this.$modal.msgSuccess(this.$t('form.operationSuccess')) this.$emit('callback') }) } diff --git a/src/views/business/storageLocation/comps/StorageLocationImport.vue b/src/views/business/storageLocation/comps/StorageLocationImport.vue index ca6e1b3..3e0ce0b 100644 --- a/src/views/business/storageLocation/comps/StorageLocationImport.vue +++ b/src/views/business/storageLocation/comps/StorageLocationImport.vue @@ -118,10 +118,12 @@ export default { this.upload.open = false this.upload.isUploading = false this.$refs.upload.clearFiles() - this.$alert("
" + response.msg + "
", "导入结果", { dangerouslyUseHTMLString: true }) if(response.code == 200) { + this.$modal.msgSuccess("导入成功"); this.$emit('callback') this.cancel() + } else { + this.$modal.alertError(response.msg); } }, // 提交上传文件 From 103f5099541cf640b6b041db940fd2b47a216097 Mon Sep 17 00:00:00 2001 From: memorylkf <312904636@qq.com> Date: Thu, 2 Apr 2026 15:53:06 +0800 Subject: [PATCH 40/62] =?UTF-8?q?fix:=20[=E6=A8=A1=E6=9D=BF=E7=AE=A1?= =?UTF-8?q?=E7=90=86]=20dl016+dl017?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../business/comps/template/comps/dl/DL016.vue | 52 ++----------- .../business/comps/template/comps/dl/DL017.vue | 85 ++++------------------ 2 files changed, 18 insertions(+), 119 deletions(-) diff --git a/src/views/business/comps/template/comps/dl/DL016.vue b/src/views/business/comps/template/comps/dl/DL016.vue index 564c9de..80da083 100644 --- a/src/views/business/comps/template/comps/dl/DL016.vue +++ b/src/views/business/comps/template/comps/dl/DL016.vue @@ -17,11 +17,9 @@ + ref="qcxjjyqkTableRef" :columns="stepColumns" :formData="formData"> @@ -61,13 +59,6 @@ export default { }, }, computed: { - // 表格数据 - tableFormData() { - return { - stepTableFormData: this.formData.stepTableFormData || [], - headerSelectFields: {} - } - }, // 备注表单配制 remarkConig() { return [ @@ -189,14 +180,12 @@ export default { // bodyType: 'inputNumber', label: "template.dl.dl016.qsxjjrl", prop: 'qsxjjrl', - width: 280, + width: 180, headerSelectKey: 'qsxjjrldw', fillType: "preFill", headerOptions: this.getDictOptions('business_tjdw'), bodyType: 'inputNumber', bodyFillType: 'actFill', - copyFrom: 'ysqyl', - compareTo: 'ysqyl', } ] }, @@ -217,51 +206,20 @@ export default { // 获取剂量组列表数据 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 || '', // 悬液编号 qsxjjrl: '', // + id:this.getuuid(), })) - // 使用 $set 更新 formData,触发 CustomTable 的响应式更新 - this.$set(this.formData, 'stepTableFormData', itemData) - - this.$message.success(`已从前序表单加载 ${itemData.length} 条剂量组数据`) + this.$refs.qcxjjyqkTableRef.updateDataSource(itemData); } catch (error) { console.error('解析前序表单数据失败:', error) this.$message.error('解析前序表单数据失败') } } }, - //选择table header下拉框也要更新体积 - onHeaderSelectChange(data){ - const {key, headerSelectFields,dataSource=[]} = data; - const keys = [ - 'targetStartSolutionVolumeUnit', - 'targetDiluentVolumeUnit', - 'targetSolutionConcentrationUnit', - 'targetSolutionVolumeUnit', - ] - if(keys.includes(key)){ - const {targetStartSolution,subTargetStartSolution} = this.$refs.swypyjInfoRef?.getFilledFormData(); - const params = { - subTargetStartSolution, - headerSelectFields - } - this.batchUpdateTargetStartSolutionVolume(dataSource,targetStartSolution,params) - } - }, - beforeSaveRecord(data){ - const formFields = this.$refs.swypyjInfoRef?.getFilledFormData(); - this.onCommonVerifyNdException(formFields,data); - }, //获取已填写的表单数据 getFilledFormData() { return this.getFilledFormDataByRefs(["baseInfoRef", "swypyjInfoRef", "qcxjjyqkTableRef", "stepRef","remarkRef"]) diff --git a/src/views/business/comps/template/comps/dl/DL017.vue b/src/views/business/comps/template/comps/dl/DL017.vue index 8b79c72..b321f7d 100644 --- a/src/views/business/comps/template/comps/dl/DL017.vue +++ b/src/views/business/comps/template/comps/dl/DL017.vue @@ -17,11 +17,9 @@ + ref="stepTableRef" :columns="stepColumns" :formData="formData"> @@ -62,13 +60,6 @@ export default { }, }, computed: { - // 表格数据 - tableFormData() { - return { - stepTableFormData: this.formData.stepTableFormData, - headerSelectFields: {} - } - }, // 备注表单配制 remarkConig() { return [ @@ -206,56 +197,56 @@ export default { },{ label: "template.dl.dl017.ddpyy", prop: "ddpyy", - width: 180, + width: 100, bodyType: "checkbox", bodyFillType: "actFill", bodyMaxlength: 10, },{ label: "template.dl.dl017.xd", prop: "xd", - width: 180, + width: 100, bodyType: "checkbox", bodyFillType: "actFill", bodyMaxlength: 10, },{ label: "template.dl.dl017.sj", prop: "sj", - width: 180, + width: 100, bodyType: "checkbox", bodyFillType: "actFill", bodyMaxlength: 10, },{ label: "template.dl.dl017.ds", prop: "ds", - width: 180, + width: 100, bodyType: "checkbox", bodyFillType: "actFill", bodyMaxlength: 10, },{ label: "template.dl.dl017.dy1gd", prop: "dy1gd", - width: 180, + width: 100, bodyType: "checkbox", bodyFillType: "actFill", bodyMaxlength: 10, },{ label: "template.dl.dl017.dy2gd", prop: "dy2gd", - width: 180, + width: 100, bodyType: "checkbox", bodyFillType: "actFill", bodyMaxlength: 10, },{ label: "template.dl.dl017.dy3gd", prop: "dy3gd", - width: 180, + width: 100, bodyType: "checkbox", bodyFillType: "actFill", bodyMaxlength: 10, },{ label: "template.dl.dl017.dy4gd", prop: "dy4gd", - width: 180, + width: 100, bodyType: "checkbox", bodyFillType: "actFill", bodyMaxlength: 10, @@ -282,13 +273,6 @@ export default { // 获取剂量组列表数据 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 || '', @@ -303,60 +287,17 @@ export default { dy1gd: '', dy2gd: '', dy3gd: '', - dy4gd: '' + dy4gd: '', + id:this.getuuid(), })) - // 使用 $set 更新 formData,触发 CustomTable 的响应式更新 - this.$set(this.formData, 'stepTableFormData', itemData) - - this.$message.success(`已从前序表单加载 ${itemData.length} 条剂量组数据`) + this.$refs.stepTableRef.updateDataSource(itemData); } catch (error) { - this.$set(this.formData, 'stepTableFormData', []) console.error('解析前序表单数据失败:', error) this.$message.error('解析前序表单数据失败') } } }, - //选择table header下拉框也要更新体积 - onHeaderSelectChange(data){ - const {key, headerSelectFields,dataSource=[]} = data; - const keys = [ - 'targetStartSolutionVolumeUnit', - 'targetDiluentVolumeUnit', - 'targetSolutionConcentrationUnit', - 'targetSolutionVolumeUnit', - ] - if(keys.includes(key)){ - const {targetStartSolution,subTargetStartSolution} = this.$refs.swypyjInfoRef?.getFilledFormData(); - const params = { - subTargetStartSolution, - headerSelectFields - } - this.batchUpdateTargetStartSolutionVolume(dataSource,targetStartSolution,params) - } - }, - beforeSaveRecord(data){ - 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); - }, - //获取已填写的表单数据 getFilledFormData() { return this.getFilledFormDataByRefs(["baseInfoRef", "swypyjInfoRef", "stepTableRef", "stepRef","remarkRef"]) From 71cc7c5151146e365d21666c9bd0cc662fa690bc Mon Sep 17 00:00:00 2001 From: memorylkf <312904636@qq.com> Date: Thu, 2 Apr 2026 16:41:32 +0800 Subject: [PATCH 41/62] =?UTF-8?q?fix:=20[=E6=A8=A1=E6=9D=BF=E7=AE=A1?= =?UTF-8?q?=E7=90=86]=20dl018?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/lang/en/template/dl.js | 2 +- src/lang/zh/template/dl.js | 2 +- .../business/comps/template/comps/dl/DL018.vue | 51 ++++------------------ 3 files changed, 10 insertions(+), 45 deletions(-) diff --git a/src/lang/en/template/dl.js b/src/lang/en/template/dl.js index 87f08d8..ce4ba9a 100644 --- a/src/lang/en/template/dl.js +++ b/src/lang/en/template/dl.js @@ -288,7 +288,7 @@ export default { }, dl018: { xbxx: '细胞信息', - sydd: '试验地点', + sydd: '测定地点', czsj: '操作时间', qxbd: '前序表单', dlbz: '备注', diff --git a/src/lang/zh/template/dl.js b/src/lang/zh/template/dl.js index 665ec07..c1eae5f 100644 --- a/src/lang/zh/template/dl.js +++ b/src/lang/zh/template/dl.js @@ -282,7 +282,7 @@ export default { }, dl018: { xbxx: '细胞信息', - sydd: '试验地点', + sydd: '测定地点', czsj: '操作时间', qxbd: '前序表单', dlbz: '备注', diff --git a/src/views/business/comps/template/comps/dl/DL018.vue b/src/views/business/comps/template/comps/dl/DL018.vue index 957c9c8..f839b30 100644 --- a/src/views/business/comps/template/comps/dl/DL018.vue +++ b/src/views/business/comps/template/comps/dl/DL018.vue @@ -17,10 +17,10 @@ + ref="stepTableRef" :prefixKey = "`tableSecond`" :columns="stepColumns" :formData="formData"> @@ -65,13 +65,6 @@ export default { }, }, computed: { - // 表格数据 - tableFormData() { - return { - stepTableFormData: this.formData.stepTableFormData || [], - headerSelectFields: {} - } - }, // 备注表单配制 remarkConig() { return [ @@ -193,6 +186,7 @@ export default { bodySubFillType: 'actFill', bodyFillType: 'actFill', bodyDisabled: true, + bodySubDisabled:this.fillType !== 'actFill', width: 280, bodyMaxlength: 50, }, @@ -205,6 +199,7 @@ export default { bodySubKey: 'rsjs1', bodySubFillType: 'actFill', bodyFillType: 'actFill', + bodySubDisabled:this.fillType !== 'actFill', bodyDisabled: true, width: 280, bodyMaxlength: 50, @@ -256,11 +251,10 @@ export default { }, methods: { //开始介绍按钮回调 - handleClickButton(e, rowIndex) { + handleClickButton(e, rowIndex,colIndex,key,data) { const arrStr = typeof e === 'string' ? e.slice(0, -1) : ''; const updateData = { [arrStr]: moment().format('YYYY/MM/DD HH:mm') }; - this.$refs.stepTableRef?.updateDataSourceByRowIndex(rowIndex, updateData); - // console.log(this.getFilledFormData()) + this.$refs.stepTableRef?.updateDataSourceByRowIndex(rowIndex, updateData,{signData:data,updateFields:[arrStr]}); }, onRegentSubmit(e) { const { selectInfo, key, rowIndex } = e @@ -272,13 +266,6 @@ export default { // 获取剂量组列表数据 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 || '', // 剂量组别 @@ -290,37 +277,15 @@ export default { zy: '', // yx: '', // tj: '', // + id:this.getuuid(), })) - // 使用 $set 更新 formData,触发 CustomTable 的响应式更新 - this.$set(this.formData, 'stepTableFormData', itemData) - - this.$message.success(`已从前序表单加载 ${itemData.length} 条剂量组数据`) + this.$refs.stepTableRef.updateDataSource(itemData); } catch (error) { - this.$set(this.formData, 'stepTableFormData', []) console.error('解析前序表单数据失败:', error) this.$message.error('解析前序表单数据失败') } } }, - //选择table header下拉框也要更新体积 - onHeaderSelectChange(data){ - const {key, headerSelectFields,dataSource=[]} = data; - const keys = [ - 'targetStartSolutionVolumeUnit', - 'targetDiluentVolumeUnit', - 'targetSolutionConcentrationUnit', - 'targetSolutionVolumeUnit', - ] - if(keys.includes(key)){ - const {targetStartSolution,subTargetStartSolution} = this.$refs.swypyjInfoRef?.getFilledFormData(); - const params = { - subTargetStartSolution, - headerSelectFields - } - this.batchUpdateTargetStartSolutionVolume(dataSource,targetStartSolution,params) - } - }, - //获取已填写的表单数据 getFilledFormData() { return this.getFilledFormDataByRefs(["baseInfoRef", "swypyjInfoRef", "stepTableRef", "stepRef","remarkRef"]) From 495c6915cebf6569f96465b45a8d3623426878ef Mon Sep 17 00:00:00 2001 From: luojie <125330818@qq.com> Date: Thu, 2 Apr 2026 16:51:44 +0800 Subject: [PATCH 42/62] =?UTF-8?q?feat:[=E6=A8=A1=E6=9D=BF=E7=AE=A1?= =?UTF-8?q?=E7=90=86][update]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/Template/HandleFormItem.vue | 15 +- .../Template/StepComponents/CdmdComp.vue | 252 +++++++++++++++++++++ src/components/Template/StepComponents/JcbComp.vue | 2 + .../Template/StepComponents/xbjzpz/cdmd.vue | 4 + src/components/Template/StepFormPackage.vue | 5 + src/components/Template/mixins/stepMixins.js | 32 +-- .../business/comps/template/comps/dl/DL016.vue | 167 +++++++------- .../comps/template/formConfig/sp/SP0020.js | 18 +- 8 files changed, 387 insertions(+), 108 deletions(-) create mode 100644 src/components/Template/StepComponents/CdmdComp.vue diff --git a/src/components/Template/HandleFormItem.vue b/src/components/Template/HandleFormItem.vue index bf6bd51..fc36ed9 100644 --- a/src/components/Template/HandleFormItem.vue +++ b/src/components/Template/HandleFormItem.vue @@ -404,7 +404,7 @@ export default { return false; }, getFlexClass() { - const noFlexArr = ["radio", "checkboxTag", "fqyq","button"] + const noFlexArr = ["radio", "checkboxTag", "fqyq", "button"] return noFlexArr.includes(this.type) ? '' : 'flex1' }, getDecimalDigits() { @@ -657,7 +657,7 @@ export default { // 点击按钮 handleClickButton(item) { this.inputValue = `button-${new Date().getTime()}`; - if(item.noSign){//不需要签名的直接emit + if (item.noSign) {//不需要签名的直接emit this.$emit("clickButton", item); return; } @@ -1152,7 +1152,7 @@ export default { if (!this.isFieldsRecord) {//是否需要记录修改记录 this.$emit("blur", this.inputValue); this.$emit('input', this.inputValue); - this.$emit("change", this.inputValue,"change"); + this.$emit("change", this.inputValue, "change"); return; } // 值发生了变化,需要弹出密码输入框 @@ -1891,6 +1891,15 @@ export default { box-shadow: 0 0 6px #ffc3c3 !important; } + .el-checkbox__label { + white-space: normal; + } + + .checkbox-tree-item .el-checkbox { + display: flex; + align-items: center; + } + .checkbox-item { margin-right: 16px; display: flex; diff --git a/src/components/Template/StepComponents/CdmdComp.vue b/src/components/Template/StepComponents/CdmdComp.vue new file mode 100644 index 0000000..cc062ff --- /dev/null +++ b/src/components/Template/StepComponents/CdmdComp.vue @@ -0,0 +1,252 @@ + + + + + \ No newline at end of file diff --git a/src/components/Template/StepComponents/JcbComp.vue b/src/components/Template/StepComponents/JcbComp.vue index 275226a..c54ade9 100644 --- a/src/components/Template/StepComponents/JcbComp.vue +++ b/src/components/Template/StepComponents/JcbComp.vue @@ -61,6 +61,8 @@ export default { bodyType: "jcb", bodyKey: "clpClick", bodyFillType: "preFill", + bodySubType: 'span', + bodySubKey: 'bh', }, { label: '时间', diff --git a/src/components/Template/StepComponents/xbjzpz/cdmd.vue b/src/components/Template/StepComponents/xbjzpz/cdmd.vue index 3f29db1..125a662 100644 --- a/src/components/Template/StepComponents/xbjzpz/cdmd.vue +++ b/src/components/Template/StepComponents/xbjzpz/cdmd.vue @@ -75,10 +75,14 @@ export default { fillType: "actFill", type: "inputNumber", }, + cdmds:{ + type:"cdmd" + }, text6:{ label: "个/mL。", type: "text", }, + } }] return config diff --git a/src/components/Template/StepFormPackage.vue b/src/components/Template/StepFormPackage.vue index 56340b2..e698525 100644 --- a/src/components/Template/StepFormPackage.vue +++ b/src/components/Template/StepFormPackage.vue @@ -56,6 +56,9 @@ +
{{sItem.otherLabel ? $t(sItem.otherLabel) : $t("template.common.other") }}
@@ -74,6 +77,7 @@ import HandleFormItem from '@/components/Template/HandleFormItem.vue' import formPackageMixins from '@/components/Template/mixins/formPackageMixins.js' import JcbComp from '@/components/Template/StepComponents/JcbComp.vue' +import CdmdComp from '@/components/Template/StepComponents/CdmdComp.vue' import ZLSubPackage from '@/components/Template/StepComponents/ZLSubPackage.vue' import { isShowOther } from "@/utils/formPackageCommon.js"; import { EventBus } from "@/utils/eventBus"; @@ -85,6 +89,7 @@ export default { HandleFormItem, ZLSubPackage, JcbComp, + CdmdComp, }, mixins: [formPackageMixins], props: { diff --git a/src/components/Template/mixins/stepMixins.js b/src/components/Template/mixins/stepMixins.js index 139e8a0..3160df4 100644 --- a/src/components/Template/mixins/stepMixins.js +++ b/src/components/Template/mixins/stepMixins.js @@ -74,15 +74,17 @@ export default { commonHandleJcbUpdate() { this.localFormData = this.formData; if (!this.formData.jcb && this.templateFillType === 'actFill') { - const qbData = this.getQbData(); - this.localFormData = { ...this.localFormData, jcb: qbData }; - justUpdateFilledFormData(); + setTimeout(() => { + const qbData = this.getQbData(); + this.localFormData = { ...this.localFormData, jcb: qbData }; + justUpdateFilledFormData(); + }, 3000); } }, //获取取板数据 getQbData() { let qbData = []; - if (this.templateSn === "LBA003") {//只有lba003才会有取板步骤,所以检测板数据从取板数据里面获取; + if (this.templateSn === "LBA003" || this.templateSn === "ADA003") {//只有lba003才会有取板步骤,所以检测板数据从取板数据里面获取; const stepData = this.getStepData() || []; const filterData = stepData.filter((item) => item.type === "qb"); const allQbData = []; @@ -92,12 +94,12 @@ export default { allQbData.push(...parseData); }) qbData = [...new Map(allQbData.map(item => [item.mc, item])).values()] - } else if (this.templateSn === "LBA002") {//lba002没有取板步骤,所以检测板数据从检测板数据里面获取; - const {stepTableFormData=[]} = this.getJcbData() || {}; - qbData = JSON.parse(JSON.stringify(stepTableFormData)); + } else if (this.templateSn === "LBA002" || this.templateSn === "ADA002") {//lba002没有取板步骤,所以检测板数据从检测板数据里面获取; + const { stepTableFormData = [] } = this.getJcbData() || {}; + qbData = stepTableFormData; } - return { stepTableFormData: qbData } + return { stepTableFormData: JSON.parse(JSON.stringify(qbData)) } }, //回填编号 preField 前缀 updateField 需要更新的字段 async handleBackfillCode(preField, updateField) { @@ -163,16 +165,16 @@ export default { let maxVolume, maxVolumeUnit; if (this.getMybh || this.getMybhByIndex) {//某些表单的步骤需要分装表单上的数据 let result = {}; - if(this.getMybh){ + if (this.getMybh) { result = this.getMybh() - }else if(this.getMybhByIndex){ - result = this.getMybhByIndex(this.formIndex,this.formType) + } else if (this.getMybhByIndex) { + result = this.getMybhByIndex(this.formIndex, this.formType) } const { mybh, mybhOptions = [], maxVolume: max, maxVolumeUnit: unit } = result - if ((!mybh && !mybhOptions.length) || !max || !unit) { - this.$message.warning('请先填写分装数据') - return - } + // if ((!mybh && !mybhOptions.length) || !max || !unit) { + // this.$message.warning('请先填写分装数据') + // return + // } options = mybhOptions fields.push(mybh) maxVolume = max || '' diff --git a/src/views/business/comps/template/comps/dl/DL016.vue b/src/views/business/comps/template/comps/dl/DL016.vue index 564c9de..9a633cc 100644 --- a/src/views/business/comps/template/comps/dl/DL016.vue +++ b/src/views/business/comps/template/comps/dl/DL016.vue @@ -11,18 +11,16 @@ - + - - - + + + @@ -49,10 +47,10 @@ import TableOpertaionDelete from "@/components/Template/operation/TableOpertaion export default { name: "DL016", - dicts: [ - 'business_dl_qsxjbltj','business_tjdw','business_nddw' - ], - components: { BaseInfoFormPackage, LineLabel, TableList, Step, CustomTable,TableOpertaionDelete }, + dicts: [ + 'business_dl_qsxjbltj', 'business_tjdw', 'business_nddw' + ], + components: { BaseInfoFormPackage, LineLabel, TableList, Step, CustomTable, TableOpertaionDelete }, mixins: [templateMixin], props: { fillType: { @@ -61,13 +59,13 @@ export default { }, }, computed: { - // 表格数据 - tableFormData() { - return { - stepTableFormData: this.formData.stepTableFormData || [], - headerSelectFields: {} - } - }, + // 表格数据 + tableFormData() { + return { + stepTableFormData: this.formData.stepTableFormData || [], + headerSelectFields: {} + } + }, // 备注表单配制 remarkConig() { return [ @@ -132,7 +130,7 @@ export default { } ] }, - // 细胞信息 + // 细胞信息 swypyjInfoFormConfig() { return [ { @@ -142,16 +140,16 @@ export default { label: 'template.dl.dl016.qxbd', type: 'qxbd', fillType: 'actFill', - qxbdType:'DL014', - filledCodes:['bdmc','bdbh'], + qxbdType: 'DL014', + filledCodes: ['bdmc', 'bdbh'], }, - bltj: { + bltj: { label: 'template.dl.dl016.bltj', type: 'select', fillType: 'preFill', options: this.getDictOptions('business_dl_qsxjbltj'), otherCode: 'bltjOther', - showOtherLabel:false + showOtherLabel: false }, } } @@ -166,7 +164,7 @@ export default { bodyType: "input", bodyFillType: "actFill", width: 180, - bodyDisabled: true, + bodyDisabled: true, }, { label: "template.dl.dl016.xybh", @@ -183,20 +181,20 @@ export default { // width: 180, // bodyFillType: "actFill", // bodyMaxlength: 10, - // headerSelectKey: 'qsxjjrldw', - // fillType: "actFill", - // headerOptions: this.getDictOptions('business_nddw'), - // bodyType: 'inputNumber', - label: "template.dl.dl016.qsxjjrl", - prop: 'qsxjjrl', - width: 280, - headerSelectKey: 'qsxjjrldw', - fillType: "preFill", - headerOptions: this.getDictOptions('business_tjdw'), - bodyType: 'inputNumber', - bodyFillType: 'actFill', - copyFrom: 'ysqyl', - compareTo: 'ysqyl', + // headerSelectKey: 'qsxjjrldw', + // fillType: "actFill", + // headerOptions: this.getDictOptions('business_nddw'), + // bodyType: 'inputNumber', + label: "template.dl.dl016.qsxjjrl", + prop: 'qsxjjrl', + width: 280, + headerSelectKey: 'qsxjjrldw', + fillType: "preFill", + headerOptions: this.getDictOptions('business_tjdw'), + bodyType: 'inputNumber', + bodyFillType: 'actFill', + copyFrom: 'ysqyl', + compareTo: 'ysqyl', } ] }, @@ -207,69 +205,69 @@ export default { }; }, methods: { - onRegentSubmit(e) { - const { selectInfo, key, rowIndex } = e - const { row } = selectInfo - if (key === 'qxbd') { - try { - // 解析前序表单的内容 - const bdnr = JSON.parse(row.bdnr) - // 获取剂量组列表数据 - const stepTableFormData = bdnr.jlzTableData || [] + onRegentSubmit(e) { + const { selectInfo, key, rowIndex } = e + const { row } = selectInfo + if (key === 'qxbd') { + try { + // 解析前序表单的内容 + const bdnr = JSON.parse(row.bdnr) + // 获取剂量组列表数据 + const stepTableFormData = bdnr.jlzTableData || [] - if (stepTableFormData.length === 0) { - // 清空当前的换液情况列表数据 - this.$set(this.formData, 'stepTableFormData', []) - this.$message.warning('前序表单中没有剂量组数据') - return - } + if (stepTableFormData.length === 0) { + // 清空当前的换液情况列表数据 + this.$set(this.formData, 'stepTableFormData', []) + this.$message.warning('前序表单中没有剂量组数据') + return + } - // 从剂量组数据中提取剂量组别和悬液编号 - const itemData = stepTableFormData.map(item => ({ - jlzb: item.jlzb || '', // 剂量组别 - xybh: item.xybh || '', // 悬液编号 - qsxjjrl: '', // - })) - // 使用 $set 更新 formData,触发 CustomTable 的响应式更新 - this.$set(this.formData, 'stepTableFormData', itemData) + // 从剂量组数据中提取剂量组别和悬液编号 + const itemData = stepTableFormData.map(item => ({ + jlzb: item.jlzb || '', // 剂量组别 + xybh: item.xybh || '', // 悬液编号 + qsxjjrl: '', // + })) + // 使用 $set 更新 formData,触发 CustomTable 的响应式更新 + this.$set(this.formData, 'stepTableFormData', itemData) - this.$message.success(`已从前序表单加载 ${itemData.length} 条剂量组数据`) - } catch (error) { - console.error('解析前序表单数据失败:', error) - this.$message.error('解析前序表单数据失败') - } - } - }, - //选择table header下拉框也要更新体积 - onHeaderSelectChange(data){ - const {key, headerSelectFields,dataSource=[]} = data; + this.$message.success(`已从前序表单加载 ${itemData.length} 条剂量组数据`) + } catch (error) { + console.error('解析前序表单数据失败:', error) + this.$message.error('解析前序表单数据失败') + } + } + }, + //选择table header下拉框也要更新体积 + onHeaderSelectChange(data) { + const { key, headerSelectFields, dataSource = [] } = data; const keys = [ 'targetStartSolutionVolumeUnit', 'targetDiluentVolumeUnit', 'targetSolutionConcentrationUnit', 'targetSolutionVolumeUnit', ] - if(keys.includes(key)){ - const {targetStartSolution,subTargetStartSolution} = this.$refs.swypyjInfoRef?.getFilledFormData(); + if (keys.includes(key)) { + const { targetStartSolution, subTargetStartSolution } = this.$refs.swypyjInfoRef?.getFilledFormData(); const params = { subTargetStartSolution, headerSelectFields } - this.batchUpdateTargetStartSolutionVolume(dataSource,targetStartSolution,params) + this.batchUpdateTargetStartSolutionVolume(dataSource, targetStartSolution, params) } }, - beforeSaveRecord(data){ + beforeSaveRecord(data) { const formFields = this.$refs.swypyjInfoRef?.getFilledFormData(); - this.onCommonVerifyNdException(formFields,data); + this.onCommonVerifyNdException(formFields, data); }, //获取已填写的表单数据 getFilledFormData() { - return this.getFilledFormDataByRefs(["baseInfoRef", "swypyjInfoRef", "qcxjjyqkTableRef", "stepRef","remarkRef"]) + return this.getFilledFormDataByRefs(["baseInfoRef", "swypyjInfoRef", "qcxjjyqkTableRef", "stepRef", "remarkRef"]) }, //获取填写完成的表单数据 async getFormData() { - let content = await this.validFormFields(["baseInfoRef", "swypyjInfoRef", "qcxjjyqkTableRef", "stepRef","remarkRef"]); - return content; + let content = await this.validFormFields(["baseInfoRef", "swypyjInfoRef", "qcxjjyqkTableRef", "stepRef", "remarkRef"]); + return content; }, getResource() { //使用的试剂、仪器 @@ -292,5 +290,4 @@ export default { } }; - + diff --git a/src/views/business/comps/template/formConfig/sp/SP0020.js b/src/views/business/comps/template/formConfig/sp/SP0020.js index 65749d1..094f1e5 100644 --- a/src/views/business/comps/template/formConfig/sp/SP0020.js +++ b/src/views/business/comps/template/formConfig/sp/SP0020.js @@ -31,14 +31,22 @@ const getOptions = (sn) => { { label: '精密度与准确性', value: '精密度与准确性' }, { label: '检测限', value: '检测限' }, { label: '提取精密度', value: '提取精密度' }, - { label: '提取前样品稳定性', value: '提取前样品稳定性' }, - { label: '提取后样品稳定性', value: '提取后样品稳定性' }, - { label: 'cDNA样品稳定性', value: 'cDNA样品稳定性' }, + { label: '提取前样品冰浴放置稳定性', value: '提取前样品冰浴放置稳定性' }, + { label: '提取前样品反复冻融稳定性', value: '提取前样品反复冻融稳定性' }, + { label: '提取前样品长期冻存稳定性', value: '提取前样品长期冻存稳定性' }, { label: '方法适用性', value: '方法适用性' }, { label: '基因组DNA残留测定', value: '基因组DNA残留测定' }, { label: '稀释线性', value: '稀释线性' }, - { label: '反复动态稳定性', value: '反复动态稳定性' }, - { label: '标准工作液稳定性', value: '标准工作液稳定性' } + { label: '提取前组织样品裂解液中冰浴放置稳定性', value: '提取前组织样品裂解液中冰浴放置稳定性' }, + { label: '标准工作液稳定性', value: '标准工作液稳定性' }, + { label: '提取前组织样品裂解液中反复冻融稳定性', value: '提取前组织样品裂解液中反复冻融稳定性' }, + { label: '提取前组织样品裂解液中长期冻存稳定性', value: '提取前组织样品裂解液中长期冻存稳定性' }, + { label: '提取后样品室温(10~30℃)放置稳定性', value: '提取后样品室温(10~30℃)放置稳定性' }, + { label: '提取后样品2~8℃放置稳定性', value: '提取后样品2~8℃放置稳定性' }, + { label: '提取后样品反复冻融稳定性', value: '提取后样品反复冻融稳定性' }, + { label: '提取后样品长期冻存稳定性', value: '提取后样品长期冻存稳定性' }, + { label: 'cDNA样品室温(10~30℃)放置稳定性', value: 'cDNA样品室温(10~30℃)放置稳定性' }, + { label: 'cDNA样品2~8℃放置稳定性', value: 'cDNA样品2~8℃放置稳定性' } ] } From bb232272a556965b69f632d93fa123161d382cbe Mon Sep 17 00:00:00 2001 From: luojie <125330818@qq.com> Date: Thu, 2 Apr 2026 21:24:40 +0800 Subject: [PATCH 43/62] =?UTF-8?q?feat:[=E6=A8=A1=E6=9D=BF=E7=AE=A1?= =?UTF-8?q?=E7=90=86][update]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/Template/HandleFormItem.vue | 6 +- .../Template/StepComponents/CdmdComp.vue | 254 ++++++++++----------- .../Template/StepComponents/xbjzpz/cdmd.vue | 65 ++++-- src/components/Template/StepFormPackage.vue | 9 +- 4 files changed, 178 insertions(+), 156 deletions(-) diff --git a/src/components/Template/HandleFormItem.vue b/src/components/Template/HandleFormItem.vue index fc36ed9..df7e410 100644 --- a/src/components/Template/HandleFormItem.vue +++ b/src/components/Template/HandleFormItem.vue @@ -1198,7 +1198,8 @@ export default { if (!isOldValueEmpty && !(isSame) && (this.templateFillType === "actFill" || this.templateFillType === "blxjsh") && this.type !== "attachment") { console.log("需要电子签名") // 通过EventBus触发电子签名弹窗 - EventBus.$emit('showEditSignDialog', { uuid: this.uuid }); + // EventBus.$emit('showEditSignDialog', { uuid: this.uuid }); + this.handleUpdateRecord() } else {//如果是第一次填写,不需要密码验证 this.handleUpdateRecord() } @@ -2080,4 +2081,7 @@ export default { .no-border { border: none; } +.record-row{ + text-align: left; +} \ No newline at end of file diff --git a/src/components/Template/StepComponents/CdmdComp.vue b/src/components/Template/StepComponents/CdmdComp.vue index cc062ff..df889d1 100644 --- a/src/components/Template/StepComponents/CdmdComp.vue +++ b/src/components/Template/StepComponents/CdmdComp.vue @@ -1,17 +1,21 @@ + \ No newline at end of file diff --git a/src/components/Template/StepComponents/ZLSubPackage.vue b/src/components/Template/StepComponents/ZLSubPackage.vue index 10400b5..264812f 100644 --- a/src/components/Template/StepComponents/ZLSubPackage.vue +++ b/src/components/Template/StepComponents/ZLSubPackage.vue @@ -13,8 +13,7 @@ {{ item.unit }}
-
分装编号
-
单位
+
分装单位
@@ -31,6 +30,9 @@ 重置
+
+
分装编号
+
@@ -64,7 +66,7 @@ import { isValueEmpty,justUpdateFilledFormData } from '@/utils/index.js'; export default { inject: ['templateFillType'], dicts: [ - 'business_tjdw', + 'business_zldw', ], components: { HandleFormItem, @@ -151,7 +153,7 @@ export default { return { type: "select", fillType: "preFill", - options: this.dict.type.business_tjdw + options: this.dict.type.business_zldw } }, subConfig(){ diff --git a/src/components/Template/StepComponents/ry/bdtj.vue b/src/components/Template/StepComponents/ry/bdtj.vue index 80bafed..d9354ab 100644 --- a/src/components/Template/StepComponents/ry/bdtj.vue +++ b/src/components/Template/StepComponents/ry/bdtj.vue @@ -69,9 +69,9 @@ import stepMixins from '@/components/Template/mixins/stepMixins.js'; options:this.getDictOptions("business_tjdw"), fillType:"preFill", }, - text5:{ - label:",划线。", - type:"text", + hx:{ + type:"input", + fillType:"preFill", }, } diff --git a/src/components/Template/StepComponents/ry/bdzl.vue b/src/components/Template/StepComponents/ry/bdzl.vue index eaac60f..fff483b 100644 --- a/src/components/Template/StepComponents/ry/bdzl.vue +++ b/src/components/Template/StepComponents/ry/bdzl.vue @@ -14,6 +14,7 @@ import stepMixins from '@/components/Template/mixins/stepMixins.js'; }, computed: { formConfig() { + console.log(this.stepIndex,"stepIndex") return [{ config:{ text1:{ @@ -47,7 +48,7 @@ import stepMixins from '@/components/Template/mixins/stepMixins.js'; type:"inputNumber", fillType:"actFill", compareTo:"rm", - copyFrom:"rm" + disabled:true, }, button1:{ type:"button", diff --git a/src/components/Template/StepComponents/ry/fy.vue b/src/components/Template/StepComponents/ry/fy.vue index 94a672e..803561b 100644 --- a/src/components/Template/StepComponents/ry/fy.vue +++ b/src/components/Template/StepComponents/ry/fy.vue @@ -27,6 +27,11 @@ export default { label: "使用", type: "text", }, + yqmc: { + type: "input", + fillType: "preFill", + }, + yq: { type: "yq", fillType: "actFill", diff --git a/src/components/Template/StepComponents/ry/jd.vue b/src/components/Template/StepComponents/ry/jd.vue index d24e2db..f400e47 100644 --- a/src/components/Template/StepComponents/ry/jd.vue +++ b/src/components/Template/StepComponents/ry/jd.vue @@ -66,12 +66,12 @@ export default { fillType: "preFill", otherCode: "yjwdOther", }, - yjhj: { - type: "select", - options: this.getDictOptions("business_hjxx"), - fillType: "preFill", - otherCode: "yjhjOther", - }, + // yjhj: { + // type: "select", + // options: this.getDictOptions("business_hjxx"), + // fillType: "preFill", + // otherCode: "yjhjOther", + // }, text5: { label: ",实际条件为", type: "text", @@ -84,13 +84,13 @@ export default { otherCode: "sjwdOther", compareTo: "yjwd", }, - sjhj: { - type: "select", - options: this.getDictOptions("business_hjxx"), - fillType: "actFill", - otherCode: "sjhjOther", - compareTo: "yjhj", - }, + // sjhj: { + // type: "select", + // options: this.getDictOptions("business_hjxx"), + // fillType: "actFill", + // otherCode: "sjhjOther", + // compareTo: "yjhj", + // }, text6: { label: ",放置", type: "text", @@ -179,12 +179,12 @@ export default { fillType: "preFill", otherCode: "yjwdOther", }, - yjhj: { - type: "select", - options: this.getDictOptions("business_hjxx"), - fillType: "preFill", - otherCode: "yjhjOther", - }, + // yjhj: { + // type: "select", + // options: this.getDictOptions("business_hjxx"), + // fillType: "preFill", + // otherCode: "yjhjOther", + // }, text5: { label: ",实际条件为", type: "text", @@ -197,13 +197,13 @@ export default { otherCode: "sjwdOther", compareTo: "yjwd", }, - sjhj: { - type: "select", - options: this.getDictOptions("business_hjxx"), - fillType: "actFill", - otherCode: "sjhjOther", - compareTo: "yjhj", - }, + // sjhj: { + // type: "select", + // options: this.getDictOptions("business_hjxx"), + // fillType: "actFill", + // otherCode: "sjhjOther", + // compareTo: "yjhj", + // }, text6: { label: ",放置", type: "text", diff --git a/src/components/Template/StepComponents/ry/tjphcz.vue b/src/components/Template/StepComponents/ry/tjphcz.vue index 63e1d23..8a6f532 100644 --- a/src/components/Template/StepComponents/ry/tjphcz.vue +++ b/src/components/Template/StepComponents/ry/tjphcz.vue @@ -96,6 +96,7 @@ export default { ph: { type: "inputNumber", fillType: "actFill", + compareTo: "rm", }, button1: { type: "button", diff --git a/src/components/Template/StepComponents/ry/tjphfcz.vue b/src/components/Template/StepComponents/ry/tjphfcz.vue index 719baf6..bbf6fdc 100644 --- a/src/components/Template/StepComponents/ry/tjphfcz.vue +++ b/src/components/Template/StepComponents/ry/tjphfcz.vue @@ -96,6 +96,7 @@ export default { ph: { type: "inputNumber", fillType: "actFill", + compareTo: "rm", }, text8: { diff --git a/src/components/Template/StepComponents/ry/tpjydd.vue b/src/components/Template/StepComponents/ry/tpjydd.vue index 61e47c4..5e3a99f 100644 --- a/src/components/Template/StepComponents/ry/tpjydd.vue +++ b/src/components/Template/StepComponents/ry/tpjydd.vue @@ -105,8 +105,9 @@ import stepMixins from '@/components/Template/mixins/stepMixins.js'; type:"text", }, jgpd:{ - label:"通过/不通过", - type:"span", + type:"input", + fillType:"actFill", + disabled:true, }, text9:{ label:"。", diff --git a/src/components/Template/StepComponents/ry/tpjysd.vue b/src/components/Template/StepComponents/ry/tpjysd.vue index 071689c..6b827d6 100644 --- a/src/components/Template/StepComponents/ry/tpjysd.vue +++ b/src/components/Template/StepComponents/ry/tpjysd.vue @@ -1,7 +1,7 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/src/views/business/comps/template/comps/sp/SP00456.vue b/src/views/business/comps/template/comps/sp/SP00456.vue index 456f193..4e13241 100644 --- a/src/views/business/comps/template/comps/sp/SP00456.vue +++ b/src/views/business/comps/template/comps/sp/SP00456.vue @@ -83,7 +83,7 @@ :showOperation="fillType === 'actFill' || fillType === 'preFill'" :tableColumns="ladderStepColumns" :prefixKey="'ladder_1_' + ladderIndex" :configType="'ladder'" :ref="`ladderRef_1_${ladderIndex}`" - :fieldItemLabel="'template.lba.lba005.zkpz'" + :fieldItemLabel="getTableLabel('ladder')" @deleteConfig="deleteConfig('ladderConfigs_1', ladderConfig)" :fillType="fillType" />
@@ -94,7 +94,7 @@ :showOperation="fillType === 'actFill' || fillType === 'preFill'" :tableColumns="paralleStepColumns1" :prefixKey="'paralle_1_' + paralleIndex" :configType="'paralle'" :ref="`paralleRef_1_${paralleIndex}`" - :fieldItemLabel="'template.lba.lba005.zkpz'" + :fieldItemLabel="getTableLabel('paralle')" @deleteConfig="deleteConfig('paralleConfigs_1', paralleConfig)" :fillType="fillType" />
diff --git a/src/views/business/comps/template/formConfig/xb/xb001.js b/src/views/business/comps/template/formConfig/xb/xb001.js index f10f685..1d252bc 100644 --- a/src/views/business/comps/template/formConfig/xb/xb001.js +++ b/src/views/business/comps/template/formConfig/xb/xb001.js @@ -296,7 +296,7 @@ export const getStepFivth = ($this) => { fillType: 'preFill' }, text4: { - label: '℃,实际温度', + label: '℃,实际温度设置', type: 'text' }, sjwd: { From 20f1c461eda796249fd29bd39ca1196b9aeeb5e6 Mon Sep 17 00:00:00 2001 From: luojie <125330818@qq.com> Date: Wed, 8 Apr 2026 16:38:24 +0800 Subject: [PATCH 62/62] =?UTF-8?q?feat:[=E6=A8=A1=E6=9D=BF=E7=AE=A1?= =?UTF-8?q?=E7=90=86][bug=E4=BF=AE=E5=A4=8D]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/Template/CustomTable.vue | 7 +++++++ src/components/Template/mixins/formPackageMixins.js | 4 +++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/components/Template/CustomTable.vue b/src/components/Template/CustomTable.vue index 31f9d7a..2b30d05 100644 --- a/src/components/Template/CustomTable.vue +++ b/src/components/Template/CustomTable.vue @@ -813,6 +813,13 @@ export default { !(error.rowIndex === -1 && error.field === col.headerSelectKey) ); + + if (col && col.headerSelectTo) { + this.formErrors = this.formErrors.filter(error => + !(error.rowIndex === -1 && + error.field === col.headerSelectTo) + ); + } }, // 检查并应用 compareTo 逻辑 checkCompareToLogic(rowIndex, colIndex, colKey, value) { diff --git a/src/components/Template/mixins/formPackageMixins.js b/src/components/Template/mixins/formPackageMixins.js index 8d96a7f..36806cb 100644 --- a/src/components/Template/mixins/formPackageMixins.js +++ b/src/components/Template/mixins/formPackageMixins.js @@ -52,6 +52,9 @@ export default { const currentConfig = this.allFieldsConfig[key] if (currentConfig?.selectTo) { this.formFields[currentConfig?.selectTo] = val + if (this.errors[currentConfig?.selectTo]) { + this.$set(this.errors, currentConfig?.selectTo, false) + } } this.onValueChangeCompareTo(key, val) this.formFields[key] = val @@ -403,7 +406,6 @@ export default { key.startsWith('selectInfo_') ) } - console.log(selectInfoKeys,"selectInfoKeys",this.formFields) selectInfoKeys.forEach((key) => { result[key] = this.formFields[key] || formData[key] || '' })