Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Z
zyjj2025
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
qd01
zyjj2025
Commits
fe4d3713
Commit
fe4d3713
authored
Feb 02, 2025
by
qd01
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
开放提现
parent
125778df
Changes
8
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
618 additions
and
329 deletions
+618
-329
login.vue
app/pages/login.vue
+78
-62
index.vue
app/pages/my/index.vue
+135
-87
index.vue
app/pages/sqhz/index.vue
+250
-68
withdraw.vue
app/pages/user/withdraw.vue
+62
-36
zjmx.vue
app/pages/user/zjmx.vue
+33
-28
xieyi.png
app/static/common/xieyi.png
+0
-0
nuxt.config.ts
nuxt.config.ts
+48
-48
pnpm-lock.yaml
pnpm-lock.yaml
+12
-0
No files found.
app/pages/login.vue
View file @
fe4d3713
<
template
>
<div
class=
"auth-container"
>
<var-card
style=
"flex: 0;"
class=
"login-form"
>
<var-tabs
v-model:active=
"active"
>
<var-tab
style=
"font-size: 18px;"
>
登录
</var-tab>
<var-tab
style=
"font-size: 18px;"
>
注册
</var-tab>
</var-tabs>
<var-form
ref=
"form"
:model=
"formData"
:rules=
"rules"
>
<var-input
v-model=
"formData.username"
placeholder=
"手机号"
:rules=
"[rules.username]"
/>
<var-input
v-model=
"formData.password"
type=
"password"
placeholder=
"密码"
:rules=
"[rules.password]"
/>
<template
v-if=
"active"
>
<var-input
v-model=
"formData.confirmPassword"
type=
"password"
placeholder=
"确认密码"
:rules=
"[rules.confirmPassword]"
/>
<var-input
v-model=
"formData.inviteCode"
placeholder=
"邀请码"
:rules=
"[rules.inviteCode]"
/>
</
template
>
<var-button
class=
"btn"
block
type=
"primary"
:loading=
"loading"
:style=
"{ marginTop: active ? '59px' : '180px' }"
v-debounce=
"() => handleSubmit()"
size=
"large"
>
{{ active ? '立即注册' : '登录' }}
</var-button>
</var-form>
</var-card>
<div
class=
"warp"
>
<div
class=
"warp-item"
@
click=
"navigateTo(kfUrl, { external: true })"
>
<img
src=
"/static/common/3.png"
alt=
""
>
<span>
联系客服
</span>
</div>
<div
class=
"warp-item"
@
click=
"navigateTo(appdownload, { external: true })"
>
<img
src=
"/static/common/4.png"
alt=
""
>
<span>
APP下载
</span>
</div>
</div>
</div>
</template>
<
script
setup
lang=
"ts"
>
import
{
ref
,
reactive
}
from
'
vue
'
import
{
validatePhone
,
validatePassword
}
from
'
@/utils/validate
'
import
{
useProseStore
}
from
'
@/stores/prose
'
import
{
encrypt
}
from
'
@/utils/encrypt
'
import
{
post
}
from
'
@/utils/request
'
import
{
validatePassword
,
validatePhone
}
from
'
@/utils/validate
'
import
{
useDebounceFn
}
from
'
@vueuse/core
'
import
{
useProseStore
}
from
'
@/stores/prose
'
import
{
reactive
,
ref
}
from
'
vue
'
const
proseStore
=
useProseStore
()
proseStore
.
clearProse
()
definePageMeta
({
...
...
@@ -48,8 +13,9 @@ definePageMeta({
})
const
appdownload
=
ref
(
'
https://download.1yfang.com
'
)
const
kfUrl
=
ref
(
''
)
const
getapkversion
=
async
()
=>
{
async
function
getapkversion
()
{
const
res
=
await
get
(
'
/system/config/configKey/mous/apk_version
'
,
{})
console
.
log
(
res
)
kfUrl
.
value
=
res
.
msg
}
getapkversion
()
...
...
@@ -73,33 +39,33 @@ const rules = {
username
:
{
validator
:
(
value
:
string
)
=>
validatePhone
(
value
),
message
:
'
请输入正确的手机号
'
,
trigger
:
'
onChange
'
trigger
:
'
onChange
'
,
},
password
:
{
validator
:
(
value
:
string
)
=>
validatePassword
(
value
),
message
:
'
密码格式有误(5-20位字母数字下划线)
'
,
trigger
:
'
onChange
'
trigger
:
'
onChange
'
,
},
confirmPassword
:
{
validator
:
(
value
:
string
)
=>
value
===
formData
.
password
,
message
:
'
两次输入的密码不一致
'
,
trigger
:
'
onChange
'
trigger
:
'
onChange
'
,
},
inviteCode
:
{
required
:
active
.
value
,
message
:
'
请输入邀请码
'
,
trigger
:
'
onChange
'
}
trigger
:
'
onChange
'
,
}
,
}
// 登录处理
const
handleLogin
=
async
()
=>
{
async
function
handleLogin
()
{
try
{
loading
.
value
=
true
const
res
=
await
post
(
'
/login
'
,
{
username
:
formData
.
username
,
password
:
formData
.
password
,
type
:
'
app
'
type
:
'
app
'
,
})
if
(
res
.
code
===
200
)
{
...
...
@@ -110,18 +76,21 @@ const handleLogin = async () => {
setTimeout
(()
=>
{
navigateTo
(
'
/
'
)
},
1000
)
}
else
{
}
else
{
showFailToast
(
res
.
msg
||
'
登录失败
'
)
}
}
catch
(
error
)
{
}
catch
(
error
)
{
showFailToast
(
'
登录失败,请稍后重试
'
)
}
finally
{
}
finally
{
loading
.
value
=
false
}
}
// 注册处理
const
handleRegister
=
async
()
=>
{
async
function
handleRegister
()
{
try
{
loading
.
value
=
true
const
res
=
await
post
(
'
/register
'
,
{
...
...
@@ -129,7 +98,7 @@ const handleRegister = async () => {
password
:
encrypt
(
formData
.
password
),
code
:
''
,
type
:
encrypt
(
'
app
'
),
yqm
:
formData
.
inviteCode
yqm
:
formData
.
inviteCode
,
})
if
(
res
.
code
===
200
)
{
...
...
@@ -140,33 +109,81 @@ const handleRegister = async () => {
setTimeout
(()
=>
{
navigateTo
(
'
/
'
)
},
1000
)
}
else
{
}
else
{
showFailToast
(
res
.
msg
||
'
注册失败
'
)
}
}
catch
(
error
)
{
}
catch
(
error
)
{
console
.
error
(
'
Register error:
'
,
error
)
showFailToast
(
'
注册失败,请稍后重试
'
)
}
finally
{
}
finally
{
loading
.
value
=
false
}
}
// 表单提交(带防抖)
const
handleSubmit
=
useDebounceFn
(
async
()
=>
{
if
(
!
form
.
value
)
return
if
(
!
form
.
value
)
return
const
valid
=
await
form
.
value
.
validate
()
if
(
!
valid
)
return
if
(
!
valid
)
return
if
(
active
.
value
)
{
await
handleRegister
()
}
else
{
}
else
{
await
handleLogin
()
}
},
1000
)
</
script
>
<
template
>
<div
class=
"auth-container"
>
<var-card
style=
"flex: 0;"
class=
"login-form"
>
<var-tabs
v-model:active=
"active"
>
<var-tab
style=
"font-size: 18px;"
>
登录
</var-tab>
<var-tab
style=
"font-size: 18px;"
>
注册
</var-tab>
</var-tabs>
<var-form
ref=
"form"
:model=
"formData"
:rules=
"rules"
>
<var-input
v-model=
"formData.username"
placeholder=
"手机号"
:rules=
"[rules.username]"
/>
<var-input
v-model=
"formData.password"
type=
"password"
placeholder=
"密码"
:rules=
"[rules.password]"
/>
<template
v-if=
"active"
>
<var-input
v-model=
"formData.confirmPassword"
type=
"password"
placeholder=
"确认密码"
:rules=
"[rules.confirmPassword]"
/>
<var-input
v-model=
"formData.inviteCode"
placeholder=
"邀请码"
:rules=
"[rules.inviteCode]"
/>
</
template
>
<var-button
v-debounce=
"() => handleSubmit()"
class=
"btn"
block
type=
"primary"
:loading=
"loading"
:style=
"{ marginTop: active ? '59px' : '180px' }"
size=
"large"
>
{{ active ? '立即注册' : '登录' }}
</var-button>
</var-form>
</var-card>
<div
class=
"warp"
>
<div
class=
"warp-item"
@
click=
"navigateTo(kfUrl, { external: true })"
>
<img
src=
"/static/common/3.png"
alt=
""
>
<span>
联系客服
</span>
</div>
<div
class=
"warp-item"
@
click=
"navigateTo(appdownload, { external: true })"
>
<img
src=
"/static/common/4.png"
alt=
""
>
<span>
APP下载
</span>
</div>
</div>
</div>
</template>
<
style
lang=
"scss"
scoped
>
.auth-container
{
...
...
@@ -185,7 +202,6 @@ const handleSubmit = useDebounceFn(async () => {
background-color
:
#e62129
;
}
.warp
{
display
:
flex
;
justify-content
:
space-between
;
...
...
app/pages/my/index.vue
View file @
fe4d3713
This diff is collapsed.
Click to expand it.
app/pages/sqhz/index.vue
View file @
fe4d3713
This diff is collapsed.
Click to expand it.
app/pages/user/withdraw.vue
View file @
fe4d3713
<
script
setup
>
import
{
ref
,
watch
,
}
from
'
vue
'
import
{
ref
,
watch
}
from
'
vue
'
import
{
post
}
from
'
~/utils/request
'
const
route
=
useRoute
()
definePageMeta
({
layout
:
"
default
"
,
title
:
"
提现记录
"
,
name
:
"
withdraw
"
,
layout
:
'
default
'
,
title
:
'
提现记录
'
,
name
:
'
withdraw
'
,
keepalive
:
true
,
})
;
})
// 响应式数据
const
list
=
ref
([])
...
...
@@ -22,15 +22,15 @@ const emptyTipsShow = ref(false)
// 下拉选项
const
range
=
ref
([
{
text
:
"
生活补贴
"
,
value
:
1
},
{
text
:
"
产品收益
"
,
value
:
2
},
{
text
:
'
生活补贴
'
,
value
:
1
},
{
text
:
'
产品收益
'
,
value
:
2
},
])
// 获取路由参数中的tab
const
active
=
ref
(
Number
(
route
.
query
.
tab
)
||
1
)
// 重置列表状态
const
resetList
=
()
=>
{
function
resetList
()
{
list
.
value
=
[]
pageNum
.
value
=
1
finished
.
value
=
false
...
...
@@ -43,11 +43,11 @@ watch(active, () => {
resetList
()
})
const
getList
=
async
()
=>
{
async
function
getList
()
{
try
{
const
data
=
{
withdrawType
:
active
.
value
,
beginDate
:
"
2025-01
"
beginDate
:
''
,
}
const
res
=
await
post
(
`/ops/withdraw/list?pageNum=
${
pageNum
.
value
}
&pageSize=
${
pageSize
.
value
}
`
,
data
)
if
(
res
.
code
===
200
)
{
...
...
@@ -55,64 +55,92 @@ const getList = async () => {
total
.
value
=
res
.
total
||
0
if
(
list
.
value
.
length
>=
total
.
value
)
{
finished
.
value
=
true
}
else
{
}
else
{
pageNum
.
value
++
}
if
(
list
.
value
.
length
>=
total
.
value
)
{
finished
.
value
=
true
}
}
else
{
}
else
{
showFailToast
(
res
.
msg
||
'
加载失败
'
)
finished
.
value
=
true
}
}
catch
(
error
)
{
}
catch
(
error
)
{
console
.
error
(
'
获取列表失败:
'
,
error
)
showFailToast
(
'
加载失败,请重试
'
)
}
finally
{
}
finally
{
loading
.
value
=
false
}
}
// Tab 点击处理
const
handleClick
=
(
item
)
=>
{
if
(
active
.
value
==
item
.
value
)
return
function
handleClick
(
item
)
{
if
(
active
.
value
==
item
.
value
)
return
active
.
value
=
item
.
value
resetList
()
}
</
script
>
<
template
>
<div
class=
"wallet-detail"
>
<!-- Tabs -->
<var-tabs
v-model:active=
"active"
class=
"fixed-tabs"
>
<var-tab
:name=
"item.value"
v-for=
"item in range"
:key
=
"item.value"
@
click=
"handleClick(item)"
>
<var-tab
v-for=
"item in range"
:key=
"item.value"
:name
=
"item.value"
@
click=
"handleClick(item)"
>
{{
item
.
text
}}
</var-tab>
</var-tabs>
<!-- List -->
<van-list
class=
"list-container"
v-model:loading=
"loading"
:finished=
"finished"
finished-text=
"没有更多了"
@
load=
"getList"
>
<div
class=
"list"
v-for=
"(item, index) in list"
:key=
"index"
>
<van-list
v-model:loading=
"loading"
class=
"list-container"
:finished=
"finished"
finished-text=
"没有更多了"
@
load=
"getList"
>
<div
v-for=
"(item, index) in list"
:key=
"index"
class=
"list"
>
<div
class=
"left"
>
<div
class=
"title"
v-if=
"item.walletType == 1"
>
生活补贴
</div>
<div
class=
"title"
v-if=
"item.walletType == 2"
>
产品收益
</div>
<div
class=
"price"
>
+
{{
item
.
withdrawAmount
}}
元
</div>
<div
v-if=
"item.walletType == 1"
class=
"title"
>
生活补贴
</div>
<div
v-if=
"item.walletType == 2"
class=
"title"
>
产品收益
</div>
<div
class=
"price"
>
+
{{
item
.
withdrawAmount
}}
元
</div>
</div>
<div
class=
"left"
>
<div
class=
"title"
>
申请时间
</div>
<div
class=
"date"
>
{{
item
.
createTime
}}
</div>
<div
class=
"title"
>
申请时间
</div>
<div
class=
"date"
>
{{
item
.
createTime
}}
</div>
</div>
<div
class=
"left"
>
<div
class=
"title"
>
申请状态
</div>
<div
class=
"title"
>
申请状态
</div>
<div
class=
"date status"
>
<div
class=
"title"
v-if=
"item.status == 0"
>
待打款
</div>
<div
class=
"title"
v-if=
"item.status == 1"
>
资金校对中
</div>
<div
class=
"title success"
v-if=
"item.status == 2"
>
已到账,请查收
</div>
<div
class=
"title reject"
v-if=
"item.status == 3"
>
驳回
</div>
<div
class=
"title reject"
v-if=
"item.status == 4"
>
请先申请化债/扶贫后统一提现
</div>
<div
v-if=
"item.status == 0"
class=
"title"
>
待打款
</div>
<div
v-if=
"item.status == 1"
class=
"title"
>
资金校对中
</div>
<div
v-if=
"item.status == 2"
class=
"title success"
>
已到账,请查收
</div>
<div
v-if=
"item.status == 3"
class=
"title reject"
>
驳回
</div>
<div
v-if=
"item.status == 4"
class=
"title reject"
>
请先申请化债/扶贫后统一提现
</div>
</div>
</div>
<!--
<var-steps
:current=
"item.status"
dot
>
...
...
@@ -122,7 +150,6 @@ const handleClick = (item) => {
<var-step
v-if=
"item.status >= 3"
>
到账失败
</var-step>
</var-steps>
-->
</div>
</van-list>
</div>
</
template
>
...
...
@@ -147,7 +174,6 @@ const handleClick = (item) => {
background
:
#f5f6f8
;
}
.list
{
background
:
#fff
;
margin-bottom
:
10px
;
...
...
@@ -172,7 +198,7 @@ const handleClick = (item) => {
.date
{
font-size
:
12px
;
color
:
#
B2B2B
2
;
color
:
#
b2b2b
2
;
height
:
1
.5vh
;
line-height
:
1
.5vh
;
...
...
app/pages/user/zjmx.vue
View file @
fe4d3713
...
...
@@ -5,11 +5,11 @@ import { post } from '~/utils/request'
const
route
=
useRoute
()
definePageMeta
({
layout
:
"
default
"
,
title
:
"
资金明细
"
,
name
:
"
zjmx
"
,
layout
:
'
default
'
,
title
:
'
资金明细
'
,
name
:
'
zjmx
'
,
keepalive
:
true
,
})
;
})
// 响应式数据
const
list
=
ref
([])
...
...
@@ -22,18 +22,18 @@ const emptyTipsShow = ref(false)
// 下拉选项
const
range
=
ref
([
{
text
:
"
信用分
"
,
value
:
0
},
{
text
:
"
生活补贴
"
,
value
:
1
},
{
text
:
"
产品收益
"
,
value
:
2
},
{
text
:
"
公司分红
"
,
value
:
5
},
{
text
:
"
分销奖励
"
,
value
:
6
},
{
text
:
'
信用分
'
,
value
:
0
},
{
text
:
'
生活补贴
'
,
value
:
1
},
{
text
:
'
产品收益
'
,
value
:
2
},
{
text
:
'
公司分红
'
,
value
:
5
},
{
text
:
'
分销奖励
'
,
value
:
6
},
])
// 获取路由参数中的tab
const
active
=
ref
(
Number
(
route
.
query
.
tab
)
||
0
)
// 重置列表状态
const
resetList
=
()
=>
{
function
resetList
()
{
list
.
value
=
[]
pageNum
.
value
=
1
finished
.
value
=
false
...
...
@@ -44,18 +44,19 @@ const resetList = () => {
}
// Tab 点击处理
const
handleClick
=
(
item
)
=>
{
if
(
active
.
value
===
item
.
value
)
return
function
handleClick
(
item
)
{
if
(
active
.
value
===
item
.
value
)
return
active
.
value
=
item
.
value
resetList
()
}
const
getList
=
async
()
=>
{
async
function
getList
()
{
if
(
loading
.
value
)
{
// 添加loading检查,避免重复请求
try
{
const
data
=
{
balanceType
:
active
.
value
,
beginDate
:
"
2025-01
"
beginDate
:
''
,
}
const
res
=
await
post
(
`/ops/walletdetail/list?pageNum=
${
pageNum
.
value
}
&pageSize=
${
pageSize
.
value
}
`
,
{
...
data
,
...
...
@@ -65,17 +66,21 @@ const getList = async () => {
total
.
value
=
res
.
total
||
0
if
(
list
.
value
.
length
>=
total
.
value
)
{
finished
.
value
=
true
}
else
{
}
else
{
pageNum
.
value
++
}
}
else
{
}
else
{
showFailToast
(
res
.
msg
||
'
加载失败
'
)
finished
.
value
=
true
}
}
catch
(
error
)
{
}
catch
(
error
)
{
console
.
error
(
'
获取列表失败:
'
,
error
)
showFailToast
(
'
加载失败,请重试
'
)
}
finally
{
}
finally
{
loading
.
value
=
false
}
}
...
...
@@ -98,8 +103,8 @@ onMounted(() => {
<!-- List -->
<van-list
class=
"list-container"
v-model:loading=
"loading"
class=
"list-container"
:finished=
"finished"
finished-text=
"没有更多了"
@
load=
"getList"
...
...
@@ -110,11 +115,11 @@ onMounted(() => {
<div
class=
"type-info"
>
<span
class=
"type-text"
>
{{
item
.
balanceType
==
0
?
'
信用分
'
:
item
.
balanceType
==
1
?
'
生活补贴
'
:
item
.
balanceType
==
2
?
'
产品收益
'
:
item
.
balanceType
==
5
?
'
公司分红
'
:
item
.
balanceType
==
6
?
'
分销奖励
'
:
''
item
.
balanceType
==
0
?
'
信用分
'
:
item
.
balanceType
==
1
?
'
生活补贴
'
:
item
.
balanceType
==
2
?
'
产品收益
'
:
item
.
balanceType
==
5
?
'
公司分红
'
:
item
.
balanceType
==
6
?
'
分销奖励
'
:
''
}}
</span>
</div>
...
...
app/static/common/xieyi.png
0 → 100644
View file @
fe4d3713
This diff is collapsed.
Click to expand it.
nuxt.config.ts
View file @
fe4d3713
import
process
from
"
node:process
"
;
import
{
appDescription
}
from
"
./app/constants/index
"
;
import
process
from
'
node:process
'
import
obfuscatorPlugin
from
'
vite-plugin-javascript-obfuscator
'
import
{
appDescription
}
from
'
./app/constants/index
'
import
preload
from
'
./app/utils/preload
'
import
obfuscatorPlugin
from
"
vite-plugin-javascript-obfuscator
"
;
export
default
defineNuxtConfig
({
nitro
:
{
devProxy
:
{
'
/api
'
:
{
// target: 'http://27.124.5.14:901
4
', // 你要代理的目标地址
target
:
'
https://w
be.1yfang
.com:6443/api
'
,
// 你要代理的目标地址
// target: 'http://27.124.5.14:901
2
', // 你要代理的目标地址
target
:
'
https://w
ww.mxr2020
.com:6443/api
'
,
// 你要代理的目标地址
changeOrigin
:
true
,
prependPath
:
true
,
rewrite
:
(
path
:
string
)
=>
path
.
replace
(
/^
\/
api/
,
''
)
}
rewrite
:
(
path
:
string
)
=>
path
.
replace
(
/^
\/
api/
,
''
)
,
}
,
},
minify
:
true
,
compressPublicAssets
:
true
,
...
...
@@ -21,13 +22,13 @@ export default defineNuxtConfig({
},
modules
:
[
"
@unocss/nuxt
"
,
"
@nuxtjs/color-mode
"
,
"
@nuxt/eslint
"
,
"
@pinia/nuxt
"
,
"
pinia-plugin-persistedstate/nuxt
"
,
"
@varlet/nuxt
"
,
'
@vant/nuxt
'
'
@unocss/nuxt
'
,
'
@nuxtjs/color-mode
'
,
'
@nuxt/eslint
'
,
'
@pinia/nuxt
'
,
'
pinia-plugin-persistedstate/nuxt
'
,
'
@varlet/nuxt
'
,
'
@vant/nuxt
'
,
],
runtimeConfig
:
{
public
:
{
...
...
@@ -35,69 +36,69 @@ export default defineNuxtConfig({
},
},
plugins
:
[
'
~/plugins/debounce.js
'
'
~/plugins/debounce.js
'
,
],
css
:
[
"
@unocss/reset/tailwind.css
"
,
"
./app/styles/vars.css
"
,
"
./app/styles/global.css
"
,
"
./app/styles/default-theme.css
"
,
'
@unocss/reset/tailwind.css
'
,
'
./app/styles/vars.css
'
,
'
./app/styles/global.css
'
,
'
./app/styles/default-theme.css
'
,
],
postcss
:
{
plugins
:
{
autoprefixer
:
{},
'
autoprefixer
'
:
{},
// https://github.com/wswmsword/postcss-mobile-forever
"
postcss-mobile-forever
"
:
{
appSelector
:
"
#__nuxt
"
,
'
postcss-mobile-forever
'
:
{
appSelector
:
'
#__nuxt
'
,
viewportWidth
:
375
,
maxDisplayWidth
:
600
,
// devtools excluded
exclude
:
/@nuxt/
,
border
:
true
,
rootContainingBlockSelectorList
:
[
"
van-tabbar
"
,
"
van-popup
"
],
rootContainingBlockSelectorList
:
[
'
van-tabbar
'
,
'
van-popup
'
],
},
},
},
colorMode
:
{
classSuffix
:
""
,
preference
:
"
system
"
,
fallback
:
"
light
"
,
storageKey
:
"
nuxt-color-mode
"
,
classSuffix
:
''
,
preference
:
'
system
'
,
fallback
:
'
light
'
,
storageKey
:
'
nuxt-color-mode
'
,
},
app
:
{
pageTransition
:
{
name
:
'
fade
'
,
mode
:
'
out-in
'
// 默认值
mode
:
'
out-in
'
,
// 默认值
},
layoutTransition
:
{
name
:
'
fade
'
,
mode
:
'
out-in
'
// 默认值
mode
:
'
out-in
'
,
// 默认值
},
head
:
{
viewport
:
"
width=device-width,initial-scale=1,viewport-fit=cover
"
,
link
:
[{
rel
:
"
icon
"
,
href
:
"
/favicon.ico
"
,
sizes
:
"
any
"
}],
viewport
:
'
width=device-width,initial-scale=1,viewport-fit=cover
'
,
link
:
[{
rel
:
'
icon
'
,
href
:
'
/favicon.ico
'
,
sizes
:
'
any
'
}],
meta
:
[
{
name
:
"
viewport
"
,
content
:
"
width=device-width, initial-scale=1, viewport-fit=cover
"
,
name
:
'
viewport
'
,
content
:
'
width=device-width, initial-scale=1, viewport-fit=cover
'
,
},
{
name
:
"
description
"
,
content
:
appDescription
},
{
name
:
'
description
'
,
content
:
appDescription
},
{
name
:
"
apple-mobile-web-app-status-bar-style
"
,
content
:
"
black-translucent
"
,
name
:
'
apple-mobile-web-app-status-bar-style
'
,
content
:
'
black-translucent
'
,
},
{
name
:
"
theme-color
"
,
media
:
"
(prefers-color-scheme: light)
"
,
content
:
"
#ffffff
"
,
name
:
'
theme-color
'
,
media
:
'
(prefers-color-scheme: light)
'
,
content
:
'
#ffffff
'
,
},
{
name
:
"
theme-color
"
,
media
:
"
(prefers-color-scheme: dark)
"
,
content
:
"
#222222
"
,
name
:
'
theme-color
'
,
media
:
'
(prefers-color-scheme: dark)
'
,
content
:
'
#222222
'
,
},
],
script
:
[
...
...
@@ -120,7 +121,7 @@ export default defineNuxtConfig({
// }),
],
build
:
{
target
:
"
es2015
"
,
// 已经正确设置为 es2015
target
:
'
es2015
'
,
// 已经正确设置为 es2015
minify
:
'
terser
'
,
terserOptions
:
{
compress
:
{
...
...
@@ -135,7 +136,7 @@ export default defineNuxtConfig({
},
},
optimizeDeps
:
{
include
:
[
"
@intlify/core-base
"
,
"
@intlify/shared
"
,
"
is-https
"
],
include
:
[
'
@intlify/core-base
'
,
'
@intlify/shared
'
,
'
is-https
'
],
},
},
...
...
@@ -189,7 +190,6 @@ export default defineNuxtConfig({
compatibilityVersion
:
4
,
},
compatibilityDate
:
"
2024-09-24
"
,
compatibilityDate
:
'
2024-09-24
'
,
})
;
})
pnpm-lock.yaml
View file @
fe4d3713
...
...
@@ -41,6 +41,9 @@ importers:
qrcode
:
specifier
:
^1.5.4
version
:
1.5.4
sign-canvas-plus
:
specifier
:
^2.0.3
version
:
2.0.3(typescript@5.7.2)
vue
:
specifier
:
^3.5.13
version
:
3.5.13(typescript@5.7.2)
...
...
@@ -4927,6 +4930,9 @@ packages:
resolution
:
{
integrity
:
sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==
}
engines
:
{
node
:
'
>=
0.4'
}
sign-canvas-plus@2.0.3
:
resolution
:
{
integrity
:
sha512-EHcE9Z8SATs5UvQC/G5zLGmdznlepaar552i/w6W81+893NizjNEMUxXPaB46fEpwq/M+8T1C4BnTSk4NtpJsA==
}
signal-exit@3.0.7
:
resolution
:
{
integrity
:
sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==
}
...
...
@@ -11438,6 +11444,12 @@ snapshots:
side-channel-map
:
1.0.1
side-channel-weakmap
:
1.0.2
sign-canvas-plus@2.0.3(typescript@5.7.2)
:
dependencies
:
vue
:
3.5.13(typescript@5.7.2)
transitivePeerDependencies
:
-
typescript
signal-exit@3.0.7
:
{}
signal-exit@4.1.0
:
{}
...
...
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