2 Commits

2 changed files with 139 additions and 84 deletions
Unified View
  1. +138
    -83
      src/components/Template/StepComponents/ZLSubPackage.vue
  2. +1
    -1
      src/components/Template/StepFormPackage.vue

+ 138
- 83
src/components/Template/StepComponents/ZLSubPackage.vue View File

@ -5,31 +5,41 @@
<div class="zl-header-container"> <div class="zl-header-container">
<div class="header-item" v-for="item in subConfig" :key="item.key"> <div class="header-item" v-for="item in subConfig" :key="item.key">
<div class="header-title">{{ item.label }}</div> <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]" /> v-model="formData[item.key]" />
<span class="ml-5">{{ item.unit }}</span> <span class="ml-5">{{ item.unit }}</span>
<el-button class="ml-5" type="primary" v-if="item.key == 'fzsl'" :disabled="!formData[item.key]" plain @click="onConfirm(item.key)">确定</el-button>
<el-button class="ml-5" type="primary" v-if="item.key == 'fzsl' && templateFillType == 'preFill'"
:disabled="!formData[item.key]" plain @click="onConfirm(item.key)">确定</el-button>
</div> </div>
<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 :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> </div>
<div class="header-item"> <div class="header-item">
<div class="header-title">预设每份容量</div> <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 + formData.mybh + '_mfbzl'" type="inputNumber"
:error="formErrors.mfbzl" :isFieldsRecord="false" :item="preInputNumberItem" :error="formErrors.mfbzl" :isFieldsRecord="false" :item="preInputNumberItem"
v-model="formData.mfbzl" /> v-model="formData.mfbzl" />
</div> </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">平均分配</el-button>
<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 + formData.dztp + '_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>
<div class="header-item"> <div class="header-item">
<div class="header-title">分装编号</div> <div class="header-title">分装编号</div>
@ -39,20 +49,24 @@
<div class="zl-header-container"> <div class="zl-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" v-if="item.subCode">{{ formData.mybh }}-set{{ item.subCode }}</div> <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"
@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>
</div> </div>
</div> </div>
<div class="sure-button-row"> <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">确定</el-button>
</div> </div>
</div> </div>
</div> </div>
@ -63,7 +77,8 @@
import HandleFormItem from '@/components/Template/HandleFormItem.vue'; import HandleFormItem from '@/components/Template/HandleFormItem.vue';
import { EventBus } from '@/utils/eventBus'; import { EventBus } from '@/utils/eventBus';
import { getLatestSn } from '@/api/template'; 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 { export default {
inject: ['templateFillType'], inject: ['templateFillType'],
dicts: [ dicts: [
@ -88,6 +103,10 @@ export default {
}, },
data() { data() {
return { return {
yqItem: {
type: "yq",
fillType: "actFill",
},
inputItem: { inputItem: {
type: "input", type: "input",
fillType: "actFill", fillType: "actFill",
@ -100,7 +119,7 @@ export default {
inputNumberItem: { inputNumberItem: {
type: "inputNumber", type: "inputNumber",
fillType: "actFill", fillType: "actFill",
label:"实际称量"
label: "实际称量"
}, },
preInputNumberItem: { preInputNumberItem: {
type: "inputNumber", type: "inputNumber",
@ -110,24 +129,27 @@ export default {
mybh: "",// mybh: "",//
fzsl: "",// fzsl: "",//
dw: "",// dw: "",//
dztp: "",//
dztpInfo: {},//
}, },
fzList: [],// fzList: [],//
// //
formErrors: { formErrors: {
fzsl: false, fzsl: false,
dw: false, dw: false,
dztp: false,
}, },
fzListErrors: [], // fzListErrors: [], //
uuid:"",//id
uuid: "",//id
} }
}, },
watch: { watch: {
subData:{
subData: {
handler(newVal) { handler(newVal) {
if(newVal.formData){
if (newVal.formData) {
this.formData = newVal.formData; this.formData = newVal.formData;
} }
if(newVal.fzList){
if (newVal.fzList) {
this.fzList = newVal.fzList; this.fzList = newVal.fzList;
} }
}, },
@ -157,25 +179,25 @@ export default {
options: this.dict.type.business_zldw 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, disabled: true,
fillType: "actFill", fillType: "actFill",
}, },
{ {
fieldKey:"clfz_fzsl",
key:"fzsl",
label:"分装数量",
type:"inputNumber",
fieldKey: "clfz_fzsl",
key: "fzsl",
label: "分装数量",
type: "inputNumber",
fillType: "preFill", fillType: "preFill",
precision: 0, precision: 0,
maxlength: 3, maxlength: 3,
unit:"份",
unit: "份",
}, },
// {// // {//
// fieldKey:"clfz_dw1", // fieldKey:"clfz_dw1",
@ -185,22 +207,22 @@ export default {
}, },
}, },
methods: { methods: {
onSure(){
onSure() {
this.$emit("onSubPackageSubmit"); 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); this.updateCode(data.mybh);
} }
}, },
// //
async updateCode(mybh){
async updateCode(mybh) {
const { fzList } = this; const { fzList } = this;
if(isValueEmpty(mybh) || isValueEmpty(fzList)){
if (isValueEmpty(mybh) || isValueEmpty(fzList)) {
return; return;
} }
const result = await getLatestSn({ const result = await getLatestSn({
@ -208,7 +230,7 @@ export default {
count: fzList.length, count: fzList.length,
type: 2, type: 2,
}) })
if(result.code === 200){
if (result.code === 200) {
const codes = result.data; const codes = result.data;
// //
for (let i = 0; i < fzList.length; i++) { for (let i = 0; i < fzList.length; i++) {
@ -222,24 +244,24 @@ export default {
getButtonItem() { getButtonItem() {
return { return {
fillType: "actFill", fillType: "actFill",
buttonName:"获取值",
key:"hqz",
buttonName: "获取值",
key: "hqz",
} }
}, },
// //
getPrintButtonItem() { getPrintButtonItem() {
return { return {
fillType: "actFill", fillType: "actFill",
buttonName:"打印",
key:"print",
buttonName: "打印",
key: "print",
} }
}, },
// //
getSureButtonItem() { getSureButtonItem() {
return { return {
fillType: "actFill", fillType: "actFill",
buttonName:"确定",
key:"sure",
buttonName: "确定",
key: "sure",
} }
}, },
close() { close() {
@ -277,12 +299,25 @@ export default {
let isValid = true; 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 => { baseFieldConfigs.forEach(config => {
if (config.fillType === this.templateFillType) { if (config.fillType === this.templateFillType) {
if (isValueEmpty(this.formData[config.key]) && !config.disabled) {
if (isValueEmpty(this.formData[config.key])) {
this.formErrors[config.key] = true; this.formErrors[config.key] = true;
isValid = false; isValid = false;
} }
@ -320,7 +355,7 @@ export default {
} }
} }
} }
return {valid: isValid,error:"质量分装数据没填完"};
return { valid: isValid, error: "质量分装数据没填完" };
}, },
resetErrors() { resetErrors() {
// //
@ -340,28 +375,43 @@ export default {
// //
this.fzList = []; this.fzList = [];
this.fzListErrors = []; 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() 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]) { if (this.formData[field]) {
this.formErrors[field] = false; this.formErrors[field] = false;
} }
}, },
onConfirm(field){
onConfirm(field) {
this.onBlurFzsl(this.formData[field]); this.onBlurFzsl(this.formData[field]);
}, },
onBlurFzNum(index, field) { onBlurFzNum(index, field) {
@ -398,9 +448,9 @@ export default {
!(item.rowIndex === index && item.field === field) !(item.rowIndex === index && item.field === field)
); );
}, },
hasError(index, field) { hasError(index, field) {
const o = this.fzListErrors.find((item)=>{
const o = this.fzListErrors.find((item) => {
// item // item
if (!item || typeof item !== 'object') { if (!item || typeof item !== 'object') {
return false; // nullundefined return false; // nullundefined
@ -423,18 +473,21 @@ export default {
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.zl-container{
.zl-container {
// width: 1100px; // width: 1100px;
} }
.dialog-content { .dialog-content {
// padding: 20px; // padding: 20px;
} }
.ml-5{
.ml-5 {
margin-left: 5px; margin-left: 5px;
} }
.unit-select { .unit-select {
// width: 100px; // width: 100px;
flex:1;
flex: 1;
} }
.content-item { .content-item {
@ -444,7 +497,7 @@ export default {
.zl-header-container { .zl-header-container {
display: grid; display: grid;
grid-template-columns: repeat(2, 1fr);
grid-template-columns: repeat(2, 1fr);
grid-gap: 20px; grid-gap: 20px;
margin-top: 10px; margin-top: 10px;
} }
@ -486,7 +539,8 @@ export default {
margin-right: 5px; margin-right: 5px;
// width: 200px; // width: 200px;
} }
.sure-button-row{
.sure-button-row {
display: flex; display: flex;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
@ -494,7 +548,8 @@ export default {
position: relative; position: relative;
padding: 20px; padding: 20px;
} }
.absolute{
.absolute {
position: absolute; position: absolute;
}
}
</style> </style>

+ 1
- 1
src/components/Template/StepFormPackage.vue View File

@ -146,7 +146,7 @@ export default {
// /// // ///
onRegentSubmit(data,key,item){ onRegentSubmit(data,key,item){
this.updateFormData(key,data.selectedId); this.updateFormData(key,data.selectedId);
console.log(data.selectedId,key,"data.selectedId")
console.log(data.selectedId,key,item,"data.selectedId")
if(data.selectType){ if(data.selectType){
this.allFieldsConfig[key].sjSelectType = data.selectType; this.allFieldsConfig[key].sjSelectType = data.selectType;
} }

Loading…
Cancel
Save