Merge branch 'bd-test' of gitee.com:cabbage_qd/web-base-admin into bd-online
This commit is contained in:
commit
158b877131
|
@ -761,3 +761,11 @@ export function getMaxSortNum(params) {
|
|||
params
|
||||
})
|
||||
}
|
||||
|
||||
export function resetInventoryUse(data) {
|
||||
return request({
|
||||
url: 'sale/manage/wares/resetInventoryUse',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
|
|
@ -5,37 +5,54 @@
|
|||
<breadcrumb class="breadcrumb-container" />
|
||||
|
||||
<div class="right-menu">
|
||||
<div class="check" v-if="user.userType!=9">
|
||||
<el-select v-model="languageItem"
|
||||
@change="setLanguage"
|
||||
<div v-if="user.userType!=9" class="check">
|
||||
<el-select
|
||||
v-model="languageItem"
|
||||
popper-class="selectCls"
|
||||
size="mini">
|
||||
<el-option v-for="item in languageList"
|
||||
size="mini"
|
||||
@change="setLanguage"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in languageList"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value">
|
||||
</el-option>
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
|
||||
<el-dropdown trigger="click"
|
||||
placement="bottom-start">
|
||||
<el-dropdown
|
||||
trigger="click"
|
||||
placement="bottom-start"
|
||||
>
|
||||
<div class="kuang">
|
||||
<div class="dropdown_i">
|
||||
<img :src="ruleForm.nationalFlag2"
|
||||
alt="">
|
||||
<img
|
||||
:src="ruleForm.nationalFlag2"
|
||||
alt=""
|
||||
>
|
||||
<div>{{ ruleForm.name }}</div>
|
||||
</div>
|
||||
<i slot="suffix"
|
||||
class="el-icon-arrow-down"></i>
|
||||
<i
|
||||
slot="suffix"
|
||||
class="el-icon-arrow-down"
|
||||
/>
|
||||
</div>
|
||||
<el-dropdown-menu slot="dropdown"
|
||||
class="dropdown-container">
|
||||
<el-dropdown-item v-for="(item, i) in countryList"
|
||||
:key="i">
|
||||
<div class="dropdown_i"
|
||||
@click="handleClick(item)">
|
||||
<img :src="item.nationalFlag2"
|
||||
alt="">
|
||||
<el-dropdown-menu
|
||||
slot="dropdown"
|
||||
class="dropdown-container"
|
||||
>
|
||||
<el-dropdown-item
|
||||
v-for="(item, i) in countryList"
|
||||
:key="i"
|
||||
>
|
||||
<div
|
||||
class="dropdown_i"
|
||||
@click="handleClick(item)"
|
||||
>
|
||||
<img
|
||||
:src="item.nationalFlag2"
|
||||
alt=""
|
||||
>
|
||||
<div>{{ item.name }}</div>
|
||||
</div>
|
||||
|
||||
|
@ -43,8 +60,10 @@
|
|||
</el-dropdown-menu>
|
||||
</el-dropdown>
|
||||
</div>
|
||||
<div class="login"
|
||||
@click="logout">退出登录</div>
|
||||
<div
|
||||
class="login"
|
||||
@click="logout"
|
||||
>退出登录</div>
|
||||
<!-- <el-dropdown class="avatar-container" trigger="click">
|
||||
<div class="avatar-wrapper">
|
||||
<img :src="avatar+'?imageView2/1/w/80/h/80'" class="user-avatar">
|
||||
|
@ -74,10 +93,10 @@ import { userCountryList, changeList, languages } from '@/api/user'
|
|||
export default {
|
||||
components: {
|
||||
Breadcrumb,
|
||||
Hamburger,
|
||||
Hamburger
|
||||
},
|
||||
computed: {
|
||||
...mapGetters(['sidebar', 'avatar', 'user']),
|
||||
...mapGetters(['sidebar', 'avatar', 'user'])
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
|
@ -85,14 +104,14 @@ export default {
|
|||
ruleForm: {
|
||||
pkCountry: '',
|
||||
nationalFlag2: '',
|
||||
name: '',
|
||||
name: ''
|
||||
},
|
||||
languageList: [],
|
||||
languageItem: 0,
|
||||
languageItem: 0
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
let that = this
|
||||
const that = this
|
||||
setTimeout(() => {
|
||||
// 获取结算国列表
|
||||
that.getJScountry()
|
||||
|
@ -160,16 +179,16 @@ export default {
|
|||
this.$confirm('确定注销并退出系统吗?', this.$t('w_0034'), {
|
||||
confirmButtonText: this.$t('w_0035'),
|
||||
cancelButtonText: this.$t('ENU_P_TYPE0'),
|
||||
type: 'warning',
|
||||
type: 'warning'
|
||||
})
|
||||
.then(() => {
|
||||
this.$store.dispatch('user/LogOut').then(() => {
|
||||
this.$router.push(`/login?redirect=${this.$route.fullPath}`)
|
||||
this.$router.push(`/login?redirect=${encodeURIComponent(this.$route.fullPath)}`)
|
||||
})
|
||||
})
|
||||
.catch(() => {})
|
||||
},
|
||||
},
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
|
|
|
@ -0,0 +1,511 @@
|
|||
|
||||
import { getToken } from '@/utils/auth'
|
||||
import { getAwardsListChiose } from '@/api/level'
|
||||
import * as api from '@/api/product.js'
|
||||
import { specialArea } from '@/api/configManage'
|
||||
|
||||
const initFlashSaleForm = {
|
||||
inventory: '',
|
||||
inventoryUse: 0,
|
||||
inventoryRatio: '',
|
||||
memberLimit: '',
|
||||
memberMonthLimit: ''
|
||||
}
|
||||
export default {
|
||||
|
||||
data() {
|
||||
const validateMemberMonthLimit = (rule, value, callback) => {
|
||||
if (value > this.form.memberLimit) {
|
||||
callback(new Error('会员月限购不能大于会员总限购'))
|
||||
} else {
|
||||
callback()
|
||||
}
|
||||
}
|
||||
return {
|
||||
levelAll: false,
|
||||
gradeAll: false,
|
||||
// 产品明细
|
||||
cpList: [],
|
||||
uploadImgUrl: process.env.VUE_APP_BASE_API + '/system/upload',
|
||||
headers: {
|
||||
Authorization: getToken()
|
||||
},
|
||||
dialogImageUrl: '',
|
||||
dialogVisible: false,
|
||||
form: {
|
||||
isMakerGift: 1,
|
||||
waresGradeIds: [],
|
||||
waresAwardsIds: [],
|
||||
sales: '',
|
||||
sortStatus: 0,
|
||||
waresCode: '',
|
||||
sort: '',
|
||||
sptw: '',
|
||||
ysList: [],
|
||||
bzList: [],
|
||||
pkGuaranteeLabel: [],
|
||||
specialArea: '',
|
||||
checkList: [],
|
||||
waresMemberAuthorizeList: [],
|
||||
waresAuthorityList: [
|
||||
{
|
||||
authorityType: 5,
|
||||
memberCode: ''
|
||||
}
|
||||
],
|
||||
waresSpecsPackList: [{ key: '', value: '' }],
|
||||
...initFlashSaleForm
|
||||
},
|
||||
tabActive: 0,
|
||||
waresDetailList: [],
|
||||
waresSpecsSkuList: [],
|
||||
waresRangeList: [],
|
||||
agreeList: [
|
||||
{
|
||||
text: '允许',
|
||||
val: 0
|
||||
},
|
||||
{
|
||||
text: '禁止',
|
||||
val: 1
|
||||
}
|
||||
],
|
||||
// 套餐类型
|
||||
tcList: [
|
||||
{
|
||||
text: '套装',
|
||||
val: 0
|
||||
},
|
||||
{
|
||||
text: '单品',
|
||||
val: 1
|
||||
}
|
||||
],
|
||||
postList: [
|
||||
{
|
||||
text: '包邮',
|
||||
val: 0
|
||||
},
|
||||
{
|
||||
text: '不包邮',
|
||||
val: 1
|
||||
}
|
||||
],
|
||||
isTj: [
|
||||
{
|
||||
label: '推荐',
|
||||
value: 0
|
||||
},
|
||||
{
|
||||
label: '不推荐',
|
||||
value: 1
|
||||
}
|
||||
],
|
||||
xsList: [
|
||||
{
|
||||
text: '允许出售',
|
||||
val: 0
|
||||
},
|
||||
{
|
||||
text: '禁止出售',
|
||||
val: 1
|
||||
}
|
||||
],
|
||||
topList: [
|
||||
{
|
||||
name: '基础设置',
|
||||
id: 0
|
||||
},
|
||||
{
|
||||
name: '产品明细',
|
||||
id: 1
|
||||
},
|
||||
{
|
||||
name: '规格明细',
|
||||
id: 2
|
||||
},
|
||||
{
|
||||
name: '团队配置',
|
||||
id: 3
|
||||
},
|
||||
{
|
||||
name: '等级配置',
|
||||
id: 5
|
||||
},
|
||||
{
|
||||
name: '奖衔配置',
|
||||
id: 6
|
||||
},
|
||||
{
|
||||
name: '商品权限',
|
||||
id: 7
|
||||
}
|
||||
],
|
||||
goodList: [],
|
||||
copyArr: [],
|
||||
// 血缘列表
|
||||
xyList: '',
|
||||
// 海陆空
|
||||
transportTypeList: [],
|
||||
// 商品分类
|
||||
hierarchyList: [],
|
||||
// 所属专区
|
||||
areaList: [],
|
||||
// 预售状态
|
||||
presaleList: [],
|
||||
// 供应方式
|
||||
gyList: [],
|
||||
// 前缀标签
|
||||
qzList: [],
|
||||
// 酷炫标签
|
||||
kxList: [],
|
||||
// 保障标签
|
||||
bzList: [],
|
||||
// 卖点标签
|
||||
mdList: [],
|
||||
// 协议
|
||||
agreementList: [],
|
||||
// 邮费模板
|
||||
postMoneyList1: [],
|
||||
postMoneyList2: [],
|
||||
postMoneyList3: [],
|
||||
rules: {
|
||||
waresName: [
|
||||
{ required: true, message: '请输入商品名称', trigger: 'blur' }
|
||||
],
|
||||
sortStatus: [
|
||||
{ required: true, message: '请选择', trigger: 'change' }
|
||||
],
|
||||
waresCode: [
|
||||
{ required: true, message: '请输入商品编码', trigger: 'blur' }
|
||||
],
|
||||
sellingPoints: [
|
||||
{ required: true, message: '请输入商品卖点', trigger: 'blur' }
|
||||
],
|
||||
sales: [{ required: true, message: '请输入商品销量', trigger: 'blur' }],
|
||||
waresPrice: [
|
||||
{ required: true, message: '请输入商品价格', trigger: 'blur' }
|
||||
],
|
||||
waresAchieve: [
|
||||
{ required: true, message: '请输入商品业绩', trigger: 'blur' }
|
||||
],
|
||||
sort: [
|
||||
{ required: true, message: '请输入排列序号', trigger: 'blur' }
|
||||
],
|
||||
pkAreaClassifys: [
|
||||
{ required: true, message: '请选择商品分类', trigger: 'change' }
|
||||
],
|
||||
specialArea: [
|
||||
{ required: true, message: '请选择所属专区', trigger: 'change' }
|
||||
],
|
||||
isPutOn: [
|
||||
{ required: true, message: '请选择上架状态', trigger: 'change' }
|
||||
],
|
||||
operateScope: [
|
||||
{ required: true, message: '请选择供应方式', trigger: 'change' }
|
||||
],
|
||||
preSaleStatus: [
|
||||
{
|
||||
required: true,
|
||||
message: '请选择预售状态',
|
||||
trigger: 'change'
|
||||
}
|
||||
],
|
||||
isSale: [
|
||||
{ required: true, message: '请选择销售状态', trigger: 'change' }
|
||||
],
|
||||
isSingle: [
|
||||
{
|
||||
required: true,
|
||||
message: '请选择套餐类型',
|
||||
trigger: 'change'
|
||||
}
|
||||
],
|
||||
pkAgreement: [
|
||||
{ required: true, message: '请选择补充协议', trigger: 'change' }
|
||||
],
|
||||
isFreeMail: [
|
||||
{ required: true, message: '请选择包邮类型', trigger: 'change' }
|
||||
],
|
||||
// videoUrl: [
|
||||
// { required: true, message: '请上传商品视频', trigger: 'blur' }
|
||||
// ],
|
||||
cover: [{ required: true, message: '请上传商品封面', trigger: 'blur' }],
|
||||
cover1: [
|
||||
{ required: true, message: '请上传图片', trigger: 'blur' }
|
||||
],
|
||||
// cover2: [
|
||||
// { required: true, message: '请上传图片', trigger: 'blur' }
|
||||
// ],
|
||||
// cover3: [
|
||||
// { required: true, message: '请上传图片', trigger: 'blur' }
|
||||
// ],
|
||||
// cover4: [
|
||||
// { required: true, message: '请上传图片', trigger: 'blur' }
|
||||
// ],
|
||||
details: [
|
||||
{ required: true, message: '请输入商品详情', trigger: 'blur' }
|
||||
],
|
||||
afterGuarantee: [
|
||||
{ required: true, message: '请输入售后保障', trigger: 'blur' }
|
||||
],
|
||||
inventory: [
|
||||
{ required: true, message: '请输入库存数量', trigger: 'blur' }
|
||||
],
|
||||
inventoryRatio: [
|
||||
{ required: true, message: '请输入库存倒计时比例', trigger: 'blur' }
|
||||
],
|
||||
memberLimit: [
|
||||
{ required: true, message: '请输入会员总限购', trigger: 'blur' }
|
||||
],
|
||||
memberMonthLimit: [
|
||||
{ required: true, message: '请输入会员月限购', trigger: 'blur' },
|
||||
{ validator: validateMemberMonthLimit, trigger: 'blur' }
|
||||
]
|
||||
},
|
||||
levelList: [],
|
||||
yesNo: [],
|
||||
waresTypeList: [],
|
||||
specialCurrency: [],
|
||||
awardsList: [],
|
||||
authorityList: [],
|
||||
sortList: []
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
get_hierarchy_list(val) {
|
||||
api
|
||||
.get_hierarchy_list({
|
||||
specialArea: val || null
|
||||
})
|
||||
.then((res) => {
|
||||
this.hierarchyList = res.data
|
||||
this.$set(this.form, 'pkAreaClassifys', [])
|
||||
})
|
||||
},
|
||||
// 运输方式
|
||||
getTransportType() {
|
||||
api.transportType().then((res) => {
|
||||
this.transportTypeList = res.data
|
||||
})
|
||||
},
|
||||
setTopList(specialAreaId) {
|
||||
if (
|
||||
[3, 26, 12, 22].includes(specialAreaId)
|
||||
) {
|
||||
const idx = this.topList.findIndex((item) => item.id === 3)
|
||||
this.topList.splice(idx, 0, {
|
||||
name: '级差配置',
|
||||
id: 4
|
||||
})
|
||||
} else {
|
||||
const idx = this.topList.findIndex((item) => item.id === 4)
|
||||
this.topList.splice(idx, 1)
|
||||
}
|
||||
},
|
||||
selSpecial(e) {
|
||||
this.get_hierarchy_list(e)
|
||||
this.setTopList(e)
|
||||
},
|
||||
getGrade(e) {
|
||||
if (e) {
|
||||
const gradeArr = this.awardsList.map((item) => {
|
||||
return item.pkId
|
||||
})
|
||||
this.form.waresAwardsIds = gradeArr
|
||||
} else {
|
||||
this.form.waresAwardsIds = []
|
||||
}
|
||||
},
|
||||
getGradeAll(e) {
|
||||
if (e.length == this.awardsList.length) {
|
||||
this.gradeAll = true
|
||||
} else {
|
||||
this.gradeAll = false
|
||||
}
|
||||
},
|
||||
getRangeList() {
|
||||
api.rangeList().then((res) => {
|
||||
this.levelList = res.data
|
||||
})
|
||||
},
|
||||
getWaresCode() {
|
||||
api.getWaresCode().then((res) => {
|
||||
this.form.waresCode = res.msg
|
||||
})
|
||||
},
|
||||
getLevel(e) {
|
||||
if (e) {
|
||||
const levelArr = this.levelList.map((item) => {
|
||||
return item.pkId
|
||||
})
|
||||
this.form.waresGradeIds = levelArr
|
||||
} else {
|
||||
this.form.waresGradeIds = []
|
||||
}
|
||||
},
|
||||
getLevelAll(e) {
|
||||
if (e.length == this.levelList.length) {
|
||||
this.levelAll = true
|
||||
} else {
|
||||
this.levelAll = false
|
||||
}
|
||||
},
|
||||
getOther() {
|
||||
api.get_sort().then((res) => {
|
||||
this.sortList = res.data
|
||||
})
|
||||
api.yes_no().then((res) => {
|
||||
this.yesNo = res.data
|
||||
})
|
||||
api.wares_type().then((res) => {
|
||||
this.waresTypeList = res.data
|
||||
})
|
||||
api.special_currency().then((res) => {
|
||||
this.specialCurrency = res.data
|
||||
})
|
||||
getAwardsListChiose().then((res) => {
|
||||
this.awardsList = res.rows
|
||||
})
|
||||
api.ERegistrationAuthority().then((res) => {
|
||||
this.authorityList = res.data
|
||||
})
|
||||
},
|
||||
getTrans(data) {
|
||||
this.form.isLandTrans = ''
|
||||
this.form.isAirTrans = ''
|
||||
this.form.isOceanTrans = ''
|
||||
data.forEach((item) => {
|
||||
if (item == 1) {
|
||||
this.form.isLandTrans = 0
|
||||
} else if (item == 2) {
|
||||
this.form.isAirTrans = 0
|
||||
} else if (item == 3) {
|
||||
this.form.isOceanTrans = 0
|
||||
}
|
||||
})
|
||||
},
|
||||
getTeamList(val) {
|
||||
if (val == 5) {
|
||||
this.form.waresAuthorityList = [
|
||||
{
|
||||
authorityType: 5,
|
||||
memberCode: ''
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
getPostageList() {
|
||||
// 陆运
|
||||
api.getPostageList({ tranType: 1 }).then((res) => {
|
||||
this.postMoneyList1 = res.data
|
||||
})
|
||||
// 空运
|
||||
api.getPostageList({ tranType: 2 }).then((res) => {
|
||||
this.postMoneyList2 = res.data
|
||||
})
|
||||
// 海运
|
||||
api.getPostageList({ tranType: 3 }).then((res) => {
|
||||
this.postMoneyList3 = res.data
|
||||
})
|
||||
},
|
||||
getAgreementList() {
|
||||
api.getAgreementList().then((res) => {
|
||||
this.agreementList = res.data
|
||||
})
|
||||
},
|
||||
// 四个标签
|
||||
labelAll() {
|
||||
// 前缀标签
|
||||
api.labelAll({ labelType: 1 }).then((res) => {
|
||||
this.qzList = res.data
|
||||
})
|
||||
// 酷炫标签
|
||||
api.labelAll({ labelType: 2 }).then((res) => {
|
||||
this.kxList = res.data
|
||||
})
|
||||
// 保障标签
|
||||
api.labelAll({ labelType: 3 }).then((res) => {
|
||||
this.bzList = res.data
|
||||
})
|
||||
// 卖点标签
|
||||
api.labelAll({ labelType: 4 }).then((res) => {
|
||||
this.mdList = res.data
|
||||
})
|
||||
},
|
||||
// 供应方式
|
||||
supply_way() {
|
||||
api.supply_way().then((res) => {
|
||||
this.gyList = res.data
|
||||
})
|
||||
},
|
||||
// 查询预售状态
|
||||
presale_status() {
|
||||
api.presale_status().then((res) => {
|
||||
this.presaleList = res.data
|
||||
})
|
||||
},
|
||||
// 获取专区
|
||||
getArea() {
|
||||
specialArea().then((res) => {
|
||||
this.areaList = res.data
|
||||
})
|
||||
},
|
||||
getImg1(data) {
|
||||
this.form.videoUrl = data
|
||||
},
|
||||
delImg1() {},
|
||||
getImg2(data) {
|
||||
this.form.cover = data
|
||||
},
|
||||
delImg2() {},
|
||||
getImg3(data) {
|
||||
this.form.cover1 = data
|
||||
},
|
||||
delImg3() {},
|
||||
getImg4(data) {
|
||||
this.form.cover2 = data
|
||||
},
|
||||
delImg4() {},
|
||||
getImg5(data) {
|
||||
this.form.cover3 = data
|
||||
},
|
||||
delImg5() {},
|
||||
getImg6(data) {
|
||||
this.form.cover4 = data
|
||||
},
|
||||
delImg6() {},
|
||||
getImg7(data) {
|
||||
this.form.cover5 = data
|
||||
},
|
||||
delImg7() {},
|
||||
getImg8(data) {
|
||||
this.form.cover6 = data
|
||||
},
|
||||
delImg8() {},
|
||||
removeGg(index) {
|
||||
this.form.waresSpecsPackList.splice(index, 1)
|
||||
},
|
||||
removeTeamPz(index) {
|
||||
this.form.waresAuthorityList.splice(index, 1)
|
||||
},
|
||||
getRangList(data) {
|
||||
this.form.waresRangeList = data
|
||||
},
|
||||
// 商品分类赋值
|
||||
flChange(value) {
|
||||
this.form.pkAreaClassify = value[value.length - 1]
|
||||
},
|
||||
getXYList() {
|
||||
api.getEWaresPermissionTypeList().then((res) => {
|
||||
this.xyList = res.data
|
||||
})
|
||||
},
|
||||
addTeamPz() {
|
||||
this.form.waresAuthorityList.push({
|
||||
kjlx: '',
|
||||
teamOrder: ''
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
|
@ -28,7 +28,7 @@
|
|||
:model="form"
|
||||
:rules="rules"
|
||||
style="width:1200px"
|
||||
label-width="100px"
|
||||
label-width="120px"
|
||||
>
|
||||
<el-row :gutter="40">
|
||||
<el-col :span="16">
|
||||
|
@ -98,7 +98,7 @@
|
|||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item
|
||||
:label="'商品业绩'+`(${isLocals()})`"
|
||||
label="商品业绩"
|
||||
prop="waresAchieve"
|
||||
>
|
||||
<el-input
|
||||
|
@ -558,7 +558,49 @@
|
|||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
</el-row>
|
||||
<template v-if="form.specialArea === 14">
|
||||
<el-row style="margin-bottom: 18px;">
|
||||
<el-col :span="24" class="extra-wrapper">
|
||||
<el-col :span="24">
|
||||
<div class="extra-title">秒杀配置</div>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="库存数量" prop="inventory">
|
||||
<el-input-number v-model="form.inventory" style="width: 100%" :min="0" :max="999999999" :controls="false" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="8">
|
||||
<el-form-item label="库存倒计时比例" prop="inventoryRatio">
|
||||
<el-input v-model="form.inventoryRatio" style="width: 100%">
|
||||
<template slot="append">%</template>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="会员总限购" prop="memberLimit">
|
||||
<el-input-number v-model="form.memberLimit" style="width: 100%" :min="0" :max="999999999" :controls="false" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="会员月限购" prop="memberMonthLimit">
|
||||
<el-input-number v-model="form.memberMonthLimit" style="width: 100%" :min="0" :max="999999999" :controls="false" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="已用库存数量" prop="inventoryUse">
|
||||
<el-input v-model="form.inventoryUse" readonly>
|
||||
<el-button slot="append" style="background-color: #409EFF; color: #fff; border-color: #409EFF" type="primary" @click="resetInventoryUse">
|
||||
重置
|
||||
</el-button>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</template>
|
||||
<el-row>
|
||||
<!-- <el-col :span="8">
|
||||
<el-form-item
|
||||
|
@ -940,260 +982,25 @@ import Editor from '@/components/Editor'
|
|||
import Cpmx from '@/views/goodsManage/goodsList/goodsEdit/cpmx.vue'
|
||||
import Ggmx from '@/views/goodsManage/goodsList/goodsEdit/ggmx.vue'
|
||||
import Jcpz from '@/views/goodsManage/goodsList/goodsEdit/jcpz.vue'
|
||||
import { getToken } from '@/utils/auth'
|
||||
import UpDataImg from '@/components/upDataImg'
|
||||
import * as api from '@/api/product.js'
|
||||
import { specialArea } from '@/api/configManage'
|
||||
import ImageUpload from '@/components/ImageUpload'
|
||||
import { isLocals } from '@/utils/numberToCurrency'
|
||||
import { getAwardsListChiose } from '@/api/level'
|
||||
import jcszMixins from '@/views/goodsManage/common/jcsz-mixins'
|
||||
export default {
|
||||
name: 'Jcsz',
|
||||
components: {
|
||||
ImageUpload,
|
||||
Editor,
|
||||
UpDataImg,
|
||||
Jcpz,
|
||||
Cpmx,
|
||||
Ggmx
|
||||
},
|
||||
mixins: [jcszMixins],
|
||||
data() {
|
||||
return {
|
||||
isMakerGift: 1,
|
||||
levelAll: false,
|
||||
gradeAll: false,
|
||||
// 产品明细
|
||||
cpList: [],
|
||||
uploadImgUrl: process.env.VUE_APP_BASE_API + '/system/upload',
|
||||
headers: {
|
||||
Authorization: getToken()
|
||||
},
|
||||
dialogImageUrl: '',
|
||||
dialogVisible: false,
|
||||
form: {
|
||||
waresGradeIds: [],
|
||||
waresAwardsIds: [],
|
||||
sales: '',
|
||||
sortStatus: 0,
|
||||
sort: '',
|
||||
sptw: '',
|
||||
ysList: [],
|
||||
bzList: [],
|
||||
pkGuaranteeLabel: [],
|
||||
specialArea: '',
|
||||
checkList: [],
|
||||
waresMemberAuthorizeList: [],
|
||||
waresAuthorityList: [
|
||||
{
|
||||
authorityType: 5,
|
||||
memberCode: ''
|
||||
}
|
||||
],
|
||||
waresSpecsPackList: [{ key: '', value: '' }]
|
||||
},
|
||||
moren: '/goodsManage/goodsRelease/jcsz',
|
||||
tabActive: 0,
|
||||
waresDetailList: [],
|
||||
waresSpecsSkuList: [],
|
||||
waresRangeList: [],
|
||||
agreeList: [
|
||||
{
|
||||
text: '允许',
|
||||
val: 0
|
||||
},
|
||||
{
|
||||
text: '禁止',
|
||||
val: 1
|
||||
}
|
||||
],
|
||||
// 套餐类型
|
||||
tcList: [
|
||||
{
|
||||
text: '套装',
|
||||
val: 0
|
||||
},
|
||||
{
|
||||
text: '单品',
|
||||
val: 1
|
||||
}
|
||||
],
|
||||
postList: [
|
||||
{
|
||||
text: '包邮',
|
||||
val: 0
|
||||
},
|
||||
{
|
||||
text: '不包邮',
|
||||
val: 1
|
||||
}
|
||||
],
|
||||
xsList: [
|
||||
{
|
||||
text: '允许出售',
|
||||
val: 0
|
||||
},
|
||||
{
|
||||
text: '禁止出售',
|
||||
val: 1
|
||||
}
|
||||
],
|
||||
isTj: [
|
||||
{
|
||||
label: '推荐',
|
||||
value: 0
|
||||
},
|
||||
{
|
||||
label: '不推荐',
|
||||
value: 1
|
||||
}
|
||||
],
|
||||
topList: [
|
||||
{
|
||||
name: '基础设置',
|
||||
id: 0
|
||||
},
|
||||
{
|
||||
name: '产品明细',
|
||||
id: 1
|
||||
},
|
||||
{
|
||||
name: '规格明细',
|
||||
id: 2
|
||||
},
|
||||
{
|
||||
name: '团队配置',
|
||||
id: 3
|
||||
},
|
||||
|
||||
{
|
||||
name: '等级配置',
|
||||
id: 5
|
||||
},
|
||||
{
|
||||
name: '奖衔配置',
|
||||
id: 6
|
||||
},
|
||||
{
|
||||
name: '商品权限',
|
||||
id: 7
|
||||
}
|
||||
],
|
||||
goodList: [],
|
||||
copyArr: [],
|
||||
// 血缘列表
|
||||
xyList: '',
|
||||
// 海陆空
|
||||
transportTypeList: [],
|
||||
// 商品分类
|
||||
hierarchyList: [],
|
||||
// 所属专区
|
||||
areaList: [],
|
||||
// 预售状态
|
||||
presaleList: [],
|
||||
// 供应方式
|
||||
gyList: [],
|
||||
// 前缀标签
|
||||
qzList: [],
|
||||
// 酷炫标签
|
||||
kxList: [],
|
||||
// 保障标签
|
||||
bzList: [],
|
||||
// 卖点标签
|
||||
mdList: [],
|
||||
// 协议
|
||||
agreementList: [],
|
||||
// 邮费模板
|
||||
postMoneyList1: [],
|
||||
postMoneyList2: [],
|
||||
postMoneyList3: [],
|
||||
rules: {
|
||||
waresName: [
|
||||
{ required: true, message: '请输入商品名称', trigger: 'blur' }
|
||||
],
|
||||
sortStatus: [
|
||||
{ required: true, message: '请选择', trigger: 'change' }
|
||||
],
|
||||
waresCode: [{ required: true, message: '', trigger: 'blur' }],
|
||||
sellingPoints: [
|
||||
{ required: true, message: '请输入商品卖点', trigger: 'blur' }
|
||||
],
|
||||
sales: [{ required: true, message: '请输入商品销量', trigger: 'blur' }],
|
||||
waresPrice: [
|
||||
{ required: true, message: '请输入商品价格', trigger: 'blur' }
|
||||
],
|
||||
waresAchieve: [
|
||||
{ required: true, message: '请输入商品业绩', trigger: 'blur' }
|
||||
],
|
||||
sort: [
|
||||
{ required: true, message: '请输入排列序号', trigger: 'blur' }
|
||||
],
|
||||
pkAreaClassifys: [
|
||||
{ required: true, message: '请选择商品分类', trigger: 'change' }
|
||||
],
|
||||
specialArea: [
|
||||
{ required: true, message: '请选择所属专区', trigger: 'change' }
|
||||
],
|
||||
isPutOn: [
|
||||
{ required: true, message: '请选择上架状态', trigger: 'change' }
|
||||
],
|
||||
operateScope: [
|
||||
{ required: true, message: '请选择供应方式', trigger: 'change' }
|
||||
],
|
||||
preSaleStatus: [
|
||||
{
|
||||
required: true,
|
||||
message: '请选择预售状态',
|
||||
trigger: 'change'
|
||||
}
|
||||
],
|
||||
isSale: [
|
||||
{ required: true, message: '请选择销售状态', trigger: 'change' }
|
||||
],
|
||||
isSingle: [
|
||||
{
|
||||
required: true,
|
||||
message: '请选择套餐类型',
|
||||
trigger: 'change'
|
||||
}
|
||||
],
|
||||
pkAgreement: [
|
||||
{ required: true, message: '请选择补充协议', trigger: 'change' }
|
||||
],
|
||||
isFreeMail: [
|
||||
{ required: true, message: '请选择包邮类型', trigger: 'change' }
|
||||
],
|
||||
// videoUrl: [
|
||||
// { required: true, message: '请上传商品视频', trigger: 'blur' }
|
||||
// ],
|
||||
cover: [{ required: true, message: '请上传商品封面', trigger: 'blur' }],
|
||||
cover1: [
|
||||
{ required: true, message: '请上传图片', trigger: 'blur' }
|
||||
],
|
||||
// cover2: [
|
||||
// { required: true, message: '请上传图片', trigger: 'blur' }
|
||||
// ],
|
||||
// cover3: [
|
||||
// { required: true, message: '请上传图片', trigger: 'blur' }
|
||||
// ],
|
||||
// cover4: [
|
||||
// { required: true, message: '请上传图片', trigger: 'blur' }
|
||||
// ],
|
||||
details: [
|
||||
{ required: true, message: '请输入商品详情', trigger: 'blur' }
|
||||
],
|
||||
afterGuarantee: [
|
||||
{ required: true, message: '请输入售后保障', trigger: 'blur' }
|
||||
]
|
||||
},
|
||||
pkId: '',
|
||||
methods: 1,
|
||||
levelList: [],
|
||||
yesNo: [],
|
||||
specialCurrency: [],
|
||||
waresTypeList: [],
|
||||
awardsList: [],
|
||||
authorityList: [],
|
||||
sortList: []
|
||||
moren: '/goodsManage/goodsRelease/jcsz'
|
||||
}
|
||||
},
|
||||
created() {
|
||||
|
@ -1230,75 +1037,6 @@ export default {
|
|||
// },
|
||||
methods: {
|
||||
isLocals,
|
||||
getOther() {
|
||||
api.get_sort().then((res) => {
|
||||
this.sortList = res.data
|
||||
})
|
||||
api.yes_no().then((res) => {
|
||||
this.yesNo = res.data
|
||||
})
|
||||
api.wares_type().then((res) => {
|
||||
this.waresTypeList = res.data
|
||||
})
|
||||
api.special_currency().then((res) => {
|
||||
this.specialCurrency = res.data
|
||||
})
|
||||
getAwardsListChiose().then((res) => {
|
||||
this.awardsList = res.rows
|
||||
})
|
||||
api.ERegistrationAuthority().then((res) => {
|
||||
this.authorityList = res.data
|
||||
})
|
||||
},
|
||||
// getWaresSort() {
|
||||
// api.waresSort().then((res) => {
|
||||
// this.form.sort = res.data
|
||||
// })
|
||||
// },
|
||||
getLevel(e) {
|
||||
if (e) {
|
||||
const levelArr = this.levelList.map((item) => {
|
||||
return item.pkId
|
||||
})
|
||||
this.form.waresGradeIds = levelArr
|
||||
} else {
|
||||
this.form.waresGradeIds = []
|
||||
}
|
||||
},
|
||||
getLevelAll(e) {
|
||||
if (e.length == this.levelList.length) {
|
||||
this.levelAll = true
|
||||
} else {
|
||||
this.levelAll = false
|
||||
}
|
||||
},
|
||||
getGrade(e) {
|
||||
if (e) {
|
||||
const gradeArr = this.awardsList.map((item) => {
|
||||
return item.pkId
|
||||
})
|
||||
this.form.waresAwardsIds = gradeArr
|
||||
} else {
|
||||
this.form.waresAwardsIds = []
|
||||
}
|
||||
},
|
||||
getGradeAll(e) {
|
||||
if (e.length == this.awardsList.length) {
|
||||
this.gradeAll = true
|
||||
} else {
|
||||
this.gradeAll = false
|
||||
}
|
||||
},
|
||||
getRangeList() {
|
||||
api.rangeList().then((res) => {
|
||||
this.levelList = res.data
|
||||
})
|
||||
},
|
||||
getWaresCode() {
|
||||
api.getWaresCode().then((res) => {
|
||||
this.form.waresCode = res.msg
|
||||
})
|
||||
},
|
||||
getEduitdata() {
|
||||
api
|
||||
.waresDetail({
|
||||
|
@ -1352,48 +1090,7 @@ export default {
|
|||
// 排序
|
||||
// this.getWaresSort()
|
||||
}
|
||||
if (
|
||||
this.form.specialArea == 3 ||
|
||||
this.form.specialArea == 26 ||
|
||||
this.form.specialArea == 12 ||
|
||||
this.form.specialArea == 22 ||
|
||||
this.form.specialArea == 14
|
||||
) {
|
||||
this.topList = [
|
||||
{
|
||||
name: '基础设置',
|
||||
id: 0
|
||||
},
|
||||
{
|
||||
name: '产品明细',
|
||||
id: 1
|
||||
},
|
||||
{
|
||||
name: '规格明细',
|
||||
id: 2
|
||||
},
|
||||
{
|
||||
name: '团队配置',
|
||||
id: 3
|
||||
},
|
||||
{
|
||||
name: '级差配置',
|
||||
id: 4
|
||||
},
|
||||
{
|
||||
name: '等级配置',
|
||||
id: 5
|
||||
},
|
||||
{
|
||||
name: '奖衔配置',
|
||||
id: 6
|
||||
},
|
||||
{
|
||||
name: '商品权限',
|
||||
id: 7
|
||||
}
|
||||
]
|
||||
}
|
||||
this.setTopList(this.form.specialArea)
|
||||
setTimeout(() => {
|
||||
that.$refs.box.scrollTop = 0
|
||||
}, 50)
|
||||
|
@ -1443,202 +1140,7 @@ export default {
|
|||
}
|
||||
})
|
||||
},
|
||||
getTrans(data) {
|
||||
this.form.isLandTrans = ''
|
||||
this.form.isAirTrans = ''
|
||||
this.form.isOceanTrans = ''
|
||||
data.forEach((item) => {
|
||||
if (item == 1) {
|
||||
this.form.isLandTrans = 0
|
||||
} else if (item == 2) {
|
||||
this.form.isAirTrans = 0
|
||||
} else if (item == 3) {
|
||||
this.form.isOceanTrans = 0
|
||||
}
|
||||
})
|
||||
},
|
||||
getTeamList(val) {
|
||||
if (val == 5) {
|
||||
this.form.waresAuthorityList = [
|
||||
{
|
||||
authorityType: 5,
|
||||
memberCode: ''
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
getPostageList() {
|
||||
// 陆运
|
||||
api.getPostageList({ tranType: 1 }).then((res) => {
|
||||
this.postMoneyList1 = res.data
|
||||
})
|
||||
// 空运
|
||||
api.getPostageList({ tranType: 2 }).then((res) => {
|
||||
this.postMoneyList2 = res.data
|
||||
})
|
||||
// 海运
|
||||
api.getPostageList({ tranType: 3 }).then((res) => {
|
||||
this.postMoneyList3 = res.data
|
||||
})
|
||||
},
|
||||
getAgreementList() {
|
||||
api.getAgreementList().then((res) => {
|
||||
this.agreementList = res.data
|
||||
})
|
||||
},
|
||||
// 四个标签
|
||||
labelAll() {
|
||||
// 前缀标签
|
||||
api.labelAll({ labelType: 1 }).then((res) => {
|
||||
this.qzList = res.data
|
||||
})
|
||||
// 酷炫标签
|
||||
api.labelAll({ labelType: 2 }).then((res) => {
|
||||
this.kxList = res.data
|
||||
})
|
||||
// 保障标签
|
||||
api.labelAll({ labelType: 3 }).then((res) => {
|
||||
this.bzList = res.data
|
||||
})
|
||||
// 卖点标签
|
||||
api.labelAll({ labelType: 4 }).then((res) => {
|
||||
this.mdList = res.data
|
||||
})
|
||||
},
|
||||
// 供应方式
|
||||
supply_way() {
|
||||
api.supply_way().then((res) => {
|
||||
this.gyList = res.data
|
||||
})
|
||||
},
|
||||
// 查询预售状态
|
||||
presale_status() {
|
||||
api.presale_status().then((res) => {
|
||||
this.presaleList = res.data
|
||||
})
|
||||
},
|
||||
// 获取专区
|
||||
getArea() {
|
||||
specialArea().then((res) => {
|
||||
this.areaList = res.data
|
||||
})
|
||||
},
|
||||
// 商品分类赋值
|
||||
flChange(value) {
|
||||
console.log(
|
||||
'%c [ value ]-827',
|
||||
'font-size:13px; background:#7eb846; color:#c2fc8a;',
|
||||
value
|
||||
)
|
||||
this.form.pkAreaClassify = value[value.length - 1]
|
||||
},
|
||||
selSpecial(e) {
|
||||
this.get_hierarchy_list(e)
|
||||
if (e == 3 || e == 26 || e == 12 || e == 22 || e == 14) {
|
||||
this.$set(this, 'topList', [
|
||||
{
|
||||
name: '基础设置',
|
||||
id: 0
|
||||
},
|
||||
{
|
||||
name: '产品明细',
|
||||
id: 1
|
||||
},
|
||||
{
|
||||
name: '规格明细',
|
||||
id: 2
|
||||
},
|
||||
{
|
||||
name: '团队配置',
|
||||
id: 3
|
||||
},
|
||||
{
|
||||
name: '级差配置',
|
||||
id: 4
|
||||
},
|
||||
{
|
||||
name: '等级配置',
|
||||
id: 5
|
||||
},
|
||||
{
|
||||
name: '奖衔配置',
|
||||
id: 6
|
||||
},
|
||||
{
|
||||
name: '商品权限',
|
||||
id: 7
|
||||
}
|
||||
])
|
||||
} else {
|
||||
this.$set(this, 'topList', [
|
||||
{
|
||||
name: '基础设置',
|
||||
id: 0
|
||||
},
|
||||
{
|
||||
name: '产品明细',
|
||||
id: 1
|
||||
},
|
||||
{
|
||||
name: '规格明细',
|
||||
id: 2
|
||||
},
|
||||
{
|
||||
name: '团队配置',
|
||||
id: 3
|
||||
},
|
||||
|
||||
{
|
||||
name: '等级配置',
|
||||
id: 5
|
||||
},
|
||||
{
|
||||
name: '奖衔配置',
|
||||
id: 6
|
||||
},
|
||||
{
|
||||
name: '商品权限',
|
||||
id: 7
|
||||
}
|
||||
])
|
||||
}
|
||||
},
|
||||
// 查询分类父子级关系
|
||||
get_hierarchy_list(val) {
|
||||
api
|
||||
.get_hierarchy_list({
|
||||
specialArea: val || null
|
||||
})
|
||||
.then((res) => {
|
||||
this.hierarchyList = res.data
|
||||
})
|
||||
},
|
||||
// 运输方式
|
||||
getTransportType() {
|
||||
api.transportType().then((res) => {
|
||||
this.transportTypeList = res.data
|
||||
})
|
||||
},
|
||||
getXYList() {
|
||||
api.getEWaresPermissionTypeList().then((res) => {
|
||||
this.xyList = res.data
|
||||
})
|
||||
},
|
||||
addTeamPz() {
|
||||
this.form.waresAuthorityList.push({
|
||||
kjlx: '',
|
||||
teamOrder: ''
|
||||
})
|
||||
},
|
||||
removeGg(index) {
|
||||
this.form.waresSpecsPackList.splice(index, 1)
|
||||
},
|
||||
removeTeamPz(index) {
|
||||
this.form.waresAuthorityList.splice(index, 1)
|
||||
},
|
||||
getRangList(data) {
|
||||
this.form.waresRangeList = data
|
||||
},
|
||||
// 切换tab
|
||||
handleLink(id) {
|
||||
if (id == 2) {
|
||||
|
@ -1689,8 +1191,6 @@ export default {
|
|||
mdChange(val) {
|
||||
this.form.pkSellingPoint = val
|
||||
},
|
||||
// 多选框
|
||||
changeYsfs() {},
|
||||
// 获取产品明细数组内容
|
||||
getTableList(data) {
|
||||
this.form.waresDetailList = data
|
||||
|
@ -1703,38 +1203,21 @@ export default {
|
|||
})
|
||||
this.$refs.ggmxed.getData(this.cpList, this.form.specialArea)
|
||||
},
|
||||
getImg1(data) {
|
||||
this.form.videoUrl = data
|
||||
},
|
||||
delImg1() {},
|
||||
getImg2(data) {
|
||||
this.form.cover = data
|
||||
},
|
||||
delImg2() {},
|
||||
getImg3(data) {
|
||||
this.form.cover1 = data
|
||||
},
|
||||
delImg3() {},
|
||||
getImg4(data) {
|
||||
this.form.cover2 = data
|
||||
},
|
||||
delImg4() {},
|
||||
getImg5(data) {
|
||||
this.form.cover3 = data
|
||||
},
|
||||
delImg5() {},
|
||||
getImg6(data) {
|
||||
this.form.cover4 = data
|
||||
},
|
||||
delImg6() {},
|
||||
getImg7(data) {
|
||||
this.form.cover5 = data
|
||||
},
|
||||
delImg7() {},
|
||||
getImg8(data) {
|
||||
this.form.cover6 = data
|
||||
},
|
||||
delImg8() {}
|
||||
resetInventoryUse() {
|
||||
this.$confirm('确定重置库存吗?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
api.resetInventoryUse({
|
||||
waresId: this.form.waresId
|
||||
}).then((res) => {
|
||||
if (res.code === 200) {
|
||||
this.form.inventoryUse = 0
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
@ -1744,6 +1227,9 @@ export default {
|
|||
.el-cascader {
|
||||
width: 100%;
|
||||
}
|
||||
::v-deep .el-input-group__append {
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
::v-deep .el-date-editor.el-input,
|
||||
.el-date-editor.el-input__inner {
|
||||
|
@ -1793,6 +1279,7 @@ export default {
|
|||
overflow: hidden;
|
||||
background: #f9f9f9;
|
||||
padding-top: 20px;
|
||||
padding-left: 0 !important;
|
||||
}
|
||||
|
||||
.main {
|
||||
|
@ -1908,4 +1395,19 @@ export default {
|
|||
// ::v-deep .el-select .el-input__suffix {
|
||||
// top: 5px;
|
||||
// }
|
||||
.extra-title {
|
||||
font-size: 16px;
|
||||
font-weight: bold;
|
||||
color: #333333;
|
||||
margin-bottom: 10px;
|
||||
margin-top: 10px;
|
||||
text-indent: 40px;
|
||||
|
||||
}
|
||||
.extra-wrapper {
|
||||
margin-top: 10px;
|
||||
padding: 10px;
|
||||
border-radius: 5px;
|
||||
border: 1px dashed #cccccc;
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -487,9 +487,13 @@
|
|||
/>
|
||||
<el-table-column
|
||||
align="center"
|
||||
prop="actualSales"
|
||||
:label="'实际销量'"
|
||||
/>
|
||||
prop="inventoryUse"
|
||||
label="实际销量"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
{{ (scope.row.inventoryUse || scope.row.inventoryUse === 0) ? scope.row.inventoryUse : '-' }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column
|
||||
align="center"
|
||||
|
|
|
@ -28,7 +28,7 @@
|
|||
:rules="rules"
|
||||
:model="form"
|
||||
style="width:1200px"
|
||||
label-width="auto"
|
||||
label-width="120px"
|
||||
>
|
||||
<el-row :gutter="40">
|
||||
<el-col :span="16">
|
||||
|
@ -95,7 +95,7 @@
|
|||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item
|
||||
:label="'商品业绩'+`(${isLocals()})`"
|
||||
label="商品业绩"
|
||||
prop="waresAchieve"
|
||||
>
|
||||
<el-input
|
||||
|
@ -528,6 +528,49 @@
|
|||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<template v-if="form.specialArea === 14">
|
||||
<el-row style="margin-bottom: 18px;">
|
||||
<el-row style="margin-bottom: 18px;">
|
||||
<el-col :span="24" class="extra-wrapper">
|
||||
<el-col :span="24">
|
||||
<div class="extra-title">秒杀配置</div>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="库存数量" prop="inventory">
|
||||
<el-input-number v-model="form.inventory" style="width: 100%" :min="0" :max="999999999" :controls="false" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="8">
|
||||
<el-form-item label="库存倒计时比例" prop="inventoryRatio">
|
||||
<el-input v-model="form.inventoryRatio" style="width: 100%">
|
||||
<template slot="append">%</template>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="会员总限购" prop="memberLimit">
|
||||
<el-input-number v-model="form.memberLimit" style="width: 100%" :min="0" :max="999999999" :controls="false" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="会员月限购" prop="memberMonthLimit">
|
||||
<el-input-number v-model="form.memberMonthLimit" style="width: 100%" :min="0" :max="999999999" :controls="false" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="已用库存数量" prop="inventoryUse">
|
||||
<el-input v-model="form.inventoryUse" readonly>
|
||||
<el-button slot="append" style="background-color: #409EFF; color: #fff; border-color: #409EFF" type="primary" @click="resetInventoryUse">
|
||||
重置
|
||||
</el-button>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-row>
|
||||
</template>
|
||||
<el-row>
|
||||
<!-- <el-col :span="8">
|
||||
<el-form-item
|
||||
|
@ -550,6 +593,7 @@
|
|||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-row style="margin-top: 10px; margin-bottom: 10px;">
|
||||
<el-col :span="8">
|
||||
<el-form-item
|
||||
|
@ -874,262 +918,25 @@ import Editor from '@/components/Editor'
|
|||
import Cpmx from '@/views/goodsManage/goodsRelease/cpmx.vue'
|
||||
import Ggmx from '@/views/goodsManage/goodsRelease/ggmx.vue'
|
||||
import Jcpz from '@/views/goodsManage/goodsRelease/jcpz.vue'
|
||||
import { getToken } from '@/utils/auth'
|
||||
import UpDataImg from '@/components/upDataImg'
|
||||
import * as api from '@/api/product.js'
|
||||
import { specialArea } from '@/api/configManage'
|
||||
import ImageUpload from '@/components/ImageUpload'
|
||||
import { isLocals } from '@/utils/numberToCurrency'
|
||||
import { getAwardsListChiose } from '@/api/level'
|
||||
import jcszMixins from '@/views/goodsManage/common/jcsz-mixins'
|
||||
export default {
|
||||
name: 'Jcsz',
|
||||
components: {
|
||||
ImageUpload,
|
||||
Editor,
|
||||
UpDataImg,
|
||||
Jcpz,
|
||||
Cpmx,
|
||||
Ggmx
|
||||
},
|
||||
mixins: [jcszMixins],
|
||||
data() {
|
||||
return {
|
||||
levelAll: false,
|
||||
gradeAll: false,
|
||||
// 产品明细
|
||||
cpList: [],
|
||||
uploadImgUrl: process.env.VUE_APP_BASE_API + '/system/upload',
|
||||
headers: {
|
||||
Authorization: getToken()
|
||||
},
|
||||
dialogImageUrl: '',
|
||||
dialogVisible: false,
|
||||
form: {
|
||||
isMakerGift: 1,
|
||||
waresGradeIds: [],
|
||||
waresAwardsIds: [],
|
||||
sales: '',
|
||||
sortStatus: 0,
|
||||
waresCode: '',
|
||||
sort: '',
|
||||
sptw: '',
|
||||
ysList: [],
|
||||
bzList: [],
|
||||
pkGuaranteeLabel: [],
|
||||
specialArea: '',
|
||||
checkList: [],
|
||||
waresMemberAuthorizeList: [],
|
||||
waresAuthorityList: [
|
||||
{
|
||||
authorityType: 5,
|
||||
memberCode: ''
|
||||
}
|
||||
],
|
||||
waresSpecsPackList: [{ key: '', value: '' }]
|
||||
},
|
||||
moren: '/goodsManage/goodsRelease/jcsz',
|
||||
tabActive: 0,
|
||||
agreeList: [
|
||||
{
|
||||
text: '允许',
|
||||
val: 0
|
||||
},
|
||||
{
|
||||
text: '禁止',
|
||||
val: 1
|
||||
}
|
||||
],
|
||||
// 套餐类型
|
||||
tcList: [
|
||||
{
|
||||
text: '套装',
|
||||
val: 0
|
||||
},
|
||||
{
|
||||
text: '单品',
|
||||
val: 1
|
||||
}
|
||||
],
|
||||
postList: [
|
||||
{
|
||||
text: '包邮',
|
||||
val: 0
|
||||
},
|
||||
{
|
||||
text: '不包邮',
|
||||
val: 1
|
||||
}
|
||||
],
|
||||
isTj: [
|
||||
{
|
||||
label: '推荐',
|
||||
value: 0
|
||||
},
|
||||
{
|
||||
label: '不推荐',
|
||||
value: 1
|
||||
}
|
||||
],
|
||||
xsList: [
|
||||
{
|
||||
text: '允许出售',
|
||||
val: 0
|
||||
},
|
||||
{
|
||||
text: '禁止出售',
|
||||
val: 1
|
||||
}
|
||||
],
|
||||
topList: [
|
||||
{
|
||||
name: '基础设置',
|
||||
id: 0
|
||||
},
|
||||
{
|
||||
name: '产品明细',
|
||||
id: 1
|
||||
},
|
||||
{
|
||||
name: '规格明细',
|
||||
id: 2
|
||||
},
|
||||
{
|
||||
name: '团队配置',
|
||||
id: 3
|
||||
},
|
||||
// {
|
||||
// name: '级差配置',
|
||||
// id: 4,
|
||||
// },
|
||||
{
|
||||
name: '等级配置',
|
||||
id: 5
|
||||
},
|
||||
{
|
||||
name: '奖衔配置',
|
||||
id: 6
|
||||
},
|
||||
{
|
||||
name: '商品权限',
|
||||
id: 7
|
||||
}
|
||||
],
|
||||
goodList: [],
|
||||
copyArr: [],
|
||||
// 血缘列表
|
||||
xyList: '',
|
||||
// 海陆空
|
||||
transportTypeList: [],
|
||||
// 商品分类
|
||||
hierarchyList: [],
|
||||
// 所属专区
|
||||
areaList: [],
|
||||
// 预售状态
|
||||
presaleList: [],
|
||||
// 供应方式
|
||||
gyList: [],
|
||||
// 前缀标签
|
||||
qzList: [],
|
||||
// 酷炫标签
|
||||
kxList: [],
|
||||
// 保障标签
|
||||
bzList: [],
|
||||
// 卖点标签
|
||||
mdList: [],
|
||||
// 协议
|
||||
agreementList: [],
|
||||
// 邮费模板
|
||||
postMoneyList1: [],
|
||||
postMoneyList2: [],
|
||||
postMoneyList3: [],
|
||||
levelList: [],
|
||||
rules: {
|
||||
waresName: [
|
||||
{ required: true, message: '请输入商品名称', trigger: 'blur' }
|
||||
],
|
||||
sortStatus: [
|
||||
{ required: true, message: '请选择', trigger: 'change' }
|
||||
],
|
||||
waresCode: [
|
||||
{ required: true, message: '请输入商品编码', trigger: 'blur' }
|
||||
],
|
||||
sellingPoints: [
|
||||
{ required: true, message: '请输入商品卖点', trigger: 'blur' }
|
||||
],
|
||||
sales: [{ required: true, message: '请输入商品销量', trigger: 'blur' }],
|
||||
waresPrice: [
|
||||
{ required: true, message: '请输入商品价格', trigger: 'blur' }
|
||||
],
|
||||
waresAchieve: [
|
||||
{ required: true, message: '请输入商品业绩', trigger: 'blur' }
|
||||
],
|
||||
sort: [
|
||||
{ required: true, message: '请输入排列序号', trigger: 'blur' }
|
||||
],
|
||||
pkAreaClassifys: [
|
||||
{ required: true, message: '请选择商品分类', trigger: 'change' }
|
||||
],
|
||||
specialArea: [
|
||||
{ required: true, message: '请选择所属专区', trigger: 'change' }
|
||||
],
|
||||
isPutOn: [
|
||||
{ required: true, message: '请选择上架状态', trigger: 'change' }
|
||||
],
|
||||
operateScope: [
|
||||
{ required: true, message: '请选择供应方式', trigger: 'change' }
|
||||
],
|
||||
preSaleStatus: [
|
||||
{
|
||||
required: true,
|
||||
message: '请选择预售状态',
|
||||
trigger: 'change'
|
||||
}
|
||||
],
|
||||
isSale: [
|
||||
{ required: true, message: '请选择销售状态', trigger: 'change' }
|
||||
],
|
||||
isSingle: [
|
||||
{
|
||||
required: true,
|
||||
message: '请选择套餐类型',
|
||||
trigger: 'change'
|
||||
}
|
||||
],
|
||||
pkAgreement: [
|
||||
{ required: true, message: '请选择补充协议', trigger: 'change' }
|
||||
],
|
||||
isFreeMail: [
|
||||
{ required: true, message: '请选择包邮类型', trigger: 'change' }
|
||||
],
|
||||
// videoUrl: [
|
||||
// { required: true, message: '请上传商品视频', trigger: 'blur' }
|
||||
// ],
|
||||
cover: [{ required: true, message: '请上传商品封面', trigger: 'blur' }],
|
||||
cover1: [
|
||||
{ required: true, message: '请上传图片', trigger: 'blur' }
|
||||
],
|
||||
// cover2: [
|
||||
// { required: true, message: '请上传图片', trigger: 'blur' }
|
||||
// ],
|
||||
// cover3: [
|
||||
// { required: true, message: '请上传图片', trigger: 'blur' }
|
||||
// ],
|
||||
// cover4: [
|
||||
// { required: true, message: '请上传图片', trigger: 'blur' }
|
||||
// ],
|
||||
details: [
|
||||
{ required: true, message: '请输入商品详情', trigger: 'blur' }
|
||||
],
|
||||
afterGuarantee: [
|
||||
{ required: true, message: '请输入售后保障', trigger: 'blur' }
|
||||
]
|
||||
},
|
||||
yesNo: [],
|
||||
waresTypeList: [],
|
||||
specialCurrency: [],
|
||||
awardsList: [],
|
||||
authorityList: [],
|
||||
isTrue: false,
|
||||
sortList: []
|
||||
isTrue: false
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
|
@ -1172,75 +979,6 @@ export default {
|
|||
}
|
||||
})
|
||||
},
|
||||
getOther() {
|
||||
api.get_sort().then((res) => {
|
||||
this.sortList = res.data
|
||||
})
|
||||
api.yes_no().then((res) => {
|
||||
this.yesNo = res.data
|
||||
})
|
||||
api.wares_type().then((res) => {
|
||||
this.waresTypeList = res.data
|
||||
})
|
||||
api.special_currency().then((res) => {
|
||||
this.specialCurrency = res.data
|
||||
})
|
||||
getAwardsListChiose().then((res) => {
|
||||
this.awardsList = res.rows
|
||||
})
|
||||
api.ERegistrationAuthority().then((res) => {
|
||||
this.authorityList = res.data
|
||||
})
|
||||
},
|
||||
// getWaresSort() {
|
||||
// api.waresSort().then((res) => {
|
||||
// this.form.sort = res.data
|
||||
// })
|
||||
// },
|
||||
getLevel(e) {
|
||||
if (e) {
|
||||
const levelArr = this.levelList.map((item) => {
|
||||
return item.pkId
|
||||
})
|
||||
this.form.waresGradeIds = levelArr
|
||||
} else {
|
||||
this.form.waresGradeIds = []
|
||||
}
|
||||
},
|
||||
getLevelAll(e) {
|
||||
if (e.length == this.levelList.length) {
|
||||
this.levelAll = true
|
||||
} else {
|
||||
this.levelAll = false
|
||||
}
|
||||
},
|
||||
getGrade(e) {
|
||||
if (e) {
|
||||
const gradeArr = this.awardsList.map((item) => {
|
||||
return item.pkId
|
||||
})
|
||||
this.form.waresAwardsIds = gradeArr
|
||||
} else {
|
||||
this.form.waresAwardsIds = []
|
||||
}
|
||||
},
|
||||
getGradeAll(e) {
|
||||
if (e.length == this.awardsList.length) {
|
||||
this.gradeAll = true
|
||||
} else {
|
||||
this.gradeAll = false
|
||||
}
|
||||
},
|
||||
getRangeList() {
|
||||
api.rangeList().then((res) => {
|
||||
this.levelList = res.data
|
||||
})
|
||||
},
|
||||
getWaresCode() {
|
||||
api.getWaresCode().then((res) => {
|
||||
this.form.waresCode = res.msg
|
||||
})
|
||||
},
|
||||
goBack() {
|
||||
this.$router.go(-1)
|
||||
},
|
||||
|
@ -1288,207 +1026,6 @@ export default {
|
|||
}
|
||||
})
|
||||
},
|
||||
getTrans(data) {
|
||||
this.form.isLandTrans = ''
|
||||
this.form.isAirTrans = ''
|
||||
this.form.isOceanTrans = ''
|
||||
data.forEach((item) => {
|
||||
if (item == 1) {
|
||||
this.form.isLandTrans = 0
|
||||
} else if (item == 2) {
|
||||
this.form.isAirTrans = 0
|
||||
} else if (item == 3) {
|
||||
this.form.isOceanTrans = 0
|
||||
}
|
||||
})
|
||||
},
|
||||
getTeamList(val) {
|
||||
if (val == 5) {
|
||||
this.form.waresAuthorityList = [
|
||||
{
|
||||
authorityType: 5,
|
||||
memberCode: ''
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
getPostageList() {
|
||||
// 陆运
|
||||
api.getPostageList({ tranType: 1 }).then((res) => {
|
||||
this.postMoneyList1 = res.data
|
||||
})
|
||||
// 空运
|
||||
api.getPostageList({ tranType: 2 }).then((res) => {
|
||||
this.postMoneyList2 = res.data
|
||||
})
|
||||
// 海运
|
||||
api.getPostageList({ tranType: 3 }).then((res) => {
|
||||
this.postMoneyList3 = res.data
|
||||
})
|
||||
},
|
||||
getAgreementList() {
|
||||
api.getAgreementList().then((res) => {
|
||||
this.agreementList = res.data
|
||||
})
|
||||
},
|
||||
// 四个标签
|
||||
labelAll() {
|
||||
// 前缀标签
|
||||
api.labelAll({ labelType: 1 }).then((res) => {
|
||||
this.qzList = res.data
|
||||
})
|
||||
// 酷炫标签
|
||||
api.labelAll({ labelType: 2 }).then((res) => {
|
||||
this.kxList = res.data
|
||||
})
|
||||
// 保障标签
|
||||
api.labelAll({ labelType: 3 }).then((res) => {
|
||||
this.bzList = res.data
|
||||
})
|
||||
// 卖点标签
|
||||
api.labelAll({ labelType: 4 }).then((res) => {
|
||||
this.mdList = res.data
|
||||
})
|
||||
},
|
||||
// 供应方式
|
||||
supply_way() {
|
||||
api.supply_way().then((res) => {
|
||||
this.gyList = res.data
|
||||
})
|
||||
},
|
||||
// 查询预售状态
|
||||
presale_status() {
|
||||
api.presale_status().then((res) => {
|
||||
this.presaleList = res.data
|
||||
})
|
||||
},
|
||||
// 获取专区
|
||||
getArea() {
|
||||
specialArea().then((res) => {
|
||||
this.areaList = res.data
|
||||
})
|
||||
},
|
||||
// 商品分类赋值
|
||||
flChange(value) {
|
||||
console.log(
|
||||
'%c [ form.pkAreaClassifys ]-770',
|
||||
'font-size:13px; background:#42289a; color:#866cde;',
|
||||
this.form.pkAreaClassifys
|
||||
)
|
||||
this.form.pkAreaClassify = value[value.length - 1]
|
||||
},
|
||||
selSpecial(e) {
|
||||
this.get_hierarchy_list(e)
|
||||
if (e == 3 || e == 26 || e == 12 || e == 22 || e == 14) {
|
||||
this.$set(this, 'topList', [
|
||||
{
|
||||
name: '基础设置',
|
||||
id: 0
|
||||
},
|
||||
{
|
||||
name: '产品明细',
|
||||
id: 1
|
||||
},
|
||||
{
|
||||
name: '规格明细',
|
||||
id: 2
|
||||
},
|
||||
{
|
||||
name: '团队配置',
|
||||
id: 3
|
||||
},
|
||||
{
|
||||
name: '级差配置',
|
||||
id: 4
|
||||
},
|
||||
{
|
||||
name: '等级配置',
|
||||
id: 5
|
||||
},
|
||||
{
|
||||
name: '奖衔配置',
|
||||
id: 6
|
||||
},
|
||||
{
|
||||
name: '商品权限',
|
||||
id: 7
|
||||
}
|
||||
])
|
||||
} else {
|
||||
this.$set(this, 'topList', [
|
||||
{
|
||||
name: '基础设置',
|
||||
id: 0
|
||||
},
|
||||
{
|
||||
name: '产品明细',
|
||||
id: 1
|
||||
},
|
||||
{
|
||||
name: '规格明细',
|
||||
id: 2
|
||||
},
|
||||
{
|
||||
name: '团队配置',
|
||||
id: 3
|
||||
},
|
||||
|
||||
{
|
||||
name: '等级配置',
|
||||
id: 5
|
||||
},
|
||||
{
|
||||
name: '奖衔配置',
|
||||
id: 6
|
||||
},
|
||||
{
|
||||
name: '商品权限',
|
||||
id: 7
|
||||
}
|
||||
])
|
||||
}
|
||||
},
|
||||
// 查询分类父子级关系
|
||||
get_hierarchy_list(val) {
|
||||
api
|
||||
.get_hierarchy_list({
|
||||
specialArea: val || null
|
||||
})
|
||||
.then((res) => {
|
||||
this.hierarchyList = res.data
|
||||
})
|
||||
},
|
||||
// 运输方式
|
||||
getTransportType() {
|
||||
api.transportType().then((res) => {
|
||||
this.transportTypeList = res.data
|
||||
})
|
||||
},
|
||||
getXYList() {
|
||||
api.getEWaresPermissionTypeList().then((res) => {
|
||||
console.log(
|
||||
'%c [ res ]-451',
|
||||
'font-size:13px; background:#73d160; color:#b7ffa4;',
|
||||
res
|
||||
)
|
||||
this.xyList = res.data
|
||||
})
|
||||
},
|
||||
addTeamPz() {
|
||||
this.form.waresAuthorityList.push({
|
||||
kjlx: '',
|
||||
teamOrder: ''
|
||||
})
|
||||
},
|
||||
removeGg(index) {
|
||||
this.form.waresSpecsPackList.splice(index, 1)
|
||||
},
|
||||
removeTeamPz(index) {
|
||||
this.form.waresAuthorityList.splice(index, 1)
|
||||
},
|
||||
getRangList(data) {
|
||||
this.form.waresRangeList = data
|
||||
},
|
||||
// 切换tab
|
||||
handleLink(id) {
|
||||
if (id == 2) {
|
||||
|
@ -1540,11 +1077,8 @@ export default {
|
|||
// console.log('%c [ val ]-828', 'font-size:13px; background:#f8a68c; color:#ffead0;', val)
|
||||
// this.form.pkSellingPoint = val
|
||||
// },
|
||||
// 多选框
|
||||
changeYsfs() {},
|
||||
// 获取产品明细数组内容
|
||||
getTableList(data, isTrue) {
|
||||
console.log('%c [ data ]-1313', 'font-size:13px; background:#442827; color:#886c6b;', data)
|
||||
this.isTrue = isTrue
|
||||
this.form.waresDetailList = data
|
||||
this.cpList = data.map((item) => {
|
||||
|
@ -1554,39 +1088,7 @@ export default {
|
|||
quantity: item.quantity
|
||||
}
|
||||
})
|
||||
},
|
||||
getImg1(data) {
|
||||
this.form.videoUrl = data
|
||||
},
|
||||
delImg1() {},
|
||||
getImg2(data) {
|
||||
this.form.cover = data
|
||||
},
|
||||
delImg2() {},
|
||||
getImg3(data) {
|
||||
this.form.cover1 = data
|
||||
},
|
||||
delImg3() {},
|
||||
getImg4(data) {
|
||||
this.form.cover2 = data
|
||||
},
|
||||
delImg4() {},
|
||||
getImg5(data) {
|
||||
this.form.cover3 = data
|
||||
},
|
||||
delImg5() {},
|
||||
getImg6(data) {
|
||||
this.form.cover4 = data
|
||||
},
|
||||
delImg6() {},
|
||||
getImg7(data) {
|
||||
this.form.cover5 = data
|
||||
},
|
||||
delImg7() {},
|
||||
getImg8(data) {
|
||||
this.form.cover6 = data
|
||||
},
|
||||
delImg8() {}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
@ -1595,6 +1097,12 @@ export default {
|
|||
.el-cascader {
|
||||
width: 100%;
|
||||
}
|
||||
::v-deep .el-input-group__append {
|
||||
background-color: transparent;
|
||||
}
|
||||
::v-deep .el-input-number {
|
||||
width: 100% !important;
|
||||
}
|
||||
::v-deep .el-date-editor.el-input,
|
||||
.el-date-editor.el-input__inner {
|
||||
width: 100%;
|
||||
|
@ -1641,7 +1149,8 @@ export default {
|
|||
height: calc(100vh - 50px);
|
||||
overflow: hidden;
|
||||
background: #f9f9f9;
|
||||
padding-top: 20px;
|
||||
// padding-top: 20px;
|
||||
padding: 20px
|
||||
}
|
||||
.main {
|
||||
display: flex;
|
||||
|
@ -1653,7 +1162,7 @@ export default {
|
|||
background: #ffffff;
|
||||
border-radius: 8px;
|
||||
box-shadow: 0px 2px 20px 0px rgba(238, 238, 238, 0.5);
|
||||
margin: 0px 20px 0 20px;
|
||||
// margin: 0px 20px 0 20px;
|
||||
height: 100%;
|
||||
overflow-y: auto;
|
||||
padding: 0 10px;
|
||||
|
@ -1744,4 +1253,19 @@ export default {
|
|||
::v-deep .el-form-item {
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
.extra-title {
|
||||
font-size: 16px;
|
||||
font-weight: bold;
|
||||
color: #333333;
|
||||
margin-bottom: 10px;
|
||||
margin-top: 10px;
|
||||
text-indent: 40px;
|
||||
|
||||
}
|
||||
.extra-wrapper {
|
||||
margin-top: 10px;
|
||||
padding: 10px;
|
||||
border-radius: 5px;
|
||||
border: 1px dashed #cccccc;
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -249,7 +249,7 @@ export default {
|
|||
this.$store
|
||||
.dispatch('user/login', this.loginForm)
|
||||
.then(() => {
|
||||
this.$router.push({ path: this.redirect || '/' })
|
||||
this.$router.push({ path: decodeURIComponent(this.redirect) || '/' })
|
||||
this.loading = false
|
||||
})
|
||||
.catch(() => {
|
||||
|
|
Loading…
Reference in New Issue