Commit f1582a4a authored by 王伟's avatar 王伟

外部商品通证发布商品

parent 71400fd7
......@@ -154,44 +154,14 @@ export default {
returnType: '', // 退货类型
returnReason: '', // 退货理由
note: '', // 商品备注
buyerDeposit: '', // 买家保证金
priceIncrease: '', // 出价最小增幅
endTime: '', // 结束时间
deposit: '', // 首付比例
depositType: '', // 首付比例类型
drawStartTime: '', // 预计提货开始时间
drawEndTime: '', // 预计提货结束时间
saleStartTime: '', // 预售开始时间
saleEndTime: '', // 预售结束时间
stock: '', // 积分库存
pnum: '', // 积分数量
traceabilityNumber: '', // 溯源编号
delayDelivery: false, // 延迟提货
packageDTO: {
resource: [{ integralMerchantNameList: [], goodsId: '', skuId: '', number: '', specificationsList: [], actualNumber: '' }], // 打包资源
price: '', // 打包价格
stock: ''// 库存
},
nftdto: {
number: '', // 发行数量:只有商户选择“可拷贝”时,才会出现
price: '', // 商品价格
type: '', // NFT类型(1.单个,不可考贝 2.可拷贝)
tzType: '', // 1.内部发行 2.外部绑定
tokenId: '' // 绑定的外部通证id
}
delayDelivery: false // 延迟提货
},
skuNumber: '',
loading: true,
expressList: [],
profitList: [],
integralMerchantNameList: [],
specificationsList: [],
idx: '',
fixedProportion: '',
fixedAmount: '',
nftList: [],
submitLoading: false
submitLoading: false,
commodityPassId: '',
availableNumber: ''
}
},
methods: {
......@@ -253,11 +223,8 @@ export default {
returnReason,
categoryName,
categoryIds,
preSaleVO,
auctionVO,
commodityPass,
goodsPackageVO,
goodsNftVO,
nftFile
} = res.data
......@@ -324,41 +291,6 @@ export default {
this.form.deciptInfo.nftFile = ''
this.form.deciptInfo.defaultNftEnclosureList = []
}
if (type == 2) {
this.form.depositType = preSaleVO.depositType.toString()
if (this.form.depositType == 1) {
this.fixedProportion = preSaleVO.deposit
} else {
this.fixedAmount = preSaleVO.deposit
}
// this.form.deposit = preSaleVO.deposit
this.form.drawEndTime = formatTime(preSaleVO.drawEndTime)
this.form.drawStartTime = formatTime(preSaleVO.drawStartTime)
this.form.saleEndTime = formatTime(preSaleVO.saleEndTime)
this.form.saleStartTime = formatTime(preSaleVO.saleStartTime)
}
if (goodsPackageVO) {
goodsPackageVO.resource.forEach((item, index) => {
item.name = item.goodsName
let stock = item.sku.number + (item.number * goodsPackageVO.stock)
// console.log('stock', stock)
item.specificationsList = [
{ name: item.sku.name, skuId: item.sku.skuId, stock: stock }
]
item.skuId = item.sku.skuId
})
this.form.packageDTO = goodsPackageVO
}
if (goodsNftVO) {
goodsNftVO.type = goodsNftVO.type.toString()
goodsNftVO.tzType = goodsNftVO.tzType.toString()
// goodsNftVO.tokenId = goodsNftVO.tokenId
this.form.nftdto = goodsNftVO
// console.log('22222222', this.form.nftdto)
}
// this.form.nftdto = nftdto
},
complete: () => {
this.loading = false
......@@ -367,11 +299,14 @@ export default {
},
initData () {
let routeName = this.$route.name
let { goodsId, labelName } = this.$route.query
let { goodsId, labelName, commodityPassId, availableNumber } = this.$route.query
this.form.baseInfo.coinName = labelName
this.commodityPassId = commodityPassId
this.availableNumber = availableNumber
this.form.goodsId = goodsId
this.routeName = routeName
if (routeName == 'update_good' || routeName == 'good_detail' || routeName == 'again_good') {
if (routeName == 'commodity_update_good' || routeName == 'commodity_good_detail' || routeName == 'commodity_again_good') {
this.requestGoodDetail(goodsId)
} else {
this.loading = false
......@@ -393,7 +328,8 @@ export default {
}],
republish: '',
skuId: '',
stock: ''
stock: '',
commodityPassId: ''
}],
packageDTO: {},
nftdto: {}
......@@ -408,22 +344,8 @@ export default {
returnType,
returnReason,
note,
deposit,
depositType,
buyerDeposit,
priceIncrease,
drawStartTime,
drawEndTime,
saleStartTime,
saleEndTime,
endTime,
stock,
pnum,
traceabilityNumber,
delayDelivery,
nftdto,
// packagePrice
packageDTO
delayDelivery
} = this.form
form.goodsId = goodsId
if (!baseInfo) {
......@@ -454,89 +376,19 @@ export default {
}
form = { ...form, ...baseInfo }
// 销售信息
if (baseInfo.type != 6 && baseInfo.type != 5) {
if (
(!saleInfo.sku ||
saleInfo.sku.length === 0)
) {
return { errMsg: '请完善规格信息!' }
}
let skuIndex = 0
saleInfo.sku.forEach((item) => {
// console.log('item', item)
if (!item.originalPrice && item.originalPrice != 0) {
errMsg = '请填写 规格信息 - 价格!'
}
if (!item.stock) {
errMsg = '请填写 规格信息 - 库存!'
}
if (this.isAdd && saleInfo.commodityPass == 1 && !item.coinName) {
errMsg = '请填写 规格信息 - Token名称!'
}
if (!item.weight) {
errMsg = '请填写 规格信息 - 重量!'
}
if ((item.weight == 0 || (item.weight && item.weight < 0) || item.weight > 9999)) {
errMsg = '规格信息 - 重量 格式不正确!'
}
item.weight = parseFloat(item.weight)
if (!/^[0-9]+(.[0-9]{1,2})?$/.test(item.weight)) {
errMsg = '规格信息 - 重量 最多至小数点后两位!'
}
// console.log('coinName', item.coinName)
if (this.isAdd && saleInfo.commodityPass == 1 && !/^[A-Z0-9]{2,10}$/.test(item.coinName)) {
errMsg = '规格信息 - Token名称 格式不正确!'
}
if ((item.originalPrice <= 0 || item.originalPrice > 999999)) {
errMsg = '规格信息 - 价格 格式不正确!'
}
item.originalPrice = parseFloat(item.originalPrice)
if (!/^[0-9]+(.[0-9]{1,2})?$/.test(item.originalPrice)) {
errMsg = '规格信息 - 价格 最多至小数点后两位!'
}
if ((item.stock < 0 || !/^\d+$/.test(item.stock) || item.stock > 99999999)) {
errMsg = '规格信息 - 库存 格式不正确!'
}
if (
item.upload &&
item.upload.imageList &&
item.upload.imageList.length !== 0
) {
saleInfo.sku[skuIndex].image = item.upload.imageList[0]
}
skuIndex++
})
if (errMsg) {
return { errMsg }
}
form.skuList = saleInfo.sku
form.commodityPass = saleInfo.commodityPass
if (form.commodityPass == 1) {
form.skuList = form.skuList.map(item => {
let {
coinName,
coinNamePrefix,
...other
} = item
return { coinName: coinNamePrefix + coinName, ...other }
})
}
if (form.commodityPass == 2 && !this.isEdit) {
form.skuList.forEach(item => {
let name = JSON.parse(item.name)
item.commodityPassId = name.commodityPassId
item.coinName = `${item.coinNamePrefix}${name.labelName}`
})
}
if (!saleInfo.originalPrice) {
return { errMsg: '请填写销售价格!' }
}
if (baseInfo.type == 6 && saleInfo.sku.length != 0) {
// console.log(11111, saleInfo.sku)
form.skuList = saleInfo.sku
if (!saleInfo.weight) {
return { errMsg: '请填写商品重量!' }
}
// form.skuList = skuList
// console.log('form.skuList', form.skuList)
if (!saleInfo.nftSalesType) {
return { errMsg: '请选择NFT销售方式!' }
}
if (!saleInfo.stock && saleInfo.nftSalesType == 2) {
return { errMsg: '请填写拷贝数量!' }
}
form.commodityPass = saleInfo.commodityPass
// 图文信息
if (!deciptInfo) {
return { errMsg: '请完善图文描述!' }
......@@ -574,53 +426,6 @@ export default {
} else {
form.nftFile = ''
}
// console.log('form',form)
// 快递模板
// if (!templateId) {
// return { errMsg: '请选择快递模板!' }
// }
// form.templateId = templateId
// 打包价格
if (!packageDTO.price && baseInfo.type == 5) {
return { errMsg: '请填写打包价格' }
}
form.packageDTO.price = packageDTO.price
// 打包资源
packageDTO.resource.forEach(item => {
if (!item.skuId && baseInfo.type == 5) {
errMsg = '请选择规格!'
}
if (!item.number && item.number != 0 && baseInfo.type == 5) {
errMsg = '请填写数量!'
}
})
form.packageDTO.resource = packageDTO.resource
form.packageDTO.resource = form.packageDTO.resource.map(item => {
let {
skuId,
number
} = item
return { skuId: skuId, number: number }
})
form.packageDTO.resource = JSON.stringify(form.packageDTO.resource)
if (!packageDTO.stock && baseInfo.type == 5) {
return { errMsg: '请填写打包库存' }
}
form.packageDTO.stock = packageDTO.stock
// NFT商品价格
// console.log('nftdto', nftdto)
if (!nftdto.price && baseInfo.type == 6) {
return { errMsg: '请填写商品价格' }
}
// NFT类型
if (!nftdto.type && baseInfo.type == 6 && nftdto.tzType == 1) {
return { errMsg: '请选择NFT类型' }
}
// NFT类型
if (!nftdto.number && baseInfo.type == 6 && nftdto.type == 2) {
return { errMsg: '请填写发行数量' }
}
form.nftdto = nftdto
// 退货类型
if (!returnType && returnType != 0) {
return { errMsg: '请选择退货类型' }
......@@ -636,72 +441,6 @@ export default {
return { errMsg: '请填写商品备注' }
}
form.note = note
if (!depositType && baseInfo.type == 2) {
return { errMsg: '请选择预售定金类型' }
}
form.preSaleDTO.depositType = depositType
// 首付比例
if (baseInfo.type == 2) {
if (depositType == 1) {
deposit = this.fixedProportion
} else {
deposit = this.fixedAmount
}
}
if (!deposit && baseInfo.type == 2) {
return { errMsg: '请填写首付比例' }
}
form.preSaleDTO.deposit = deposit
// 预计提货开始时间
if (!drawStartTime && baseInfo.type == 2) {
return { errMsg: '请填写预计提货开始时间' }
}
form.preSaleDTO.drawStartTime = drawStartTime
// 预计提货结束时间
if (!drawEndTime && baseInfo.type == 2) {
return { errMsg: '请填写预计提货结束时间' }
}
form.preSaleDTO.drawEndTime = drawEndTime
// 预售开始时间
if (!saleStartTime && baseInfo.type == 2) {
return { errMsg: '请填写预售开始时间' }
}
form.preSaleDTO.saleStartTime = saleStartTime
// 预售结束时间
if (!saleEndTime && baseInfo.type == 2) {
return { errMsg: '请填写预售结束时间' }
}
form.preSaleDTO.saleEndTime = saleEndTime
// 买家保证金
if (!buyerDeposit && baseInfo.type == 3) {
return { errMsg: '请填写拍卖保证金' }
}
if ((buyerDeposit < 0 || !/^\d+$/.test(buyerDeposit)) && baseInfo.type == 3) {
return { errMsg: '拍卖保证金格式输入有误!' }
}
form.auctionDTO.buyerDeposit = buyerDeposit
// 出价最小增幅
if (!priceIncrease && baseInfo.type == 3) {
return { errMsg: '请填写出价最小增幅' }
}
if ((priceIncrease < 0 || !/^\d+$/.test(priceIncrease)) && baseInfo.type == 3) {
return { errMsg: '出价最小增幅格式输入有误!' }
}
form.auctionDTO.priceIncrease = priceIncrease
if (!endTime && baseInfo.type == 3) {
return { errMsg: '请填写拍卖结束时间' }
}
form.auctionDTO.endTime = endTime
// 积分库存
// if (!stock && baseInfo.type == 4) {
// return { errMsg: '请填写库存' }
// }
// form.pointsExchangeDTO.stock = stock
// // 积分数量
// if (!pnum && baseInfo.type == 4) {
// return { errMsg: '请填写积分数量' }
// }
form.pointsExchangeDTO.pnum = pnum
form.traceabilityNumber = traceabilityNumber
form.delayDelivery = delayDelivery == true ? '1' : '0'
return { errMsg, form }
......@@ -721,13 +460,14 @@ export default {
if (form.type == 6) {
// form.commodityPass = 0
form.skuList.forEach(item => {
item.originalPrice = form.nftdto.price
item.coinName = form.nftdto.tokenId
item.originalPrice = this.form.saleInfo.originalPrice
item.coinName = this.form.baseInfo.coinName
item.republish = false
item.propertyList = [{ propKey: '规格', propVal: form.name }]
item.stock = form.nftdto.number
item.image = form.thumb
item.nftSalesType = ''
item.nftSalesType = this.form.saleInfo.originalPrice
item.commodityPassId = this.commodityPassId
item.stock = item.nftSalesType == 1 ? this.availableNumber : this.form.saleInfo.stock
})
}
}
......@@ -737,21 +477,22 @@ export default {
// console.log('form', form)
let apiName = this.isAdd ? 'addGood' : this.isAgain ? 'republishGood' : 'updateGood'
let title = this.isAdd ? '添加成功!' : this.isAgain ? '重新发布成功!' : '编辑成功!'
this.submitLoading = true
this.api({
apiName,
postdata: form,
success: (res) => {
// 关闭当前标签页
let route = this.$route
let toRouteName = 'product_list'
this.closeTag({ route, toRouteName })
this.$Notice.success({ title })
},
complete: () => {
this.submitLoading = false
}
})
console.log('form', form)
// this.submitLoading = true
// this.api({
// apiName,
// postdata: form,
// success: (res) => {
// // 关闭当前标签页
// let route = this.$route
// let toRouteName = 'product_list'
// this.closeTag({ route, toRouteName })
// this.$Notice.success({ title })
// },
// complete: () => {
// this.submitLoading = false
// }
// })
}
},
......
......@@ -17,7 +17,7 @@
<Radio :label="2" style="width:200px" :disabled="isDetail || isEdit">使用权销售</Radio>
</RadioGroup>
</div>
<div class="item">
<div class="item" v-if="data.nftSalesType==2">
<label class="label">拷贝数量:</label>
<Input v-model="data.stock" :readonly='isDetail || isEdit' style="width: 400px;">
</Input>
......
......@@ -113,8 +113,7 @@ export default {
}
},
{ title: '操作',
key: 'goodsId',
width: 150,
width: 200,
align: 'center',
fixed: 'right',
render: (h, params) => {
......@@ -125,6 +124,9 @@ export default {
type: 'primary',
size: 'small'
},
style: {
margin: '5px'
},
on: {
click: this.handleRecords(params.row)
}
......@@ -140,6 +142,11 @@ export default {
},
on: {
click: this.handleAdd(params.row)
},
style: {
margin: '5px',
// display: this.isBrand ? 'inline-block' : 'none'
display: params.row.status === 0 ? 'inline-block' : 'none'
}
},
'发布商品'
......@@ -209,7 +216,7 @@ export default {
},
handleAdd (row) {
return () => {
let query = { labelName: row.labelName }
let query = { labelName: row.labelName, commodityPassId: row.commodityPassId, availableNumber: row.availableNumber }
this.$router.push({ name: 'commodity_add_good', query })
}
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment