main
fanfan 11 months ago
parent 22d7aeb566
commit cee74198e4
  1. 2
      src/views/dataCenter/goods/Create.vue
  2. 14
      src/views/dataCenter/goods/Update.vue
  3. 101
      src/views/dataCenter/goods/modules/MultiSpec.vue

@ -161,7 +161,7 @@
@change="onForceUpdate()"
>
<a-radio :value="10">单规格</a-radio>
<a-radio :value="20">多规格</a-radio>
<a-radio :value="20" :disabled="true">多规格</a-radio>
</a-radio-group>
</a-form-item>
<!-- 多规格的表单内容 -->

@ -176,6 +176,7 @@
:isSpecLocked="formData.goods.isSpecLocked"
:defaultSpecList="formData.goods.specList"
:defaultSkuList="formData.goods.skuList"
:checkList="checkList"
/>
</div>
<!-- 单规格的表单内容 -->
@ -475,7 +476,6 @@ import { SelectImage, SelectVideo, Ueditor, InputNumberGroup } from '@/component
import GoodsModel from '@/common/model/goods/Index'
import { GoodsType, MultiSpec } from './modules'
import { isEmptyObject } from '@/utils/util'
export default {
components: {
GoodsType,
@ -501,12 +501,14 @@ export default {
// ID
goodsId: null,
//
formData: GoodsModel.formData
formData: GoodsModel.formData,
checkList:[]
}
},
created () {
//
this.initData()
this.getDataList()
},
beforeDestroy () {
//
@ -574,11 +576,17 @@ export default {
this.isLoading = false
})
},
//
getDataList () {
return GoodsApi.list().then(result => {
this.checkList=result.data.list.data
})
},
//
handleSubmit (e) {
e.preventDefault()
//
console.log(this.form)
const { form: { validateFields } } = this
validateFields((errors, values) => {
// tab

@ -14,12 +14,9 @@
placeholder="请输入规格名称"
@change="onChangeSpecGroupIpt"
/>
<a
v-if="!isSpecLocked"
class="group-item-delete"
href="javascript:;"
@click="handleDeleteSpecGroup(index)"
>删除规格组</a>
<a v-if="!isSpecLocked" class="group-item-delete" href="javascript:;" @click="handleDeleteSpecGroup(index)"
>删除规格组</a
>
</div>
<div class="spec-value clearfix">
<div class="spec-value-item" v-for="(itm, idx) in item.valueList" :key="idx">
@ -39,11 +36,7 @@
/>
</div>
<div v-if="!isSpecLocked" class="spec-value-add">
<a
class="group-item-delete"
href="javascript:;"
@click="handleAddSpecValue(index)"
>新增规格值</a>
<a class="group-item-delete" href="javascript:;" @click="handleAddSpecValue(index)">新增规格值</a>
</div>
</div>
</div>
@ -53,14 +46,10 @@
class="spec-group-add-btn"
icon="plus"
@click="handleAddSpecGroup"
>添加规格组</a-button>
>添加规格组</a-button
>
</a-form-item>
<a-form-item
v-show="multiSpecData.skuList.length"
label="SKU列表"
:labelCol="labelCol"
:wrapperCol="wrapperCol"
>
<a-form-item v-show="multiSpecData.skuList.length" label="SKU列表" :labelCol="labelCol" :wrapperCol="wrapperCol">
<!-- 批量设置 -->
<div v-if="multiSpecData.skuList.length > 1" class="sku-batch">
<span class="title">批量设置:</span>
@ -76,12 +65,7 @@
:min="0"
:precision="2"
/>
<a-input-number
v-model="multiSpecData.skuBatchForm.stock_num"
placeholder="库存数量"
:min="0"
:precision="0"
/>
<a-input-number v-model="multiSpecData.skuBatchForm.stock_num" placeholder="库存数量" :min="0" :precision="0" />
<a-input-number
v-model="multiSpecData.skuBatchForm.goods_weight"
placeholder="商品重量"
@ -91,6 +75,18 @@
<a-input v-model="multiSpecData.skuBatchForm.goods_sku_no" placeholder="sku编码" />
<a-button @click="handleSkuBatch">立即设置</a-button>
</div>
<div style="margin-bottom: 15px;">
<span class="title">选择商品Id:</span>
<a-select style="width: 400px;margin-left: 5px;"
v-decorator="['category_id', { initialValue: 0, rules: [{ required: true, message: '请选择分类' }] }]"
>
<a-select-option :value="0">选择商品Id</a-select-option>
<a-select-option v-for="(item, index) in checkList" :key="index" :value="item.goods_id"
>{{ item.goods_id }}---{{ item.goods_name }}</a-select-option
>
</a-select>
</div>
<!-- sku列表table -->
<a-table
class="sku-list"
@ -104,7 +100,7 @@
<template slot="image" slot-scope="text, item">
<SelectImage
v-model="item.image_id"
:defaultList="(item.image_id > 0 && item.image) ? [item.image] : []"
:defaultList="item.image_id > 0 && item.image ? [item.image] : []"
:width="50"
/>
</template>
@ -140,7 +136,7 @@ import { SelectImage } from '@/components'
export default {
components: {
SelectImage
SelectImage,
},
props: {
//
@ -148,9 +144,10 @@ export default {
// SKU
defaultSkuList: PropTypes.array.def([]),
// ()
isSpecLocked: PropTypes.bool.def(false)
isSpecLocked: PropTypes.bool.def(false),
checkList: PropTypes.array.def([]),
},
data () {
data() {
return {
//
labelCol: { span: 3 },
@ -163,93 +160,92 @@ export default {
//
specList: [],
// SKU
skuList: []
}
skuList: [],
},
}
},
watch: {
defaultSpecList (val) {
defaultSpecList(val) {
if (val.length && this.MultiSpecModel.isEmpty()) {
this.getData()
}
}
},
},
//
created () {
created() {
// SKU
this.getData()
},
methods: {
// SKU()
getData () {
getData() {
const { defaultSpecList, defaultSkuList } = this
this.multiSpecData = this.MultiSpecModel.getData(defaultSpecList, defaultSkuList)
},
// SKU()
getFromSpecData () {
getFromSpecData() {
return this.MultiSpecModel.getFromSpecData()
},
//
handleAddSpecGroup () {
handleAddSpecGroup() {
if (this.checkSkuMaxNum()) {
this.MultiSpecModel.handleAddSpecGroup()
}
},
//
handleDeleteSpecGroup (groupIndex) {
handleDeleteSpecGroup(groupIndex) {
const app = this
const modal = this.$confirm({
title: '您确定要删除该规格组吗?',
content: '删除后不可恢复',
onOk () {
onOk() {
//
app.MultiSpecModel.handleDeleteSpecGroup(groupIndex)
//
modal.destroy()
}
},
})
},
//
handleAddSpecValue (groupIndex) {
handleAddSpecValue(groupIndex) {
if (this.checkSkuMaxNum()) {
this.MultiSpecModel.handleAddSpecValue(groupIndex)
}
},
//
handleDeleteSpecValue (groupIndex, valueIndex) {
handleDeleteSpecValue(groupIndex, valueIndex) {
const app = this
const modal = this.$confirm({
title: '您确定要删除该规格值吗?',
content: '删除后不可恢复',
onOk () {
onOk() {
//
app.MultiSpecModel.handleDeleteSpecValue(groupIndex, valueIndex)
//
modal.destroy()
}
},
})
},
// change
onChangeSpecGroupIpt () {
onChangeSpecGroupIpt() {
// skuList
this.MultiSpecModel.onUpdate(true)
},
// change
onChangeSpecValueIpt (event, itm) {
onChangeSpecValueIpt(event, itm) {
// skuList
this.MultiSpecModel.onUpdate(true)
},
// sku
checkSkuMaxNum () {
checkSkuMaxNum() {
const skuList = this.multiSpecData.skuList
if (skuList.length >= 50) {
this.$message.error(`生成的sku列表数量不能大于50个,当前数量:${skuList.length}`, 2.5)
@ -259,22 +255,21 @@ export default {
},
// sku
handleSkuBatch () {
handleSkuBatch() {
this.MultiSpecModel.handleSkuBatch()
},
//
verifyForm () {
verifyForm() {
if (!this.MultiSpecModel.verifyForm()) {
this.$message.error(this.MultiSpecModel.getError(), 2)
return false
}
return true
}
}
},
handleGoodsId() {},
},
}
</script>
<style lang="less" scoped>
//

Loading…
Cancel
Save