From 63116e19824ceabc68a72f10b134d815f462e711 Mon Sep 17 00:00:00 2001
From: peng <peng.com>
Date: 星期四, 23 十月 2025 20:21:49 +0800
Subject: [PATCH] 抽奖页面调整
---
pages/video/video-edit.vue | 61 +++++++++++++++++-------------
1 files changed, 35 insertions(+), 26 deletions(-)
diff --git a/pages/video/video-edit.vue b/pages/video/video-edit.vue
index 1b51fe7..8106225 100644
--- a/pages/video/video-edit.vue
+++ b/pages/video/video-edit.vue
@@ -1,5 +1,5 @@
<template>
- <view class="publish-container">
+ <view class="publish-container" :style="{height: windowHeight - marginBottom - 50 + 'px'}">
<u-popup v-model="fileTypeShow" mode="bottom" round="20" height="35%">
<view style="width: 100%;height:100%;display: flex;flex-direction: column;justify-content: center;align-items: center;">
<view>璇烽�夋嫨瑕佸彂甯冪殑绫诲瀷</view>
@@ -75,7 +75,7 @@
@input="searchTags"
></u-input>
<!-- 宸查�夎瘽棰樺睍绀� -->
- <view class="tags-display" v-if="formData.tags.length > 0">
+ <view class="tags-display" v-show="formData.tags.length > 0">
<my-tag
v-for="(tag, index) in formData.tags"
:key="index"
@@ -85,12 +85,12 @@
@close="removeTag(index)"
/>
</view>
- <text class="tags-count" v-if="formData.tags.length > 0">
+ <text class="tags-count" v-show="formData.tags.length > 0">
宸查�� {{ formData.tags.length }}/5
</text>
</view>
<!-- 璇濋鎺ㄨ崘 -->
- <view class="hot-topics" v-if="showTopicRecommendations">
+ <view class="hot-topics" v-show="showTopicRecommendations">
<text class="section-title">{{ tagInput ? '鎺ㄨ崘璇濋' : '鐑棬璇濋' }}</text>
<view class="topic-list">
<my-tag
@@ -125,14 +125,14 @@
></u-icon>
</u-input>
<view class="goods-preview" @click="chooseGoods" v-for="goods in selectedGoodsList" :key="goods.id">
- <image :src="goods.thumbnail" class="goods-image"></image>
+ <image :src="endpoint + '/' + goods.thumbnail" class="goods-image"></image>
<view class="goods-info">
<text class="goods-name">{{ goods.goodsName }}</text>
<view style="display: flex;">
<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>
@@ -183,7 +183,7 @@
:key="goods.id"
@click="selectGoods(goods, index)"
>
- <image :src="goods.thumbnail" class="goods-image"></image>
+ <image :src="endpoint + '/' + goods.thumbnail" class="goods-image"></image>
<view class="goods-info">
<text class="goods-name">{{ goods.goodsName }}</text>
<text class="goods-price">楼{{ goods.price }}</text>
@@ -206,7 +206,7 @@
<script>
import '@/components/uview-components/uview-ui';
-import MyTag from '@/components/my-tag.vue'
+import MyTag from '@/pages/video/my-tag.vue'
import { getSTSToken, getFilePreviewUrl } from "@/api/common.js";
import { updateVideo, getVideoDetail } from "@/api/video.js";
@@ -240,7 +240,7 @@
goodsQuery: {
keyword: '',
searchFromSelfStore: false, // 鏄惁鏄煡璇㈣嚜瀹跺簵閾哄晢鍝�
- pageNumber: 1,
+ pageNumber: 0,
pageSize: 5
},
formData: {
@@ -250,7 +250,6 @@
videoFileKey: '',
videoDuration: 0,
videoFit: 'cover',
- goodsId: '',
videoContentType: 'video',
videoImgs: [],
tags: [],
@@ -267,7 +266,9 @@
]
},
screenWidth: 375,
- gap: 10 // 鍥剧墖闂磋窛
+ gap: 10, // 鍥剧墖闂磋窛
+ windowHeight: 0,
+ marginBottom: 0
};
},
computed: {
@@ -291,7 +292,9 @@
// 鑾峰彇灞忓箷瀹藉害
const systemInfo = uni.getSystemInfoSync()
this.screenWidth = systemInfo.windowWidth
- this.goodsQuery.pageNumber = 1
+ this.windowHeight = systemInfo.windowHeight
+ this.marginBottom = uni.getSystemInfoSync().safeAreaInsets.bottom
+ this.goodsQuery.pageNumber = 0
this.goodsQuery.pageSize = 10
this.getVideoGoodsByEs()
@@ -306,7 +309,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 +319,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);
})
@@ -331,7 +337,7 @@
},
// 澶勭悊鍟嗗搧鎼滅储鍊�
handlerGoodsSearch() {
- this.goodsQuery.pageNumber = 1
+ this.goodsQuery.pageNumber = 0
this.goodsQuery.pageSize = 10
this.getVideoGoodsByEs()
},
@@ -339,7 +345,7 @@
async getVideoGoodsByEs() {
getVideoGoodsList(this.goodsQuery).then(res => {
- if(this.goodsQuery.pageNumber === 1) {
+ if(this.goodsQuery.pageNumber === 0) {
this.goodsList = res.data.data
} else {
this.goodsList = [
@@ -565,10 +571,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,8 +665,11 @@
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}});
- updateVideo(this.formData).then(res => {
+ this.formData["goodsList"] = this.selectedGoodsList.map(item => {return {goodsId: item.goodsId, goodsSkuId: item.id, goodsNum: item.goodsNum}});
+ if (this.formData.videoContentType === 'img') {
+ this.formData.videoImgs = JSON.parse(this.formData.videoImgs)
+ }
+ updateVideo(this.formData).then(res => {
uni.showToast({
title: '瑙嗛宸叉彁浜ゅ鏍竳',
icon: 'success'
@@ -673,10 +681,10 @@
this.tagInput = '';
this.recommendedTags = [];
- // TODO 鍏堣烦棣栭〉,鍚庨潰璺虫垜鐨勮棰戦〉闈�
+ // 璺虫垜鐨勮棰戦〉闈�
setTimeout(() => {
- uni.switchTab({
- url: '/pages/tabbar/index/home'
+ uni.navigateBack({
+ delta: 1
});
}, 1500);
})
@@ -705,7 +713,6 @@
cover: '',
videoFit: 'cover',
videoDuration: 0,
- goodsId: '',
videoContentType: 'video',
videoImgs: [],
tags: [],
@@ -721,7 +728,7 @@
<style scoped>
.publish-container {
padding: 10px;
- padding-bottom: 120rpx;
+ overflow-y: scroll;
}
.upload-section {
@@ -837,6 +844,7 @@
flex-wrap: wrap;
margin-top: 15rpx;
line-height: 22px;
+ height: 80rpx;
}
.hot-topics {
@@ -844,8 +852,8 @@
flex-direction: column;
margin-top: 15rpx;
margin-bottom: 15rpx;
+ height: 46rpx;
}
-
.section-title {
font-size: 12px;
color: #999;
@@ -868,6 +876,7 @@
left: 20rpx;
right: 20rpx; */
margin-top: 40rpx;
+ margin-bottom: 150rpx;
}
.goods-picker {
--
Gitblit v1.8.0