Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DCloud
hello_uni-id-pages
提交
d9820861
H
hello_uni-id-pages
项目概览
DCloud
/
hello_uni-id-pages
通知
1054
Star
31
Fork
43
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
4
列表
看板
标记
里程碑
合并请求
2
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
H
hello_uni-id-pages
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
4
Issue
4
列表
看板
标记
里程碑
合并请求
2
合并请求
2
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
d9820861
编写于
2月 03, 2023
作者:
DCloud_JSON
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
v1.1.1
上级
ff810503
变更
14
显示空白变更内容
内联
并排
Showing
14 changed file
with
1057 addition
and
1187 deletion
+1057
-1187
manifest.json
manifest.json
+1
-1
uni_modules/uni-id-pages/changelog.md
uni_modules/uni-id-pages/changelog.md
+1
-1
uni_modules/uni-id-pages/common/login-page.mixin.js
uni_modules/uni-id-pages/common/login-page.mixin.js
+1
-2
uni_modules/uni-id-pages/components/uni-id-pages-avatar/uni-id-pages-avatar.vue
...es/components/uni-id-pages-avatar/uni-id-pages-avatar.vue
+64
-25
uni_modules/uni-id-pages/components/uni-id-pages-fab-login/uni-id-pages-fab-login.vue
...ponents/uni-id-pages-fab-login/uni-id-pages-fab-login.vue
+0
-21
uni_modules/uni-id-pages/components/uni-id-pages-user-profile/uni-id-pages-user-profile.vue
...s/uni-id-pages-user-profile/uni-id-pages-user-profile.vue
+0
-171
uni_modules/uni-id-pages/package.json
uni_modules/uni-id-pages/package.json
+1
-1
uni_modules/uni-id-pages/pages/login/login-withoutpwd.vue
uni_modules/uni-id-pages/pages/login/login-withoutpwd.vue
+234
-234
uni_modules/uni-id-pages/pages/userinfo/userinfo.vue
uni_modules/uni-id-pages/pages/userinfo/userinfo.vue
+254
-246
uni_modules/uni-id-pages/uniCloud/database/uni-id-users.schema.json
...s/uni-id-pages/uniCloud/database/uni-id-users.schema.json
+11
-2
uni_modules/uni-popup/changelog.md
uni_modules/uni-popup/changelog.md
+6
-0
uni_modules/uni-popup/components/uni-popup-dialog/uni-popup-dialog.vue
...ni-popup/components/uni-popup-dialog/uni-popup-dialog.vue
+6
-2
uni_modules/uni-popup/components/uni-popup/uni-popup.vue
uni_modules/uni-popup/components/uni-popup/uni-popup.vue
+473
-473
uni_modules/uni-popup/package.json
uni_modules/uni-popup/package.json
+5
-8
未找到文件。
manifest.json
浏览文件 @
d9820861
...
...
@@ -107,7 +107,7 @@
"quickapp"
:
{},
/*
小程序特有相关
*/
"mp-weixin"
:
{
"appid"
:
"wx
1002f172d7719592
"
,
"appid"
:
"wx
999bf02c8e05dfc9
"
,
"setting"
:
{
"urlCheck"
:
false
},
...
...
uni_modules/uni-id-pages/changelog.md
浏览文件 @
d9820861
## 1.1.1(2023-02-02)
-
修复 Vue3下 一键登录条款勾选框选中状态未同步到页面 的问题
-
新增 微信小程序端 支持选择使用微信资料的“头像”和“昵称” 设置用户资料
[
详情参考
](
https://wdoc-76491.picgzc.qpic.cn/MTY4ODg1MDUyNzQyMDUxNw_21263_rTNhg68FTngQGdvQ_1647431233?w=1280&h=695.7176470588236
)
## 1.1.0(2023-01-31)
-
【重要】优化 小程序端资源包大小(运行时大小为:731KB,发行后为:583KB;注:可以直接将本插件作为分包使用)
-
更新 微信小程序端 上传头像功能 用
`wx.cropImage`
实现图片裁剪
...
...
uni_modules/uni-id-pages/common/login-page.mixin.js
浏览文件 @
d9820861
...
...
@@ -68,7 +68,6 @@ let mixin = {
}
},
set
(
agree
)
{
console
.
log
(
'
set(agree)
'
,
agree
);
if
(
this
.
$refs
.
agreements
)
{
this
.
$refs
.
agreements
.
isAgree
=
agree
}
else
{
...
...
uni_modules/uni-id-pages/components/uni-id-pages-avatar/uni-id-pages-avatar.vue
浏览文件 @
d9820861
<
template
>
<
view
@
click=
"uploadAvatarImg"
class=
"box"
:class=
"
{'showBorder':border}" :style="{width,height,lineHeight:height}">
<
button
open-type=
"chooseAvatar"
@
chooseavatar=
"bindchooseavatar"
@
click=
"uploadAvatarImg"
class=
"box"
:class=
"
{'showBorder':border}" :style="{width,height,lineHeight:height}">
<cloud-image
v-if=
"avatar_file"
:src=
"avatar_file.url"
:width=
"width"
:height=
"height"
></cloud-image>
<uni-icons
v-else
:style=
"
{width,height,lineHeight:height}" class="chooseAvatar" type="plusempty" size="30"
color="#dddddd">
</uni-icons>
</
view
>
</
button
>
</
template
>
<
script
>
...
...
@@ -66,12 +66,70 @@
// 使用 clientDB 提交数据
mutations
.
updateUserInfo
({
avatar_file
})
},
async
bindchooseavatar
(
res
){
let
avatarUrl
=
res
.
detail
.
avatarUrl
let
avatar_file
=
{
extname
:
avatarUrl
.
split
(
'
.
'
)[
avatarUrl
.
split
(
'
.
'
).
length
-
1
],
name
:
''
,
url
:
avatarUrl
}
// 裁剪
let
filePath
=
await
new
Promise
((
callback
)
=>
{
wx
.
cropImage
({
src
:
avatarUrl
,
cropScale
:
"
1:1
"
,
success
:
res
=>
{
callback
(
res
.
tempFilePath
)
},
fail
(
e
){
console
.
error
(
e
)
uni
.
showModal
({
content
:
'
wx.cropImage
'
+
e
.
errMsg
,
showCancel
:
false
,
confirmText
:
"
跳过裁剪
"
,
complete
()
{
callback
(
avatarUrl
)
}
});
}
})
})
//上传到服务器
let
cloudPath
=
this
.
userInfo
.
_id
+
''
+
Date
.
now
()
avatar_file
.
name
=
cloudPath
try
{
uni
.
showLoading
({
title
:
"
更新中
"
,
mask
:
true
});
let
{
fileID
}
=
await
uniCloud
.
uploadFile
({
filePath
,
cloudPath
,
fileType
:
"
image
"
});
avatar_file
.
url
=
fileID
uni
.
hideLoading
()
}
catch
(
e
){
console
.
error
(
e
);
}
this
.
setAvatarFile
(
avatar_file
)
},
uploadAvatarImg
(
res
)
{
// #ifdef MP-WEIXIN
return
false
// 微信小程序走 bindchooseavatar方法
// #endif
if
(
!
this
.
hasLogin
){
return
uni
.
navigateTo
({
url
:
'
/uni_modules/uni-id-pages/pages/login/login-withoutpwd
'
})
}
const
crop
=
{
quality
:
100
,
width
:
600
,
...
...
@@ -113,27 +171,6 @@
});
}
// #endif
// #ifdef MP-WEIXIN
wx
.
cropImage
({
src
:
filePath
,
cropScale
:
"
1:1
"
,
success
:
res
=>
{
callback
(
res
.
tempFilePath
)
},
fail
(
e
){
console
.
error
(
e
)
uni
.
showModal
({
content
:
'
wx.cropImage
'
+
e
.
errMsg
,
showCancel
:
false
,
confirmText
:
"
跳过裁剪
"
,
complete
()
{
callback
(
filePath
)
}
});
}
})
// #endif
})
// #endif
...
...
@@ -166,13 +203,15 @@
overflow
:
hidden
;
}
/* #endif */
.box
{
padding
:
0
;
}
.chooseAvatar
{
/* #ifndef APP-NVUE */
display
:
inline-block
;
box-sizing
:
border-box
;
/* #endif */
border
:
dotted
1px
#ddd
;
border-radius
:
10px
;
text-align
:
center
;
padding
:
1px
;
...
...
uni_modules/uni-id-pages/components/uni-id-pages-fab-login/uni-id-pages-fab-login.vue
浏览文件 @
d9820861
...
...
@@ -7,9 +7,6 @@
<text
class=
"login-title"
>
{{
item
.
text
}}
</text>
</view>
</view>
<!-- #ifdef MP-WEIXIN -->
<uni-id-pages-user-profile
@
next=
"doUserProfileNext"
ref=
"userProfile"
></uni-id-pages-user-profile>
<!-- #endif -->
</view>
</
template
>
<
script
>
...
...
@@ -442,17 +439,6 @@
icon
:
'
none
'
,
duration
:
2000
});
// #ifdef MP-WEIXIN
//如果是微信小程序端的微信登录,且为首次登录,就弹出获取微信昵称+头像用于绑定资料
if
([
'
weixin
'
,
'
weixinMobile
'
].
includes
(
type
)
&&
result
.
type
==
"
register
"
)
{
mutations
.
loginSuccess
({
...
result
,
showToast
:
false
,
autoBack
:
false
})
return
this
.
$refs
.
userProfile
.
open
(
result
.
uid
)
}
// #endif
// #ifdef H5
result
.
loginType
=
type
// #endif
...
...
@@ -472,13 +458,6 @@
uni
.
hideLoading
()
})
},
doUserProfileNext
()
{
try
{
mutations
.
loginSuccess
()
}
catch
(
e
)
{
console
.
log
(
e
);
}
},
async
getUserInfo
(
e
)
{
return
new
Promise
((
resolve
,
reject
)
=>
{
uni
.
getUserInfo
({
...
...
uni_modules/uni-id-pages/components/uni-id-pages-user-profile/uni-id-pages-user-profile.vue
已删除
100644 → 0
浏览文件 @
ff810503
<
template
>
<uni-popup
ref=
"popup"
type=
"bottom"
>
<view
class=
"box"
>
<text
class=
"headBox"
>
绑定资料
</text>
<text
class=
"tip"
>
获取你的微信头像和昵称,完善你的个人资料
</text>
<view
class=
"btnBox"
>
<text
@
click=
"closeMe"
class=
"close"
>
关闭
</text>
<button
class=
"agree uni-btn"
type=
"primary"
@
click=
"getUserProfile"
>
确定
</button>
</view>
</view>
</uni-popup>
</
template
>
<
script
>
const
db
=
uniCloud
.
database
();
const
usersTable
=
db
.
collection
(
'
uni-id-users
'
)
let
userId
=
''
export
default
{
emits
:[
'
next
'
],
data
()
{
return
{}
},
methods
:
{
async
open
(
uid
){
userId
=
uid
this
.
$refs
.
popup
.
open
()
},
async
getUserProfile
(){
uni
.
showLoading
();
let
res
=
await
new
Promise
((
callBack
)
=>
{
uni
.
getUserProfile
({
desc
:
"
用于设置账户昵称和头像
"
,
complete
:
(
e
)
=>
{
callBack
(
e
)
}
})
})
if
(
res
.
errMsg
!=
"
getUserProfile:ok
"
){
return
this
.
closeMe
()
}
let
{
avatarUrl
,
nickName
}
=
res
.
userInfo
;
let
tempFilePath
=
await
new
Promise
((
callBack
)
=>
{
uni
.
downloadFile
({
url
:
avatarUrl
,
success
:
(
res
)
=>
{
if
(
res
.
statusCode
===
200
)
{
// console.log('下载成功');
callBack
(
res
.
tempFilePath
)
}
callBack
()
},
fail
:
(
err
)
=>
{
console
.
error
(
err
)
},
complete
:
(
e
)
=>
{
// console.log("downloadFile",e);
}
});
})
const
extName
=
tempFilePath
.
split
(
'
.
'
).
pop
()
||
'
jpg
'
const
cloudPath
=
'
user/avatar/
'
+
userId
+
'
/
'
+
Date
.
now
()
+
'
-avatar.
'
+
extName
;
const
result
=
await
uniCloud
.
uploadFile
({
filePath
:
tempFilePath
,
cloudPath
,
fileType
:
'
image
'
});
let
userInfo
=
{
"
nickname
"
:
nickName
,
"
avatar_file
"
:{
name
:
cloudPath
,
extname
:
"
jpg
"
,
url
:
result
.
fileID
}
}
this
.
doUpdate
(
userInfo
,()
=>
{
this
.
$refs
.
popup
.
close
()
})
},
closeMe
(
e
){
uni
.
showLoading
();
this
.
doUpdate
({
nickname
:
"
匿名微信用户
"
},()
=>
{
uni
.
hideLoading
()
this
.
$refs
.
popup
.
close
()
})
},
doUpdate
(
data
,
callback
){
// 使用 clientDB 提交数据
usersTable
.
where
(
'
_id==$env.uid
'
).
update
(
data
).
then
((
res
)
=>
{
callback
(
res
)
}).
catch
((
err
)
=>
{
uni
.
showModal
({
content
:
err
.
message
||
'
请求服务失败
'
,
showCancel
:
false
})
callback
(
err
)
}).
finally
(()
=>
{
this
.
$emit
(
'
next
'
)
uni
.
hideLoading
()
})
}
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
@import
"@/uni_modules/uni-id-pages/common/login-page.scss"
;
view
{
display
:
flex
;
}
.box
{
background-color
:
#FFFFFF
;
height
:
200px
;
width
:
750rpx
;
flex-direction
:
column
;
border-top-left-radius
:
15px
;
border-top-right-radius
:
15px
;
}
.headBox
{
padding
:
20rpx
;
height
:
80rpx
;
line-height
:
80rpx
;
text-align
:
left
;
font-size
:
16px
;
color
:
#333333
;
margin-left
:
15rpx
;
}
.tip
{
color
:
#666666
;
text-align
:
left
;
justify-content
:
center
;
margin
:
10rpx
30rpx
;
font-size
:
18px
;
}
.btnBox
{
margin-top
:
45rpx
;
justify-content
:
center
;
flex-direction
:
row
;
}
.close
,
.agree
{
text-align
:
center
;
width
:
200rpx
;
height
:
80upx
;
line-height
:
80upx
;
border-radius
:
5px
;
margin
:
0
20rpx
;
font-size
:
14px
;
}
.close
{
color
:
#999999
;
border-color
:
#EEEEEE
;
border-style
:
solid
;
border-width
:
1px
;
background-color
:
#FFFFFF
;
}
.close
:active
{
color
:
#989898
;
background-color
:
#E2E2E2
;
}
.agree
{
color
:
#FFFFFF
;
}
/* #ifdef MP */
.
agree
:
:
after
{
border
:
none
;
}
/* #endif */
.agree
:active
{
background-color
:
#F5F5F6
;
}
</
style
>
uni_modules/uni-id-pages/package.json
浏览文件 @
d9820861
{
"id"
:
"uni-id-pages"
,
"displayName"
:
"uni-id-pages"
,
"version"
:
"1.1.
0
"
,
"version"
:
"1.1.
1
"
,
"description"
:
"云端一体简单、统一、可扩展的用户中心页面模版"
,
"keywords"
:
[
"用户管理"
,
...
...
uni_modules/uni-id-pages/pages/login/login-withoutpwd.vue
浏览文件 @
d9820861
uni_modules/uni-id-pages/pages/userinfo/userinfo.vue
浏览文件 @
d9820861
...
...
@@ -20,8 +20,8 @@
</uni-list>
<!-- #endif -->
<uni-popup
ref=
"dialog"
type=
"dialog"
>
<uni-popup-dialog
mode=
"input"
:value=
"userInfo.nickname"
@
confirm=
"setNickname"
title=
"设置昵称"
placeholder=
"请输入要设置的昵称"
>
<uni-popup-dialog
mode=
"input"
:value=
"userInfo.nickname"
@
confirm=
"setNickname"
:inputType=
"setNicknameIng?'nickname':'text'"
title=
"设置昵称"
placeholder=
"请输入要设置的昵称"
>
</uni-popup-dialog>
</uni-popup>
<uni-id-pages-bind-mobile
ref=
"bind-mobile-by-sms"
@
success=
"bindMobileSuccess"
></uni-id-pages-bind-mobile>
...
...
@@ -57,8 +57,9 @@
// mobile:'',
// nickname:''
// },
hasPwd
:
false
,
showLoginManage
:
false
//通过页面传参隐藏登录&退出登录按钮
hasPwd
:
false
,
showLoginManage
:
false
,
//通过页面传参隐藏登录&退出登录按钮
setNicknameIng
:
false
}
},
async
onShow
()
{
...
...
@@ -66,8 +67,8 @@
this
.
univerifyStyle
.
otherLoginButton
.
title
=
"
其他号码绑定
"
},
async
onLoad
(
e
)
{
if
(
e
.
showLoginManage
){
this
.
showLoginManage
=
true
//通过页面传参隐藏登录&退出登录按钮
if
(
e
.
showLoginManage
)
{
this
.
showLoginManage
=
true
//通过页面传参隐藏登录&退出登录按钮
}
//判断当前用户是否有密码,否则就不显示密码修改功能
let
res
=
await
uniIdCo
.
getAccountInfo
()
...
...
@@ -82,13 +83,13 @@
}
})
},
logout
()
{
logout
()
{
mutations
.
logout
()
},
bindMobileSuccess
()
{
bindMobileSuccess
()
{
mutations
.
updateUserInfo
()
},
changePassword
()
{
changePassword
()
{
uni
.
navigateTo
({
url
:
'
/uni_modules/uni-id-pages/pages/userinfo/change_pwd/change_pwd
'
,
complete
:
(
e
)
=>
{
...
...
@@ -127,7 +128,7 @@
mutations
.
updateUserInfo
()
}).
catch
(
e
=>
{
console
.
log
(
e
);
}).
finally
(
e
=>
{
}).
finally
(
e
=>
{
// console.log(e);
uni
.
closeAuthView
()
})
...
...
@@ -147,15 +148,19 @@
},
setNickname
(
nickname
)
{
if
(
nickname
)
{
mutations
.
updateUserInfo
({
nickname
})
mutations
.
updateUserInfo
({
nickname
})
this
.
setNicknameIng
=
false
this
.
$refs
.
dialog
.
close
()
}
else
{
this
.
setNicknameIng
=
true
this
.
$refs
.
dialog
.
open
()
}
},
deactivate
()
{
deactivate
()
{
uni
.
navigateTo
({
url
:
"
/uni_modules/uni-id-pages/pages/userinfo/deactivate/deactivate
"
url
:
"
/uni_modules/uni-id-pages/pages/userinfo/deactivate/deactivate
"
})
},
async
bindThirdAccount
(
provider
)
{
...
...
@@ -165,7 +170,7 @@
alipay
:
'
ali_openid
'
,
apple
:
'
apple_openid
'
,
qq
:
'
qq_openid
'
}
[
provider
.
toLowerCase
()]
}
[
provider
.
toLowerCase
()]
if
(
this
.
userInfo
[
bindField
])
{
await
uniIdCo
[
'
unbind
'
+
provider
]()
...
...
@@ -175,7 +180,9 @@
provider
:
provider
.
toLowerCase
(),
onlyAuthorize
:
true
,
success
:
async
e
=>
{
const
res
=
await
uniIdCo
[
'
bind
'
+
provider
]({
code
:
e
.
code
})
const
res
=
await
uniIdCo
[
'
bind
'
+
provider
]({
code
:
e
.
code
})
if
(
res
.
errCode
)
{
uni
.
showToast
({
title
:
res
.
errMsg
||
'
绑定失败
'
,
...
...
@@ -195,7 +202,6 @@
}
</
script
>
<
style
lang=
"scss"
scoped
>
@import
"@/uni_modules/uni-id-pages/common/login-page.scss"
;
.uni-content
{
...
...
@@ -208,6 +214,7 @@
box-sizing
:
border-box
;
flex-direction
:
column
;
}
@media
screen
and
(
min-width
:
690px
)
{
.uni-content
{
padding
:
0
;
...
...
@@ -219,6 +226,7 @@
box-shadow
:
none
;
}
}
/* #endif */
.avatar
{
align-items
:
center
;
...
...
@@ -242,7 +250,7 @@
width
:
80%
;
}
.mt10
{
.mt10
{
margin-top
:
10px
;
}
</
style
>
uni_modules/uni-id-pages/uniCloud/database/uni-id-users.schema.json
浏览文件 @
d9820861
...
...
@@ -330,6 +330,15 @@
},
"title"
:
"角色"
},
"tags"
:{
"bsonType"
:
"array"
,
"description"
:
"用户标签"
,
"permission"
:
{
"read"
:
"doc._id == auth.uid || 'READ_UNI_ID_USERS' in auth.permission"
,
"write"
:
"'CREATE_UNI_ID_USERS' in auth.permission || 'UPDATE_UNI_ID_USERS' in auth.permission"
},
"title"
:
"标签"
},
"score"
:
{
"bsonType"
:
"int"
,
"description"
:
"用户积分,积分变更记录可参考:uni-id-scores表定义"
,
...
...
@@ -369,7 +378,7 @@
"bsonType"
:
"array"
,
"description"
:
"用户token"
,
"permission"
:
{
"read"
:
"'READ_UNI_ID_USERS' in auth.permission"
,
"read"
:
false
,
"write"
:
"'CREATE_UNI_ID_USERS' in auth.permission || 'UPDATE_UNI_ID_USERS' in auth.permission"
}
},
...
...
@@ -379,7 +388,7 @@
"title"
:
"用户名"
,
"trim"
:
"both"
,
"permission"
:
{
"read"
:
"doc._id == auth.uid || 'READ_UNI_ID_USERS' in auth.permission"
,
"read"
:
true
,
"write"
:
"'CREATE_UNI_ID_USERS' in auth.permission || 'UPDATE_UNI_ID_USERS' in auth.permission"
}
},
...
...
uni_modules/uni-popup/changelog.md
浏览文件 @
d9820861
## 1.8.2(2023-02-02)
-
uni-popup-dialog 组件新增 inputType 属性
## 1.8.1(2022-12-01)
-
修复 nvue 下 v-show 报错
## 1.8.0(2022-11-29)
-
优化 主题样式
## 1.7.9(2022-04-02)
-
修复 弹出层内部无法滚动的bug
## 1.7.8(2022-03-28)
...
...
uni_modules/uni-popup/components/uni-popup-dialog/uni-popup-dialog.vue
浏览文件 @
d9820861
...
...
@@ -10,7 +10,7 @@
</view>
<view
v-else
class=
"uni-dialog-content"
>
<slot>
<input
class=
"uni-dialog-input"
v-model=
"val"
type=
"text
"
:placeholder=
"placeholderText"
:focus=
"focus"
>
<input
class=
"uni-dialog-input"
v-model=
"val"
:type=
"inputType
"
:placeholder=
"placeholderText"
:focus=
"focus"
>
</slot>
</view>
<view
class=
"uni-dialog-button-group"
>
...
...
@@ -57,6 +57,10 @@
mixins
:
[
popup
],
emits
:[
'
confirm
'
,
'
close
'
],
props
:
{
inputType
:{
type
:
String
,
default
:
'
text
'
},
value
:
{
type
:
[
String
,
Number
],
default
:
''
...
...
uni_modules/uni-popup/components/uni-popup/uni-popup.vue
浏览文件 @
d9820861
uni_modules/uni-popup/package.json
浏览文件 @
d9820861
{
"id"
:
"uni-popup"
,
"displayName"
:
"uni-popup 弹出层"
,
"version"
:
"1.
7.9
"
,
"version"
:
"1.
8.2
"
,
"description"
:
" Popup 组件,提供常用的弹层"
,
"keywords"
:
[
"uni-ui"
,
...
...
@@ -18,10 +18,6 @@
"example"
:
"../../temps/example_temps"
},
"dcloudext"
:
{
"category"
:
[
"前端组件"
,
"通用组件"
],
"sale"
:
{
"regular"
:
{
"price"
:
"0.00"
...
...
@@ -38,7 +34,8 @@
"data"
:
"无"
,
"permissions"
:
"无"
},
"npmurl"
:
"https://www.npmjs.com/package/@dcloudio/uni-ui"
"npmurl"
:
"https://www.npmjs.com/package/@dcloudio/uni-ui"
,
"type"
:
"component-vue"
},
"uni_modules"
:
{
"dependencies"
:
[
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录