优化添加商品问题 新增添加设备

This commit is contained in:
gyq
2024-03-13 09:05:08 +08:00
parent d0f69f9eb9
commit 87d084dfed
24 changed files with 1251 additions and 281 deletions

View File

@@ -78,42 +78,42 @@
<el-form-item label="规格属性" v-if="shopTypes[shopTypesActive].typeEnum != 'sku'">
<el-table :data="form.skuList" border>
<el-table-column label="售价" prop="salePrice">
<template v-slot="scope">
<el-input-number v-model="scope.row.salePrice"></el-input-number>
</template>
</el-table-column>
<el-table-column label="会员价" prop="memberPrice">
<template v-slot="scope">
<el-input-number v-model="scope.row.memberPrice"></el-input-number>
</template>
</el-table-column>
<el-table-column label="成本价" prop="costPrice">
<template v-slot="scope">
<el-input-number v-model="scope.row.costPrice"></el-input-number>
</template>
</el-table-column>
<el-table-column label="原价" prop="originPrice">
<template v-slot="scope">
<el-input-number v-model="scope.row.originPrice"></el-input-number>
</template>
</el-table-column>
<el-table-column label="库存数量" prop="stockNumber">
<template v-slot="scope">
<el-input-number v-model="scope.row.stockNumber"></el-input-number>
<el-input-number v-model="scope.row.stockNumber" :disabled="!!form.id"></el-input-number>
</template>
</el-table-column>
<el-table-column label="分销金额" prop="firstShared">
<template v-slot="scope">
<el-input-number v-model="scope.row.firstShared"></el-input-number>
</template>
</el-table-column>
<el-table-column label="商品条码">
<template v-slot="scope">
<el-input v-model="scope.row.barCode" disabled></el-input>
</template>
</el-table-column>
</el-table>
<div class="tips" v-if="form.isShowMall">小程序商城必须设置库存数量大于0</div>
</el-form-item>
<el-form-item label="选择规格" v-if="shopTypes[shopTypesActive].typeEnum == 'sku'">
<el-select v-model="form.specId" placeholder="请选择规格" style="width: 500px;" @change="selectSpecHandle">
@@ -141,66 +141,103 @@
</template>
</el-table-column>
<el-table-column label="售价" prop="salePrice">
<template slot="header" slot-scope="scope">
<span>售价</span>
<i class="icon el-icon-edit" @click="showNumberChange(scope.$index)"></i>
<i class="icon el-icon-edit" @click="batchNumber('salePrice')"></i>
</template>
<template slot-scope="scope">
<el-input-number v-model="scope.row.salePrice" controls-position="right"></el-input-number>
</template>
</el-table-column>
<el-table-column label="会员价" prop="memberPrice">
<template v-slot="scope">
<template slot="header" slot-scope="scope">
<span>会员价</span>
<i class="icon el-icon-edit" @click="batchNumber('memberPrice')"></i>
</template>
<template slot-scope="scope">
<el-input-number v-model="scope.row.memberPrice"
controls-position="right"></el-input-number>
</template>
</el-table-column>
<el-table-column label="成本价" prop="costPrice">
<template v-slot="scope">
<template slot="header" slot-scope="scope">
<span>成本价</span>
<i class="icon el-icon-edit" @click="batchNumber('costPrice')"></i>
</template>
<template slot-scope="scope">
<el-input-number v-model="scope.row.costPrice" controls-position="right"></el-input-number>
</template>
</el-table-column>
<el-table-column label="原价" prop="originPrice">
<template v-slot="scope">
<template slot="header" slot-scope="scope">
<span>原价</span>
<i class="icon el-icon-edit" @click="batchNumber('originPrice')"></i>
</template>
<template slot-scope="scope">
<el-input-number v-model="scope.row.originPrice"
controls-position="right"></el-input-number>
</template>
</el-table-column>
<el-table-column label="库存数量" prop="stockNumber">
<template v-slot="scope">
<template slot="header" slot-scope="scope">
<span>库存数量</span>
<i class="icon el-icon-edit" @click="batchNumber('stockNumber')"></i>
</template>
<template slot-scope="scope">
<el-input-number v-model="scope.row.stockNumber"
controls-position="right"></el-input-number>
</template>
</el-table-column>
<el-table-column label="分销金额" prop="firstShared">
<template v-slot="scope">
<template slot="header" slot-scope="scope">
<span>分销金额</span>
<i class="icon el-icon-edit" @click="batchNumber('firstShared')"></i>
</template>
<template slot-scope="scope">
<el-input-number v-model="scope.row.firstShared"
controls-position="right"></el-input-number>
</template>
</el-table-column>
<el-table-column label="商品条码">
<template v-slot="scope">
<el-input v-model="scope.row.barCode" disabled></el-input>
</template>
</el-table-column>
<el-table-column label="操作" width="80">
<template v-slot="scope">
<el-button type="text" @click="form.skuList.splice(scope.$index, 1)">删除</el-button>
</template>
</el-table-column>
</el-table>
<div class="tips" v-if="form.isShowMall">注小程序商城必须设置库存数量大于0</div>
</el-form-item>
<el-form-item label="上架区域">
<div class="shop_type_box">
<div class="item" :class="{ active: form.isShowCash }" @click="areaChange('isShowCash')">
<div class="s_title">收银台</div>
<div class="active_dot">
<i class="el-icon-check"></i>
</div>
</div>
<div class="item" :class="{ active: form.isShowMall }" @click="areaChange('isShowMall')">
<div class="s_title">小程序商城</div>
<div class="active_dot">
<i class="el-icon-check"></i>
</div>
</div>
</div>
</el-form-item>
<el-form-item label="库存开关">
<el-switch v-model="form.isStock" :active-value="1" :inactive-value="0"></el-switch>
<div class="tips">注:关闭则不计算出入库数据</div>
</el-form-item>
<el-form-item label="标签打印">
<el-switch v-model="form.enableLabel" :active-value="1" :inactive-value="0"></el-switch>
<div class="tips">开启后: 收银完成后会自动打印对应数量的标签数</div>
</el-form-item>
<el-form-item label="打包费">
<el-input-number v-model="form.packFee" controls-position="right" :min="0"></el-input-number>
<div class="tips">单份商品打包费。注:店铺开启外卖模式下该数据才生效</div>
</el-form-item>
<el-form-item label="虚拟销量">
<el-input-number v-model="form.baseSalesNumber" controls-position="right" :min="0"></el-input-number>
@@ -210,9 +247,21 @@
</el-form-item>
<el-form-item>
<el-button type="primary" v-loading="loading" @click="submitHandle">确定</el-button>
<el-button>取消</el-button>
<el-button @click="$router.back()">取消</el-button>
</el-form-item>
</el-form>
<el-dialog title="批量修改" width="400px" :visible.sync="showBatchModal">
<el-form :model="batchNumberForm">
<el-form-item>
<el-input-number v-model="batchNumberForm.batchNumber" :min="0" controls-position="right"
style="width: 100%;"></el-input-number>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="showBatchModal = false">取 消</el-button>
<el-button type="primary" @click="batchNumberFormConfirm">确 定</el-button>
</span>
</el-dialog>
</div>
</template>
@@ -223,6 +272,9 @@ import addClassify from './components/addClassify'
import shopList from '@/components/shopList'
import uploadImg from '@/components/uploadImg'
import settings from '@/settings'
import dayjs from 'dayjs'
import { RandomNumBoth } from "@/utils";
export default {
components: {
addUnit,
@@ -234,32 +286,6 @@ export default {
return {
shopTypesActive: 0,
shopTypes: settings.typeEnum,
skuList: [
{
label: '售价',
value: 'salePrice'
},
{
label: '会员价',
value: 'memberPrice'
},
{
label: '成本价',
value: 'costPrice'
},
{
label: '原价',
value: 'originPrice'
},
{
label: '库存数量',
value: 'stockNumber'
},
{
label: '一级分销金额',
value: 'firstShared'
}
],
specTableHeaders: [],
specTableBodys: [],
specId: '',
@@ -272,7 +298,8 @@ export default {
costPrice: 0,
originPrice: 0,
stockNumber: 0,
firstShared: 0
firstShared: 0,
barCode: `${localStorage.getItem('shopId')}${dayjs().valueOf()}`
},
tableAddShopIndex: null,
isEditor: false,
@@ -289,7 +316,8 @@ export default {
shopId: localStorage.getItem('shopId'),
lowPrice: '',
skuList: [],
isStock: 0,
isShowMall: 1,
isShowCash: 1,
isStock: 0,
packFee: 0,
specId: '',
@@ -323,7 +351,13 @@ export default {
]
},
units: [],
categorys: []
categorys: [],
// 批量修改规格
showBatchModal: false,
batchNumberKey: '',
batchNumberForm: {
batchNumber: 0
}
}
},
mounted() {
@@ -336,11 +370,29 @@ export default {
}
},
methods: {
// 修改商家区域
areaChange(key) {
if (this.form[key] == 1) {
this.form[key] = 0
} else {
this.form[key] = 1
}
},
selectUnitt(e) {
this.form.unitName = this.units.find(item => item.id == e).name
},
showNumberChange(index) {
console.log(index)
// 批量修改规格
batchNumber(key) {
this.batchNumberKey = key
this.showBatchModal = true
},
// 确认批量修改规格
batchNumberFormConfirm() {
this.form.skuList.map(item => {
item[this.batchNumberKey] = this.batchNumberForm.batchNumber
})
this.showBatchModal = false
this.batchNumberForm.batchNumber = 0
},
// 商品详情
async tbProductGetDetail() {
@@ -494,7 +546,8 @@ export default {
newarr.push({
specSnap: specSnap.join(','),
...m,
...obj
...obj,
barCode: `${dayjs().valueOf()}${RandomNumBoth(1, 9999)}`
})
} else {
let specSnap = []
@@ -504,7 +557,8 @@ export default {
newarr.push({
specSnap: specSnap.join(','),
...m,
...item
...item,
barCode: `${dayjs().valueOf()}${RandomNumBoth(1, 9999)}`
})
}
}

View File

@@ -7,9 +7,9 @@
class="filter-item" @keyup.enter.native="getTableData" />
</el-col>
<el-col :span="3">
<el-cascader :options="categorys" v-model="query.categoryId" :show-all-levels="false"
:props="{ value: 'id', label: 'name', children: 'childrenList', expandTrigger: 'hover', emitPath: false }"
clearable placeholder="请选择商品分类"></el-cascader>
<el-select v-model="query.categoryId" placeholder="请选择商品分类" style="width: 100%;">
<el-option :label="item.name" :value="item.id" v-for="item in categorys" :key="item.id" />
</el-select>
</el-col>
<el-col :span="3">
<el-select v-model="query.typeEnum" placeholder="请选择商品规格" style="width: 100%;">
@@ -55,10 +55,16 @@
</el-table-column>
<el-table-column label="销量/库存">
<template v-slot="scope">
<span>{{ scope.row.xl }}/{{ scope.row.kc }}</span>
<span>{{ scope.row.realSalesNumber }}/{{ scope.row.stockNumber }}</span>
</template>
</el-table-column>
<el-table-column label="上架区域">
<template v-slot="scope">
<div v-if="scope.row.isShowCash">收银端</div>
<div v-if="scope.row.isShowMall">小程序</div>
<div v-if="!scope.row.isShowCash && !scope.row.isShowMall">未上架</div>
</template>
</el-table-column>
<el-table-column label="上架区域" prop="area" />
<el-table-column label="排序" prop="sort" sortable />
<el-table-column label="更新时间" prop="createdAt">
<template v-slot="scope">