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
74eec807
Commit
74eec807
authored
Oct 30, 2025
by
daylilytt
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
x
parent
f65094f0
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
397 additions
and
25 deletions
+397
-25
.DS_Store
.DS_Store
+0
-0
SeckillSection.less
components/SeckillSection.less
+5
-0
SeckillSection.vue
components/SeckillSection.vue
+86
-22
package-lock.json
package-lock.json
+285
-0
project.config.json
project.config.json
+12
-2
project.private.config.json
project.private.config.json
+9
-1
No files found.
.DS_Store
View file @
74eec807
No preview for this file type
components/SeckillSection.less
View file @
74eec807
...
...
@@ -293,6 +293,11 @@
border-radius: 0rpx 30rpx 30rpx 30rpx;
position: relative;
// 背景色通过内联样式动态设置
&.no-tr-corner {
// 最后一个 tab 被选中时,取消右上角圆角,避免被 tabs 的滚动容器裁剪
border-radius: 0rpx 0rpx 30rpx 30rpx;
}
}
// 场次商品列表容器
...
...
components/SeckillSection.vue
View file @
74eec807
...
...
@@ -13,6 +13,53 @@
v-if=
"creditsSaleData.sessions && creditsSaleData.sessions.length > 1"
:class=
"getTabContainerClass"
:style=
"
{ backgroundColor: getColor('tabsColor')[itemIndex] }">
<!-- #ifdef MP-WEIXIN -->
<scroll-view
scroll-x
:scroll-with-animation=
"true"
:scroll-into-view=
"scrollIntoViewId"
style=
"width: 100%"
>
<view
style=
"display:flex; width:100%"
>
<view
v-for=
"(session, index) in creditsSaleData.sessions || []"
:key=
"index"
class=
"tab_item"
:id=
"`tab-item-$
{index}`"
:class="[`item-${itemIndex}`, { active: index === currentSessionIndex }]" @click="currentSessionIndex = index">
<!-- 背景色元素 - 只在active状态下显示 -->
<view
v-if=
"index === currentSessionIndex"
class=
"tab_bg_element"
:style=
"
{ left: index > 0 ? '50rpx' : '0', right: index
<
creditsSaleData
.
sessions
.
length
-
1
?
'
50rpx
'
:
'
0
',
backgroundColor:
getColor
('
bgColor
')[
itemIndex
]
}"
></view>
<!-- 左侧弧形三角形 - 使用base64 SVG,第一个tab不显示 -->
<view
v-if=
"index === currentSessionIndex && index > 0"
class=
"triangle-left"
:style=
"
{ backgroundImage: getTriangleLeftSvg(itemIndex) }">
</view>
<!-- 右侧弧形三角形 - 使用base64 SVG,最后一个tab不显示 -->
<view
v-if=
"index === currentSessionIndex && index
<
creditsSaleData
.
sessions
.
length
-
1
"
class=
"triangle-right"
:style=
"
{ backgroundImage: getTriangleRightSvg(itemIndex) }">
</view>
<!-- 正在秒杀状态:倒计时在上,文案在下 -->
<view
v-if=
"session.status === 'ongoing'"
class=
"tab_content_ongoing"
>
<view
class=
"tab_time_info"
>
<view
class=
"tab_time_text countdown_display"
>
<view
class=
"countdown_numbers"
>
<view
v-for=
"(timeUnit, index) in getCountdownUnits(session.countdown)"
:key=
"index"
class=
"countdown_unit"
>
<text
class=
"countdown_number"
:style=
"
{ backgroundColor: getColor('countdownColor')[itemIndex] }">
{{
timeUnit
}}
</text>
<text
v-if=
"index
<
2
"
class=
"countdown_colon"
:style=
"
{ color: getColor('countdownColor')[itemIndex] }">:
</text>
</view>
</view>
</view>
</view>
<view
class=
"session_status_tag ongoing"
>
<text
class=
"status_text"
:style=
"
{ color: getColor('ongoingStatusTextColor')[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>
</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>
</view>
</view>
</view>
</view>
</scroll-view>
<!-- #endif -->
<!-- #ifndef MP-WEIXIN -->
<view
v-for=
"(session, index) in creditsSaleData.sessions || []"
:key=
"index"
class=
"tab_item"
:class=
"[`item-$
{itemIndex}`, { active: index === currentSessionIndex }]" @click="currentSessionIndex = index">
<!-- 背景色元素 - 只在active状态下显示 -->
...
...
@@ -50,6 +97,7 @@
</view>
</view>
</view>
<!-- #endif -->
</view>
<!-- 单场次状态显示 -->
...
...
@@ -61,7 +109,7 @@
</view>
<view
class=
"tab_time_info"
>
<view
v-if=
"creditsSaleData.sessions[0].status === 'ongoing'"
class=
"tab_time_text countdown_display"
>
<text
class=
"countdown_label"
>
倒计时
</text>
<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)"
:key=
"index"
...
...
@@ -77,7 +125,7 @@
<!-- 当前选中场次的商品展示区域 -->
<view
class=
"current_session_content"
:class=
"
`item-$
{itemIndex}`
"
:class=
"
[`item-$
{itemIndex}`, { 'no-tr-corner': isLastTabSelected }]
"
:style="{ backgroundColor: getColor('bgColor')[itemIndex] }"
v-if="creditsSaleData.sessions
&&
creditsSaleData.sessions[currentSessionIndex]">
...
...
@@ -106,7 +154,7 @@
<view
class=
"credits_sale_button"
:class=
"[`item-$
{itemIndex}`, { disabled: getGoodButtonInfo(good, creditsSaleData.sessions[currentSessionIndex]).disabled }]"
:style="{ background: getGoodButtonInfo(good, creditsSaleData.sessions[currentSessionIndex]).disabled ? '#B9B9B9' : getColor('buttonGradientColor')[itemIndex] }">
<text
class=
"credits_sale_button_text"
>
{{
getGoodButtonInfo
(
good
,
creditsSaleData
.
sessions
[
currentSessionIndex
]).
text
}}
</text>
<text
class=
"credits_sale_button_text"
:style=
"
{ color: getColor('buttonTextColor')[itemIndex] }"
>
{{
getGoodButtonInfo
(
good
,
creditsSaleData
.
sessions
[
currentSessionIndex
]).
text
}}
</text>
</view>
</view>
</view>
...
...
@@ -117,7 +165,7 @@
</
template
>
<
script
setup
>
import
{
ref
,
onMounted
,
computed
}
from
'vue'
;
import
{
ref
,
onMounted
,
computed
,
watch
,
nextTick
}
from
'vue'
;
import
{
useIntegralStore
}
from
'../stores/integral'
;
import
{
throttleTap
}
from
'../utils/index'
;
...
...
@@ -147,7 +195,7 @@ const getColor = (type) => {
colors
=
[
'#EDE8D6'
,
'#d6e8f7'
,
'#eeeaf3'
,
'#f2e9c7'
,
'#49443f'
];
break
;
case
'textColor'
:
colors
=
[
'#000000'
,
'#000000'
,
'#000000'
,
'#000000'
,
'#
fbf0e1
'
];
colors
=
[
'#000000'
,
'#000000'
,
'#000000'
,
'#000000'
,
'#
FFF0DF
'
];
break
;
case
'tabsColor'
:
// Tab切换区域背景色
...
...
@@ -159,15 +207,15 @@ const getColor = (type) => {
break
;
case
'goodPriceColor'
:
// 商品价格颜色
colors
=
[
'#
a57e35'
,
'#354a69'
,
'#342e6b'
,
'#754b20'
,
'#eae3be
'
];
colors
=
[
'#
B27C1E'
,
'#284A6C'
,
'#322D6F'
,
'#814912'
,
'#EEE3B9
'
];
break
;
case
'countdownColor'
:
// 倒计时数字背景色和冒号颜色
colors
=
[
'#
a57e35'
,
'#6c8dbf'
,
'#7059a3'
,
'#c3a574'
,
'#030201
'
];
colors
=
[
'#
B27C1E'
,
'#578EC4'
,
'#7556A8'
,
'#CEA46C'
,
'#E7CCA4
'
];
break
;
case
'ongoingStatusTextColor'
:
// 正在秒杀状态文字颜色
colors
=
[
'#1c1c1c'
,
'#1c1c1c'
,
'#1c1c1c'
,
'#1c1c1c'
,
'#
fbf0e1
'
];
colors
=
[
'#1c1c1c'
,
'#1c1c1c'
,
'#1c1c1c'
,
'#1c1c1c'
,
'#
FFF0DF
'
];
break
;
case
'buttonGradientColor'
:
// 按钮渐变背景色
...
...
@@ -179,9 +227,13 @@ const getColor = (type) => {
'linear-gradient(90deg, #000 0%, #E7CA9F 0.01%, #EBD9C9 100%)'
];
break
;
case
'buttonTextColor'
:
// 按钮文字颜色
colors
=
[
'#ffffff'
,
'#ffffff'
,
'#ffffff'
,
'#ffffff'
,
'#030200'
];
break
;
case
'goodNameColor'
:
// 商品名称颜色
colors
=
[
'#3c3c3c'
,
'#3c3c3c'
,
'#3c3c3c'
,
'#3c3c3c'
,
'#
fbf0e1
'
];
colors
=
[
'#3c3c3c'
,
'#3c3c3c'
,
'#3c3c3c'
,
'#3c3c3c'
,
'#
FFF0DF
'
];
break
;
}
return
colors
;
...
...
@@ -214,6 +266,14 @@ const creditsSaleData = ref({
// 积分限时购相关数据
const
currentSessionIndex
=
ref
(
0
);
// 当前选中的场次索引
const
isLastTabSelected
=
computed
(()
=>
{
const
total
=
creditsSaleData
.
value
.
sessions
?.
length
||
0
;
return
total
>
0
&&
currentSessionIndex
.
value
===
total
-
1
;
});
// 小程序端滚动定位:使用 scroll-into-view 目标
const
scrollIntoViewId
=
ref
(
''
);
// 注意:只在初始化时设置 scroll-into-view,后续点击不再自动滚动
// 倒计时相关
const
countdownTimers
=
ref
({});
// 存储每个场次的倒计时定时器
...
...
@@ -585,6 +645,10 @@ const mapSeckillDataToCreditsSale = (seckillData) => {
// 智能定位场次逻辑
const
targetIndex
=
getTargetSessionIndex
(
sessions
);
currentSessionIndex
.
value
=
targetIndex
;
// 初始化:小程序端设置一次滚动目标
nextTick
(()
=>
{
scrollIntoViewId
.
value
=
`tab-item-
${
currentSessionIndex
.
value
}
`
;
});
console
.
log
(
'映射后的秒杀数据:'
,
creditsSaleData
.
value
);
console
.
log
(
'当前选中场次索引:'
,
currentSessionIndex
.
value
);
...
...
@@ -613,15 +677,15 @@ const generateTestSeckillData = () => {
// 第二场:正在秒杀(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"
,
...
...
@@ -847,17 +911,17 @@ const generateTestSeckillData = () => {
const
loadSeckillData
=
async
()
=>
{
try
{
// 使用测试数据
//
const testData = generateTestSeckillData();
//
mapSeckillDataToCreditsSale(testData);
//
initCountdowns();
const
testData
=
generateTestSeckillData
();
mapSeckillDataToCreditsSale
(
testData
);
initCountdowns
();
// 如果需要真实数据,可以取消注释下面的代码
const
seckillData
=
await
integralStore
.
getSeckillData
(
props
.
isdebug
);
if
(
seckillData
)
{
mapSeckillDataToCreditsSale
(
seckillData
);
//
const seckillData = await integralStore.getSeckillData(props.isdebug);
//
if (seckillData) {
//
mapSeckillDataToCreditsSale(seckillData);
// 初始化倒计时
initCountdowns
();
}
//
initCountdowns();
//
}
}
catch
(
error
)
{
console
.
error
(
'获取秒杀数据失败:'
,
error
);
}
...
...
package-lock.json
View file @
74eec807
...
...
@@ -55,6 +55,59 @@
"node"
:
">=6.9.0"
}
},
"node_modules/@emmetio/abbreviation"
:
{
"version"
:
"2.3.3"
,
"resolved"
:
"https://registry.npmjs.org/@emmetio/abbreviation/-/abbreviation-2.3.3.tgz"
,
"integrity"
:
"sha512-mgv58UrU3rh4YgbE/TzgLQwJ3pFsHHhCLqY20aJq+9comytTXUDNGG/SMtSeMJdkpxgXSXunBGLD8Boka3JyVA=="
,
"dependencies"
:
{
"@emmetio/scanner"
:
"^1.0.4"
}
},
"node_modules/@emmetio/css-abbreviation"
:
{
"version"
:
"2.1.8"
,
"resolved"
:
"https://registry.npmjs.org/@emmetio/css-abbreviation/-/css-abbreviation-2.1.8.tgz"
,
"integrity"
:
"sha512-s9yjhJ6saOO/uk1V74eifykk2CBYi01STTK3WlXWGOepyKa23ymJ053+DNQjpFcy1ingpaO7AxCcwLvHFY9tuw=="
,
"dependencies"
:
{
"@emmetio/scanner"
:
"^1.0.4"
}
},
"node_modules/@emmetio/css-parser"
:
{
"version"
:
"0.4.0"
,
"resolved"
:
"git+ssh://git@github.com/ramya-rao-a/css-parser.git#370c480ac103bd17c7bcfb34bf5d577dc40d3660"
,
"license"
:
"MIT"
,
"dependencies"
:
{
"@emmetio/stream-reader"
:
"^2.2.0"
,
"@emmetio/stream-reader-utils"
:
"^0.1.0"
}
},
"node_modules/@emmetio/html-matcher"
:
{
"version"
:
"1.3.0"
,
"resolved"
:
"https://registry.npmjs.org/@emmetio/html-matcher/-/html-matcher-1.3.0.tgz"
,
"integrity"
:
"sha512-NTbsvppE5eVyBMuyGfVu2CRrLvo7J4YHb6t9sBFLyY03WYhXET37qA4zOYUjBWFCRHO7pS1B9khERtY0f5JXPQ=="
,
"dependencies"
:
{
"@emmetio/scanner"
:
"^1.0.0"
}
},
"node_modules/@emmetio/scanner"
:
{
"version"
:
"1.0.4"
,
"resolved"
:
"https://registry.npmjs.org/@emmetio/scanner/-/scanner-1.0.4.tgz"
,
"integrity"
:
"sha512-IqRuJtQff7YHHBk4G8YZ45uB9BaAGcwQeVzgj/zj8/UdOhtQpEIupUhSk8dys6spFIWVZVeK20CzGEnqR5SbqA=="
},
"node_modules/@emmetio/stream-reader"
:
{
"version"
:
"2.2.0"
,
"resolved"
:
"https://registry.npmjs.org/@emmetio/stream-reader/-/stream-reader-2.2.0.tgz"
,
"integrity"
:
"sha512-fXVXEyFA5Yv3M3n8sUGT7+fvecGrZP4k6FnWWMSZVQf69kAq0LLpaBQLGcPR30m3zMmKYhECP4k/ZkzvhEW5kw=="
},
"node_modules/@emmetio/stream-reader-utils"
:
{
"version"
:
"0.1.0"
,
"resolved"
:
"https://registry.npmjs.org/@emmetio/stream-reader-utils/-/stream-reader-utils-0.1.0.tgz"
,
"integrity"
:
"sha512-ZsZ2I9Vzso3Ho/pjZFsmmZ++FWeEd/txqybHTm4OgaZzdS8V9V/YYWQwg5TC38Z7uLWUV1vavpLLbjJtKubR1A=="
},
"node_modules/@johnsoncodehk/pug-beautify"
:
{
"version"
:
"0.2.2"
,
"resolved"
:
"https://registry.npmjs.org/@johnsoncodehk/pug-beautify/-/pug-beautify-0.2.2.tgz"
,
"integrity"
:
"sha512-qqNS/YD0Nck5wtQLCPHAfGVgWbbGafxSPjNh0ekYPFSNNqnDH2kamnduzYly8IiADmeVx/MfAE1njMEjVeHTMA=="
},
"node_modules/@volar/language-core"
:
{
"version"
:
"2.4.23"
,
"resolved"
:
"https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.23.tgz"
,
...
...
@@ -110,6 +163,23 @@
"vscode-uri"
:
"^3.0.8"
}
},
"node_modules/@vscode/emmet-helper"
:
{
"version"
:
"2.11.0"
,
"resolved"
:
"https://registry.npmjs.org/@vscode/emmet-helper/-/emmet-helper-2.11.0.tgz"
,
"integrity"
:
"sha512-QLxjQR3imPZPQltfbWRnHU6JecWTF1QSWhx3GAKQpslx7y3Dp6sIIXhKjiUJ/BR9FX8PVthjr9PD6pNwOJfAzw=="
,
"dependencies"
:
{
"emmet"
:
"^2.4.3"
,
"jsonc-parser"
:
"^2.3.0"
,
"vscode-languageserver-textdocument"
:
"^1.0.1"
,
"vscode-languageserver-types"
:
"^3.15.1"
,
"vscode-uri"
:
"^3.0.8"
}
},
"node_modules/@vscode/l10n"
:
{
"version"
:
"0.0.18"
,
"resolved"
:
"https://registry.npmjs.org/@vscode/l10n/-/l10n-0.0.18.tgz"
,
"integrity"
:
"sha512-KYSIHVmslkaCDyw013pphY+d7x1qV8IZupYfeIfzNA+nsaWHbn5uPuQRvdRFsa9zFzGeudPuoGoZ1Op4jrJXIQ=="
},
"node_modules/@vue/compiler-core"
:
{
"version"
:
"3.5.22"
,
"resolved"
:
"https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.22.tgz"
,
...
...
@@ -214,17 +284,85 @@
"path-browserify"
:
"^1.0.1"
}
},
"node_modules/acorn"
:
{
"version"
:
"7.4.1"
,
"resolved"
:
"https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz"
,
"integrity"
:
"sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A=="
,
"bin"
:
{
"acorn"
:
"bin/acorn"
},
"engines"
:
{
"node"
:
">=0.4.0"
}
},
"node_modules/alien-signals"
:
{
"version"
:
"3.0.3"
,
"resolved"
:
"https://registry.npmjs.org/alien-signals/-/alien-signals-3.0.3.tgz"
,
"integrity"
:
"sha512-2JXjom6R7ZwrISpUphLhf4htUq1aKRCennTJ6u9kFfr3sLmC9+I4CxxVi+McoFnIg+p1HnVrfLT/iCt4Dlz//Q=="
,
"license"
:
"MIT"
},
"node_modules/call-bind-apply-helpers"
:
{
"version"
:
"1.0.2"
,
"resolved"
:
"https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz"
,
"integrity"
:
"sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ=="
,
"dependencies"
:
{
"es-errors"
:
"^1.3.0"
,
"function-bind"
:
"^1.1.2"
},
"engines"
:
{
"node"
:
">= 0.4"
}
},
"node_modules/call-bound"
:
{
"version"
:
"1.0.4"
,
"resolved"
:
"https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz"
,
"integrity"
:
"sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg=="
,
"dependencies"
:
{
"call-bind-apply-helpers"
:
"^1.0.2"
,
"get-intrinsic"
:
"^1.3.0"
},
"engines"
:
{
"node"
:
">= 0.4"
},
"funding"
:
{
"url"
:
"https://github.com/sponsors/ljharb"
}
},
"node_modules/character-parser"
:
{
"version"
:
"2.2.0"
,
"resolved"
:
"https://registry.npmjs.org/character-parser/-/character-parser-2.2.0.tgz"
,
"integrity"
:
"sha512-+UqJQjFEFaTAs3bNsF2j2kEN1baG/zghZbdqoYEDxGZtJo9LBzl1A+m0D4n3qKx8N2FNv8/Xp6yV9mQmBuptaw=="
,
"dependencies"
:
{
"is-regex"
:
"^1.0.3"
}
},
"node_modules/crypto-js"
:
{
"version"
:
"4.2.0"
,
"resolved"
:
"http://npm.dui88.com:80/crypto-js/-/crypto-js-4.2.0.tgz"
,
"integrity"
:
"sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q=="
},
"node_modules/dunder-proto"
:
{
"version"
:
"1.0.1"
,
"resolved"
:
"https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz"
,
"integrity"
:
"sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A=="
,
"dependencies"
:
{
"call-bind-apply-helpers"
:
"^1.0.1"
,
"es-errors"
:
"^1.3.0"
,
"gopd"
:
"^1.2.0"
},
"engines"
:
{
"node"
:
">= 0.4"
}
},
"node_modules/emmet"
:
{
"version"
:
"2.4.11"
,
"resolved"
:
"https://registry.npmjs.org/emmet/-/emmet-2.4.11.tgz"
,
"integrity"
:
"sha512-23QPJB3moh/U9sT4rQzGgeyyGIrcM+GH5uVYg2C6wZIxAIJq7Ng3QLT79tl8FUwDXhyq9SusfknOrofAKqvgyQ=="
,
"dependencies"
:
{
"@emmetio/abbreviation"
:
"^2.3.3"
,
"@emmetio/css-abbreviation"
:
"^2.1.8"
}
},
"node_modules/entities"
:
{
"version"
:
"4.5.0"
,
"resolved"
:
"https://registry.npmmirror.com/entities/-/entities-4.5.0.tgz"
,
...
...
@@ -237,12 +375,129 @@
"url"
:
"https://github.com/fb55/entities?sponsor=1"
}
},
"node_modules/es-define-property"
:
{
"version"
:
"1.0.1"
,
"resolved"
:
"https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz"
,
"integrity"
:
"sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g=="
,
"engines"
:
{
"node"
:
">= 0.4"
}
},
"node_modules/es-errors"
:
{
"version"
:
"1.3.0"
,
"resolved"
:
"https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz"
,
"integrity"
:
"sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw=="
,
"engines"
:
{
"node"
:
">= 0.4"
}
},
"node_modules/es-object-atoms"
:
{
"version"
:
"1.1.1"
,
"resolved"
:
"https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz"
,
"integrity"
:
"sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA=="
,
"dependencies"
:
{
"es-errors"
:
"^1.3.0"
},
"engines"
:
{
"node"
:
">= 0.4"
}
},
"node_modules/estree-walker"
:
{
"version"
:
"2.0.2"
,
"resolved"
:
"https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz"
,
"integrity"
:
"sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="
,
"license"
:
"MIT"
},
"node_modules/function-bind"
:
{
"version"
:
"1.1.2"
,
"resolved"
:
"https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz"
,
"integrity"
:
"sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA=="
,
"funding"
:
{
"url"
:
"https://github.com/sponsors/ljharb"
}
},
"node_modules/get-intrinsic"
:
{
"version"
:
"1.3.0"
,
"resolved"
:
"https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz"
,
"integrity"
:
"sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ=="
,
"dependencies"
:
{
"call-bind-apply-helpers"
:
"^1.0.2"
,
"es-define-property"
:
"^1.0.1"
,
"es-errors"
:
"^1.3.0"
,
"es-object-atoms"
:
"^1.1.1"
,
"function-bind"
:
"^1.1.2"
,
"get-proto"
:
"^1.0.1"
,
"gopd"
:
"^1.2.0"
,
"has-symbols"
:
"^1.1.0"
,
"hasown"
:
"^2.0.2"
,
"math-intrinsics"
:
"^1.1.0"
},
"engines"
:
{
"node"
:
">= 0.4"
},
"funding"
:
{
"url"
:
"https://github.com/sponsors/ljharb"
}
},
"node_modules/get-proto"
:
{
"version"
:
"1.0.1"
,
"resolved"
:
"https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz"
,
"integrity"
:
"sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g=="
,
"dependencies"
:
{
"dunder-proto"
:
"^1.0.1"
,
"es-object-atoms"
:
"^1.0.0"
},
"engines"
:
{
"node"
:
">= 0.4"
}
},
"node_modules/gopd"
:
{
"version"
:
"1.2.0"
,
"resolved"
:
"https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz"
,
"integrity"
:
"sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg=="
,
"engines"
:
{
"node"
:
">= 0.4"
},
"funding"
:
{
"url"
:
"https://github.com/sponsors/ljharb"
}
},
"node_modules/has-symbols"
:
{
"version"
:
"1.1.0"
,
"resolved"
:
"https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz"
,
"integrity"
:
"sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ=="
,
"engines"
:
{
"node"
:
">= 0.4"
},
"funding"
:
{
"url"
:
"https://github.com/sponsors/ljharb"
}
},
"node_modules/has-tostringtag"
:
{
"version"
:
"1.0.2"
,
"resolved"
:
"https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz"
,
"integrity"
:
"sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw=="
,
"dependencies"
:
{
"has-symbols"
:
"^1.0.3"
},
"engines"
:
{
"node"
:
">= 0.4"
},
"funding"
:
{
"url"
:
"https://github.com/sponsors/ljharb"
}
},
"node_modules/hasown"
:
{
"version"
:
"2.0.2"
,
"resolved"
:
"https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz"
,
"integrity"
:
"sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ=="
,
"dependencies"
:
{
"function-bind"
:
"^1.1.2"
},
"engines"
:
{
"node"
:
">= 0.4"
}
},
"node_modules/is-expression"
:
{
"version"
:
"4.0.0"
,
"resolved"
:
"https://registry.npmmirror.com/is-expression/-/is-expression-4.0.0.tgz"
,
...
...
@@ -253,6 +508,36 @@
"object-assign"
:
"^4.1.1"
}
},
"node_modules/is-regex"
:
{
"version"
:
"1.2.1"
,
"resolved"
:
"https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz"
,
"integrity"
:
"sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g=="
,
"dependencies"
:
{
"call-bound"
:
"^1.0.2"
,
"gopd"
:
"^1.2.0"
,
"has-tostringtag"
:
"^1.0.2"
,
"hasown"
:
"^2.0.2"
},
"engines"
:
{
"node"
:
">= 0.4"
},
"funding"
:
{
"url"
:
"https://github.com/sponsors/ljharb"
}
},
"node_modules/jsonc-parser"
:
{
"version"
:
"2.3.1"
,
"resolved"
:
"https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-2.3.1.tgz"
,
"integrity"
:
"sha512-H8jvkz1O50L3dMZCsLqiuB2tA7muqbSg1AtGEkN0leAqGjsUzDJir3Zwr02BhqdcITPg3ei3mZ+HjMocAknhhg=="
},
"node_modules/math-intrinsics"
:
{
"version"
:
"1.1.0"
,
"resolved"
:
"https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz"
,
"integrity"
:
"sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g=="
,
"engines"
:
{
"node"
:
">= 0.4"
}
},
"node_modules/muggle-string"
:
{
"version"
:
"0.4.1"
,
"resolved"
:
"https://registry.npmmirror.com/muggle-string/-/muggle-string-0.4.1.tgz"
,
...
...
project.config.json
View file @
74eec807
...
...
@@ -12,7 +12,16 @@
"outputPath"
:
""
},
"useCompilerPlugins"
:
false
,
"minifyWXML"
:
true
"minifyWXML"
:
true
,
"compileWorklet"
:
false
,
"uploadWithSourceMap"
:
true
,
"packNpmManually"
:
false
,
"minifyWXSS"
:
true
,
"localPlugins"
:
false
,
"disableUseStrict"
:
false
,
"condition"
:
false
,
"swc"
:
false
,
"disableSWC"
:
true
},
"compileType"
:
"miniprogram"
,
"simulatorPluginLibVersion"
:
{},
...
...
@@ -21,5 +30,6 @@
"include"
:
[]
},
"appid"
:
"wxc83b55d61c7fc51d"
,
"editorSetting"
:
{}
"editorSetting"
:
{},
"libVersion"
:
"3.8.6"
}
\ No newline at end of file
project.private.config.json
View file @
74eec807
...
...
@@ -9,6 +9,14 @@
"preloadBackgroundData"
:
false
,
"autoAudits"
:
false
,
"showShadowRootInWxmlPanel"
:
true
,
"compileHotReLoad"
:
true
"compileHotReLoad"
:
true
,
"useApiHook"
:
true
,
"useApiHostProcess"
:
true
,
"useStaticServer"
:
false
,
"useLanDebug"
:
false
,
"showES6CompileOption"
:
false
,
"checkInvalidKey"
:
true
,
"ignoreDevUnusedFiles"
:
true
,
"bigPackageSizeSupport"
:
false
}
}
\ No newline at end of file
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