|
|
@ -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; // 忽略布尔值、null、undefined等无效值 |
|
|
return false; // 忽略布尔值、null、undefined等无效值 |
|
|
@ -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> |