From 392a8e29524307277d77a0ae8d0984a4f5d3efa6 Mon Sep 17 00:00:00 2001 From: ZF sun <34314687@qq.com> Date: Wed, 14 Jan 2026 15:14:02 +0800 Subject: [PATCH] =?UTF-8?q?revert(=E8=A7=86=E9=A2=91=E5=8F=B7=E7=BB=84?= =?UTF-8?q?=E4=BB=B6):=20=E7=B2=BE=E7=AE=80=E4=BB=A3=E7=A0=81=EF=BC=8C?= =?UTF-8?q?=E8=B0=83=E6=95=B4=E6=A0=B7=E5=BC=8F=E4=BB=A5=E5=92=8C=E5=90=8E?= =?UTF-8?q?=E5=8F=B0=E8=AE=BE=E8=AE=A1=E7=BB=9F=E4=B8=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components-diy/diy-article.vue | 2 +- components-diy/diy-channel-list.vue | 334 ++++++------------ components-diy/diy-channel-video.vue | 81 +---- components-diy/js/wechat-channel.js | 18 +- pages_tool/contact/contact.vue | 2 +- .../uni-datetime-picker/time-picker.vue | 2 +- .../uni-datetime-picker.vue | 4 +- .../components/uni-popup/uni-popup.vue | 2 +- 8 files changed, 134 insertions(+), 311 deletions(-) diff --git a/components-diy/diy-article.vue b/components-diy/diy-article.vue index 5539a1b..2f4097a 100644 --- a/components-diy/diy-article.vue +++ b/components-diy/diy-article.vue @@ -3,7 +3,7 @@ - diff --git a/components-diy/diy-channel-list.vue b/components-diy/diy-channel-list.vue index de6746e..f114b2c 100644 --- a/components-diy/diy-channel-list.vue +++ b/components-diy/diy-channel-list.vue @@ -6,13 +6,13 @@ :duration="value.carousel.duration || 500" :circular="value.carousel.circular || false" :style="swiperHeight" class="channel-swiper"> - - - - + + + + @@ -22,9 +22,9 @@ - @@ -36,9 +36,9 @@ - @@ -190,6 +190,25 @@ export default { } return slides; + }, + /** + * 视频封面样式 + * 根据aspectRatio属性动态计算封面样式 + * @returns {Object} 封面样式对象 + */ + computedCoverStyle() { + const aspectRatio = this.value?.aspectRatio || '16:9'; + let paddingTop = '56.25%'; // 默认 16:9 比例 + + if (aspectRatio === '3:4') { + paddingTop = '133.33%'; // 3:4 比例 + } + + return { + width: '100%', + height: '0', + paddingTop: paddingTop + }; } }, methods: { @@ -259,69 +278,12 @@ export default { /** * 列表布局样式 - * 支持 2 列和 3 列布局 */ .channel-list { - display: flex; - flex-wrap: wrap; - gap: 16rpx; - padding: 32rpx; - box-sizing: border-box; - - .channel-item { - // 默认 3 列布局 - flex: 0 0 calc(33.3333333% - 10rpx); - box-sizing: border-box; - - &:nth-child(3n) { - margin-right: 0; - } - } - - // 2 列布局 - &.row1-of2 { - .channel-item { - flex: 0 0 calc(50% - 8rpx); - - &:nth-child(3n) { - margin-right: 16rpx; - } - - &:nth-child(2n) { - margin-right: 0; - } - } - } - - // 4 列布局 - &.row1-of4 { - .channel-item { - flex: 0 0 calc(25% - 12rpx); - - &:nth-child(3n) { - margin-right: 16rpx; - } - - &:nth-child(4n) { - margin-right: 0; - } - } - } - - // 1 列布局 - &.row1-of1 { - .channel-item { - flex: 0 0 100%; - - &:nth-child(3n) { - margin-right: 16rpx; - } - - &:nth-child(1n) { - margin-right: 0; - } - } - } + display: grid; + grid-template-columns: repeat(var(--row-count, 2), 1fr); + gap: 8px; + padding: 16px 16px 0px; } /** @@ -333,15 +295,17 @@ export default { box-sizing: border-box; .uni-scroll-view-content { - display: flex; - flex-wrap: wrap; + display: grid; + grid-template-columns: repeat(var(--row-count, 2), 1fr); gap: 16rpx; } // 单滑动模式 &.singleSlide { .uni-scroll-view-content { + display: flex; flex-wrap: nowrap; + gap: 16rpx; } .channel-nav-item { @@ -354,56 +318,33 @@ export default { display: flex; flex-direction: column; box-sizing: border-box; - // 默认 3 列布局 - flex: 0 0 calc(33.3333333% - 10rpx); + } - &:nth-child(3n) { - margin-right: 0; + // 1 列布局 + &.row1-of1 { + .uni-scroll-view-content { + grid-template-columns: 1fr; } } // 2 列布局 &.row1-of2 { - .channel-nav-item { - flex: 0 0 calc(50% - 8rpx); + .uni-scroll-view-content { + grid-template-columns: repeat(2, 1fr); + } + } - &:nth-child(3n) { - margin-right: 16rpx; - } - - &:nth-child(2n) { - margin-right: 0; - } + // 3 列布局 + &.row1-of3 { + .uni-scroll-view-content { + grid-template-columns: repeat(3, 1fr); } } // 4 列布局 &.row1-of4 { - .channel-nav-item { - flex: 0 0 calc(25% - 12rpx); - - &:nth-child(3n) { - margin-right: 16rpx; - } - - &:nth-child(4n) { - margin-right: 0; - } - } - } - - // 1 列布局 - &.row1-of1 { - .channel-nav-item { - flex: 0 0 100%; - - &:nth-child(3n) { - margin-right: 16rpx; - } - - &:nth-child(1n) { - margin-right: 0; - } + .uni-scroll-view-content { + grid-template-columns: repeat(4, 1fr); } } } @@ -426,65 +367,36 @@ export default { box-sizing: border-box; .swiper-slide-content { - display: flex; - flex-wrap: wrap; + display: grid; + grid-template-columns: repeat(var(--row-count, 2), 1fr); gap: 16rpx; padding: 16rpx; box-sizing: border-box; .channel-item { - // 默认 3 列布局 - flex: 0 0 calc(33.3333333% - 10rpx); + display: flex; + flex-direction: column; box-sizing: border-box; - - &:nth-child(3n) { - margin-right: 0; - } - } - - // 轮播模式下的 2 列布局 - &.row1-of2 { - .channel-item { - flex: 0 0 calc(50% - 8rpx); - - &:nth-child(3n) { - margin-right: 16rpx; - } - - &:nth-child(2n) { - margin-right: 0; - } - } - } - - // 轮播模式下的 4 列布局 - &.row1-of4 { - .channel-item { - flex: 0 0 calc(25% - 12rpx); - - &:nth-child(3n) { - margin-right: 16rpx; - } - - &:nth-child(4n) { - margin-right: 0; - } - } } // 轮播模式下的 1 列布局 &.row1-of1 { - .channel-item { - flex: 0 0 100%; + grid-template-columns: 1fr; + } - &:nth-child(3n) { - margin-right: 16rpx; - } + // 轮播模式下的 2 列布局 + &.row1-of2 { + grid-template-columns: repeat(2, 1fr); + } - &:nth-child(1n) { - margin-right: 0; - } - } + // 轮播模式下的 3 列布局 + &.row1-of3 { + grid-template-columns: repeat(3, 1fr); + } + + // 轮播模式下的 4 列布局 + &.row1-of4 { + grid-template-columns: repeat(4, 1fr); } } } @@ -500,76 +412,54 @@ export default { .channel-swiper .swiper-slide-content { gap: 12rpx; padding: 12rpx; - - .channel-item, - .channel-nav-item { - // 默认 3 列布局 - flex: 0 0 calc(33.3333333% - 8rpx); - - &:nth-child(3n) { - margin-right: 0; - } - } - - // 小屏幕上的 2 列布局 - &.row1-of2 { - - .channel-item, - .channel-nav-item { - flex: 0 0 calc(50% - 6rpx); - - &:nth-child(3n) { - margin-right: 12rpx; - } - - &:nth-child(2n) { - margin-right: 0; - } - } - } - - // 小屏幕上的 4 列布局 - &.row1-of4 { - - .channel-item, - .channel-nav-item { - flex: 0 0 calc(25% - 9rpx); - - &:nth-child(3n) { - margin-right: 12rpx; - } - - &:nth-child(4n) { - margin-right: 0; - } - } - } - - // 小屏幕上的 1 列布局 - &.row1-of1 { - - .channel-item, - .channel-nav-item { - flex: 0 0 100%; - - &:nth-child(3n) { - margin-right: 12rpx; - } - - &:nth-child(1n) { - margin-right: 0; - } - } - } } // 小屏幕上的单滑动模式 .channel-nav { &.singleSlide { + .uni-scroll-view-content { + gap: 12rpx; + } + .channel-nav-item { width: 240rpx; } } } } + +/** + * 视频比例样式调整 + * 根据不同的视频比例调整布局 + */ + +// // 3:4 比例的视频卡片样式 +// .channel-video.ratio-3-4 { +// // 调整视频卡片的整体高度 +// /deep/ .video-cover-wrap { +// padding-top: 133.33%; // 3:4 比例 +// } + +// // 列表模式下的3:4比例调整 +// &.list-mode { +// /deep/ .video-cover-wrap { +// padding-top: 133.33%; // 3:4 比例 +// } +// } +// } + +// // 16:9 比例的视频卡片样式(默认) +// .channel-video.ratio-16-9 { +// // 保持默认的16:9比例 +// /deep/ .video-cover-wrap { +// padding-top: 56.25%; // 16:9 比例 +// } + +// // 列表模式下的16:9比例保持默认 +// &.list-mode { +// /deep/ .video-cover-wrap { +// padding-top: 56.25%; // 16:9 比例 +// } +// } +// } \ No newline at end of file diff --git a/components-diy/diy-channel-video.vue b/components-diy/diy-channel-video.vue index 1b8f143..cb1de1f 100644 --- a/components-diy/diy-channel-video.vue +++ b/components-diy/diy-channel-video.vue @@ -2,7 +2,7 @@ - + @@ -23,11 +23,10 @@ - + - - - + + {{ value.viewCount }}次观看 @@ -81,15 +80,6 @@ export default { type: Boolean, default: false }, - /** - * 视频高度(仅适用于嵌入式播放) - * @type {number} - * @default 220 - */ - videoHeight: { - type: Number, - default: 220 - }, /** * 标题显示行数 * @type {number} @@ -104,17 +94,6 @@ export default { type: Boolean, default: true }, - /** - * 视频比例 - * @type {string} - * @default '16:9' - * @options '16:9', '3:4' - */ - aspectRatio: { - type: String, - default: '16:9', - validator: (value) => ['16:9', '3:4'].includes(value) - }, /** * 视频封面图样式 * 采用 16:9 比例的响应式高度 @@ -159,32 +138,6 @@ export default { return enableEmbedMode; // #endif return false - }, - /** - * 播放按钮图标 - * @returns {string} - */ - playIcon() { - // #ifdef MP-WEIXIN - return wechatChannelConfig.icon.playIcon - // #endif - return '' - }, - /** - * 计算视频封面类名 - * 根据环境和宽高比生成适当的 CSS 类 - * @returns {Array} - */ - videoCoverClass() { - const classes = []; - // #ifdef MP-WEIXIN - classes.push('mp-weixin'); - // #endif - // #ifndef MP-WEIXIN - classes.push('h5'); - // #endif - classes.push(`ratio-${this.aspectRatio.replace(':', '-')}`); - return classes; } }, methods: { @@ -202,31 +155,6 @@ export default {