优化商品多sku的选择页面逻辑

This commit is contained in:
季圣华
2022-11-05 16:47:31 +08:00
parent e7fb8ff04d
commit 90f1afc1f6

View File

@@ -133,31 +133,24 @@
</a-col>
</a-row>
<a-row class="form-row" :gutter="24">
<a-col :md="6" :sm="24" v-if="manySkuSelected>=1">
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" :label="skuOneTitle">
<a-tooltip title="选择之后请点击生成条码">
<a-select mode="multiple" v-decorator="[ 'skuOne' ]" showSearch optionFilterProp="children" placeholder="请选择可多选" >
<a-col :md="12" :sm="24" v-if="manySkuSelected>=1">
<a-form-item :labelCol="{xs: { span: 24 },sm: { span: 4 }}" :wrapperCol="{xs: { span: 24 },sm: { span: 20 }}" :label="skuOneTitle">
<a-select mode="multiple" v-decorator="[ 'skuOne' ]" showSearch optionFilterProp="children"
placeholder="请选择可多选" @select="onSkuChange" @deselect="onSkuOneDeSelect">
<a-select-option v-for="(item,index) in skuOneList" :key="index" :value="item.value">
{{ item.name }}
</a-select-option>
</a-select>
</a-tooltip>
</a-form-item>
</a-col>
<a-col :md="6" :sm="24" v-if="manySkuSelected>=2">
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" :label="skuTwoTitle">
<a-tooltip title="选择之后请点击生成条码">
<a-select mode="multiple" v-decorator="[ 'skuTwo' ]" showSearch optionFilterProp="children" placeholder="请选择可多选" >
<a-col :md="12" :sm="24" v-if="manySkuSelected>=2">
<a-form-item :labelCol="{xs: { span: 24 },sm: { span: 4 }}" :wrapperCol="{xs: { span: 24 },sm: { span: 20 }}" :label="skuTwoTitle">
<a-select mode="multiple" v-decorator="[ 'skuTwo' ]" showSearch optionFilterProp="children"
placeholder="请选择可多选" @select="onSkuChange" @deselect="onSkuTwoDeSelect">
<a-select-option v-for="(item,index) in skuTwoList" :key="index" :value="item.value">
{{ item.name }}
</a-select-option>
</a-select>
</a-tooltip>
</a-form-item>
</a-col>
<a-col :md="6" :sm="24" v-if="manySkuSelected>=1">
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="生成条码">
<a-switch v-model="barCodeSwitch" @change="onBarCodeChange"></a-switch>
</a-form-item>
</a-col>
</a-row>
@@ -277,7 +270,7 @@
import { FormTypes, getRefPromise, VALIDATE_NO_PASSED, validateFormAndTables } from '@/utils/JEditableTableUtil'
import { checkMaterial, checkMaterialBarCode, getMaterialAttributeNameList,
getMaterialAttributeValueListById, getMaxBarCode, queryMaterialCategoryTreeList } from '@/api/api'
import { autoJumpNextInput, handleIntroJs } from '@/utils/util'
import { removeByVal, autoJumpNextInput, handleIntroJs } from '@/utils/util'
import { getAction, httpAction } from '@/api/manage'
import JImageUpload from '@/components/jeecg/JImageUpload'
import JDate from '@/components/jeecg/JDate'
@@ -778,29 +771,46 @@
this.barCodeSwitch = false;
this.meTable.dataSource = []
},
onBarCodeChange(checked) {
onSkuChange() {
let skuOneData = this.form.getFieldValue('skuOne')
let skuTwoData = this.form.getFieldValue('skuTwo')
this.autoSkuList(skuOneData, skuTwoData)
},
onSkuOneDeSelect(value) {
let skuOneData = this.form.getFieldValue('skuOne')
let skuTwoData = this.form.getFieldValue('skuTwo')
removeByVal(skuOneData, value)
this.autoSkuList(skuOneData, skuTwoData)
},
onSkuTwoDeSelect(value) {
let skuOneData = this.form.getFieldValue('skuOne')
let skuTwoData = this.form.getFieldValue('skuTwo')
removeByVal(skuTwoData, value)
this.autoSkuList(skuOneData, skuTwoData)
},
autoSkuList(skuOneData, skuTwoData) {
let unit = this.form.getFieldValue('unit')
if(unit) {
if(checked){
//计算多属性已经选择了几个
let count = this.getNumByField('skuOne') + this.getNumByField('skuTwo')
let barCodeSku = []
if(count === 1) {
let skuArr = []
let skuArrOnly = []
if(this.getNumByField('skuOne')) {
skuArr.push(this.form.getFieldValue('skuOne'))
skuArrOnly = skuOneData
} else if(this.getNumByField('skuTwo')) {
skuArrOnly = skuTwoData
}
let skuArrOne = skuArr[0]
for (let i = 0; i < skuArrOne.length; i++) {
barCodeSku.push(skuArrOne[i])
for (let i = 0; i < skuArrOnly.length; i++) {
barCodeSku.push(skuArrOnly[i])
}
} else if(count === 2) {
let skuArr = []
if(this.getNumByField('skuOne')) {
skuArr.push(this.form.getFieldValue('skuOne'))
skuArr.push(skuOneData)
}
if(this.getNumByField('skuTwo')) {
skuArr.push(this.form.getFieldValue('skuTwo'))
skuArr.push(skuTwoData)
}
let skuArrOne = skuArr[0]
let skuArrTwo = skuArr[1]
@@ -821,9 +831,6 @@
this.meTable.dataSource = meTableData
}
})
} else {
this.meTable.dataSource = []
}
} else {
this.$message.warning('请填写单位(注意不要勾选多单位)');
this.barCodeSwitch = false;