Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
德宏大魔王
uni-starter
提交
900ca99e
U
uni-starter
项目概览
德宏大魔王
/
uni-starter
与 Fork 源项目一致
Fork自
DCloud / uni-starter
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
U
uni-starter
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
900ca99e
编写于
10月 02, 2021
作者:
DCloud_JSON
提交者:
study夏羽
11月 10, 2021
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
新增,支持配置是否开启i18n多语言国际化。 配置文件:
上级
1ef9c1f6
变更
9
隐藏空白更改
内联
并排
Showing
9 changed file
with
144 addition
and
88 deletion
+144
-88
App.vue
App.vue
+0
-25
README.md
README.md
+34
-14
changelog.md
changelog.md
+8
-0
lang/i18n.js
lang/i18n.js
+91
-44
package.json
package.json
+1
-1
pages/list/list.nvue
pages/list/list.nvue
+1
-1
pages/ucenter/settings/settings.vue
pages/ucenter/settings/settings.vue
+5
-2
uni-starter.config.js
uni-starter.config.js
+4
-0
uni_modules/uni-feedback/pages/opendb-feedback/opendb-feedback.vue
...es/uni-feedback/pages/opendb-feedback/opendb-feedback.vue
+0
-1
未找到文件。
App.vue
浏览文件 @
900ca99e
...
...
@@ -43,31 +43,6 @@
});
}*/
// #endif
let
initLanguageAfter
=
()
=>
{
console
.
log
(
'
作用于多语言国际化功能,这里获取语言包lang/en.js、lang/zh-Hans.js的tabbar中配置的值更新当前应用的底部tabbar,如果你不需要多语言国际化。直接删除App.vue页面的47-55行即可
'
);
//底部tabbar更新
this
.
$t
(
'
tabbar
'
).
split
(
'
,
'
).
forEach
((
text
,
index
)
=>
{
uni
.
setTabBarItem
({
index
,
text
,
complete
:
e
=>
{
// console.log("e: " + JSON.stringify(e));
}
})
})
//更新 uni-starter.config
//agreements
let
agreementsTitle
=
this
.
$t
(
'
agreementsTitle
'
).
split
(
'
,
'
)
let
agreements
=
getApp
().
globalData
.
config
.
about
.
agreements
agreements
[
0
].
title
=
agreementsTitle
[
0
]
agreements
[
1
].
title
=
agreementsTitle
[
1
]
getApp
().
globalData
.
config
.
about
.
agreements
=
agreements
}
setTimeout
(()
=>
{
initLanguageAfter
()
},
1000
)
uni
.
$on
(
'
changeLanguage
'
,
e
=>
{
console
.
log
(
'
changeLanguage
'
,
e
);
initLanguageAfter
(
e
)
})
},
onShow
:
function
()
{
console
.
log
(
'
App Show
'
)
...
...
README.md
浏览文件 @
900ca99e
...
...
@@ -61,19 +61,36 @@ uni-starter + uniCloud admin,提供了用户端和管理端的基础模板,
你只需要在项目根目录的框架配置文件:
`uni-starter.config.js`
的
`router`
->
`needLogin`
和
`login`
中配置完整的路由名称即可:
```
js
"
router
"
:
{
//needLogin:配置强制需要登陆的页面,在打开这些页面之前会自动检查(前端校验)uni_id_token的值是否有效,如果无效会自动跳转到登陆页面
"
needLogin
"
:
[
"
/pages/ucenter/userinfo/userinfo
"
,
"
/uni_modules/uni-news-favorite/pages/uni-news-favorite/list
"
,
"
/uni_modules/uni-feedback/pages/uni-feedback/add
"
],
/*
login:配置登陆类型与优先级
未列举到的,或设备环境不支持的选项,将被隐藏。如果你需要在不同平台有不同的配置,直接用条件编译即可
根据数组的第0项,决定登录方式的第一优先级。
详情下文:2.登录配置详解
*/
"
login
"
:
[
"
username
"
,
"
smsCode
"
,
"
univerify
"
,
"
weixin
"
,
"
apple
"
],
/*名词解释:“强制登陆页”
在打开定义的需强制登陆的页面之前会自动检查(前端校验)uni_id_token的值是否有效,
如果无效会自动跳转到登陆页面
两种模式:
1.needLogin:黑名单模式。枚举游客不可访问的页面。
2.visitor:白名单模式。枚举游客可访问的页面。
* 注意:黑名单与白名单模式二选一 */
//needLogin:配置强制需要登陆的页面,在打开这些页面之前会自动检查(前端校验)uni_id_token的值是否有效,如果无效会自动跳转到登陆页面
// "needLogin" : [
// {pattern:/^\/pages\/list.*/}, //支持正则表达式
// "/uni_modules/uni-news-favorite/pages/uni-news-favorite/list",
// "/uni_modules/uni-feedback/pages/uni-feedback/add"
// ],
"
visitor
"
:
[
"
/
"
,
//注意入口页必须直接写 "/"
{
"
pattern
"
:
/^
\
/
pages
\
/
list
.
*
/}, /
/
支持正则表达式
{
"
pattern
"
:
/^
\
/
pages
\
/
ucenter
\
/
login
-
page
.
*
/}
,
"
/pages/common/webview/webview
"
,
"
/pages/grid/grid
"
,
"
/pages/ucenter/ucenter
"
,
"
/pages/ucenter/guestbook/guestbook
"
,
"
/pages/ucenter/about/about
"
,
"
/pages/ucenter/settings/settings
"
],
/*
login:配置登陆类型与优先级
未列举到的,或设备环境不支持的选项,将被隐藏。如果你需要在不同平台有不同的配置,直接用条件编译即可
根据数组的第0项,决定登录方式的第一优先级。
*/
"
login
"
:
[
"
username
"
,
"
univerify
"
,
"
weixin
"
,
"
smsCode
"
,
"
apple
"
]
}
```
...
...
@@ -366,6 +383,10 @@ module.exports = {
"
marketId
"
:{
"
ios
"
:
"
id1417078253
"
,
"
android
"
:
"
123456
"
},
//配置多语言国际化。i18n为英文单词 internationalization的首末字符i和n,18为中间的字符数 是“国际化”的简称
"
i18n
"
:{
"
enable
"
:
false
//默认启用,国际化。如果你不想使用国际化相关功能,请改为false
}
}
```
...
...
@@ -462,7 +483,6 @@ uni-starter
1.
判断当前用户是否拥有某角色
`uniIDHasRole`
演示页面:
`/pages/grid/grid`
[
API文档详情:
](
https://uniapp.dcloud.io/api/global?id=uniidhasrole
)
2.
指纹解锁、人脸解锁 演示页面:
`/pages/ucenter/settings/settings`
[
API文档详情:
](
https://uniapp.dcloud.io/api/system/authentication
)
### 注意事项
1.
真机运行需要制作自定义基座,制作后选择运行到自定义基座
2.
苹果登录的图标,需要满足苹果应用市场的审核规范请勿随便修改;如需修改请先阅读:
[
Sign in with Apple Button
](
https://appleid.apple.com/signinwithapple/button
)
...
...
changelog.md
浏览文件 @
900ca99e
## 1.1.15(2021-10-02)
新增,支持配置是否开启i18n多语言国际化。
配置文件:
`uni-starter.config.js`
`
"i18n":{
"enable":true //默认启用,国际化。如果你不想使用国际化相关功能,请改为false
}
`
## 1.1.14(2021-09-30)
1.
通过微信小程序登陆自动保存
`sessionKey`
到
`uni-id-users`
表
2.
我的-设置-个人资料 点击绑定手机号码,完善账号信息支持以下三种策略:
...
...
lang/i18n.js
浏览文件 @
900ca99e
import
langEn
from
'
./en
'
import
zhHans
from
'
./zh-Hans
'
const
messages
=
{
'
en
'
:
langEn
,
'
zh-Hans
'
:
zhHans
import
langEn
from
'
./en
'
import
zhHans
from
'
./zh-Hans
'
import
uniStarterConfig
from
'
../uni-starter.config.js
'
const
{
i18n
:{
enable
:
i18nEnable
}
}
=
uniStarterConfig
const
messages
=
{
'
en
'
:
langEn
,
'
zh-Hans
'
:
zhHans
}
let
currentLang
=
uni
.
getStorageSync
(
'
CURRENT_LANG
'
)
let
currentLang
if
(
i18nEnable
){
currentLang
=
uni
.
getStorageSync
(
'
CURRENT_LANG
'
)
}
else
{
currentLang
=
"
zh-Hans
"
}
console
.
log
(
uni
.
getStorageSync
(
'
CURRENT_LANG
'
),
currentLang
);
if
(
!
currentLang
)
{
if
(
uni
.
getLocale
){
console
.
log
(
'
获取应用语言:
'
,
uni
.
getLocale
()
);
let
language
=
'
zh-Hans
'
if
(
uni
.
getLocale
()
!=
'
zh-Hans
'
){
language
=
'
en
'
}
uni
.
setStorageSync
(
'
CURRENT_LANG
'
,
language
)
currentLang
=
language
}
else
{
uni
.
getSystemInfo
({
success
:
function
(
res
)
{
console
.
log
(
'
获取设备信息:
'
,
res
);
let
language
=
'
zh-Hans
'
if
(
res
.
language
==
'
en
'
){
language
=
'
en
'
}
uni
.
setStorageSync
(
'
CURRENT_LANG
'
,
language
)
currentLang
=
language
},
fail
:
(
err
)
=>
{
console
.
error
(
err
)
}
})
}
}
let
i18nConfig
=
{
locale
:
currentLang
,
// set locale
messages
// set locale messages
}
// #ifdef VUE2
if
(
uni
.
getLocale
)
{
console
.
log
(
'
获取应用语言:
'
,
uni
.
getLocale
());
let
language
=
'
en
'
if
(
uni
.
getLocale
()
!=
'
en
'
)
{
language
=
'
zh-Hans
'
}
uni
.
setStorageSync
(
'
CURRENT_LANG
'
,
language
)
currentLang
=
language
}
else
{
uni
.
getSystemInfo
({
success
:
function
(
res
)
{
console
.
log
(
'
获取设备信息:
'
,
res
);
let
language
=
'
zh-Hans
'
if
(
res
.
language
==
'
en
'
)
{
language
=
'
en
'
}
uni
.
setStorageSync
(
'
CURRENT_LANG
'
,
language
)
currentLang
=
language
},
fail
:
(
err
)
=>
{
console
.
error
(
err
)
}
})
}
}
let
i18nConfig
=
{
locale
:
currentLang
,
// set locale
messages
// set locale messages
}
// #ifdef VUE2
import
Vue
from
'
vue
'
import
VueI18n
from
'
vue-i18n
'
Vue
.
use
(
VueI18n
)
const
i18n
=
new
VueI18n
(
i18nConfig
)
// #endif
const
i18n
=
new
VueI18n
(
i18nConfig
)
// #endif
// #ifdef VUE3
import
{
createI18n
}
from
'
vue-i18n
'
const
i18n
=
createI18n
(
i18nConfig
)
// #endif
export
default
i18n
// #ifdef VUE3
import
{
createI18n
}
from
'
vue-i18n
'
const
i18n
=
createI18n
(
i18nConfig
)
// #endif
export
default
i18n
\ No newline at end of file
if
(
i18nEnable
){
console
.
log
(
1
);
let
initLanguageAfter
=
()
=>
{
//获得定义的文字
console
.
log
(
$i18n
(
'
tabbar
'
).
split
(
'
,
'
));
function
$i18n
(
e
){
return
i18n
.
messages
[
i18n
.
locale
][
e
]
}
setTimeout
(
function
(){
//底部tabbar更新
$i18n
(
'
tabbar
'
).
split
(
'
,
'
).
forEach
((
text
,
index
)
=>
{
console
.
log
(
text
);
uni
.
setTabBarItem
({
index
,
text
,
complete
:
e
=>
{
console
.
log
(
"
e:
"
+
JSON
.
stringify
(
e
));
}
})
})
},
1
)
//更新 uni-starter.config
//agreements
let
agreementsTitle
=
$i18n
(
'
agreementsTitle
'
).
split
(
'
,
'
)
let
agreements
=
uniStarterConfig
.
about
.
agreements
agreements
[
0
].
title
=
agreementsTitle
[
0
]
agreements
[
1
].
title
=
agreementsTitle
[
1
]
uniStarterConfig
.
about
.
agreements
=
agreements
}
initLanguageAfter
()
uni
.
$on
(
'
changeLanguage
'
,
e
=>
{
console
.
log
(
'
changeLanguage
'
,
e
);
initLanguageAfter
(
e
)
})
}
\ No newline at end of file
package.json
浏览文件 @
900ca99e
{
"id"
:
"uni-starter"
,
"displayName"
:
"uni-starter"
,
"version"
:
"1.1.1
4
"
,
"version"
:
"1.1.1
5
"
,
"description"
:
"云端一体应用快速开发基本项目模版"
,
"keywords"
:
[
"login"
,
...
...
pages/list/list.nvue
浏览文件 @
900ca99e
...
...
@@ -138,7 +138,7 @@
console.log('refresh');
},
onqueryerror(e) {
console.
log
(e);
console.
error
(e);
}
},
onPullDownRefresh() {
...
...
pages/ucenter/settings/settings.vue
浏览文件 @
900ca99e
...
...
@@ -15,7 +15,7 @@
<uni-list-item
v-if=
"supportMode.includes('fingerPrint')"
:title=
"$t('settings.fingerPrint')"
@
click.native=
"startSoterAuthentication('fingerPrint')"
link
></uni-list-item>
<uni-list-item
v-if=
"supportMode.includes('facial')"
:title=
"$t('settings.facial')"
@
click=
"startSoterAuthentication('facial')"
link
></uni-list-item>
<!-- #endif -->
<uni-list-item
:title=
"$t('settings.changeLanguage')"
@
click=
"changeLanguage"
:rightText=
"currentLanguage"
link
></uni-list-item>
<uni-list-item
v-if=
"i18nEnable"
:title=
"$t('settings.changeLanguage')"
@
click=
"changeLanguage"
:rightText=
"currentLanguage"
link
></uni-list-item>
</uni-list>
<uni-list
class=
"mt10"
:border=
"false"
>
...
...
@@ -50,7 +50,10 @@
...
mapGetters
({
'
userInfo
'
:
'
user/info
'
,
'
hasLogin
'
:
'
user/hasLogin
'
,
})
}),
i18nEnable
(){
return
getApp
().
globalData
.
config
.
i18n
.
enable
}
},
onLoad
()
{
this
.
uniToken
=
uni
.
getStorageSync
(
'
uni_id_token
'
)
...
...
uni-starter.config.js
浏览文件 @
900ca99e
...
...
@@ -86,5 +86,9 @@ export default {
"
marketId
"
:{
"
ios
"
:
"
id1417078253
"
,
"
android
"
:
"
123456
"
},
//配置多语言国际化。i18n为英文单词 internationalization的首末字符i和n,18为中间的字符数 是“国际化”的简称
"
i18n
"
:{
"
enable
"
:
true
//默认启用,国际化。如果你不想使用国际化相关功能,请改为false
}
}
uni_modules/uni-feedback/pages/opendb-feedback/opendb-feedback.vue
浏览文件 @
900ca99e
...
...
@@ -26,7 +26,6 @@
import
{
validator
}
from
'
../../js_sdk/validator/opendb-feedback.js
'
;
console
.
log
(
validator
);
const
db
=
uniCloud
.
database
();
const
dbCollectionName
=
'
opendb-feedback
'
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录