Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Miykael_xxm
uni-starter
提交
dad10953
U
uni-starter
项目概览
Miykael_xxm
/
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看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
dad10953
编写于
8月 27, 2021
作者:
DCloud_JSON
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
- APP端支持vue3 (hbuilderx 3.2.5+) - 支持国际化 中英文切换 - 新增留言板示例 - 修复签到的时区问题
上级
e15e0a4d
变更
103
展开全部
隐藏空白更改
内联
并排
Showing
103 changed file
with
2443 addition
and
1278 deletion
+2443
-1278
App.vue
App.vue
+34
-6
changelog.md
changelog.md
+5
-2
components/cloud-image/cloud-image.vue
components/cloud-image/cloud-image.vue
+8
-2
components/uni-agreements/uni-agreements.vue
components/uni-agreements/uni-agreements.vue
+2
-2
components/uni-load-state/i18n/en.json
components/uni-load-state/i18n/en.json
+6
-0
components/uni-load-state/i18n/index.js
components/uni-load-state/i18n/index.js
+6
-0
components/uni-load-state/i18n/zh-Hans.json
components/uni-load-state/i18n/zh-Hans.json
+6
-0
components/uni-load-state/uni-load-state.vue
components/uni-load-state/uni-load-state.vue
+26
-6
lang/en.js
lang/en.js
+4
-3
lang/i18n.js
lang/i18n.js
+32
-8
lang/zh-Hans.js
lang/zh-Hans.js
+2
-1
package.json
package.json
+6
-6
pages.json
pages.json
+36
-42
pages/common/webview/webview.vue
pages/common/webview/webview.vue
+12
-0
pages/list/list.nvue
pages/list/list.nvue
+24
-4
pages/ucenter/guestbook/guestbook.vue
pages/ucenter/guestbook/guestbook.vue
+15
-10
pages/ucenter/settings/settings.vue
pages/ucenter/settings/settings.vue
+56
-55
pages/ucenter/ucenter.vue
pages/ucenter/ucenter.vue
+1
-1
pages/ucenter/userinfo/userinfo.vue
pages/ucenter/userinfo/userinfo.vue
+2
-2
static/uni.ttf
static/uni.ttf
+0
-0
uni-starter.config.js
uni-starter.config.js
+1
-1
uniCloud-aliyun/database/JQL数据库管理.jql
uniCloud-aliyun/database/JQL数据库管理.jql
+1
-1
uniCloud-aliyun/database/guestbook.schema.json
uniCloud-aliyun/database/guestbook.schema.json
+1
-1
uni_modules/uni-badge/components/uni-badge/uni-badge.vue
uni_modules/uni-badge/components/uni-badge/uni-badge.vue
+3
-0
uni_modules/uni-calendar/changelog.md
uni_modules/uni-calendar/changelog.md
+2
-0
uni_modules/uni-calendar/components/uni-calendar/i18n/en.json
...modules/uni-calendar/components/uni-calendar/i18n/en.json
+12
-0
uni_modules/uni-calendar/components/uni-calendar/i18n/index.js
...odules/uni-calendar/components/uni-calendar/i18n/index.js
+8
-0
uni_modules/uni-calendar/components/uni-calendar/i18n/zh-Hans.json
...es/uni-calendar/components/uni-calendar/i18n/zh-Hans.json
+12
-0
uni_modules/uni-calendar/components/uni-calendar/i18n/zh-Hant.json
...es/uni-calendar/components/uni-calendar/i18n/zh-Hant.json
+12
-0
uni_modules/uni-calendar/components/uni-calendar/uni-calendar-item.vue
...ni-calendar/components/uni-calendar/uni-calendar-item.vue
+34
-24
uni_modules/uni-calendar/components/uni-calendar/uni-calendar.vue
...les/uni-calendar/components/uni-calendar/uni-calendar.vue
+66
-25
uni_modules/uni-calendar/package.json
uni_modules/uni-calendar/package.json
+1
-1
uni_modules/uni-countdown/changelog.md
uni_modules/uni-countdown/changelog.md
+10
-8
uni_modules/uni-countdown/components/uni-countdown/i18n/en.json
...dules/uni-countdown/components/uni-countdown/i18n/en.json
+6
-0
uni_modules/uni-countdown/components/uni-countdown/i18n/index.js
...ules/uni-countdown/components/uni-countdown/i18n/index.js
+8
-0
uni_modules/uni-countdown/components/uni-countdown/i18n/zh-Hans.json
.../uni-countdown/components/uni-countdown/i18n/zh-Hans.json
+6
-0
uni_modules/uni-countdown/components/uni-countdown/i18n/zh-Hant.json
.../uni-countdown/components/uni-countdown/i18n/zh-Hant.json
+6
-0
uni_modules/uni-countdown/components/uni-countdown/uni-countdown.vue
.../uni-countdown/components/uni-countdown/uni-countdown.vue
+26
-7
uni_modules/uni-countdown/package.json
uni_modules/uni-countdown/package.json
+85
-81
uni_modules/uni-data-picker/readme.md
uni_modules/uni-data-picker/readme.md
+1
-1
uni_modules/uni-datetime-picker/changelog.md
uni_modules/uni-datetime-picker/changelog.md
+3
-0
uni_modules/uni-datetime-picker/components/uni-datetime-picker/calendar.vue
...tetime-picker/components/uni-datetime-picker/calendar.vue
+70
-32
uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/en.json
...tetime-picker/components/uni-datetime-picker/i18n/en.json
+19
-0
uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/index.js
...etime-picker/components/uni-datetime-picker/i18n/index.js
+8
-0
uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/zh-Hans.json
...e-picker/components/uni-datetime-picker/i18n/zh-Hans.json
+19
-0
uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/zh-Hant.json
...e-picker/components/uni-datetime-picker/i18n/zh-Hant.json
+19
-0
uni_modules/uni-datetime-picker/components/uni-datetime-picker/time-picker.vue
...ime-picker/components/uni-datetime-picker/time-picker.vue
+33
-12
uni_modules/uni-datetime-picker/components/uni-datetime-picker/uni-datetime-picker.vue
...er/components/uni-datetime-picker/uni-datetime-picker.vue
+93
-36
uni_modules/uni-datetime-picker/package.json
uni_modules/uni-datetime-picker/package.json
+1
-1
uni_modules/uni-fav/changelog.md
uni_modules/uni-fav/changelog.md
+12
-10
uni_modules/uni-fav/components/uni-fav/i18n/en.json
uni_modules/uni-fav/components/uni-fav/i18n/en.json
+4
-0
uni_modules/uni-fav/components/uni-fav/i18n/index.js
uni_modules/uni-fav/components/uni-fav/i18n/index.js
+8
-0
uni_modules/uni-fav/components/uni-fav/i18n/zh-Hans.json
uni_modules/uni-fav/components/uni-fav/i18n/zh-Hans.json
+4
-0
uni_modules/uni-fav/components/uni-fav/i18n/zh-Hant.json
uni_modules/uni-fav/components/uni-fav/i18n/zh-Hant.json
+4
-0
uni_modules/uni-fav/components/uni-fav/uni-fav.vue
uni_modules/uni-fav/components/uni-fav/uni-fav.vue
+19
-4
uni_modules/uni-fav/package.json
uni_modules/uni-fav/package.json
+88
-84
uni_modules/uni-feedback/changelog.md
uni_modules/uni-feedback/changelog.md
+2
-2
uni_modules/uni-feedback/js_sdk/validator/opendb-feedback.js
uni_modules/uni-feedback/js_sdk/validator/opendb-feedback.js
+98
-0
uni_modules/uni-feedback/package.json
uni_modules/uni-feedback/package.json
+79
-65
uni_modules/uni-feedback/pages/opendb-feedback/detail.vue
uni_modules/uni-feedback/pages/opendb-feedback/detail.vue
+113
-0
uni_modules/uni-feedback/pages/opendb-feedback/edit.vue
uni_modules/uni-feedback/pages/opendb-feedback/edit.vue
+167
-0
uni_modules/uni-feedback/pages/opendb-feedback/list.vue
uni_modules/uni-feedback/pages/opendb-feedback/list.vue
+70
-0
uni_modules/uni-feedback/pages/opendb-feedback/opendb-feedback.vue
...es/uni-feedback/pages/opendb-feedback/opendb-feedback.vue
+35
-46
uni_modules/uni-feedback/readme.md
uni_modules/uni-feedback/readme.md
+2
-1
uni_modules/uni-feedback/uniCloud/database/opendb-feedback.schema.json
...ni-feedback/uniCloud/database/opendb-feedback.schema.json
+3
-3
uni_modules/uni-goods-nav/changelog.md
uni_modules/uni-goods-nav/changelog.md
+11
-9
uni_modules/uni-goods-nav/components/uni-goods-nav/i18n/en.json
...dules/uni-goods-nav/components/uni-goods-nav/i18n/en.json
+6
-0
uni_modules/uni-goods-nav/components/uni-goods-nav/i18n/index.js
...ules/uni-goods-nav/components/uni-goods-nav/i18n/index.js
+8
-0
uni_modules/uni-goods-nav/components/uni-goods-nav/i18n/zh-Hans.json
.../uni-goods-nav/components/uni-goods-nav/i18n/zh-Hans.json
+6
-0
uni_modules/uni-goods-nav/components/uni-goods-nav/i18n/zh-Hant.json
.../uni-goods-nav/components/uni-goods-nav/i18n/zh-Hant.json
+6
-0
uni_modules/uni-goods-nav/components/uni-goods-nav/uni-goods-nav.vue
.../uni-goods-nav/components/uni-goods-nav/uni-goods-nav.vue
+16
-11
uni_modules/uni-goods-nav/package.json
uni_modules/uni-goods-nav/package.json
+86
-82
uni_modules/uni-icons/components/uni-icons/uni-icons.vue
uni_modules/uni-icons/components/uni-icons/uni-icons.vue
+1
-1
uni_modules/uni-load-more/changelog.md
uni_modules/uni-load-more/changelog.md
+8
-6
uni_modules/uni-load-more/components/uni-load-more/i18n/en.json
...dules/uni-load-more/components/uni-load-more/i18n/en.json
+5
-0
uni_modules/uni-load-more/components/uni-load-more/i18n/index.js
...ules/uni-load-more/components/uni-load-more/i18n/index.js
+8
-0
uni_modules/uni-load-more/components/uni-load-more/i18n/zh-Hans.json
.../uni-load-more/components/uni-load-more/i18n/zh-Hans.json
+5
-0
uni_modules/uni-load-more/components/uni-load-more/i18n/zh-Hant.json
.../uni-load-more/components/uni-load-more/i18n/zh-Hant.json
+5
-0
uni_modules/uni-load-more/components/uni-load-more/uni-load-more.vue
.../uni-load-more/components/uni-load-more/uni-load-more.vue
+195
-180
uni_modules/uni-load-more/package.json
uni_modules/uni-load-more/package.json
+85
-81
uni_modules/uni-popup/changelog.md
uni_modules/uni-popup/changelog.md
+35
-33
uni_modules/uni-popup/components/uni-popup-dialog/uni-popup-dialog.vue
...ni-popup/components/uni-popup-dialog/uni-popup-dialog.vue
+54
-35
uni_modules/uni-popup/components/uni-popup-share/uni-popup-share.vue
.../uni-popup/components/uni-popup-share/uni-popup-share.vue
+27
-14
uni_modules/uni-popup/components/uni-popup/i18n/en.json
uni_modules/uni-popup/components/uni-popup/i18n/en.json
+7
-0
uni_modules/uni-popup/components/uni-popup/i18n/index.js
uni_modules/uni-popup/components/uni-popup/i18n/index.js
+8
-0
uni_modules/uni-popup/components/uni-popup/i18n/zh-Hans.json
uni_modules/uni-popup/components/uni-popup/i18n/zh-Hans.json
+7
-0
uni_modules/uni-popup/components/uni-popup/i18n/zh-Hant.json
uni_modules/uni-popup/components/uni-popup/i18n/zh-Hant.json
+7
-0
uni_modules/uni-popup/components/uni-popup/uni-popup.vue
uni_modules/uni-popup/components/uni-popup/uni-popup.vue
+2
-1
uni_modules/uni-popup/package.json
uni_modules/uni-popup/package.json
+89
-85
uni_modules/uni-search-bar/changelog.md
uni_modules/uni-search-bar/changelog.md
+20
-18
uni_modules/uni-search-bar/components/uni-search-bar/i18n/en.json
...les/uni-search-bar/components/uni-search-bar/i18n/en.json
+4
-0
uni_modules/uni-search-bar/components/uni-search-bar/i18n/index.js
...es/uni-search-bar/components/uni-search-bar/i18n/index.js
+8
-0
uni_modules/uni-search-bar/components/uni-search-bar/i18n/zh-Hans.json
...ni-search-bar/components/uni-search-bar/i18n/zh-Hans.json
+4
-0
uni_modules/uni-search-bar/components/uni-search-bar/i18n/zh-Hant.json
...ni-search-bar/components/uni-search-bar/i18n/zh-Hant.json
+4
-0
uni_modules/uni-search-bar/components/uni-search-bar/uni-search-bar.vue
...i-search-bar/components/uni-search-bar/uni-search-bar.vue
+39
-26
uni_modules/uni-search-bar/package.json
uni_modules/uni-search-bar/package.json
+87
-83
uni_modules/uni-share/changelog.md
uni_modules/uni-share/changelog.md
+2
-0
uni_modules/uni-share/package.json
uni_modules/uni-share/package.json
+2
-2
uni_modules/uni-sign-in/changelog.md
uni_modules/uni-sign-in/changelog.md
+2
-0
uni_modules/uni-sign-in/components/uni-sign-in/uni-sign-in.vue
...odules/uni-sign-in/components/uni-sign-in/uni-sign-in.vue
+2
-3
uni_modules/uni-sign-in/package.json
uni_modules/uni-sign-in/package.json
+1
-1
uni_modules/uni-sign-in/uniCloud/cloudfunctions/uni-clientDB-actions/signIn.js
...in/uniCloud/cloudfunctions/uni-clientDB-actions/signIn.js
+15
-2
uni_modules_tools/copy/manifest.json
uni_modules_tools/copy/manifest.json
+9
-9
未找到文件。
App.vue
浏览文件 @
dad10953
...
...
@@ -13,6 +13,7 @@
},
onLaunch
:
function
()
{
console
.
log
(
'
App Launch
'
)
this
.
globalData
.
$i18n
=
this
.
$i18n
this
.
globalData
.
$t
=
str
=>
this
.
$t
(
str
)
...
...
@@ -39,10 +40,11 @@
}
});
}*/
console
.
log
(
"
国际化语言检测:
"
+
plus
.
os
.
language
);
// #endif
let
updateTabbar
=
()
=>
{
let
initLanguageAfter
=
()
=>
{
console
.
log
(
this
.
$t
(
'
tabbar
'
));
//底部tabbar更新
this
.
$t
(
'
tabbar
'
).
split
(
'
,
'
).
forEach
((
text
,
index
)
=>
{
uni
.
setTabBarItem
({
index
,
...
...
@@ -51,12 +53,38 @@
// console.log("e: " + JSON.stringify(e));
}
})
})
}
updateTabbar
()
})
//更新 uni-starter.config
//agreements
let
agreements
=
[{
"
title
"
:
"
用户服务协议
"
,
//协议名称
"
url
"
:
"
请填写用户服务协议链接
"
//对应的网络链接
},
{
"
title
"
:
"
隐私政策
"
,
"
url
"
:
"
请填写隐私政策链接
"
}
]
if
(
getApp
().
$i18n
.
locale
==
'
en
'
){
agreements
=
[{
"
title
"
:
"
User service agreement
"
,
//协议名称
"
url
"
:
"
请填写用户服务协议链接
"
//对应的网络链接
},
{
"
title
"
:
"
Privacy policy
"
,
"
url
"
:
"
请填写隐私政策链接
"
}
]
}
console
.
log
(
getApp
().
globalData
.
config
)
getApp
().
globalData
.
config
.
about
.
agreements
=
agreements
}
setTimeout
(()
=>
{
initLanguageAfter
()
},
1000
)
uni
.
$on
(
'
changeLanguage
'
,
e
=>
{
console
.
log
(
'
changeLanguage
'
,
e
);
updateTabbar
(
)
initLanguageAfter
(
e
)
})
},
onShow
:
function
()
{
...
...
changelog.md
浏览文件 @
dad10953
## 1.0.49(2021-08-24)
支持国际化
## 1.0.49(2021-08-27)
-
APP端支持vue3 (hbuilderx 3.2.5+)
-
支持国际化 中英文切换
-
新增留言板示例
-
修复签到的时区问题
## 1.0.48(2021-08-10)
-
修复登陆成功后响应体包含
`userInfo.password`
的问题
-
修改了
`uni-id-users`
表的schema中字段username的编辑权限,防止用户通过clientDB绕过用户名不能重复的规则更新用户名的问题
...
...
components/cloud-image/cloud-image.vue
浏览文件 @
dad10953
<
template
>
<view
:style=
"
{width,height}">
<view
@
click=
"onClick"
:style=
"
{width,height}">
<image
v-if=
"cSrc"
:style=
"
{width,height}" :src="cSrc" :mode="mode">
</image>
</view>
</
template
>
<
script
>
export
default
{
name
:
"
cloud-image
"
,
name
:
"
cloud-image
"
,
emits
:[
'
click
'
,
'
switchChange
'
],
props
:
{
mode
:
{
type
:
String
,
...
...
@@ -54,6 +55,11 @@
},
async
mounted
()
{
},
methods
:{
onClick
(){
this
.
$emit
(
'
click
'
)
}
},
data
()
{
return
{
...
...
components/uni-agreements/uni-agreements.vue
浏览文件 @
dad10953
...
...
@@ -2,11 +2,11 @@
<view
class=
"root"
>
<checkbox-group
@
change=
"setAgree"
class=
"checkbox-group"
>
<checkbox
style=
"transform: scale(0.7);"
/>
<text>
同意
</text>
<text>
{{
$t
(
'
common.agree
'
)
}}
</text>
</checkbox-group>
<view
class=
"item"
v-for=
"(agreement,index) in agreements"
:key=
"index"
>
<text
class=
"agreement"
@
click=
"navigateTo(agreement)"
>
{{
agreement
.
title
}}
</text>
<text
class=
"hint"
v-if=
"hasAnd(agreements,index)"
>
和
</text>
<text
class=
"hint"
v-if=
"hasAnd(agreements,index)"
>
&
</text>
</view>
</view>
</
template
>
...
...
components/uni-load-state/i18n/en.json
0 → 100644
浏览文件 @
dad10953
{
"noData"
:
"No Data"
,
"noNetwork"
:
"Network error"
,
"toSet"
:
"Go to settings"
,
"error"
:
"error"
}
components/uni-load-state/i18n/index.js
0 → 100644
浏览文件 @
dad10953
import
en
from
'
./en.json
'
import
zhHans
from
'
./zh-Hans.json
'
export
default
{
en
,
'
zh-Hans
'
:
zhHans
}
components/uni-load-state/i18n/zh-Hans.json
0 → 100644
浏览文件 @
dad10953
{
"noData"
:
"暂无数据"
,
"noNetwork"
:
"网络异常"
,
"toSet"
:
"前往设置"
,
"error"
:
"错误"
}
components/uni-load-state/uni-load-state.vue
浏览文件 @
dad10953
...
...
@@ -2,24 +2,44 @@
<view
style=
"width: 750rpx;"
>
<template
v-if=
"!state.error"
>
<uni-load-more
v-if=
"state.loading||state.pagination.current!=1||state.data.length!=0"
:status=
"state.loading?'loading':(state.hasMore?'hasMore':'noMore')"
></uni-load-more>
<text
class=
"noData"
v-else
>
{{
$t
(
'
loadMore.noData
'
)
}}
</text>
<text
class=
"noData"
v-else
>
{{
noData
}}
</text>
</
template
>
<view
v-else
>
<view
class=
"box"
v-if=
"networkType == 'none'"
>
<image
class=
"icon-image"
src=
"@/static/uni-load-state/disconnection.png"
mode=
"widthFix"
></image>
<text
class=
"tip-text"
>
{{
$t('loadMore.noNetwork')
}}
</text>
<text
class=
"tip-text"
>
{{
noNetwork
}}
</text>
<view
class=
"btn btn-default"
@
click=
"openSettings"
>
<text
class=
"btn-text"
>
{{
$t('loadMore.toSet')
}}
</text>
<text
class=
"btn-text"
>
{{
toSet
}}
</text>
</view>
</view>
<text
class=
"err"
v-else
>
{{
$t('loadMore.error')
}}:{{JSON.stringify(state.error)}}
</text>
<text
class=
"err"
v-else
>
{{
error
}}:{{JSON.stringify(state.error)}}
</text>
</view>
</view>
</template>
<
script
>
import
{
initVueI18n
}
from
'
@dcloudio/uni-i18n
'
import
messages
from
'
./i18n/index.js
'
const
{
t
}
=
initVueI18n
(
messages
)
export
default
{
name
:
"
uni-load-state
"
,
name
:
"
uni-load-state
"
,
computed
:{
noData
(){
return
t
(
'
noData
'
)
},
noNetwork
(){
return
t
(
'
noNetwork
'
)
},
toSet
(){
return
t
(
'
toSet
'
)
},
error
(){
return
t
(
'
error
'
)
}
},
data
()
{
return
{
"
networkType
"
:
""
...
...
@@ -122,7 +142,7 @@
text-align
:
center
;
padding
:
30
rpx
;
width
:
750
rpx
;
/* #ifndef APP-NVUE */
/* #ifndef APP-
PLUS-
NVUE */
display
:
block
;
/* #endif */
}
...
...
lang/en.js
浏览文件 @
dad10953
...
...
@@ -4,7 +4,8 @@ export default {
wechatFriends
:
"
friends
"
,
wechatBbs
:
"
bbs
"
,
weibo
:
"
weibo
"
,
more
:
"
more
"
,
more
:
"
more
"
,
agree
:
"
agree
"
,
copy
:
"
copy
"
,
wechatApplet
:
"
applet
"
,
cancelShare
:
"
cancel sharing
"
,
...
...
@@ -53,7 +54,7 @@ export default {
signIn
:
"
Check In Reward
"
,
toEvaluate
:
"
To Evaluate
"
,
readArticles
:
"
Read Articles
"
,
myScore
:
"
My
Integral
"
,
myScore
:
"
My
Score
"
,
invite
:
"
Invite Friends
"
,
guestBook
:
"
Guest Book Example
"
,
feedback
:
"
Problems And Feedback
"
,
...
...
@@ -143,7 +144,7 @@ export default {
},
about
:
{
sacnQR
:
"
Scan the QR Code and your friends can also download it
"
,
client
:
"
APP
"
,
client
:
"
applCantion
"
,
and
:
"
And
"
,
about
:
"
About
"
,
},
...
...
lang/i18n.js
浏览文件 @
dad10953
import
langEn
from
'
./en
'
import
langZhCN
from
'
./zh-CN
'
import
zhHans
from
'
./zh-Hans
'
const
messages
=
{
'
en
'
:
langEn
,
'
zh-
CN
'
:
langZhCN
'
zh-
Hans
'
:
zhHans
}
let
currentLang
=
uni
.
getStorageSync
(
'
CURRENT_LANG
'
)
if
(
!
currentLang
)
{
// 获取设备信息
uni
.
getSystemInfo
({
success
:
function
(
res
)
{
uni
.
setStorageSync
(
'
CURRENT_LANG
'
,
res
.
language
)
currentLang
=
res
.
language
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
)
{
uni
.
getSystemInfo
({
success
:
function
(
res
)
{
console
.
log
(
'
获取设备信息:
'
,
res
);
let
language
=
'
zh-Hans
'
if
(
res
.
language
!=
'
zh-Hans
'
){
language
=
'
en
'
}
uni
.
setStorageSync
(
'
CURRENT_LANG
'
,
language
)
currentLang
=
language
},
fail
:
(
err
)
=>
{
console
.
error
(
err
)
}
})
},
fail
:
(
err
)
=>
{
console
.
error
(
err
)
}
})
}
}
let
i18nConfig
=
{
locale
:
currentLang
,
// set locale
...
...
lang/zh-
CN
.js
→
lang/zh-
Hans
.js
浏览文件 @
dad10953
...
...
@@ -4,7 +4,8 @@ export default {
wechatFriends
:
"
微信好友
"
,
wechatBbs
:
"
微信朋友圈
"
,
weibo
:
"
微博
"
,
more
:
"
更多
"
,
more
:
"
更多
"
,
agree
:
"
同意
"
,
copy
:
"
复制
"
,
wechatApplet
:
"
微信小程序
"
,
cancelShare
:
"
取消分享
"
,
...
...
package.json
浏览文件 @
dad10953
{
"id"
:
"uni-starter"
,
"displayName"
:
"uni-starter"
,
"version"
:
"1.0.4
8
"
,
"version"
:
"1.0.4
9
"
,
"description"
:
"云端一体应用快速开发基本项目模版"
,
"keywords"
:
[
"login"
,
"登录"
,
"搜索"
,
"uni-id例子"
],
"login"
,
"登录"
,
"搜索"
,
"uni-id例子"
],
"repository"
:
"https://codechina.csdn.net/dcloud/uni-starter.git"
,
"engines"
:
{
"HBuilderX"
:
"^3.1.20"
...
...
pages.json
浏览文件 @
dad10953
{
"pages"
:
[
{
"pages"
:
[{
"path"
:
"pages/list/list"
,
"style"
:
{
"navigationStyle"
:
"custom"
,
"enablePullDownRefresh"
:
true
}
},
}
},
{
"path"
:
"pages/grid/grid"
,
"style"
:
{
...
...
@@ -59,11 +58,6 @@
"style"
:
{
"navigationStyle"
:
"custom"
}
},
{
"path"
:
"uni_modules/uni-feedback/pages/uni-feedback/uni-feedback"
,
"style"
:
{
"navigationBarTitleText"
:
"问题反馈"
}
},
{
"path"
:
"pages/ucenter/about/about"
,
"style"
:
{
...
...
@@ -163,39 +157,39 @@
"enablePullDownRefresh"
:
false
}
},
{
"path"
:
"pages/ucenter/settings/deactivate/deactivate"
,
"style"
:
{
"navigationBarTitleText"
:
"注销提醒"
,
"enablePullDownRefresh"
:
false
}
},
{
"path"
:
"uni_modules/uni-feedback/pages/opendb-feedback/opendb-feedback"
,
"style"
:
{
"navigationBarTitleText"
:
"意见反馈"
,
"enablePullDownRefresh"
:
false
}
},
{
"path"
:
"pages/ucenter/guestbook/guestbook"
,
"style"
:
{
"navigationBarTitleText"
:
"留言板"
,
"enablePullDownRefresh"
:
false
,
"app-plus"
:
{
"titleNView"
:
{
"buttons"
:
[{
"text"
:
"切换"
,
"fontSize"
:
"12px"
},
{
"text"
:
"注销"
,
"fontSize"
:
"12px"
}
]
}
}
}
}
,{
"path"
:
"pages/ucenter/settings/deactivate/deactivate"
,
"style"
:
{
"navigationBarTitleText"
:
"注销提醒"
,
"enablePullDownRefresh"
:
false
}
}
,{
"path"
:
"pages/ucenter/guestbook/guestbook"
,
"style"
:
{
"navigationBarTitleText"
:
"留言板"
,
"enablePullDownRefresh"
:
false
,
"app-plus"
:{
"titleNView"
:{
"buttons"
:[
{
"text"
:
"切换"
,
"fontSize"
:
"12px"
},
{
"text"
:
"注销"
,
"fontSize"
:
"12px"
}
]
}
}
}
}
],
],
"globalStyle"
:
{
"navigationBarTextStyle"
:
"black"
,
"navigationBarTitleText"
:
"uni-starter"
,
...
...
@@ -206,7 +200,7 @@
"condition"
:
{
"list"
:
[{
"path"
:
"pages/list/detail"
},{
},
{
"path"
:
"pages/list/list"
},
{
...
...
pages/common/webview/webview.vue
浏览文件 @
dad10953
...
...
@@ -7,6 +7,18 @@
<
script
>
export
default
{
onLoad
({
url
,
title
})
{
if
(
url
.
substring
(
0
,
4
)
!=
'
http
'
){
return
uni
.
showModal
({
title
:
"
错误
"
,
content
:
'
不是一个有效的网站链接,
'
+
'
"
'
+
url
+
'
"
'
,
showCancel
:
false
,
confirmText
:
"
知道了
"
,
complete
:
()
=>
{
uni
.
navigateBack
()
}
});
}
console
.
log
(
url
,
title
);
this
.
url
=
url
;
if
(
title
){
...
...
pages/list/list.vue
→
pages/list/list.
n
vue
浏览文件 @
dad10953
...
...
@@ -5,10 +5,9 @@
<!-- #endif -->
<!-- 搜索功能 -->
<uni-search-bar @click="searchClick" class="uni-search-box" v-model="keyword" ref="searchBar" radius="100"
cancelButton=
"none"
disabled
:placeholder=
"
$t('list.inputPlaceholder')
"
/>
cancelButton="none" disabled :placeholder="
inputPlaceholder
" />
<view class="cover-search-bar" @click="searchClick"></view>
<unicloud-db ref='udb' v-slot:default="{data,pagination,hasMore, loading, error, options}" @error="onqueryerror"
:where="where" collection="opendb-news-articles,uni-id-users" :page-size="10"
field="avatar,title,last_modify_date,user_id.username">
...
...
@@ -54,6 +53,15 @@
export default {
components: {
statusBar
},
computed:{
inputPlaceholder(e){
if(uni.getStorageSync('CURRENT_LANG') == "en"){
return 'Please enter the search content'
}else{
return '请输入搜索内容'
}
}
},
data() {
return {
...
...
@@ -79,7 +87,16 @@
// #ifndef APP-NVUE
this.listHight = 'auto'
// #endif
cdbRef
=
this
.
$refs
.
udb
cdbRef = this.$refs.udb
// #ifdef VUE3
console.log('vue3')
// #endif
// #ifdef VUE2
console.log('vue2')
// #endif
},
async onShow() {
this.keyword = getApp().globalData.searchText
...
...
@@ -89,8 +106,11 @@
// uni.showLoading({
// title:"获取定位中"
// });
// #ifndef H5
let location = await gps.getLocation({geocode:true})
console.log(location);
// #endif
// if(location){
// uni.showToast({
// title: JSON.stringify(location),
...
...
@@ -122,7 +142,7 @@
},
onqueryerror(e){
console.log(e);
}
}
},
onPullDownRefresh() {
this.refresh()
...
...
pages/ucenter/guestbook/guestbook.vue
浏览文件 @
dad10953
<
template
>
<view
class=
"page"
>
<unicloud-db
ref=
"udb"
class=
"content"
v-slot:default=
"
{data,pagination,hasMore, loading, error}"
collection="guestbook,uni-id-users" :where="udbWhere" field="u
id.username,uid._id,u
id.avatar_file,text,_id,state">
collection="guestbook,uni-id-users" :where="udbWhere" field="u
ser_id.nickname,user_id._id,user_
id.avatar_file,text,_id,state">
<view
v-if=
"error"
>
{{
error
.
message
}}
</view>
<view
v-else
>
<view
v-for=
"(item,index) in data"
:key=
"index"
class=
"item"
>
<view
class=
"main"
>
<!--
<uni-file-picker
v-if=
"item.uid[0].avatar_file"
v-model=
"item.uid[0].avatar_file"
fileMediatype=
"image"
:del-icon=
"false"
return-type=
"object"
:image-styles=
"listStyles"
disablePreview
disabled
></uni-file-picker>
-->
<cloud-image
:src=
"item.uid[0].avatar_file.url"
></cloud-image>
<cloud-image
:src=
"item.user_id[0].avatar_file.url"
></cloud-image>
<view>
<text
class=
"
username"
>
{{
item
.
uid
[
0
].
user
name
}}
</text>
<text
class=
"
nickname"
>
{{
item
.
user_id
[
0
].
nick
name
}}
</text>
<text>
{{
item
.
text
}}
</text>
</view>
</view>
...
...
@@ -46,7 +42,15 @@
hasLogin
:
'
user/hasLogin
'
}),
udbWhere
(){
return
this
.
hasLogin
?
''
:{
state
:
true
}
if
(
this
.
hasLogin
){
if
(
this
.
uniIDHasRole
(
'
AUDITOR
'
)
){
return
''
}
else
{
return
'
state==true || user_id._id==$cloudEnv_uid
'
}
}
else
{
return
'
"state"==true
'
}
}
},
data
()
{
...
...
@@ -97,12 +101,13 @@
},
send
()
{
this
.
$refs
.
udb
.
add
({
text
:
this
.
text
text
:
this
.
text
},{
toastTitle
:
this
.
$t
(
'
guestbook.addSucceeded
'
),
// toast提示语
success
:
(
res
)
=>
{
// 新增成功后的回调
let
{
code
,
message
}
=
res
console
.
log
(
code
,
message
);
this
.
text
=
''
this
.
$refs
.
udb
.
refresh
()
//{clear:true}
},
fail
:
(
err
)
=>
{
// 新增失败后的回调
...
...
@@ -162,7 +167,7 @@
font-size
:
24
rpx
;
}
.item
.main
.
user
name
{
.item
.main
.
nick
name
{
font-weight
:
600
;
}
...
...
pages/ucenter/settings/settings.vue
浏览文件 @
dad10953
...
...
@@ -5,22 +5,22 @@
<uni-list-item
:title=
"$t('settings.userInfo')"
to=
"/pages/ucenter/userinfo/userinfo"
link=
"navigateTo"
></uni-list-item>
<uni-list-item
v-if=
"userInfo.mobile"
:title=
"$t('settings.changePassword')"
:to=
"'/pages/ucenter/login-page/pwd-retrieve/pwd-retrieve?phoneNumber='+ userInfo.mobile"
link=
"navigateTo"
></uni-list-item>
</uni-list>
<uni-list
class=
"mt10"
:border=
"false"
>
<uni-list
class=
"mt10"
:border=
"false"
>
<!-- #ifndef H5 -->
<!-- #ifdef APP-PLUS -->
<!-- 检查push过程未结束不显示,push设置项 -->
<uni-list-item
:title=
"$t('settings.clearTmp')"
@
click=
"clearTmp"
link
></uni-list-item>
<uni-list-item
v-
if=
"pushIsOn != 'wait'"
@
click.native=
"pushIsOn?pushServer.off():pushServer.on()"
:title=
"$t('settings.pushServer')"
showSwitch
:switchChecked=
"pushIsOn"
></uni-list-item>
<uni-list-item
v-
show=
"pushIsOn != 'wait'"
:title=
"$t('settings.pushServer')"
@
click.native=
"pushIsOn?pushServer.off():pushServer.on()"
showSwitch
:switchChecked=
"pushIsOn"
></uni-list-item>
<!-- #endif -->
<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 -->
<!-- #endif -->
<uni-list-item
:title=
"$t('settings.changeLanguage')"
@
click=
"changeLanguage"
:rightText=
"currentLanguage"
link
></uni-list-item>
</uni-list>
<uni-list
class=
"mt10"
:border=
"false"
>
<uni-list-item
@
click=
"deactivate"
:title=
"$t('settings.deactivate')"
link=
"navigateTo"
></uni-list-item>
</uni-list>
<uni-list
class=
"mt10"
:border=
"false"
>
<uni-list-item
@
click=
"deactivate"
:title=
"$t('settings.deactivate')"
link=
"navigateTo"
></uni-list-item>
</uni-list>
<!-- 退出/登录 按钮 -->
<view
class=
"bottom-back"
@
click=
"clickLogout"
>
...
...
@@ -41,7 +41,7 @@
return
{
pushServer
:
pushServer
,
supportMode
:[],
pushIsOn
:
"
wait
"
,
pushIsOn
:
"
wait
"
,
currentLanguage
:
""
}
},
...
...
@@ -49,10 +49,10 @@
...
mapGetters
({
'
userInfo
'
:
'
user/info
'
,
'
hasLogin
'
:
'
user/hasLogin
'
,
})
})
},
onLoad
()
{
this
.
currentLanguage
=
uni
.
getStorageSync
(
'
CURRENT_LANG
'
)
==
"
en
"
?
'
English
'
:
'
简体中文
'
onLoad
()
{
this
.
currentLanguage
=
uni
.
getStorageSync
(
'
CURRENT_LANG
'
)
==
"
en
"
?
'
English
'
:
'
简体中文
'
uni
.
setNavigationBarTitle
({
title
:
this
.
$t
(
'
settings.navigationBarTitle
'
)
...
...
@@ -67,7 +67,7 @@
console
.
log
(
err
);
}
})
// #endif
// #endif
},
onShow
()
{
// 检查手机端获取推送是否开启
...
...
@@ -85,11 +85,11 @@
uni
.
navigateTo
({
url
:
'
/pages/ucenter/userinfo/userinfo
'
});
},
deactivate
(){
uni
.
navigateTo
({
url
:
"
/pages/ucenter/settings/deactivate/deactivate
"
})
},
deactivate
(){
uni
.
navigateTo
({
url
:
"
/pages/ucenter/settings/deactivate/deactivate
"
})
},
changePwd
()
{
uni
.
navigateTo
({
...
...
@@ -142,7 +142,7 @@
console
.
log
(
err
);
console
.
log
(
`认证失败:
${
err
.
errCode
}
`
);
uni
.
showToast
({
title
:
this
.
$t
(
'
settings.authFailed
'
),
title
:
this
.
$t
(
'
settings.authFailed
'
),
// title: `认证失败`,
icon
:
'
none
'
});
...
...
@@ -240,37 +240,38 @@
console
.
log
(
e
);
}
});
},
changeLanguage
(){
console
.
log
(
'
语言切换
'
)
uni
.
showActionSheet
({
itemList
:
[
"
English
"
,
"
简体中文
"
],
success
:
res
=>
{
console
.
log
(
res
.
tapIndex
);
let
language
=
uni
.
getStorageSync
(
'
CURRENT_LANG
'
)
if
(
!
res
.
tapIndex
&&
language
==
'
zh-CN
'
||
res
.
tapIndex
&&
language
==
'
en
'
){
const
globalData
=
getApp
().
globalData
if
(
language
===
'
en
'
)
{
language
=
globalData
.
locale
=
'
zh-CN
'
}
else
{
language
=
globalData
.
locale
=
'
en
'
}
uni
.
setStorageSync
(
'
CURRENT_LANG
'
,
language
)
getApp
().
$i18n
.
locale
=
language
this
.
currentLanguage
=
res
.
tapIndex
?
'
简体中文
'
:
'
English
'
uni
.
reLaunch
({
url
:
'
/pages/list/list
'
,
complete
:
()
=>
{
uni
.
$emit
(
"
changeLanguage
"
,
language
)
}
})
}
},
fail
:
()
=>
{},
complete
:
()
=>
{}
});
},
changeLanguage
(){
console
.
log
(
'
语言切换
'
)
uni
.
showActionSheet
({
itemList
:
[
"
English
"
,
"
简体中文
"
],
success
:
res
=>
{
console
.
log
(
res
.
tapIndex
);
let
language
=
uni
.
getStorageSync
(
'
CURRENT_LANG
'
)
if
(
!
res
.
tapIndex
&&
language
==
'
zh-Hans
'
||
res
.
tapIndex
&&
language
==
'
en
'
){
const
globalData
=
getApp
().
globalData
if
(
language
===
'
en
'
)
{
language
=
globalData
.
locale
=
'
zh-Hans
'
}
else
{
language
=
globalData
.
locale
=
'
en
'
}
uni
.
setStorageSync
(
'
CURRENT_LANG
'
,
language
)
getApp
().
$i18n
.
locale
=
language
this
.
currentLanguage
=
res
.
tapIndex
?
'
简体中文
'
:
'
English
'
uni
.
setLocale
(
language
)
uni
.
reLaunch
({
url
:
'
/pages/list/list
'
,
complete
:
()
=>
{
uni
.
$emit
(
"
changeLanguage
"
,
language
)
}
})
}
},
fail
:
()
=>
{},
complete
:
()
=>
{}
});
}
}
}
...
...
@@ -325,14 +326,14 @@
.mt10
{
margin-top
:
10px
;
}
/* #ifndef APP-NVUE || VUE3 */
/* #ifndef APP-NVUE || VUE3 */
.content
/
deep
/
.uni-list
{
background-color
:
#F9F9F9
;
}
.content
/
deep
/
.uni-list-item--disabled
,
.list-item
{
height
:
50px
;
margin-bottom
:
1px
;
}
}
.content
/
deep
/
.uni-list-item--disabled
,
.list-item
{
height
:
50px
;
margin-bottom
:
1px
;
}
/* #endif */
</
style
>
\ No newline at end of file
pages/ucenter/ucenter.vue
浏览文件 @
dad10953
...
...
@@ -96,7 +96,7 @@
"
icon
"
:
"
chat
"
},{
"
title
"
:
this
.
$t
(
'
mine.feedback
'
),
"
to
"
:
'
/uni_modules/uni-feedback/pages/
uni-feedback/uni
-feedback
'
,
"
to
"
:
'
/uni_modules/uni-feedback/pages/
opendb-feedback/opendb
-feedback
'
,
"
icon
"
:
"
help
"
},
{
"
title
"
:
this
.
$t
(
'
mine.settings
'
),
...
...
pages/ucenter/userinfo/userinfo.vue
浏览文件 @
dad10953
...
...
@@ -5,8 +5,8 @@
<template
v-slot:body
>
<view
class=
"item"
>
<text>
{{
$t
(
'
userinfo.ProfilePhoto
'
)
}}
</text>
<cloud-image
@
click.native
=
"uploadAvatarImg"
v-if=
"avatar_file"
:src=
"avatar_file.url"
width=
"50px"
height=
"50px"
></cloud-image>
<uni-icons
v-else
class=
"chooseAvatar"
type=
"plusempty"
size=
"30"
color=
"#dddddd"
></uni-icons>
<cloud-image
@
click
=
"uploadAvatarImg"
v-if=
"avatar_file"
:src=
"avatar_file.url"
width=
"50px"
height=
"50px"
></cloud-image>
<uni-icons
@
click=
"uploadAvatarImg"
v-else
class=
"chooseAvatar"
type=
"plusempty"
size=
"30"
color=
"#dddddd"
></uni-icons>
</view>
</
template
>
</uni-list-item>
...
...
static/uni.ttf
0 → 100644
浏览文件 @
dad10953
文件已添加
uni-starter.config.js
浏览文件 @
dad10953
...
...
@@ -46,7 +46,7 @@ export default {
未列举到的,或设备环境不支持的选项,将被隐藏。如果你需要在不同平台有不同的配置,直接用条件编译即可
根据数组的第0项,决定登录方式的第一优先级。
*/
"
login
"
:
[
"
u
niverify
"
,
"
username
"
,
"
weixin
"
,
"
smsCode
"
,
"
apple
"
]
"
login
"
:
[
"
u
sername
"
,
"
univerify
"
,
"
weixin
"
,
"
smsCode
"
,
"
apple
"
]
},
//关于应用
"
about
"
:
{
...
...
uniCloud-aliyun/database/JQL数据库管理.jql
浏览文件 @
dad10953
...
...
@@ -9,4 +9,4 @@
// 详细JQL语法,请参考 https://uniapp.dcloud.net.cn/uniCloud/clientdb?id=jsquery
// 下面示例查询uni-id-users表的所有数据
db.collection('
uni-id-users
').get();
db.collection('
guestbook, uni-id-users').where('user_id._id=="610a6daa506cc7000100c07f"
').get();
uniCloud-aliyun/database/guestbook.schema.json
浏览文件 @
dad10953
...
...
@@ -18,7 +18,7 @@
"update"
:
"'AUDITOR' in auth.role"
}
},
"uid"
:
{
"u
ser_
id"
:
{
"forceDefaultValue"
:
{
"$env"
:
"uid"
},
...
...
uni_modules/uni-badge/components/uni-badge/uni-badge.vue
浏览文件 @
dad10953
...
...
@@ -156,6 +156,9 @@
$bage-height
:
20px
;
.uni-badge--x
{
/* #ifdef APP-NVUE */
// align-self: flex-start;
/* #endif */
/* #ifndef APP-NVUE */
display
:
inline-block
;
/* #endif */
...
...
uni_modules/uni-calendar/changelog.md
浏览文件 @
dad10953
## 1.4.2(2021-08-24)
-
新增 支持国际化
## 1.4.1(2021-08-05)
-
修复 弹出层被 tabbar 遮盖 bug
## 1.4.0(2021-07-30)
...
...
uni_modules/uni-calendar/components/uni-calendar/i18n/en.json
0 → 100644
浏览文件 @
dad10953
{
"uni-calender.ok"
:
"ok"
,
"uni-calender.cancel"
:
"cancel"
,
"uni-calender.today"
:
"today"
,
"uni-calender.MON"
:
"MON"
,
"uni-calender.TUE"
:
"TUE"
,
"uni-calender.WED"
:
"WED"
,
"uni-calender.THU"
:
"THU"
,
"uni-calender.FRI"
:
"FRI"
,
"uni-calender.SAT"
:
"SAT"
,
"uni-calender.SUN"
:
"SUN"
}
uni_modules/uni-calendar/components/uni-calendar/i18n/index.js
0 → 100644
浏览文件 @
dad10953
import
en
from
'
./en.json
'
import
zhHans
from
'
./zh-Hans.json
'
import
zhHant
from
'
./zh-Hant.json
'
export
default
{
en
,
'
zh-Hans
'
:
zhHans
,
'
zh-Hant
'
:
zhHant
}
uni_modules/uni-calendar/components/uni-calendar/i18n/zh-Hans.json
0 → 100644
浏览文件 @
dad10953
{
"uni-calender.ok"
:
"确定"
,
"uni-calender.cancel"
:
"取消"
,
"uni-calender.today"
:
"今日"
,
"uni-calender.SUN"
:
"日"
,
"uni-calender.MON"
:
"一"
,
"uni-calender.TUE"
:
"二"
,
"uni-calender.WED"
:
"三"
,
"uni-calender.THU"
:
"四"
,
"uni-calender.FRI"
:
"五"
,
"uni-calender.SAT"
:
"六"
}
uni_modules/uni-calendar/components/uni-calendar/i18n/zh-Hant.json
0 → 100644
浏览文件 @
dad10953
{
"uni-calender.ok"
:
"確定"
,
"uni-calender.cancel"
:
"取消"
,
"uni-calender.today"
:
"今日"
,
"uni-calender.SUN"
:
"日"
,
"uni-calender.MON"
:
"一"
,
"uni-calender.TUE"
:
"二"
,
"uni-calender.WED"
:
"三"
,
"uni-calender.THU"
:
"四"
,
"uni-calender.FRI"
:
"五"
,
"uni-calender.SAT"
:
"六"
}
uni_modules/uni-calendar/components/uni-calendar/uni-calendar-item.vue
浏览文件 @
dad10953
...
...
@@ -2,20 +2,20 @@
<view
class=
"uni-calendar-item__weeks-box"
:class=
"
{
'uni-calendar-item--disable':weeks.disable,
'uni-calendar-item--isDay':calendar.fullDate === weeks.fullDate
&&
weeks.isDay,
'uni-calendar-item--checked':(calendar.fullDate === weeks.fullDate
&&
!weeks.isDay) ,
'uni-calendar-item--checked':(calendar.fullDate === weeks.fullDate
&&
!weeks.isDay) ,
'uni-calendar-item--before-checked':weeks.beforeMultiple,
'uni-calendar-item--multiple': weeks.multiple,
'uni-calendar-item--multiple': weeks.multiple,
'uni-calendar-item--after-checked':weeks.afterMultiple,
}"
@click="choiceDate(weeks)">
<view
class=
"uni-calendar-item__weeks-box-item"
>
@click="choiceDate(weeks)">
<view
class=
"uni-calendar-item__weeks-box-item"
>
<text
v-if=
"selected&&weeks.extraInfo"
class=
"uni-calendar-item__weeks-box-circle"
></text>
<text
class=
"uni-calendar-item__weeks-box-text"
:class=
"
{
'uni-calendar-item--isDay-text': weeks.isDay,
'uni-calendar-item--isDay':calendar.fullDate === weeks.fullDate
&&
weeks.isDay,
'uni-calendar-item--checked':calendar.fullDate === weeks.fullDate
&&
!weeks.isDay,
'uni-calendar-item--before-checked':weeks.beforeMultiple,
'uni-calendar-item--multiple': weeks.multiple,
'uni-calendar-item--before-checked':weeks.beforeMultiple,
'uni-calendar-item--multiple': weeks.multiple,
'uni-calendar-item--after-checked':weeks.afterMultiple,
'uni-calendar-item--disable':weeks.disable,
}">
{{
weeks
.
date
}}
</text>
...
...
@@ -23,26 +23,26 @@
'uni-calendar-item--isDay-text':weeks.isDay,
'uni-calendar-item--isDay':calendar.fullDate === weeks.fullDate
&&
weeks.isDay,
'uni-calendar-item--checked':calendar.fullDate === weeks.fullDate
&&
!weeks.isDay,
'uni-calendar-item--before-checked':weeks.beforeMultiple,
'uni-calendar-item--multiple': weeks.multiple,
'uni-calendar-item--before-checked':weeks.beforeMultiple,
'uni-calendar-item--multiple': weeks.multiple,
'uni-calendar-item--after-checked':weeks.afterMultiple,
}">
今天
</text>
}">
{{
todayText
}}
</text>
<text
v-if=
"lunar&&!weeks.extraInfo"
class=
"uni-calendar-item__weeks-lunar-text"
:class=
"
{
'uni-calendar-item--isDay-text':weeks.isDay,
'uni-calendar-item--isDay':calendar.fullDate === weeks.fullDate
&&
weeks.isDay,
'uni-calendar-item--checked':calendar.fullDate === weeks.fullDate
&&
!weeks.isDay,
'uni-calendar-item--before-checked':weeks.beforeMultiple,
'uni-calendar-item--multiple': weeks.multiple,
'uni-calendar-item--before-checked':weeks.beforeMultiple,
'uni-calendar-item--multiple': weeks.multiple,
'uni-calendar-item--after-checked':weeks.afterMultiple,
'uni-calendar-item--disable':weeks.disable,
}">
{{
weeks
.
isDay
?
'
今天
'
:
(
weeks
.
lunar
.
IDayCn
===
'
初一
'
?
weeks
.
lunar
.
IMonthCn
:
weeks
.
lunar
.
IDayCn
)
}}
</text>
}">
{{
weeks
.
isDay
?
todayText
:
(
weeks
.
lunar
.
IDayCn
===
'
初一
'
?
weeks
.
lunar
.
IMonthCn
:
weeks
.
lunar
.
IDayCn
)
}}
</text>
<text
v-if=
"weeks.extraInfo&&weeks.extraInfo.info"
class=
"uni-calendar-item__weeks-lunar-text"
:class=
"
{
'uni-calendar-item--extra':weeks.extraInfo.info,
'uni-calendar-item--isDay-text':weeks.isDay,
'uni-calendar-item--isDay':calendar.fullDate === weeks.fullDate
&&
weeks.isDay,
'uni-calendar-item--checked':calendar.fullDate === weeks.fullDate
&&
!weeks.isDay,
'uni-calendar-item--before-checked':weeks.beforeMultiple,
'uni-calendar-item--multiple': weeks.multiple,
'uni-calendar-item--before-checked':weeks.beforeMultiple,
'uni-calendar-item--multiple': weeks.multiple,
'uni-calendar-item--after-checked':weeks.afterMultiple,
'uni-calendar-item--disable':weeks.disable,
}">
{{
weeks
.
extraInfo
.
info
}}
</text>
...
...
@@ -51,6 +51,11 @@
</
template
>
<
script
>
import
{
initVueI18n
}
from
'
@dcloudio/uni-i18n
'
import
messages
from
'
./i18n/index.js
'
const
{
t
}
=
initVueI18n
(
messages
)
export
default
{
emits
:[
'
change
'
],
props
:
{
...
...
@@ -77,8 +82,13 @@
default
:
false
}
},
computed
:
{
todayText
()
{
return
t
(
"
uni-calender.today
"
)
},
},
methods
:
{
choiceDate
(
weeks
)
{
choiceDate
(
weeks
)
{
this
.
$emit
(
'
change
'
,
weeks
)
}
}
...
...
@@ -159,13 +169,13 @@
background-color
:
$uni-color-primary
;
color
:
#fff
;
opacity
:
0
.8
;
}
.uni-calendar-item--before-checked
{
background-color
:
#ff5a5f
;
color
:
#fff
;
}
.uni-calendar-item--after-checked
{
background-color
:
#ff5a5f
;
color
:
#fff
;
}
</
style
>
.uni-calendar-item--before-checked
{
background-color
:
#ff5a5f
;
color
:
#fff
;
}
.uni-calendar-item--after-checked
{
background-color
:
#ff5a5f
;
color
:
#fff
;
}
</
style
>
uni_modules/uni-calendar/components/uni-calendar/uni-calendar.vue
浏览文件 @
dad10953
...
...
@@ -4,10 +4,10 @@
<view
v-if=
"insert || show"
class=
"uni-calendar__content"
:class=
"
{'uni-calendar--fixed':!insert,'uni-calendar--ani-show':aniMaskShow}">
<view
v-if=
"!insert"
class=
"uni-calendar__header uni-calendar--fixed-top"
>
<view
class=
"uni-calendar__header-btn-box"
@
click=
"close"
>
<text
class=
"uni-calendar__header-text uni-calendar--fixed-width"
>
取消
</text>
<text
class=
"uni-calendar__header-text uni-calendar--fixed-width"
>
{{
cancelText
}}
</text>
</view>
<view
class=
"uni-calendar__header-btn-box"
@
click=
"confirm"
>
<text
class=
"uni-calendar__header-text uni-calendar--fixed-width"
>
确定
</text>
<text
class=
"uni-calendar__header-text uni-calendar--fixed-width"
>
{{
okText
}}
</text>
</view>
</view>
<view
class=
"uni-calendar__header"
>
...
...
@@ -15,12 +15,12 @@
<view
class=
"uni-calendar__header-btn uni-calendar--left"
></view>
</view>
<picker
mode=
"date"
:value=
"date"
fields=
"month"
@
change=
"bindDateChange"
>
<text
class=
"uni-calendar__header-text"
>
{{
(
nowDate
.
year
||
''
)
+
'
年
'
+
(
nowDate
.
month
||
''
)
+
'
月
'
}}
</text>
<text
class=
"uni-calendar__header-text"
>
{{
(
nowDate
.
year
||
''
)
+
'
/
'
+
(
nowDate
.
month
||
''
)
}}
</text>
</picker>
<view
class=
"uni-calendar__header-btn-box"
@
click.stop=
"next"
>
<view
class=
"uni-calendar__header-btn uni-calendar--right"
></view>
</view>
<text
class=
"uni-calendar__backtoday"
@
click=
"backtoday"
>
回到今天
</text>
<text
class=
"uni-calendar__backtoday"
@
click=
"backtoday"
>
{{
todayText
}}
</text>
</view>
<view
class=
"uni-calendar__box"
>
...
...
@@ -29,25 +29,25 @@
</view>
<view
class=
"uni-calendar__weeks"
>
<view
class=
"uni-calendar__weeks-day"
>
<text
class=
"uni-calendar__weeks-day-text"
>
日
</text>
<text
class=
"uni-calendar__weeks-day-text"
>
{{
SUNText
}}
</text>
</view>
<view
class=
"uni-calendar__weeks-day"
>
<text
class=
"uni-calendar__weeks-day-text"
>
一
</text>
<text
class=
"uni-calendar__weeks-day-text"
>
{{
monText
}}
</text>
</view>
<view
class=
"uni-calendar__weeks-day"
>
<text
class=
"uni-calendar__weeks-day-text"
>
二
</text>
<text
class=
"uni-calendar__weeks-day-text"
>
{{
TUEText
}}
</text>
</view>
<view
class=
"uni-calendar__weeks-day"
>
<text
class=
"uni-calendar__weeks-day-text"
>
三
</text>
<text
class=
"uni-calendar__weeks-day-text"
>
{{
WEDText
}}
</text>
</view>
<view
class=
"uni-calendar__weeks-day"
>
<text
class=
"uni-calendar__weeks-day-text"
>
四
</text>
<text
class=
"uni-calendar__weeks-day-text"
>
{{
THUText
}}
</text>
</view>
<view
class=
"uni-calendar__weeks-day"
>
<text
class=
"uni-calendar__weeks-day-text"
>
五
</text>
<text
class=
"uni-calendar__weeks-day-text"
>
{{
FRIText
}}
</text>
</view>
<view
class=
"uni-calendar__weeks-day"
>
<text
class=
"uni-calendar__weeks-day-text"
>
六
</text>
<text
class=
"uni-calendar__weeks-day-text"
>
{{
SATText
}}
</text>
</view>
</view>
<view
class=
"uni-calendar__weeks"
v-for=
"(item,weekIndex) in weeks"
:key=
"weekIndex"
>
...
...
@@ -63,6 +63,11 @@
<
script
>
import
Calendar
from
'
./util.js
'
;
import
calendarItem
from
'
./uni-calendar-item.vue
'
import
{
initVueI18n
}
from
'
@dcloudio/uni-i18n
'
import
messages
from
'
./i18n/index.js
'
const
{
t
}
=
initVueI18n
(
messages
)
/**
* Calendar 日历
* @description 日历组件可以查看日期,选择任意范围内的日期,打点操作。常用场景如:酒店日期预订、火车机票选择购买日期、上下班打卡等
...
...
@@ -74,7 +79,7 @@
* @property {Boolean} range 范围选择
* @property {Boolean} insert = [true|false] 插入模式,默认为false
* @value true 弹窗模式
* @value false 插入模式
* @value false 插入模式
* @property {Boolean} clearDate = [true|false] 弹窗模式是否清空上次选择内容
* @property {Array} selected 打点,期待格式[{date: '2019-06-27', info: '签到', data: { custom: '自定义信息', name: '自定义消息头',xxx:xxx... }}]
* @property {Boolean} showMonth 是否选择月份为背景
...
...
@@ -137,16 +142,52 @@
aniMaskShow
:
false
}
},
computed
:{
/**
* for i18n
*/
okText
()
{
return
t
(
"
uni-calender.ok
"
)
},
cancelText
()
{
return
t
(
"
uni-calender.cancel
"
)
},
todayText
()
{
return
t
(
"
uni-calender.today
"
)
},
monText
()
{
return
t
(
"
uni-calender.MON
"
)
},
TUEText
()
{
return
t
(
"
uni-calender.TUE
"
)
},
WEDText
()
{
return
t
(
"
uni-calender.WED
"
)
},
THUText
()
{
return
t
(
"
uni-calender.THU
"
)
},
FRIText
()
{
return
t
(
"
uni-calender.FRI
"
)
},
SATText
()
{
return
t
(
"
uni-calender.SAT
"
)
},
SUNText
()
{
return
t
(
"
uni-calender.SUN
"
)
},
},
watch
:
{
date
(
newVal
)
{
date
(
newVal
)
{
// this.cale.setDate(newVal)
this
.
init
(
newVal
)
},
startDate
(
val
){
this
.
cale
.
resetSatrtDate
(
val
)
},
endDate
(
val
){
this
.
cale
.
resetEndDate
(
val
)
},
startDate
(
val
){
this
.
cale
.
resetSatrtDate
(
val
)
},
endDate
(
val
){
this
.
cale
.
resetEndDate
(
val
)
},
selected
(
newVal
)
{
this
.
cale
.
setSelectInfo
(
this
.
nowDate
.
fullDate
,
newVal
)
...
...
@@ -179,7 +220,7 @@
* 初始化日期显示
* @param {Object} date
*/
init
(
date
)
{
init
(
date
)
{
this
.
cale
.
setDate
(
date
)
this
.
weeks
=
this
.
cale
.
weeks
this
.
nowDate
=
this
.
calendar
=
this
.
cale
.
getInfo
(
date
)
...
...
@@ -189,7 +230,7 @@
*/
open
()
{
// 弹窗模式并且清理数据
if
(
this
.
clearDate
&&
!
this
.
insert
)
{
if
(
this
.
clearDate
&&
!
this
.
insert
)
{
this
.
cale
.
cleanMultipleStatus
()
// this.cale.setDate(this.date)
this
.
init
(
this
.
date
)
...
...
@@ -208,7 +249,7 @@
this
.
aniMaskShow
=
false
this
.
$nextTick
(()
=>
{
setTimeout
(()
=>
{
this
.
show
=
false
this
.
show
=
false
this
.
$emit
(
'
close
'
)
},
300
)
})
...
...
@@ -267,8 +308,8 @@
* 选择天触发
* @param {Object} weeks
*/
choiceDate
(
weeks
)
{
if
(
weeks
.
disable
)
return
choiceDate
(
weeks
)
{
if
(
weeks
.
disable
)
return
this
.
calendar
=
weeks
// 设置多选
this
.
cale
.
setMultiple
(
this
.
calendar
.
fullDate
)
...
...
@@ -503,4 +544,4 @@
line-height
:
1
;
/* #endif */
}
</
style
>
</
style
>
uni_modules/uni-calendar/package.json
浏览文件 @
dad10953
{
"id"
:
"uni-calendar"
,
"displayName"
:
"uni-calendar 日历"
,
"version"
:
"1.4.
1
"
,
"version"
:
"1.4.
2
"
,
"description"
:
"日历组件"
,
"keywords"
:
[
"uni-ui"
,
...
...
uni_modules/uni-countdown/changelog.md
浏览文件 @
dad10953
## 1.1.2(2021-08-24)
-
新增 支持国际化
## 1.1.1(2021-07-30)
-
优化 vue3下小程序事件警告的问题
## 1.1.0(2021-07-30)
-
组件兼容 vue3,如何创建vue3项目,详见
[
uni-app 项目支持 vue3 介绍
](
https://ask.dcloud.net.cn/article/37834
)
## 1.0.5(2021-06-18)
-
修复 uni-countdown 重复赋值跳两秒的 bug
## 1.0.4(2021-05-12)
-
新增 组件示例地址
## 1.0.3(2021-05-08)
-
修复 uni-countdown 不能控制倒计时的 bug
## 1.0.2(2021-02-04)
-
调整为uni_modules目录规范
## 1.0.5(2021-06-18)
-
修复 uni-countdown 重复赋值跳两秒的 bug
## 1.0.4(2021-05-12)
-
新增 组件示例地址
## 1.0.3(2021-05-08)
-
修复 uni-countdown 不能控制倒计时的 bug
## 1.0.2(2021-02-04)
-
调整为uni_modules目录规范
uni_modules/uni-countdown/components/uni-countdown/i18n/en.json
0 → 100644
浏览文件 @
dad10953
{
"uni-countdown.day"
:
"day"
,
"uni-countdown.h"
:
"h"
,
"uni-countdown.m"
:
"m"
,
"uni-countdown.s"
:
"s"
}
uni_modules/uni-countdown/components/uni-countdown/i18n/index.js
0 → 100644
浏览文件 @
dad10953
import
en
from
'
./en.json
'
import
zhHans
from
'
./zh-Hans.json
'
import
zhHant
from
'
./zh-Hant.json
'
export
default
{
en
,
'
zh-Hans
'
:
zhHans
,
'
zh-Hant
'
:
zhHant
}
uni_modules/uni-countdown/components/uni-countdown/i18n/zh-Hans.json
0 → 100644
浏览文件 @
dad10953
{
"uni-countdown.day"
:
"天"
,
"uni-countdown.h"
:
"时"
,
"uni-countdown.m"
:
"分"
,
"uni-countdown.s"
:
"秒"
}
uni_modules/uni-countdown/components/uni-countdown/i18n/zh-Hant.json
0 → 100644
浏览文件 @
dad10953
{
"uni-countdown.day"
:
"天"
,
"uni-countdown.h"
:
"時"
,
"uni-countdown.m"
:
"分"
,
"uni-countdown.s"
:
"秒"
}
uni_modules/uni-countdown/components/uni-countdown/uni-countdown.vue
浏览文件 @
dad10953
...
...
@@ -2,19 +2,24 @@
<view
class=
"uni-countdown"
>
<text
v-if=
"showDay"
:style=
"
{ borderColor: borderColor, color: color, backgroundColor: backgroundColor }"
class="uni-countdown__number">
{{
d
}}
</text>
<text
v-if=
"showDay"
:style=
"
{ color: splitorColor }" class="uni-countdown__splitor">
天
</text>
<text
v-if=
"showDay"
:style=
"
{ color: splitorColor }" class="uni-countdown__splitor">
{{
dayText
}}
</text>
<text
:style=
"
{ borderColor: borderColor, color: color, backgroundColor: backgroundColor }"
class="uni-countdown__number">
{{
h
}}
</text>
<text
:style=
"
{ color: splitorColor }" class="uni-countdown__splitor">
{{
showColon
?
'
:
'
:
'
时
'
}}
</text>
<text
:style=
"
{ color: splitorColor }" class="uni-countdown__splitor">
{{
showColon
?
'
:
'
:
hourText
}}
</text>
<text
:style=
"
{ borderColor: borderColor, color: color, backgroundColor: backgroundColor }"
class="uni-countdown__number">
{{
i
}}
</text>
<text
:style=
"
{ color: splitorColor }" class="uni-countdown__splitor">
{{
showColon
?
'
:
'
:
'
分
'
}}
</text>
<text
:style=
"
{ color: splitorColor }" class="uni-countdown__splitor">
{{
showColon
?
'
:
'
:
minuteText
}}
</text>
<text
:style=
"
{ borderColor: borderColor, color: color, backgroundColor: backgroundColor }"
class="uni-countdown__number">
{{
s
}}
</text>
<text
v-if=
"!showColon"
:style=
"
{ color: splitorColor }" class="uni-countdown__splitor">
秒
</text>
<text
v-if=
"!showColon"
:style=
"
{ color: splitorColor }" class="uni-countdown__splitor">
{{
secondText
}}
</text>
</view>
</
template
>
<
script
>
import
{
initVueI18n
}
from
'
@dcloudio/uni-i18n
'
import
messages
from
'
./i18n/index.js
'
const
{
t
}
=
initVueI18n
(
messages
)
/**
* Countdown 倒计时
* @description 倒计时组件
...
...
@@ -97,6 +102,20 @@
seconds
:
0
}
},
computed
:
{
dayText
()
{
return
t
(
"
uni-countdown.day
"
)
},
hourText
(
val
)
{
return
t
(
"
uni-countdown.h
"
)
},
minuteText
(
val
)
{
return
t
(
"
uni-countdown.m
"
)
},
secondText
(
val
)
{
return
t
(
"
uni-countdown.s
"
)
},
},
watch
:
{
day
(
val
)
{
this
.
changeFlag
()
...
...
@@ -115,7 +134,7 @@
handler
(
newVal
,
oldVal
)
{
if
(
newVal
)
{
this
.
startData
();
}
else
{
}
else
{
if
(
!
oldVal
)
return
clearInterval
(
this
.
timer
)
}
...
...
@@ -180,7 +199,7 @@
this
.
seconds
=
this
.
toSeconds
(
this
.
timestamp
,
this
.
day
,
this
.
hour
,
this
.
minute
,
this
.
second
)
if
(
this
.
seconds
<=
0
)
{
return
}
}
clearInterval
(
this
.
timer
)
this
.
countDown
()
this
.
timer
=
setInterval
(()
=>
{
...
...
@@ -238,4 +257,4 @@
text-align
:
center
;
font-size
:
$uni-font-size-sm
;
}
</
style
>
</
style
>
uni_modules/uni-countdown/package.json
浏览文件 @
dad10953
{
"id"
:
"uni-countdown"
,
"displayName"
:
"uni-countdown 倒计时"
,
"version"
:
"1.1.1"
,
"description"
:
"CountDown 倒计时组件"
,
"keywords"
:
[
"uni-ui"
,
"uniui"
,
"countdown"
,
"倒计时"
],
"repository"
:
"https://github.com/dcloudio/uni-ui"
,
"engines"
:
{
"HBuilderX"
:
""
},
"directories"
:
{
"example"
:
"../../temps/example_temps"
},
"dcloudext"
:
{
"category"
:
[
"前端组件"
,
"通用组件"
],
"sale"
:
{
"regular"
:
{
"price"
:
"0.00"
},
"sourcecode"
:
{
"price"
:
"0.00"
}
},
"contact"
:
{
"qq"
:
""
},
"declaration"
:
{
"ads"
:
"无"
,
"data"
:
"无"
,
"permissions"
:
"无"
},
"npmurl"
:
"https://www.npmjs.com/package/@dcloudio/uni-ui"
},
"uni_modules"
:
{
"dependencies"
:
[],
"encrypt"
:
[],
"platforms"
:
{
"cloud"
:
{
"tcb"
:
"y"
,
"aliyun"
:
"y"
},
"client"
:
{
"App"
:
{
"app-vue"
:
"y"
,
"app-nvue"
:
"y"
},
"H5-mobile"
:
{
"Safari"
:
"y"
,
"Android Browser"
:
"y"
,
"微信浏览器(Android)"
:
"y"
,
"QQ浏览器(Android)"
:
"y"
},
"H5-pc"
:
{
"Chrome"
:
"y"
,
"IE"
:
"y"
,
"Edge"
:
"y"
,
"Firefox"
:
"y"
,
"Safari"
:
"y"
},
"小程序"
:
{
"微信"
:
"y"
,
"阿里"
:
"y"
,
"百度"
:
"y"
,
"字节跳动"
:
"y"
,
"QQ"
:
"y"
},
"快应用"
:
{
"华为"
:
"u"
,
"联盟"
:
"u"
}
}
}
}
{
"id"
:
"uni-countdown"
,
"displayName"
:
"uni-countdown 倒计时"
,
"version"
:
"1.1.2"
,
"description"
:
"CountDown 倒计时组件"
,
"keywords"
:
[
"uni-ui"
,
"uniui"
,
"countdown"
,
"倒计时"
],
"repository"
:
"https://github.com/dcloudio/uni-ui"
,
"engines"
:
{
"HBuilderX"
:
""
},
"directories"
:
{
"example"
:
"../../temps/example_temps"
},
"dcloudext"
:
{
"category"
:
[
"前端组件"
,
"通用组件"
],
"sale"
:
{
"regular"
:
{
"price"
:
"0.00"
},
"sourcecode"
:
{
"price"
:
"0.00"
}
},
"contact"
:
{
"qq"
:
""
},
"declaration"
:
{
"ads"
:
"无"
,
"data"
:
"无"
,
"permissions"
:
"无"
},
"npmurl"
:
"https://www.npmjs.com/package/@dcloudio/uni-ui"
},
"uni_modules"
:
{
"dependencies"
:
[],
"encrypt"
:
[],
"platforms"
:
{
"cloud"
:
{
"tcb"
:
"y"
,
"aliyun"
:
"y"
},
"client"
:
{
"App"
:
{
"app-vue"
:
"y"
,
"app-nvue"
:
"y"
},
"H5-mobile"
:
{
"Safari"
:
"y"
,
"Android Browser"
:
"y"
,
"微信浏览器(Android)"
:
"y"
,
"QQ浏览器(Android)"
:
"y"
},
"H5-pc"
:
{
"Chrome"
:
"y"
,
"IE"
:
"y"
,
"Edge"
:
"y"
,
"Firefox"
:
"y"
,
"Safari"
:
"y"
},
"小程序"
:
{
"微信"
:
"y"
,
"阿里"
:
"y"
,
"百度"
:
"y"
,
"字节跳动"
:
"y"
,
"QQ"
:
"y"
},
"快应用"
:
{
"华为"
:
"u"
,
"联盟"
:
"u"
},
"Vue"
:
{
"vue2"
:
"y"
,
"vue3"
:
"u"
}
}
}
}
}
\ No newline at end of file
uni_modules/uni-data-picker/readme.md
浏览文件 @
dad10953
...
...
@@ -23,7 +23,7 @@
> 为了避免错误使用,给大家带来不好的开发体验,请在使用组件前仔细阅读下面的注意事项,可以帮你避免一些错误。
> - 组件需要依赖 `sass` 插件 ,请自行手动安装
> - 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839
> - `<uni-data-picker>` 内部包含了弹出层组件 `<uni-data-pickerview>` 外层的布局可能会影响弹出层,[详情](https://developer.mozilla.org/zh-
CN
/docs/Web/CSS/Common_CSS_Questions)
> - `<uni-data-picker>` 内部包含了弹出层组件 `<uni-data-pickerview>` 外层的布局可能会影响弹出层,[详情](https://developer.mozilla.org/zh-
Hans
/docs/Web/CSS/Common_CSS_Questions)
...
...
uni_modules/uni-datetime-picker/changelog.md
浏览文件 @
dad10953
## 2.1.1(2021-08-24)
-
新增 支持国际化
-
优化 范围选择器在 pc 端过宽的问题
## 2.1.0(2021-08-09)
-
新增 适配 vue3
## 2.0.19(2021-08-09)
...
...
uni_modules/uni-datetime-picker/components/uni-datetime-picker/calendar.vue
浏览文件 @
dad10953
...
...
@@ -11,7 +11,7 @@
</view>
<picker
mode=
"date"
:value=
"date"
fields=
"month"
@
change=
"bindDateChange"
>
<text
class=
"uni-calendar__header-text"
>
{{
(
nowDate
.
year
||
''
)
+
'
年
'
+
(
nowDate
.
month
||
''
)
+
'
月
'
}}
</text>
class=
"uni-calendar__header-text"
>
{{
(
nowDate
.
year
||
''
)
+
'
/
'
+
(
nowDate
.
month
||
''
)
}}
</text>
</picker>
<view
v-if=
"right"
class=
"uni-calendar__header-btn-box"
@
click.stop=
"next"
>
<view
class=
"uni-calendar__header-btn uni-calendar--right"
></view>
...
...
@@ -25,25 +25,25 @@
</view>
<view
class=
"uni-calendar__weeks"
>
<view
class=
"uni-calendar__weeks-day"
>
<text
class=
"uni-calendar__weeks-day-text"
>
日
</text>
<text
class=
"uni-calendar__weeks-day-text"
>
{{
SUNText
}}
</text>
</view>
<view
class=
"uni-calendar__weeks-day"
>
<text
class=
"uni-calendar__weeks-day-text"
>
一
</text>
<text
class=
"uni-calendar__weeks-day-text"
>
{{
monText
}}
</text>
</view>
<view
class=
"uni-calendar__weeks-day"
>
<text
class=
"uni-calendar__weeks-day-text"
>
二
</text>
<text
class=
"uni-calendar__weeks-day-text"
>
{{
TUEText
}}
</text>
</view>
<view
class=
"uni-calendar__weeks-day"
>
<text
class=
"uni-calendar__weeks-day-text"
>
三
</text>
<text
class=
"uni-calendar__weeks-day-text"
>
{{
WEDText
}}
</text>
</view>
<view
class=
"uni-calendar__weeks-day"
>
<text
class=
"uni-calendar__weeks-day-text"
>
四
</text>
<text
class=
"uni-calendar__weeks-day-text"
>
{{
THUText
}}
</text>
</view>
<view
class=
"uni-calendar__weeks-day"
>
<text
class=
"uni-calendar__weeks-day-text"
>
五
</text>
<text
class=
"uni-calendar__weeks-day-text"
>
{{
FRIText
}}
</text>
</view>
<view
class=
"uni-calendar__weeks-day"
>
<text
class=
"uni-calendar__weeks-day-text"
>
六
</text>
<text
class=
"uni-calendar__weeks-day-text"
>
{{
SATText
}}
</text>
</view>
</view>
<view
class=
"uni-calendar__weeks"
v-for=
"(item,weekIndex) in weeks"
:key=
"weekIndex"
>
...
...
@@ -57,7 +57,7 @@
</view>
<view
v-if=
"!insert && !range && typeHasTime"
class=
"uni-date-changed uni-calendar--fixed-top"
style=
"padding: 0 40px;"
>
<text
class=
"uni-date-changed--time-date"
>
{{
tempSingleDate
?
tempSingleDate
:
'
选择日期
'
}}
</text>
<text
class=
"uni-date-changed--time-date"
>
{{
tempSingleDate
?
tempSingleDate
:
selectDateText
}}
</text>
<time-picker
type=
"time"
:start=
"reactStartTime"
:end=
"reactEndTime"
v-model=
"time"
:disabled=
"!tempSingleDate"
:border=
"false"
class=
"time-picker-style"
>
</time-picker>
...
...
@@ -65,14 +65,14 @@
<view
v-if=
"!insert && range && typeHasTime"
class=
"uni-date-changed uni-calendar--fixed-top"
>
<view
class=
"uni-date-changed--time-start"
>
<text
class=
"uni-date-changed--time-date"
>
{{
tempRange
.
before
?
tempRange
.
before
:
'
开始日期
'
}}
</text>
<text
class=
"uni-date-changed--time-date"
>
{{
tempRange
.
before
?
tempRange
.
before
:
startDateText
}}
</text>
<time-picker
type=
"time"
:start=
"reactStartTime"
v-model=
"timeRange.startTime"
:border=
"false"
:disabled=
"!tempRange.before"
class=
"time-picker-style"
>
</time-picker>
</view>
<uni-icons
type=
"arrowthinright"
color=
"#999"
style=
"line-height: 50px;"
></uni-icons>
<view
class=
"uni-date-changed--time-end"
>
<text
class=
"uni-date-changed--time-date"
>
{{
tempRange
.
after
?
tempRange
.
after
:
'
结束日期
'
}}
</text>
<text
class=
"uni-date-changed--time-date"
>
{{
tempRange
.
after
?
tempRange
.
after
:
endDateText
}}
</text>
<time-picker
type=
"time"
:end=
"reactEndTime"
v-model=
"timeRange.endTime"
:border=
"false"
:disabled=
"!tempRange.after"
class=
"time-picker-style"
>
</time-picker>
...
...
@@ -80,11 +80,8 @@
</view>
<view
v-if=
"!insert"
class=
"uni-date-changed uni-calendar__header"
@
click=
"confirm"
>
<!--
<view
class=
"uni-calendar__header-btn-box"
@
click=
"close"
>
<text
class=
"uni-calendar__header-text uni-calendar--fixed-width"
>
取消
</text>
</view>
-->
<view
class=
"uni-calendar__header-btn-box"
>
<text
class=
"uni-calendar__button-text uni-calendar--fixed-width"
>
确定
</text>
<text
class=
"uni-calendar__button-text uni-calendar--fixed-width"
>
{{
okText
}}
</text>
</view>
</view>
</view>
...
...
@@ -95,6 +92,11 @@
import
Calendar
from
'
./util.js
'
;
import
calendarItem
from
'
./calendar-item.vue
'
import
timePicker
from
'
./time-picker.vue
'
import
{
initVueI18n
}
from
'
@dcloudio/uni-i18n
'
import
messages
from
'
./i18n/index.js
'
const
{
t
}
=
initVueI18n
(
messages
)
/**
* Calendar 日历
* @description 日历组件可以查看日期,选择任意范围内的日期,打点操作。常用场景如:酒店日期预订、火车机票选择购买日期、上下班打卡等
...
...
@@ -220,10 +222,10 @@
watch
:
{
date
:
{
immediate
:
true
,
handler
(
newVal
,
oldVal
)
{
if
(
!
this
.
range
)
setTimeout
(()
=>
{
this
.
init
(
newVal
)
handler
(
newVal
,
oldVal
)
{
if
(
!
this
.
range
)
setTimeout
(()
=>
{
this
.
init
(
newVal
)
},
100
)
}
},
...
...
@@ -291,7 +293,43 @@
const
activeDate
=
this
.
range
?
this
.
tempRange
.
after
:
this
.
calendar
.
fullDate
const
res
=
activeDate
===
this
.
endDate
?
this
.
selectableTimes
.
end
:
''
return
res
}
},
/**
* for i18n
*/
selectDateText
()
{
return
t
(
"
uni-datetime-picker.selectDate
"
)
},
startDateText
()
{
return
this
.
startPlaceholder
||
t
(
"
uni-datetime-picker.startDate
"
)
},
endDateText
()
{
return
this
.
endPlaceholder
||
t
(
"
uni-datetime-picker.endDate
"
)
},
okText
()
{
return
t
(
"
uni-datetime-picker.ok
"
)
},
monText
()
{
return
t
(
"
uni-calender.MON
"
)
},
TUEText
()
{
return
t
(
"
uni-calender.TUE
"
)
},
WEDText
()
{
return
t
(
"
uni-calender.WED
"
)
},
THUText
()
{
return
t
(
"
uni-calender.THU
"
)
},
FRIText
()
{
return
t
(
"
uni-calender.FRI
"
)
},
SATText
()
{
return
t
(
"
uni-calender.SAT
"
)
},
SUNText
()
{
return
t
(
"
uni-calender.SUN
"
)
},
},
created
()
{
// 获取日历方法实例
...
...
@@ -356,17 +394,17 @@
this
.
cale
.
setDate
(
date
)
this
.
weeks
=
this
.
cale
.
weeks
this
.
nowDate
=
this
.
calendar
=
this
.
cale
.
getInfo
(
date
)
},
// choiceDate(weeks) {
// if (weeks.disable) return
// this.calendar = weeks
// // 设置多选
// this.cale.setMultiple(this.calendar.fullDate, true)
// this.weeks = this.cale.weeks
// this.tempSingleDate = this.calendar.fullDate
// this.tempRange.before = this.cale.multipleStatus.before
// this.tempRange.after = this.cale.multipleStatus.after
// this.change()
},
// choiceDate(weeks) {
// if (weeks.disable) return
// this.calendar = weeks
// // 设置多选
// this.cale.setMultiple(this.calendar.fullDate, true)
// this.weeks = this.cale.weeks
// this.tempSingleDate = this.calendar.fullDate
// this.tempRange.before = this.cale.multipleStatus.before
// this.tempRange.after = this.cale.multipleStatus.after
// this.change()
// },
/**
* 打开日历弹窗
...
...
@@ -760,4 +798,4 @@
.mr-10
{
margin-right
:
10px
;
}
</
style
>
</
style
>
uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/en.json
0 → 100644
浏览文件 @
dad10953
{
"uni-datetime-picker.selectDate"
:
"select date"
,
"uni-datetime-picker.selectTime"
:
"select time"
,
"uni-datetime-picker.selectDateTime"
:
"select datetime"
,
"uni-datetime-picker.startDate"
:
"start date"
,
"uni-datetime-picker.endDate"
:
"end date"
,
"uni-datetime-picker.startTime"
:
"start time"
,
"uni-datetime-picker.endTime"
:
"end time"
,
"uni-datetime-picker.ok"
:
"ok"
,
"uni-datetime-picker.clear"
:
"clear"
,
"uni-datetime-picker.cancel"
:
"cancel"
,
"uni-calender.MON"
:
"MON"
,
"uni-calender.TUE"
:
"TUE"
,
"uni-calender.WED"
:
"WED"
,
"uni-calender.THU"
:
"THU"
,
"uni-calender.FRI"
:
"FRI"
,
"uni-calender.SAT"
:
"SAT"
,
"uni-calender.SUN"
:
"SUN"
}
uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/index.js
0 → 100644
浏览文件 @
dad10953
import
en
from
'
./en.json
'
import
zhHans
from
'
./zh-Hans.json
'
import
zhHant
from
'
./zh-Hant.json
'
export
default
{
en
,
'
zh-Hans
'
:
zhHans
,
'
zh-Hant
'
:
zhHant
}
uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/zh-Hans.json
0 → 100644
浏览文件 @
dad10953
{
"uni-datetime-picker.selectDate"
:
"选择日期"
,
"uni-datetime-picker.selectTime"
:
"选择时间"
,
"uni-datetime-picker.selectDateTime"
:
"选择日期时间"
,
"uni-datetime-picker.startDate"
:
"开始日期"
,
"uni-datetime-picker.endDate"
:
"结束日期"
,
"uni-datetime-picker.startTime"
:
"开始时间"
,
"uni-datetime-picker.endTime"
:
"结束时间"
,
"uni-datetime-picker.ok"
:
"确定"
,
"uni-datetime-picker.clear"
:
"清除"
,
"uni-datetime-picker.cancel"
:
"取消"
,
"uni-calender.SUN"
:
"日"
,
"uni-calender.MON"
:
"一"
,
"uni-calender.TUE"
:
"二"
,
"uni-calender.WED"
:
"三"
,
"uni-calender.THU"
:
"四"
,
"uni-calender.FRI"
:
"五"
,
"uni-calender.SAT"
:
"六"
}
uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/zh-Hant.json
0 → 100644
浏览文件 @
dad10953
{
"uni-datetime-picker.selectDate"
:
"選擇日期"
,
"uni-datetime-picker.selectTime"
:
"選擇時間"
,
"uni-datetime-picker.selectDateTime"
:
"選擇日期時間"
,
"uni-datetime-picker.startDate"
:
"開始日期"
,
"uni-datetime-picker.endDate"
:
"結束日期"
,
"uni-datetime-picker.startTime"
:
"開始时间"
,
"uni-datetime-picker.endTime"
:
"結束时间"
,
"uni-datetime-picker.ok"
:
"確定"
,
"uni-datetime-picker.clear"
:
"清除"
,
"uni-datetime-picker.cancel"
:
"取消"
,
"uni-calender.SUN"
:
"日"
,
"uni-calender.MON"
:
"一"
,
"uni-calender.TUE"
:
"二"
,
"uni-calender.WED"
:
"三"
,
"uni-calender.THU"
:
"四"
,
"uni-calender.FRI"
:
"五"
,
"uni-calender.SAT"
:
"六"
}
uni_modules/uni-datetime-picker/components/uni-datetime-picker/time-picker.vue
浏览文件 @
dad10953
...
...
@@ -6,7 +6,7 @@
:class=
"
{'uni-datetime-picker-disabled': disabled, 'uni-datetime-picker-timebox': border}">
<text
class=
"uni-datetime-picker-text"
>
{{
time
}}
</text>
<view
v-if=
"!time"
class=
"uni-datetime-picker-time"
>
<text
class=
"uni-datetime-picker-text"
>
选择
{{
title
}}
</text>
<text
class=
"uni-datetime-picker-text"
>
{{
selectTimeText
}}
</text>
</view>
</view>
</slot>
...
...
@@ -15,7 +15,7 @@
<view
v-if=
"visible"
class=
"uni-datetime-picker-popup"
:class=
"[dateShow && timeShow ? '' : 'fix-nvue-height']"
:style=
"fixNvueBug"
>
<view
class=
"uni-title"
>
<text
class=
"uni-datetime-picker-text"
>
设置
{{
title
}}
</text>
<text
class=
"uni-datetime-picker-text"
>
{{
selectTimeText
}}
</text>
</view>
<view
v-if=
"dateShow"
class=
"uni-datetime-picker__container-box"
>
<picker-view
class=
"uni-datetime-picker-view"
:indicator-style=
"indicatorStyle"
:value=
"ymd"
...
...
@@ -65,14 +65,14 @@
</view>
<view
class=
"uni-datetime-picker-btn"
>
<view
@
click=
"clearTime"
>
<text
class=
"uni-datetime-picker-btn-text"
>
清空
</text>
<text
class=
"uni-datetime-picker-btn-text"
>
{{
clearText
}}
</text>
</view>
<view
class=
"uni-datetime-picker-btn-group"
>
<view
class=
"uni-datetime-picker-cancel"
@
click=
"tiggerTimePicker"
>
<text
class=
"uni-datetime-picker-btn-text"
>
取消
</text>
<text
class=
"uni-datetime-picker-btn-text"
>
{{
cancelText
}}
</text>
</view>
<view
@
click=
"setTime"
>
<text
class=
"uni-datetime-picker-btn-text"
>
确定
</text>
<text
class=
"uni-datetime-picker-btn-text"
>
{{
okText
}}
</text>
</view>
</view>
</view>
...
...
@@ -87,6 +87,11 @@
// #ifdef H5
import
keypress
from
'
./keypress
'
// #endif
import
{
initVueI18n
}
from
'
@dcloudio/uni-i18n
'
import
messages
from
'
./i18n/index.js
'
const
{
t
}
=
initVueI18n
(
messages
)
/**
* DatetimePicker 时间选择器
...
...
@@ -149,10 +154,10 @@
value
:
{
type
:
[
String
,
Number
],
default
:
''
},
modelValue
:
{
type
:
[
String
,
Number
],
default
:
''
},
modelValue
:
{
type
:
[
String
,
Number
],
default
:
''
},
start
:
{
type
:
[
Number
,
String
],
...
...
@@ -405,6 +410,22 @@
return
59
}
}
},
/**
* for i18n
*/
selectTimeText
()
{
return
t
(
"
uni-datetime-picker.selectTime
"
)
},
okText
()
{
return
t
(
"
uni-datetime-picker.ok
"
)
},
clearText
()
{
return
t
(
"
uni-datetime-picker.clear
"
)
},
cancelText
()
{
return
t
(
"
uni-datetime-picker.cancel
"
)
}
},
...
...
@@ -681,11 +702,11 @@
if
(
!
emit
)
return
if
(
this
.
returnType
===
'
timestamp
'
&&
this
.
type
!==
'
time
'
)
{
this
.
$emit
(
'
change
'
,
this
.
createTimeStamp
(
this
.
time
))
this
.
$emit
(
'
input
'
,
this
.
createTimeStamp
(
this
.
time
))
this
.
$emit
(
'
input
'
,
this
.
createTimeStamp
(
this
.
time
))
this
.
$emit
(
'
update:modelValue
'
,
this
.
createTimeStamp
(
this
.
time
))
}
else
{
this
.
$emit
(
'
change
'
,
this
.
time
)
this
.
$emit
(
'
input
'
,
this
.
time
)
this
.
$emit
(
'
input
'
,
this
.
time
)
this
.
$emit
(
'
update:modelValue
'
,
this
.
time
)
}
},
...
...
@@ -730,7 +751,7 @@
clearTime
()
{
this
.
time
=
''
this
.
$emit
(
'
change
'
,
this
.
time
)
this
.
$emit
(
'
input
'
,
this
.
time
)
this
.
$emit
(
'
input
'
,
this
.
time
)
this
.
$emit
(
'
update:modelValue
'
,
this
.
time
)
this
.
tiggerTimePicker
()
},
...
...
uni_modules/uni-datetime-picker/components/uni-datetime-picker/uni-datetime-picker.vue
浏览文件 @
dad10953
...
...
@@ -8,20 +8,20 @@
<view
class=
"uni-date__icon-logo"
>
<image
class=
"uni-date-editor--logo"
:src=
"iconBase64"
mode=
""
></image>
</view>
<input
class=
"uni-date__
input"
type=
"text"
v-model=
"singleVal"
:placeholder=
"placeholder
"
<input
class=
"uni-date__
x-input"
type=
"text"
v-model=
"singleVal"
:placeholder=
"singlePlaceholderText
"
:disabled=
"true"
/>
</view>
<view
v-else
class=
"uni-date-x uni-date-range"
>
<view
class=
"uni-date__icon-logo"
>
<image
class=
"uni-date-editor--logo"
:src=
"iconBase64"
mode=
""
></image>
</view>
<input
class=
"uni-date__
input uni-date-range__input
"
type=
"text"
v-model=
"range.startDate"
:placeholder=
"startPlaceholder"
:disabled=
"true"
/>
<input
class=
"uni-date__
x-input t-c
"
type=
"text"
v-model=
"range.startDate"
:placeholder=
"startPlaceholder
Text
"
:disabled=
"true"
/>
<slot>
<view
class=
""
>
{{
rangeSeparator
}}
</view>
</slot>
<input
class=
"uni-date__
input uni-date-range__input
"
type=
"text"
v-model=
"range.endDate"
:placeholder=
"endPlaceholder"
:disabled=
"true"
/>
<input
class=
"uni-date__
x-input t-c
"
type=
"text"
v-model=
"range.endDate"
:placeholder=
"endPlaceholder
Text
"
:disabled=
"true"
/>
</view>
<view
v-show=
"clearIcon && !disabled && !isPhone && (singleVal || (range.startDate && range.endDate))"
...
...
@@ -36,18 +36,18 @@
<view
v-if=
"!isPhone"
ref=
"datePicker"
v-show=
"popup"
class=
"uni-date-picker__container"
>
<view
v-if=
"!isRange"
class=
"uni-date-single--x"
:style=
"popover"
>
<view
v-show=
"hasTime"
class=
"uni-date-changed popup-x-header"
>
<input
class=
"uni-date__input
uni-date-range__input
"
type=
"text"
v-model=
"tempSingleDate"
placeholder=
"选择日期
"
/>
<input
class=
"uni-date__input
t-c
"
type=
"text"
v-model=
"tempSingleDate"
:placeholder=
"selectDateText
"
/>
<time-picker
type=
"time"
v-model=
"time"
:border=
"false"
:disabled=
"!tempSingleDate"
:start=
"reactStartTime"
:end=
"reactEndTime"
>
<input
class=
"uni-date__input
uni-date-range__input"
type=
"text"
v-model=
"time"
placeholder=
"选择时间"
:disabled=
"!tempSingleDate"
/>
<input
class=
"uni-date__input
t-c"
type=
"text"
v-model=
"time"
:placeholder=
"selectTimeText"
:disabled=
"!tempSingleDate"
/>
</time-picker>
</view>
<calendar
ref=
"pcSingle"
:showMonth=
"false"
:start-date=
"caleRange.startDate"
<calendar
ref=
"pcSingle"
class=
"uni-date_calendar-pc"
:showMonth=
"false"
:start-date=
"caleRange.startDate"
:end-date=
"caleRange.endDate"
:date=
"defSingleDate"
@
change=
"singleChange"
/>
<view
v-if=
"hasTime"
class=
"popup-x-footer"
>
<!--
<text
class=
""
>
此刻
</text>
-->
<text
class=
"confirm"
@
click=
"confirmSingleChange"
>
确定
</text>
<text
class=
"confirm"
@
click=
"confirmSingleChange"
>
{{
okText
}}
</text>
</view>
<view
class=
"uni-date-popper__arrow"
></view>
</view>
...
...
@@ -56,36 +56,36 @@
<view
v-show=
"hasTime"
class=
"popup-x-header uni-date-changed"
>
<view
class=
"popup-x-header--datetime"
>
<input
class=
"uni-date__input uni-date-range__input"
type=
"text"
v-model=
"tempRange.startDate"
placeholder=
"开始日期
"
/>
:placeholder=
"startDateText
"
/>
<time-picker
type=
"time"
v-model=
"tempRange.startTime"
:start=
"reactStartTime"
:border=
"false"
:disabled=
"!tempRange.startDate"
>
<input
class=
"uni-date__input uni-date-range__input"
type=
"text"
v-model=
"tempRange.startTime"
placeholder=
"开始时间
"
:disabled=
"!tempRange.startDate"
/>
v-model=
"tempRange.startTime"
:placeholder=
"startTimeText
"
:disabled=
"!tempRange.startDate"
/>
</time-picker>
</view>
<uni-icons
type=
"arrowthinright"
color=
"#999"
style=
"line-height: 40px;"
></uni-icons>
<view
class=
"popup-x-header--datetime"
>
<input
class=
"uni-date__input uni-date-range__input"
type=
"text"
v-model=
"tempRange.endDate"
placeholder=
"结束日期
"
/>
:placeholder=
"endDateText
"
/>
<time-picker
type=
"time"
v-model=
"tempRange.endTime"
:end=
"reactEndTime"
:border=
"false"
:disabled=
"!tempRange.endDate"
>
<input
class=
"uni-date__input uni-date-range__input"
type=
"text"
v-model=
"tempRange.endTime"
placeholder=
"结束时间
"
:disabled=
"!tempRange.endDate"
/>
:placeholder=
"endTimeText
"
:disabled=
"!tempRange.endDate"
/>
</time-picker>
</view>
</view>
<view
class=
"popup-x-body"
>
<calendar
ref=
"left"
:showMonth=
"false"
:start-date=
"caleRange.startDate"
<calendar
ref=
"left"
class=
"uni-date_calendar-pc"
:showMonth=
"false"
:start-date=
"caleRange.startDate"
:end-date=
"caleRange.endDate"
:range=
"true"
@
change=
"leftChange"
:pleStatus=
"endMultipleStatus"
@
firstEnterCale=
"updateRightCale"
@
monthSwitch=
"leftMonthSwitch"
style=
"padding-right: 16px;"
/>
<calendar
ref=
"right"
:showMonth=
"false"
:start-date=
"caleRange.startDate"
@
firstEnterCale=
"updateRightCale"
@
monthSwitch=
"leftMonthSwitch"
/>
<calendar
ref=
"right"
class=
"uni-date_calendar-pc"
:showMonth=
"false"
:start-date=
"caleRange.startDate"
:end-date=
"caleRange.endDate"
:range=
"true"
@
change=
"rightChange"
:pleStatus=
"startMultipleStatus"
@
firstEnterCale=
"updateLeftCale"
@
monthSwitch=
"rightMonthSwitch"
style=
"
padding-left: 16px;
border-left: 1px solid #F1F1F1;"
/>
@
monthSwitch=
"rightMonthSwitch"
style=
"border-left: 1px solid #F1F1F1;"
/>
</view>
<view
v-if=
"hasTime"
class=
"popup-x-footer"
>
<text
class=
""
@
click=
"clear"
>
清空
</text>
<text
class=
"confirm"
@
click=
"confirmRangeChange"
>
确定
</text>
<text
class=
""
@
click=
"clear"
>
{{
clearText
}}
</text>
<text
class=
"confirm"
@
click=
"confirmRangeChange"
>
{{
okText
}}
</text>
</view>
</view>
</view>
...
...
@@ -96,9 +96,6 @@
</view>
</
template
>
<
script
>
import
calendar
from
'
./calendar.vue
'
import
timePicker
from
'
./time-picker.vue
'
/**
* DatetimePicker 时间选择器
* @description 同时支持 PC 和移动端使用日历选择日期和日期范围
...
...
@@ -116,6 +113,13 @@
* @property {Boolean} clearIcon = [true|false] 是否显示清除按钮(仅PC端适用)
* @event {Function} change 确定日期时触发的事件
**/
import
calendar
from
'
./calendar.vue
'
import
timePicker
from
'
./time-picker.vue
'
import
{
initVueI18n
}
from
'
@dcloudio/uni-i18n
'
import
messages
from
'
./i18n/index.js
'
const
{
t
}
=
initVueI18n
(
messages
)
export
default
{
name
:
'
UniDatetimePicker
'
,
...
...
@@ -182,10 +186,10 @@
value
:
{
type
:
[
String
,
Number
,
Array
,
Date
],
default
:
''
},
modelValue
:
{
type
:
[
String
,
Number
,
Array
,
Date
],
default
:
''
},
modelValue
:
{
type
:
[
String
,
Number
,
Array
,
Date
],
default
:
''
},
start
:
{
type
:
[
Number
,
String
],
...
...
@@ -201,15 +205,15 @@
},
placeholder
:
{
type
:
String
,
default
:
'
选择日期
'
default
:
''
},
startPlaceholder
:
{
type
:
String
,
default
:
'
起始日期
'
default
:
''
},
endPlaceholder
:
{
type
:
String
,
default
:
'
结束日期
'
default
:
''
},
rangeSeparator
:
{
type
:
String
,
...
...
@@ -311,6 +315,43 @@
datePopupWidth
()
{
// todo
return
this
.
isRange
?
653
:
301
},
/**
* for i18n
*/
singlePlaceholderText
()
{
return
this
.
placeholder
||
this
.
type
===
'
date
'
?
this
.
selectDateText
:
t
(
"
uni-datetime-picker.selectDateTime
"
)
},
startPlaceholderText
()
{
return
this
.
startPlaceholder
||
this
.
startDateText
},
endPlaceholderText
()
{
return
this
.
endPlaceholder
||
this
.
endDateText
},
selectDateText
()
{
return
t
(
"
uni-datetime-picker.selectDate
"
)
},
selectTimeText
()
{
return
t
(
"
uni-datetime-picker.selectTime
"
)
},
startDateText
()
{
return
this
.
startPlaceholder
||
t
(
"
uni-datetime-picker.startDate
"
)
},
startTimeText
()
{
return
t
(
"
uni-datetime-picker.startTime
"
)
},
endDateText
()
{
return
this
.
endPlaceholder
||
t
(
"
uni-datetime-picker.endDate
"
)
},
endTimeText
()
{
return
t
(
"
uni-datetime-picker.endTime
"
)
},
okText
()
{
return
t
(
"
uni-datetime-picker.ok
"
)
},
clearText
()
{
return
t
(
"
uni-datetime-picker.clear
"
)
}
},
created
()
{
...
...
@@ -639,7 +680,7 @@
if
(
needEmit
)
{
this
.
formItem
&&
this
.
formItem
.
setValue
(
''
)
this
.
$emit
(
'
change
'
,
''
)
this
.
$emit
(
'
input
'
,
''
)
this
.
$emit
(
'
input
'
,
''
)
this
.
$emit
(
'
update:modelValue
'
,
''
)
}
}
else
{
...
...
@@ -671,7 +712,7 @@
if
(
needEmit
)
{
this
.
formItem
&&
this
.
formItem
.
setValue
([])
this
.
$emit
(
'
change
'
,
[])
this
.
$emit
(
'
input
'
,
[])
this
.
$emit
(
'
input
'
,
[])
this
.
$emit
(
'
update:modelValue
'
,
[])
}
}
...
...
@@ -752,16 +793,28 @@
/* #endif */
}
.uni-date__x-input
{
padding
:
0
8px
;
height
:
40px
;
width
:
100%
;
line-height
:
40px
;
font-size
:
14px
;
}
.t-c
{
text-align
:
center
;
}
.uni-date__input
{
height
:
40px
;
width
:
100%
;
padding
:
0
8px
;
line-height
:
40px
;
font-size
:
14px
;
}
.uni-date-range__input
{
text-align
:
center
;
text-align
:
center
;
max-width
:
152px
;
}
.uni-date-picker__container
{
...
...
@@ -789,6 +842,7 @@
.uni-date-single--x
{
/* padding: 0 8px; */
background-color
:
#fff
;
position
:
absolute
;
top
:
0
;
z-index
:
999
;
...
...
@@ -798,7 +852,7 @@
}
.uni-date-range--x
{
padding
:
0
8px
;
/* padding: 0 8px; */
background-color
:
#fff
;
position
:
absolute
;
top
:
0
;
...
...
@@ -891,4 +945,7 @@
.mr-50
{
margin-right
:
50px
;
}
</
style
>
.uni-date_calendar-pc
{
padding
:
0
6px
;
}
</
style
>
uni_modules/uni-datetime-picker/package.json
浏览文件 @
dad10953
{
"id"
:
"uni-datetime-picker"
,
"displayName"
:
"uni-datetime-picker 日期选择器"
,
"version"
:
"2.1.
0
"
,
"version"
:
"2.1.
1
"
,
"description"
:
"uni-datetime-picker 日期时间选择器,支持日历,支持范围选择"
,
"keywords"
:
[
"uni-datetime-picker"
,
...
...
uni_modules/uni-fav/changelog.md
浏览文件 @
dad10953
## 1.1.1(2021-08-24)
-
新增 支持国际化
## 1.1.0(2021-07-13)
-
组件兼容 vue3,如何创建vue3项目,详见
[
uni-app 项目支持 vue3 介绍
](
https://ask.dcloud.net.cn/article/37834
)
## 1.0.6(2021-05-12)
-
新增 组件示例地址
## 1.0.5(2021-04-21)
-
优化 添加依赖 uni-icons, 导入后自动下载依赖
## 1.0.4(2021-02-05)
-
优化 组件引用关系,通过uni_modules引用组件
## 1.0.3(2021-02-05)
-
优化 组件引用关系,通过uni_modules引用组件
## 1.0.2(2021-02-05)
-
调整为uni_modules目录规范
## 1.0.6(2021-05-12)
-
新增 组件示例地址
## 1.0.5(2021-04-21)
-
优化 添加依赖 uni-icons, 导入后自动下载依赖
## 1.0.4(2021-02-05)
-
优化 组件引用关系,通过uni_modules引用组件
## 1.0.3(2021-02-05)
-
优化 组件引用关系,通过uni_modules引用组件
## 1.0.2(2021-02-05)
-
调整为uni_modules目录规范
uni_modules/uni-fav/components/uni-fav/i18n/en.json
0 → 100644
浏览文件 @
dad10953
{
"uni-fav.collect"
:
"collect"
,
"uni-fav.collected"
:
"collected"
}
uni_modules/uni-fav/components/uni-fav/i18n/index.js
0 → 100644
浏览文件 @
dad10953
import
en
from
'
./en.json
'
import
zhHans
from
'
./zh-Hans.json
'
import
zhHant
from
'
./zh-Hant.json
'
export
default
{
en
,
'
zh-Hans
'
:
zhHans
,
'
zh-Hant
'
:
zhHant
}
uni_modules/uni-fav/components/uni-fav/i18n/zh-Hans.json
0 → 100644
浏览文件 @
dad10953
{
"uni-fav.collect"
:
"收藏"
,
"uni-fav.collected"
:
"已收藏"
}
uni_modules/uni-fav/components/uni-fav/i18n/zh-Hant.json
0 → 100644
浏览文件 @
dad10953
{
"uni-fav.collect"
:
"收藏"
,
"uni-fav.collected"
:
"已收藏"
}
uni_modules/uni-fav/components/uni-fav/uni-fav.vue
浏览文件 @
dad10953
...
...
@@ -10,7 +10,7 @@
<uni-icons
:color=
"fgColor"
:style=
"
{color: checked ? fgColorChecked : fgColor}" class="uni-fav-star" size="14" type="star-filled"
v-if="!checked
&&
(star === true || star === 'true')" />
<!-- #endif -->
<text
:style=
"
{color: checked ? fgColorChecked : fgColor}" class="uni-fav-text">
{{
checked
?
content
Text
.
contentFav
:
contentText
.
contentDefault
}}
</text>
<text
:style=
"
{color: checked ? fgColorChecked : fgColor}" class="uni-fav-text">
{{
checked
?
content
Fav
:
contentDefault
}}
</text>
</view>
</
template
>
...
...
@@ -30,7 +30,14 @@
* @property {Object} contentText = [true|false] 收藏按钮文字
* @event {Function} click 点击 fav按钮触发事件
* @example <uni-fav :checked="true"/>
*/
*/
import
{
initVueI18n
}
from
'
@dcloudio/uni-i18n
'
import
messages
from
'
./i18n/index.js
'
const
{
t
}
=
initVueI18n
(
messages
)
export
default
{
name
:
"
UniFav
"
,
// TODO 兼容 vue3,需要注册事件
...
...
@@ -68,11 +75,19 @@
type
:
Object
,
default
()
{
return
{
contentDefault
:
"
收藏
"
,
contentFav
:
"
已收藏
"
contentDefault
:
""
,
contentFav
:
""
};
}
}
},
computed
:
{
contentDefault
()
{
return
this
.
contentText
.
contentDefault
||
t
(
"
uni-fav.collect
"
)
},
contentFav
()
{
return
this
.
contentText
.
contentFav
||
t
(
"
uni-fav.collected
"
)
},
},
watch
:
{
checked
()
{
...
...
uni_modules/uni-fav/package.json
浏览文件 @
dad10953
{
"id"
:
"uni-fav"
,
"displayName"
:
"uni-fav 收藏按钮"
,
"version"
:
"1.1.0"
,
"description"
:
" Fav 收藏组件,可自定义颜色、大小。"
,
"keywords"
:
[
"fav"
,
"uni-ui"
,
"uniui"
,
"收藏"
],
"repository"
:
"https://github.com/dcloudio/uni-ui"
,
"engines"
:
{
"HBuilderX"
:
""
},
"directories"
:
{
"example"
:
"../../temps/example_temps"
},
"dcloudext"
:
{
"category"
:
[
"前端组件"
,
"通用组件"
],
"sale"
:
{
"regular"
:
{
"price"
:
"0.00"
},
"sourcecode"
:
{
"price"
:
"0.00"
}
},
"contact"
:
{
"qq"
:
""
},
"declaration"
:
{
"ads"
:
"无"
,
"data"
:
"无"
,
"permissions"
:
"无"
},
"npmurl"
:
"https://www.npmjs.com/package/@dcloudio/uni-ui"
},
"uni_modules"
:
{
"dependencies"
:
[
"uni-icons"
],
"encrypt"
:
[],
"platforms"
:
{
"cloud"
:
{
"tcb"
:
"y"
,
"aliyun"
:
"y"
},
"client"
:
{
"App"
:
{
"app-vue"
:
"y"
,
"app-nvue"
:
"y"
},
"H5-mobile"
:
{
"Safari"
:
"y"
,
"Android Browser"
:
"y"
,
"微信浏览器(Android)"
:
"y"
,
"QQ浏览器(Android)"
:
"y"
},
"H5-pc"
:
{
"Chrome"
:
"y"
,
"IE"
:
"y"
,
"Edge"
:
"y"
,
"Firefox"
:
"y"
,
"Safari"
:
"y"
},
"小程序"
:
{
"微信"
:
"y"
,
"阿里"
:
"y"
,
"百度"
:
"y"
,
"字节跳动"
:
"y"
,
"QQ"
:
"y"
},
"快应用"
:
{
"华为"
:
"u"
,
"联盟"
:
"u"
}
}
}
}
}
{
"id"
:
"uni-fav"
,
"displayName"
:
"uni-fav 收藏按钮"
,
"version"
:
"1.1.1"
,
"description"
:
" Fav 收藏组件,可自定义颜色、大小。"
,
"keywords"
:
[
"fav"
,
"uni-ui"
,
"uniui"
,
"收藏"
],
"repository"
:
"https://github.com/dcloudio/uni-ui"
,
"engines"
:
{
"HBuilderX"
:
""
},
"directories"
:
{
"example"
:
"../../temps/example_temps"
},
"dcloudext"
:
{
"category"
:
[
"前端组件"
,
"通用组件"
],
"sale"
:
{
"regular"
:
{
"price"
:
"0.00"
},
"sourcecode"
:
{
"price"
:
"0.00"
}
},
"contact"
:
{
"qq"
:
""
},
"declaration"
:
{
"ads"
:
"无"
,
"data"
:
"无"
,
"permissions"
:
"无"
},
"npmurl"
:
"https://www.npmjs.com/package/@dcloudio/uni-ui"
},
"uni_modules"
:
{
"dependencies"
:
[
"uni-icons"
],
"encrypt"
:
[],
"platforms"
:
{
"cloud"
:
{
"tcb"
:
"y"
,
"aliyun"
:
"y"
},
"client"
:
{
"App"
:
{
"app-vue"
:
"y"
,
"app-nvue"
:
"y"
},
"H5-mobile"
:
{
"Safari"
:
"y"
,
"Android Browser"
:
"y"
,
"微信浏览器(Android)"
:
"y"
,
"QQ浏览器(Android)"
:
"y"
},
"H5-pc"
:
{
"Chrome"
:
"y"
,
"IE"
:
"y"
,
"Edge"
:
"y"
,
"Firefox"
:
"y"
,
"Safari"
:
"y"
},
"小程序"
:
{
"微信"
:
"y"
,
"阿里"
:
"y"
,
"百度"
:
"y"
,
"字节跳动"
:
"y"
,
"QQ"
:
"y"
},
"快应用"
:
{
"华为"
:
"u"
,
"联盟"
:
"u"
},
"Vue"
:
{
"vue2"
:
"y"
,
"vue3"
:
"u"
}
}
}
}
}
uni_modules/uni-feedback/changelog.md
浏览文件 @
dad10953
## 1.0.
0(2021-05-11
)
升级为云端一体模板
## 1.0.
3(2021-08-26
)
删除多余的云函数test2
uni_modules/uni-feedback/js_sdk/validator/
uni
-feedback.js
→
uni_modules/uni-feedback/js_sdk/validator/
opendb
-feedback.js
浏览文件 @
dad10953
// 表单校验规则由 schema2code 生成,不建议直接修改校验规则,而建议通过 schema2code 生成, 详情: https://uniapp.dcloud.net.cn/uniCloud/schema
const
validator
=
{
"
content
"
:
{
"
rules
"
:
[
...
...
@@ -52,4 +50,49 @@ const validator = {
const
enumConverter
=
{}
export
{
validator
,
enumConverter
}
function
filterToWhere
(
filter
,
command
)
{
let
where
=
{}
for
(
let
field
in
filter
)
{
let
{
type
,
value
}
=
filter
[
field
]
switch
(
type
)
{
case
"
search
"
:
if
(
typeof
value
===
'
string
'
&&
value
.
length
)
{
where
[
field
]
=
new
RegExp
(
value
)
}
break
;
case
"
select
"
:
if
(
value
.
length
)
{
let
selectValue
=
[]
for
(
let
s
of
value
)
{
selectValue
.
push
(
command
.
eq
(
s
))
}
where
[
field
]
=
command
.
or
(
selectValue
)
}
break
;
case
"
range
"
:
if
(
value
.
length
)
{
let
gt
=
value
[
0
]
let
lt
=
value
[
1
]
where
[
field
]
=
command
.
and
([
command
.
gte
(
gt
),
command
.
lte
(
lt
)])
}
break
;
case
"
date
"
:
if
(
value
.
length
)
{
let
[
s
,
e
]
=
value
let
startDate
=
new
Date
(
s
)
let
endDate
=
new
Date
(
e
)
where
[
field
]
=
command
.
and
([
command
.
gte
(
startDate
),
command
.
lte
(
endDate
)])
}
break
;
case
"
timestamp
"
:
if
(
value
.
length
)
{
let
[
startDate
,
endDate
]
=
value
where
[
field
]
=
command
.
and
([
command
.
gte
(
startDate
),
command
.
lte
(
endDate
)])
}
break
;
}
}
return
where
}
export
{
validator
,
enumConverter
,
filterToWhere
}
uni_modules/uni-feedback/package.json
浏览文件 @
dad10953
{
"id"
:
"uni-feedback"
,
"displayName"
:
"问题反馈页面模板"
,
"version"
:
"1.0.0"
,
"description"
:
"问题反馈页面模板,方便开发者快速搭建问题反馈界面"
,
"keywords"
:
[
"问题反馈页面模板"
"id"
:
"uni-feedback"
,
"displayName"
:
"问题反馈用户端页面模板"
,
"version"
:
"1.0.3"
,
"description"
:
"问题反馈用户端页面模板,方便开发者快速搭建问题反馈界面"
,
"keywords"
:
[
"问题反馈用户端页面模板"
],
"repository"
:
""
,
"engines"
:
{
"HBuilderX"
:
"^3.1.0"
},
"dcloudext"
:
{
"category"
:
[
"uniCloud"
,
"云端一体页面模板"
],
"repository"
:
""
,
"engines"
:
{
"HBuilderX"
:
"^3.1.0"
"sale"
:
{
"regular"
:
{
"price"
:
"0.00"
},
"sourcecode"
:
{
"price"
:
"0.00"
}
},
"dcloudext"
:
{
"category"
:
[
"uniCloud"
,
"云端一体页面模板"
],
"sale"
:
{
"regular"
:
{
"price"
:
"0.00"
},
"sourcecode"
:
{
"price"
:
"0.00"
}
"contact"
:
{
"qq"
:
""
},
"declaration"
:
{
"ads"
:
"无"
,
"data"
:
"无"
,
"permissions"
:
"无"
},
"npmurl"
:
""
},
"uni_modules"
:
{
"dependencies"
:
[
"uni-forms"
,
"uni-file-picker"
,
"uni-easyinput"
,
"uni-load-more"
,
"uni-list"
,
"uni-fab"
,
"uni-link"
],
"encrypt"
:
[],
"platforms"
:
{
"cloud"
:
{
"tcb"
:
"y"
,
"aliyun"
:
"y"
},
"client"
:
{
"App"
:
{
"app-vue"
:
"y"
,
"app-nvue"
:
"u"
},
"contact"
:
{
"qq"
:
""
"H5-mobile"
:
{
"Safari"
:
"y"
,
"Android Browser"
:
"y"
,
"微信浏览器(Android)"
:
"y"
,
"QQ浏览器(Android)"
:
"y"
},
"declaration"
:
{
"ads"
:
"无"
,
"data"
:
"无"
,
"permissions"
:
"无"
"H5-pc"
:
{
"Chrome"
:
"y"
,
"IE"
:
"u"
,
"Edge"
:
"y"
,
"Firefox"
:
"y"
,
"Safari"
:
"y"
},
"npmurl"
:
""
},
"uni_modules"
:
{
"platforms"
:
{
"cloud"
:
{
"tcb"
:
"y"
,
"aliyun"
:
"y"
},
"client"
:
{
"App"
:
{
"app-vue"
:
"u"
,
"app-nvue"
:
"u"
},
"H5-mobile"
:
{
"Safari"
:
"u"
,
"Android Browser"
:
"u"
,
"微信浏览器(Android)"
:
"u"
,
"QQ浏览器(Android)"
:
"u"
},
"H5-pc"
:
{
"Chrome"
:
"u"
,
"IE"
:
"u"
,
"Edge"
:
"u"
,
"Firefox"
:
"u"
,
"Safari"
:
"u"
},
"小程序"
:
{
"微信"
:
"u"
,
"阿里"
:
"u"
,
"百度"
:
"u"
,
"字节跳动"
:
"u"
,
"QQ"
:
"u"
},
"快应用"
:
{
"华为"
:
"u"
,
"联盟"
:
"u"
}
}
"小程序"
:
{
"微信"
:
"y"
,
"阿里"
:
"y"
,
"百度"
:
"y"
,
"字节跳动"
:
"y"
,
"QQ"
:
"y"
},
"快应用"
:
{
"华为"
:
"u"
,
"联盟"
:
"u"
},
"Vue"
:
{
"vue2"
:
"y"
,
"vue3"
:
"y"
}
}
}
}
}
\ No newline at end of file
uni_modules/uni-feedback/pages/opendb-feedback/detail.vue
0 → 100644
浏览文件 @
dad10953
<
template
>
<view
class=
"container"
>
<unicloud-db
ref=
"udb"
v-slot:default=
"
{data, loading, error, options}" :options="options" collection="opendb-feedback" field="content,imgs,contact,mobile" :where="queryWhere" :getone="true" :manual="true">
<view
v-if=
"error"
>
{{
error
.
message
}}
</view>
<view
v-else-if=
"loading"
>
<uni-load-more
:contentText=
"loadMore"
status=
"loading"
></uni-load-more>
</view>
<view
v-else-if=
"data"
>
<view>
<text>
留言内容/回复内容
</text>
<text>
{{
data
.
content
}}
</text>
</view>
<view>
<text>
图片列表
</text>
<template
v-for=
"(file, j) in data.imgs"
>
<uni-file-picker
v-if=
"file.fileType == 'image'"
:value=
"file"
:file-mediatype=
"file.fileType"
return-type=
"object"
readonly
></uni-file-picker>
<uni-link
v-else
:href=
"file.url"
:text=
"file.url"
></uni-link>
</
template
>
</view>
<view>
<text>
联系人
</text>
<text>
{{data.contact}}
</text>
</view>
<view>
<text>
联系电话
</text>
<text>
{{data.mobile}}
</text>
</view>
</view>
</unicloud-db>
<view
class=
"btns"
>
<button
type=
"primary"
@
click=
"handleUpdate"
>
修改
</button>
<button
type=
"warn"
class=
"btn-delete"
@
click=
"handleDelete"
>
删除
</button>
</view>
</view>
</template>
<
script
>
// 由schema2code生成,包含校验规则和enum静态数据
import
{
enumConverter
}
from
'
../../js_sdk/validator/opendb-feedback.js
'
;
export
default
{
data
()
{
return
{
queryWhere
:
''
,
loadMore
:
{
contentdown
:
''
,
contentrefresh
:
''
,
contentnomore
:
''
},
options
:
{
// 将scheme enum 属性静态数据中的value转成text
...
enumConverter
}
}
},
onLoad
(
e
)
{
this
.
_id
=
e
.
id
},
onReady
()
{
if
(
this
.
_id
)
{
this
.
queryWhere
=
'
_id=="
'
+
this
.
_id
+
'
"
'
}
},
methods
:
{
handleUpdate
()
{
// 打开修改页面
uni
.
navigateTo
({
url
:
'
./edit?id=
'
+
this
.
_id
,
events
:
{
// 监听修改页面成功修改数据后, 刷新当前页面数据
refreshData
:
()
=>
{
this
.
$refs
.
udb
.
loadData
({
clear
:
true
})
}
}
})
},
handleDelete
()
{
this
.
$refs
.
udb
.
remove
(
this
.
_id
,
{
success
:
(
res
)
=>
{
// 删除数据成功后跳转到list页面
uni
.
navigateTo
({
url
:
'
./list
'
})
}
})
}
}
}
</
script
>
<
style
>
.container
{
padding
:
10px
;
}
.btns
{
margin-top
:
10px
;
/* #ifndef APP-NVUE */
display
:
flex
;
/* #endif */
flex-direction
:
row
;
}
.btns
button
{
flex
:
1
;
}
.btn-delete
{
margin-left
:
10px
;
}
</
style
>
uni_modules/uni-feedback/pages/opendb-feedback/edit.vue
0 → 100644
浏览文件 @
dad10953
<
template
>
<view
class=
"uni-container"
>
<uni-forms
ref=
"form"
:value=
"formData"
validate-trigger=
"submit"
err-show-type=
"toast"
>
<uni-forms-item
name=
"content"
label=
"留言内容/回复内容"
required
>
<textarea
@
input=
"binddata('content', $event.detail.value)"
class=
"uni-textarea-border"
v-model=
"formData.content"
trim=
"right"
></textarea>
</uni-forms-item>
<uni-forms-item
name=
"imgs"
label=
"图片列表"
>
<uni-file-picker
file-mediatype=
"image"
:limit=
"6"
return-type=
"array"
v-model=
"formData.imgs"
></uni-file-picker>
</uni-forms-item>
<uni-forms-item
name=
"contact"
label=
"联系人"
>
<uni-easyinput
v-model=
"formData.contact"
trim=
"both"
></uni-easyinput>
</uni-forms-item>
<uni-forms-item
name=
"mobile"
label=
"联系电话"
>
<uni-easyinput
v-model=
"formData.mobile"
trim=
"both"
></uni-easyinput>
</uni-forms-item>
<view
class=
"uni-button-group"
>
<button
type=
"primary"
class=
"uni-button"
@
click=
"submit"
>
提交
</button>
</view>
</uni-forms>
</view>
</
template
>
<
script
>
import
{
validator
}
from
'
../../js_sdk/validator/opendb-feedback.js
'
;
const
db
=
uniCloud
.
database
();
const
dbCollectionName
=
'
opendb-feedback
'
;
function
getValidator
(
fields
)
{
let
result
=
{}
for
(
let
key
in
validator
)
{
if
(
fields
.
indexOf
(
key
)
>
-
1
)
{
result
[
key
]
=
validator
[
key
]
}
}
return
result
}
export
default
{
data
()
{
let
formData
=
{
"
content
"
:
""
,
"
imgs
"
:
[],
"
contact
"
:
""
,
"
mobile
"
:
""
}
return
{
formData
,
formOptions
:
{},
rules
:
{
...
getValidator
(
Object
.
keys
(
formData
))
}
}
},
onLoad
(
e
)
{
if
(
e
.
id
)
{
const
id
=
e
.
id
this
.
formDataId
=
id
this
.
getDetail
(
id
)
}
},
onReady
()
{
this
.
$refs
.
form
.
setRules
(
this
.
rules
)
},
methods
:
{
/**
* 触发表单提交
*/
submit
()
{
uni
.
showLoading
({
mask
:
true
})
this
.
$refs
.
form
.
validate
().
then
((
res
)
=>
{
this
.
submitForm
(
res
)
}).
catch
(()
=>
{
uni
.
hideLoading
()
})
},
submitForm
(
value
)
{
// 使用 clientDB 提交数据
db
.
collection
(
dbCollectionName
).
doc
(
this
.
formDataId
).
update
(
value
).
then
((
res
)
=>
{
uni
.
showToast
({
icon
:
'
none
'
,
title
:
'
修改成功
'
})
this
.
getOpenerEventChannel
().
emit
(
'
refreshData
'
)
setTimeout
(()
=>
uni
.
navigateBack
(),
500
)
}).
catch
((
err
)
=>
{
uni
.
showModal
({
content
:
err
.
message
||
'
请求服务失败
'
,
showCancel
:
false
})
}).
finally
(()
=>
{
uni
.
hideLoading
()
})
},
/**
* 获取表单数据
* @param {Object} id
*/
getDetail
(
id
)
{
uni
.
showLoading
({
mask
:
true
})
db
.
collection
(
dbCollectionName
).
doc
(
id
).
field
(
"
content,imgs,contact,mobile
"
).
get
().
then
((
res
)
=>
{
const
data
=
res
.
result
.
data
[
0
]
if
(
data
)
{
this
.
formData
=
data
}
}).
catch
((
err
)
=>
{
uni
.
showModal
({
content
:
err
.
message
||
'
请求服务失败
'
,
showCancel
:
false
})
}).
finally
(()
=>
{
uni
.
hideLoading
()
})
}
}
}
</
script
>
<
style
>
.uni-container
{
padding
:
15px
;
}
.uni-input-border
,
.uni-textarea-border
{
width
:
100%
;
font-size
:
14px
;
color
:
#666
;
border
:
1px
#e5e5e5
solid
;
border-radius
:
5px
;
box-sizing
:
border-box
;
}
.uni-input-border
{
padding
:
0
10px
;
height
:
35px
;
}
.uni-textarea-border
{
padding
:
10px
;
height
:
80px
;
}
.uni-button-group
{
margin-top
:
50px
;
/* #ifndef APP-NVUE */
display
:
flex
;
/* #endif */
justify-content
:
center
;
}
.uni-button
{
width
:
184px
;
padding
:
12px
20px
;
font-size
:
14px
;
border-radius
:
4px
;
line-height
:
1
;
margin
:
0
;
}
</
style
>
uni_modules/uni-feedback/pages/opendb-feedback/list.vue
0 → 100644
浏览文件 @
dad10953
<
template
>
<view
class=
"container"
>
<unicloud-db
ref=
"udb"
v-slot:default=
"
{data, pagination, loading, hasMore, error}" collection="opendb-feedback" field="content,imgs,contact,mobile">
<view
v-if=
"error"
>
{{
error
.
message
}}
</view>
<view
v-else-if=
"data"
>
<uni-list>
<uni-list-item
v-for=
"(item, index) in data"
:key=
"index"
showArrow
:clickable=
"true"
@
click=
"handleItemClick(item._id)"
>
<template
v-slot:body
>
<text>
<!-- 此处默认显示为_id,请根据需要自行修改为其他字段 -->
<!-- 如果使用了联表查询,请参考生成的 admin 项目中 list.vue 页面的绑定字段的写法 -->
{{
item
.
_id
}}
</text>
</
template
>
</uni-list-item>
</uni-list>
</view>
<uni-load-more
:status=
"loading?'loading':(hasMore ? 'more' : 'noMore')"
></uni-load-more>
</unicloud-db>
<uni-fab
ref=
"fab"
horizontal=
"right"
vertical=
"bottom"
:pop-menu=
"false"
@
fabClick=
"fabClick"
/>
</view>
</template>
<
script
>
export
default
{
data
()
{
return
{
loadMore
:
{
contentdown
:
''
,
contentrefresh
:
''
,
contentnomore
:
''
}
}
},
onPullDownRefresh
()
{
this
.
$refs
.
udb
.
loadData
({
clear
:
true
},
()
=>
{
uni
.
stopPullDownRefresh
()
})
},
onReachBottom
()
{
this
.
$refs
.
udb
.
loadMore
()
},
methods
:
{
handleItemClick
(
id
)
{
uni
.
navigateTo
({
url
:
'
./detail?id=
'
+
id
})
},
fabClick
()
{
// 打开新增页面
uni
.
navigateTo
({
url
:
'
./add
'
,
events
:
{
// 监听新增数据成功后, 刷新当前页面数据
refreshData
:
()
=>
{
this
.
$refs
.
udb
.
loadData
({
clear
:
true
})
}
}
})
}
}
}
</
script
>
<
style
>
</
style
>
uni_modules/uni-feedback/pages/
uni-feedback/uni
-feedback.vue
→
uni_modules/uni-feedback/pages/
opendb-feedback/opendb
-feedback.vue
浏览文件 @
dad10953
<
template
>
<view
class=
"uni-container"
>
<uni-forms
ref=
"form"
:value=
"formData"
validate-trigger=
"submit"
err-show-type=
"toast"
>
<uni-forms-item
name=
"content"
:label=
"$t('uniFeedback.msgTitle')
"
required
>
<uni-forms-item
name=
"content"
label=
"留言内容/回复内容
"
required
>
<textarea
@
input=
"binddata('content', $event.detail.value)"
class=
"uni-textarea-border"
:value
=
"formData.content"
trim=
"right"
></textarea>
v-model
=
"formData.content"
trim=
"right"
></textarea>
</uni-forms-item>
<uni-forms-item
name=
"imgs"
:label=
"$t('uniFeedback.imgTitle')"
>
<uni-file-picker
file-mediatype=
"image"
:limit=
"6"
return-type=
"array"
v-model=
"formData.imgs"
/>
<uni-forms-item
name=
"imgs"
label=
"图片列表"
>
<uni-file-picker
file-mediatype=
"image"
:limit=
"6"
return-type=
"array"
v-model=
"formData.imgs"
>
</uni-file-picker>
</uni-forms-item>
<uni-forms-item
name=
"contact"
:label=
"$t('uniFeedback.contacts')
"
>
<uni-easyinput
v-model=
"formData.contact"
trim=
"both"
/
>
<uni-forms-item
name=
"contact"
label=
"联系人
"
>
<uni-easyinput
v-model=
"formData.contact"
trim=
"both"
></uni-easyinput
>
</uni-forms-item>
<uni-forms-item
name=
"mobile"
:label=
"$t('uniFeedback.phone')
"
>
<uni-easyinput
v-model=
"formData.mobile"
trim=
"both"
/
>
<uni-forms-item
name=
"mobile"
label=
"联系电话
"
>
<uni-easyinput
v-model=
"formData.mobile"
trim=
"both"
></uni-easyinput
>
</uni-forms-item>
<view
class=
"uni-button-group"
>
<button
type=
"primary"
class=
"uni-button"
@
click=
"submit"
>
{{
$t
(
'
uniFeedback.submit
'
)
}}
</button>
<button
type=
"primary"
class=
"uni-button"
@
click=
"submit"
>
提交
</button>
</view>
</uni-forms>
</view>
...
...
@@ -25,41 +25,37 @@
<
script
>
import
{
validator
}
from
'
../../js_sdk/validator/
uni
-feedback.js
'
;
}
from
'
../../js_sdk/validator/
opendb
-feedback.js
'
;
console
.
log
(
validator
);
const
db
=
uniCloud
.
database
();
const
dbCollectionName
=
'
opendb-feedback
'
;
function
getValidator
(
fields
)
{
let
re
us
lt
=
{}
let
re
su
lt
=
{}
for
(
let
key
in
validator
)
{
if
(
fields
.
indexOf
(
key
)
>
-
1
)
{
re
us
lt
[
key
]
=
validator
[
key
]
re
su
lt
[
key
]
=
validator
[
key
]
}
}
return
re
us
lt
return
re
su
lt
}
export
default
{
data
()
{
let
formData
=
{
"
content
"
:
""
,
"
imgs
"
:
[],
"
contact
"
:
""
,
"
mobile
"
:
""
}
return
{
formData
:
{
"
content
"
:
""
,
"
imgs
"
:
[],
"
contact
"
:
""
,
"
mobile
"
:
""
},
formData
,
formOptions
:
{},
rules
:
{
...
getValidator
(
[
"
content
"
,
"
imgs
"
,
"
contact
"
,
"
mobile
"
]
)
...
getValidator
(
Object
.
keys
(
formData
)
)
}
}
},
onLoad
()
{
uni
.
setNavigationBarTitle
({
title
:
this
.
$t
(
'
uniFeedback.navigationBarTitle
'
)
})
},
},
onReady
()
{
this
.
$refs
.
form
.
setRules
(
this
.
rules
)
},
...
...
@@ -73,7 +69,7 @@
})
this
.
$refs
.
form
.
validate
().
then
((
res
)
=>
{
this
.
submitForm
(
res
)
}).
catch
((
errors
)
=>
{
}).
catch
(()
=>
{
uni
.
hideLoading
()
})
},
...
...
@@ -81,15 +77,12 @@
submitForm
(
value
)
{
// 使用 clientDB 提交数据
db
.
collection
(
dbCollectionName
).
add
(
value
).
then
((
res
)
=>
{
uni
.
showModal
({
content
:
'
提交成功,感谢您的反馈!
'
,
showCancel
:
false
,
confirmText
:
"
关闭
"
,
complete
:()
=>
{
this
.
getOpenerEventChannel
().
emit
(
'
refreshData
'
)
// setTimeout(() => uni.navigateBack(), 500)
}
});
uni
.
showToast
({
icon
:
'
none
'
,
title
:
'
提交成功
'
})
this
.
getOpenerEventChannel
().
emit
(
'
refreshData
'
)
setTimeout
(()
=>
uni
.
navigateBack
(),
500
)
}).
catch
((
err
)
=>
{
uni
.
showModal
({
content
:
err
.
message
||
'
请求服务失败
'
,
...
...
@@ -121,19 +114,20 @@
.uni-input-border
{
padding
:
0
10px
;
height
:
35px
;
}
.uni-textarea-border
{
padding
:
10px
;
height
:
80px
;
width
:
90%
;
}
.uni-button-group
{
margin-top
:
50px
;
/* #ifndef APP-NVUE */
display
:
flex
;
/* #endif */
justify-content
:
center
;
flex-direction
:
row
;
}
.uni-button
{
...
...
@@ -144,9 +138,4 @@
line-height
:
1
;
margin
:
0
;
}
/* #ifndef APP-NVUE || VUE3 */
.uni-container
/
deep
/
.uni-file-picker__container
{
flex-direction
:
row
;
}
/* #endif */
</
style
>
</
style
>
uni_modules/uni-feedback/readme.md
浏览文件 @
dad10953
这是一个问题反馈客户端插件,admin端插件:
[
https://ext.dcloud.net.cn/plugin?id=4992
](
https://ext.dcloud.net.cn/plugin?id=4992
)
\ No newline at end of file
这是一个问题反馈客户端插件,admin端插件:
[
https://ext.dcloud.net.cn/plugin?id=4992
](
https://ext.dcloud.net.cn/plugin?id=4992
)
> 参考案例 [uni-starter](https://ext.dcloud.net.cn/plugin?id=5057)
\ No newline at end of file
uni_modules/uni-feedback/uniCloud/database/opendb-feedback.schema.json
浏览文件 @
dad10953
...
...
@@ -3,9 +3,9 @@
"required"
:
[
"content"
],
"permission"
:
{
"create"
:
"auth.uid != null"
,
"read"
:
"auth.uid != null"
,
"delete"
:
fals
e
,
"update"
:
fals
e
"read"
:
true
,
"delete"
:
tru
e
,
"update"
:
tru
e
},
"properties"
:
{
"_id"
:
{
...
...
uni_modules/uni-goods-nav/changelog.md
浏览文件 @
dad10953
## 1.1.1(2021-08-24)
-
新增 支持国际化
## 1.1.0(2021-07-13)
-
组件兼容 vue3,如何创建vue3项目,详见
[
uni-app 项目支持 vue3 介绍
](
https://ask.dcloud.net.cn/article/37834
)
## 1.0.7(2021-05-12)
-
新增 组件示例地址
## 1.0.6(2021-04-21)
-
优化 添加依赖 uni-icons, 导入后自动下载依赖
## 1.0.5(2021-02-05)
-
优化 组件引用关系,通过uni_modules引用组件
## 1.0.4(2021-02-05)
-
调整为uni_modules目录规范
## 1.0.7(2021-05-12)
-
新增 组件示例地址
## 1.0.6(2021-04-21)
-
优化 添加依赖 uni-icons, 导入后自动下载依赖
## 1.0.5(2021-02-05)
-
优化 组件引用关系,通过uni_modules引用组件
## 1.0.4(2021-02-05)
-
调整为uni_modules目录规范
uni_modules/uni-goods-nav/components/uni-goods-nav/i18n/en.json
0 → 100644
浏览文件 @
dad10953
{
"uni-goods-nav.options.shop"
:
"shop"
,
"uni-goods-nav.options.cart"
:
"cart"
,
"uni-goods-nav.buttonGroup.addToCart"
:
"add to cart"
,
"uni-goods-nav.buttonGroup.buyNow"
:
"buy now"
}
uni_modules/uni-goods-nav/components/uni-goods-nav/i18n/index.js
0 → 100644
浏览文件 @
dad10953
import
en
from
'
./en.json
'
import
zhHans
from
'
./zh-Hans.json
'
import
zhHant
from
'
./zh-Hant.json
'
export
default
{
en
,
'
zh-Hans
'
:
zhHans
,
'
zh-Hant
'
:
zhHant
}
uni_modules/uni-goods-nav/components/uni-goods-nav/i18n/zh-Hans.json
0 → 100644
浏览文件 @
dad10953
{
"uni-goods-nav.options.shop"
:
"店铺"
,
"uni-goods-nav.options.cart"
:
"购物车"
,
"uni-goods-nav.buttonGroup.addToCart"
:
"加入购物车"
,
"uni-goods-nav.buttonGroup.buyNow"
:
"立即购买"
}
uni_modules/uni-goods-nav/components/uni-goods-nav/i18n/zh-Hant.json
0 → 100644
浏览文件 @
dad10953
{
"uni-goods-nav.options.shop"
:
"店鋪"
,
"uni-goods-nav.options.cart"
:
"購物車"
,
"uni-goods-nav.buttonGroup.addToCart"
:
"加入購物車"
,
"uni-goods-nav.buttonGroup.buyNow"
:
"立即購買"
}
uni_modules/uni-goods-nav/components/uni-goods-nav/uni-goods-nav.vue
浏览文件 @
dad10953
...
...
@@ -26,6 +26,11 @@
</
template
>
<
script
>
import
{
initVueI18n
}
from
'
@dcloudio/uni-i18n
'
import
messages
from
'
./i18n/index.js
'
const
{
t
}
=
initVueI18n
(
messages
)
/**
* GoodsNav 商品导航
* @description 商品加入购物车、立即购买等
...
...
@@ -46,10 +51,10 @@
default
()
{
return
[{
icon
:
'
shop
'
,
text
:
'
店铺
'
,
text
:
t
(
"
uni-goods-nav.options.shop
"
)
,
},
{
icon
:
'
cart
'
,
text
:
'
购物车
'
text
:
t
(
"
uni-goods-nav.options.cart
"
)
}]
}
},
...
...
@@ -57,12 +62,12 @@
type
:
Array
,
default
()
{
return
[{
text
:
'
加入购物车
'
,
text
:
t
(
"
uni-goods-nav.buttonGroup.addToCart
"
)
,
backgroundColor
:
'
#ffa200
'
,
color
:
'
#fff
'
},
{
text
:
'
立即购买
'
,
text
:
t
(
"
uni-goods-nav.buttonGroup.buyNow
"
)
,
backgroundColor
:
'
#ff0000
'
,
color
:
'
#fff
'
}
...
...
@@ -141,9 +146,9 @@
justify-content
:
center
;
align-items
:
center
;
flex-direction
:
column
;
margin
:
0
10px
;
/* #ifdef H5 */
cursor
:
pointer
;
margin
:
0
10px
;
/* #ifdef H5 */
cursor
:
pointer
;
/* #endif */
}
...
...
@@ -170,9 +175,9 @@
/* #endif */
flex
:
1
;
justify-content
:
center
;
align-items
:
center
;
/* #ifdef H5 */
cursor
:
pointer
;
align-items
:
center
;
/* #ifdef H5 */
cursor
:
pointer
;
/* #endif */
}
...
...
@@ -224,4 +229,4 @@
.uni-tab__color-r
{
background-color
:
#ff0000
;
}
</
style
>
</
style
>
uni_modules/uni-goods-nav/package.json
浏览文件 @
dad10953
{
"id"
:
"uni-goods-nav"
,
"displayName"
:
"uni-goods-nav 商品导航"
,
"version"
:
"1.1.0"
,
"description"
:
"商品导航组件主要用于电商类应用底部导航,可自定义加入购物车,购买等操作"
,
"keywords"
:
[
"uni-ui"
,
"uniui"
,
"商品导航"
],
"repository"
:
"https://github.com/dcloudio/uni-ui"
,
"engines"
:
{
"HBuilderX"
:
""
},
"directories"
:
{
"example"
:
"../../temps/example_temps"
},
"dcloudext"
:
{
"category"
:
[
"前端组件"
,
"通用组件"
],
"sale"
:
{
"regular"
:
{
"price"
:
"0.00"
},
"sourcecode"
:
{
"price"
:
"0.00"
}
},
"contact"
:
{
"qq"
:
""
},
"declaration"
:
{
"ads"
:
"无"
,
"data"
:
"无"
,
"permissions"
:
"无"
},
"npmurl"
:
"https://www.npmjs.com/package/@dcloudio/uni-ui"
},
"uni_modules"
:
{
"dependencies"
:
[
"uni-icons"
],
"encrypt"
:
[],
"platforms"
:
{
"cloud"
:
{
"tcb"
:
"y"
,
"aliyun"
:
"y"
},
"client"
:
{
"App"
:
{
"app-vue"
:
"y"
,
"app-nvue"
:
"y"
},
"H5-mobile"
:
{
"Safari"
:
"y"
,
"Android Browser"
:
"y"
,
"微信浏览器(Android)"
:
"y"
,
"QQ浏览器(Android)"
:
"y"
},
"H5-pc"
:
{
"Chrome"
:
"y"
,
"IE"
:
"y"
,
"Edge"
:
"y"
,
"Firefox"
:
"y"
,
"Safari"
:
"y"
},
"小程序"
:
{
"微信"
:
"y"
,
"阿里"
:
"y"
,
"百度"
:
"y"
,
"字节跳动"
:
"y"
,
"QQ"
:
"y"
},
"快应用"
:
{
"华为"
:
"u"
,
"联盟"
:
"u"
}
}
}
}
{
"id"
:
"uni-goods-nav"
,
"displayName"
:
"uni-goods-nav 商品导航"
,
"version"
:
"1.1.1"
,
"description"
:
"商品导航组件主要用于电商类应用底部导航,可自定义加入购物车,购买等操作"
,
"keywords"
:
[
"uni-ui"
,
"uniui"
,
"商品导航"
],
"repository"
:
"https://github.com/dcloudio/uni-ui"
,
"engines"
:
{
"HBuilderX"
:
""
},
"directories"
:
{
"example"
:
"../../temps/example_temps"
},
"dcloudext"
:
{
"category"
:
[
"前端组件"
,
"通用组件"
],
"sale"
:
{
"regular"
:
{
"price"
:
"0.00"
},
"sourcecode"
:
{
"price"
:
"0.00"
}
},
"contact"
:
{
"qq"
:
""
},
"declaration"
:
{
"ads"
:
"无"
,
"data"
:
"无"
,
"permissions"
:
"无"
},
"npmurl"
:
"https://www.npmjs.com/package/@dcloudio/uni-ui"
},
"uni_modules"
:
{
"dependencies"
:
[
"uni-icons"
],
"encrypt"
:
[],
"platforms"
:
{
"cloud"
:
{
"tcb"
:
"y"
,
"aliyun"
:
"y"
},
"client"
:
{
"App"
:
{
"app-vue"
:
"y"
,
"app-nvue"
:
"y"
},
"H5-mobile"
:
{
"Safari"
:
"y"
,
"Android Browser"
:
"y"
,
"微信浏览器(Android)"
:
"y"
,
"QQ浏览器(Android)"
:
"y"
},
"H5-pc"
:
{
"Chrome"
:
"y"
,
"IE"
:
"y"
,
"Edge"
:
"y"
,
"Firefox"
:
"y"
,
"Safari"
:
"y"
},
"小程序"
:
{
"微信"
:
"y"
,
"阿里"
:
"y"
,
"百度"
:
"y"
,
"字节跳动"
:
"y"
,
"QQ"
:
"y"
},
"快应用"
:
{
"华为"
:
"u"
,
"联盟"
:
"u"
},
"Vue"
:
{
"vue2"
:
"y"
,
"vue3"
:
"u"
}
}
}
}
}
\ No newline at end of file
uni_modules/uni-icons/components/uni-icons/uni-icons.vue
浏览文件 @
dad10953
...
...
@@ -59,7 +59,7 @@
/* #ifndef APP-NVUE */
@font-face
{
font-family
:
uniicons
;
src
:
url('
.
/uni.ttf')
format
(
'truetype'
);
src
:
url('
/static
/uni.ttf')
format
(
'truetype'
);
}
/* #endif */
...
...
uni_modules/uni-load-more/changelog.md
浏览文件 @
dad10953
## 1.2.1(2021-08-24)
-
新增 支持国际化
## 1.2.0(2021-07-30)
-
组件兼容 vue3,如何创建vue3项目,详见
[
uni-app 项目支持 vue3 介绍
](
https://ask.dcloud.net.cn/article/37834
)
## 1.1.8(2021-05-12)
-
新增 组件示例地址
## 1.1.7(2021-03-30)
-
修复 uni-load-more 在首页使用时,h5 平台报 'uni is not defined' 的 bug
## 1.1.6(2021-02-05)
-
调整为uni_modules目录规范
## 1.1.8(2021-05-12)
-
新增 组件示例地址
## 1.1.7(2021-03-30)
-
修复 uni-load-more 在首页使用时,h5 平台报 'uni is not defined' 的 bug
## 1.1.6(2021-02-05)
-
调整为uni_modules目录规范
uni_modules/uni-load-more/components/uni-load-more/i18n/en.json
0 → 100644
浏览文件 @
dad10953
{
"uni-load-more.contentdown"
:
"Pull up to show more"
,
"uni-load-more.contentrefresh"
:
"loading..."
,
"uni-load-more.contentnomore"
:
"No more data"
}
uni_modules/uni-load-more/components/uni-load-more/i18n/index.js
0 → 100644
浏览文件 @
dad10953
import
en
from
'
./en.json
'
import
zhHans
from
'
./zh-Hans.json
'
import
zhHant
from
'
./zh-Hant.json
'
export
default
{
en
,
'
zh-Hans
'
:
zhHans
,
'
zh-Hant
'
:
zhHant
}
uni_modules/uni-load-more/components/uni-load-more/i18n/zh-Hans.json
0 → 100644
浏览文件 @
dad10953
{
"uni-load-more.contentdown"
:
"上拉显示更多"
,
"uni-load-more.contentrefresh"
:
"正在加载..."
,
"uni-load-more.contentnomore"
:
"没有更多数据了"
}
uni_modules/uni-load-more/components/uni-load-more/i18n/zh-Hant.json
0 → 100644
浏览文件 @
dad10953
{
"uni-load-more.contentdown"
:
"上拉顯示更多"
,
"uni-load-more.contentrefresh"
:
"正在加載..."
,
"uni-load-more.contentnomore"
:
"沒有更多數據了"
}
uni_modules/uni-load-more/components/uni-load-more/uni-load-more.vue
浏览文件 @
dad10953
此差异已折叠。
点击以展开。
uni_modules/uni-load-more/package.json
浏览文件 @
dad10953
{
"id"
:
"uni-load-more"
,
"displayName"
:
"uni-load-more 加载更多"
,
"version"
:
"1.2.0"
,
"description"
:
"LoadMore 组件,常用在列表里面,做滚动加载使用。"
,
"keywords"
:
[
"uni-ui"
,
"uniui"
,
"加载更多"
,
"load-more"
],
"repository"
:
"https://github.com/dcloudio/uni-ui"
,
"engines"
:
{
"HBuilderX"
:
""
},
"directories"
:
{
"example"
:
"../../temps/example_temps"
},
"dcloudext"
:
{
"category"
:
[
"前端组件"
,
"通用组件"
],
"sale"
:
{
"regular"
:
{
"price"
:
"0.00"
},
"sourcecode"
:
{
"price"
:
"0.00"
}
},
"contact"
:
{
"qq"
:
""
},
"declaration"
:
{
"ads"
:
"无"
,
"data"
:
"无"
,
"permissions"
:
"无"
},
"npmurl"
:
"https://www.npmjs.com/package/@dcloudio/uni-ui"
},
"uni_modules"
:
{
"dependencies"
:
[],
"encrypt"
:
[],
"platforms"
:
{
"cloud"
:
{
"tcb"
:
"y"
,
"aliyun"
:
"y"
},
"client"
:
{
"App"
:
{
"app-vue"
:
"y"
,
"app-nvue"
:
"y"
},
"H5-mobile"
:
{
"Safari"
:
"y"
,
"Android Browser"
:
"y"
,
"微信浏览器(Android)"
:
"y"
,
"QQ浏览器(Android)"
:
"y"
},
"H5-pc"
:
{
"Chrome"
:
"y"
,
"IE"
:
"y"
,
"Edge"
:
"y"
,
"Firefox"
:
"y"
,
"Safari"
:
"y"
},
"小程序"
:
{
"微信"
:
"y"
,
"阿里"
:
"y"
,
"百度"
:
"y"
,
"字节跳动"
:
"y"
,
"QQ"
:
"y"
},
"快应用"
:
{
"华为"
:
"u"
,
"联盟"
:
"u"
}
}
}
}
{
"id"
:
"uni-load-more"
,
"displayName"
:
"uni-load-more 加载更多"
,
"version"
:
"1.2.1"
,
"description"
:
"LoadMore 组件,常用在列表里面,做滚动加载使用。"
,
"keywords"
:
[
"uni-ui"
,
"uniui"
,
"加载更多"
,
"load-more"
],
"repository"
:
"https://github.com/dcloudio/uni-ui"
,
"engines"
:
{
"HBuilderX"
:
""
},
"directories"
:
{
"example"
:
"../../temps/example_temps"
},
"dcloudext"
:
{
"category"
:
[
"前端组件"
,
"通用组件"
],
"sale"
:
{
"regular"
:
{
"price"
:
"0.00"
},
"sourcecode"
:
{
"price"
:
"0.00"
}
},
"contact"
:
{
"qq"
:
""
},
"declaration"
:
{
"ads"
:
"无"
,
"data"
:
"无"
,
"permissions"
:
"无"
},
"npmurl"
:
"https://www.npmjs.com/package/@dcloudio/uni-ui"
},
"uni_modules"
:
{
"dependencies"
:
[],
"encrypt"
:
[],
"platforms"
:
{
"cloud"
:
{
"tcb"
:
"y"
,
"aliyun"
:
"y"
},
"client"
:
{
"App"
:
{
"app-vue"
:
"y"
,
"app-nvue"
:
"y"
},
"H5-mobile"
:
{
"Safari"
:
"y"
,
"Android Browser"
:
"y"
,
"微信浏览器(Android)"
:
"y"
,
"QQ浏览器(Android)"
:
"y"
},
"H5-pc"
:
{
"Chrome"
:
"y"
,
"IE"
:
"y"
,
"Edge"
:
"y"
,
"Firefox"
:
"y"
,
"Safari"
:
"y"
},
"小程序"
:
{
"微信"
:
"y"
,
"阿里"
:
"y"
,
"百度"
:
"y"
,
"字节跳动"
:
"y"
,
"QQ"
:
"y"
},
"快应用"
:
{
"华为"
:
"u"
,
"联盟"
:
"u"
},
"Vue"
:
{
"vue2"
:
"y"
,
"vue3"
:
"u"
}
}
}
}
}
\ No newline at end of file
uni_modules/uni-popup/changelog.md
浏览文件 @
dad10953
## 1.6.2(2021-08-24)
-
新增 支持国际化
## 1.6.1(2021-07-30)
-
优化 vue3下事件警告的问题
## 1.6.0(2021-07-13)
-
组件兼容 vue3,如何创建vue3项目,详见
[
uni-app 项目支持 vue3 介绍
](
https://ask.dcloud.net.cn/article/37834
)
## 1.5.0(2021-06-23)
-
新增 mask-click 遮罩层点击事件
## 1.4.5(2021-06-22)
-
修复 nvue 平台中间弹出后,点击内容,再点击遮罩无法关闭的Bug
## 1.4.4(2021-06-18)
-
修复 H5平台中间弹出后,点击内容,再点击遮罩无法关闭的Bug
## 1.4.3(2021-06-08)
-
修复 错误的 watch 字段
-
修复 safeArea 属性不生效的问题
-
修复 点击内容,再点击遮罩无法关闭的Bug
## 1.4.2(2021-05-12)
-
新增 组件示例地址
## 1.4.1(2021-04-29)
-
修复 组件内放置 input 、textarea 组件,无法聚焦的问题
## 1.4.0 (2021-04-29)
-
新增 type 属性的 left
\r
ight 值,支持左右弹出
-
新增 open(String:type) 方法参数 ,可以省略 type 属性 ,直接传入类型打开指定弹窗
-
新增 backgroundColor 属性,可定义主窗口背景色,默认不显示背景色
-
新增 safeArea 属性,是否适配底部安全区
-
修复 App
\h
5
\微
信小程序底部安全区占位不对的Bug
-
修复 App 端弹出等待的Bug
-
优化 提升低配设备性能,优化动画卡顿问题
-
优化 更简单的组件自定义方式
## 1.2.9(2021-02-05)
-
优化 组件引用关系,通过uni_modules引用组件
## 1.2.8(2021-02-05)
-
调整为uni_modules目录规范
## 1.2.7(2021-02-05)
-
调整为uni_modules目录规范
-
新增 支持 PC 端
-
新增 uni-popup-message 、uni-popup-dialog扩展组件支持 PC 端
## 1.6.0(2021-07-13)
-
组件兼容 vue3,如何创建vue3项目,详见
[
uni-app 项目支持 vue3 介绍
](
https://ask.dcloud.net.cn/article/37834
)
## 1.5.0(2021-06-23)
-
新增 mask-click 遮罩层点击事件
## 1.4.5(2021-06-22)
-
修复 nvue 平台中间弹出后,点击内容,再点击遮罩无法关闭的Bug
## 1.4.4(2021-06-18)
-
修复 H5平台中间弹出后,点击内容,再点击遮罩无法关闭的Bug
## 1.4.3(2021-06-08)
-
修复 错误的 watch 字段
-
修复 safeArea 属性不生效的问题
-
修复 点击内容,再点击遮罩无法关闭的Bug
## 1.4.2(2021-05-12)
-
新增 组件示例地址
## 1.4.1(2021-04-29)
-
修复 组件内放置 input 、textarea 组件,无法聚焦的问题
## 1.4.0 (2021-04-29)
-
新增 type 属性的 left
\r
ight 值,支持左右弹出
-
新增 open(String:type) 方法参数 ,可以省略 type 属性 ,直接传入类型打开指定弹窗
-
新增 backgroundColor 属性,可定义主窗口背景色,默认不显示背景色
-
新增 safeArea 属性,是否适配底部安全区
-
修复 App
\h
5
\微
信小程序底部安全区占位不对的Bug
-
修复 App 端弹出等待的Bug
-
优化 提升低配设备性能,优化动画卡顿问题
-
优化 更简单的组件自定义方式
## 1.2.9(2021-02-05)
-
优化 组件引用关系,通过uni_modules引用组件
## 1.2.8(2021-02-05)
-
调整为uni_modules目录规范
## 1.2.7(2021-02-05)
-
调整为uni_modules目录规范
-
新增 支持 PC 端
-
新增 uni-popup-message 、uni-popup-dialog扩展组件支持 PC 端
uni_modules/uni-popup/components/uni-popup-dialog/uni-popup-dialog.vue
浏览文件 @
dad10953
<
template
>
<view
class=
"uni-popup-dialog"
>
<view
class=
"uni-dialog-title"
>
<text
class=
"uni-dialog-title-text"
:class=
"['uni-popup__'+dialogType]"
>
{{
title
}}
</text>
<text
class=
"uni-dialog-title-text"
:class=
"['uni-popup__'+dialogType]"
>
{{
title
Text
}}
</text>
</view>
<view
v-if=
"mode === 'base'"
class=
"uni-dialog-content"
>
<slot>
<text
class=
"uni-dialog-content-text"
>
{{
content
}}
</text>
<view
v-if=
"mode === 'base'"
class=
"uni-dialog-content"
>
<slot>
<text
class=
"uni-dialog-content-text"
>
{{
content
}}
</text>
</slot>
</view>
<view
v-else
class=
"uni-dialog-content"
>
<slot>
<input
class=
"uni-dialog-input"
v-model=
"val"
type=
"text"
:placeholder=
"placeholderText"
:focus=
"focus"
>
</slot>
</view>
<view
v-else
class=
"uni-dialog-content"
>
<slot>
<input
class=
"uni-dialog-input"
v-model=
"val"
type=
"text"
:placeholder=
"placeholder"
:focus=
"focus"
>
</slot>
</view>
<view
class=
"uni-dialog-button-group"
>
<view
class=
"uni-dialog-button"
@
click=
"closeDialog"
>
<text
class=
"uni-dialog-button-text"
>
取消
</text>
<text
class=
"uni-dialog-button-text"
>
{{
cancelText
}}
</text>
</view>
<view
class=
"uni-dialog-button uni-border-left"
@
click=
"onOk"
>
<text
class=
"uni-dialog-button-text uni-button-color"
>
确定
</text>
<text
class=
"uni-dialog-button-text uni-button-color"
>
{{
okText
}}
</text>
</view>
</view>
</view>
</
template
>
<
script
>
<
script
>
import
popup
from
'
../uni-popup/popup.js
'
import
{
initVueI18n
}
from
'
@dcloudio/uni-i18n
'
import
messages
from
'
../uni-popup/i18n/index.js
'
const
{
t
}
=
initVueI18n
(
messages
)
/**
* PopUp 弹出层-对话框样式
* @description 弹出层-对话框样式
...
...
@@ -48,7 +53,7 @@
*/
export
default
{
name
:
"
uniPopupDialog
"
,
name
:
"
uniPopupDialog
"
,
mixins
:
[
popup
],
emits
:[
'
confirm
'
,
'
close
'
],
props
:
{
...
...
@@ -58,7 +63,7 @@
},
placeholder
:
{
type
:
[
String
,
Number
],
default
:
'
请输入内容
'
default
:
''
},
type
:
{
type
:
String
,
...
...
@@ -70,7 +75,7 @@
},
title
:
{
type
:
String
,
default
:
'
提示
'
default
:
''
},
content
:
{
type
:
String
,
...
...
@@ -88,6 +93,20 @@
val
:
""
}
},
computed
:
{
okText
()
{
return
t
(
"
uni-popup.ok
"
)
},
cancelText
()
{
return
t
(
"
uni-popup.cancel
"
)
},
placeholderText
()
{
return
this
.
placeholder
||
t
(
"
uni-popup.placeholder
"
)
},
titleText
()
{
return
this
.
title
||
t
(
"
uni-popup.title
"
)
}
},
watch
:
{
type
(
val
)
{
this
.
dialogType
=
val
...
...
@@ -101,9 +120,9 @@
this
.
val
=
val
}
},
created
()
{
created
()
{
// 对话框遮罩不可点击
this
.
popup
.
disableMask
()
this
.
popup
.
disableMask
()
// this.popup.closeMask()
if
(
this
.
mode
===
'
input
'
)
{
this
.
dialogType
=
'
info
'
...
...
@@ -119,25 +138,25 @@
/**
* 点击确认按钮
*/
onOk
()
{
if
(
this
.
mode
===
'
input
'
){
this
.
$emit
(
'
confirm
'
,
this
.
val
)
}
else
{
this
.
$emit
(
'
confirm
'
)
}
if
(
this
.
beforeClose
)
return
onOk
()
{
if
(
this
.
mode
===
'
input
'
){
this
.
$emit
(
'
confirm
'
,
this
.
val
)
}
else
{
this
.
$emit
(
'
confirm
'
)
}
if
(
this
.
beforeClose
)
return
this
.
popup
.
close
()
},
/**
* 点击取消按钮
*/
closeDialog
()
{
this
.
$emit
(
'
close
'
)
closeDialog
()
{
this
.
$emit
(
'
close
'
)
if
(
this
.
beforeClose
)
return
this
.
popup
.
close
()
},
close
(){
this
.
popup
.
close
()
},
close
(){
this
.
popup
.
close
()
}
}
}
...
...
@@ -218,11 +237,11 @@
.uni-dialog-input
{
flex
:
1
;
font-size
:
14px
;
border
:
1px
#eee
solid
;
height
:
40px
;
padding
:
0
10px
;
border-radius
:
5px
;
font-size
:
14px
;
border
:
1px
#eee
solid
;
height
:
40px
;
padding
:
0
10px
;
border-radius
:
5px
;
color
:
#555
;
}
...
...
@@ -241,4 +260,4 @@
.uni-popup__info
{
color
:
#909399
;
}
</
style
>
</
style
>
uni_modules/uni-popup/components/uni-popup-share/uni-popup-share.vue
浏览文件 @
dad10953
<
template
>
<view
class=
"uni-popup-share"
>
<view
class=
"uni-share-title"
><text
class=
"uni-share-title-text"
>
{{
title
}}
</text></view>
<view
class=
"uni-share-title"
><text
class=
"uni-share-title-text"
>
{{
shareTitleText
}}
</text></view>
<view
class=
"uni-share-content"
>
<view
class=
"uni-share-content-box"
>
<view
class=
"uni-share-content-item"
v-for=
"(item,index) in bottomData"
:key=
"index"
@
click.stop=
"select(item,index)"
>
...
...
@@ -11,25 +11,30 @@
</view>
</view>
<view
class=
"uni-share-button-box"
>
<button
class=
"uni-share-button"
@
click=
"close"
>
取消
</button>
<button
class=
"uni-share-button"
@
click=
"close"
>
{{
cancelText
}}
</button>
</view>
</view>
</
template
>
<
script
>
<
script
>
import
popup
from
'
../uni-popup/popup.js
'
import
{
initVueI18n
}
from
'
@dcloudio/uni-i18n
'
import
messages
from
'
../uni-popup/i18n/index.js
'
const
{
t
}
=
initVueI18n
(
messages
)
export
default
{
name
:
'
UniPopupShare
'
,
name
:
'
UniPopupShare
'
,
mixins
:[
popup
],
emits
:[
'
select
'
],
props
:
{
title
:
{
type
:
String
,
default
:
'
分享到
'
},
beforeClose
:
{
type
:
Boolean
,
default
:
false
default
:
''
},
beforeClose
:
{
type
:
Boolean
,
default
:
false
}
},
data
()
{
...
...
@@ -68,6 +73,14 @@
}
},
created
()
{},
computed
:
{
cancelText
()
{
return
t
(
"
uni-popup.cancel
"
)
},
shareTitleText
()
{
return
this
.
title
||
t
(
"
uni-popup.shareTitle
"
)
}
},
methods
:
{
/**
* 选择内容
...
...
@@ -76,15 +89,15 @@
this
.
$emit
(
'
select
'
,
{
item
,
index
})
this
.
close
()
})
this
.
close
()
},
/**
* 关闭窗口
*/
close
()
{
if
(
this
.
beforeClose
)
return
close
()
{
if
(
this
.
beforeClose
)
return
this
.
popup
.
close
()
}
}
...
...
uni_modules/uni-popup/components/uni-popup/i18n/en.json
0 → 100644
浏览文件 @
dad10953
{
"uni-popup.cancel"
:
"cancel"
,
"uni-popup.ok"
:
"ok"
,
"uni-popup.placeholder"
:
"pleace enter"
,
"uni-popup.title"
:
"Hint"
,
"uni-popup.shareTitle"
:
"Share to"
}
uni_modules/uni-popup/components/uni-popup/i18n/index.js
0 → 100644
浏览文件 @
dad10953
import
en
from
'
./en.json
'
import
zhHans
from
'
./zh-Hans.json
'
import
zhHant
from
'
./zh-Hant.json
'
export
default
{
en
,
'
zh-Hans
'
:
zhHans
,
'
zh-Hant
'
:
zhHant
}
uni_modules/uni-popup/components/uni-popup/i18n/zh-Hans.json
0 → 100644
浏览文件 @
dad10953
{
"uni-popup.cancel"
:
"取消"
,
"uni-popup.ok"
:
"确定"
,
"uni-popup.placeholder"
:
"请输入"
,
"uni-popup.title"
:
"提示"
,
"uni-popup.shareTitle"
:
"分享到"
}
uni_modules/uni-popup/components/uni-popup/i18n/zh-Hant.json
0 → 100644
浏览文件 @
dad10953
{
"uni-popup.cancel"
:
"取消"
,
"uni-popup.ok"
:
"確定"
,
"uni-popup.placeholder"
:
"請輸入"
,
"uni-popup.title"
:
"提示"
,
"uni-popup.shareTitle"
:
"分享到"
}
uni_modules/uni-popup/components/uni-popup/uni-popup.vue
浏览文件 @
dad10953
...
...
@@ -34,7 +34,8 @@ import keypress from './keypress.js'
* @property {Boolean} maskClick = [ture|false] 蒙版点击是否关闭弹窗
* @property {String} backgroundColor 主窗口背景色
* @property {Boolean} safeArea 是否适配底部安全区
* @event {Function} change 打开关闭弹窗触发,e={show: false}
* @event {Function} change 打开关闭弹窗触发,e={show: false}
* @event {Function} maskClick 点击遮罩触发
*/
export
default
{
...
...
uni_modules/uni-popup/package.json
浏览文件 @
dad10953
{
"id"
:
"uni-popup"
,
"displayName"
:
"uni-popup 弹出层"
,
"version"
:
"1.6.1"
,
"description"
:
" Popup 组件,提供常用的弹层"
,
"keywords"
:
[
"uni-ui"
,
"弹出层"
,
"弹窗"
,
"popup"
,
"弹框"
],
"repository"
:
"https://github.com/dcloudio/uni-ui"
,
"engines"
:
{
"HBuilderX"
:
""
},
"directories"
:
{
"example"
:
"../../temps/example_temps"
},
"dcloudext"
:
{
"category"
:
[
"前端组件"
,
"通用组件"
],
"sale"
:
{
"regular"
:
{
"price"
:
"0.00"
},
"sourcecode"
:
{
"price"
:
"0.00"
}
},
"contact"
:
{
"qq"
:
""
},
"declaration"
:
{
"ads"
:
"无"
,
"data"
:
"无"
,
"permissions"
:
"无"
},
"npmurl"
:
"https://www.npmjs.com/package/@dcloudio/uni-ui"
},
"uni_modules"
:
{
"dependencies"
:
[
"uni-transition"
],
"encrypt"
:
[],
"platforms"
:
{
"cloud"
:
{
"tcb"
:
"y"
,
"aliyun"
:
"y"
},
"client"
:
{
"App"
:
{
"app-vue"
:
"y"
,
"app-nvue"
:
"y"
},
"H5-mobile"
:
{
"Safari"
:
"y"
,
"Android Browser"
:
"y"
,
"微信浏览器(Android)"
:
"y"
,
"QQ浏览器(Android)"
:
"y"
},
"H5-pc"
:
{
"Chrome"
:
"y"
,
"IE"
:
"y"
,
"Edge"
:
"y"
,
"Firefox"
:
"y"
,
"Safari"
:
"y"
},
"小程序"
:
{
"微信"
:
"y"
,
"阿里"
:
"y"
,
"百度"
:
"y"
,
"字节跳动"
:
"y"
,
"QQ"
:
"y"
},
"快应用"
:
{
"华为"
:
"u"
,
"联盟"
:
"u"
}
}
}
}
}
{
"id"
:
"uni-popup"
,
"displayName"
:
"uni-popup 弹出层"
,
"version"
:
"1.6.2"
,
"description"
:
" Popup 组件,提供常用的弹层"
,
"keywords"
:
[
"uni-ui"
,
"弹出层"
,
"弹窗"
,
"popup"
,
"弹框"
],
"repository"
:
"https://github.com/dcloudio/uni-ui"
,
"engines"
:
{
"HBuilderX"
:
""
},
"directories"
:
{
"example"
:
"../../temps/example_temps"
},
"dcloudext"
:
{
"category"
:
[
"前端组件"
,
"通用组件"
],
"sale"
:
{
"regular"
:
{
"price"
:
"0.00"
},
"sourcecode"
:
{
"price"
:
"0.00"
}
},
"contact"
:
{
"qq"
:
""
},
"declaration"
:
{
"ads"
:
"无"
,
"data"
:
"无"
,
"permissions"
:
"无"
},
"npmurl"
:
"https://www.npmjs.com/package/@dcloudio/uni-ui"
},
"uni_modules"
:
{
"dependencies"
:
[
"uni-transition"
],
"encrypt"
:
[],
"platforms"
:
{
"cloud"
:
{
"tcb"
:
"y"
,
"aliyun"
:
"y"
},
"client"
:
{
"App"
:
{
"app-vue"
:
"y"
,
"app-nvue"
:
"y"
},
"H5-mobile"
:
{
"Safari"
:
"y"
,
"Android Browser"
:
"y"
,
"微信浏览器(Android)"
:
"y"
,
"QQ浏览器(Android)"
:
"y"
},
"H5-pc"
:
{
"Chrome"
:
"y"
,
"IE"
:
"y"
,
"Edge"
:
"y"
,
"Firefox"
:
"y"
,
"Safari"
:
"y"
},
"小程序"
:
{
"微信"
:
"y"
,
"阿里"
:
"y"
,
"百度"
:
"y"
,
"字节跳动"
:
"y"
,
"QQ"
:
"y"
},
"快应用"
:
{
"华为"
:
"u"
,
"联盟"
:
"u"
},
"Vue"
:
{
"vue2"
:
"y"
,
"vue3"
:
"u"
}
}
}
}
}
uni_modules/uni-search-bar/changelog.md
浏览文件 @
dad10953
## 1.1.1(2021-08-24)
-
新增 支持国际化
## 1.1.0(2021-07-30)
-
组件兼容 vue3,如何创建vue3项目,详见
[
uni-app 项目支持 vue3 介绍
](
https://ask.dcloud.net.cn/article/37834
)
## 1.0.9(2021-05-12)
-
新增 项目示例地址
## 1.0.8(2021-04-21)
-
优化 添加依赖 uni-icons, 导入后自动下载依赖
## 1.0.7(2021-04-15)
-
uni-ui 新增 uni-search-bar 的 focus 事件
## 1.0.6(2021-02-05)
-
优化 组件引用关系,通过uni_modules引用组件
## 1.0.5(2021-02-05)
-
调整为uni_modules目录规范
-
新增 支持双向绑定
-
更改 input 事件的返回值,e={value:Number} --> e=value
-
新增 支持图标插槽
-
新增 支持 clear、blur 事件
-
新增 支持 focus 属性
-
去掉组件背景色
## 1.0.9(2021-05-12)
-
新增 项目示例地址
## 1.0.8(2021-04-21)
-
优化 添加依赖 uni-icons, 导入后自动下载依赖
## 1.0.7(2021-04-15)
-
uni-ui 新增 uni-search-bar 的 focus 事件
## 1.0.6(2021-02-05)
-
优化 组件引用关系,通过uni_modules引用组件
## 1.0.5(2021-02-05)
-
调整为uni_modules目录规范
-
新增 支持双向绑定
-
更改 input 事件的返回值,e={value:Number} --> e=value
-
新增 支持图标插槽
-
新增 支持 clear、blur 事件
-
新增 支持 focus 属性
-
去掉组件背景色
uni_modules/uni-search-bar/components/uni-search-bar/i18n/en.json
0 → 100644
浏览文件 @
dad10953
{
"uni-search-bar.cancel"
:
"cancel"
,
"uni-search-bar.placeholder"
:
"Search enter content"
}
\ No newline at end of file
uni_modules/uni-search-bar/components/uni-search-bar/i18n/index.js
0 → 100644
浏览文件 @
dad10953
import
en
from
'
./en.json
'
import
zhHans
from
'
./zh-Hans.json
'
import
zhHant
from
'
./zh-Hant.json
'
export
default
{
en
,
'
zh-Hans
'
:
zhHans
,
'
zh-Hant
'
:
zhHant
}
uni_modules/uni-search-bar/components/uni-search-bar/i18n/zh-Hans.json
0 → 100644
浏览文件 @
dad10953
{
"uni-search-bar.cancel"
:
"cancel"
,
"uni-search-bar.placeholder"
:
"请输入搜索内容"
}
uni_modules/uni-search-bar/components/uni-search-bar/i18n/zh-Hant.json
0 → 100644
浏览文件 @
dad10953
{
"uni-search-bar.cancel"
:
"cancel"
,
"uni-search-bar.placeholder"
:
"請輸入搜索內容"
}
uni_modules/uni-search-bar/components/uni-search-bar/uni-search-bar.vue
浏览文件 @
dad10953
...
...
@@ -6,7 +6,7 @@
<uni-icons
color=
"#999999"
size=
"18"
type=
"search"
/>
</slot>
</view>
<input
v-if=
"show || searchVal"
:focus=
"showSync"
:placeholder=
"placeholder"
:maxlength=
"maxlength"
class=
"uni-searchbar__box-search-input"
<input
v-if=
"show || searchVal"
:focus=
"showSync"
:placeholder=
"placeholder
Text
"
:maxlength=
"maxlength"
class=
"uni-searchbar__box-search-input"
confirm-type=
"search"
type=
"text"
v-model=
"searchVal"
@
confirm=
"confirm"
@
blur=
"blur"
@
focus=
"emitFocus"
/>
<text
v-else
class=
"uni-searchbar__text-placeholder"
>
{{
placeholder
}}
</text>
<view
v-if=
"show && (clearButton==='always'||clearButton==='auto'&&searchVal!=='')"
class=
"uni-searchbar__box-icon-clear"
...
...
@@ -16,11 +16,16 @@
</slot>
</view>
</view>
<text
@
click=
"cancel"
class=
"uni-searchbar__cancel"
v-if=
"cancelButton ==='always' || show && cancelButton ==='auto'"
>
{{
cancelText
}}
</text>
<text
@
click=
"cancel"
class=
"uni-searchbar__cancel"
v-if=
"cancelButton ==='always' || show && cancelButton ==='auto'"
>
{{
cancelText
I18n
}}
</text>
</view>
</
template
>
<
script
>
import
{
initVueI18n
}
from
'
@dcloudio/uni-i18n
'
import
messages
from
'
./i18n/index.js
'
const
{
t
}
=
initVueI18n
(
messages
)
/**
* SearchBar 搜索栏
...
...
@@ -53,7 +58,7 @@
props
:
{
placeholder
:
{
type
:
String
,
default
:
"
请输入搜索内容
"
default
:
""
},
radius
:
{
type
:
[
Number
,
String
],
...
...
@@ -82,10 +87,10 @@
value
:
{
type
:
[
Number
,
String
],
default
:
""
},
modelValue
:
{
type
:
[
Number
,
String
],
default
:
""
},
modelValue
:
{
type
:
[
Number
,
String
],
default
:
""
},
focus
:
{
type
:
Boolean
,
...
...
@@ -99,6 +104,14 @@
searchVal
:
''
}
},
computed
:{
cancelTextI18n
()
{
return
this
.
cancelText
||
t
(
"
uni-search-bar.cancel
"
)
},
placeholderText
()
{
return
this
.
placeholder
||
t
(
"
uni-search-bar.placeholder
"
)
}
},
watch
:
{
value
:
{
immediate
:
true
,
...
...
@@ -108,15 +121,15 @@
this
.
show
=
true
}
}
},
modelValue
:
{
immediate
:
true
,
handler
(
newVal
)
{
this
.
searchVal
=
newVal
if
(
newVal
)
{
this
.
show
=
true
}
}
},
modelValue
:
{
immediate
:
true
,
handler
(
newVal
)
{
this
.
searchVal
=
newVal
if
(
newVal
)
{
this
.
show
=
true
}
}
},
focus
:
{
immediate
:
true
,
...
...
@@ -185,9 +198,9 @@
this
.
$emit
(
"
blur
"
,
{
value
:
this
.
searchVal
})
},
emitFocus
(
e
)
{
this
.
$emit
(
"
focus
"
,
e
.
detail
)
},
emitFocus
(
e
)
{
this
.
$emit
(
"
focus
"
,
e
.
detail
)
}
}
};
...
...
@@ -245,9 +258,9 @@
.uni-searchbar__box-icon-clear
{
align-items
:
center
;
line-height
:
24px
;
padding-left
:
8px
;
/* #ifdef H5 */
cursor
:
pointer
;
padding-left
:
8px
;
/* #ifdef H5 */
cursor
:
pointer
;
/* #endif */
}
...
...
@@ -261,9 +274,9 @@
padding-left
:
10px
;
line-height
:
$uni-searchbar-height
;
font-size
:
14px
;
color
:
$uni-text-color
;
/* #ifdef H5 */
cursor
:
pointer
;
color
:
$uni-text-color
;
/* #ifdef H5 */
cursor
:
pointer
;
/* #endif */
}
</
style
>
</
style
>
uni_modules/uni-search-bar/package.json
浏览文件 @
dad10953
{
"id"
:
"uni-search-bar"
,
"displayName"
:
"uni-search-bar 搜索栏"
,
"version"
:
"1.1.0"
,
"description"
:
"搜索栏组件,通常用于搜索商品、文章等"
,
"keywords"
:
[
"uni-ui"
,
"uniui"
,
"搜索框"
,
"搜索栏"
],
"repository"
:
"https://github.com/dcloudio/uni-ui"
,
"engines"
:
{
"HBuilderX"
:
""
},
"directories"
:
{
"example"
:
"../../temps/example_temps"
},
"dcloudext"
:
{
"category"
:
[
"前端组件"
,
"通用组件"
],
"sale"
:
{
"regular"
:
{
"price"
:
"0.00"
},
"sourcecode"
:
{
"price"
:
"0.00"
}
},
"contact"
:
{
"qq"
:
""
},
"declaration"
:
{
"ads"
:
"无"
,
"data"
:
"无"
,
"permissions"
:
"无"
},
"npmurl"
:
"https://www.npmjs.com/package/@dcloudio/uni-ui"
},
"uni_modules"
:
{
"dependencies"
:
[
"uni-icons"
],
"encrypt"
:
[],
"platforms"
:
{
"cloud"
:
{
"tcb"
:
"y"
,
"aliyun"
:
"y"
},
"client"
:
{
"App"
:
{
"app-vue"
:
"y"
,
"app-nvue"
:
"y"
},
"H5-mobile"
:
{
"Safari"
:
"y"
,
"Android Browser"
:
"y"
,
"微信浏览器(Android)"
:
"y"
,
"QQ浏览器(Android)"
:
"y"
},
"H5-pc"
:
{
"Chrome"
:
"y"
,
"IE"
:
"y"
,
"Edge"
:
"y"
,
"Firefox"
:
"y"
,
"Safari"
:
"y"
},
"小程序"
:
{
"微信"
:
"y"
,
"阿里"
:
"y"
,
"百度"
:
"y"
,
"字节跳动"
:
"y"
,
"QQ"
:
"y"
},
"快应用"
:
{
"华为"
:
"u"
,
"联盟"
:
"u"
}
}
}
}
{
"id"
:
"uni-search-bar"
,
"displayName"
:
"uni-search-bar 搜索栏"
,
"version"
:
"1.1.1"
,
"description"
:
"搜索栏组件,通常用于搜索商品、文章等"
,
"keywords"
:
[
"uni-ui"
,
"uniui"
,
"搜索框"
,
"搜索栏"
],
"repository"
:
"https://github.com/dcloudio/uni-ui"
,
"engines"
:
{
"HBuilderX"
:
""
},
"directories"
:
{
"example"
:
"../../temps/example_temps"
},
"dcloudext"
:
{
"category"
:
[
"前端组件"
,
"通用组件"
],
"sale"
:
{
"regular"
:
{
"price"
:
"0.00"
},
"sourcecode"
:
{
"price"
:
"0.00"
}
},
"contact"
:
{
"qq"
:
""
},
"declaration"
:
{
"ads"
:
"无"
,
"data"
:
"无"
,
"permissions"
:
"无"
},
"npmurl"
:
"https://www.npmjs.com/package/@dcloudio/uni-ui"
},
"uni_modules"
:
{
"dependencies"
:
[
"uni-icons"
],
"encrypt"
:
[],
"platforms"
:
{
"cloud"
:
{
"tcb"
:
"y"
,
"aliyun"
:
"y"
},
"client"
:
{
"App"
:
{
"app-vue"
:
"y"
,
"app-nvue"
:
"y"
},
"H5-mobile"
:
{
"Safari"
:
"y"
,
"Android Browser"
:
"y"
,
"微信浏览器(Android)"
:
"y"
,
"QQ浏览器(Android)"
:
"y"
},
"H5-pc"
:
{
"Chrome"
:
"y"
,
"IE"
:
"y"
,
"Edge"
:
"y"
,
"Firefox"
:
"y"
,
"Safari"
:
"y"
},
"小程序"
:
{
"微信"
:
"y"
,
"阿里"
:
"y"
,
"百度"
:
"y"
,
"字节跳动"
:
"y"
,
"QQ"
:
"y"
},
"快应用"
:
{
"华为"
:
"u"
,
"联盟"
:
"u"
},
"Vue"
:
{
"vue2"
:
"y"
,
"vue3"
:
"u"
}
}
}
}
}
\ No newline at end of file
uni_modules/uni-share/changelog.md
浏览文件 @
dad10953
## 1.0.6(2021-08-25)
兼容vue3
## 1.0.5(2021-08-05)
优化代码实现,修改原来用
`eval()`
函数实现的逻辑
## 1.0.4(2021-06-07)
...
...
uni_modules/uni-share/package.json
浏览文件 @
dad10953
{
"id"
:
"uni-share"
,
"displayName"
:
"uni-share"
,
"version"
:
"1.0.
5
"
,
"version"
:
"1.0.
6
"
,
"description"
:
"底部弹出宫格图标式的分享菜单,可覆盖原生组件。"
,
"keywords"
:
[
"分享菜单"
...
...
@@ -72,7 +72,7 @@
},
"Vue"
:
{
"vue2"
:
"y"
,
"vue3"
:
"
u
"
"vue3"
:
"
y
"
}
}
}
...
...
uni_modules/uni-sign-in/changelog.md
浏览文件 @
dad10953
## 1.0.2(2021-08-25)
修复时区问题
## 1.0.1(2021-08-23)
调整签到逻辑,支持查出积分的收入支出历史记录
## 1.0.0(2021-08-05)
...
...
uni_modules/uni-sign-in/components/uni-sign-in/uni-sign-in.vue
浏览文件 @
dad10953
...
...
@@ -43,7 +43,7 @@
<
script
>
const
db
=
uniCloud
.
database
();
const
signInTable
=
db
.
collection
(
'
opendb-sign-in
'
)
const
signInTable
=
db
.
action
(
'
signIn
'
).
collection
(
'
opendb-sign-in
'
)
export
default
{
name
:
"
uni-signIn
"
,
data
()
{
...
...
@@ -69,7 +69,6 @@
try
{
const
date
=
new
Date
(
new
Date
().
toLocaleDateString
()).
getTime
()
let
res
=
await
signInTable
.
action
(
'
signIn
'
)
.
where
(
`'user_id' == $env.uid && 'date' ==
${
date
}
&& 'isDelete' == false`
)
.
get
()
this
.
signInRes
=
res
.
result
...
...
@@ -82,7 +81,7 @@
icon
:
'
none
'
});
}
else
{
let
res
=
await
signInTable
.
a
ction
(
'
signIn
'
).
a
dd
({});
let
res
=
await
signInTable
.
add
({});
console
.
log
(
res
);
uni
.
hideLoading
()
this
.
signInRes
=
res
.
result
...
...
uni_modules/uni-sign-in/package.json
浏览文件 @
dad10953
此差异已折叠。
点击以展开。
uni_modules/uni-sign-in/uniCloud/cloudfunctions/uni-clientDB-actions/signIn.js
浏览文件 @
dad10953
此差异已折叠。
点击以展开。
uni_modules_tools/copy/manifest.json
浏览文件 @
dad10953
此差异已折叠。
点击以展开。
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录