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
ea0fb4af
Commit
ea0fb4af
authored
Nov 17, 2025
by
spc
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fixed
parent
c91d890f
Changes
9
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
223 additions
and
103 deletions
+223
-103
.DS_Store
.DS_Store
+0
-0
ActivitySelectedPopup.vue
components/ActivitySelectedPopup.vue
+33
-1
actList.vue
subPackages/momclub/actList.vue
+96
-29
AreaPicker.vue
subPackages/momclub/component/AreaPicker.vue
+4
-4
DatePicker.vue
subPackages/momclub/component/DatePicker.vue
+4
-4
FormTree.vue
subPackages/momclub/component/FormTree.vue
+49
-39
resultDialog.vue
subPackages/momclub/component/resultDialog.vue
+10
-4
index.vue
subPackages/momclub/index.vue
+26
-22
sign.vue
subPackages/momclub/sign.vue
+1
-0
No files found.
.DS_Store
View file @
ea0fb4af
No preview for this file type
components/ActivitySelectedPopup.vue
View file @
ea0fb4af
...
@@ -57,7 +57,7 @@
...
@@ -57,7 +57,7 @@
</
template
>
</
template
>
<
script
setup
>
<
script
setup
>
import
{
computed
,
ref
}
from
'vue'
import
{
computed
,
ref
,
watch
,
onUnmounted
}
from
'vue'
import
{
fetchUserClickActivity
}
from
'../api/home'
import
{
fetchUserClickActivity
}
from
'../api/home'
...
@@ -147,6 +147,38 @@ const handleClose = async () => {
...
@@ -147,6 +147,38 @@ const handleClose = async () => {
// handleClose()
// handleClose()
// }
// }
// }
// }
// 监听 visible 变化,控制页面滚动
watch
(()
=>
props
.
visible
,
(
newVal
)
=>
{
// #ifdef MP-WEIXIN
if
(
newVal
)
{
// 弹窗显示时禁止背景页面滚动
wx
.
setPageStyle
({
style
:
{
overflow
:
'hidden'
}
})
}
else
{
// 弹窗隐藏时恢复背景页面滚动
wx
.
setPageStyle
({
style
:
{
overflow
:
'auto'
}
})
}
// #endif
},
{
immediate
:
true
})
// 组件卸载时恢复滚动
onUnmounted
(()
=>
{
// #ifdef MP-WEIXIN
wx
.
setPageStyle
({
style
:
{
overflow
:
'auto'
}
})
// #endif
})
</
script
>
</
script
>
<
style
lang=
"less"
scoped
>
<
style
lang=
"less"
scoped
>
...
...
subPackages/momclub/actList.vue
View file @
ea0fb4af
<
template
>
<
template
>
<view
class=
"activity-list-warp"
>
<view
class=
"activity-list-warp"
>
<view
class=
"search"
>
<view
class=
"search"
>
<view
v-for=
"(itm,idx) in searchList"
:key=
"idx"
<
!--
<
view
v-for=
"(itm,idx) in searchList"
:key=
"idx"
:class=
"searchType === itm.type ? 'search-box search-box-bg' : 'search-box'"
@
click=
"searchClick(itm)"
>
:class=
"searchType === itm.type ? 'search-box search-box-bg' : 'search-box'"
@
click=
"searchClick(itm)"
>
<view
:class=
"searchType === itm.type ? 'search-text':'search-text search-text-thin'"
>
{{
itm
.
name
}}
<view
:class=
"searchType === itm.type ? 'search-text':'search-text search-text-thin'"
>
{{
itm
.
name
}}
</view>
</view>
<view
v-if=
"searchType === itm.type"
class=
"search-total"
>
{{
itm
.
total
>
99
?
'99+'
:
itm
.
total
}}
</view>
<view
v-if=
"searchType === itm.type"
class=
"search-total"
>
{{
itm
.
total
>
99
?
'99+'
:
itm
.
total
}}
</view>
</view>
-->
<view
v-for=
"(itm,idx) in searchList"
:key=
"idx"
class=
"search-box"
@
click=
"searchClick(itm)"
>
<view
:class=
"searchType === itm.type ? 'search-text':'search-text-thin'"
>
<view>
{{
itm
.
name
}}
</view>
<view
v-if=
"searchType === itm.type"
class=
"search-text-bot"
></view>
</view>
<view
v-if=
"searchType === itm.type"
class=
"search-total"
>
{{
itm
.
total
>
99
?
'99+'
:
itm
.
total
}}
</view>
</view>
</view>
</view>
</view>
<view
v-if=
"!loadMore"
class=
"page-list"
>
<view
v-if=
"!loadMore"
class=
"page-list"
>
...
@@ -52,7 +60,7 @@
...
@@ -52,7 +60,7 @@
</view>
</view>
<view
class=
"content-right"
>
<view
class=
"content-right"
>
<view
<view
:class=
"(item.prized === 0 ||
Date.now() > new Date(item.signupEndTime).getTime(
)) ? 'btn gray' : 'btn'"
>
:class=
"(item.prized === 0 ||
(item.prized !== 1 && Date.now() > new Date(item.signupEndTime).getTime()
)) ? 'btn gray' : 'btn'"
>
{{
formatStatus
(
item
)
}}
{{
formatStatus
(
item
)
}}
</view>
</view>
</view>
</view>
...
@@ -112,7 +120,7 @@ const searchClick = (itm)=>{
...
@@ -112,7 +120,7 @@ const searchClick = (itm)=>{
const
formatActivityTime
=
(
startTime
,
endTime
)
=>
{
const
formatActivityTime
=
(
startTime
,
endTime
)
=>
{
const
start
=
new
Date
(
startTime
);
const
start
=
new
Date
(
startTime
);
const
end
=
new
Date
(
endTime
);
const
end
=
new
Date
(
endTime
);
const
getParts
=
(
date
)
=>
[
date
.
getMonth
()
+
1
,
date
.
getDate
(
),
date
.
getHours
().
toString
().
padStart
(
2
,
'0'
),
date
.
getMinutes
().
toString
().
padStart
(
2
,
'0'
)];
const
getParts
=
(
date
)
=>
[
(
date
.
getMonth
()
+
1
).
toString
().
padStart
(
2
,
'0'
),
date
.
getDate
().
toString
().
padStart
(
2
,
'0'
),
date
.
getHours
().
toString
().
padStart
(
2
,
'0'
),
date
.
getMinutes
().
toString
().
padStart
(
2
,
'0'
)];
const
[
sMonth
,
sDate
,
sHours
,
sMinutes
]
=
getParts
(
start
);
const
[
sMonth
,
sDate
,
sHours
,
sMinutes
]
=
getParts
(
start
);
const
[
eMonth
,
eDate
,
eHours
,
eMinutes
]
=
getParts
(
end
);
const
[
eMonth
,
eDate
,
eHours
,
eMinutes
]
=
getParts
(
end
);
if
(
sMonth
===
eMonth
&&
sDate
===
eDate
)
{
if
(
sMonth
===
eMonth
&&
sDate
===
eDate
)
{
...
@@ -224,9 +232,17 @@ onLoad(async(options) => {
...
@@ -224,9 +232,17 @@ onLoad(async(options) => {
isShare
.
value
=
options
.
share
?
options
.
share
:
''
isShare
.
value
=
options
.
share
?
options
.
share
:
''
getInfo
(
searchType
.
value
)
getInfo
(
searchType
.
value
)
})
})
// 登录获取 cuk
const
wxAutoLogin
=
async
()
=>
{
await
new
Promise
(
resolve
=>
{
userStore
.
syWxAutoLogin
(
resolve
)
})
}
onShow
(
async
()
=>
{
onShow
(
async
()
=>
{
console
.
log
(
isShare
.
value
,
'onShow---'
)
console
.
log
(
isShare
.
value
,
'onShow---'
)
if
(
isShare
.
value
==
'true'
){
if
(
isShare
.
value
==
'true'
){
// 确保登录以获取 cuk
await
wxAutoLogin
()
await
userStore
.
loadUserInfo
()
await
userStore
.
loadUserInfo
()
console
.
log
(
userStore
.
userInfo
,
'userStore.userInfo?.memberId'
)
console
.
log
(
userStore
.
userInfo
,
'userStore.userInfo?.memberId'
)
if
((
userStore
?.
userInfo
?.
memberId
&&
userStore
?.
userInfo
?.
memberId
==
"not_login"
)
||
!
userStore
.
userInfo
)
{
if
((
userStore
?.
userInfo
?.
memberId
&&
userStore
?.
userInfo
?.
memberId
==
"not_login"
)
||
!
userStore
.
userInfo
)
{
...
@@ -248,48 +264,96 @@ onShow(async()=> {
...
@@ -248,48 +264,96 @@ onShow(async()=> {
color: #1C1C1C;
color: #1C1C1C;
min-height: 100vh;
min-height: 100vh;
padding-top: 30rpx;
padding-top: 30rpx;
// .search{
// width: calc(100% - 40rpx);
// height: 72rpx;
// border-radius: 200rpx;
// background: #ECC990;
// display: flex;
// justify-content: space-between;
// align-items: center;
// padding: 0rpx 5rpx;
// margin: 0rpx auto 20rpx;
// .search-box-bg{
// background: linear-gradient(180deg, #FFFFFF 0%, #FFF2D3 100%);
// border-radius: 200rpx;
// }
// .search-box{
// height: 64rpx;
// width: 232rpx;
// display: flex;
// justify-content: center;
// align-items: center;
// .search-text{
// font-weight: 500;
// font-size: 26rpx;
// color: #B27C1E;
// }
// .search-text-thin{
// font-weight: 400;
// font-size: 24rpx;
// color: #B27C1E;
// opacity: 0.5;
// }
// .search-total{
// width: 48rpx;
// height: 28rpx;
// background: linear-gradient(90deg, #B27C1E 0%, #D3A358 100%);
// border-radius: 40rpx;
// font-size: 20rpx;
// color: #FFFFFF;
// line-height: 28rpx;
// text-align: center;
// margin-left: 10rpx;
// }
// }
// }
.search{
.search{
width: calc(100% - 40rpx);
width: calc(100% - 40rpx);
height: 72rpx;
height: 72rpx;
border-radius: 200rpx;
border-radius: 200rpx;
background: #ECC990;
//
background: #ECC990;
display: flex;
display: flex;
justify-content: space-between;
justify-content: space-between;
align-items: center;
align-items: center;
padding: 0rpx 5rpx;
padding: 0rpx 5rpx;
margin: 0rpx auto 20rpx;
margin: 0rpx auto 20rpx;
.search-box-bg{
background: linear-gradient(180deg, #FFFFFF 0%, #FFF2D3 100%);
border-radius: 200rpx;
}
.search-box{
.search-box{
height: 64rpx;
height: 64rpx;
width: 232rpx;
width: 232rpx;
display: flex;
display: flex;
justify-content: center;
justify-content: center;
align-items: center;
align-items: center;
font-size: 28rpx;
color: #000000;
.search-text{
.search-text{
font-weight: 500;
font-weight: 600;
font-size: 26rpx;
position: relative;
color: #B27C1E;
display: flex;
justify-content: center;
.search-text-bot{
width: 60%;
height: 8rpx;
border-radius: 26rpx;
background: #000000;
position: absolute;
top: 45rpx;
}
}
}
.search-text-thin{
.search-text-thin{
font-weight: 400;
font-size: 24rpx;
color: #B27C1E;
opacity: 0.5;
opacity: 0.5;
}
}
.search-total{
.search-total{
width: 48rpx;
width: 36rpx;
height: 28rpx;
height: 24rpx;
background: linear-gradient(90deg, #B27C1E 0%, #D3A358 100%);
line-height: 26rpx;
border-radius: 40rpx;
border-radius: 12rpx 12rpx 12rpx 0rpx;
font-size: 20rpx;
background: linear-gradient(90deg, #D1AF82 0%, #E6C7A3 100%);
color: #FFFFFF;
font-size: 16rpx;
line-height: 28rpx;
text-align: center;
text-align: center;
margin-left: 10rpx;
margin-left: 10rpx;
color: #FFFFFF;
}
}
}
}
}
}
...
@@ -321,7 +385,7 @@ onShow(async()=> {
...
@@ -321,7 +385,7 @@ onShow(async()=> {
display: flex;
display: flex;
justify-content: space-between;
justify-content: space-between;
align-items: center;
align-items: center;
padding: 2
2rpx 4
0rpx;
padding: 2
6rpx 3
0rpx;
box-sizing: border-box;
box-sizing: border-box;
position: absolute;
position: absolute;
bottom: 0;
bottom: 0;
...
@@ -333,7 +397,7 @@ onShow(async()=> {
...
@@ -333,7 +397,7 @@ onShow(async()=> {
.content-left {
.content-left {
width: 140rpx;
width: 140rpx;
height: 100%;
height: 100%;
display: flex;
.left-one {
.left-one {
height: 100%;
height: 100%;
display: flex;
display: flex;
...
@@ -364,11 +428,11 @@ onShow(async()=> {
...
@@ -364,11 +428,11 @@ onShow(async()=> {
}
}
.content-main {
.content-main {
width: calc(100% - 3
8
0rpx);
width: calc(100% - 3
4
0rpx);
display: flex;
display: flex;
flex-direction: column;
flex-direction: column;
align-items: flex-start;
align-items: flex-start;
margin
: 0rpx
20rpx;
margin
-right:
20rpx;
height: 100%;
height: 100%;
justify-content: space-between;
justify-content: space-between;
...
@@ -393,14 +457,17 @@ onShow(async()=> {
...
@@ -393,14 +457,17 @@ onShow(async()=> {
.text {
.text {
font-size: 20rpx;
font-size: 20rpx;
margin: 0rpx
2
0rpx 0rpx 2rpx;
margin: 0rpx
1
0rpx 0rpx 2rpx;
}
}
.name {
.name {
padding: 0rpx 5rpx;
padding-left: 5rpx;
padding-right: 5rpx;
border-radius: 4rpx;
border-radius: 4rpx;
font-size: 18rpx;
font-size: 18rpx;
line-height: 26rpx;
height: 26rpx;
display: flex;
align-items: center;
color: #FFFFFF;
color: #FFFFFF;
}
}
}
}
...
...
subPackages/momclub/component/AreaPicker.vue
View file @
ea0fb4af
...
@@ -286,7 +286,7 @@ defineExpose({
...
@@ -286,7 +286,7 @@ defineExpose({
.picker-layer-cancel {
.picker-layer-cancel {
color: #6f6d67;
color: #6f6d67;
font-size:
28
rpx;
font-size:
30
rpx;
width: 136rpx;
width: 136rpx;
height: 74rpx;
height: 74rpx;
border-radius: 20rpx;
border-radius: 20rpx;
...
@@ -299,7 +299,7 @@ defineExpose({
...
@@ -299,7 +299,7 @@ defineExpose({
.picker-layer-confirm {
.picker-layer-confirm {
color: #ffffff;
color: #ffffff;
font-size:
28
rpx;
font-size:
30
rpx;
width: 136rpx;
width: 136rpx;
height: 74rpx;
height: 74rpx;
border-radius: 20rpx;
border-radius: 20rpx;
...
@@ -311,7 +311,7 @@ defineExpose({
...
@@ -311,7 +311,7 @@ defineExpose({
.picker-layer-title {
.picker-layer-title {
color: #222;
color: #222;
font-size: 3
2
rpx;
font-size: 3
0
rpx;
font-weight: bold;
font-weight: bold;
}
}
}
}
...
@@ -326,7 +326,7 @@ defineExpose({
...
@@ -326,7 +326,7 @@ defineExpose({
height: 100rpx;
height: 100rpx;
line-height: 100rpx;
line-height: 100rpx;
text-align: center;
text-align: center;
font-size: 3
2
rpx;
font-size: 3
0
rpx;
color: #1d1e25;
color: #1d1e25;
}
}
...
...
subPackages/momclub/component/DatePicker.vue
View file @
ea0fb4af
...
@@ -373,7 +373,7 @@ onMounted(() => {
...
@@ -373,7 +373,7 @@ onMounted(() => {
.picker-layer-cancel {
.picker-layer-cancel {
color: #6f6d67;
color: #6f6d67;
font-size:
28
rpx;
font-size:
30
rpx;
width: 136rpx;
width: 136rpx;
height: 74rpx;
height: 74rpx;
border-radius: 20rpx;
border-radius: 20rpx;
...
@@ -386,7 +386,7 @@ onMounted(() => {
...
@@ -386,7 +386,7 @@ onMounted(() => {
.picker-layer-confirm {
.picker-layer-confirm {
color: #ffffff;
color: #ffffff;
font-size:
28
rpx;
font-size:
30
rpx;
width: 136rpx;
width: 136rpx;
height: 74rpx;
height: 74rpx;
border-radius: 20rpx;
border-radius: 20rpx;
...
@@ -398,7 +398,7 @@ onMounted(() => {
...
@@ -398,7 +398,7 @@ onMounted(() => {
.picker-layer-title {
.picker-layer-title {
color: #222;
color: #222;
font-size: 3
2
rpx;
font-size: 3
0
rpx;
font-weight: bold;
font-weight: bold;
}
}
}
}
...
@@ -413,7 +413,7 @@ onMounted(() => {
...
@@ -413,7 +413,7 @@ onMounted(() => {
height: 100rpx;
height: 100rpx;
line-height: 100rpx;
line-height: 100rpx;
text-align: center;
text-align: center;
font-size: 3
2
rpx;
font-size: 3
0
rpx;
color: #1d1e25;
color: #1d1e25;
}
}
...
...
subPackages/momclub/component/FormTree.vue
View file @
ea0fb4af
...
@@ -16,6 +16,7 @@
...
@@ -16,6 +16,7 @@
<input
v-model
.
trim=
"fieldItem.fieldValue"
<input
v-model
.
trim=
"fieldItem.fieldValue"
:type=
"fieldItem.limitInfo.limitType === 1 ? 'number' : 'text'"
:type=
"fieldItem.limitInfo.limitType === 1 ? 'number' : 'text'"
:placeholder=
"fieldItem.placeholder"
:maxlength=
"fieldItem.limitInfo.limitLength"
:placeholder=
"fieldItem.placeholder"
:maxlength=
"fieldItem.limitInfo.limitLength"
placeholder-style=
"color: #D9D9D9;"
@
blur=
"(e) => emit('textInput',
{ subIndex: '', fieldIndex, e, type: fieldItem.limitInfo.limitType })"
@
blur=
"(e) => emit('textInput',
{ subIndex: '', fieldIndex, e, type: fieldItem.limitInfo.limitType })"
:class="isView ? 'form-input view-bg' : fieldItem.error ? 'error-border form-input' : 'form-input'"
:class="isView ? 'form-input view-bg' : fieldItem.error ? 'error-border form-input' : 'form-input'"
:disabled="isView" />
:disabled="isView" />
...
@@ -25,11 +26,12 @@
...
@@ -25,11 +26,12 @@
<
/view
>
<
/view
>
<!--
长文本输入框类型
-->
<!--
长文本输入框类型
-->
<
view
v
-
if
=
"fieldItem.componentType === 'LONG_TEXT'"
>
<
view
v
-
if
=
"fieldItem.componentType === 'LONG_TEXT'"
>
<
textarea
v
-
model
.
trim
=
"fieldItem.fieldValue"
<
textarea
v
-
model
=
"fieldItem.fieldValue"
:
type
=
"fieldItem.limitInfo.limitType === 1 ? 'number' : 'text'"
:
type
=
"fieldItem.limitInfo.limitType === 1 ? 'number' : 'text'"
:
placeholder
=
"fieldItem.placeholder"
:
maxlength
=
"fieldItem.limitInfo.limitLength"
:
placeholder
=
"fieldItem.placeholder"
:
maxlength
=
"fieldItem.limitInfo.limitLength"
placeholder
-
style
=
"color: #D9D9D9;"
@
blur
=
"(e) => emit('textInput', { subIndex: '', fieldIndex, e, type: fieldItem.limitInfo.limitType
}
)"
@
blur
=
"(e) => emit('textInput', { subIndex: '', fieldIndex, e, type: fieldItem.limitInfo.limitType
}
)"
:
class
=
"isView ? 'form-textarea view-bg' : fieldItem.error ? 'error-border form-textarea' : 'form-textarea'"
:
class
=
"isView ? 'form-textarea
textarea-pad
view-bg' : fieldItem.error ? 'error-border form-textarea' : 'form-textarea'"
:
disabled
=
"isView"
/>
:
disabled
=
"isView"
/>
<
view
v
-
if
=
"fieldItem.error || fieldItem.noInt"
class
=
"error"
>
<
view
v
-
if
=
"fieldItem.error || fieldItem.noInt"
class
=
"error"
>
{{
fieldItem
.
error
?
`请维护${fieldItem.fieldName
}
`
:
`请输入整数后提交`
}}
{{
fieldItem
.
error
?
`请维护${fieldItem.fieldName
}
`
:
`请输入整数后提交`
}}
...
@@ -37,12 +39,12 @@
...
@@ -37,12 +39,12 @@
<
/view
>
<
/view
>
<!--
手机号类型
-->
<!--
手机号类型
-->
<
view
v
-
else
-
if
=
"fieldItem.componentType === 'MOBILE'"
:
class
=
"isView ? 'form-mobile view-bg' : fieldItem.error ? 'error-border form-mobile' : 'form-mobile'"
>
<
view
v
-
else
-
if
=
"fieldItem.componentType === 'MOBILE'"
:
class
=
"isView ? 'form-mobile view-bg' : fieldItem.error ? 'error-border form-mobile' : 'form-mobile'"
>
<
input
v
-
model
.
trim
=
"fieldItem.fieldValue"
type
=
"number"
maxlength
=
"11"
<
input
v
-
model
.
trim
=
"fieldItem.fieldValue"
type
=
"number"
maxlength
=
"11"
:
placeholder
=
"fieldItem.placeholder"
:
placeholder
=
"fieldItem.placeholder"
placeholder
-
style
=
"color: #D9D9D9;"
@
blur
=
"(e) => emit('mobileInput', { subIndex: '', fieldIndex, e
}
)"
@
blur
=
"(e) => emit('mobileInput', { subIndex: '', fieldIndex, e
}
)"
class
=
"form-input form-input-short"
class
=
"form-input form-input-short"
:
disabled
=
"isView"
/>
:
disabled
=
"isView"
/>
<
view
v
-
if
=
"fieldItem.fieldValue && !isView"
<
view
v
-
if
=
"fieldItem.fieldValue && !isView"
@
click
=
"emit('updateMobile', { subIndex: '', fieldIndex
}
)"
class
=
"btn"
>
更换手机号
@
click
=
"emit('updateMobile', { subIndex: '', fieldIndex
}
)"
class
=
"btn"
>
更换手机号
<
/view
>
<
/view
>
...
@@ -53,7 +55,7 @@
...
@@ -53,7 +55,7 @@
<!--
身份证号类型
-->
<!--
身份证号类型
-->
<
view
v
-
else
-
if
=
"fieldItem.componentType === 'ID_CARD'"
class
=
"form-card"
>
<
view
v
-
else
-
if
=
"fieldItem.componentType === 'ID_CARD'"
class
=
"form-card"
>
<
input
v
-
model
.
trim
=
"fieldItem.fieldValue"
type
=
"idcard"
maxlength
=
"18"
<
input
v
-
model
.
trim
=
"fieldItem.fieldValue"
type
=
"idcard"
maxlength
=
"18"
:
placeholder
=
"fieldItem.placeholder"
:
placeholder
=
"fieldItem.placeholder"
placeholder
-
style
=
"color: #D9D9D9;"
@
blur
=
"(e) => emit('cardInput', { subIndex: '', fieldIndex, e
}
)"
@
blur
=
"(e) => emit('cardInput', { subIndex: '', fieldIndex, e
}
)"
:
class
=
"isView ? 'form-input view-bg' : fieldItem.error ? 'error-border form-input' : 'form-input'"
:
class
=
"isView ? 'form-input view-bg' : fieldItem.error ? 'error-border form-input' : 'form-input'"
:
disabled
=
"isView"
/>
:
disabled
=
"isView"
/>
...
@@ -108,7 +110,7 @@
...
@@ -108,7 +110,7 @@
<
view
class
=
"custom-radio"
>
<
view
class
=
"custom-radio"
>
<
image
v
-
if
=
"fieldItem.fieldValue === opt.optionValue"
<
image
v
-
if
=
"fieldItem.fieldValue === opt.optionValue"
:
src
=
"$baseUrl + 'sign-up/radio.png'"
mode
=
"aspectFit"
/>
:
src
=
"$baseUrl + 'sign-up/radio.png'"
mode
=
"aspectFit"
/>
<
image
v
-
else
:
src
=
"$baseUrl + 'sign-up/
circle
.png'"
mode
=
"aspectFit"
/>
<
image
v
-
else
:
src
=
"$baseUrl + 'sign-up/
noradio
.png'"
mode
=
"aspectFit"
/>
<
text
class
=
"radio-label"
>
{{
opt
.
optionLabel
}}
<
/text
>
<
text
class
=
"radio-label"
>
{{
opt
.
optionLabel
}}
<
/text
>
<
/view
>
<
/view
>
<
/view
>
<
/view
>
...
@@ -124,7 +126,7 @@
...
@@ -124,7 +126,7 @@
<
view
v
-
for
=
"opt in fieldItem.options"
:
key
=
"opt.value"
class
=
"check-item"
>
<
view
v
-
for
=
"opt in fieldItem.options"
:
key
=
"opt.value"
class
=
"check-item"
>
<
checkbox
:
value
=
"opt.optionValue"
:
style
=
"{ opacity: 0
}
"
<
checkbox
:
value
=
"opt.optionValue"
:
style
=
"{ opacity: 0
}
"
:
checked
=
"fieldItem.fieldValue?.includes(opt.optionValue)"
class
=
"check-icon"
>
{{
:
checked
=
"fieldItem.fieldValue?.includes(opt.optionValue)"
class
=
"check-icon"
>
{{
opt
.
optionLabel
}}
<
/checkbox
>
opt
.
optionLabel
}}
<
/checkbox
>
<
view
class
=
"custom-check"
>
<
view
class
=
"custom-check"
>
<
view
<
view
:
class
=
"fieldItem.fieldValue?.includes(opt.optionValue) ? 'check-text check-bg' : 'check-text nocheck-bg'"
>
:
class
=
"fieldItem.fieldValue?.includes(opt.optionValue) ? 'check-text check-bg' : 'check-text nocheck-bg'"
>
...
@@ -144,8 +146,8 @@
...
@@ -144,8 +146,8 @@
:
class
=
"isView ? 'form-input date-display view-bg' : fieldItem.error ? 'error-border form-input date-display' : 'form-input date-display'"
>
:
class
=
"isView ? 'form-input date-display view-bg' : fieldItem.error ? 'error-border form-input date-display' : 'form-input date-display'"
>
<
text
v
-
if
=
"fieldItem.fieldValue"
>
{{
<
text
v
-
if
=
"fieldItem.fieldValue"
>
{{
fieldItem
.
fieldValue
.
provinceName
}}
-
{{
fieldItem
.
fieldValue
.
provinceName
}}
-
{{
fieldItem
.
fieldValue
.
cityName
}}
-
{{
fieldItem
.
fieldValue
.
cityName
}}
-
{{
fieldItem
.
fieldValue
.
regionName
}}
<
/text
>
fieldItem
.
fieldValue
.
regionName
}}
<
/text
>
<
text
v
-
else
class
=
"date-text"
>
{{
fieldItem
.
placeholder
}}
<
/text
>
<
text
v
-
else
class
=
"date-text"
>
{{
fieldItem
.
placeholder
}}
<
/text
>
<
image
:
src
=
"$baseUrl + 'sign-up/union.png'"
class
=
"union-icon"
/>
<
image
:
src
=
"$baseUrl + 'sign-up/union.png'"
class
=
"union-icon"
/>
<
/view
>
<
/view
>
...
@@ -234,8 +236,8 @@ const hasFilledOutList = (list) => {
...
@@ -234,8 +236,8 @@ const hasFilledOutList = (list) => {
.
form
-
child
{
.
form
-
child
{
padding
:
20
rpx
;
padding
:
20
rpx
;
box
-
sizing
:
border
-
box
;
box
-
sizing
:
border
-
box
;
color
:
#
1
C1C1C
;
}
}
.
form
-
tree
{
.
form
-
tree
{
position
:
relative
;
position
:
relative
;
margin
-
bottom
:
20
rpx
;
margin
-
bottom
:
20
rpx
;
...
@@ -249,7 +251,7 @@ const hasFilledOutList = (list) => {
...
@@ -249,7 +251,7 @@ const hasFilledOutList = (list) => {
.
form
-
title
{
.
form
-
title
{
font
-
weight
:
600
;
font
-
weight
:
600
;
font
-
size
:
28
rpx
;
font
-
size
:
30
rpx
;
}
}
.
form
-
del
{
.
form
-
del
{
...
@@ -265,7 +267,7 @@ const hasFilledOutList = (list) => {
...
@@ -265,7 +267,7 @@ const hasFilledOutList = (list) => {
.
form
-
row
{
.
form
-
row
{
margin
-
bottom
:
35
rpx
;
margin
-
bottom
:
35
rpx
;
font
-
size
:
2
4
rpx
;
font
-
size
:
2
8
rpx
;
.
form
-
label
{
.
form
-
label
{
margin
:
20
rpx
0
rpx
;
margin
:
20
rpx
0
rpx
;
...
@@ -289,16 +291,22 @@ const hasFilledOutList = (list) => {
...
@@ -289,16 +291,22 @@ const hasFilledOutList = (list) => {
height
:
68
rpx
;
height
:
68
rpx
;
padding
:
0
rpx
10
rpx
;
padding
:
0
rpx
10
rpx
;
box
-
sizing
:
border
-
box
;
box
-
sizing
:
border
-
box
;
border
:
1
px
solid
#
A8A8A8
;
border
:
1
px
solid
#
D9D9D9
;
font
-
size
:
24
rpx
;
}
}
.
form
-
textarea
{
.
form
-
textarea
{
border
-
radius
:
8
rpx
;
border
-
radius
:
8
rpx
;
width
:
100
%
;
width
:
100
%
;
height
:
130
rpx
;
height
:
154
rpx
;
padding
:
10
rpx
;
line
-
height
:
1.5
;
border
:
1
px
solid
#
D9D9D9
;
font
-
size
:
24
rpx
;
}
.
textarea
-
pad
{
height
:
164
rpx
;
padding
-
bottom
:
10
rpx
;
box
-
sizing
:
border
-
box
;
box
-
sizing
:
border
-
box
;
border
:
1
px
solid
#
A8A8A8
;
}
}
.
form
-
radio
{
.
form
-
radio
{
...
@@ -306,6 +314,7 @@ const hasFilledOutList = (list) => {
...
@@ -306,6 +314,7 @@ const hasFilledOutList = (list) => {
align
-
items
:
center
;
align
-
items
:
center
;
flex
-
wrap
:
wrap
;
flex
-
wrap
:
wrap
;
width
:
calc
(
100
vw
-
59
rpx
);
width
:
calc
(
100
vw
-
59
rpx
);
font
-
size
:
26
rpx
;
.
radio
-
item
{
.
radio
-
item
{
margin
-
bottom
:
20
rpx
;
margin
-
bottom
:
20
rpx
;
...
@@ -313,10 +322,11 @@ const hasFilledOutList = (list) => {
...
@@ -313,10 +322,11 @@ const hasFilledOutList = (list) => {
.
custom
-
radio
{
.
custom
-
radio
{
margin
:
-
40
rpx
45
rpx
0
rpx
0
rpx
;
margin
:
-
40
rpx
45
rpx
0
rpx
0
rpx
;
display
:
flex
;
align
-
items
:
center
;
image
{
image
{
width
:
18
rpx
;
width
:
26
rpx
;
height
:
18
rpx
;
height
:
26
rpx
;
}
}
.
radio
-
label
{
.
radio
-
label
{
...
@@ -330,6 +340,7 @@ const hasFilledOutList = (list) => {
...
@@ -330,6 +340,7 @@ const hasFilledOutList = (list) => {
flex
-
wrap
:
wrap
;
flex
-
wrap
:
wrap
;
align
-
items
:
center
;
align
-
items
:
center
;
width
:
calc
(
100
vw
-
59
rpx
);
width
:
calc
(
100
vw
-
59
rpx
);
font
-
size
:
24
rpx
;
.
check
-
item
{
.
check
-
item
{
margin
-
bottom
:
20
rpx
;
margin
-
bottom
:
20
rpx
;
...
@@ -360,8 +371,8 @@ const hasFilledOutList = (list) => {
...
@@ -360,8 +371,8 @@ const hasFilledOutList = (list) => {
}
}
.
nocheck
-
bg
{
.
nocheck
-
bg
{
color
:
#
A8A8A8
;
color
:
#
D9D9D9
;
border
:
1
px
solid
#
A8A8A8
;
border
:
1
px
solid
#
D9D9D9
;
}
}
}
}
}
}
...
@@ -371,14 +382,17 @@ const hasFilledOutList = (list) => {
...
@@ -371,14 +382,17 @@ const hasFilledOutList = (list) => {
border
-
radius
:
8
rpx
;
border
-
radius
:
8
rpx
;
width
:
100
%
;
width
:
100
%
;
height
:
68
rpx
;
height
:
68
rpx
;
border
:
1
px
solid
#
A8A8A8
;
border
:
1
px
solid
#
D9D9D9
;
.
form
-
input
-
short
{
font
-
size
:
24
rpx
;
.
form
-
input
-
short
{
border
:
none
;
border
:
none
;
width
:
calc
(
100
%
-
120
rpx
);
width
:
calc
(
100
%
-
120
rpx
);
}
}
.
btn
{
.
btn
{
position
:
absolute
;
position
:
absolute
;
color
:
#
A8A8A8
;
color
:
#
D9D9D9
;
right
:
10
rpx
;
right
:
10
rpx
;
top
:
19
rpx
;
top
:
19
rpx
;
z
-
index
:
99
;
z
-
index
:
99
;
...
@@ -387,6 +401,7 @@ const hasFilledOutList = (list) => {
...
@@ -387,6 +401,7 @@ const hasFilledOutList = (list) => {
.
form
-
card
{
.
form
-
card
{
position
:
relative
;
position
:
relative
;
font
-
size
:
24
rpx
;
.
arrow
-
icon
{
.
arrow
-
icon
{
width
:
48
rpx
;
width
:
48
rpx
;
...
@@ -394,6 +409,7 @@ const hasFilledOutList = (list) => {
...
@@ -394,6 +409,7 @@ const hasFilledOutList = (list) => {
position
:
absolute
;
position
:
absolute
;
right
:
10
rpx
;
right
:
10
rpx
;
top
:
10
rpx
;
top
:
10
rpx
;
opacity
:
0.5
;
}
}
}
}
...
@@ -406,17 +422,20 @@ const hasFilledOutList = (list) => {
...
@@ -406,17 +422,20 @@ const hasFilledOutList = (list) => {
font
-
size
:
24
rpx
;
font
-
size
:
24
rpx
;
.
date
-
text
{
.
date
-
text
{
color
:
#
808080
;
color
:
#
D9D9D9
;
font
-
size
:
24
rpx
;
}
}
.
arrow
-
icon
{
.
arrow
-
icon
{
width
:
48
rpx
;
width
:
48
rpx
;
height
:
48
rpx
;
height
:
48
rpx
;
opacity
:
0.5
;
}
}
.
union
-
icon
{
.
union
-
icon
{
width
:
29
rpx
;
width
:
29
rpx
;
height
:
36
rpx
;
height
:
36
rpx
;
opacity
:
0.5
;
}
}
}
}
...
@@ -438,19 +457,10 @@ const hasFilledOutList = (list) => {
...
@@ -438,19 +457,10 @@ const hasFilledOutList = (list) => {
margin
-
right
:
19
rpx
;
margin
-
right
:
19
rpx
;
image
{
image
{
// width: 86rpx;
// height: 86rpx;
width
:
136
rpx
;
width
:
136
rpx
;
height
:
136
rpx
;
height
:
136
rpx
;
}
}
}
}
// :last-child
{
// .upload-image
{
// margin-right: 0rpx;
//
}
//
}
.
img
-
list
{
.
img
-
list
{
margin
-
bottom
:
15
rpx
;
margin
-
bottom
:
15
rpx
;
position
:
relative
;
position
:
relative
;
...
@@ -472,18 +482,18 @@ const hasFilledOutList = (list) => {
...
@@ -472,18 +482,18 @@ const hasFilledOutList = (list) => {
}
}
.
error
-
border
{
.
error
-
border
{
border
:
1
px
solid
red
;
border
:
1
px
solid
#
FF2828
;
}
}
.
view
-
bg
{
.
view
-
bg
{
border
:
none
;
border
:
none
;
background
-
color
:
#
F
5F5F5
;
background
-
color
:
#
F
7F7F7
;
}
}
}
}
.
line
-
dash
{
.
line
-
dash
{
border
-
bottom
:
1
px
dashed
#
A8A8A8
;
border
-
bottom
:
1
px
dashed
#
D9D9D9
;
margin
:
40
rpx
0
rpx
;
margin
:
40
rpx
0
rpx
;
}
}
...
...
subPackages/momclub/component/resultDialog.vue
View file @
ea0fb4af
...
@@ -36,6 +36,9 @@
...
@@ -36,6 +36,9 @@
</view>
</view>
</view>
</view>
</view>
</view>
<view
v-if=
"activityInfo.addressList && activityInfo.addressList.length > 2"
class=
"point"
>
···
</view>
</view>
</view>
<image
:src=
"activityInfo.contactQRCode"
mode=
"aspectFit"
:show-menu-by-longpress=
"true"
/>
<image
:src=
"activityInfo.contactQRCode"
mode=
"aspectFit"
:show-menu-by-longpress=
"true"
/>
<view
class=
"add-text"
>
<view
class=
"add-text"
>
...
@@ -113,8 +116,8 @@ const formatActivityTime = computed(() => {
...
@@ -113,8 +116,8 @@ const formatActivityTime = computed(() => {
// 格式化日期部分:25年11月1日
// 格式化日期部分:25年11月1日
const
formatDatePart
=
(
date
)
=>
{
const
formatDatePart
=
(
date
)
=>
{
const
year
=
date
.
getFullYear
().
toString
().
slice
(
-
2
);
// 取后两位
const
year
=
date
.
getFullYear
().
toString
().
slice
(
-
2
);
// 取后两位
const
month
=
date
.
getMonth
()
+
1
;
// 月份从0开始
const
month
=
(
date
.
getMonth
()
+
1
).
toString
().
padStart
(
2
,
'0'
)
;
// 月份从0开始
const
day
=
date
.
getDate
();
const
day
=
date
.
getDate
()
.
toString
().
padStart
(
2
,
'0'
)
;
return
`
${
year
}
年
${
month
}
月
${
day
}
日`
;
return
`
${
year
}
年
${
month
}
月
${
day
}
日`
;
};
};
...
@@ -138,7 +141,7 @@ const formatActivityTime = computed(() => {
...
@@ -138,7 +141,7 @@ const formatActivityTime = computed(() => {
// 不同天:25年11月1日 ~25年11月25日
// 不同天:25年11月1日 ~25年11月25日
const
startDatePart
=
formatDatePart
(
startDate
);
const
startDatePart
=
formatDatePart
(
startDate
);
const
endDatePart
=
formatDatePart
(
endDate
);
const
endDatePart
=
formatDatePart
(
endDate
);
return
`
${
startDatePart
}
~
${
endDatePart
}
`
;
return
`
${
startDatePart
}
-
${
endDatePart
}
`
;
}
}
})
})
const
datePart
=
computed
(()
=>
{
const
datePart
=
computed
(()
=>
{
...
@@ -219,7 +222,7 @@ defineExpose({
...
@@ -219,7 +222,7 @@ defineExpose({
}
}
.result-popup-goto {
.result-popup-goto {
font-size: 2
0
rpx;
font-size: 2
4
rpx;
text-align: center;
text-align: center;
text-decoration: underline;
text-decoration: underline;
color: #D3A458;
color: #D3A458;
...
@@ -316,6 +319,9 @@ defineExpose({
...
@@ -316,6 +319,9 @@ defineExpose({
}
}
}
}
}
}
.point{
line-height: 24rpx;
}
}
}
image {
image {
...
...
subPackages/momclub/index.vue
View file @
ea0fb4af
...
@@ -41,7 +41,7 @@
...
@@ -41,7 +41,7 @@
<view
v-else-if=
"Date.now() > new Date(activityInfo.signupEndTime).getTime()"
class=
"footer"
>
<view
v-else-if=
"Date.now() > new Date(activityInfo.signupEndTime).getTime()"
class=
"footer"
>
<view
class=
"button-footer"
>
<view
class=
"button-footer"
>
<image
class=
"image-bg"
:src=
"$baseUrl + 'sign-up/signup.png'"
mode=
"aspectFit"
/>
<image
class=
"image-bg"
:src=
"$baseUrl + 'sign-up/signup.png'"
mode=
"aspectFit"
/>
<
image
class=
"image-gary"
:src=
"$baseUrl + 'sign-up/gray.png'"
mode=
"aspectFit"
/
>
<
!--
<image
class=
"image-gary"
:src=
"$baseUrl + 'sign-up/gray.png'"
mode=
"aspectFit"
/>
--
>
<view
class=
"text text-gray"
>
<view
class=
"text text-gray"
>
已结束
已结束
</view>
</view>
...
@@ -69,7 +69,7 @@
...
@@ -69,7 +69,7 @@
<view
v-else
class=
"footer"
>
<view
v-else
class=
"footer"
>
<view
class=
"button-footer"
>
<view
class=
"button-footer"
>
<image
class=
"image-bg"
:src=
"$baseUrl + 'sign-up/signup.png'"
mode=
"aspectFit"
/>
<image
class=
"image-bg"
:src=
"$baseUrl + 'sign-up/signup.png'"
mode=
"aspectFit"
/>
<
image
class=
"image-gary"
:src=
"$baseUrl + 'sign-up/gray.png'"
mode=
"aspectFit"
/
>
<
!--
<image
class=
"image-gary"
:src=
"$baseUrl + 'sign-up/gray.png'"
mode=
"aspectFit"
/>
--
>
<view
class=
"text text-gray"
>
<view
class=
"text text-gray"
>
会员积分不足
会员积分不足
</view>
</view>
...
@@ -93,7 +93,7 @@
...
@@ -93,7 +93,7 @@
<view
v-else
class=
"footer"
>
<view
v-else
class=
"footer"
>
<view
class=
"button-footer"
>
<view
class=
"button-footer"
>
<image
class=
"image-bg"
:src=
"$baseUrl + 'sign-up/signup.png'"
mode=
"aspectFit"
/>
<image
class=
"image-bg"
:src=
"$baseUrl + 'sign-up/signup.png'"
mode=
"aspectFit"
/>
<
image
class=
"image-gary"
:src=
"$baseUrl + 'sign-up/gray.png'"
mode=
"aspectFit"
/
>
<
!--
<image
class=
"image-gary"
:src=
"$baseUrl + 'sign-up/gray.png'"
mode=
"aspectFit"
/>
--
>
<view
class=
"text text-gray"
>
<view
class=
"text text-gray"
>
会员等级不足
会员等级不足
</view>
</view>
...
@@ -382,6 +382,12 @@ onLoad((options) => {
...
@@ -382,6 +382,12 @@ onLoad((options) => {
});
});
query
.
value
=
options
query
.
value
=
options
})
})
// 登录获取 cuk
const
wxAutoLogin
=
async
()
=>
{
await
new
Promise
(
resolve
=>
{
userStore
.
syWxAutoLogin
(
resolve
)
})
}
onShow
(
async
()
=>
{
onShow
(
async
()
=>
{
console
.
log
(
query
.
value
,
'onShow'
)
console
.
log
(
query
.
value
,
'onShow'
)
...
@@ -389,7 +395,9 @@ onShow(async()=> {
...
@@ -389,7 +395,9 @@ onShow(async()=> {
uni
.
removeStorageSync
(
'needRefresh'
);
uni
.
removeStorageSync
(
'needRefresh'
);
isShowSignUp
.
value
=
true
isShowSignUp
.
value
=
true
}
}
if
(
query
.
value
.
share
==
'true'
){
if
(
query
.
value
.
share
==
'true'
)
{
// 确保登录以获取 cuk
await
wxAutoLogin
()
await
userStore
.
loadUserInfo
()
await
userStore
.
loadUserInfo
()
console
.
log
(
userStore
.
userInfo
,
'userStore.userInfo?.memberId'
)
console
.
log
(
userStore
.
userInfo
,
'userStore.userInfo?.memberId'
)
if
((
userStore
?.
userInfo
?.
memberId
&&
userStore
?.
userInfo
?.
memberId
==
"not_login"
)
||
!
userStore
.
userInfo
)
{
if
((
userStore
?.
userInfo
?.
memberId
&&
userStore
?.
userInfo
?.
memberId
==
"not_login"
)
||
!
userStore
.
userInfo
)
{
...
@@ -486,7 +494,6 @@ onShareAppMessage(() => {
...
@@ -486,7 +494,6 @@ onShareAppMessage(() => {
height: 146rpx;
height: 146rpx;
z-index: 99;
z-index: 99;
}
}
.container {
.container {
max-height: 840rpx;
max-height: 840rpx;
min-height: 320rpx;
min-height: 320rpx;
...
@@ -529,25 +536,25 @@ onShareAppMessage(() => {
...
@@ -529,25 +536,25 @@ onShareAppMessage(() => {
.footer {
.footer {
.button-footer {
.button-footer {
width: 5
82
rpx;
width: 5
50
rpx;
height: 100rpx;
height: 100rpx;
position: fixed;
position: fixed;
bottom: 70rpx;
bottom: 70rpx;
left: 50%;
left: 50%;
transform: translateX(-50%);
transform: translateX(-50%);
text-align: center;
text-align: center;
.image-bg {
.image-bg {
width: 100%;
height: 132rpx;
}
.image-gary {
width: 100%;
width: 100%;
height: 100%;
height: 100%;
position: absolute
;
box-shadow: 0px 12rpx 8rpx 0px #00000026
;
left: 0
;
border-radius: 160rpx
;
}
}
// .image-gary {
// width: 100%;
// height: 100%;
// position: absolute;
// left: 0;
// }
.text {
.text {
width: 100%;
width: 100%;
...
@@ -558,13 +565,13 @@ onShareAppMessage(() => {
...
@@ -558,13 +565,13 @@ onShareAppMessage(() => {
left: 50%;
left: 50%;
transform: translateX(-50%);
transform: translateX(-50%);
color: transparent;
color: transparent;
background-image: linear-gradient(
180deg, #B27C1E 14%, #4C350D 9
0%);
background-image: linear-gradient(
90deg, #916633 0%, #AB7A44 10
0%);
-webkit-background-clip: text;
-webkit-background-clip: text;
background-clip: text;
background-clip: text;
}
}
.text-gray {
.text-gray {
opacity: 0.
4
;
opacity: 0.
5
;
}
}
.tips {
.tips {
...
@@ -573,17 +580,14 @@ onShareAppMessage(() => {
...
@@ -573,17 +580,14 @@ onShareAppMessage(() => {
position: absolute;
position: absolute;
font-size: 24rpx;
font-size: 24rpx;
top: -20rpx;
top: -20rpx;
right: 0rpx;
right:
-2
0rpx;
padding: 0rpx 13rpx;
padding: 0rpx 13rpx;
border-radius: 26rpx 22rpx 22rpx
7
rpx;
border-radius: 26rpx 22rpx 22rpx
8
rpx;
color: #FFFFFF;
color: #FFFFFF;
background: linear-gradient(90deg, #
B27C1E 0%, #D3A358
100%);
background: linear-gradient(90deg, #
916633 0%, #AB7A44
100%);
text-align: center;
text-align: center;
}
}
}
}
}
}
}
}
</
style
>
</
style
>
subPackages/momclub/sign.vue
View file @
ea0fb4af
...
@@ -549,6 +549,7 @@ watch(() => formData.value, (newVal) => {
...
@@ -549,6 +549,7 @@ watch(() => formData.value, (newVal) => {
overflow: hidden;
overflow: hidden;
position: relative;
position: relative;
background-color: #F2F2F2;
background-color: #F2F2F2;
color: #1C1C1C;
.top-box {
.top-box {
width: 100%;
width: 100%;
...
...
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