Commit f1582a4a authored by 王伟's avatar 王伟

外部商品通证发布商品

parent 71400fd7
...@@ -154,44 +154,14 @@ export default { ...@@ -154,44 +154,14 @@ export default {
returnType: '', // 退货类型 returnType: '', // 退货类型
returnReason: '', // 退货理由 returnReason: '', // 退货理由
note: '', // 商品备注 note: '', // 商品备注
buyerDeposit: '', // 买家保证金
priceIncrease: '', // 出价最小增幅
endTime: '', // 结束时间
deposit: '', // 首付比例
depositType: '', // 首付比例类型
drawStartTime: '', // 预计提货开始时间
drawEndTime: '', // 预计提货结束时间
saleStartTime: '', // 预售开始时间
saleEndTime: '', // 预售结束时间
stock: '', // 积分库存
pnum: '', // 积分数量
traceabilityNumber: '', // 溯源编号 traceabilityNumber: '', // 溯源编号
delayDelivery: false, // 延迟提货 delayDelivery: false // 延迟提货
packageDTO: {
resource: [{ integralMerchantNameList: [], goodsId: '', skuId: '', number: '', specificationsList: [], actualNumber: '' }], // 打包资源
price: '', // 打包价格
stock: ''// 库存
},
nftdto: {
number: '', // 发行数量:只有商户选择“可拷贝”时,才会出现
price: '', // 商品价格
type: '', // NFT类型(1.单个,不可考贝 2.可拷贝)
tzType: '', // 1.内部发行 2.外部绑定
tokenId: '' // 绑定的外部通证id
}
}, },
skuNumber: '',
loading: true, loading: true,
expressList: [], expressList: [],
profitList: [], submitLoading: false,
integralMerchantNameList: [], commodityPassId: '',
specificationsList: [], availableNumber: ''
idx: '',
fixedProportion: '',
fixedAmount: '',
nftList: [],
submitLoading: false
} }
}, },
methods: { methods: {
...@@ -253,11 +223,8 @@ export default { ...@@ -253,11 +223,8 @@ export default {
returnReason, returnReason,
categoryName, categoryName,
categoryIds, categoryIds,
preSaleVO,
auctionVO, auctionVO,
commodityPass, commodityPass,
goodsPackageVO,
goodsNftVO,
nftFile nftFile
} = res.data } = res.data
...@@ -324,41 +291,6 @@ export default { ...@@ -324,41 +291,6 @@ export default {
this.form.deciptInfo.nftFile = '' this.form.deciptInfo.nftFile = ''
this.form.deciptInfo.defaultNftEnclosureList = [] 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: () => { complete: () => {
this.loading = false this.loading = false
...@@ -367,11 +299,14 @@ export default { ...@@ -367,11 +299,14 @@ export default {
}, },
initData () { initData () {
let routeName = this.$route.name 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.form.baseInfo.coinName = labelName
this.commodityPassId = commodityPassId
this.availableNumber = availableNumber
this.form.goodsId = goodsId this.form.goodsId = goodsId
this.routeName = routeName 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) this.requestGoodDetail(goodsId)
} else { } else {
this.loading = false this.loading = false
...@@ -393,7 +328,8 @@ export default { ...@@ -393,7 +328,8 @@ export default {
}], }],
republish: '', republish: '',
skuId: '', skuId: '',
stock: '' stock: '',
commodityPassId: ''
}], }],
packageDTO: {}, packageDTO: {},
nftdto: {} nftdto: {}
...@@ -408,22 +344,8 @@ export default { ...@@ -408,22 +344,8 @@ export default {
returnType, returnType,
returnReason, returnReason,
note, note,
deposit,
depositType,
buyerDeposit,
priceIncrease,
drawStartTime,
drawEndTime,
saleStartTime,
saleEndTime,
endTime,
stock,
pnum,
traceabilityNumber, traceabilityNumber,
delayDelivery, delayDelivery
nftdto,
// packagePrice
packageDTO
} = this.form } = this.form
form.goodsId = goodsId form.goodsId = goodsId
if (!baseInfo) { if (!baseInfo) {
...@@ -454,89 +376,19 @@ export default { ...@@ -454,89 +376,19 @@ export default {
} }
form = { ...form, ...baseInfo } form = { ...form, ...baseInfo }
// 销售信息 // 销售信息
if (baseInfo.type != 6 && baseInfo.type != 5) { if (!saleInfo.originalPrice) {
if ( return { errMsg: '请填写销售价格!' }
(!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 (baseInfo.type == 6 && saleInfo.sku.length != 0) { if (!saleInfo.weight) {
// console.log(11111, saleInfo.sku) return { errMsg: '请填写商品重量!' }
form.skuList = saleInfo.sku
} }
// form.skuList = skuList if (!saleInfo.nftSalesType) {
// console.log('form.skuList', form.skuList) return { errMsg: '请选择NFT销售方式!' }
}
if (!saleInfo.stock && saleInfo.nftSalesType == 2) {
return { errMsg: '请填写拷贝数量!' }
}
form.commodityPass = saleInfo.commodityPass
// 图文信息 // 图文信息
if (!deciptInfo) { if (!deciptInfo) {
return { errMsg: '请完善图文描述!' } return { errMsg: '请完善图文描述!' }
...@@ -574,53 +426,6 @@ export default { ...@@ -574,53 +426,6 @@ export default {
} else { } else {
form.nftFile = '' 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) { if (!returnType && returnType != 0) {
return { errMsg: '请选择退货类型' } return { errMsg: '请选择退货类型' }
...@@ -636,72 +441,6 @@ export default { ...@@ -636,72 +441,6 @@ export default {
return { errMsg: '请填写商品备注' } return { errMsg: '请填写商品备注' }
} }
form.note = note 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.traceabilityNumber = traceabilityNumber
form.delayDelivery = delayDelivery == true ? '1' : '0' form.delayDelivery = delayDelivery == true ? '1' : '0'
return { errMsg, form } return { errMsg, form }
...@@ -721,13 +460,14 @@ export default { ...@@ -721,13 +460,14 @@ export default {
if (form.type == 6) { if (form.type == 6) {
// form.commodityPass = 0 // form.commodityPass = 0
form.skuList.forEach(item => { form.skuList.forEach(item => {
item.originalPrice = form.nftdto.price item.originalPrice = this.form.saleInfo.originalPrice
item.coinName = form.nftdto.tokenId item.coinName = this.form.baseInfo.coinName
item.republish = false item.republish = false
item.propertyList = [{ propKey: '规格', propVal: form.name }] item.propertyList = [{ propKey: '规格', propVal: form.name }]
item.stock = form.nftdto.number
item.image = form.thumb 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 { ...@@ -737,21 +477,22 @@ export default {
// console.log('form', form) // console.log('form', form)
let apiName = this.isAdd ? 'addGood' : this.isAgain ? 'republishGood' : 'updateGood' let apiName = this.isAdd ? 'addGood' : this.isAgain ? 'republishGood' : 'updateGood'
let title = this.isAdd ? '添加成功!' : this.isAgain ? '重新发布成功!' : '编辑成功!' let title = this.isAdd ? '添加成功!' : this.isAgain ? '重新发布成功!' : '编辑成功!'
this.submitLoading = true console.log('form', form)
this.api({ // this.submitLoading = true
apiName, // this.api({
postdata: form, // apiName,
success: (res) => { // postdata: form,
// 关闭当前标签页 // success: (res) => {
let route = this.$route // // 关闭当前标签页
let toRouteName = 'product_list' // let route = this.$route
this.closeTag({ route, toRouteName }) // let toRouteName = 'product_list'
this.$Notice.success({ title }) // this.closeTag({ route, toRouteName })
}, // this.$Notice.success({ title })
complete: () => { // },
this.submitLoading = false // complete: () => {
} // this.submitLoading = false
}) // }
// })
} }
}, },
......
...@@ -17,7 +17,7 @@ ...@@ -17,7 +17,7 @@
<Radio :label="2" style="width:200px" :disabled="isDetail || isEdit">使用权销售</Radio> <Radio :label="2" style="width:200px" :disabled="isDetail || isEdit">使用权销售</Radio>
</RadioGroup> </RadioGroup>
</div> </div>
<div class="item"> <div class="item" v-if="data.nftSalesType==2">
<label class="label">拷贝数量:</label> <label class="label">拷贝数量:</label>
<Input v-model="data.stock" :readonly='isDetail || isEdit' style="width: 400px;"> <Input v-model="data.stock" :readonly='isDetail || isEdit' style="width: 400px;">
</Input> </Input>
......
...@@ -113,8 +113,7 @@ export default { ...@@ -113,8 +113,7 @@ export default {
} }
}, },
{ title: '操作', { title: '操作',
key: 'goodsId', width: 200,
width: 150,
align: 'center', align: 'center',
fixed: 'right', fixed: 'right',
render: (h, params) => { render: (h, params) => {
...@@ -125,6 +124,9 @@ export default { ...@@ -125,6 +124,9 @@ export default {
type: 'primary', type: 'primary',
size: 'small' size: 'small'
}, },
style: {
margin: '5px'
},
on: { on: {
click: this.handleRecords(params.row) click: this.handleRecords(params.row)
} }
...@@ -140,6 +142,11 @@ export default { ...@@ -140,6 +142,11 @@ export default {
}, },
on: { on: {
click: this.handleAdd(params.row) 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 { ...@@ -209,7 +216,7 @@ export default {
}, },
handleAdd (row) { handleAdd (row) {
return () => { 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 }) 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