@@ -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 @@
{{ form.nddw
- }}
+ }}
@@ -104,7 +106,7 @@
{{ form.ckldw
- }}
+ }}
@@ -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 @@
{{ $t('page.business.resource.resource.zjzt.rk') }}
+ {{ $t('page.business.resource.resource.zjzt.wrk') }}
{{ $t('page.business.resource.resource.zjzt.yff') }}
{{ $t('page.business.resource.resource.zjzt.ysd') }}
{{ $t('page.business.resource.resource.zjzt.dgd') }}
From dc3c3efbf0c0a08afae72969ccf83049775e15b8 Mon Sep 17 00:00:00 2001
From: luojie <125330818@qq.com>
Date: Mon, 30 Mar 2026 16:40:17 +0800
Subject: [PATCH 05/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/CustomTable.vue | 6 +-
src/components/Template/HandleFormItem.vue | 6 +-
src/components/Template/StepComponents/JcbComp.vue | 101 +++++++++++++++++++++
src/components/Template/StepComponents/jcb/qb.vue | 4 +-
src/components/Template/StepFormPackage.vue | 7 +-
src/components/Template/mixins/stepMixins.js | 5 +-
6 files changed, 119 insertions(+), 10 deletions(-)
create mode 100644 src/components/Template/StepComponents/JcbComp.vue
diff --git a/src/components/Template/CustomTable.vue b/src/components/Template/CustomTable.vue
index 2c28231..7f9f541 100644
--- a/src/components/Template/CustomTable.vue
+++ b/src/components/Template/CustomTable.vue
@@ -527,9 +527,9 @@ export default {
},
// 点击事件
handleClickable(col, rowIndex, colIndex, row) {
- if (this.templateFillType !== 'actFill') {
- return
- }
+ // if (this.templateFillType !== 'actFill') {
+ // return
+ // }
this.$emit("clickable", col, rowIndex, row)
},
onBeforeReagentSubmit(data, callback, col, row) {
diff --git a/src/components/Template/HandleFormItem.vue b/src/components/Template/HandleFormItem.vue
index fcccc06..3ccd1e9 100644
--- a/src/components/Template/HandleFormItem.vue
+++ b/src/components/Template/HandleFormItem.vue
@@ -1378,9 +1378,9 @@ export default {
return commonInfo;
},
handleClickable(item, event) {
- if (this.templateFillType !== 'actFill') {
- return
- }
+ // if (this.templateFillType !== 'actFill') {
+ // return
+ // }
this.$emit("clickable", item)
},
//判断是否禁用复选框
diff --git a/src/components/Template/StepComponents/JcbComp.vue b/src/components/Template/StepComponents/JcbComp.vue
new file mode 100644
index 0000000..815f122
--- /dev/null
+++ b/src/components/Template/StepComponents/JcbComp.vue
@@ -0,0 +1,101 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/components/Template/StepComponents/jcb/qb.vue b/src/components/Template/StepComponents/jcb/qb.vue
index 26fc060..af1d92a 100644
--- a/src/components/Template/StepComponents/jcb/qb.vue
+++ b/src/components/Template/StepComponents/jcb/qb.vue
@@ -22,9 +22,9 @@ export default {
formConfig() {
let config = [{
config: {
- text1: {
+ qb: {
label: "待处理。。。。",
- type: "text",
+ type: "qb",
},
}
}]
diff --git a/src/components/Template/StepFormPackage.vue b/src/components/Template/StepFormPackage.vue
index 099af63..4c0f429 100644
--- a/src/components/Template/StepFormPackage.vue
+++ b/src/components/Template/StepFormPackage.vue
@@ -53,6 +53,9 @@
@onSubPackageSubmit="onSubPackageSubmit(key) "
:stepIndex="stepIndex" :prefixKey="prefixKey+'_'+index" @update="(data)=>onSubPackageUpdate(data,key)" :subData = "formFields[key]" :ref="'zlSubPackageRef_'+key" />
+
+
+
{{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">
+
+
@@ -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 @@
-
@@ -71,6 +72,14 @@ export default {
default: 'preFill',
},
},
+ provide() {
+ return {
+ getMybhByIndex: (index) => {
+ const data = this.$refs[`formConfigStepFormPackageRef_${index}`][0].getFilledFormData()
+ return { mybh: data.targetCode + data.targetCodeSn, maxVolume: data.targetActVolume, maxVolumeUnit: data.targetActVolumeUnit }
+ }
+ }
+ },
computed: {
// 配制条件
storageFormConfig() {
diff --git a/src/views/business/comps/template/comps/gsp/GSP001.vue b/src/views/business/comps/template/comps/gsp/GSP001.vue
index 9458edd..7a0b367 100644
--- a/src/views/business/comps/template/comps/gsp/GSP001.vue
+++ b/src/views/business/comps/template/comps/gsp/GSP001.vue
@@ -35,6 +35,7 @@
:formData="formConfig" />
@@ -70,6 +71,14 @@ export default {
default: 'preFill',
},
},
+ provide() {
+ return {
+ getMybhByIndex: (index) => {
+ const data = this.$refs[`formConfigStepFormPackageRef_${index}`][0].getFilledFormData()
+ return { mybh: data.targetCode + data.targetCodeSn, maxVolume: data.targetActVolume, maxVolumeUnit: data.targetActVolumeUnit }
+ }
+ }
+ },
computed: {
// 配制条件
storageFormConfig() {
@@ -156,7 +165,7 @@ export default {
label: 'template.common.actualFill',
type: "select",
fillType: "actFill",
- otherCode: "actOther",otherCodeCompareTo: "preOther",
+ otherCode: "actOther", otherCodeCompareTo: "preOther",
multiple: true,
compareTo: "pre",
options: this.getDictOptions('business_pztj')
@@ -327,8 +336,8 @@ export default {
for (let i = 0; i < this.formData.formConfigs.length; i++) {
const formData = this.$refs[`formConfigStepFormPackageRef_${i}`][0].getFilledFormData();
const stepData = this.$refs[`formStepRef_${i}`][0].getFilledFormData();
- if(this.formData.startDate&&formData.effectivePeriod&&formData.effectivePeriodUnit){
- formData.expireDate=getExpireDate(this.formData.startDate, formData.effectivePeriod, formData.effectivePeriodUnit)
+ if (this.formData.startDate && formData.effectivePeriod && formData.effectivePeriodUnit) {
+ formData.expireDate = getExpireDate(this.formData.startDate, formData.effectivePeriod, formData.effectivePeriodUnit)
}
formConfigsData.push({
...formData,
diff --git a/src/views/business/comps/template/comps/gsp/GSP003.vue b/src/views/business/comps/template/comps/gsp/GSP003.vue
index 6c2261d..098ba5b 100644
--- a/src/views/business/comps/template/comps/gsp/GSP003.vue
+++ b/src/views/business/comps/template/comps/gsp/GSP003.vue
@@ -41,6 +41,7 @@
:formData="formConfig" />