|
@@ -1,12 +1,5 @@
|
|
<template>
|
|
<template>
|
|
- <el-form
|
|
|
|
- v-loading="loading"
|
|
|
|
- ref="skuForm"
|
|
|
|
- :model="skuForm"
|
|
|
|
- :rules="skuRules"
|
|
|
|
- size="small"
|
|
|
|
- class="sku-editor"
|
|
|
|
- >
|
|
|
|
|
|
+ <el-form v-loading="loading" ref="skuForm" :model="skuForm" :rules="skuRules" size="small" class="sku-editor">
|
|
<div v-if="showSpecs && haveSpec" class="sku-editor-item">
|
|
<div v-if="showSpecs && haveSpec" class="sku-editor-item">
|
|
<span v-if="showLabel" class="label-text">规格信息:</span>
|
|
<span v-if="showLabel" class="label-text">规格信息:</span>
|
|
<div class="spec-list">
|
|
<div class="spec-list">
|
|
@@ -20,103 +13,40 @@
|
|
</div>
|
|
</div>
|
|
<template v-for="(sp, sp_index) in skuForm.selectedSpecs">
|
|
<template v-for="(sp, sp_index) in skuForm.selectedSpecs">
|
|
<el-form-item label="规格名:" class="spec-name">
|
|
<el-form-item label="规格名:" class="spec-name">
|
|
- <el-select
|
|
|
|
- v-model="sp.spec_id"
|
|
|
|
- default-first-option
|
|
|
|
- @change="handleSpecChange"
|
|
|
|
- >
|
|
|
|
- <el-option
|
|
|
|
- v-for="option in specList"
|
|
|
|
- :key="option.spec_id"
|
|
|
|
- :label="option.spec_name"
|
|
|
|
- :value="option.spec_id"
|
|
|
|
- :disabled="computedDisabledSpec(option.spec_id)"
|
|
|
|
- />
|
|
|
|
|
|
+ <el-select v-model="sp.spec_id" default-first-option @change="handleSpecChange">
|
|
|
|
+ <el-option v-for="option in specList" :key="option.spec_id" :label="option.spec_name"
|
|
|
|
+ :value="option.spec_id" :disabled="computedDisabledSpec(option.spec_id)" />
|
|
</el-select>
|
|
</el-select>
|
|
- <el-button
|
|
|
|
- icon="el-icon-delete"
|
|
|
|
- class="del-btn"
|
|
|
|
- @click="handleDeleteSpec(sp_index)"
|
|
|
|
- />
|
|
|
|
- <el-checkbox
|
|
|
|
- v-if="sp_index === 0"
|
|
|
|
- label="规格图片"
|
|
|
|
- v-model="sp.has_spec_image"
|
|
|
|
- />
|
|
|
|
|
|
+ <el-button icon="el-icon-delete" class="del-btn" @click="handleDeleteSpec(sp_index)" />
|
|
|
|
+ <el-checkbox v-if="sp_index === 0" label="规格图片" v-model="sp.has_spec_image" />
|
|
</el-form-item>
|
|
</el-form-item>
|
|
- <el-form-item
|
|
|
|
- label="规格值:"
|
|
|
|
- class="spec-values"
|
|
|
|
- :class="{ 'no-spec-val': sp.spec_value_list.length === 0 }"
|
|
|
|
- >
|
|
|
|
- <div
|
|
|
|
- v-for="(sv, sv_index) in sp.spec_value_list"
|
|
|
|
- :key="sv_index"
|
|
|
|
- class="spec-value-item"
|
|
|
|
- >
|
|
|
|
|
|
+ <el-form-item label="规格值:" class="spec-values" :class="{ 'no-spec-val': sp.spec_value_list.length === 0 }">
|
|
|
|
+ <div v-for="(sv, sv_index) in sp.spec_value_list" :key="sv_index" class="spec-value-item">
|
|
<div class="spec-value-select">
|
|
<div class="spec-value-select">
|
|
- <el-select
|
|
|
|
- v-model="sv.spec_value_id"
|
|
|
|
- default-first-option
|
|
|
|
- @change="
|
|
|
|
- (spec_val_id) =>
|
|
|
|
- handleSpecValChange(sp.spec_id, spec_val_id)
|
|
|
|
- "
|
|
|
|
- >
|
|
|
|
- <el-option
|
|
|
|
- v-for="option in getSpecValueList(sp.spec_id)"
|
|
|
|
- :key="option.spec_value_id"
|
|
|
|
- :label="option.spec_value"
|
|
|
|
- :value="option.spec_value_id"
|
|
|
|
- :disabled="
|
|
|
|
- computedDisabledSpecVal(sp.spec_id, option.spec_value_id)
|
|
|
|
- "
|
|
|
|
- />
|
|
|
|
|
|
+ <el-select v-model="sv.spec_value_id" default-first-option @change="(spec_val_id) =>
|
|
|
|
+ handleSpecValChange(sp.spec_id, spec_val_id)
|
|
|
|
+ ">
|
|
|
|
+ <el-option v-for="option in getSpecValueList(sp.spec_id)" :key="option.spec_value_id"
|
|
|
|
+ :label="option.spec_value" :value="option.spec_value_id" :disabled="computedDisabledSpecVal(sp.spec_id, option.spec_value_id)
|
|
|
|
+ " />
|
|
</el-select>
|
|
</el-select>
|
|
- <el-button
|
|
|
|
- icon="el-icon-delete"
|
|
|
|
- class="del-btn"
|
|
|
|
- @click="handleDeleteSpecVal(sp_index, sv_index)"
|
|
|
|
- />
|
|
|
|
|
|
+ <el-button icon="el-icon-delete" class="del-btn" @click="handleDeleteSpecVal(sp_index, sv_index)" />
|
|
</div>
|
|
</div>
|
|
- <el-form-item
|
|
|
|
- label=""
|
|
|
|
- :prop="`selectedSpecs.${sp_index}.spec_value_list.${sv_index}.spec_image`"
|
|
|
|
- class="spec-value-form-item"
|
|
|
|
- >
|
|
|
|
- <el-upload
|
|
|
|
- v-if="sp.has_spec_image"
|
|
|
|
- accept="image/*"
|
|
|
|
- list-type="picture-card"
|
|
|
|
- :action="MixinUploadApi"
|
|
|
|
- :file-list="
|
|
|
|
- sv.spec_image ? [{ url: sv.spec_image }] : undefined
|
|
|
|
- "
|
|
|
|
- :on-success="
|
|
|
|
- (file) =>
|
|
|
|
|
|
+ <el-form-item label="" :prop="`selectedSpecs.${sp_index}.spec_value_list.${sv_index}.spec_image`"
|
|
|
|
+ class="spec-value-form-item">
|
|
|
|
+ <el-upload v-if="sp.has_spec_image" accept="image/*" list-type="picture-card" :action="MixinUploadApi"
|
|
|
|
+ :file-list="sv.spec_image ? [{ url: sv.spec_image }] : undefined
|
|
|
|
+ " :on-success="(file) =>
|
|
handleSpecValImgUploadSuccess(sp_index, sv_index, file)
|
|
handleSpecValImgUploadSuccess(sp_index, sv_index, file)
|
|
- "
|
|
|
|
- :on-remove="() => handleSpecValImgRemove(sp_index, sv_index)"
|
|
|
|
- :limit="1"
|
|
|
|
- class="spec-value-upload"
|
|
|
|
- >
|
|
|
|
|
|
+ " :on-remove="() => handleSpecValImgRemove(sp_index, sv_index)" :limit="1"
|
|
|
|
+ class="spec-value-upload">
|
|
<i class="el-icon-plus"></i>
|
|
<i class="el-icon-plus"></i>
|
|
</el-upload>
|
|
</el-upload>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</div>
|
|
</div>
|
|
- <div
|
|
|
|
- class="spec-value-item"
|
|
|
|
- :class="{ 'has-img': sp.has_spec_image }"
|
|
|
|
- >
|
|
|
|
- <el-button
|
|
|
|
- v-if="sp.spec_id"
|
|
|
|
- type="text"
|
|
|
|
- @click="handleAddSpecVal(sp_index)"
|
|
|
|
- >添加规格值</el-button
|
|
|
|
- >
|
|
|
|
- <span v-else style="color: #999; font-size: 12px"
|
|
|
|
- >请选择规格</span
|
|
|
|
- >
|
|
|
|
|
|
+ <div class="spec-value-item" :class="{ 'has-img': sp.has_spec_image }">
|
|
|
|
+ <el-button v-if="sp.spec_id" type="text" @click="handleAddSpecVal(sp_index)">添加规格值</el-button>
|
|
|
|
+ <span v-else style="color: #999; font-size: 12px">请选择规格</span>
|
|
</div>
|
|
</div>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</template>
|
|
</template>
|
|
@@ -134,7 +64,7 @@
|
|
</template>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table-column>
|
|
<!-- -->
|
|
<!-- -->
|
|
- <!--<el-table-column label="序列号" align="center" v-if="haveSn">
|
|
|
|
|
|
+ <!--<el-table-column label="序列号" align="center" v-if="haveSn">
|
|
<template v-slot="{ row }">
|
|
<template v-slot="{ row }">
|
|
<el-input
|
|
<el-input
|
|
onKeyUp="value=value.replace(/[\W]/g,'')"
|
|
onKeyUp="value=value.replace(/[\W]/g,'')"
|
|
@@ -145,100 +75,37 @@
|
|
/>
|
|
/>
|
|
</template>
|
|
</template>
|
|
</el-table-column> -->
|
|
</el-table-column> -->
|
|
- <el-table-column
|
|
|
|
- v-for="item in tableColumns"
|
|
|
|
- :key="item.key"
|
|
|
|
- align="center"
|
|
|
|
- >
|
|
|
|
|
|
+ <el-table-column v-for="item in tableColumns" :key="item.key" align="center">
|
|
<template v-slot:header="{ row }">
|
|
<template v-slot:header="{ row }">
|
|
<div>
|
|
<div>
|
|
<span>{{ item.name }}</span>
|
|
<span>{{ item.name }}</span>
|
|
- <el-tooltip
|
|
|
|
- v-if="!!item.tip"
|
|
|
|
- effect="dark"
|
|
|
|
- :content="item.tip"
|
|
|
|
- placement="top"
|
|
|
|
- >
|
|
|
|
|
|
+ <el-tooltip v-if="!!item.tip" effect="dark" :content="item.tip" placement="top">
|
|
<i class="el-icon-warning" style="cursor: help"></i>
|
|
<i class="el-icon-warning" style="cursor: help"></i>
|
|
</el-tooltip>
|
|
</el-tooltip>
|
|
- <el-popover
|
|
|
|
- v-if="!!item.batch"
|
|
|
|
- v-model="item.show_batch"
|
|
|
|
- popper-class="sku-batch-popper"
|
|
|
|
- placement="top"
|
|
|
|
- >
|
|
|
|
- <el-form
|
|
|
|
- size="mini"
|
|
|
|
- label-width="80px"
|
|
|
|
- label-position="right"
|
|
|
|
- @submit.native.prevent
|
|
|
|
- >
|
|
|
|
- <el-form-item
|
|
|
|
- v-if="item.batchForm.prefix !== false"
|
|
|
|
- label="前缀字符"
|
|
|
|
- >
|
|
|
|
- <el-input
|
|
|
|
- v-model="item.batchForm.prefix"
|
|
|
|
- :maxlength="20"
|
|
|
|
- style="width: 100px"
|
|
|
|
- placeholder="选填"
|
|
|
|
- />
|
|
|
|
|
|
+ <el-popover v-if="!!item.batch" v-model="item.show_batch" popper-class="sku-batch-popper" placement="top">
|
|
|
|
+ <el-form size="mini" label-width="80px" label-position="right" @submit.native.prevent>
|
|
|
|
+ <el-form-item v-if="item.batchForm.prefix !== false" label="前缀字符">
|
|
|
|
+ <el-input v-model="item.batchForm.prefix" :maxlength="20" style="width: 100px" placeholder="选填" />
|
|
</el-form-item>
|
|
</el-form-item>
|
|
<el-form-item :label="item.batchForm.initial_value_label">
|
|
<el-form-item :label="item.batchForm.initial_value_label">
|
|
- <el-input-number
|
|
|
|
- v-if="item.batchForm.initial_value_type === 'Number'"
|
|
|
|
- v-model="item.batchForm.initial_value"
|
|
|
|
- :controls="false"
|
|
|
|
- :max="item.batchForm.initial_value_max"
|
|
|
|
- placeholder="选填"
|
|
|
|
- style="width: 100px"
|
|
|
|
- />
|
|
|
|
- <el-input
|
|
|
|
- v-else
|
|
|
|
- v-model="item.batchForm.initial_value"
|
|
|
|
- :maxlength="item.batchForm.initial_value_maxlength"
|
|
|
|
- placeholder="选填"
|
|
|
|
- style="width: 100px"
|
|
|
|
- />
|
|
|
|
|
|
+ <el-input-number v-if="item.batchForm.initial_value_type === 'Number'"
|
|
|
|
+ v-model="item.batchForm.initial_value" :controls="false" :max="item.batchForm.initial_value_max"
|
|
|
|
+ placeholder="选填" style="width: 100px" />
|
|
|
|
+ <el-input v-else v-model="item.batchForm.initial_value"
|
|
|
|
+ :maxlength="item.batchForm.initial_value_maxlength" placeholder="选填" style="width: 100px" />
|
|
</el-form-item>
|
|
</el-form-item>
|
|
- <el-form-item
|
|
|
|
- v-if="item.batchForm.step !== false"
|
|
|
|
- label="递增步长"
|
|
|
|
- >
|
|
|
|
- <el-input-number
|
|
|
|
- v-model="item.batchForm.step"
|
|
|
|
- :controls="false"
|
|
|
|
- :max="item.batchForm.step_max"
|
|
|
|
- style="width: 100px"
|
|
|
|
- placeholder="选填"
|
|
|
|
- />
|
|
|
|
|
|
+ <el-form-item v-if="item.batchForm.step !== false" label="递增步长">
|
|
|
|
+ <el-input-number v-model="item.batchForm.step" :controls="false" :max="item.batchForm.step_max"
|
|
|
|
+ style="width: 100px" placeholder="选填" />
|
|
</el-form-item>
|
|
</el-form-item>
|
|
- <el-form-item
|
|
|
|
- v-if="item.batchForm.pad_zero !== false"
|
|
|
|
- label="补零位数"
|
|
|
|
- >
|
|
|
|
- <el-input-number
|
|
|
|
- v-model="item.batchForm.pad_zero"
|
|
|
|
- :controls="false"
|
|
|
|
- :max="item.batchForm.pad_zero_max"
|
|
|
|
- style="width: 100px"
|
|
|
|
- placeholder="选填"
|
|
|
|
- />
|
|
|
|
|
|
+ <el-form-item v-if="item.batchForm.pad_zero !== false" label="补零位数">
|
|
|
|
+ <el-input-number v-model="item.batchForm.pad_zero" :controls="false"
|
|
|
|
+ :max="item.batchForm.pad_zero_max" style="width: 100px" placeholder="选填" />
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-form>
|
|
</el-form>
|
|
<div style="text-align: right; margin: 0">
|
|
<div style="text-align: right; margin: 0">
|
|
- <el-button
|
|
|
|
- size="mini"
|
|
|
|
- type="text"
|
|
|
|
- @click="item.show_batch = false"
|
|
|
|
- >取消</el-button
|
|
|
|
- >
|
|
|
|
- <el-button
|
|
|
|
- type="primary"
|
|
|
|
- size="mini"
|
|
|
|
- @click="handleBatchSetSkuParams(item)"
|
|
|
|
- >确定</el-button
|
|
|
|
- >
|
|
|
|
|
|
+ <el-button size="mini" type="text" @click="item.show_batch = false">取消</el-button>
|
|
|
|
+ <el-button type="primary" size="mini" @click="handleBatchSetSkuParams(item)">确定</el-button>
|
|
</div>
|
|
</div>
|
|
<i slot="reference" class="el-icon-brush batch-btn"></i>
|
|
<i slot="reference" class="el-icon-brush batch-btn"></i>
|
|
</el-popover>
|
|
</el-popover>
|
|
@@ -246,26 +113,11 @@
|
|
</template>
|
|
</template>
|
|
<template v-slot="{ row, $index }">
|
|
<template v-slot="{ row, $index }">
|
|
<span v-if="item.readonly">{{ row[item.key] || "-" }}</span>
|
|
<span v-if="item.readonly">{{ row[item.key] || "-" }}</span>
|
|
- <el-form-item
|
|
|
|
- v-else
|
|
|
|
- :prop="`skuList.${$index}.${item.key}`"
|
|
|
|
- :class="{ 'hide-message': !showFormMessage }"
|
|
|
|
- >
|
|
|
|
- <el-input-number
|
|
|
|
- v-if="item.type === 'Number'"
|
|
|
|
- v-model="row[item.key]"
|
|
|
|
- :max="item.max"
|
|
|
|
- :controls="false"
|
|
|
|
- :disabled="item.disabled"
|
|
|
|
- style="width: 100%"
|
|
|
|
- />
|
|
|
|
- <el-input
|
|
|
|
- v-else
|
|
|
|
- v-model="row[item.key]"
|
|
|
|
- :disabled="item.disabled"
|
|
|
|
- :maxlength="item.maxlength"
|
|
|
|
- style="text-align: center"
|
|
|
|
- />
|
|
|
|
|
|
+ <el-form-item v-else :prop="`skuList.${$index}.${item.key}`" :class="{ 'hide-message': !showFormMessage }">
|
|
|
|
+ <el-input-number v-if="item.type === 'Number'" v-model="row[item.key]" :max="item.max" :controls="false"
|
|
|
|
+ :disabled="item.disabled" style="width: 100%" />
|
|
|
|
+ <el-input v-else v-model="row[item.key]" :disabled="item.disabled" :maxlength="item.maxlength"
|
|
|
|
+ style="text-align: center" />
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</template>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table-column>
|
|
@@ -364,12 +216,12 @@ export default {
|
|
},
|
|
},
|
|
haveSpec: {
|
|
haveSpec: {
|
|
handler(val) {
|
|
handler(val) {
|
|
- if(val){
|
|
|
|
|
|
+ if (val) {
|
|
this.skuForm.skuList = [{}]
|
|
this.skuForm.skuList = [{}]
|
|
console.log(this.skuForm.skuList);
|
|
console.log(this.skuForm.skuList);
|
|
- }else{
|
|
|
|
|
|
+ } else {
|
|
this.$nextTick(() => {
|
|
this.$nextTick(() => {
|
|
- this.skuForm.skuList = [{sku:this.basicInfoData+'0000'}];
|
|
|
|
|
|
+ this.skuForm.skuList = [{ sku: this.basicInfoData + '0000' }];
|
|
})
|
|
})
|
|
|
|
|
|
console.log(this.skuForm.skuList);
|
|
console.log(this.skuForm.skuList);
|
|
@@ -394,9 +246,9 @@ export default {
|
|
},
|
|
},
|
|
immediate: true,
|
|
immediate: true,
|
|
},
|
|
},
|
|
- sku_sn:{
|
|
|
|
|
|
+ sku_sn: {
|
|
handler(val) {
|
|
handler(val) {
|
|
- //this.skuForm.skuList = [{sku:this.basicInfoData+'0000'}];
|
|
|
|
|
|
+ //this.skuForm.skuList = [{sku:this.basicInfoData+'0000'}];
|
|
},
|
|
},
|
|
},
|
|
},
|
|
basicInfoData: {
|
|
basicInfoData: {
|
|
@@ -407,15 +259,15 @@ export default {
|
|
}
|
|
}
|
|
},
|
|
},
|
|
methods: {
|
|
methods: {
|
|
- preventChineseInput(row,event) {
|
|
|
|
- console.log(row,event);
|
|
|
|
- return event = event.replace(/[\u4e00-\u9fa5]/g, '');
|
|
|
|
|
|
+ preventChineseInput(row, event) {
|
|
|
|
+ console.log(row, event);
|
|
|
|
+ return event = event.replace(/[\u4e00-\u9fa5]/g, '');
|
|
|
|
|
|
- },
|
|
|
|
|
|
+ },
|
|
updateInternalStateBasedOnBasicInfo(data) {
|
|
updateInternalStateBasedOnBasicInfo(data) {
|
|
// 假设 basicInfoData 包含 'haveSpec' 和 'haveSn' 字段
|
|
// 假设 basicInfoData 包含 'haveSpec' 和 'haveSn' 字段
|
|
if (data) {
|
|
if (data) {
|
|
- this.skuForm.skuList = [{sku:this.basicInfoData+'0000'}]
|
|
|
|
|
|
+ this.skuForm.skuList = [{ sku: this.basicInfoData + '0000' }]
|
|
}
|
|
}
|
|
},
|
|
},
|
|
// 初始化数据
|
|
// 初始化数据
|
|
@@ -423,10 +275,10 @@ export default {
|
|
try {
|
|
try {
|
|
this.loading = true;
|
|
this.loading = true;
|
|
const goodsInfo = this.goodsInfo;
|
|
const goodsInfo = this.goodsInfo;
|
|
- console.log('goodsInfo',this.goodsInfo);
|
|
|
|
- if (goodsInfo.product_list) {
|
|
|
|
|
|
+ console.log('goodsInfo', this.goodsInfo);
|
|
|
|
+ if (goodsInfo.product_list) {
|
|
// 获取规格列表
|
|
// 获取规格列表
|
|
- this.getSpecList();
|
|
|
|
|
|
+ this.getSpecList();
|
|
this.skuForm.skuList = Helper.cloneJson(goodsInfo.product_list);
|
|
this.skuForm.skuList = Helper.cloneJson(goodsInfo.product_list);
|
|
this.rawSkuList = Helper.cloneJson(goodsInfo.product_list);
|
|
this.rawSkuList = Helper.cloneJson(goodsInfo.product_list);
|
|
// 初始化商品SKU中已选择的规格信息
|
|
// 初始化商品SKU中已选择的规格信息
|
|
@@ -442,7 +294,7 @@ export default {
|
|
// 获取规格列表
|
|
// 获取规格列表
|
|
async getSpecList() {
|
|
async getSpecList() {
|
|
const category_id = this.goodsInfo.category_id || this.categoryId;
|
|
const category_id = this.goodsInfo.category_id || this.categoryId;
|
|
- await Helper.getSpecsByCategoryId(category_id).then((res) => {
|
|
|
|
|
|
+ await Helper.getSpecsByCategoryId(category_id).then((res) => {//
|
|
this.specList = res;
|
|
this.specList = res;
|
|
this.makeTableForm();
|
|
this.makeTableForm();
|
|
});
|
|
});
|
|
@@ -471,7 +323,7 @@ export default {
|
|
return this.hireOrSail == "sail" && el.name !== "日租金";
|
|
return this.hireOrSail == "sail" && el.name !== "日租金";
|
|
});
|
|
});
|
|
} else {
|
|
} else {
|
|
- this.tableColumns = table.columns;
|
|
|
|
|
|
+ this.tableColumns = table.columns;
|
|
|
|
|
|
}
|
|
}
|
|
this.skuForm.skuList = table.data;
|
|
this.skuForm.skuList = table.data;
|
|
@@ -481,9 +333,15 @@ export default {
|
|
} */
|
|
} */
|
|
},
|
|
},
|
|
// 获取规格下的规格值列表
|
|
// 获取规格下的规格值列表
|
|
- getSpecValueList(spec_id) {
|
|
|
|
- const specVal = this.specList.find((item) => item.spec_id === spec_id);
|
|
|
|
- return specVal ? specVal.value_list : [];
|
|
|
|
|
|
+ getSpecValueList(spec_id) {
|
|
|
|
+ /* try {
|
|
|
|
+ return await Helper.getSpecValues(spec_id); // 假设返回 { values: [ 数组内容 ] }
|
|
|
|
+ } catch (error) {
|
|
|
|
+ console.error("Error fetching spec values:", error);
|
|
|
|
+ throw error;
|
|
|
|
+ } */
|
|
|
|
+ const specVal = this.specList.find((item) => item.spec_id === spec_id);
|
|
|
|
+ return specVal ? specVal.value_list : [];
|
|
},
|
|
},
|
|
// 计算要禁用的规格
|
|
// 计算要禁用的规格
|
|
computedDisabledSpec(spec_id) {
|
|
computedDisabledSpec(spec_id) {
|
|
@@ -500,10 +358,10 @@ export default {
|
|
},
|
|
},
|
|
// 添加规格
|
|
// 添加规格
|
|
handleAddSpec() {
|
|
handleAddSpec() {
|
|
- if (!this.goodsInfo.category_id && !this.categoryId) {
|
|
|
|
|
|
+ /* if (!this.goodsInfo.category_id && !this.categoryId) {
|
|
this.$message.error("请先选择商品类别!");
|
|
this.$message.error("请先选择商品类别!");
|
|
return;
|
|
return;
|
|
- }
|
|
|
|
|
|
+ } */
|
|
this.skuForm.selectedSpecs.push({
|
|
this.skuForm.selectedSpecs.push({
|
|
spec_id: "",
|
|
spec_id: "",
|
|
has_spec_image: false,
|
|
has_spec_image: false,
|
|
@@ -514,7 +372,7 @@ export default {
|
|
handleAddSpecVal(index) {
|
|
handleAddSpecVal(index) {
|
|
this.skuForm.selectedSpecs[index].spec_value_list.push({
|
|
this.skuForm.selectedSpecs[index].spec_value_list.push({
|
|
spec_value_id: "",
|
|
spec_value_id: "",
|
|
- spec_name:""
|
|
|
|
|
|
+ spec_name: ""
|
|
});
|
|
});
|
|
},
|
|
},
|
|
// 规格发生改变
|
|
// 规格发生改变
|
|
@@ -645,8 +503,8 @@ export default {
|
|
reject();
|
|
reject();
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
- this.skuForm.skuList.map(el=>{
|
|
|
|
- el.have_sn=this.haveSn
|
|
|
|
|
|
+ this.skuForm.skuList.map(el => {
|
|
|
|
+ el.have_sn = this.haveSn
|
|
})
|
|
})
|
|
const skus = Helper.cloneJson(this.skuForm.skuList);
|
|
const skus = Helper.cloneJson(this.skuForm.skuList);
|
|
resolve(skus);
|
|
resolve(skus);
|
|
@@ -669,9 +527,11 @@ export default {
|
|
.sku-batch-popper {
|
|
.sku-batch-popper {
|
|
.el-form-item {
|
|
.el-form-item {
|
|
margin-bottom: 5px !important;
|
|
margin-bottom: 5px !important;
|
|
|
|
+
|
|
.el-input__inner {
|
|
.el-input__inner {
|
|
text-align: center;
|
|
text-align: center;
|
|
}
|
|
}
|
|
|
|
+
|
|
.el-form-item__label {
|
|
.el-form-item__label {
|
|
font-size: 12px;
|
|
font-size: 12px;
|
|
}
|
|
}
|