From 37029c44fc6bca25da18e18e492fd8395f0a3f3a Mon Sep 17 00:00:00 2001 From: luojie <125330818@qq.com> Date: Thu, 9 Apr 2026 15:59:00 +0800 Subject: [PATCH] =?UTF-8?q?feat:[=E6=A8=A1=E6=9D=BF=E7=AE=A1=E7=90=86][upd?= =?UTF-8?q?ate]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Template/StepComponents/ZLSubPackage.vue | 221 +++++++++++++-------- src/components/Template/StepFormPackage.vue | 2 +- 2 files changed, 139 insertions(+), 84 deletions(-) diff --git a/src/components/Template/StepComponents/ZLSubPackage.vue b/src/components/Template/StepComponents/ZLSubPackage.vue index 58c357f..48454f3 100644 --- a/src/components/Template/StepComponents/ZLSubPackage.vue +++ b/src/components/Template/StepComponents/ZLSubPackage.vue @@ -5,31 +5,41 @@
{{ item.label }}
- {{ item.unit }} - 确定 + 确定
分装单位
- +
预设每份容量
-
- +
- 平均分配 - 重置 - + 平均分配 + 重置 + +
+
+
电子天平
+
+ +
+
+
分装编号
@@ -39,20 +49,24 @@
{{ formData.mybh }}-set{{ item.subCode }}
- - - 获取值 - 打印 + + + 获取值 + 打印
- +
- 确定 + 确定
@@ -63,7 +77,8 @@ import HandleFormItem from '@/components/Template/HandleFormItem.vue'; import { EventBus } from '@/utils/eventBus'; import { getLatestSn } from '@/api/template'; -import { isValueEmpty,justUpdateFilledFormData } from '@/utils/index.js'; +import { isValueEmpty, justUpdateFilledFormData } from '@/utils/index.js'; +import { getBalance } from '@/utils/tpph.js'; export default { inject: ['templateFillType'], dicts: [ @@ -88,6 +103,10 @@ export default { }, data() { return { + yqItem: { + type: "yq", + fillType: "actFill", + }, inputItem: { type: "input", fillType: "actFill", @@ -100,7 +119,7 @@ export default { inputNumberItem: { type: "inputNumber", fillType: "actFill", - label:"实际称量" + label: "实际称量" }, preInputNumberItem: { type: "inputNumber", @@ -110,24 +129,27 @@ export default { mybh: "",//母液编号 fzsl: "",//分装数量 dw: "",//单位 + dztp: "",//电子天平 + dztpInfo: {},//电子天平信息 }, fzList: [],//分装列表 // 错误状态字段 formErrors: { fzsl: false, dw: false, + dztp: false, }, fzListErrors: [], // 分装列表错误状态 - uuid:"",//事件id + uuid: "",//事件id } }, watch: { - subData:{ + subData: { handler(newVal) { - if(newVal.formData){ + if (newVal.formData) { this.formData = newVal.formData; } - if(newVal.fzList){ + if (newVal.fzList) { this.fzList = newVal.fzList; } }, @@ -157,25 +179,25 @@ export default { options: this.dict.type.business_zldw } }, - subConfig(){ - return[ + subConfig() { + return [ { - fieldKey:"clfz_mybh", - key:"mybh", - label:"包装编号", - type:"input", + fieldKey: "clfz_mybh", + key: "mybh", + label: "包装编号", + type: "input", disabled: true, fillType: "actFill", }, { - fieldKey:"clfz_fzsl", - key:"fzsl", - label:"分装数量", - type:"inputNumber", + fieldKey: "clfz_fzsl", + key: "fzsl", + label: "分装数量", + type: "inputNumber", fillType: "preFill", precision: 0, maxlength: 3, - unit:"份", + unit: "份", }, // {//占位 // fieldKey:"clfz_dw1", @@ -185,22 +207,22 @@ export default { }, }, methods: { - onSure(){ + onSure() { this.$emit("onSubPackageSubmit"); }, - onPrint(item){ - console.log(item,"打印"); + onPrint(item) { + console.log(item, "打印"); }, - updateFormData(data){ - this.formData = {...this.formData,...data}; - if(data.mybh){ + updateFormData(data) { + this.formData = { ...this.formData, ...data }; + if (data.mybh) { this.updateCode(data.mybh); } }, // 更新分装列表 - async updateCode(mybh){ + async updateCode(mybh) { const { fzList } = this; - if(isValueEmpty(mybh) || isValueEmpty(fzList)){ + if (isValueEmpty(mybh) || isValueEmpty(fzList)) { return; } const result = await getLatestSn({ @@ -208,7 +230,7 @@ export default { count: fzList.length, type: 2, }) - if(result.code === 200){ + if (result.code === 200) { const codes = result.data; // 根据输入的数量生成新列表 for (let i = 0; i < fzList.length; i++) { @@ -222,24 +244,24 @@ export default { getButtonItem() { return { fillType: "actFill", - buttonName:"获取值", - key:"hqz", + buttonName: "获取值", + key: "hqz", } }, // 获取按钮项 getPrintButtonItem() { return { fillType: "actFill", - buttonName:"打印", - key:"print", + buttonName: "打印", + key: "print", } }, // 获取确认项 getSureButtonItem() { return { fillType: "actFill", - buttonName:"确定", - key:"sure", + buttonName: "确定", + key: "sure", } }, close() { @@ -277,12 +299,25 @@ export default { let isValid = true; // 定义需要验证的基础字段配制 - const baseFieldConfigs = this.subConfig; + const baseFieldConfigs = JSON.parse(JSON.stringify(this.subConfig)); + baseFieldConfigs.push( + { + key: "dztp", + label: "电子天平", + type: "yq", + fillType: "actFill", + }, + { + key: "dw", + label: "分装单位", + fillType: "preFill", + } + ) // 验证基础字段 baseFieldConfigs.forEach(config => { if (config.fillType === this.templateFillType) { - if (isValueEmpty(this.formData[config.key]) && !config.disabled) { + if (isValueEmpty(this.formData[config.key])) { this.formErrors[config.key] = true; isValid = false; } @@ -320,7 +355,7 @@ export default { } } } - return {valid: isValid,error:"质量分装数据没填完"}; + return { valid: isValid, error: "质量分装数据没填完" }; }, resetErrors() { // 重置表单错误状态 @@ -340,28 +375,43 @@ export default { // 清空现有列表 this.fzList = []; this.fzListErrors = []; - for (let i = 0; i < e; i++) { - this.fzList.push({ - prenum: "", - actnum: "", - subCode: "", - }); - } + for (let i = 0; i < e; i++) { + this.fzList.push({ + prenum: "", + actnum: "", + subCode: "", + }); + } justUpdateFilledFormData() - - + + + }, + onRegentSubmit(data, field) { + const { selectedId } = data; + this.formData[field] = selectedId; + this.formData.dztpInfo = data.row; }, - onGetValue(item) { - item.actnum = 123; - console.log(item,"获取值") - this.fzList = [...this.fzList] - }, - onCommonBlur(e,field) { + async onGetValue(item) { + const { dztp,dztpInfo,dw } = this.formData; + if (isValueEmpty(dztp)) { + this.$message.error("请选择电子天平"); + return; + } + const result = await getBalance({yq:dztpInfo,dw}); + if(result.success){ + item.actnum = result.value; + this.fzList = [...this.fzList]; + justUpdateFilledFormData() + }else{ + this.$message.error(result.message || "获取值失败"); + } + }, + onCommonBlur(e, field) { if (this.formData[field]) { this.formErrors[field] = false; } }, - onConfirm(field){ + onConfirm(field) { this.onBlurFzsl(this.formData[field]); }, onBlurFzNum(index, field) { @@ -398,9 +448,9 @@ export default { !(item.rowIndex === index && item.field === field) ); }, - + hasError(index, field) { - const o = this.fzListErrors.find((item)=>{ + const o = this.fzListErrors.find((item) => { // 检查 item 是否存在且为对象类型 if (!item || typeof item !== 'object') { return false; // 忽略布尔值、null、undefined等无效值 @@ -423,18 +473,21 @@ export default { \ No newline at end of file diff --git a/src/components/Template/StepFormPackage.vue b/src/components/Template/StepFormPackage.vue index 17bbb39..f4ef7b9 100644 --- a/src/components/Template/StepFormPackage.vue +++ b/src/components/Template/StepFormPackage.vue @@ -146,7 +146,7 @@ export default { // //试剂/仪器等弹窗提交 onRegentSubmit(data,key,item){ this.updateFormData(key,data.selectedId); - console.log(data.selectedId,key,"data.selectedId") + console.log(data.selectedId,key,item,"data.selectedId") if(data.selectType){ this.allFieldsConfig[key].sjSelectType = data.selectType; }