Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
2301_76266857
unidocs-zh
提交
db332865
U
unidocs-zh
项目概览
2301_76266857
/
unidocs-zh
与 Fork 源项目一致
Fork自
DCloud / unidocs-zh
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
U
unidocs-zh
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
db332865
编写于
5月 09, 2022
作者:
JiaRongPing
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'master' of
https://gitee.com/dcloud/unidocs-zh
上级
c009aa03
fc495dbb
变更
18
隐藏空白更改
内联
并排
Showing
18 changed file
with
836 addition
and
76 deletion
+836
-76
docs/.vuepress/theme/components/AlgoliaSearchBox.vue
docs/.vuepress/theme/components/AlgoliaSearchBox.vue
+2
-2
docs/.vuepress/theme/components/Navbar.vue
docs/.vuepress/theme/components/Navbar.vue
+31
-6
docs/.vuepress/theme/components/SidebarLinks.vue
docs/.vuepress/theme/components/SidebarLinks.vue
+106
-0
docs/.vuepress/theme/config/navbar.js
docs/.vuepress/theme/config/navbar.js
+1
-0
docs/.vuepress/theme/styles/navbar.styl
docs/.vuepress/theme/styles/navbar.styl
+15
-0
docs/case.md
docs/case.md
+54
-4
docs/component/_sidebar.md
docs/component/_sidebar.md
+3
-0
docs/component/uniui/quickstart.md
docs/component/uniui/quickstart.md
+0
-1
docs/component/uniui/uni-breadcrumb.md
docs/component/uniui/uni-breadcrumb.md
+128
-0
docs/component/uniui/uni-data-select.md
docs/component/uniui/uni-data-select.md
+210
-0
docs/component/uniui/uni-tooltip.md
docs/component/uniui/uni-tooltip.md
+82
-0
docs/plugin/sell.md
docs/plugin/sell.md
+15
-4
docs/select.md
docs/select.md
+14
-11
docs/uni-stat-v2.md
docs/uni-stat-v2.md
+2
-0
docs/uniCloud/cf-functions.md
docs/uniCloud/cf-functions.md
+8
-6
docs/uniCloud/cloud-obj.md
docs/uniCloud/cloud-obj.md
+5
-1
docs/uniCloud/faq.md
docs/uniCloud/faq.md
+1
-1
docs/uniCloud/uni-id.md
docs/uniCloud/uni-id.md
+159
-40
未找到文件。
docs/.vuepress/theme/components/AlgoliaSearchBox.vue
浏览文件 @
db332865
...
...
@@ -61,11 +61,11 @@
flex-direction column
justify-content center
#docsearch span
@media (min-width:
$MQMobile
)
@media (min-width:
1200px
)
&
display flex
@media (max-width:
$MQMobile
)
@media (max-width:
1200px
)
:root
--docsearch-spacing 10px
--docsearch-footer-height 40px
...
...
docs/.vuepress/theme/components/Navbar.vue
浏览文件 @
db332865
...
...
@@ -30,9 +30,7 @@
<div
class=
"links"
:style=
"linksWrapMaxWidth ? {
'max-width': linksWrapMaxWidth + 'px'
} : {}"
:style=
"SearchBoxStyle"
>
<!-- <a class="switch-version" href="javascript:void(0)">回到旧版</a> -->
<DcloudSearchPage
v-if=
"isAlgoliaSearch"
ref=
"dcloudSearchPage"
:options=
"algolia"
/>
...
...
@@ -42,6 +40,14 @@
</div>
<div
class=
"sub-navbar"
>
<DropdownLink
class=
"custom-main-navbar can-hide"
v-if=
"showSubNavBar && fixedNavbar"
:item=
"{
text: customNavBarKeys[navConfig.userNavIndex],
items: customNavBar
}"
/>
<NavLinks
class=
"can-hide"
/>
<div
class=
"mobile-sub-navbar"
>
<div
class=
"subnavbar__item"
@
click=
"$emit('toggle-sidebar')"
>
...
...
@@ -61,6 +67,7 @@ import MainNavbarLink from './MainNavbarLink.vue';
import
NavbarLogo
from
'
./NavbarLogo.vue
'
;
import
DcloudSearchPage
from
'
./DcloudSearchPage
'
;
import
navInject
from
'
../mixin/navInject
'
;
import
DropdownLink
from
'
@theme/components/DropdownLink.vue
'
import
{
forbidScroll
,
os
}
from
'
../util
'
;
export
default
{
...
...
@@ -75,14 +82,16 @@ export default {
SearchBox
,
AlgoliaSearchBox
,
NavbarLogo
,
DcloudSearchPage
DcloudSearchPage
,
DropdownLink
},
data
()
{
return
{
linksWrapMaxWidth
:
null
,
showMobilePanel
:
false
,
fixedNavbar
:
false
fixedNavbar
:
false
,
SearchBoxTop
:
0
}
},
...
...
@@ -93,6 +102,18 @@ export default {
isAlgoliaSearch
()
{
return
this
.
algolia
&&
this
.
algolia
.
apiKey
&&
this
.
algolia
.
indexName
},
SearchBoxStyle
()
{
const
initStyle
=
{
top
:
`
${
this
.
SearchBoxTop
}
px`
,
zIndex
:
100
};
return
this
.
linksWrapMaxWidth
?
Object
.
assign
({},
initStyle
,
{
'
max-width
'
:
this
.
linksWrapMaxWidth
+
'
px
'
,
})
:
initStyle
;
}
},
...
...
@@ -134,6 +155,7 @@ export default {
this
.
addWindowScroll
()
}
else
{
this
.
fixedNavbar
=
true
this
.
SearchBoxTop
=
0
}
},
addWindowScroll
()
{
...
...
@@ -148,7 +170,7 @@ export default {
this
.
vuepressToc
&&
this
.
vuepressToc
.
removeAttribute
(
'
style
'
)
this
.
navbar
&&
this
.
navbar
.
removeAttribute
(
'
style
'
)
if
(
this
.
pageContainer
)
{
this
.
pageContainer
.
style
.
marginTop
=
this
.
showSubNavBar
?
'
auto
'
:
`
${
this
.
navbarHeight
}
px`
this
.
pageContainer
.
style
.
marginTop
=
this
.
showSubNavBar
||
!
os
.
pc
?
'
auto
'
:
`
${
this
.
navbarHeight
}
px`
}
},
onWindowScroll
()
{
...
...
@@ -165,6 +187,7 @@ export default {
if
(
!
this
.
fixedNavbar
)
{
this
.
fixedNavbar
=
true
this
.
navbar
.
style
.
top
=
`-
${
this
.
mainNavBarHeight
}
px`
this
.
SearchBoxTop
=
this
.
mainNavBarHeight
+
(
this
.
subNavBarHeight
-
this
.
mainNavBarHeight
)
/
2
this
.
$nextTick
(()
=>
{
this
.
pageContainer
&&
(
this
.
pageContainer
.
style
.
marginTop
=
`
${
this
.
navbarHeight
}
px`
)
})
...
...
@@ -173,6 +196,7 @@ export default {
if
(
this
.
fixedNavbar
)
{
this
.
fixedNavbar
=
false
this
.
pageContainer
&&
(
this
.
pageContainer
.
style
.
marginTop
=
'
auto
'
)
this
.
SearchBoxTop
=
0
}
}
},
...
...
@@ -264,6 +288,7 @@ $navbar-horizontal-padding = 1.5rem
display none !important
.links
padding-left 0rem // 1.5rem
top 0 !important
.site-name
width calc(100vw - 9.4rem)
overflow hidden
...
...
docs/.vuepress/theme/components/SidebarLinks.vue
0 → 100644
浏览文件 @
db332865
<
template
>
<ul
v-if=
"items.length"
class=
"sidebar-links"
>
<li
v-for=
"(item, i) in items"
:key=
"i"
>
<SidebarGroup
v-if=
"item.type === 'group'"
:item=
"item"
:open=
"i === openGroupIndex"
:collapsable=
"item.collapsable || item.collapsible"
:depth=
"depth"
@
toggle=
"toggleGroup(i)"
/>
<SidebarLink
v-else
:sidebar-depth=
"sidebarDepth"
:item=
"item"
/>
</li>
</ul>
</
template
>
<
script
>
import
SidebarGroup
from
'
@theme/components/SidebarGroup.vue
'
import
SidebarLink
from
'
@theme/components/SidebarLink.vue
'
import
{
isActive
,
debounce
}
from
'
../util
'
export
default
{
name
:
'
SidebarLinks
'
,
components
:
{
SidebarGroup
,
SidebarLink
},
props
:
[
'
items
'
,
'
depth
'
,
// depth of current sidebar links
'
sidebarDepth
'
,
// depth of headers to be extracted
'
initialOpenGroupIndex
'
],
data
()
{
return
{
openGroupIndex
:
this
.
initialOpenGroupIndex
||
0
}
},
watch
:
{
'
$route
'
:
debounce
(
function
()
{
this
.
refreshIndex
()
})
},
created
()
{
this
.
refreshIndex
()
},
methods
:
{
refreshIndex
()
{
const
index
=
resolveOpenGroupIndex
(
this
.
$route
,
this
.
items
)
if
(
index
>
-
1
)
{
this
.
openGroupIndex
=
index
}
},
toggleGroup
(
index
)
{
this
.
openGroupIndex
=
index
===
this
.
openGroupIndex
?
-
1
:
index
},
isActive
(
page
)
{
return
isActive
(
this
.
$route
,
page
.
regularPath
)
}
}
}
function
resolveOpenGroupIndex
(
route
,
items
)
{
for
(
let
i
=
0
;
i
<
items
.
length
;
i
++
)
{
const
item
=
items
[
i
]
if
(
descendantIsActive
(
route
,
item
))
{
return
i
}
}
return
-
1
}
function
descendantIsActive
(
route
,
item
)
{
if
(
item
.
type
===
'
group
'
)
{
const
childIsActive
=
item
.
path
&&
isActive
(
route
,
item
.
path
)
const
grandChildIsActive
=
item
.
children
.
some
(
child
=>
{
if
(
child
.
type
===
'
group
'
)
{
return
descendantIsActive
(
route
,
child
)
}
else
{
return
child
.
type
===
'
page
'
&&
isActive
(
route
,
child
.
path
)
}
})
return
childIsActive
||
grandChildIsActive
}
return
false
}
</
script
>
docs/.vuepress/theme/config/navbar.js
浏览文件 @
db332865
...
...
@@ -10,6 +10,7 @@
export
const
navbar
=
[
{
text
:
'
uni-app
'
,
link
:
'
/
'
,
items
:
[
{
text
:
'
介绍
'
,
...
...
docs/.vuepress/theme/styles/navbar.styl
浏览文件 @
db332865
...
...
@@ -20,6 +20,7 @@ $navbar-logo-height = $navbar-main-navbar-height - 2rem
&
display none
.sub-navbar
position relative
line-height $navbar-sub-navbar-height
border-top-width 1px
.mobile-main-navbar
...
...
@@ -76,6 +77,20 @@ $navbar-logo-height = $navbar-main-navbar-height - 2rem
color inherit
&:hover
color $accentColor
.custom-main-navbar
position absolute
height 30px
top calc(50% - 15px)
left 2rem
@media (max-width: 1200px)
display none
a
color inherit
.nav-dropdown
right auto
left 0
z-index 12
@media (max-width: $MQMobile)
$navbar-a-color = #222;
...
...
docs/case.md
浏览文件 @
db332865
...
...
@@ -2,10 +2,6 @@ DCloud有**900万**开发者,[uni统计](https://tongji.dcloud.net.cn/)手机
欢迎知名开发商
[
提交案例
](
https://github.com/dcloudio/uni-app/issues/6
)
或接入
[
uni统计
](
https://tongji.dcloud.net.cn/
)
。
### 新冠抗疫专区案例
uni-app助力数百家单位快速上线
**抗疫系统**
,开源众多项目,详见专题:
[
xinguan2020.dcloud.net.cn
](
https://dcloud.io/ncp.html
)
### 官方示例
<a
href=
"//m3w.cn/uniapp"
target=
"_blank"
class=
"clear-style"
><b>
Hello uni-app:
</b></a>
演示uni-app框架的组件、接口、模板。本项目源码可在HBuilderX中新建项目获得,也可从
[
github
](
https://github.com/dcloudio/hello-uniapp
)
上获取。
...
...
@@ -41,6 +37,60 @@ uni-app助力数百家单位快速上线**抗疫系统**,开源众多项目,
### 第三方开发者案例
#### 新冠抗疫专区案例
uni-app助力数百家单位快速上线
**抗疫系统**
,开源众多项目。
-
首都疫苗服务
[
App
](
https://a.app.qq.com/o/simple.jsp?pkgname=io.dcloud.H5AC4580F
)
-
广东 粤核酸 微信小程序
-
广东 粤健通 微信小程序
-
广州市 穗康生活 微信小程序
-
海南 海易办 微信小程序
-
陕西一码通 微信小程序
-
健康陕西公众服务 微信小程序
-
健康西安公众服务 微信小程序
-
河南疾控 微信小程序
-
平顶山 鹰城官微 微信小程序
-
开封市 汴易检 微信小程序
-
三门峡市 灵宝一码通 微信小程序
-
湖北健康码 微信小程序
-
山西 晋快检 微信小程序
-
云南省居民电子健康卡 微信小程序
-
西双版纳 平安版纳 微信小程序
-
黑龙江 健康龙江服务平台 微信小程序
-
黑龙江 密山疫情防控 微信小程序
-
贵州健康码 微信小程序
-
贵州 黔康码 微信小程序
-
河北新冠疫苗预约 懂苗服务 微信小程序
-
蒙速办 微信小程序
-
蒙健康 微信小程序
-
包头市 鹿城健康服务 微信小程序
-
江西 赣通码 微信小程序
-
南昌 昌通码 微信小程序
-
藏易通健康码 微信小程序
-
江苏核酸检测信息系统 cydj.weiynet.cn
-
扬州 扬城扫码通 微信小程序
-
遵义市 实名登记码 微信小程序
-
乐清市 乐行通 微信小程序
-
南昌市 i南昌-官方 微信小程序
-
鄂尔多斯健康宝 微信小程序
-
新疆伊犁阿勒泰 满意雪都 微信小程序
-
南宁市电子健康卡 微信小程序
-
吕梁健康防疫核酸检测平台 微信小程序
-
曲靖防疫出行 微信小程序
-
镇江市通行码 镇合意 微信小程序
-
灌南县 惠泽行 微信小程序
-
新疆伊犁哈萨克自治州塔城地区 健康塔城 微信小程序
-
喀什和易行 微信小程序
-
巴州和易行 微信小程序
-
绥化防疫 微信小程序
-
青城医疗 微信小程序
-
温州健康码扫码工具 微信小程序
-
临沂 沂码通 微信小程序
-
鞍山 易鞍码 微信小程序
2020年新冠疫情爆发初期的抗疫项目专题另见:
[
xinguan2020.dcloud.net.cn
](
https://dcloud.io/ncp.html
)
#### 典型案例
<a
href=
"https://m.qinxuan.hihonor.com/"
target=
"_blank"
class=
"clear-style"
><b>
华为荣耀亲选商城:
</b></a>
华为公司旗下荣耀品牌精品电商平台。
...
...
docs/component/_sidebar.md
浏览文件 @
db332865
...
...
@@ -74,6 +74,7 @@
*
[
色彩说明
](
component/uniui/color.md
)
*
[
uni-sass 辅助样式
](
component/uniui/uni-sass.md
)
*
[
uni-badge 数字角标
](
component/uniui/uni-badge.md
)
*
[
uni-breadcrumb 数字角标
](
component/uniui/uni-breadcrumb.md
)
*
[
uni-calendar 日历
](
component/uniui/uni-calendar.md
)
*
[
uni-card 卡片
](
component/uniui/uni-card.md
)
*
[
uni-collapse 折叠面板
](
component/uniui/uni-collapse.md
)
...
...
@@ -81,6 +82,7 @@
*
[
uni-countdown 倒计时
](
component/uniui/uni-countdown.md
)
*
[
uni-data-checkbox 数据选择器
](
component/uniui/uni-data-checkbox.md
)
*
[
uni-data-picker 级联选择器
](
component/uniui/uni-data-picker.md
)
*
[
uni-data-select 级联选择器
](
component/uniui/uni-data-select.md
)
*
[
uni-dateformat 日期格式化
](
component/uniui/uni-dateformat.md
)
*
[
uni-datetime-picker 日期选择器
](
component/uniui/uni-datetime-picker.md
)
*
[
uni-drawer 抽屉
](
component/uniui/uni-drawer.md
)
...
...
@@ -112,6 +114,7 @@
*
[
uni-table 表格
](
component/uniui/uni-table.md
)
*
[
uni-tag 标签
](
component/uniui/uni-tag.md
)
*
[
uni-title 章节标题
](
component/uniui/uni-title.md
)
*
[
uni-tooltip 章节标题
](
component/uniui/uni-tooltip.md
)
*
[
uni-transition 过渡动画
](
component/uniui/uni-transition.md
)
*
[
更新日志
](
https://ext.dcloud.net.cn/plugin?id=55&update_log
)
*
[
更多插件市场的组件
](
https://ext.dcloud.net.cn/?cat1=2
)
...
...
docs/component/uniui/quickstart.md
浏览文件 @
db332865
...
...
@@ -49,7 +49,6 @@ uni-ui支持 HBuilderX直接新建项目模板、npm安装和单独导入个别
|uni-rate|
[
评分
](
https://ext.dcloud.net.cn/plugin?name=uni-rate
)
|
|uni-row|
[
布局-行
](
https://ext.dcloud.net.cn/plugin?name=uni-row
)
|
|uni-search-bar|
[
搜索栏
](
https://ext.dcloud.net.cn/plugin?name=uni-search-bar
)
|
|Section|
[
标题栏
](
https://ext.dcloud.net.cn/plugin?name=uni-section
)
|
|uni-segmented-control|
[
分段器
](
https://ext.dcloud.net.cn/plugin?name=uni-segmented-control
)
|
|uni-steps|
[
步骤条
](
https://ext.dcloud.net.cn/plugin?name=uni-steps
)
|
|uni-swipe-action|
[
滑动操作
](
https://ext.dcloud.net.cn/plugin?name=uni-swipe-action
)
|
...
...
docs/component/uniui/uni-breadcrumb.md
0 → 100644
浏览文件 @
db332865
::: tip 组件名:uni-breadcrumb
> 代码块: `uBreadcrumb`
[
点击下载&安装
](
https://ext.dcloud.net.cn/plugin?name=uni-breadcrumb
)
:::
显示当前页面的路径,快速返回之前的任意页面。
### 安装方式
本组件符合
[
easycom
](
https://uniapp.dcloud.io/collocation/pages?id=easycom
)
规范,
`HBuilderX 2.5.5`
起,只需将本组件导入项目,在页面
`template`
中即可直接使用,无需在页面中
`import`
和注册
`components`
。
如需通过
`npm`
方式使用
`uni-ui`
组件,另见文档:
[
https://ext.dcloud.net.cn/plugin?id=55
](
https://ext.dcloud.net.cn/plugin?id=55
)
### 基本用法
在
`template`
中使用组件
```
html
<uni-breadcrumb
separator=
"/"
>
<uni-breadcrumb-item
v-for=
"route in routes"
:to=
"route.to"
>
{{route.name}}
</uni-breadcrumb-item
>
</uni-breadcrumb>
```
```
js
export
default
{
name
:
"
uni-stat-breadcrumb
"
,
data
()
{
return
{
routes
:
[
{
to
:
"
/A
"
,
name
:
"
A页面
"
,
},
{
to
:
"
/B
"
,
name
:
"
B页面
"
,
},
{
to
:
"
/C
"
,
name
:
"
C页面
"
,
},
],
};
},
};
```
## API
### Breadcrumb Props
| 属性名 | 类型 | 默认值 | 说明 |
| :------------: | :----: | :-----: | :--------------: |
| separator | String | 斜杠'/' | 分隔符 |
| separatorClass | String | | 图标分隔符 class |
### Breadcrumb Item Props
| 属性名 | 类型 | 默认值 | 说明 |
| :-----: | :-----------: | :----: | :-----------------------------------------------------------------------------: |
| to | String/Object | | 路由跳转页面路径/对象 |
| replace | Boolean | | 在使用 to 进行路由跳转时,启用 replace 将不会向 history 添加新记录(仅 h5 支持) |
## 组件示例
::: warning 注意
直接拷贝示例代码,无法运行 ,示例依赖了
`uni-card`
`uni-section`
`uni-scss`
等多个组件。
请到
[
组件下载页面
](
https://ext.dcloud.net.cn/plugin?name=uni-breadcrumb
)
,在页面右侧选择
`使用 HBuilderX导入示例项目`
,体验完整组件示例。
:::
:::preview https://hellouniapp.dcloud.net.cn/pages/extUI/breadcrumb/breadcrumb
```
html
<template>
<view
class=
"container"
>
<uni-card
is-full
:is-shadow=
"false"
>
<text
class=
"uni-h6"
>
面包屑导航显示当前页面的路径,快速返回之前的任意可跳转页面
</text
>
</uni-card>
<uni-section
title=
"基础用法"
type=
"line"
padding
>
<uni-breadcrumb
separator=
"/"
>
<uni-breadcrumb-item
v-for=
"route in routes"
:to=
"route.to"
>
{{route.name}}
</uni-breadcrumb-item
>
</uni-breadcrumb>
</uni-section>
<uni-section
title=
"自定义分隔符"
type=
"line"
padding
>
<uni-breadcrumb
separator=
">"
>
<uni-breadcrumb-item
v-for=
"route in routes"
:to=
"route.to"
>
{{route.name}}
</uni-breadcrumb-item
>
</uni-breadcrumb>
</uni-section>
</view>
</template>
<script>
export
default
{
components
:
{},
data
()
{
return
{
routes
:
[
{
to
:
"
/
"
,
name
:
"
首页
"
,
},
{
to
:
""
,
name
:
"
菜单 A
"
,
},
{
to
:
""
,
name
:
"
菜单 B
"
,
},
],
};
},
};
</script>
<style
lang=
"scss"
></style>
```
docs/component/uniui/uni-data-select.md
0 → 100644
浏览文件 @
db332865
::: tip 组件名:uni-data-select
> 代码块: `uDataSelect`
[
点击下载&安装
](
https://ext.dcloud.net.cn/plugin?name=uni-data-select
)
:::
当选项过多时,使用下拉菜单展示并选择内容
本组件要解决问题包括:
1.
数据绑定型组件:给本组件绑定一个 data,会自动渲染一组候选内容。再以往,开发者需要编写不少代码实现类似功能
2.
自动的表单校验:组件绑定了 data,且符合
[
uni-forms
](
https://ext.dcloud.net.cn/plugin?id=2773
)
组件的表单校验规范,搭配使用会自动实现表单校验
在 uniCloud 开发中,
`DB Schema`
中配置了 enum 枚举等类型后,在 web 控制台的
[
自动生成表单
](
https://uniapp.dcloud.io/uniCloud/schema?id=autocode
)
功能中,会自动生成
`uni-data-select`
组件并绑定好 data
> **注意事项**
> 为了避免错误使用,给大家带来不好的开发体验,请在使用组件前仔细阅读下面的注意事项,可以帮你避免一些错误。
>
> - 组件需要依赖 `sass` 插件 ,请自行手动安装
> - 本组件为数据驱动,目的是快速投入使用,只可通过 style 覆盖有限样式,不支持自定义更多样式
> - 如使用过程中有任何问题,或者您对 uni-ui 有一些好的建议,欢迎加入 uni-ui 交流群:871950839
> - 组件支持 nvue ,需要在 `manifest.json > app-plus` 节点下配置 `"nvueStyleCompiler" : "uni-app"`
> - 如组件显示有问题 ,请升级 `HBuilderX` 为 `v3.1.0` 以上
### 安装方式
本组件符合
[
easycom
](
https://uniapp.dcloud.io/collocation/pages?id=easycom
)
规范,
`HBuilderX 2.5.5`
起,只需将本组件导入项目,在页面
`template`
中即可直接使用,无需在页面中
`import`
和注册
`components`
。
如需通过
`npm`
方式使用
`uni-ui`
组件,另行文档:
[
https://ext.dcloud.net.cn/plugin?id=55
](
https://ext.dcloud.net.cn/plugin?id=55
)
### 基本用法
设置
`localdata`
属性后,组件会通过数据渲染出对应的内容
```
html
<template>
<view>
<uni-data-select
v-model=
"value"
:localdata=
"range"
@
change=
"change"
></uni-data-select>
</view>
</template>
```
```
javascript
export
default
{
data
()
{
return
{
value
:
0
,
range
:
[
{
value
:
0
,
text
:
"
篮球
"
},
{
value
:
1
,
text
:
"
足球
"
},
{
value
:
2
,
text
:
"
游泳
"
},
],
};
},
methods
:
{
change
(
e
)
{
console
.
log
(
"
e:
"
,
e
);
},
},
};
```
### 云端数据示例
```
html
<template>
<view>
<!-- 云端数据 -->
<uni-data-select
collection=
"opendb-app-list"
field=
"appid as value, name as text"
label=
"应用选择"
v-model=
"appid"
:clear=
"false"
/>
</view>
</template>
```
## API
### DataSelect Props
| 属性名 | 类型 | 可选值 | 默认值 | 说明 |
| :-----------: | :-----------: | :----: | :------: | :-----------------------------------------------------------------: |
| value/v-model | String/Number | - | - | 默认值,multiple=true 时为 Array 类型,否则为 String 或 Number 类型 |
| localdata | Array | - | - | 本地渲染数据, |
| clear | Boolean | - | - | 是否可以清空已选项 |
| label | String | | | 左侧标题 |
| placeholder | String | - | 请选择 | 输入框的提示文字 |
| emptyText | String | - | 暂无数据 | 没有数据时显示的文字 ,本地数据无效 |
#### DataCom Props
更多 DataCom 支持的属性参考
[
更多
](
https://uniapp.dcloud.net.cn/component/datacom.html#%E8%AF%AD%E6%B3%95%E6%89%8B%E5%86%8C
)
#### Localdata Options
`localdata`
属性的格式为数组,数组内每项是对象,需要严格遵循如下格式
| 属性名 | 说明 |
| :-----: | :--------: |
| text | 显示文本 |
| value | 选中后的值 |
| disable | 是否禁用 |
### DataSelect Events
| 事件名 | 事件说明 | 返回参数 |
| :-----: | :--------------------: | :------: |
| @change | 选中状态改变时触发事件 | - |
## 组件示例
::: warning 注意
直接拷贝示例代码,无法运行 ,示例依赖了
`uni-card`
`uni-section`
`uni-scss`
等多个组件。
请到
[
组件下载页面
](
https://ext.dcloud.net.cn/plugin?name=uni-data-select
)
,在页面右侧选择
`使用 HBuilderX导入示例项目`
,体验完整组件示例。
:::
:::preview https://hellouniapp.dcloud.net.cn/pages/extUI/data-select/data-select
```
html
<template>
<view>
<uni-card
is-full
>
<text
class=
"uni-h6"
>
通过数据驱动的单选框和复选框,可直接通过连接 uniCloud
获取数据,同时可以配合表单组件 uni-forms 使用
</text
>
</uni-card>
<uni-section
title=
"本地数据"
type=
"line"
>
<uni-data-select
v-model=
"value"
:localdata=
"range"
@
change=
"change"
></uni-data-select>
</uni-section>
<uni-section
title=
"云端数据"
subTitle=
"连接云服务空间, 且存在相关的数据表才能生效(此处演示, 未连接云服务空间, 故不生效, 且有报错)"
type=
"line"
>
<uni-data-select
collection=
"opendb-app-list"
field=
"appid as value, name as text"
v-mode=
"value"
/>
</uni-section>
<uni-section
title=
"是否可清除已选项"
type=
"line"
>
<uni-data-select
v-model=
"value"
:localdata=
"range"
@
change=
"change"
:clear=
"false"
></uni-data-select>
</uni-section>
<uni-section
title=
"配置左侧标题"
type=
"line"
>
<uni-data-select
v-model=
"value"
:localdata=
"range"
@
change=
"change"
label=
"应用选择"
></uni-data-select>
</uni-section>
</view>
</template>
<script>
export
default
{
data
()
{
return
{
value
:
0
,
range
:
[
{
value
:
0
,
text
:
"
篮球
"
},
{
value
:
1
,
text
:
"
足球
"
},
{
value
:
2
,
text
:
"
游泳
"
},
],
};
},
methods
:
{
change
(
e
)
{
console
.
log
(
"
e:
"
,
e
);
},
},
};
</script>
<style
lang=
"scss"
>
.text
{
font-size
:
12px
;
color
:
#666
;
margin-top
:
5px
;
}
.uni-px-5
{
padding-left
:
10px
;
padding-right
:
10px
;
}
.uni-pb-5
{
padding-bottom
:
10px
;
}
</style>
```
docs/component/uniui/uni-tooltip.md
0 → 100644
浏览文件 @
db332865
::: tip 组件名:uni-tooltip
> 代码块: `utooltip`
[
点击下载&安装
](
https://ext.dcloud.net.cn/plugin?name=uni-tooltip
)
:::
常用于展示鼠标 hover 时的提示信息。
> 遮挡不住原生组件
### 安装方式
本组件符合
[
easycom
](
https://uniapp.dcloud.io/collocation/pages?id=easycom
)
规范,
`HBuilderX 2.5.5`
起,只需将本组件导入项目,在页面
`template`
中即可直接使用,无需在页面中
`import`
和注册
`components`
。
如需通过
`npm`
方式使用
`uni-ui`
组件,另见文档:
[
https://ext.dcloud.net.cn/plugin?id=55
](
https://ext.dcloud.net.cn/plugin?id=55
)
### 基本用法
在
`template`
中使用组件
```
html
<uni-tooltip
:content=
"tooltip显示的内容"
>
<button>
被包裹的组件
</button>
</uni-tooltip>
```
## API
### Tooltip Props
| 属性名 | 类型 | 默认值 | 说明 |
| :-------: | :----: | :----: | :---------------------------------: |
| content | String | | 弹出层显示的内容 |
| placement | String | left | Tooltip 的出现位置, 目前只支持 left |
### Tooltip Slots
| 名称 | 说明 |
| :-----: | :-------------------: |
| default | 被 Tooltip 包裹的组件 |
| content | 弹出层插槽 |
## 组件示例
::: warning 注意
直接拷贝示例代码,无法运行 ,示例依赖了
`uni-card`
`uni-section`
`uni-scss`
等多个组件。
请到
[
组件下载页面
](
https://ext.dcloud.net.cn/plugin?name=uni-tooltip
)
,在页面右侧选择
`使用 HBuilderX导入示例项目`
,体验完整组件示例。
:::
:::preview https://hellouniapp.dcloud.net.cn/pages/extUI/tooltip/tooltip
```
html
<template>
<view
class=
"container"
>
<uni-card
is-full
:is-shadow=
"false"
>
<text
class=
"uni-h6"
>
常用于展示鼠标 hover 时的提示信息,注意:无法覆盖原生组件
</text>
</uni-card>
<uni-section
title=
"基础用法"
type=
"line"
padding
>
<uni-tooltip
content=
"提示文字"
/>
</uni-section>
<uni-section
title=
"插槽用法"
type=
"line"
padding
>
<uni-tooltip
content=
"提示文字"
>
一段文字
</uni-tooltip>
</uni-section>
<uni-section
title=
"自定义弹层宽度"
type=
"line"
padding
>
<uni-tooltip
content=
"提示文字"
>
一段文字
</uni-tooltip>
</uni-section>
</view>
</template>
<script>
export
default
{
components
:
{},
data
()
{
return
{};
},
};
</script>
<style
lang=
"scss"
></style>
```
docs/plugin/sell.md
浏览文件 @
db332865
...
...
@@ -3,7 +3,9 @@
DCloud插件市场支持对uniCloud插件、原生插件设置付费销售,帮助插件作者进行技术变现;其中:
-
uniCloud插件支持普通授权版、源码授权版两种形式进行售卖;
[
uniCloud付费插件的“源码授权版”和“普通授权版”的区别
](
https://ask.dcloud.net.cn/article/38040
)
;
-
App原生插件仅支持普通授权版;
-
App原生插件仅支持购买授权版,不提供源码;
其他类型插件不支持计费。
插件作者在发布uniCloud插件、原生插件时,可自定义售卖价格及形式(uniCloud分类),见下图:
...
...
@@ -11,11 +13,20 @@ DCloud插件市场支持对uniCloud插件、原生插件设置付费销售,帮
如未设置价格,则默认为免费插件,所有用户均可下载使用;
如果设置了价格,则用户需付费后才能使用;为保护插件作者的权益最大化,DCloud对购买插件的使用场景做了限制,具体如下:
-
uniCloud插件:购买时需绑定服务空间,该付费插件仅支持部署到绑定的服务空间。
-
App原生插件:购买时需绑定appid,该付费插件仅可用于该appid对应的云打包,不支持其他appid云打包,不支持离线打包。
## 版权保护和试用机制
普通前端插件因其源码开放问题,无法支持计费。
uniCloud插件的云函数部分支持源码保护,未购买源码版的用户无法获取到源码。如果是云端一体插件,其前端部分的js也支持加密混淆。但由于前端js必须运行在前端设备上,仍然存在被破解的可能性,DCloud无法承诺这种前端加密混淆无法破解。
uniCloud插件的销售和服务空间绑定。购买者购买时绑定好自己的服务空间spaceid,未经授权的服务空间无法上传加密的云函数。
app原生插件由于插件作者提交的是编译后的二进制文件,且该app插件的二进制文件在设计上不会单独被三方获取,所以可以保护安全。(也因此,本地打包不支持使用插件市场的付费app原生插件)
app原生插件的销售和客户端appid、包名绑定。购买者购买时绑定好自己的appid和包名。未经授权的appid和包名无法运行需要付费购买的app原生插件。
但DCloud为所有销售插件提供了试用机制,允许购买者先试用后付费。uniCloud插件提供了7天的试用,试用到期后会自动销毁加密云函数;app原生插件仅支持在app自定义运行基座上试用,该运行基座无法脱离HBuilder独立安装,且每次启动均有会弹出测试toast字样。
## 查看收益
...
...
docs/select.md
浏览文件 @
db332865
...
...
@@ -55,7 +55,7 @@ DCloud的盈利方式在帮助开发者进行流量变现(uni-AD)和提供
6. 微信原生开发对webpack、预编译语言、工程流程管理很多功能都不支持,大公司很少用微信原生开发,都是在用框架来提升开发效率
7. uni-app支持双向数据绑定、vuex状态管理,比小程序原生开发方便的多
8. 迟早会有多端需求,使用`uni-app`再无后续顾虑
9. uni-app并非仅用于做跨端的,只用uni-app做小程序、只做
H5
、只做App的,案例是一样多的,详见:[https://uniapp.dcloud.io/case](https://uniapp.dcloud.io/case)
9. uni-app并非仅用于做跨端的,只用uni-app做小程序、只做
web
、只做App的,案例是一样多的,详见:[https://uniapp.dcloud.io/case](https://uniapp.dcloud.io/case)
关于uni-app和微信开发的详细比较评测,参考:[https://ask.dcloud.net.cn/article/36484](https://ask.dcloud.net.cn/article/36484)
- 评测1、uni-app和原生wxml开发、wepy、mpvue、taro的对比,[https://ask.dcloud.net.cn/article/35867](https://ask.dcloud.net.cn/article/35867)
...
...
@@ -107,12 +107,13 @@ uni-app提供了大量的扩展api解决了这个问题,并且发展了成熟
```
uni-app
``` 积极拥抱社区现有的现代开发流程,包括但不限于:
- 内置了webpack
- 内置了webpack
/vite
- NPM 包管理系统,详见[参考](http://uniapp.dcloud.io/tutorial/page-script#npm支持)
- es6+ 语法(发布时会自动编译为es5),详见[参考](http://uniapp.dcloud.io/tutorial/syntax-js#es6-支持)
- 各种预处理器(less、scss、stylus、typescript)
- uni-app的官方ide:HBuilderX,在vue、json、markdown、代码提示、操作效率上,有非常明显的优势,可帮助开发者大幅提高工作效率
- uni-app同时也提供了cli方式,可使用其他开发工具如vscode开发,当然开发效率不如HBuilderX。对比详见[https://ask.dcloud.net.cn/article/35451](https://ask.dcloud.net.cn/article/35451)
- HBuilder也提供了cli,[参考](https://hx.dcloud.net.cn/cli/README)
**uni-app 生态开放性如何?能否直接利用现有前端社区资源?**
...
...
@@ -121,8 +122,8 @@ uni-app提供了大量的扩展api解决了这个问题,并且发展了成熟
- 丰富的插件市场为开发者提供数千款现成的轮子,[https://ext.dcloud.net.cn](https://ext.dcloud.net.cn)
- 兼容微信小程序 JS SDK,丰富的小程序生态内容可直接引入uni-app,并且在App侧通用,[参考](http://ask.dcloud.net.cn/article/35070)
- 兼容微信小程序自定义组件,并且App、
H5
侧通用,[参考](http://uniapp.dcloud.io/tutorial/miniprogram-subject#小程序自定义组件支持)
- App和
H5提供了renderjs,使得浏览器专用的库也可以在App和H5
里使用,[参考](https://uniapp.dcloud.io/tutorial/renderjs)
- 兼容微信小程序自定义组件,并且App、
web
侧通用,[参考](http://uniapp.dcloud.io/tutorial/miniprogram-subject#小程序自定义组件支持)
- App和
web提供了renderjs,使得浏览器专用的库也可以在App和web
里使用,[参考](https://uniapp.dcloud.io/tutorial/renderjs)
- 支持 NPM 包管理系统,[参考](http://uniapp.dcloud.io/tutorial/page-script#npm支持)
- 支持 mpvue 项目及组件,[参考](http://ask.dcloud.net.cn/article/34945)
- 支持原生插件,见插件市场:[https://ext.dcloud.net.cn](https://ext.dcloud.net.cn)
...
...
@@ -130,9 +131,11 @@ uni-app提供了大量的扩展api解决了这个问题,并且发展了成熟
**uni-app 支持的手机版本最低到多少?**
- Vue2: Android4.4、iOS9是官方会保障兼容的。要知道Android4.4已经是2013年发布的手机了,正常用户不会还在用这么久远的手机。
- Vue3: 支持的范围是:Android > 4.4, ios >= 10
1. Web端:uni-app没有限制,同vue2和vue3自身能支持的浏览器版本
2. 小程序端:uni-app没有限制,同该小程序自身能支持的最低平台
3. App端:
- Vue2: Android4.4+、iOS9+。Android4.4已经是2013年发布的手机了。
- Vue3: 支持的范围是:Android >=5 (使用nvue和vue有区别。某些老国产Android5的rom无法动态升级Android system webview,此时如果使用vue页面需搭配x5内核) , iOS >= 10
**uni-app成熟度高吗?**
...
...
@@ -150,9 +153,9 @@ uni-app提供了大量的扩展api解决了这个问题,并且发展了成熟
**DCloud是家什么公司,是否可信赖**
```
DCloud
```从2013年开始做HBuilder,目前
8
00万前端开发者在使用```
DCloud
```的开发工具,HBuilder百度指数超过sublime、webstorm等全球知名工具。是中国唯一一家成功的开发工具厂商。
```
DCloud
```从2013年开始做HBuilder,目前
9
00万前端开发者在使用```
DCloud
```的开发工具,HBuilder百度指数超过sublime、webstorm等全球知名工具。是中国唯一一家成功的开发工具厂商。
```
DCloud
```是明星创业公司,融资已经过了
B2
轮,且均为知名VC或战略投资人。
```
DCloud
```是明星创业公司,融资已经过了
C
轮,且均为知名VC或战略投资人。
```
DCloud
```是HTML5中国产业联盟的发起单位和秘书单位。该联盟隶属于工信部信通院标准所。
...
...
@@ -164,7 +167,7 @@ uni-app提供了大量的扩展api解决了这个问题,并且发展了成熟
**App打包必须上传DCloud云端吗?代码会泄露吗?**
代码可以云打包,也可以
离线
打包。
代码可以云打包,也可以
本地
打包。
使用云打包时有两种模式:
1. 安心打包
...
...
@@ -172,7 +175,7 @@ uni-app提供了大量的扩展api解决了这个问题,并且发展了成熟
2. 传统云打包
传统云打包仅适合没有mac电脑但需要打iOS包的开发者。在这种情况下,代码和证书会上传到DCloud的mac打包服务器,但打包后立即删除,DCloud不会持久化保存。
DCloud是一家
遵纪守法的公司,不会做损害自己名誉的事情
。之所以提供云打包,是方便不熟悉原生的前端工程师直接生成App安装包。包括让没有mac电脑的工程师也可以打出iOS的包。
DCloud是一家
正规公司,已通过等保三级认证(证书编号:11010813802-20001),珍惜自己的名誉
。之所以提供云打包,是方便不熟悉原生的前端工程师直接生成App安装包。包括让没有mac电脑的工程师也可以打出iOS的包。
**DCloud提供哪些技术支持?碰到框架bug影响业务怎么办?**
...
...
docs/uni-stat-v2.md
浏览文件 @
db332865
...
...
@@ -206,6 +206,8 @@ uni统计2.0 是基于 uniCloud 开发的开源、免费统计平台。
#### 开启redis缓存
开启redis缓存后可以降低数据库查询压力,提升uni统计性能,可按需决定是否开启。
::: warning 注意
开启redis缓存前,需要先确认是否已在布署uni统计的服务空间内购买redis服务,如果没有购买则需要先购买redis服务。
:::
...
...
docs/uniCloud/cf-functions.md
浏览文件 @
db332865
...
...
@@ -49,9 +49,9 @@ HBuilderX中uniCloud项目的云函数均为项目的uniCloud/cloudfunctions目
| | └──package.json 公用模块package.json
| │───uni-clientDB-actions
| │ └──new_action.js clientDB action代码
<a
target=
"_blank"
href=
"https://uniapp.dcloud.net.cn/uniCloud/clientdb?id=action"
>
详情
</a>
|
└
───function-name 云函数目录
|
│──index.js 云函数代码
|
└──package.json 包含云函数的配置信息,如url化、定时设置、可用内存等内容
<a
target=
"_blank"
href=
"https://uniapp.dcloud.net.cn/uniCloud/cf-functions?id=packagejson"
>
详情
</a>
|
│
───function-name 云函数目录
|
│
│──index.js 云函数代码
|
│
└──package.json 包含云函数的配置信息,如url化、定时设置、可用内存等内容
<a
target=
"_blank"
href=
"https://uniapp.dcloud.net.cn/uniCloud/cf-functions?id=packagejson"
>
详情
</a>
| └───object-name 云对象目录
| │──index.obj.js 云对象代码
| └──package.json 包含云对象的配置信息,可用内存等内容
<a
target=
"_blank"
href=
"https://uniapp.dcloud.net.cn/uniCloud/cf-functions?id=packagejson"
>
详情
</a>
...
...
@@ -227,7 +227,9 @@ exports.main = async (event, context) => {
##### 其他客户端信息@client-info
-
以下四个属性只有使用uni-app以callFunction方式调用才能获取,由客户端传递到云函数
> HBuilderX 3.4.9起,可以获取所有客户端`getSystemInfo`返回的客户端信息,详细字段列表参考:[getSystemInfo](https://uniapp.dcloud.net.cn/api/system/info.html#getsysteminfo)
-
客户端信息只有使用uni-app客户端以callFunction方式调用才能获取,由客户端传递到云函数
-
实际业务中务必验证一下前端传来的数据的合法性
```
js
...
...
@@ -242,8 +244,8 @@ exports.main = async (event, context) => {
**注意事项**
-
event大小不可超过100kb
-
云函数url化的场景下无法获取
`context.OS`
、
`context.PLATFORM`
、
`context.APPID`
、
`context.DEVICEID`
-
阿里云event大小不可超过1MB,腾讯云event大小不可超过6MB
-
云函数url化的场景下无法获取
客户端信息,
`context.OS`
、
`context.PLATFORM`
、
`context.APPID`
、
`context.DEVICEID`
等
>在云函数URL化的场景无法获取客户端平台信息,可以在调用依赖客户端平台的接口接口之前(推荐在云函数入口)通过修改context.PLATFORM手动传入客户端平台信息供其他插件(如:uni-id)使用
...
...
docs/uniCloud/cloud-obj.md
浏览文件 @
db332865
...
...
@@ -216,6 +216,8 @@ uniCloud有众多API,另见:[uniCloud的API清单](uniCloud/cf-functions.htm
### 获取客户端信息@get-client-info
> HBuilderX 3.4.9起此接口可获取所有客户端`getSystemInfo`返回的客户端信息,完整字段列表参考:[getSystemInfo](https://uniapp.dcloud.net.cn/api/system/info.html#getsysteminfo)
**接口形式**
`this.getClientInfo()`
...
...
@@ -253,6 +255,8 @@ module.exports = {
|deviceId |string |是 |客户端deviceId,目前同getSystemInfo内的deviceId|
|uniIdToken |string |是 |客户端用户token |
**注意**
-
与云函数内获取客户端platform稍有不同,云函数未拉齐vue2、vue3版本app平台的platform值,vue2为
`app-plus`
,vue3为
`app`
。云对象无论客户端是vue2还是vue3,在app平台获取的platform均为
`app`
。这一点在使用uni-id时需要特别注意,详情见:
[
uni-id文档 preferedAppPlatform
](
uniCloud/uni-id.md?id=prefered-app-platform
)
...
...
@@ -518,7 +522,7 @@ uniCloud.importObject('todo', {
uniCloud
.
importObject
(
'
todo
'
,
{
customUI
:
false
,
// 是否取消自动展示的交互界面。默认为false,配置为true时取消自动展示的交互提示界面,以下配置均不再生效
loadingOptions
:
{
// loading相关配置
t
ext
:
'
加载中...
'
,
// 显示的loading内的提示文字。默认值为:加载中...
t
itle
:
'
加载中...
'
,
// 显示的loading内的提示文字。默认值为:加载中...
mask
:
true
// 是否使用透明遮罩,配置为true时不可点击页面其他内容。默认值为:true
},
errorOptions
:
{
// 错误界面相关配置
...
...
docs/uniCloud/faq.md
浏览文件 @
db332865
...
...
@@ -232,7 +232,7 @@ uniCloud的每个云函数是一个独立进程,不存在云函数级别的多
### 高并发下简单的防止超卖
> uniCloud阿里云现已支持redis,开通并使用redis请参考:[redis开通和使用](uniCloud/redis.md),如何使用redis防止超卖请参考:[redis高并发抢购](uniCloud/redis.md?id=snap-over-sell)
> uniCloud阿里云现已支持redis,开通并使用redis请参考:[redis开通和使用](uniCloud/redis.md),如何使用redis防止超卖请参考:[redis高并发抢购](uniCloud/redis.md?id=snap-over-sell)
(推荐使用)。如下方式针对无redis场景比较不灵活(不推荐使用)
高并发时很多用户同时对一条数据读写,很容易造成数据混乱,表现在秒杀抢购等场景就是超卖。以秒杀为例,开发者可以从扣除库存这步入手对超卖进行很大程度的限制,下面是一个简单的示例(
**注意以下代码未使用事务**
)
...
...
docs/uniCloud/uni-id.md
浏览文件 @
db332865
...
...
@@ -250,7 +250,7 @@ const userInfo = atob(userSegment) // '{"uid":"61a593ba91a750000166f78d","role":
**前提介绍:**
uni-app vue2版本app端对应的platform为
`app-plus`
,uni-app vue3版本app端对应的platform为
`app`
。此改动引发了一些问题,比如在uni-id内使微信登录会无法匹配对应的平台导致登录报错。
uni-app vue2版本app端对应的platform为
`app-plus`
(HBuilderX 3.4.9起 vue2版本app端对应的platform值也调整为
`app`
)
,uni-app vue3版本app端对应的platform为
`app`
。此改动引发了一些问题,比如在uni-id内使微信登录会无法匹配对应的平台导致登录报错。
由于uni-id将客户端平台存储在了数据库内(例如:app端微信登录的openid被存储为
`wx_openid['app-plus']`
),此问题无法平滑升级,因此对于新老项目建议分别处理。
...
...
@@ -787,6 +787,32 @@ uniCloud.callFunction({
```
### 主动刷新token@refresh-token
> 新增于uni-id 3.3.14
用法:
`uniID.refreshToken(Object RefreshTokenParams);`
**参数说明**
| 字段| 类型 | 必填| 说明 |
| --- | --- | --- | --- |
| token | String| 是 |用户token|
**示例**
```
js
const
{
token
,
tokenExpired
}
=
await
uniID
.
refreshToken
({
token
:
'
xxx
'
})
```
**注意**
-
刷新token后会在再次触发查库校验token时使token失效
### 登出@logout
...
...
@@ -937,15 +963,37 @@ exports.main = async function(event,context) {
}
```
### 使用短信验证码重置密码@reset-pwd-by-sms
> 新增于 uni-id 3.3.14
用法:
`uniID.resetPwdBySms(Object ResetPwdBySmsParams)`
**参数说明**
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| mobile | String| 是 |手机号码 |
| code | String| 是 |验证码 |
| password | String| 是 |重置后的密码 |
**响应参数**
无
**注意**
-
对应发送短信验证码接口
`type`
为
`reset-pwd`
### 加密密码 @encrypt-password
用法:
`uniID.encryptPwd(String password)`
**参数说明**
| 字段
| 类型 | 必填| 说明
|
| ---
| --- | --- | ---
|
| password
| String| 是 |要加密的字符串
|
| 字段
| 类型 | 必填 | 说明
|
| ---
| --- | --- | ---
|
| password
| String| 是 |要加密的字符串
|
**响应参数**
...
...
@@ -1132,6 +1180,36 @@ exports.main = async function(event,context) {
-
此接口仅校验token是否合法,从token中获取用户信息。不查库校验token,也不会查库获取用户信息。适用于不想使用checkToken获取用户信息的场景(checkToken内包含其他逻辑,比如自动刷新token等)
### 添加用户(非注册)@add-user
> 新增于 uni-id 3.3.14
用法:
`uniID.addUser(Object AddUserParams);`
**BanAccountParams参数说明**
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| username | String| username、email、mobile至少有一个 |用户名 |
| mobile | String| username、email、mobile至少有一个 |手机号 |
| email | String| username、email、mobile至少有一个 |邮箱 |
| password | String| 否 |密码 |
| role | Array | 否 |角色列表 |
| authorizedApp | Array | 否 |此用户能登录的app对应的appId列表 |
**响应参数**
| 字段 | 类型 | 必备 | 说明 |
| --- | --- | --- | --- |
| uid | String| 是 |添加用户返回的用户id |
**注意**
-
authorizedApp不传时创建的用户无法登录任一端,后续可以调用授权登录接口再次授权登录
-
传入email、mobile时,自动会将对用的email_confirmed、mobile_confirmed设置为1
### 封禁账户@ban-account
-
由于客户端存在token缓存,执行封禁操作并不会实时生效。用户下次获取token(包括刷新token)时才会出现错误信息
...
...
@@ -1148,9 +1226,9 @@ exports.main = async function(event,context) {
**响应参数**
| 字段
| 类型 | 必填| 说明
|
| ---
| --- | --- | ---
|
|
code| Number| 是 |错误码,0表示成功
|
| 字段
| 类型 | 必填 | 说明
|
| ---
| --- | --- | ---
|
|
errCode | Number
|
String | 是 |错误码,0表示成功
|
### 解禁账户@unban-account
...
...
@@ -1285,12 +1363,12 @@ uni.removeStorageSync('uni_id_token_expired')
**参数说明**
| 字段
| 类型 | 必填| 说明
|
| ---
| --- | --- | ---
|
| mobile
| String| 是 |用户手机号
|
| templateId| String| 是 |
`uni-id 1.1.8+`
用户自定义模板Id,
不传则使用uniID_code(请注意目前此模板已经不再开放使用,请传入自定义模板Id,已经报备使用的用户不受影响),请使用类似下面模板示例的参数申请模板
|
| code
| String| 否 |验证码字符串
|
| type
| String| 是 |类型,用于防止不同功能的验证码混用,目前支持的类型
`login`
登录、
`register`
注册、
`bind`
绑定手机、
`unbind`
解绑手机|
| 字段
| 类型 | 必填 | 说明
|
| ---
| --- | --- | ---
|
| mobile
| String| 是 |用户手机号
|
| templateId| String| 是 |
`uni-id 1.1.8+`
用户自定义模板Id,
请使用类似下面模板示例的参数申请模板
|
| code
| String| 否 |验证码字符串
|
| type | String| 是 |类型,用于防止不同功能的验证码混用,目前支持的类型
`login`
登录、
`register`
注册、
`bind`
绑定手机、
`unbind`
解绑手机|
```
// 短信模板示例,请在https://dev.dcloud.net.cn/uniSms申请签名(短信开头中括号内部分)及模板
...
...
@@ -2021,6 +2099,27 @@ exports.main = async function(event,context) {
}
```
### 获取App平台微信登录用户信息@get-weixin-user-info
> 新增于 uni-id 3.3.14
用法:
`uniID.getWeixinUserInfo(Object GetWeixinUserInfoParams);`
**参数说明**
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| accessToken | String| 是 |用户登录时返回的accessToken|
| openid | String| 是 |用户登录时返回的openid |
**响应参数**
| 字段 | 类型 | 说明 |
| --- | --- | --- |
| nickname | String|用户昵称 |
| avatar | String|用户头像 |
## QQ@qq
> 新增于3.3.0版本
...
...
@@ -3035,36 +3134,41 @@ const res = await uniID.forbidAppLogin({
在unicloud
[
web控制台
](
https://unicloud.dcloud.net.cn/
)
新建数据表时,可以从
`uni-id`
的模板分类里找到下面的表,并一键创建这些表。
## 用户表
## 用户表
@user-table
表名:
`uni-id-users`
| 字段 | 类型 | 必填| 描述 |
| ----------------| --------- | ----| ------------------------------------------- |
|
\_
id | Object ID | 是 | 存储文档 ID(用户 ID),系统自动生成 |
| username | String | 否 | 用户名,不允许重复 |
| password | String | 否 | 密码。加密存储 |
| nickname | String | 否 | 用户昵称 |
| gender | Integer | 否 | 用户性别:0 未知 1 男性 2 女性 |
| status | Integer | 是 | 用户状态:0 正常,1 禁用,2 审核中,3 审核拒绝,4 已注销 |
| mobile | String | 否 | 手机号码 |
| mobile_confirmed| Integer | 否 | 手机号验证状态:0 未验证 1 已验证,未验证用户不可登录 |
| email | String | 否 | 邮箱地址 |
| email_confirmed | Integer | 否 | 邮箱验证状态:0 未验证 1 已验证,未验证用户不可登录 |
| avatar | String | 否 | 头像地址 |
| wx_unionid | String | 否 | 微信unionid |
| wx_openid | Object | 否 | 微信各个平台openid |
| ali_openid | String | 否 | 支付宝平台openid |
| comment | String | 否 | 备注 |
| realname_auth | Object | 否 | 实名认证信息 |
| register_date | Timestamp | 否 | 注册时间 |
| register_ip | String | 否 | 注册时 IP 地址 |
| last_login_date | Timestamp | 否 | 最后登录时间(注意并非只有登录操作会修改此值,token刷新时也会修改最后登录时间。应用启动时若token有效则不会触发登录行为,也不会更新本值。最后登录IP同理)|
| last_login_ip | String | 否 | 最后登录时 IP 地址 |
| login_ip_limit | Array | 否 | 登录 IP 限制 |
| inviter_uid | Array | 否 | 邀请人uid,按层级从下往上排列的uid数组,即第一个是直接上级|
| my_invite_code | String | 否 | 用户自己的邀请码 |
| role | Array | 否 | 用户角色列表,由role_id组成的数组 |
| 字段 | 类型 | 必填 | 描述 |
| ---------------- | --------- | ---- | ------------------------------------------- |
|
\_
id | Object ID | 是 | 存储文档 ID(用户 ID),系统自动生成 |
| username | String | 否 | 用户名,不允许重复 |
| password | String | 否 | 密码。加密存储 |
| nickname | String | 否 | 用户昵称 |
| gender | Integer | 否 | 用户性别:0 未知 1 男性 2 女性 |
| status | Integer | 是 | 用户状态:0 正常,1 禁用,2 审核中,3 审核拒绝,4 已注销 |
| mobile | String | 否 | 手机号码 |
| mobile_confirmed | Integer | 否 | 手机号验证状态:0 未验证 1 已验证,未验证用户不可登录 |
| email | String | 否 | 邮箱地址 |
| email_confirmed | Integer | 否 | 邮箱验证状态:0 未验证 1 已验证,未验证用户不可登录 |
| avatar | String | 否 | 头像地址 |
| wx_unionid | String | 否 | 微信unionid |
| wx_openid | Object | 否 | 微信各个平台openid |
| ali_openid | String | 否 | 支付宝平台openid |
| comment | String | 否 | 备注 |
| realname_auth | Object | 否 | 实名认证信息 |
| register_date | Timestamp | 否 | 注册时间 |
| register_ip | String | 否 | 注册时 IP 地址,
`uni-id 3.3.14`
起移至register_env内 |
| last_login_date | Timestamp | 否 | 最后登录时间 |
| last_login_ip | String | 否 | 最后登录时 IP 地址 |
| login_ip_limit | Array | 否 | 登录 IP 限制 |
| inviter_uid | Array | 否 | 邀请人uid,按层级从下往上排列的uid数组,即第一个是直接上级|
| my_invite_code | String | 否 | 用户自己的邀请码 |
| role | Array | 否 | 用户角色列表,由role_id组成的数组 |
| register_env | Object | 否 | 用户注册时的环境信息,新增于
`uni-id 3.3.14`
|
**注意**
-
最后登录时间、IP,并非只有登录操作会修改,token刷新时也会修改最后登录时间、ip。应用启动时若token有效则不会触发登录行为,也不会更新本值。
**wx_openid字段定义**
...
...
@@ -3100,6 +3204,21 @@ const res = await uniID.forbidAppLogin({
| company | String | 否 | 公司名称 |
| title | String | 否 | 职位 |
**register_env字段定义**
**注意:调用addUser添加的用户无此字段**
| 字段 | 类型 | 必填 | 描述 |
|-- |-- |-- |-- |
|appid | String|否 |注册时的客户端appId |
|uni_platform |String |否 |注册时的客户端平台,如h5、app、mp-weixin等 |
|app_name |String |否 |注册时的客户端名称 |
|app_version |String |否 |注册时的客户版本 |
|app_version_code |String |否 |注册时的客户版本号 |
|channel |String |否 |注册时的客户端启动场景(小程序)或应用渠道(app) |
|client_ip |String |否 |注册时的客户端IP |
用户集合示例:
```
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录