|
|
@ -3,12 +3,15 @@ |
|
|
<div class="zl-container"> |
|
|
<div class="zl-container"> |
|
|
<div class="dialog-content"> |
|
|
<div class="dialog-content"> |
|
|
<div class="header-container"> |
|
|
<div class="header-container"> |
|
|
<div class="header-item"> |
|
|
|
|
|
<div class="header-title">母编号</div> |
|
|
|
|
|
<HandleFormItem fieldKey = "clfz_mybh" :item="inputItem" :error="formErrors.mybh" |
|
|
|
|
|
v-model="formData.mybh" /> |
|
|
|
|
|
|
|
|
<div class="header-item" v-for="item in subConfig" :key="item.key"> |
|
|
|
|
|
<div class="header-title">{{ item.label }}</div> |
|
|
|
|
|
<HandleFormItem fieldItemLabel = "质量分装" :fieldKey = item.fieldKey |
|
|
|
|
|
:item="item" :error="formErrors[item.key]" |
|
|
|
|
|
:type="item.type" |
|
|
|
|
|
@blur = "(e)=>onCommonBlur(e,item.key)" |
|
|
|
|
|
v-model="formData[item.key]" /> |
|
|
</div> |
|
|
</div> |
|
|
<div class="header-item"> |
|
|
|
|
|
|
|
|
<!-- <div class="header-item"> |
|
|
<div class="header-title">分装数量</div> |
|
|
<div class="header-title">分装数量</div> |
|
|
<HandleFormItem fieldKey = "clfz_fzsl" @blur="onBlurFzsl" :item="integerInputNumberItem" |
|
|
<HandleFormItem fieldKey = "clfz_fzsl" @blur="onBlurFzsl" :item="integerInputNumberItem" |
|
|
type = "inputNumber" |
|
|
type = "inputNumber" |
|
|
@ -17,19 +20,20 @@ |
|
|
<div class="header-item"> |
|
|
<div class="header-item"> |
|
|
<div class="header-title">单位</div> |
|
|
<div class="header-title">单位</div> |
|
|
<div class="unit-select"> |
|
|
<div class="unit-select"> |
|
|
<HandleFormItem :item="unitItem" type="select" :error="formErrors.dw" |
|
|
|
|
|
|
|
|
<HandleFormItem fieldKey = "clfz_dw" :item="unitItem" type="select" :error="formErrors.dw" |
|
|
@blur="(e) => onCommonBlur(e, 'dw')" v-model="formData.dw" /> |
|
|
@blur="(e) => onCommonBlur(e, 'dw')" v-model="formData.dw" /> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
|
|
|
</div> --> |
|
|
</div> |
|
|
</div> |
|
|
<div class="content-container"> |
|
|
<div class="content-container"> |
|
|
<div class="header-container"> |
|
|
<div class="header-container"> |
|
|
<div v-for="(item, index) in fzList" class="list-item" :key="index"> |
|
|
<div v-for="(item, index) in fzList" class="list-item" :key="index"> |
|
|
<div class="list-label">{{ formData.mybh }}-set{{ item.subCode }}</div> |
|
|
<div class="list-label">{{ formData.mybh }}-set{{ item.subCode }}</div> |
|
|
<HandleFormItem :fieldKey = "'clfz_set'+index+'_prenum'" :item="preInputNumberItem" |
|
|
|
|
|
|
|
|
<HandleFormItem fieldItemLabel = "质量分装" :fieldKey = "'clfz_set'+index+'_prenum'" :item="preInputNumberItem" |
|
|
:error="hasError(index, 'prenum')" |
|
|
:error="hasError(index, 'prenum')" |
|
|
|
|
|
:disabled="true" |
|
|
type="inputNumber" @blur="onBlurFzNum(index,'prenum')" v-model="item.prenum" /> |
|
|
type="inputNumber" @blur="onBlurFzNum(index,'prenum')" v-model="item.prenum" /> |
|
|
<HandleFormItem :fieldKey = "'clfz_set'+index+'_actnum'" class="ml-5" :item="inputNumberItem" |
|
|
|
|
|
|
|
|
<HandleFormItem fieldItemLabel = "质量分装" :fieldKey = "'clfz_set'+index+'_actnum'" class="ml-5" :item="inputNumberItem" |
|
|
:error="hasError(index, 'actnum')" |
|
|
:error="hasError(index, 'actnum')" |
|
|
type="inputNumber" @blur="onBlurFzNum(index,'actnum')" v-model="item.actnum" /> |
|
|
type="inputNumber" @blur="onBlurFzNum(index,'actnum')" v-model="item.actnum" /> |
|
|
<HandleFormItem |
|
|
<HandleFormItem |
|
|
@ -46,7 +50,6 @@ |
|
|
|
|
|
|
|
|
<script> |
|
|
<script> |
|
|
import HandleFormItem from '@/components/Template/HandleFormItem.vue'; |
|
|
import HandleFormItem from '@/components/Template/HandleFormItem.vue'; |
|
|
import { compareVolume } from '@/utils/volumeTools.js'; |
|
|
|
|
|
import { EventBus } from '@/utils/eventBus'; |
|
|
import { EventBus } from '@/utils/eventBus'; |
|
|
import { getLatestSn } from '@/api/template'; |
|
|
import { getLatestSn } from '@/api/template'; |
|
|
import { isValueEmpty } from '@/utils/index.js'; |
|
|
import { isValueEmpty } from '@/utils/index.js'; |
|
|
@ -73,30 +76,30 @@ export default { |
|
|
}, |
|
|
}, |
|
|
integerInputNumberItem: { |
|
|
integerInputNumberItem: { |
|
|
type: "inputNumber", |
|
|
type: "inputNumber", |
|
|
fillType: "preFill", |
|
|
|
|
|
|
|
|
fillType: "actFill", |
|
|
precision: 0, |
|
|
precision: 0, |
|
|
maxlength: 3 |
|
|
maxlength: 3 |
|
|
}, |
|
|
}, |
|
|
inputNumberItem: { |
|
|
inputNumberItem: { |
|
|
type: "inputNumber", |
|
|
type: "inputNumber", |
|
|
fillType: "actFill", |
|
|
fillType: "actFill", |
|
|
|
|
|
label:"实际称量" |
|
|
}, |
|
|
}, |
|
|
preInputNumberItem: { |
|
|
preInputNumberItem: { |
|
|
type: "inputNumber", |
|
|
type: "inputNumber", |
|
|
fillType: "preFill", |
|
|
fillType: "preFill", |
|
|
|
|
|
label:"预计称量" |
|
|
}, |
|
|
}, |
|
|
formData: { |
|
|
formData: { |
|
|
mybh: "",//母液编号 |
|
|
mybh: "",//母液编号 |
|
|
fzsl: "",//分装数量 |
|
|
fzsl: "",//分装数量 |
|
|
dw: "",//单位 |
|
|
dw: "",//单位 |
|
|
mfbzl: "",//每份包装量 |
|
|
|
|
|
}, |
|
|
}, |
|
|
fzList: [],//分装列表 |
|
|
fzList: [],//分装列表 |
|
|
// 错误状态字段 |
|
|
// 错误状态字段 |
|
|
formErrors: { |
|
|
formErrors: { |
|
|
fzsl: false, |
|
|
fzsl: false, |
|
|
dw: false, |
|
|
dw: false, |
|
|
mfbzl: false, |
|
|
|
|
|
}, |
|
|
}, |
|
|
fzListErrors: [], // 分装列表错误状态 |
|
|
fzListErrors: [], // 分装列表错误状态 |
|
|
uuid:"",//事件id |
|
|
uuid:"",//事件id |
|
|
@ -131,19 +134,42 @@ export default { |
|
|
} |
|
|
} |
|
|
}, |
|
|
}, |
|
|
computed: { |
|
|
computed: { |
|
|
unitItem() { |
|
|
|
|
|
return { |
|
|
|
|
|
type: "select", |
|
|
|
|
|
fillType: "actFill", |
|
|
|
|
|
options: this.dict.type.business_tjdw |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
subConfig(){ |
|
|
|
|
|
return[ |
|
|
|
|
|
{ |
|
|
|
|
|
fieldKey:"clfz_mybh", |
|
|
|
|
|
key:"mybh", |
|
|
|
|
|
label:"母编号", |
|
|
|
|
|
type:"input", |
|
|
|
|
|
disabled: true, |
|
|
|
|
|
fillType: "actFill", |
|
|
|
|
|
}, |
|
|
|
|
|
{ |
|
|
|
|
|
fieldKey:"clfz_fzsl", |
|
|
|
|
|
key:"fzsl", |
|
|
|
|
|
label:"分装数量", |
|
|
|
|
|
type:"inputNumber", |
|
|
|
|
|
fillType: "preFill", |
|
|
|
|
|
}, |
|
|
|
|
|
{ |
|
|
|
|
|
fieldKey:"clfz_dw", |
|
|
|
|
|
key:"dw", |
|
|
|
|
|
label:"单位", |
|
|
|
|
|
type:"select", |
|
|
|
|
|
options: this.dict.type.business_tjdw, |
|
|
|
|
|
fillType: "preFill", |
|
|
|
|
|
}, |
|
|
|
|
|
] |
|
|
|
|
|
}, |
|
|
}, |
|
|
}, |
|
|
methods: { |
|
|
methods: { |
|
|
|
|
|
updateFormData(data){ |
|
|
|
|
|
this.formData = {...this.formData,...data}; |
|
|
|
|
|
}, |
|
|
// 获取按钮项 |
|
|
// 获取按钮项 |
|
|
getButtonItem() { |
|
|
getButtonItem() { |
|
|
return { |
|
|
return { |
|
|
fillType: "preFill", |
|
|
|
|
|
|
|
|
fillType: "actFill", |
|
|
buttonName:"获取值", |
|
|
buttonName:"获取值", |
|
|
} |
|
|
} |
|
|
}, |
|
|
}, |
|
|
@ -157,30 +183,13 @@ export default { |
|
|
let isValid = true; |
|
|
let isValid = true; |
|
|
|
|
|
|
|
|
// 定义需要验证的基础字段配置 |
|
|
// 定义需要验证的基础字段配置 |
|
|
const baseFieldConfigs = [ |
|
|
|
|
|
|
|
|
|
|
|
{ |
|
|
|
|
|
field: 'fzsl', |
|
|
|
|
|
errorField: 'fzsl', |
|
|
|
|
|
itemConfig: this.integerInputNumberItem |
|
|
|
|
|
}, |
|
|
|
|
|
{ |
|
|
|
|
|
field: 'dw', |
|
|
|
|
|
errorField: 'dw', |
|
|
|
|
|
itemConfig: this.unitItem |
|
|
|
|
|
}, |
|
|
|
|
|
{ |
|
|
|
|
|
field: 'mfbzl', |
|
|
|
|
|
errorField: 'mfbzl', |
|
|
|
|
|
itemConfig: this.inputNumberItem |
|
|
|
|
|
} |
|
|
|
|
|
]; |
|
|
|
|
|
|
|
|
const baseFieldConfigs = this.subConfig; |
|
|
|
|
|
|
|
|
// 验证基础字段 |
|
|
// 验证基础字段 |
|
|
baseFieldConfigs.forEach(config => { |
|
|
baseFieldConfigs.forEach(config => { |
|
|
if (config.itemConfig.fillType === this.templateFillType) { |
|
|
|
|
|
if (!this.formData[config.field]) { |
|
|
|
|
|
this.formErrors[config.errorField] = true; |
|
|
|
|
|
|
|
|
if (config.fillType === this.templateFillType) { |
|
|
|
|
|
if (isValueEmpty(this.formData[config.key]) && !config.disabled) { |
|
|
|
|
|
this.formErrors[config.key] = true; |
|
|
isValid = false; |
|
|
isValid = false; |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
@ -214,7 +223,7 @@ export default { |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
return {valid: isValid,error:""}; |
|
|
|
|
|
|
|
|
return {valid: isValid,error:"质量分装数据没填完"}; |
|
|
}, |
|
|
}, |
|
|
resetErrors() { |
|
|
resetErrors() { |
|
|
// 重置表单错误状态 |
|
|
// 重置表单错误状态 |
|
|
@ -229,7 +238,6 @@ export default { |
|
|
}, |
|
|
}, |
|
|
// 分装数量失去焦点时,根据数量生成分装列表 |
|
|
// 分装数量失去焦点时,根据数量生成分装列表 |
|
|
async onBlurFzsl(e) { |
|
|
async onBlurFzsl(e) { |
|
|
console.log(e,"失去焦点时的数量") |
|
|
|
|
|
// 清除当前字段的错误状态 |
|
|
// 清除当前字段的错误状态 |
|
|
if (e) { |
|
|
if (e) { |
|
|
this.formErrors.fzsl = false; |
|
|
this.formErrors.fzsl = false; |
|
|
@ -252,6 +260,13 @@ export default { |
|
|
subCode: codes[i], |
|
|
subCode: codes[i], |
|
|
}); |
|
|
}); |
|
|
} |
|
|
} |
|
|
|
|
|
const params = { |
|
|
|
|
|
type: "fieldChanged", |
|
|
|
|
|
newRecord: null, |
|
|
|
|
|
resourceList: null, |
|
|
|
|
|
} |
|
|
|
|
|
EventBus.$emit("onModifyRecord", params); |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
}, |
|
|
}, |
|
|
@ -260,10 +275,13 @@ export default { |
|
|
console.log(item,"获取值") |
|
|
console.log(item,"获取值") |
|
|
this.fzList = [...this.fzList] |
|
|
this.fzList = [...this.fzList] |
|
|
}, |
|
|
}, |
|
|
onCommonBlur(e, field) { |
|
|
|
|
|
|
|
|
onCommonBlur(e,field) { |
|
|
if (this.formData[field]) { |
|
|
if (this.formData[field]) { |
|
|
this.formErrors[field] = false; |
|
|
this.formErrors[field] = false; |
|
|
} |
|
|
} |
|
|
|
|
|
if(field === 'fzsl'){ |
|
|
|
|
|
this.onBlurFzsl(e); |
|
|
|
|
|
} |
|
|
}, |
|
|
}, |
|
|
onBlurFzNum(index, field) { |
|
|
onBlurFzNum(index, field) { |
|
|
if (this.fzList[index]) { |
|
|
if (this.fzList[index]) { |
|
|
|