@ -5,30 +5,41 @@
< div class = "zl-header-container" >
< div class = "header-item" v-for ="item in subConfig" :key="item.key" >
< div class = "header-title" > { { item . label } } < / div >
< HandleFormItem fieldItemLabel = "质量分装" : fieldKey = 'prefixKey+stepIndex + item.fieldKey'
: item = "item" : error = "formErrors[item.key]"
: type = "item.type"
@ blur = "(e)=>onCommonBlur(e,item.key)"
< HandleFormItem fieldItemLabel = "质量分装" : fieldKey = 'prefixKey + stepIndex + item.fieldKey' :item ="item"
: error = "formErrors[item.key]" : type = "item.type" @ blur = "(e) => onCommonBlur(e, item.key)"
v - model = "formData[item.key]" / >
< span class = "ml-5" > { { item . unit } } < / span >
< el -button class = "ml-5" type = "primary" v -if = " item.key = = ' fzsl ' & & templateFillType = = ' preFill ' "
: disabled = "!formData[item.key]" plain @ click = "onConfirm(item.key)" > 确定 < / e l - b u t t o n >
< / div >
< div class = "header-item" >
< div class = "header-title" > 分装单位 < / div >
< div class = "unit-select" >
< HandleFormItem : fieldKey = "prefixKey+stepIndex + 'dw'" :item ="unitItem" type = "select" :error ="formErrors.dw"
@ blur = "(e) => onCommonBlur(e, 'dw')" v - model = "formData.dw" / >
< HandleFormItem : fieldKey = "prefixKey + stepIndex + 'dw'" :item ="unitItem" type = "select"
: error = "formErrors.dw" @ blur = "(e) => onCommonBlur(e, 'dw')" v - model = "formData.dw" / >
< / div >
< / div >
< div class = "header-item" >
< div class = "header-title" > 预设每份容量 < / div >
< div class = "unit-select" >
< HandleFormItem : fieldKey = "prefixKey+stepIndex + formData.mybh + '_mfbzl'" type = "inputNumber"
< div class = "unit-select" >
< HandleFormItem : fieldKey = "prefixKey + stepIndex + '_mfbzl'" type = "inputNumber"
: error = "formErrors.mfbzl" : isFieldsRecord = "false" : item = "preInputNumberItem"
v - model = "formData.mfbzl" / >
< / div >
< el -button v -if = " templateFillType = = ' preFill ' " class = "ml-10" type = "primary" plain @click ="onAverage" > 平均分配 < / el -button >
< el -button v -if = " templateFillType = = ' preFill ' " type = "primary" plain @click ="onReset" > 重置 < / el -button >
< el -button v -if = " templateFillType = = ' preFill ' " class = "ml-10" type = "primary" plain
@ click = "onAverage" > 平均分配 < / e l - b u t t o n >
< el -button v-if ="templateFillType == 'preFill'" type="primary" plain @click="onReset" > 重置 < / el -button >
< / div >
< div class = "header-item" >
< div class = "header-title" > 电子天平 < / div >
< div class = "unit-select" >
< HandleFormItem : fieldKey = "prefixKey + stepIndex + '_dztp'" type = "yq"
@ onRegentSubmit = "(data) => onRegentSubmit(data, 'dztp')" : error = "formErrors.dztp"
: item = "yqItem" v - model = "formData.dztp" / >
< / div >
< / div >
< div class = "header-item" >
< / div >
< div class = "header-item" >
< div class = "header-title" > 分装编号 < / div >
@ -38,20 +49,29 @@
< div class = "zl-header-container" >
< div v-for ="(item, index) in fzList" class="list-item" :key ="index" >
< div class = "list-label" v-if ="item.subCode" > {{ formData.mybh }} -set {{ item.subCode }} < / div >
< HandleFormItem fieldItemLabel = "质量分装" : fieldKey = "prefixKey+stepIndex + 'clfz_set'+index+'_prenum'" :item ="preInputNumberItem"
: error = "hasError(index, 'prenum')"
: disabled = "true"
type = "inputNumber" @ blur = "onBlurFzNum(index,'prenum')" v - model = "item.prenum" / >
< HandleFormItem fieldItemLabel = "质量分装" : fieldKey = "prefixKey+stepIndex + 'clfz_set'+index+'_actnum'" class = "ml-5" :item ="inputNumberItem"
: error = "hasError(index, 'actnum')"
type = "inputNumber" @ blur = "onBlurFzNum(index,'actnum')" v - model = "item.actnum" / >
< el -button class = "ml-5" v-if ="templateFillType == 'actFill'" type="primary" plain @click="onGetValue(item)" > 获取值 < / el -button >
< el -button class = "ml-5" v-if ="templateFillType == 'actFill'" type="primary" plain @click="onPrint(item)" > 打印 < / el -button >
< HandleFormItem fieldItemLabel = "质量分装"
: fieldKey = "prefixKey + stepIndex + 'clfz_set' + index + '_prenum'"
: item = "preInputNumberItem" : error = "hasError(index, 'prenum')" : disabled = "true"
type = "inputNumber" @ blur = "onBlurFzNum(index, 'prenum')" v - model = "item.prenum" / >
< HandleFormItem fieldItemLabel = "质量分装"
: fieldKey = "prefixKey + stepIndex + 'clfz_set' + index + '_actnum'" class = "ml-5"
: item = "inputNumberItem" : error = "hasError(index, 'actnum')" type = "inputNumber"
: ref = "prefixKey + stepIndex + '_actnum'+index"
@ blur = "onBlurFzNum(index, 'actnum')" v - model = "item.actnum" / >
< HandleFormItem
: fieldKey = "prefixKey + stepIndex + 'clfz_set' + index + '_hqz'" class = "ml-5"
: item = "getButtonItem()" @ clickButton = "(e,v,d) => onGetValue(d, item,index)" type = "button" v - model = "item.hqz" / >
<!-- < el -button class = "ml-5" v -if = " templateFillType = = ' actFill ' " type = "primary" plain
@ click = "onGetValue(item)" > 获取值 < / e l - b u t t o n > - - >
< el -button class = "ml-5" v -if = " templateFillType = = ' actFill ' " type = "primary" plain
@ click = "onPrint(item)" > 打印 < / e l - b u t t o n >
< / div >
< / div >
< div class = "sure-button-row" >
< el -button v-if ="templateFillType == 'actFill'" class="ml-5" type="primary" @click="onSure" > 确定 < / el -button >
< el -button v -if = " templateFillType = = ' actFill ' " class = "ml-5" type = "primary"
@ click = "onSure" > 确定 < / e l - b u t t o n >
< / div >
< / div >
< / div >
@ -62,7 +82,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 : [
@ -87,6 +108,10 @@ export default {
} ,
data ( ) {
return {
yqItem : {
type : "yq" ,
fillType : "actFill" ,
} ,
inputItem : {
type : "input" ,
fillType : "actFill" ,
@ -99,7 +124,8 @@ export default {
inputNumberItem : {
type : "inputNumber" ,
fillType : "actFill" ,
label : "实际称量"
label : "实际称量" ,
disabled : true ,
} ,
preInputNumberItem : {
type : "inputNumber" ,
@ -109,24 +135,27 @@ export default {
mybh : "" , / / 母 液 编 号
fzsl : "" , / / 分 装 数 量
dw : "" , / / 单 位
dztp : "" , / / 电 子 天 平
dztpInfo : { } , / / 电 子 天 平 信 息
} ,
fzList : [ ] , / / 分 装 列 表
/ / 错 误 状 态 字 段
formErrors : {
fzsl : false ,
dw : false ,
dztp : false ,
} ,
fzListErrors : [ ] , / / 分 装 列 表 错 误 状 态
uuid : "" , / / 事 件 i d
uuid : "" , / / 事 件 i d
}
} ,
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 ;
}
} ,
@ -156,25 +185,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 : "份" ,
} ,
/ / { / / 占 位
/ / f i e l d K e y : " c l f z _ d w 1 " ,
@ -184,22 +213,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 ( {
@ -207,7 +236,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 ++ ) {
@ -221,24 +250,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 ( ) {
@ -276,12 +305,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 ;
}
@ -319,7 +361,7 @@ export default {
}
}
}
return { valid : isValid , error : "质量分装数据没填完" } ;
return { valid : isValid , error : "质量分装数据没填完" } ;
} ,
resetErrors ( ) {
/ / 重 置 表 单 错 误 状 态
@ -339,29 +381,48 @@ 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 ;
} ,
async onGetValue ( signData , item , index ) {
const { dztp , dztpInfo , dw } = this . formData ;
if ( isValueEmpty ( dztp ) ) {
this . $message . error ( "请选择电子天平" ) ;
return ;
}
const oldItem = JSON . parse ( JSON . stringify ( item ) ) ;
const result = await getBalance ( { yq : dztpInfo , dw } ) ;
if ( result . success ) {
item . actnum = result . value ;
this . fzList = [ ... this . fzList ] ;
this . $refs [ this . prefixKey + this . stepIndex + '_actnum' + index ] [ 0 ] . handleUpdateRecord ( signData , {
oldValue : oldItem . actnum ,
inputValue : result . value
} )
} else {
this . $message . error ( result . message || "获取值失败" ) ;
}
} ,
onGetValue ( item ) {
item . actnum = 123 ;
console . log ( item , "获取值" )
this . fzList = [ ... this . fzList ]
} ,
onCommonBlur ( e , field ) {
onCommonBlur ( e , field ) {
if ( this . formData [ field ] ) {
this . formErrors [ field ] = false ;
}
if ( field === 'fzsl' ) {
this . onBlurFzsl ( e ) ;
}
} ,
onConfirm ( field ) {
this . onBlurFzsl ( this . formData [ field ] ) ;
} ,
onBlurFzNum ( index , field ) {
if ( this . fzList [ index ] ) {
@ -397,9 +458,9 @@ export default {
! ( item . rowIndex === index && item . field === field )
) ;
} ,
hasError ( index , field ) {
const o = this . fzListErrors . find ( ( item ) => {
const o = this . fzListErrors . find ( ( item ) => {
/ / 检 查 i t e m 是 否 存 在 且 为 对 象 类 型
if ( ! item || typeof item !== 'object' ) {
return false ; / / 忽 略 布 尔 值 、 n u l l 、 u n d e f i n e d 等 无 效 值
@ -422,18 +483,21 @@ export default {
< / script >
< style lang = "scss" scoped >
. zl - container {
. zl - container {
/ / w i d t h : 1 1 0 0 p x ;
}
. dialog - content {
/ / p a d d i n g : 2 0 p x ;
}
. ml - 5 {
. ml - 5 {
margin - left : 5 px ;
}
. unit - select {
/ / w i d t h : 1 0 0 p x ;
flex : 1 ;
flex : 1 ;
}
. content - item {
@ -443,7 +507,7 @@ export default {
. zl - header - container {
display : grid ;
grid - template - columns : repeat ( 2 , 1 fr ) ;
grid - template - columns : repeat ( 2 , 1 fr ) ;
grid - gap : 20 px ;
margin - top : 10 px ;
}
@ -485,7 +549,8 @@ export default {
margin - right : 5 px ;
/ / w i d t h : 2 0 0 p x ;
}
. sure - button - row {
. sure - button - row {
display : flex ;
justify - content : center ;
align - items : center ;
@ -493,7 +558,8 @@ export default {
position : relative ;
padding : 20 px ;
}
. absolute {
. absolute {
position : absolute ;
}
}
< / style >