【新增】管理SKU页面
This commit is contained in:
@@ -401,7 +401,7 @@ img {
|
||||
}
|
||||
|
||||
.el-pagination {
|
||||
margin-top: 40px;
|
||||
margin-top: 20px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<el-dialog custom-class="ai-dialog" v-on="$listeners" v-bind="$attrs" :visible.sync="dialog">
|
||||
<div class="ai-dialog__header fill" slot="title" v-text="title"/>
|
||||
<div class="ai-dialog__content">
|
||||
<div class="ai-dialog__content--wrapper pad-r8">
|
||||
<div class="ai-dialog__content--wrapper">
|
||||
<slot/>
|
||||
</div>
|
||||
</div>
|
||||
@@ -69,13 +69,13 @@ export default {
|
||||
|
||||
.ai-dialog__content {
|
||||
overflow-y: auto;
|
||||
padding-bottom: 4px;
|
||||
max-height: 500px;
|
||||
padding-bottom: 0px;
|
||||
max-height: 550px;
|
||||
|
||||
.ai-dialog__content--wrapper {
|
||||
height: 100%;
|
||||
overflow-x: hidden;
|
||||
overflow-y: auto;
|
||||
overflow-y: hidden;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -312,6 +312,14 @@ const router = new VueRouter({
|
||||
path: 'labelsPrint',
|
||||
name: 'labelsPrint',
|
||||
component: () => import('../view/lables/Print.vue')
|
||||
},
|
||||
{
|
||||
path: 'skuManage',
|
||||
name: 'skuManage',
|
||||
component: () => import('../view/lables/SkuManage.vue'),
|
||||
meta: {
|
||||
activeMenu:'/labelsTemplate'
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
238
src/view/lables/SkuManage.vue
Normal file
238
src/view/lables/SkuManage.vue
Normal file
@@ -0,0 +1,238 @@
|
||||
<template>
|
||||
<ai-list class="Template">
|
||||
<ai-title
|
||||
slot="title"
|
||||
title="管理SKU"
|
||||
isShowBack
|
||||
isShowBottomBorder
|
||||
@onBackClick="$router.go(-1)">
|
||||
</ai-title>
|
||||
<template slot="content">
|
||||
<ai-search-bar>
|
||||
<template #left>
|
||||
<el-button type="primary" size="small" @click="isShow = true">添加</el-button>
|
||||
</template>
|
||||
<template #right>
|
||||
</template>
|
||||
</ai-search-bar>
|
||||
<ai-table
|
||||
:tableData="tableData"
|
||||
:col-configs="colConfigs"
|
||||
:total="total"
|
||||
:current.sync="search.current"
|
||||
:size.sync="search.size"
|
||||
style="margin-top: 8px;"
|
||||
@getList="getList">
|
||||
<el-table-column slot="productName" width="300px" :show-overflow-tooltip='true' label="商品名称" fixed="left">
|
||||
<template slot-scope="scope">
|
||||
<div>
|
||||
<el-image :src="scope.row.mainImageUrl" style="width: 40px; height: 40px" class="image" :preview-src-list="[scope.row.mainImageUrl]" />
|
||||
{{ scope.row.productName }}
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column slot="options" label="操作" align="center" fixed="right" width="140px">
|
||||
<template v-slot="{ row }">
|
||||
<div class="table-options">
|
||||
<el-button type="text" @click="toAdd(row.url)">编辑</el-button>
|
||||
<el-button type="text" @click="toDetail(row.url)">删除</el-button>
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</ai-table>
|
||||
<ai-dialog
|
||||
:visible.sync="isShow"
|
||||
title="添加SKU"
|
||||
width="1400px"
|
||||
@confirm="onConfirm">
|
||||
<ai-search-bar>
|
||||
<template #left>
|
||||
<el-select v-model="skuSearch.mallId" placeholder="请选择店铺" size="small" @change="onMallChange">
|
||||
<el-option
|
||||
v-for="item in $store.state.mallList"
|
||||
:key="item.mallId"
|
||||
:label="item.mallName"
|
||||
:value="item.mallId">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</template>
|
||||
<template #right>
|
||||
</template>
|
||||
</ai-search-bar>
|
||||
<ai-table
|
||||
height="400"
|
||||
:tableData="skuList"
|
||||
:col-configs="colConfigs"
|
||||
:total="skuTotal"
|
||||
:current.sync="skuSearch.current"
|
||||
:size.sync="skuSearch.size"
|
||||
style="margin-top: 8px;"
|
||||
@getList="getSkuList"
|
||||
:pageSizes="[10, 20, 50, 100, 500, 1000]"
|
||||
v-loading="isLoading">
|
||||
<el-table-column slot="productName" width="300px" :show-overflow-tooltip="true" label="商品名称" fixed="left">
|
||||
<template slot-scope="scope">
|
||||
<div>
|
||||
<el-image :src="scope.row.mainImageUrl" style="width: 40px; height: 40px" class="image" :preview-src-list="[scope.row.mainImageUrl]" />
|
||||
{{ scope.row.productName }}
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</ai-table>
|
||||
</ai-dialog>
|
||||
</template>
|
||||
</ai-list>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { sendChromeAPIMessage } from '@/api/chromeApi'
|
||||
export default {
|
||||
name: 'Template',
|
||||
|
||||
data () {
|
||||
return {
|
||||
colConfigs: [
|
||||
// { slot: 'productName', label: '商品名称', width: '300px', align: 'left', fixed: 'left' },
|
||||
// { prop: 'category', label: '分类', width: '140px', align: 'left', fixed: 'left' },
|
||||
{ prop: 'mallName', label: '店铺名称', align: 'left' },
|
||||
{ prop: 'labelCode', label: '条码编码', align: 'center' },
|
||||
// { prop: 'productSkcId', label: 'SKC', align: 'left' },
|
||||
{ prop: 'productSkuId', label: 'SKU', align: 'center' },
|
||||
// { prop: 'extCode', label: 'SKC货号', align: 'left' },
|
||||
{ prop: 'skuExtCode', label: 'SKU货号', align: 'center' },
|
||||
{ prop: 'skuSpecName', label: '次销售属性', align: 'center' }
|
||||
],
|
||||
tableData: [],
|
||||
total: 0,
|
||||
search: {
|
||||
current: 1,
|
||||
size: 100
|
||||
},
|
||||
skuSearch: {
|
||||
current: 1,
|
||||
size: 100,
|
||||
mallId: ''
|
||||
},
|
||||
skuTotal: 0,
|
||||
skuList: [],
|
||||
isShow: false,
|
||||
skuReqParams: {
|
||||
page: 1,
|
||||
pageSize: 100
|
||||
},
|
||||
isLoading: false
|
||||
}
|
||||
},
|
||||
|
||||
computed: {
|
||||
currMall () {
|
||||
if (!this.$store.state.mallList.length) {
|
||||
return {}
|
||||
}
|
||||
|
||||
return this.$store.state.mallList.filter(v => v.mallId === this.skuSearch.mallId)[0]
|
||||
}
|
||||
},
|
||||
|
||||
created () {
|
||||
this.getList()
|
||||
},
|
||||
|
||||
methods: {
|
||||
toAdd () {
|
||||
this.$router.push('/addLabelsTemplate')
|
||||
},
|
||||
|
||||
requestSKUList () {
|
||||
sendChromeAPIMessage({
|
||||
url: 'bg-visage-mms/labelcode/pageQuery',
|
||||
needMallId: true,
|
||||
mallId: this.skuSearch.mallId,
|
||||
anti: true,
|
||||
data: {
|
||||
page: this.skuSearch.size > 100 ? this.skuReqParams.page : this.skuSearch.current,
|
||||
pageSize: this.skuSearch.size > 100 ? 100 : this.skuSearch.size
|
||||
}
|
||||
}).then(async (res) => {
|
||||
if (res.errorCode == 1000000) {
|
||||
const list = res.result.pageItems.map(v => {
|
||||
return {
|
||||
mallName: this.currMall.mallName,
|
||||
productName: v.productName,
|
||||
productSkuId: v.labelCodeVO.productSkuId,
|
||||
labelCode: v.labelCodeVO.labelCode,
|
||||
skuExtCode: v.labelCodeVO.skuExtCode,
|
||||
skuSpecName: v.productSkuSpecList.map(item => {
|
||||
return item.specName
|
||||
}).join(',')
|
||||
}
|
||||
})
|
||||
this.skuTotal = res.result.total
|
||||
this.skuList.push(...list)
|
||||
|
||||
if (this.skuSearch.size > 100 && (res.result.total > this.skuList.length)) {
|
||||
this.skuReqParams.page++
|
||||
await this.$sleepSync(5000)
|
||||
this.requestSKUList()
|
||||
} else {
|
||||
this.isLoading = false
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
onMallChange (e) {
|
||||
if (!e) {
|
||||
this.skuList = []
|
||||
|
||||
return false
|
||||
}
|
||||
|
||||
this.$userCheck(this.skuSearch.mallId).then(() => {
|
||||
this.skuList = []
|
||||
this.skuReqParams.page = 1
|
||||
this.isLoading = true
|
||||
this.requestSKUList()
|
||||
}).catch(() => {
|
||||
this.skuSearch.mallId = ''
|
||||
})
|
||||
},
|
||||
|
||||
getSkuList () {
|
||||
if (!this.skuSearch.mallId) {
|
||||
return this.$message.error('请选择店铺')
|
||||
}
|
||||
|
||||
this.$userCheck(this.skuSearch.mallId).then(() => {
|
||||
this.skuList = []
|
||||
this.skuReqParams.page = 1
|
||||
this.isLoading = true
|
||||
|
||||
this.requestSKUList()
|
||||
}).catch(() => {
|
||||
this.skuSearch.mallId = ''
|
||||
})
|
||||
},
|
||||
|
||||
getList () {
|
||||
this.$http.post('/api/learning/pluginPage', null, {
|
||||
params: {
|
||||
...this.search
|
||||
}
|
||||
}).then(res => {
|
||||
if (res.code === 0) {
|
||||
this.tableData = res.data.records
|
||||
this.total = res.data.total
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
onConfirm () {
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
</style>
|
||||
@@ -8,7 +8,7 @@
|
||||
<template slot="content">
|
||||
<ai-search-bar>
|
||||
<template #left>
|
||||
<el-button type="primary" @click="toAdd">添加</el-button>
|
||||
<el-button type="primary" size="small" @click="toAdd">添加</el-button>
|
||||
</template>
|
||||
<template #right>
|
||||
</template>
|
||||
@@ -21,11 +21,12 @@
|
||||
:size.sync="search.size"
|
||||
style="margin-top: 8px;"
|
||||
@getList="getList">
|
||||
<el-table-column slot="options" label="操作" align="center" fixed="right" width="140px">
|
||||
<el-table-column slot="options" label="操作" align="center" fixed="right" width="220px">
|
||||
<template v-slot="{ row }">
|
||||
<div class="table-options">
|
||||
<el-button type="text" @click="collection(row.id, row.isFavorite)">{{ row.isFavorite === '0' ? '收藏' : '取消收藏' }}</el-button>
|
||||
<el-button type="text" @click="toDetail(row.url)">详情</el-button>
|
||||
<el-button type="text" @click="toAddSku(row.url)">添加SKU</el-button>
|
||||
<el-button type="text" @click="toAdd(row.url)">编辑</el-button>
|
||||
<el-button type="text" @click="toDetail(row.url)">删除</el-button>
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
@@ -42,23 +43,25 @@
|
||||
return {
|
||||
colConfigs: [
|
||||
{ prop: 'name', label: '模板名称', align: 'left' },
|
||||
{ prop: 'createTime', label: '绑定SKU数量', align: 'center' },
|
||||
{ prop: 'count', label: '绑定SKU数量', align: 'center' },
|
||||
{ prop: 'createTime', label: '创建时间', align: 'center' },
|
||||
],
|
||||
tableData: [],
|
||||
tableData: [
|
||||
{
|
||||
name: '电池',
|
||||
count: 2
|
||||
}
|
||||
],
|
||||
total: 0,
|
||||
search: {
|
||||
current: 1,
|
||||
size: 10,
|
||||
categoryId: ''
|
||||
},
|
||||
cateList: [],
|
||||
isFavorite: 0
|
||||
size: 10
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
created () {
|
||||
this.getList()
|
||||
// this.getList()
|
||||
},
|
||||
|
||||
methods: {
|
||||
@@ -66,17 +69,26 @@
|
||||
this.$router.push('/addLabelsTemplate')
|
||||
},
|
||||
|
||||
toAddSku () {
|
||||
this.$router.push('/skuManage')
|
||||
},
|
||||
|
||||
getList () {
|
||||
console.log(this.tableData)
|
||||
this.$http.post('/api/learning/pluginPage', null, {
|
||||
params: {
|
||||
...this.search
|
||||
}
|
||||
}).then(res => {
|
||||
if (res.code === 0) {
|
||||
this.tableData = res.data.records
|
||||
this.total = res.data.total
|
||||
// this.tableData = res.data.records
|
||||
// this.total = res.data.total
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
onConfirm () {
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user