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 @@
@@ -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;
}