From 2955ce47c5c5990081d877ec752ab28d616a766a Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期二, 24 六月 2025 20:05:16 +0800
Subject: [PATCH] 视频商品购买
---
pages/video/video-edit.vue | 16 ++++++++--------
pages/tabbar/video/video.vue | 11 ++++-------
pages/video/video-goods-detail.vue | 14 ++++++++++++--
3 files changed, 24 insertions(+), 17 deletions(-)
diff --git a/pages/tabbar/video/video.vue b/pages/tabbar/video/video.vue
index af7dfeb..619c135 100644
--- a/pages/tabbar/video/video.vue
+++ b/pages/tabbar/video/video.vue
@@ -132,7 +132,7 @@
<view class="goods-price" style="flex: 1;">楼{{ goods.price }}</view>
<view @click.stop="() => {}" style="flex: 1;display: flex;justify-content: center;align-items: center;">
<view style="width: 90rpx">鏁伴噺锛�</view>
- <uni-number-box v-model="goods.goodsNum" :min="0"/>
+ <uni-number-box v-model="goods.goodsNum" :min="1"/>
</view>
</view>
</view>
@@ -249,7 +249,6 @@
videoFileKey: '',
videoDuration: 0,
videoFit: 'cover',
- goodsId: '',
videoContentType: 'video',
videoImgs: [],
tags: [],
@@ -543,10 +542,9 @@
// 閫夋嫨鍟嗗搧
chooseGoods() {
if(this.selectedGoodsList.length > 0) {
- const selectedGoodsIds = new Set(this.selectedGoodsList.map(i => i.goodsId));
- console.log(selectedGoodsIds, "mimade");
+ const selectedGoodsSkuIds = new Set(this.selectedGoodsList.map(i => i.id));
this.goodsList?.forEach(goods => {
- this.$set(goods, 'selected', selectedGoodsIds.has(goods.goodsId));
+ this.$set(goods, 'selected', selectedGoodsSkuIds.has(goods.id));
});
}
this.showGoodsPicker = true;
@@ -638,7 +636,7 @@
if (valid && this.canPublish) {
this.loading = true;
this.formData.fileInfo = this.videoInfo;
- this.formData["goodsList"] = this.selectedGoodsList.map(item => {return {goodsId: item.goodsId, goodsNum: item.goodsNum}});
+ this.formData["goodsList"] = this.selectedGoodsList.map(item => {return {goodsId: item.goodsId, goodsSkuId: item.id, goodsNum: item.goodsNum}});
publish(this.formData).then(res => {
uni.showToast({
title: '瑙嗛宸叉彁浜ゅ鏍竳',
@@ -683,7 +681,6 @@
cover: '',
videoFit: 'cover',
videoDuration: 0,
- goodsId: '',
videoContentType: 'video',
videoImgs: [],
tags: [],
diff --git a/pages/video/video-edit.vue b/pages/video/video-edit.vue
index 1b51fe7..5813117 100644
--- a/pages/video/video-edit.vue
+++ b/pages/video/video-edit.vue
@@ -132,7 +132,7 @@
<view class="goods-price" style="flex: 1;">楼{{ goods.price }}</view>
<view @click.stop="() => {}" style="flex: 1;display: flex;justify-content: center;align-items: center;">
<view style="width: 90rpx">鏁伴噺锛�</view>
- <uni-number-box v-model="goods.goodsNum" :min="0"/>
+ <uni-number-box v-model="goods.goodsNum" :min="1"/>
</view>
</view>
</view>
@@ -250,7 +250,6 @@
videoFileKey: '',
videoDuration: 0,
videoFit: 'cover',
- goodsId: '',
videoContentType: 'video',
videoImgs: [],
tags: [],
@@ -306,7 +305,7 @@
getVideoDetail(id).then(res => {
this.videoInfo.cover = res.data.data.coverUrl
this.videoInfo.url = res.data.data.videoUrl
- this.formData.videoImgs = res.data.data.imgs
+ this.formData.videoImgs = res.data.data.videoImgs
this.formData.videoContentType = res.data.data.videoContentType
this.formData.cover = res.data.data.coverFileKey
this.formData.id = res.data.data.id
@@ -316,6 +315,9 @@
this.formData.videoDuration = res.data.data.videoDuration
this.selectedGoodsList = res.data.data.goodsList
this.formData.tags = res.data.data.tags
+ if (this.formData.videoContentType === 'img') {
+ this.videoPreviewImgs = res.data.data.imgs
+ }
this.showUploadProgress = false
console.log("瑙嗛璇︽儏", this.formData);
})
@@ -565,10 +567,9 @@
// 閫夋嫨鍟嗗搧
chooseGoods() {
if(this.selectedGoodsList.length > 0) {
- const selectedGoodsIds = new Set(this.selectedGoodsList.map(i => i.goodsId));
- console.log(selectedGoodsIds, "mimade");
+ const selectedGoodsSkuIds = new Set(this.selectedGoodsList.map(i => i.id));
this.goodsList?.forEach(goods => {
- this.$set(goods, 'selected', selectedGoodsIds.has(goods.goodsId));
+ this.$set(goods, 'selected', selectedGoodsSkuIds.has(goods.id));
});
}
this.showGoodsPicker = true;
@@ -660,7 +661,7 @@
if (valid && this.canPublish) {
this.loading = true;
this.formData.fileInfo = this.videoInfo;
- this.formData["goodsList"] = this.selectedGoodsList.map(item => {return {goodsId: item.goodsId, goodsNum: item.goodsNum}});
+ this.formData["goodsList"] = this.selectedGoodsList.map(item => {return {goodsId: item.goodsId, goodsSkuId: item.id, goodsNum: item.goodsNum}});
updateVideo(this.formData).then(res => {
uni.showToast({
title: '瑙嗛宸叉彁浜ゅ鏍竳',
@@ -705,7 +706,6 @@
cover: '',
videoFit: 'cover',
videoDuration: 0,
- goodsId: '',
videoContentType: 'video',
videoImgs: [],
tags: [],
diff --git a/pages/video/video-goods-detail.vue b/pages/video/video-goods-detail.vue
index 9d06578..a8fc8a1 100644
--- a/pages/video/video-goods-detail.vue
+++ b/pages/video/video-goods-detail.vue
@@ -29,7 +29,7 @@
<script>
import {getGoodsDetail} from "@/api/video.js"
-
+ import { buyBack } from "@/api/trade.js";
import '@/components/uview-components/uview-ui';
export default {
computed: {
@@ -61,7 +61,17 @@
},
// 鐢熸垚璁㈠崟-鏀粯
toPay() {
-
+ const buyList = this.goodsList.map(goods => {
+ return {
+ skuId: goods.id,
+ num: goods.goodsNum
+ }
+ })
+ buyBack(buyList).then(res => {
+ uni.navigateTo({
+ url: "/pages/order/fillorder?way=CART"
+ })
+ })
}
}
}
--
Gitblit v1.8.0