Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
飞
飞鹤小程序
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
FH
飞鹤小程序
Commits
f1898bc4
Commit
f1898bc4
authored
Nov 03, 2025
by
spc
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'dev' of
http://gitlab.dui88.com/fh/20250528_FHQ1
into dev
parents
df94ad46
af03bde0
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
108 additions
and
53 deletions
+108
-53
.DS_Store
.DS_Store
+0
-0
SeckillSection.less
components/SeckillSection.less
+53
-6
SeckillSection.vue
components/SeckillSection.vue
+55
-47
No files found.
.DS_Store
View file @
f1898bc4
No preview for this file type
components/SeckillSection.less
View file @
f1898bc4
...
...
@@ -174,14 +174,14 @@
border-radius: 4rpx;
text-align: center;
line-height: 36rpx;
font-size:
16
rpx;
font-weight:
bold
;
font-size:
24
rpx;
font-weight:
400
;
}
.countdown_colon {
// 颜色通过内联样式动态设置
font-size:
16
rpx;
font-weight:
bold
;
font-size:
24
rpx;
font-weight:
400
;
margin: 0 2rpx;
}
}
...
...
@@ -496,6 +496,53 @@
justify-content: space-between;
padding: 40rpx 34rpx;
// 正在秒杀状态布局
.single_session_content_ongoing {
display: flex;
align-items: center;
justify-content: space-between;
width: 100%;
}
// 未开始/已结束状态布局 - 时间在前,状态在后,无间距
.single_session_content_other {
display: flex;
align-items: center;
justify-content: flex-start;
width: 100%;
gap: 0;
.tab_time_info {
margin: 0;
padding: 0;
display: flex;
align-items: center;
.tab_time_text {
&.start_time_text {
font-size: 28rpx;
font-weight: 400;
// 颜色通过内联样式动态设置
}
}
}
.session_status_tag {
margin: 0;
padding: 0;
margin-left: 0;
.status_text {
&.upcoming_text,
&.ended_text {
// 颜色通过内联样式动态设置
font-weight: 400;
font-size: 28rpx;
}
}
}
}
.session_status_tag {
&.ongoing {
.status_text {
...
...
@@ -572,8 +619,8 @@
.countdown_colon {
// 颜色通过内联样式动态设置
font-size: 2
0
rpx;
font-weight:
bold
;
font-size: 2
4
rpx;
font-weight:
400
;
margin: 0 4rpx;
}
}
...
...
components/SeckillSection.vue
View file @
f1898bc4
...
...
@@ -41,17 +41,17 @@
</view>
</view>
<view
class=
"session_status_tag ongoing"
>
<text
class=
"status_text"
:style=
"
{ color:
getColor('ongoingS
tatusTextColor')[itemIndex] }">正在秒杀
</text>
<text
class=
"status_text"
:style=
"
{ color:
index === currentSessionIndex ? getColor('ongoingStatusTextColor')[itemIndex] : getColor('s
tatusTextColor')[itemIndex] }">正在秒杀
</text>
</view>
</view>
<!-- 即将开始/已过期状态:开始时间在上,状态文案在下 -->
<view
v-else
class=
"tab_content_other"
>
<view
class=
"tab_time_info"
>
<text
class=
"tab_time_text start_time_text"
:style=
"
{ color: getColor('statusTextColor')[itemIndex] }">
{{
getStartTime
(
session
)
}}
</text>
<text
class=
"tab_time_text start_time_text"
:style=
"
{ color:
index === currentSessionIndex ? getColor('ongoingStatusTextColor')[itemIndex] :
getColor('statusTextColor')[itemIndex] }">
{{
getStartTime
(
session
)
}}
</text>
</view>
<view
class=
"session_status_tag"
:class=
"session.status"
>
<text
v-if=
"session.status === 'upcoming'"
class=
"status_text upcoming_text"
:style=
"
{ color: getColor('statusTextColor')[itemIndex] }">即将开始
</text>
<text
v-else
class=
"status_text ended_text"
:style=
"
{ color: getColor('statusTextColor')[itemIndex] }">已结束
</text>
<text
v-if=
"session.status === 'upcoming'"
class=
"status_text upcoming_text"
:style=
"
{ color:
index === currentSessionIndex ? getColor('ongoingStatusTextColor')[itemIndex] :
getColor('statusTextColor')[itemIndex] }">即将开始
</text>
<text
v-else
class=
"status_text ended_text"
:style=
"
{ color:
index === currentSessionIndex ? getColor('ongoingStatusTextColor')[itemIndex] :
getColor('statusTextColor')[itemIndex] }">已结束
</text>
</view>
</view>
</view>
...
...
@@ -83,17 +83,17 @@
</view>
</view>
<view
class=
"session_status_tag ongoing"
>
<text
class=
"status_text"
:style=
"
{ color:
getColor('ongoingS
tatusTextColor')[itemIndex] }">正在秒杀
</text>
<text
class=
"status_text"
:style=
"
{ color:
index === currentSessionIndex ? getColor('ongoingStatusTextColor')[itemIndex] : getColor('s
tatusTextColor')[itemIndex] }">正在秒杀
</text>
</view>
</view>
<!-- 即将开始/已过期状态:开始时间在上,状态文案在下 -->
<view
v-else
class=
"tab_content_other"
>
<view
class=
"tab_time_info"
>
<text
class=
"tab_time_text start_time_text"
:style=
"
{ color: getColor('statusTextColor')[itemIndex] }">
{{
getStartTime
(
session
)
}}
</text>
<text
class=
"tab_time_text start_time_text"
:style=
"
{ color:
index === currentSessionIndex ? getColor('ongoingStatusTextColor')[itemIndex] :
getColor('statusTextColor')[itemIndex] }">
{{
getStartTime
(
session
)
}}
</text>
</view>
<view
class=
"session_status_tag"
:class=
"session.status"
>
<text
v-if=
"session.status === 'upcoming'"
class=
"status_text upcoming_text"
:style=
"
{ color: getColor('statusTextColor')[itemIndex] }">即将开始
</text>
<text
v-else
class=
"status_text ended_text"
:style=
"
{ color: getColor('statusTextColor')[itemIndex] }">已结束
</text>
<text
v-if=
"session.status === 'upcoming'"
class=
"status_text upcoming_text"
:style=
"
{ color:
index === currentSessionIndex ? getColor('ongoingStatusTextColor')[itemIndex] :
getColor('statusTextColor')[itemIndex] }">即将开始
</text>
<text
v-else
class=
"status_text ended_text"
:style=
"
{ color:
index === currentSessionIndex ? getColor('ongoingStatusTextColor')[itemIndex] :
getColor('statusTextColor')[itemIndex] }">已结束
</text>
</view>
</view>
</view>
...
...
@@ -102,13 +102,12 @@
<!-- 单场次状态显示 -->
<view
class=
"single_session_status"
v-else-if=
"creditsSaleData.sessions && creditsSaleData.sessions.length === 1"
>
<view
v-if=
"creditsSaleData.sessions[0].status === 'ongoing'"
class=
"single_session_content_ongoing"
>
<view
class=
"session_status_tag"
:class=
"creditsSaleData.sessions[0].status"
>
<text
v-if=
"creditsSaleData.sessions[0].status === 'ongoing'"
class=
"status_text"
:style=
"
{ color: getColor('ongoingStatusTextColor')[itemIndex] }">正在秒杀
</text>
<text
v-else-if=
"creditsSaleData.sessions[0].status === 'upcoming'"
class=
"status_text upcoming_text"
:style=
"
{ color: getColor('statusTextColor')[itemIndex] }">即将开始
</text>
<text
v-else
class=
"status_text ended_text"
:style=
"
{ color: getColor('statusTextColor')[itemIndex] }">已结束
</text>
<text
class=
"status_text"
:style=
"
{ color: getColor('ongoingStatusTextColor')[itemIndex] }">正在秒杀
</text>
</view>
<view
class=
"tab_time_info"
>
<view
v-if=
"creditsSaleData.sessions[0].status === 'ongoing'"
class=
"tab_time_text countdown_display"
>
<view
class=
"tab_time_text countdown_display"
>
<text
class=
"countdown_label"
:style=
"
{ color: getColor('countdownColor')[itemIndex] }">倒计时
</text>
<view
class=
"countdown_numbers"
>
<view
v-for=
"(timeUnit, index) in getCountdownUnits(creditsSaleData.sessions[0].countdown)"
...
...
@@ -119,7 +118,16 @@
</view>
</view>
</view>
<text
v-else
class=
"tab_time_text start_time_text"
:style=
"
{ color: getColor('statusTextColor')[itemIndex] }">
{{
getStartTime
(
creditsSaleData
.
sessions
[
0
])
}}
</text>
</view>
</view>
<view
v-else
class=
"single_session_content_other"
>
<view
class=
"tab_time_info"
>
<text
class=
"tab_time_text start_time_text"
:style=
"
{ color: getColor('ongoingStatusTextColor')[itemIndex] }">
{{
getStartTime
(
creditsSaleData
.
sessions
[
0
])
}}
</text>
</view>
<view
class=
"session_status_tag"
:class=
"creditsSaleData.sessions[0].status"
>
<text
v-if=
"creditsSaleData.sessions[0].status === 'upcoming'"
class=
"status_text upcoming_text"
:style=
"
{ color: getColor('ongoingStatusTextColor')[itemIndex] }">即将开始
</text>
<text
v-else
class=
"status_text ended_text"
:style=
"
{ color: getColor('ongoingStatusTextColor')[itemIndex] }">已结束
</text>
</view>
</view>
</view>
...
...
@@ -221,7 +229,7 @@ const getColor = (type) => {
colors
=
[
'#B27C1E'
,
'#578EC4'
,
'#7556A8'
,
'#CEA46C'
,
'#E7CCA4'
];
break
;
case
'ongoingStatusTextColor'
:
//
正在秒杀状态文字颜色
//
被选中的tab的文字颜色(status_text和tab_time_text)
colors
=
[
'#1c1c1c'
,
'#1c1c1c'
,
'#1c1c1c'
,
'#1c1c1c'
,
'#FFF0DF'
];
break
;
case
'buttonGradientColor'
:
...
...
@@ -333,7 +341,7 @@ const getGoodButtonInfo = (good, session) => {
// 未开始场次
if
(
status
===
'upcoming'
)
{
return
{
text
:
'
即将
开始'
,
disabled
:
true
};
return
{
text
:
'
未
开始'
,
disabled
:
true
};
}
// 已结束场次
...
...
@@ -703,19 +711,19 @@ const generateTestSeckillData = () => {
// 第一场:已结束(3小时前开始,2小时前结束)
const
session1Start
=
baseTime
-
3
*
60
*
60
*
1000
;
// 3小时前
const
session1End
=
baseTime
-
2
*
60
*
60
*
1000
;
// 2小时前
const
session1End
=
baseTime
-
1
*
60
*
60
*
1000
;
// 2小时前
// 第二场:正在秒杀(30分钟前开始,30分钟后结束)
const
session2Start
=
baseTime
-
30
*
60
*
1000
;
// 30分钟前
const
session2End
=
baseTime
-
30
*
60
*
1000
;
// 30分钟后
const
session2End
=
baseTime
+
30
*
60
*
1000
;
// 30分钟后
// 第三场:即将开始(1小时后开始,2小时后结束)
const
session3Start
=
baseTime
-
1
*
60
*
60
*
1000
;
// 1小时后
const
session3End
=
baseTime
-
2
*
60
*
60
*
1000
;
// 2小时后
const
session3Start
=
baseTime
+
1
*
60
*
60
*
1000
;
// 1小时后
const
session3End
=
baseTime
+
2
*
60
*
60
*
1000
;
// 2小时后
// 第四场:即将开始(2小时后开始,3小时后结束)
const
session4Start
=
baseTime
-
2
*
60
*
60
*
1000
;
// 2小时后
const
session4End
=
baseTime
-
3
*
60
*
60
*
1000
;
// 3小时后
const
session4Start
=
baseTime
+
2
*
60
*
60
*
1000
;
// 2小时后
const
session4End
=
baseTime
+
3
*
60
*
60
*
1000
;
// 3小时后
return
{
"code"
:
"000000"
,
...
...
@@ -741,22 +749,22 @@ const generateTestSeckillData = () => {
"priceSale"
:
"200.00"
,
"stock"
:
10
},
{
"button"
:
{
"key"
:
1
,
"text"
:
"立即抢购"
},
"credits"
:
150
,
"creditsType"
:
"CREDITS"
,
"creditsTypeName"
:
"积分"
,
"goods"
:
{
"id"
:
102
,
"goodsName"
:
"测试商品B - 正在进行中"
,
"goodsImage"
:
[
"https://via.placeholder.com/150/4CAF50/FFFFFF?text=GoodB"
],
"credits"
:
"150"
,
"priceSale"
:
"300.00"
,
"stock"
:
5
},
"priceSale"
:
"300.00"
,
"stock"
:
5
}
//
{
//
"button": {"key": 1, "text": "立即抢购"},
//
"credits": 150,
//
"creditsType": "CREDITS",
//
"creditsTypeName": "积分",
//
"goods": {
//
"id": 102,
//
"goodsName": "测试商品B - 正在进行中",
//
"goodsImage": ["https://via.placeholder.com/150/4CAF50/FFFFFF?text=GoodB"],
//
"credits": "150",
//
"priceSale": "300.00",
//
"stock": 5
//
},
//
"priceSale": "300.00",
//
"stock": 5
//
}
],
"sessionKey"
:
"session_1_ongoing"
,
"start"
:
session1Start
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment