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
|
params
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function resetInventoryUse(data) {
|
||||||
|
return request({
|
||||||
|
url: 'sale/manage/wares/resetInventoryUse',
|
||||||
|
method: 'post',
|
||||||
|
data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
|
@ -5,37 +5,54 @@
|
||||||
<breadcrumb class="breadcrumb-container" />
|
<breadcrumb class="breadcrumb-container" />
|
||||||
|
|
||||||
<div class="right-menu">
|
<div class="right-menu">
|
||||||
<div class="check" v-if="user.userType!=9">
|
<div v-if="user.userType!=9" class="check">
|
||||||
<el-select v-model="languageItem"
|
<el-select
|
||||||
@change="setLanguage"
|
v-model="languageItem"
|
||||||
popper-class="selectCls"
|
popper-class="selectCls"
|
||||||
size="mini">
|
size="mini"
|
||||||
<el-option v-for="item in languageList"
|
@change="setLanguage"
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
v-for="item in languageList"
|
||||||
:key="item.value"
|
:key="item.value"
|
||||||
:label="item.label"
|
:label="item.label"
|
||||||
:value="item.value">
|
:value="item.value"
|
||||||
</el-option>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
|
|
||||||
<el-dropdown trigger="click"
|
<el-dropdown
|
||||||
placement="bottom-start">
|
trigger="click"
|
||||||
|
placement="bottom-start"
|
||||||
|
>
|
||||||
<div class="kuang">
|
<div class="kuang">
|
||||||
<div class="dropdown_i">
|
<div class="dropdown_i">
|
||||||
<img :src="ruleForm.nationalFlag2"
|
<img
|
||||||
alt="">
|
:src="ruleForm.nationalFlag2"
|
||||||
|
alt=""
|
||||||
|
>
|
||||||
<div>{{ ruleForm.name }}</div>
|
<div>{{ ruleForm.name }}</div>
|
||||||
</div>
|
</div>
|
||||||
<i slot="suffix"
|
<i
|
||||||
class="el-icon-arrow-down"></i>
|
slot="suffix"
|
||||||
|
class="el-icon-arrow-down"
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
<el-dropdown-menu slot="dropdown"
|
<el-dropdown-menu
|
||||||
class="dropdown-container">
|
slot="dropdown"
|
||||||
<el-dropdown-item v-for="(item, i) in countryList"
|
class="dropdown-container"
|
||||||
:key="i">
|
>
|
||||||
<div class="dropdown_i"
|
<el-dropdown-item
|
||||||
@click="handleClick(item)">
|
v-for="(item, i) in countryList"
|
||||||
<img :src="item.nationalFlag2"
|
:key="i"
|
||||||
alt="">
|
>
|
||||||
|
<div
|
||||||
|
class="dropdown_i"
|
||||||
|
@click="handleClick(item)"
|
||||||
|
>
|
||||||
|
<img
|
||||||
|
:src="item.nationalFlag2"
|
||||||
|
alt=""
|
||||||
|
>
|
||||||
<div>{{ item.name }}</div>
|
<div>{{ item.name }}</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -43,8 +60,10 @@
|
||||||
</el-dropdown-menu>
|
</el-dropdown-menu>
|
||||||
</el-dropdown>
|
</el-dropdown>
|
||||||
</div>
|
</div>
|
||||||
<div class="login"
|
<div
|
||||||
@click="logout">退出登录</div>
|
class="login"
|
||||||
|
@click="logout"
|
||||||
|
>退出登录</div>
|
||||||
<!-- <el-dropdown class="avatar-container" trigger="click">
|
<!-- <el-dropdown class="avatar-container" trigger="click">
|
||||||
<div class="avatar-wrapper">
|
<div class="avatar-wrapper">
|
||||||
<img :src="avatar+'?imageView2/1/w/80/h/80'" class="user-avatar">
|
<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 {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
Breadcrumb,
|
Breadcrumb,
|
||||||
Hamburger,
|
Hamburger
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
...mapGetters(['sidebar', 'avatar', 'user']),
|
...mapGetters(['sidebar', 'avatar', 'user'])
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
@ -85,14 +104,14 @@ export default {
|
||||||
ruleForm: {
|
ruleForm: {
|
||||||
pkCountry: '',
|
pkCountry: '',
|
||||||
nationalFlag2: '',
|
nationalFlag2: '',
|
||||||
name: '',
|
name: ''
|
||||||
},
|
},
|
||||||
languageList: [],
|
languageList: [],
|
||||||
languageItem: 0,
|
languageItem: 0
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
let that = this
|
const that = this
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
// 获取结算国列表
|
// 获取结算国列表
|
||||||
that.getJScountry()
|
that.getJScountry()
|
||||||
|
@ -160,16 +179,16 @@ export default {
|
||||||
this.$confirm('确定注销并退出系统吗?', this.$t('w_0034'), {
|
this.$confirm('确定注销并退出系统吗?', this.$t('w_0034'), {
|
||||||
confirmButtonText: this.$t('w_0035'),
|
confirmButtonText: this.$t('w_0035'),
|
||||||
cancelButtonText: this.$t('ENU_P_TYPE0'),
|
cancelButtonText: this.$t('ENU_P_TYPE0'),
|
||||||
type: 'warning',
|
type: 'warning'
|
||||||
})
|
})
|
||||||
.then(() => {
|
.then(() => {
|
||||||
this.$store.dispatch('user/LogOut').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(() => {})
|
.catch(() => {})
|
||||||
},
|
}
|
||||||
},
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</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"
|
:model="form"
|
||||||
:rules="rules"
|
:rules="rules"
|
||||||
style="width:1200px"
|
style="width:1200px"
|
||||||
label-width="100px"
|
label-width="120px"
|
||||||
>
|
>
|
||||||
<el-row :gutter="40">
|
<el-row :gutter="40">
|
||||||
<el-col :span="16">
|
<el-col :span="16">
|
||||||
|
@ -98,7 +98,7 @@
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item
|
<el-form-item
|
||||||
:label="'商品业绩'+`(${isLocals()})`"
|
label="商品业绩"
|
||||||
prop="waresAchieve"
|
prop="waresAchieve"
|
||||||
>
|
>
|
||||||
<el-input
|
<el-input
|
||||||
|
@ -558,7 +558,49 @@
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
||||||
</el-row>
|
</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-row>
|
||||||
<!-- <el-col :span="8">
|
<!-- <el-col :span="8">
|
||||||
<el-form-item
|
<el-form-item
|
||||||
|
@ -940,260 +982,25 @@ import Editor from '@/components/Editor'
|
||||||
import Cpmx from '@/views/goodsManage/goodsList/goodsEdit/cpmx.vue'
|
import Cpmx from '@/views/goodsManage/goodsList/goodsEdit/cpmx.vue'
|
||||||
import Ggmx from '@/views/goodsManage/goodsList/goodsEdit/ggmx.vue'
|
import Ggmx from '@/views/goodsManage/goodsList/goodsEdit/ggmx.vue'
|
||||||
import Jcpz from '@/views/goodsManage/goodsList/goodsEdit/jcpz.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 * as api from '@/api/product.js'
|
||||||
import { specialArea } from '@/api/configManage'
|
|
||||||
import ImageUpload from '@/components/ImageUpload'
|
import ImageUpload from '@/components/ImageUpload'
|
||||||
import { isLocals } from '@/utils/numberToCurrency'
|
import { isLocals } from '@/utils/numberToCurrency'
|
||||||
import { getAwardsListChiose } from '@/api/level'
|
import jcszMixins from '@/views/goodsManage/common/jcsz-mixins'
|
||||||
export default {
|
export default {
|
||||||
name: 'Jcsz',
|
name: 'Jcsz',
|
||||||
components: {
|
components: {
|
||||||
ImageUpload,
|
ImageUpload,
|
||||||
Editor,
|
Editor,
|
||||||
UpDataImg,
|
|
||||||
Jcpz,
|
Jcpz,
|
||||||
Cpmx,
|
Cpmx,
|
||||||
Ggmx
|
Ggmx
|
||||||
},
|
},
|
||||||
|
mixins: [jcszMixins],
|
||||||
data() {
|
data() {
|
||||||
return {
|
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: '',
|
pkId: '',
|
||||||
methods: 1,
|
methods: 1,
|
||||||
levelList: [],
|
moren: '/goodsManage/goodsRelease/jcsz'
|
||||||
yesNo: [],
|
|
||||||
specialCurrency: [],
|
|
||||||
waresTypeList: [],
|
|
||||||
awardsList: [],
|
|
||||||
authorityList: [],
|
|
||||||
sortList: []
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
|
@ -1230,75 +1037,6 @@ export default {
|
||||||
// },
|
// },
|
||||||
methods: {
|
methods: {
|
||||||
isLocals,
|
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() {
|
getEduitdata() {
|
||||||
api
|
api
|
||||||
.waresDetail({
|
.waresDetail({
|
||||||
|
@ -1352,48 +1090,7 @@ export default {
|
||||||
// 排序
|
// 排序
|
||||||
// this.getWaresSort()
|
// this.getWaresSort()
|
||||||
}
|
}
|
||||||
if (
|
this.setTopList(this.form.specialArea)
|
||||||
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
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
that.$refs.box.scrollTop = 0
|
that.$refs.box.scrollTop = 0
|
||||||
}, 50)
|
}, 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
|
// 切换tab
|
||||||
handleLink(id) {
|
handleLink(id) {
|
||||||
if (id == 2) {
|
if (id == 2) {
|
||||||
|
@ -1689,8 +1191,6 @@ export default {
|
||||||
mdChange(val) {
|
mdChange(val) {
|
||||||
this.form.pkSellingPoint = val
|
this.form.pkSellingPoint = val
|
||||||
},
|
},
|
||||||
// 多选框
|
|
||||||
changeYsfs() {},
|
|
||||||
// 获取产品明细数组内容
|
// 获取产品明细数组内容
|
||||||
getTableList(data) {
|
getTableList(data) {
|
||||||
this.form.waresDetailList = data
|
this.form.waresDetailList = data
|
||||||
|
@ -1703,38 +1203,21 @@ export default {
|
||||||
})
|
})
|
||||||
this.$refs.ggmxed.getData(this.cpList, this.form.specialArea)
|
this.$refs.ggmxed.getData(this.cpList, this.form.specialArea)
|
||||||
},
|
},
|
||||||
getImg1(data) {
|
resetInventoryUse() {
|
||||||
this.form.videoUrl = data
|
this.$confirm('确定重置库存吗?', '提示', {
|
||||||
},
|
confirmButtonText: '确定',
|
||||||
delImg1() {},
|
cancelButtonText: '取消',
|
||||||
getImg2(data) {
|
type: 'warning'
|
||||||
this.form.cover = data
|
}).then(() => {
|
||||||
},
|
api.resetInventoryUse({
|
||||||
delImg2() {},
|
waresId: this.form.waresId
|
||||||
getImg3(data) {
|
}).then((res) => {
|
||||||
this.form.cover1 = data
|
if (res.code === 200) {
|
||||||
},
|
this.form.inventoryUse = 0
|
||||||
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>
|
</script>
|
||||||
|
@ -1744,6 +1227,9 @@ export default {
|
||||||
.el-cascader {
|
.el-cascader {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
::v-deep .el-input-group__append {
|
||||||
|
background-color: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
::v-deep .el-date-editor.el-input,
|
::v-deep .el-date-editor.el-input,
|
||||||
.el-date-editor.el-input__inner {
|
.el-date-editor.el-input__inner {
|
||||||
|
@ -1793,6 +1279,7 @@ export default {
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
background: #f9f9f9;
|
background: #f9f9f9;
|
||||||
padding-top: 20px;
|
padding-top: 20px;
|
||||||
|
padding-left: 0 !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.main {
|
.main {
|
||||||
|
@ -1908,4 +1395,19 @@ export default {
|
||||||
// ::v-deep .el-select .el-input__suffix {
|
// ::v-deep .el-select .el-input__suffix {
|
||||||
// top: 5px;
|
// 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>
|
</style>
|
||||||
|
|
|
@ -487,9 +487,13 @@
|
||||||
/>
|
/>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
align="center"
|
align="center"
|
||||||
prop="actualSales"
|
prop="inventoryUse"
|
||||||
:label="'实际销量'"
|
label="实际销量"
|
||||||
/>
|
>
|
||||||
|
<template slot-scope="scope">
|
||||||
|
{{ (scope.row.inventoryUse || scope.row.inventoryUse === 0) ? scope.row.inventoryUse : '-' }}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
|
||||||
<el-table-column
|
<el-table-column
|
||||||
align="center"
|
align="center"
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
:rules="rules"
|
:rules="rules"
|
||||||
:model="form"
|
:model="form"
|
||||||
style="width:1200px"
|
style="width:1200px"
|
||||||
label-width="auto"
|
label-width="120px"
|
||||||
>
|
>
|
||||||
<el-row :gutter="40">
|
<el-row :gutter="40">
|
||||||
<el-col :span="16">
|
<el-col :span="16">
|
||||||
|
@ -95,7 +95,7 @@
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item
|
<el-form-item
|
||||||
:label="'商品业绩'+`(${isLocals()})`"
|
label="商品业绩"
|
||||||
prop="waresAchieve"
|
prop="waresAchieve"
|
||||||
>
|
>
|
||||||
<el-input
|
<el-input
|
||||||
|
@ -528,6 +528,49 @@
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</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-row>
|
||||||
<!-- <el-col :span="8">
|
<!-- <el-col :span="8">
|
||||||
<el-form-item
|
<el-form-item
|
||||||
|
@ -550,6 +593,7 @@
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
<el-row style="margin-top: 10px; margin-bottom: 10px;">
|
<el-row style="margin-top: 10px; margin-bottom: 10px;">
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item
|
<el-form-item
|
||||||
|
@ -874,262 +918,25 @@ import Editor from '@/components/Editor'
|
||||||
import Cpmx from '@/views/goodsManage/goodsRelease/cpmx.vue'
|
import Cpmx from '@/views/goodsManage/goodsRelease/cpmx.vue'
|
||||||
import Ggmx from '@/views/goodsManage/goodsRelease/ggmx.vue'
|
import Ggmx from '@/views/goodsManage/goodsRelease/ggmx.vue'
|
||||||
import Jcpz from '@/views/goodsManage/goodsRelease/jcpz.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 * as api from '@/api/product.js'
|
||||||
import { specialArea } from '@/api/configManage'
|
import { specialArea } from '@/api/configManage'
|
||||||
import ImageUpload from '@/components/ImageUpload'
|
import ImageUpload from '@/components/ImageUpload'
|
||||||
import { isLocals } from '@/utils/numberToCurrency'
|
import { isLocals } from '@/utils/numberToCurrency'
|
||||||
import { getAwardsListChiose } from '@/api/level'
|
import jcszMixins from '@/views/goodsManage/common/jcsz-mixins'
|
||||||
export default {
|
export default {
|
||||||
name: 'Jcsz',
|
name: 'Jcsz',
|
||||||
components: {
|
components: {
|
||||||
ImageUpload,
|
ImageUpload,
|
||||||
Editor,
|
Editor,
|
||||||
UpDataImg,
|
|
||||||
Jcpz,
|
Jcpz,
|
||||||
Cpmx,
|
Cpmx,
|
||||||
Ggmx
|
Ggmx
|
||||||
},
|
},
|
||||||
|
mixins: [jcszMixins],
|
||||||
data() {
|
data() {
|
||||||
return {
|
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',
|
moren: '/goodsManage/goodsRelease/jcsz',
|
||||||
tabActive: 0,
|
isTrue: false
|
||||||
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: []
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted() {
|
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() {
|
goBack() {
|
||||||
this.$router.go(-1)
|
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
|
// 切换tab
|
||||||
handleLink(id) {
|
handleLink(id) {
|
||||||
if (id == 2) {
|
if (id == 2) {
|
||||||
|
@ -1540,11 +1077,8 @@ export default {
|
||||||
// console.log('%c [ val ]-828', 'font-size:13px; background:#f8a68c; color:#ffead0;', val)
|
// console.log('%c [ val ]-828', 'font-size:13px; background:#f8a68c; color:#ffead0;', val)
|
||||||
// this.form.pkSellingPoint = val
|
// this.form.pkSellingPoint = val
|
||||||
// },
|
// },
|
||||||
// 多选框
|
|
||||||
changeYsfs() {},
|
|
||||||
// 获取产品明细数组内容
|
// 获取产品明细数组内容
|
||||||
getTableList(data, isTrue) {
|
getTableList(data, isTrue) {
|
||||||
console.log('%c [ data ]-1313', 'font-size:13px; background:#442827; color:#886c6b;', data)
|
|
||||||
this.isTrue = isTrue
|
this.isTrue = isTrue
|
||||||
this.form.waresDetailList = data
|
this.form.waresDetailList = data
|
||||||
this.cpList = data.map((item) => {
|
this.cpList = data.map((item) => {
|
||||||
|
@ -1554,39 +1088,7 @@ export default {
|
||||||
quantity: item.quantity
|
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>
|
</script>
|
||||||
|
@ -1595,6 +1097,12 @@ export default {
|
||||||
.el-cascader {
|
.el-cascader {
|
||||||
width: 100%;
|
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,
|
::v-deep .el-date-editor.el-input,
|
||||||
.el-date-editor.el-input__inner {
|
.el-date-editor.el-input__inner {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
@ -1641,7 +1149,8 @@ export default {
|
||||||
height: calc(100vh - 50px);
|
height: calc(100vh - 50px);
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
background: #f9f9f9;
|
background: #f9f9f9;
|
||||||
padding-top: 20px;
|
// padding-top: 20px;
|
||||||
|
padding: 20px
|
||||||
}
|
}
|
||||||
.main {
|
.main {
|
||||||
display: flex;
|
display: flex;
|
||||||
|
@ -1653,7 +1162,7 @@ export default {
|
||||||
background: #ffffff;
|
background: #ffffff;
|
||||||
border-radius: 8px;
|
border-radius: 8px;
|
||||||
box-shadow: 0px 2px 20px 0px rgba(238, 238, 238, 0.5);
|
box-shadow: 0px 2px 20px 0px rgba(238, 238, 238, 0.5);
|
||||||
margin: 0px 20px 0 20px;
|
// margin: 0px 20px 0 20px;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
padding: 0 10px;
|
padding: 0 10px;
|
||||||
|
@ -1744,4 +1253,19 @@ export default {
|
||||||
::v-deep .el-form-item {
|
::v-deep .el-form-item {
|
||||||
margin-bottom: 15px;
|
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>
|
</style>
|
||||||
|
|
|
@ -249,7 +249,7 @@ export default {
|
||||||
this.$store
|
this.$store
|
||||||
.dispatch('user/login', this.loginForm)
|
.dispatch('user/login', this.loginForm)
|
||||||
.then(() => {
|
.then(() => {
|
||||||
this.$router.push({ path: this.redirect || '/' })
|
this.$router.push({ path: decodeURIComponent(this.redirect) || '/' })
|
||||||
this.loading = false
|
this.loading = false
|
||||||
})
|
})
|
||||||
.catch(() => {
|
.catch(() => {
|
||||||
|
|
Loading…
Reference in New Issue