1.优化编辑商品规格选择,只能重新添加 2.优化商品列表新增字段shopid 3.修复添加商品图片不生效 4.修复用户登录404
This commit is contained in:
@@ -6,7 +6,8 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-select v-model="searhForm.category" placeholder="商品分类">
|
<el-select v-model="searhForm.category" placeholder="商品分类">
|
||||||
<el-option :label="item.name" :value="item.id" v-for="item in categoryList" :key="item.id"></el-option>
|
<el-option :label="item.name" :value="item.id" v-for="item in categoryList"
|
||||||
|
:key="item.id"></el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
@@ -30,11 +31,13 @@
|
|||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="售价">
|
<el-table-column label="售价">
|
||||||
|
|
||||||
<template v-slot="scope">
|
<template v-slot="scope">
|
||||||
¥{{ scope.row.lowPrice }}
|
¥{{ scope.row.lowPrice }}
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="销量/库存">
|
<el-table-column label="销量/库存">
|
||||||
|
|
||||||
<template v-slot="scope">
|
<template v-slot="scope">
|
||||||
0/0
|
0/0
|
||||||
</template>
|
</template>
|
||||||
@@ -99,6 +102,7 @@ export default {
|
|||||||
const res = await tbProduct({
|
const res = await tbProduct({
|
||||||
page: this.tableData.page,
|
page: this.tableData.page,
|
||||||
size: this.tableData.size,
|
size: this.tableData.size,
|
||||||
|
shopId: localStorage.getItem('shopId'),
|
||||||
sort: 'id',
|
sort: 'id',
|
||||||
})
|
})
|
||||||
this.tableData.loading = false
|
this.tableData.loading = false
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<el-upload ref="upload" :action="qiNiuUploadApi" :headers="headers" :file-list="fileList" :limit="limit"
|
<el-upload ref="upload" :action="qiNiuUploadApi" :headers="headers" :file-list="fileList" :limit="limit"
|
||||||
:list-type="type" :on-preview="handlePictureCardPreview" :multiple="limit > 1"
|
:list-type="type" :on-preview="handlePictureCardPreview" :multiple="limit > 1" :on-success="handleSuccess"
|
||||||
:on-success="handleSuccess" :on-error="handleError" :on-exceed="onExceed" :on-remove="handleRemove">
|
:on-error="handleError" :on-exceed="onExceed" :on-remove="handleRemove">
|
||||||
<i class="el-icon-plus"></i>
|
<i class="el-icon-plus"></i>
|
||||||
</el-upload>
|
</el-upload>
|
||||||
<el-dialog :visible.sync="dialogVisible" :z-index="99">
|
<el-dialog :visible.sync="dialogVisible" :z-index="99">
|
||||||
@@ -63,8 +63,8 @@ export default {
|
|||||||
})
|
})
|
||||||
},
|
},
|
||||||
handleRemove(file, fileList) {
|
handleRemove(file, fileList) {
|
||||||
// console.log(file, fileList);
|
let arr = fileList.map(item => item.url)
|
||||||
this.$emit('remove')
|
this.$emit('remove', arr)
|
||||||
},
|
},
|
||||||
clearFiles() {
|
clearFiles() {
|
||||||
this.$refs.upload.clearFiles()
|
this.$refs.upload.clearFiles()
|
||||||
|
|||||||
@@ -1,11 +1,12 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="navbar">
|
<div class="navbar">
|
||||||
<hamburger id="hamburger-container" :is-active="sidebar.opened" class="hamburger-container" @toggleClick="toggleSideBar" />
|
<hamburger id="hamburger-container" :is-active="sidebar.opened" class="hamburger-container"
|
||||||
|
@toggleClick="toggleSideBar" />
|
||||||
|
|
||||||
<breadcrumb id="breadcrumb-container" class="breadcrumb-container" />
|
<breadcrumb id="breadcrumb-container" class="breadcrumb-container" />
|
||||||
|
|
||||||
<div class="right-menu">
|
<div class="right-menu">
|
||||||
<template v-if="device!=='mobile'">
|
<template v-if="device !== 'mobile'">
|
||||||
<search id="header-search" class="right-menu-item" />
|
<search id="header-search" class="right-menu-item" />
|
||||||
|
|
||||||
<!-- <el-tooltip content="项目文档" effect="dark" placement="bottom">
|
<!-- <el-tooltip content="项目文档" effect="dark" placement="bottom">
|
||||||
@@ -103,6 +104,7 @@ export default {
|
|||||||
cancelButtonText: '取消',
|
cancelButtonText: '取消',
|
||||||
type: 'warning'
|
type: 'warning'
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
|
localStorage.setItem('logoutHandle', true)
|
||||||
this.logout()
|
this.logout()
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
@@ -121,7 +123,7 @@ export default {
|
|||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
position: relative;
|
position: relative;
|
||||||
background: #fff;
|
background: #fff;
|
||||||
box-shadow: 0 1px 4px rgba(0,21,41,.08);
|
box-shadow: 0 1px 4px rgba(0, 21, 41, .08);
|
||||||
|
|
||||||
.hamburger-container {
|
.hamburger-container {
|
||||||
line-height: 46px;
|
line-height: 46px;
|
||||||
@@ -129,7 +131,7 @@ export default {
|
|||||||
float: left;
|
float: left;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
transition: background .3s;
|
transition: background .3s;
|
||||||
-webkit-tap-highlight-color:transparent;
|
-webkit-tap-highlight-color: transparent;
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
background: rgba(0, 0, 0, .025)
|
background: rgba(0, 0, 0, .025)
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ router.beforeEach((to, from, next) => {
|
|||||||
location.reload() // 为了重新实例化vue-router对象 避免bug
|
location.reload() // 为了重新实例化vue-router对象 避免bug
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
// 登录时未拉取 菜单,在此处拉取
|
// 登录时未拉取 菜单,在此处拉取
|
||||||
} else if (store.getters.loadMenus) {
|
} else if (store.getters.loadMenus) {
|
||||||
// 修改成false,防止死循环
|
// 修改成false,防止死循环
|
||||||
store.dispatch('updateLoadMenus')
|
store.dispatch('updateLoadMenus')
|
||||||
@@ -45,7 +45,7 @@ router.beforeEach((to, from, next) => {
|
|||||||
if (whiteList.indexOf(to.path) !== -1) { // 在免登录白名单,直接进入
|
if (whiteList.indexOf(to.path) !== -1) { // 在免登录白名单,直接进入
|
||||||
next()
|
next()
|
||||||
} else {
|
} else {
|
||||||
next(`/login?redirect=${to.fullPath}`) // 否则全部重定向到登录页
|
next(localStorage.getItem('logoutHandle') ? '/login' : `/login?redirect=${to.fullPath}`) // 否则全部重定向到登录页
|
||||||
NProgress.done()
|
NProgress.done()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,6 +11,10 @@ const user = {
|
|||||||
},
|
},
|
||||||
|
|
||||||
mutations: {
|
mutations: {
|
||||||
|
// 是否为手动退出登录
|
||||||
|
SD_LOGOUT: (state, f) => {
|
||||||
|
state.sdLogout = f
|
||||||
|
},
|
||||||
SET_TOKEN: (state, token) => {
|
SET_TOKEN: (state, token) => {
|
||||||
state.token = token
|
state.token = token
|
||||||
},
|
},
|
||||||
@@ -32,6 +36,7 @@ const user = {
|
|||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
login(userInfo.username, userInfo.password, userInfo.code, userInfo.uuid).then(res => {
|
login(userInfo.username, userInfo.password, userInfo.code, userInfo.uuid).then(res => {
|
||||||
// console.log('登录成功后返回===', res)
|
// console.log('登录成功后返回===', res)
|
||||||
|
localStorage.setItem('logoutHandle', false)
|
||||||
localStorage.setItem('shopId', res.shopId)
|
localStorage.setItem('shopId', res.shopId)
|
||||||
setToken(res.token, rememberMe)
|
setToken(res.token, rememberMe)
|
||||||
commit('SET_TOKEN', res.token)
|
commit('SET_TOKEN', res.token)
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
<el-input v-model="form.name" placeholder="请输入商品名称" style="width: 500px;"></el-input>
|
<el-input v-model="form.name" placeholder="请输入商品名称" style="width: 500px;"></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="单位">
|
<el-form-item label="单位">
|
||||||
<el-select v-model="form.unitId" placeholder="请选择单位" style="width: 500px;">
|
<el-select v-model="form.unitId" placeholder="请选择单位" style="width: 500px;" @change="selectUnitt">
|
||||||
<el-option :label="item.name" :value="item.id" v-for="item in units" :key="item.id"></el-option>
|
<el-option :label="item.name" :value="item.id" v-for="item in units" :key="item.id"></el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
<el-button type="primary" plain icon="el-icon-plus" @click="$refs.addUnitRef.show()">添加单位</el-button>
|
<el-button type="primary" plain icon="el-icon-plus" @click="$refs.addUnitRef.show()">添加单位</el-button>
|
||||||
@@ -27,11 +27,12 @@
|
|||||||
<el-select v-model="form.categoryId" placeholder="请选择商品分类" style="width: 500px;">
|
<el-select v-model="form.categoryId" placeholder="请选择商品分类" style="width: 500px;">
|
||||||
<el-option :label="item.name" :value="item.id" v-for="item in categorys" :key="item.id"></el-option>
|
<el-option :label="item.name" :value="item.id" v-for="item in categorys" :key="item.id"></el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
<el-button type="primary" plain icon="el-icon-plus" @click="$refs.addClassifyRef.show()">添加分类</el-button>
|
<el-button type="primary" plain icon="el-icon-plus"
|
||||||
|
@click="$refs.addClassifyRef.show()">添加分类</el-button>
|
||||||
<addClassify ref="addClassifyRef" @success="tbShopCategoryGet" />
|
<addClassify ref="addClassifyRef" @success="tbShopCategoryGet" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="商品图片">
|
<el-form-item label="商品图片">
|
||||||
<uploadImg ref="uploadImg" :limit="9" @success="uploadSuccess" />
|
<uploadImg ref="uploadImg" :limit="9" @success="uploadSuccess" @remove="uploadRemove" />
|
||||||
<div class="tips">注:第一张图为商品封面图,图片尺寸为750×750(可拖动图片排序)</div>
|
<div class="tips">注:第一张图为商品封面图,图片尺寸为750×750(可拖动图片排序)</div>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="套餐商品" v-if="shopTypes[shopTypesActive].typeEnum == 'group'">
|
<el-form-item label="套餐商品" v-if="shopTypes[shopTypesActive].typeEnum == 'group'">
|
||||||
@@ -42,6 +43,7 @@
|
|||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="商品信息">
|
<el-table-column label="商品信息">
|
||||||
|
|
||||||
<template v-slot="scope">
|
<template v-slot="scope">
|
||||||
<div class="shop_list">
|
<div class="shop_list">
|
||||||
<div class="item" v-for="item in scope.row.goods" :key="item.id">
|
<div class="item" v-for="item in scope.row.goods" :key="item.id">
|
||||||
@@ -55,6 +57,7 @@
|
|||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="几选几">
|
<el-table-column label="几选几">
|
||||||
|
|
||||||
<template v-slot="scope">
|
<template v-slot="scope">
|
||||||
<span>{{ scope.row.goods.length }}选</span>
|
<span>{{ scope.row.goods.length }}选</span>
|
||||||
<el-input-number v-model="scope.row.number" controls-position="right"
|
<el-input-number v-model="scope.row.number" controls-position="right"
|
||||||
@@ -62,6 +65,7 @@
|
|||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="操作" width="160">
|
<el-table-column label="操作" width="160">
|
||||||
|
|
||||||
<template v-slot="scope">
|
<template v-slot="scope">
|
||||||
<el-button type="text" @click="tableAddShop(scope.$index, scope.row.goods)">添加商品</el-button>
|
<el-button type="text" @click="tableAddShop(scope.$index, scope.row.goods)">添加商品</el-button>
|
||||||
<el-button type="text" @click="form.groupSnap.splice(scope.$index, 1)">删除分组</el-button>
|
<el-button type="text" @click="form.groupSnap.splice(scope.$index, 1)">删除分组</el-button>
|
||||||
@@ -74,31 +78,37 @@
|
|||||||
<el-form-item label="规格属性" v-if="shopTypes[shopTypesActive].typeEnum != 'sku'">
|
<el-form-item label="规格属性" v-if="shopTypes[shopTypesActive].typeEnum != 'sku'">
|
||||||
<el-table :data="form.skuList" border>
|
<el-table :data="form.skuList" border>
|
||||||
<el-table-column label="售价" prop="salePrice">
|
<el-table-column label="售价" prop="salePrice">
|
||||||
|
|
||||||
<template v-slot="scope">
|
<template v-slot="scope">
|
||||||
<el-input-number v-model="scope.row.salePrice"></el-input-number>
|
<el-input-number v-model="scope.row.salePrice"></el-input-number>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="会员价" prop="memberPrice">
|
<el-table-column label="会员价" prop="memberPrice">
|
||||||
|
|
||||||
<template v-slot="scope">
|
<template v-slot="scope">
|
||||||
<el-input-number v-model="scope.row.memberPrice"></el-input-number>
|
<el-input-number v-model="scope.row.memberPrice"></el-input-number>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="成本价" prop="costPrice">
|
<el-table-column label="成本价" prop="costPrice">
|
||||||
|
|
||||||
<template v-slot="scope">
|
<template v-slot="scope">
|
||||||
<el-input-number v-model="scope.row.costPrice"></el-input-number>
|
<el-input-number v-model="scope.row.costPrice"></el-input-number>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="原价" prop="originPrice">
|
<el-table-column label="原价" prop="originPrice">
|
||||||
|
|
||||||
<template v-slot="scope">
|
<template v-slot="scope">
|
||||||
<el-input-number v-model="scope.row.originPrice"></el-input-number>
|
<el-input-number v-model="scope.row.originPrice"></el-input-number>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="库存数量" prop="stockNumber">
|
<el-table-column label="库存数量" prop="stockNumber">
|
||||||
|
|
||||||
<template v-slot="scope">
|
<template v-slot="scope">
|
||||||
<el-input-number v-model="scope.row.stockNumber"></el-input-number>
|
<el-input-number v-model="scope.row.stockNumber"></el-input-number>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="分销金额" prop="firstShared">
|
<el-table-column label="分销金额" prop="firstShared">
|
||||||
|
|
||||||
<template v-slot="scope">
|
<template v-slot="scope">
|
||||||
<el-input-number v-model="scope.row.firstShared"></el-input-number>
|
<el-input-number v-model="scope.row.firstShared"></el-input-number>
|
||||||
</template>
|
</template>
|
||||||
@@ -110,7 +120,8 @@
|
|||||||
<el-option :label="item.name" :value="item.id" v-for="item in specList" :key="item.id"></el-option>
|
<el-option :label="item.name" :value="item.id" v-for="item in specList" :key="item.id"></el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item :label="item.name" v-if="selectSpec.length" v-for="item in selectSpec" :key="item.name">
|
<el-form-item :label="item.name" v-if="selectSpec.length && !isEditor" v-for="item in selectSpec"
|
||||||
|
:key="item.name">
|
||||||
<el-checkbox-group v-model="item.selectSpecResult" @change="selectSpecResultChange">
|
<el-checkbox-group v-model="item.selectSpecResult" @change="selectSpecResultChange">
|
||||||
<el-checkbox :label="item" v-for="(item, index) in item.value
|
<el-checkbox :label="item" v-for="(item, index) in item.value
|
||||||
" :key="index"></el-checkbox>
|
" :key="index"></el-checkbox>
|
||||||
@@ -122,6 +133,7 @@
|
|||||||
:key="index">
|
:key="index">
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="图片" prop="coverImg" width="80">
|
<el-table-column label="图片" prop="coverImg" width="80">
|
||||||
|
|
||||||
<template v-slot="scope">
|
<template v-slot="scope">
|
||||||
<uploadImg type="text" :limit="1" @success="res => scope.row.coverImg = res[0]"
|
<uploadImg type="text" :limit="1" @success="res => scope.row.coverImg = res[0]"
|
||||||
v-if="!scope.row.coverImg" />
|
v-if="!scope.row.coverImg" />
|
||||||
@@ -129,40 +141,52 @@
|
|||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="售价" prop="salePrice">
|
<el-table-column label="售价" prop="salePrice">
|
||||||
|
|
||||||
<template slot="header" slot-scope="scope">
|
<template slot="header" slot-scope="scope">
|
||||||
<span>售价</span>
|
<span>售价</span>
|
||||||
<i class="icon el-icon-edit" @click="showNumberChange(scope.$index)"></i>
|
<i class="icon el-icon-edit" @click="showNumberChange(scope.$index)"></i>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-input-number v-model="scope.row.salePrice" controls-position="right"></el-input-number>
|
<el-input-number v-model="scope.row.salePrice" controls-position="right"></el-input-number>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="会员价" prop="memberPrice">
|
<el-table-column label="会员价" prop="memberPrice">
|
||||||
|
|
||||||
<template v-slot="scope">
|
<template v-slot="scope">
|
||||||
<el-input-number v-model="scope.row.memberPrice" controls-position="right"></el-input-number>
|
<el-input-number v-model="scope.row.memberPrice"
|
||||||
|
controls-position="right"></el-input-number>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="成本价" prop="costPrice">
|
<el-table-column label="成本价" prop="costPrice">
|
||||||
|
|
||||||
<template v-slot="scope">
|
<template v-slot="scope">
|
||||||
<el-input-number v-model="scope.row.costPrice" controls-position="right"></el-input-number>
|
<el-input-number v-model="scope.row.costPrice" controls-position="right"></el-input-number>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="原价" prop="originPrice">
|
<el-table-column label="原价" prop="originPrice">
|
||||||
|
|
||||||
<template v-slot="scope">
|
<template v-slot="scope">
|
||||||
<el-input-number v-model="scope.row.originPrice" controls-position="right"></el-input-number>
|
<el-input-number v-model="scope.row.originPrice"
|
||||||
|
controls-position="right"></el-input-number>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="库存数量" prop="stockNumber">
|
<el-table-column label="库存数量" prop="stockNumber">
|
||||||
|
|
||||||
<template v-slot="scope">
|
<template v-slot="scope">
|
||||||
<el-input-number v-model="scope.row.stockNumber" controls-position="right"></el-input-number>
|
<el-input-number v-model="scope.row.stockNumber"
|
||||||
|
controls-position="right"></el-input-number>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="分销金额" prop="firstShared">
|
<el-table-column label="分销金额" prop="firstShared">
|
||||||
|
|
||||||
<template v-slot="scope">
|
<template v-slot="scope">
|
||||||
<el-input-number v-model="scope.row.firstShared" controls-position="right"></el-input-number>
|
<el-input-number v-model="scope.row.firstShared"
|
||||||
|
controls-position="right"></el-input-number>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="操作" width="80">
|
<el-table-column label="操作" width="80">
|
||||||
|
|
||||||
<template v-slot="scope">
|
<template v-slot="scope">
|
||||||
<el-button type="text" @click="form.skuList.splice(scope.$index, 1)">删除</el-button>
|
<el-button type="text" @click="form.skuList.splice(scope.$index, 1)">删除</el-button>
|
||||||
</template>
|
</template>
|
||||||
@@ -185,7 +209,7 @@
|
|||||||
<el-input-number v-model="form.sort" controls-position="right" :min="0"></el-input-number>
|
<el-input-number v-model="form.sort" controls-position="right" :min="0"></el-input-number>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-button type="primary" @click="submitHandle">确定</el-button>
|
<el-button type="primary" v-loading="loading" @click="submitHandle">确定</el-button>
|
||||||
<el-button>取消</el-button>
|
<el-button>取消</el-button>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
@@ -251,11 +275,14 @@ export default {
|
|||||||
firstShared: 0
|
firstShared: 0
|
||||||
},
|
},
|
||||||
tableAddShopIndex: null,
|
tableAddShopIndex: null,
|
||||||
|
isEditor: false,
|
||||||
|
loading: false,
|
||||||
form: {
|
form: {
|
||||||
id: '',
|
id: '',
|
||||||
typeEnum: 'normal',
|
typeEnum: 'normal',
|
||||||
name: '',
|
name: '',
|
||||||
unitId: '',
|
unitId: '',
|
||||||
|
unitName: '',
|
||||||
categoryId: '', // 商品分类id
|
categoryId: '', // 商品分类id
|
||||||
coverImg: '',
|
coverImg: '',
|
||||||
images: [],
|
images: [],
|
||||||
@@ -309,6 +336,9 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
selectUnitt(e) {
|
||||||
|
this.form.unitName = this.units.find(item => item.id == e).name
|
||||||
|
},
|
||||||
showNumberChange(index) {
|
showNumberChange(index) {
|
||||||
console.log(index)
|
console.log(index)
|
||||||
},
|
},
|
||||||
@@ -323,16 +353,21 @@ export default {
|
|||||||
this.selectSpec = JSON.parse(res.selectSpec)
|
this.selectSpec = JSON.parse(res.selectSpec)
|
||||||
|
|
||||||
// 初始化上传图片
|
// 初始化上传图片
|
||||||
const images = JSON.parse(res.images);
|
this.$refs.uploadImg.fileList = res.images.map(item => {
|
||||||
this.$refs.uploadImg.fileList = images.map(item => {
|
|
||||||
return {
|
return {
|
||||||
url: item
|
url: item
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
this.form = res
|
this.form = res
|
||||||
this.form.skuList = JSON.parse(res.specInfo)
|
if (res.typeEnum == 'sku') {
|
||||||
if (res.typeEnum == 'sku' && this.form.skuList.length) {
|
let skuList = [...res.skuList]
|
||||||
|
let specInfo = JSON.parse(res.specInfo)
|
||||||
|
this.isEditor = true
|
||||||
|
this.form.skuList = skuList.map((item, index) => {
|
||||||
|
specInfo[index].id = item.id
|
||||||
|
return specInfo[index]
|
||||||
|
})
|
||||||
this.selectSpecResult = true
|
this.selectSpecResult = true
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
@@ -344,14 +379,15 @@ export default {
|
|||||||
try {
|
try {
|
||||||
this.$refs.formRef.validate(async faild => {
|
this.$refs.formRef.validate(async faild => {
|
||||||
if (faild) {
|
if (faild) {
|
||||||
|
this.loading = true
|
||||||
this.form.lowPrice = this.form.skuList[0].salePrice
|
this.form.lowPrice = this.form.skuList[0].salePrice
|
||||||
this.form.coverImg = this.form.images[0]
|
this.form.coverImg = this.form.images[0]
|
||||||
this.form.selectSpec = JSON.stringify(this.selectSpec)
|
this.form.selectSpec = JSON.stringify(this.selectSpec)
|
||||||
this.form.specTableHeaders = JSON.stringify(this.specTableHeaders)
|
this.form.specTableHeaders = JSON.stringify(this.specTableHeaders)
|
||||||
|
this.form.specInfo = JSON.stringify(this.form.skuList)
|
||||||
if (this.form.id) {
|
if (this.form.id) {
|
||||||
await tbProductPut(this.form)
|
await tbProductPut(this.form)
|
||||||
} else {
|
} else {
|
||||||
this.form.specInfo = JSON.stringify(this.form.skuList)
|
|
||||||
await tbProductPost(this.form)
|
await tbProductPost(this.form)
|
||||||
}
|
}
|
||||||
this.$notify({
|
this.$notify({
|
||||||
@@ -360,9 +396,11 @@ export default {
|
|||||||
type: 'success'
|
type: 'success'
|
||||||
});
|
});
|
||||||
this.$router.back()
|
this.$router.back()
|
||||||
|
this.loading = true
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
|
this.loading = true
|
||||||
console.log(error)
|
console.log(error)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -404,6 +442,10 @@ export default {
|
|||||||
uploadSuccess(res) {
|
uploadSuccess(res) {
|
||||||
this.form.images.push(res[0])
|
this.form.images.push(res[0])
|
||||||
},
|
},
|
||||||
|
// 删除突破按
|
||||||
|
uploadRemove(arr) {
|
||||||
|
this.form.images = arr
|
||||||
|
},
|
||||||
// 选择规格属性
|
// 选择规格属性
|
||||||
selectSpecResultChange() {
|
selectSpecResultChange() {
|
||||||
this.createSkuHeader()
|
this.createSkuHeader()
|
||||||
@@ -466,11 +508,8 @@ export default {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
this.form.skuList = []
|
this.form.skuList = []
|
||||||
this.form.skuList = newarr
|
this.form.skuList = newarr
|
||||||
|
|
||||||
// console.log(this.form.skuList)
|
|
||||||
},
|
},
|
||||||
// 笛卡尔积算法
|
// 笛卡尔积算法
|
||||||
cartesian(arr) {
|
cartesian(arr) {
|
||||||
@@ -505,6 +544,7 @@ export default {
|
|||||||
},
|
},
|
||||||
// 选择规格
|
// 选择规格
|
||||||
selectSpecHandle(e) {
|
selectSpecHandle(e) {
|
||||||
|
this.isEditor = false
|
||||||
const selectSpec = JSON.parse(JSON.stringify(this.specList.find(item => item.id == e).specList))
|
const selectSpec = JSON.parse(JSON.stringify(this.specList.find(item => item.id == e).specList))
|
||||||
for (let item in selectSpec) {
|
for (let item in selectSpec) {
|
||||||
selectSpec[item].selectSpecResult = []
|
selectSpec[item].selectSpecResult = []
|
||||||
|
|||||||
@@ -142,6 +142,7 @@ export default ({
|
|||||||
if (obj && obj.id) {
|
if (obj && obj.id) {
|
||||||
this.form.id = obj.id
|
this.form.id = obj.id
|
||||||
this.form.icon = obj.icon
|
this.form.icon = obj.icon
|
||||||
|
this.form.payType = obj.payType
|
||||||
this.form.payName = obj.payName
|
this.form.payName = obj.payName
|
||||||
this.form.isIdeal = obj.isIdeal
|
this.form.isIdeal = obj.isIdeal
|
||||||
this.form.isOpenCashDrawer = obj.isOpenCashDrawer
|
this.form.isOpenCashDrawer = obj.isOpenCashDrawer
|
||||||
|
|||||||
@@ -19,11 +19,11 @@ export default [
|
|||||||
key: 'deposit',
|
key: 'deposit',
|
||||||
icon: 'https://cashier-oss.oss-cn-beijing.aliyuncs.com/upload/20240302/18d40f471a924d55b4eb13e5f553734d.png'
|
icon: 'https://cashier-oss.oss-cn-beijing.aliyuncs.com/upload/20240302/18d40f471a924d55b4eb13e5f553734d.png'
|
||||||
},
|
},
|
||||||
{
|
// {
|
||||||
lable: '挂单',
|
// lable: '挂单',
|
||||||
key: 'arrears',
|
// key: 'arrears',
|
||||||
icon: 'https://cashier-oss.oss-cn-beijing.aliyuncs.com/upload/20240304/fcf337b999f14a12ad75f76e74fcb344.png'
|
// icon: 'https://cashier-oss.oss-cn-beijing.aliyuncs.com/upload/20240304/fcf337b999f14a12ad75f76e74fcb344.png'
|
||||||
},
|
// },
|
||||||
{
|
{
|
||||||
lable: '自定义',
|
lable: '自定义',
|
||||||
key: 'virtual',
|
key: 'virtual',
|
||||||
|
|||||||
Reference in New Issue
Block a user