Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
J
jz_Travel
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
zhengke
jz_Travel
Commits
430dc873
Commit
430dc873
authored
Apr 21, 2025
by
youjie
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
日期人数筛选
parent
e6ceedb3
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
784 additions
and
38 deletions
+784
-38
App.vue
App.vue
+13
-0
search.vue
pages/hotel/components/search.vue
+2
-2
date.vue
pages/hotel/components/time/date.vue
+72
-34
index.vue
pages/hotel/components/time/index.vue
+2
-2
changelog.md
uni_modules/uni-data-select/changelog.md
+39
-0
uni-data-select.vue
...ata-select/components/uni-data-select/uni-data-select.vue
+562
-0
package.json
uni_modules/uni-data-select/package.json
+86
-0
readme.md
uni_modules/uni-data-select/readme.md
+8
-0
No files found.
App.vue
View file @
430dc873
...
@@ -220,4 +220,17 @@
...
@@ -220,4 +220,17 @@
image
{
image
{
will-change
:
transform
will-change
:
transform
}
}
.ResultBox
.uni-select
{
height
:
38rpx
;
border
:
0
;
}
.ResultBox
.uni-select__input-box
{
height
:
38rpx
;
}
.ResultBox
.uni-select__selector
,
.ResultBox
.uni-select__selector-scroll
{
width
:
120rpx
;
}
.ResultBox
.uni-select
,
.ResultBox
.uni-select__input-placeholder
{
font-size
:
28rpx
;
}
</
style
>
</
style
>
\ No newline at end of file
pages/hotel/components/search.vue
View file @
430dc873
...
@@ -168,7 +168,7 @@
...
@@ -168,7 +168,7 @@
:PopularCities=
"PopularCities"
></destination>
:PopularCities=
"PopularCities"
></destination>
</u-popup>
</u-popup>
<u-popup
v-model=
"showTimePopup"
mode=
"bottom"
border-radius=
"20"
length=
"
75
%"
:safe-area-inset-bottom=
"true"
>
<u-popup
v-model=
"showTimePopup"
mode=
"bottom"
border-radius=
"20"
length=
"
89
%"
:safe-area-inset-bottom=
"true"
>
<CheckDate
:msg=
"parameters"
@
chosenDateResult=
"chosenDateResult"
></CheckDate>
<CheckDate
:msg=
"parameters"
@
chosenDateResult=
"chosenDateResult"
></CheckDate>
</u-popup>
</u-popup>
...
@@ -225,7 +225,7 @@
...
@@ -225,7 +225,7 @@
roomNum
:
1
,
roomNum
:
1
,
numberOfAdults
:
2
,
numberOfAdults
:
2
,
numberOfChildren
:
0
,
numberOfChildren
:
0
,
ChildAgeDetails
:
''
ChildAgeDetails
:
null
}],
}],
},
},
day
:
0
,
day
:
0
,
...
...
pages/hotel/components/time/date.vue
View file @
430dc873
<
template
>
<
template
>
<view
style=
"
<view
class=
"ResultBox"
style=
"
width: 100%;
width: 100%;
height: 100%;
height: 100%;
display: flex;
display: flex;
flex-direction: column;"
>
flex-direction: column;"
>
<view
style=
"
flex: 1; width: 100%; height: 1
rpx"
>
<view
style=
"
width: 100%; height: 740
rpx"
>
<canlendar
@
finish=
"chosenDateResult"
title=
"日期和人数"
></canlendar>
<canlendar
@
finish=
"chosenDateResult"
title=
"日期和人数"
></canlendar>
</view>
</view>
<view
class=
"column"
style=
"background: #ecf1f4; padding: 20rpx 0 50rpx 0;"
>
<view
class=
"column"
style=
"background: #ecf1f4; padding: 20rpx 0 50rpx 0;
height: 1rpx;flex: 1;
"
>
<view
class=
"row line-flex
"
style=
"padding: 30rpx; background: #fff
"
>
<view
class=
"row line-flex
BoxRoom
"
>
<text
style=
"
font-size: 28rpx;
color: #111; font-weight: 500"
>
房间
</text>
<text
style=
"color: #111; font-weight: 500"
>
房间
</text>
<text
style=
"
<text
style=
"
font-size: 22rpx;
font-size: 22rpx;
color: #999;
color: #999;
...
@@ -19,11 +19,11 @@
...
@@ -19,11 +19,11 @@
<u-number-box
size=
"28"
:min=
"1"
:max=
"100000"
v-model=
"parameters.rooms"
<u-number-box
size=
"28"
:min=
"1"
:max=
"100000"
v-model=
"parameters.rooms"
@
change=
"getRooms"
></u-number-box>
@
change=
"getRooms"
></u-number-box>
</view>
</view>
<scroll-view
:scroll-y=
"true"
class=
"hotelScroll"
style=
"
max-height: 200rpx
;"
>
<scroll-view
:scroll-y=
"true"
class=
"hotelScroll"
style=
"
height: 1rpx;flex: 1;background: #fff
;"
>
<view
style=
"padding: 0 30rpx;background: #fff
"
>
<view
class=
"line-flexBox
"
>
<view
class=
"
row items-center
"
v-for=
"(item,index) in parameters.searchroomGroup"
<view
class=
"
column
"
v-for=
"(item,index) in parameters.searchroomGroup"
style=
"padding-bottom: 20rpx;"
>
style=
"padding-bottom: 20rpx;"
>
<view
class=
"line-flex"
style=
"height: 29px;margin-right: 10rpx;"
>
房间
{{
item
.
roomNum
}}
</view>
<view
class=
"line-flex
line-flexTitle
"
style=
"height: 29px;margin-right: 10rpx;"
>
房间
{{
item
.
roomNum
}}
</view>
<view
class=
"col"
>
<view
class=
"col"
>
<view
class=
"row line-flex"
style=
"margin-left: 20rpx;"
>
<view
class=
"row line-flex"
style=
"margin-left: 20rpx;"
>
<view
style=
"margin-right: 10rpx;"
>
<view
style=
"margin-right: 10rpx;"
>
...
@@ -41,30 +41,43 @@
...
@@ -41,30 +41,43 @@
v-model=
"item.numberOfAdults"
v-model=
"item.numberOfAdults"
@
change=
"(e)=>
{crChange(e,index)}">
</u-number-box>
@
change=
"(e)=>
{crChange(e,index)}">
</u-number-box>
</view>
</view>
<view
class=
"row line-flex"
style=
"margin-left: 20rpx;"
>
<view
class=
"row row-sbas-n line-flex"
style=
"margin-left: 20rpx;"
>
<view
style=
"margin-right: 10rpx;"
>
<view
class=
"row"
>
<text
style=
"font-size: 28rpx; color: #111; font-weight: 500"
>
儿童
<view
style=
"margin-right: 10rpx;"
>
<!--(占床)-->
<text
style=
"font-size: 28rpx; color: #111; font-weight: 500"
>
儿童
</text>
<!--(占床)-->
<!--
</text>
<text
style=
"
<!--
font-size: 22rpx;
<text
style=
"
color: #999;
font-size: 22rpx;
margin-left: 30rpx;
color: #999;
flex: 1;
margin-left: 30rpx;
"
>
2-18周岁(不含)
</text>
-->
flex: 1;
"
>
2-18周岁(不含)
</text>
-->
</view>
<u-number-box
size=
"28"
:min=
"0"
:max=
"5"
v-model=
"item.numberOfChildren"
@
change=
"(e)=>
{etChange(e,index)}"
style="margin-right: 10rpx;"
>
</u-number-box>
</view>
<view
class=
"row"
>
<!--
<text
style=
"font-size: 28rpx; color: #111; font-weight: 500;"
>
年龄
</text>
-->
<!--
<u-number-box
size=
"28"
:min=
"1"
:max=
"12"
v-model=
"item.ChildAgeDetails"
@
change=
"(e)=>
{ageChange(e,index)}"
style="margin-left: 10rpx;"
>
</u-number-box>
-->
<uni-section
title=
""
type=
"line"
>
<uni-data-select
placeholder=
"请选择年龄"
v-model=
"item.ChildAgeDetails"
:localdata=
"TypeList"
:clear=
"false"
></uni-data-select>
</uni-section>
<u-icon
name=
"arrow"
:size=
"32"
color=
"#ccc"
style=
"position: relative;top: -9rpx;"
></u-icon>
</view>
</view>
<u-number-box
size=
"28"
:min=
"0"
:max=
"5"
v-model=
"item.numberOfChildren"
@
change=
"(e)=>
{etChange(e,index)}"
style="margin-right: 10rpx;"
>
</u-number-box>
<text
style=
"font-size: 28rpx; color: #111; font-weight: 500;"
>
年龄
</text>
<u-number-box
size=
"28"
:min=
"1"
:max=
"12"
v-model=
"item.ChildAgeDetails"
@
change=
"(e)=>
{ageChange(e,index)}"
style="margin-left: 10rpx;"
>
</u-number-box>
</view>
</view>
</view>
</view>
</view>
</view>
...
@@ -101,7 +114,8 @@ export default {
...
@@ -101,7 +114,8 @@ export default {
childrenNumberZC
:
0
,
childrenNumberZC
:
0
,
childrenNumberBZC
:
0
,
childrenNumberBZC
:
0
,
peoples
:
2
,
peoples
:
2
,
}
},
TypeList
:
[],
}
}
},
},
watch
:{
watch
:{
...
@@ -114,6 +128,14 @@ export default {
...
@@ -114,6 +128,14 @@ export default {
deep
:
true
,
deep
:
true
,
},
},
},
},
created
(){
for
(
let
i
=
1
;
i
<=
14
;
i
++
){
this
.
TypeList
.
push
({
text
:
i
+
'岁'
,
value
:
i
})
}
},
methods
:
{
methods
:
{
getRooms
(
e
){
getRooms
(
e
){
if
(
e
.
value
>
this
.
parameters
.
rooms
||
e
.
value
<
this
.
parameters
.
rooms
){
if
(
e
.
value
>
this
.
parameters
.
rooms
||
e
.
value
<
this
.
parameters
.
rooms
){
...
@@ -122,7 +144,7 @@ export default {
...
@@ -122,7 +144,7 @@ export default {
roomNum
:
e
.
value
,
roomNum
:
e
.
value
,
numberOfAdults
:
1
,
numberOfAdults
:
1
,
numberOfChildren
:
0
,
numberOfChildren
:
0
,
ChildAgeDetails
:
''
ChildAgeDetails
:
null
})
})
}
}
if
(
e
.
value
<
this
.
parameters
.
rooms
){
if
(
e
.
value
<
this
.
parameters
.
rooms
){
...
@@ -162,5 +184,21 @@ export default {
...
@@ -162,5 +184,21 @@ export default {
</
script
>
</
script
>
<
style
lang=
"scss"
scoped
>
<
style
lang=
"scss"
scoped
>
@import
url("@/asset/css/flex.css")
;
@import
url("@/asset/css/flex.css")
;
.line-flexBoxRoom
{
padding
:
30rpx
30rpx
20rpx
30rpx
;
background
:
#fff
;
font-size
:
32rpx
;
}
.line-flexBox
{
padding
:
0
30rpx
;
background
:
#fff
;
}
.line-flex
{
font-size
:
28rpx
;
}
.line-flex.line-flexTitle
{
font-size
:
32rpx
;
color
:
#B99846
;
}
</
style
>
</
style
>
\ No newline at end of file
pages/hotel/components/time/index.vue
View file @
430dc873
...
@@ -840,8 +840,8 @@ export default {
...
@@ -840,8 +840,8 @@ export default {
}
}
.section
>
.item
>
.day
>
.day-list
{
.section
>
.item
>
.day
>
.day-list
{
margin-top
:
30
upx
;
/* margin-top: 5
upx;
margin-bottom
:
30
upx
;
margin-bottom:
5upx; */
min-height
:
100
upx
;
min-height
:
100
upx
;
max-height
:
180
upx
;
max-height
:
180
upx
;
display
:
flex
;
display
:
flex
;
...
...
uni_modules/uni-data-select/changelog.md
0 → 100644
View file @
430dc873
## 1.0.8(2024-03-28)
-
修复 在vue2下:style动态绑定导致编译失败的bug
## 1.0.7(2024-01-20)
-
修复 长文本回显超过容器的bug,超过容器部分显示省略号
## 1.0.6(2023-04-12)
-
修复 微信小程序点击时会改变背景颜色的 bug
## 1.0.5(2023-02-03)
-
修复 禁用时会显示清空按钮
## 1.0.4(2023-02-02)
-
优化 查询条件短期内多次变更只查询最后一次变更后的结果
-
调整 内部缓存键名调整为 uni-data-select-lastSelectedValue
## 1.0.3(2023-01-16)
-
修复 不关联服务空间报错的问题
## 1.0.2(2023-01-14)
-
新增 属性
`format`
可用于格式化显示选项内容
## 1.0.1(2022-12-06)
-
修复 当where变化时,数据不会自动更新的问题
## 0.1.9(2022-09-05)
-
修复 微信小程序下拉框出现后选择会点击到蒙板后面的输入框
## 0.1.8(2022-08-29)
-
修复 点击的位置不准确
## 0.1.7(2022-08-12)
-
新增 支持 disabled 属性
## 0.1.6(2022-07-06)
-
修复 pc端宽度异常的bug
## 0.1.5
-
修复 pc端宽度异常的bug
## 0.1.4(2022-07-05)
-
优化 显示样式
## 0.1.3(2022-06-02)
-
修复 localdata 赋值不生效的 bug
-
新增 支持 uni.scss 修改颜色
-
新增 支持选项禁用(数据选项设置 disabled: true 即禁用)
## 0.1.2(2022-05-08)
-
修复 当 value 为 0 时选择不生效的 bug
## 0.1.1(2022-05-07)
-
新增 记住上次的选项(仅 collection 存在时有效)
## 0.1.0(2022-04-22)
-
初始化
uni_modules/uni-data-select/components/uni-data-select/uni-data-select.vue
0 → 100644
View file @
430dc873
<
template
>
<view
class=
"uni-stat__select"
>
<span
v-if=
"label"
class=
"uni-label-text hide-on-phone"
>
{{
label
+
':'
}}
</span>
<view
class=
"uni-stat-box"
:class=
"
{'uni-stat__actived': current}">
<view
class=
"uni-select"
:class=
"
{'uni-select--disabled':disabled}">
<view
class=
"uni-select__input-box"
@
click=
"toggleSelector"
>
<view
v-if=
"current"
class=
"uni-select__input-text"
>
{{
textShow
}}
</view>
<view
v-else
class=
"uni-select__input-text uni-select__input-placeholder"
>
{{
typePlaceholder
}}
</view>
<view
v-if=
"current && clear && !disabled"
@
click
.
stop=
"clearVal"
>
<uni-icons
type=
"clear"
color=
"#c0c4cc"
size=
"24"
/>
</view>
<view
v-else
>
<uni-icons
:type=
"showSelector? 'top' : 'bottom'"
size=
"14"
color=
"#999"
/>
</view>
</view>
<view
class=
"uni-select--mask"
v-if=
"showSelector"
@
click=
"toggleSelector"
/>
<view
class=
"uni-select__selector"
:style=
"getOffsetByPlacement"
v-if=
"showSelector"
>
<view
:class=
"placement=='bottom'?'uni-popper__arrow_bottom':'uni-popper__arrow_top'"
></view>
<scroll-view
scroll-y=
"true"
class=
"uni-select__selector-scroll"
>
<view
class=
"uni-select__selector-empty"
v-if=
"mixinDatacomResData.length === 0"
>
<text>
{{
emptyTips
}}
</text>
</view>
<view
v-else
class=
"uni-select__selector-item"
v-for=
"(item,index) in mixinDatacomResData"
:key=
"index"
@
click=
"change(item)"
>
<text
:class=
"
{'uni-select__selector__disabled': item.disable}">
{{
formatItemName
(
item
)
}}
</text>
</view>
</scroll-view>
</view>
</view>
</view>
</view>
</
template
>
<
script
>
/**
* DataChecklist 数据选择器
* @description 通过数据渲染的下拉框组件
* @tutorial https://uniapp.dcloud.io/component/uniui/uni-data-select
* @property {String} value 默认值
* @property {Array} localdata 本地数据 ,格式 [{text:'',value:''}]
* @property {Boolean} clear 是否可以清空已选项
* @property {Boolean} emptyText 没有数据时显示的文字 ,本地数据无效
* @property {String} label 左侧标题
* @property {String} placeholder 输入框的提示文字
* @property {Boolean} disabled 是否禁用
* @property {String} placement 弹出位置
* @value top 顶部弹出
* @value bottom 底部弹出(default)
* @event {Function} change 选中发生变化触发
*/
export
default
{
name
:
"uni-data-select"
,
mixins
:
[
uniCloud
.
mixinDatacom
||
{}],
props
:
{
localdata
:
{
type
:
Array
,
default
()
{
return
[]
}
},
value
:
{
type
:
[
String
,
Number
],
default
:
''
},
modelValue
:
{
type
:
[
String
,
Number
],
default
:
''
},
label
:
{
type
:
String
,
default
:
''
},
placeholder
:
{
type
:
String
,
default
:
'请选择'
},
emptyTips
:
{
type
:
String
,
default
:
'无选项'
},
clear
:
{
type
:
Boolean
,
default
:
true
},
defItem
:
{
type
:
Number
,
default
:
0
},
disabled
:
{
type
:
Boolean
,
default
:
false
},
// 格式化输出 用法 field="_id as value, version as text, uni_platform as label" format="{label} - {text}"
format
:
{
type
:
String
,
default
:
''
},
placement
:
{
type
:
String
,
default
:
'bottom'
}
},
data
()
{
return
{
showSelector
:
false
,
current
:
''
,
mixinDatacomResData
:
[],
apps
:
[],
channels
:
[],
cacheKey
:
"uni-data-select-lastSelectedValue"
,
};
},
created
()
{
this
.
debounceGet
=
this
.
debounce
(()
=>
{
this
.
query
();
},
300
);
if
(
this
.
collection
&&
!
this
.
localdata
.
length
)
{
this
.
debounceGet
();
}
},
computed
:
{
typePlaceholder
()
{
const
text
=
{
'opendb-stat-app-versions'
:
'版本'
,
'opendb-app-channels'
:
'渠道'
,
'opendb-app-list'
:
'应用'
}
const
common
=
this
.
placeholder
const
placeholder
=
text
[
this
.
collection
]
return
placeholder
?
common
+
placeholder
:
common
},
valueCom
()
{
// #ifdef VUE3
return
this
.
modelValue
;
// #endif
// #ifndef VUE3
return
this
.
value
;
// #endif
},
textShow
()
{
// 长文本显示
let
text
=
this
.
current
;
if
(
text
.
length
>
10
)
{
return
text
.
slice
(
0
,
25
)
+
'...'
;
}
return
text
;
},
getOffsetByPlacement
()
{
switch
(
this
.
placement
)
{
case
'top'
:
return
"bottom:calc(100% + 12px);"
;
case
'bottom'
:
return
"top:calc(100% + 12px);"
;
}
}
},
watch
:
{
localdata
:
{
immediate
:
true
,
handler
(
val
,
old
)
{
if
(
Array
.
isArray
(
val
)
&&
old
!==
val
)
{
this
.
mixinDatacomResData
=
val
}
}
},
valueCom
(
val
,
old
)
{
this
.
initDefVal
()
},
mixinDatacomResData
:
{
immediate
:
true
,
handler
(
val
)
{
if
(
val
.
length
)
{
this
.
initDefVal
()
}
}
},
},
methods
:
{
debounce
(
fn
,
time
=
100
)
{
let
timer
=
null
return
function
(...
args
)
{
if
(
timer
)
clearTimeout
(
timer
)
timer
=
setTimeout
(()
=>
{
fn
.
apply
(
this
,
args
)
},
time
)
}
},
// 执行数据库查询
query
()
{
this
.
mixinDatacomEasyGet
();
},
// 监听查询条件变更事件
onMixinDatacomPropsChange
()
{
if
(
this
.
collection
)
{
this
.
debounceGet
();
}
},
initDefVal
()
{
let
defValue
=
''
if
((
this
.
valueCom
||
this
.
valueCom
===
0
)
&&
!
this
.
isDisabled
(
this
.
valueCom
))
{
defValue
=
this
.
valueCom
}
else
{
let
strogeValue
if
(
this
.
collection
)
{
strogeValue
=
this
.
getCache
()
}
if
(
strogeValue
||
strogeValue
===
0
)
{
defValue
=
strogeValue
}
else
{
let
defItem
=
''
if
(
this
.
defItem
>
0
&&
this
.
defItem
<=
this
.
mixinDatacomResData
.
length
)
{
defItem
=
this
.
mixinDatacomResData
[
this
.
defItem
-
1
].
value
}
defValue
=
defItem
}
if
(
defValue
||
defValue
===
0
)
{
this
.
emit
(
defValue
)
}
}
const
def
=
this
.
mixinDatacomResData
.
find
(
item
=>
item
.
value
===
defValue
)
this
.
current
=
def
?
this
.
formatItemName
(
def
)
:
''
},
/**
* @param {[String, Number]} value
* 判断用户给的 value 是否同时为禁用状态
*/
isDisabled
(
value
)
{
let
isDisabled
=
false
;
this
.
mixinDatacomResData
.
forEach
(
item
=>
{
if
(
item
.
value
===
value
)
{
isDisabled
=
item
.
disable
}
})
return
isDisabled
;
},
clearVal
()
{
this
.
emit
(
''
)
if
(
this
.
collection
)
{
this
.
removeCache
()
}
},
change
(
item
)
{
if
(
!
item
.
disable
)
{
this
.
showSelector
=
false
this
.
current
=
this
.
formatItemName
(
item
)
this
.
emit
(
item
.
value
)
}
},
emit
(
val
)
{
this
.
$emit
(
'input'
,
val
)
this
.
$emit
(
'update:modelValue'
,
val
)
this
.
$emit
(
'change'
,
val
)
if
(
this
.
collection
)
{
this
.
setCache
(
val
);
}
},
toggleSelector
()
{
if
(
this
.
disabled
)
{
return
}
this
.
showSelector
=
!
this
.
showSelector
},
formatItemName
(
item
)
{
let
{
text
,
value
,
channel_code
}
=
item
channel_code
=
channel_code
?
`(
${
channel_code
}
)`
:
''
if
(
this
.
format
)
{
// 格式化输出
let
str
=
""
;
str
=
this
.
format
;
for
(
let
key
in
item
)
{
str
=
str
.
replace
(
new
RegExp
(
`{
${
key
}
}`
,
"g"
),
item
[
key
]);
}
return
str
;
}
else
{
return
this
.
collection
.
indexOf
(
'app-list'
)
>
0
?
`
${
text
}
(
${
value
}
)`
:
(
text
?
text
:
`未命名
${
channel_code
}
`
)
}
},
// 获取当前加载的数据
getLoadData
()
{
return
this
.
mixinDatacomResData
;
},
// 获取当前缓存key
getCurrentCacheKey
()
{
return
this
.
collection
;
},
// 获取缓存
getCache
(
name
=
this
.
getCurrentCacheKey
())
{
let
cacheData
=
uni
.
getStorageSync
(
this
.
cacheKey
)
||
{};
return
cacheData
[
name
];
},
// 设置缓存
setCache
(
value
,
name
=
this
.
getCurrentCacheKey
())
{
let
cacheData
=
uni
.
getStorageSync
(
this
.
cacheKey
)
||
{};
cacheData
[
name
]
=
value
;
uni
.
setStorageSync
(
this
.
cacheKey
,
cacheData
);
},
// 删除缓存
removeCache
(
name
=
this
.
getCurrentCacheKey
())
{
let
cacheData
=
uni
.
getStorageSync
(
this
.
cacheKey
)
||
{};
delete
cacheData
[
name
];
uni
.
setStorageSync
(
this
.
cacheKey
,
cacheData
);
},
}
}
</
script
>
<
style
lang=
"scss"
>
$uni-base-color
:
#6a6a6a
!
default
;
$uni-main-color
:
#333
!
default
;
$uni-secondary-color
:
#909399
!
default
;
$uni-border-3
:
#e5e5e5
;
/* #ifndef APP-NVUE */
@media
screen
and
(
max-width
:
500px
)
{
.hide-on-phone
{
display
:
none
;
}
}
/* #endif */
.uni-stat__select
{
display
:
flex
;
align-items
:
center
;
// padding: 15px;
/* #ifdef H5 */
cursor
:
pointer
;
/* #endif */
width
:
100%
;
flex
:
1
;
box-sizing
:
border-box
;
}
.uni-stat-box
{
width
:
100%
;
flex
:
1
;
}
.uni-stat__actived
{
width
:
100%
;
flex
:
1
;
// outline: 1px solid #2979ff;
}
.uni-label-text
{
font-size
:
14px
;
font-weight
:
bold
;
color
:
$uni-base-color
;
margin
:
auto
0
;
margin-right
:
5px
;
}
.uni-select
{
font-size
:
14px
;
border
:
1px
solid
$uni-border-3
;
box-sizing
:
border-box
;
border-radius
:
4px
;
padding
:
0
5px
;
padding-left
:
10px
;
position
:
relative
;
/* #ifndef APP-NVUE */
display
:
flex
;
user-select
:
none
;
/* #endif */
flex-direction
:
row
;
align-items
:
center
;
border-bottom
:
solid
1px
$uni-border-3
;
width
:
100%
;
flex
:
1
;
height
:
35px
;
&
--disabled
{
background-color
:
#f5f7fa
;
cursor
:
not
-
allowed
;
}
}
.uni-select__label
{
font-size
:
16px
;
// line-height: 22px;
height
:
35px
;
padding-right
:
10px
;
color
:
$uni-secondary-color
;
}
.uni-select__input-box
{
height
:
35px
;
position
:
relative
;
/* #ifndef APP-NVUE */
display
:
flex
;
/* #endif */
flex
:
1
;
flex-direction
:
row
;
align-items
:
center
;
}
.uni-select__input
{
flex
:
1
;
font-size
:
14px
;
height
:
22px
;
line-height
:
22px
;
}
.uni-select__input-plac
{
font-size
:
14px
;
color
:
$uni-secondary-color
;
}
.uni-select__selector
{
/* #ifndef APP-NVUE */
box-sizing
:
border-box
;
/* #endif */
position
:
absolute
;
left
:
0
;
width
:
100%
;
background-color
:
#FFFFFF
;
border
:
1px
solid
#EBEEF5
;
border-radius
:
6px
;
box-shadow
:
0
2px
12px
0
rgba
(
0
,
0
,
0
,
0
.1
);
z-index
:
3
;
padding
:
4px
0
;
}
.uni-select__selector-scroll
{
/* #ifndef APP-NVUE */
max-height
:
200px
;
box-sizing
:
border-box
;
/* #endif */
}
/* #ifdef H5 */
@media
(
min-width
:
768px
)
{
.uni-select__selector-scroll
{
max-height
:
600px
;
}
}
/* #endif */
.uni-select__selector-empty
,
.uni-select__selector-item
{
/* #ifndef APP-NVUE */
display
:
flex
;
cursor
:
pointer
;
/* #endif */
line-height
:
35px
;
font-size
:
14px
;
text-align
:
center
;
/* border-bottom: solid 1px $uni-border-3; */
padding
:
0px
10px
;
}
.uni-select__selector-item
:hover
{
background-color
:
#f9f9f9
;
}
.uni-select__selector-empty
:last-child
,
.uni-select__selector-item
:last-child
{
/* #ifndef APP-NVUE */
border-bottom
:
none
;
/* #endif */
}
.uni-select__selector__disabled
{
opacity
:
0
.4
;
cursor
:
default
;
}
/* picker 弹出层通用的指示小三角 */
.
uni-popper__arrow_bottom
,
.
uni-popper__arrow_bottom
:
:
after
,
.
uni-popper__arrow_top
,
.
uni-popper__arrow_top
::
after
,
{
position
:
absolute
;
display
:
block
;
width
:
0
;
height
:
0
;
border-color
:
transparent
;
border-style
:
solid
;
border-width
:
6px
;
}
.uni-popper__arrow_bottom
{
filter
:
drop-shadow
(
0
2px
12px
rgba
(
0
,
0
,
0
,
0
.03
));
top
:
-6px
;
left
:
10%
;
margin-right
:
3px
;
border-top-width
:
0
;
border-bottom-color
:
#EBEEF5
;
}
.
uni-popper__arrow_bottom
:
:
after
{
content
:
" "
;
top
:
1px
;
margin-left
:
-6px
;
border-top-width
:
0
;
border-bottom-color
:
#fff
;
}
.uni-popper__arrow_top
{
filter
:
drop-shadow
(
0
2px
12px
rgba
(
0
,
0
,
0
,
0
.03
));
bottom
:
-6px
;
left
:
10%
;
margin-right
:
3px
;
border-bottom-width
:
0
;
border-top-color
:
#EBEEF5
;
}
.
uni-popper__arrow_top
:
:
after
{
content
:
" "
;
bottom
:
1px
;
margin-left
:
-6px
;
border-bottom-width
:
0
;
border-top-color
:
#fff
;
}
.uni-select__input-text
{
// width: 280px;
width
:
100%
;
color
:
$uni-main-color
;
white-space
:
nowrap
;
text-overflow
:
ellipsis
;
-o-text-overflow
:
ellipsis
;
overflow
:
hidden
;
}
.uni-select__input-placeholder
{
color
:
$uni-base-color
;
font-size
:
12px
;
}
.uni-select--mask
{
position
:
fixed
;
top
:
0
;
bottom
:
0
;
right
:
0
;
left
:
0
;
z-index
:
2
;
}
</
style
>
uni_modules/uni-data-select/package.json
0 → 100644
View file @
430dc873
{
"id"
:
"uni-data-select"
,
"displayName"
:
"uni-data-select 下拉框选择器"
,
"version"
:
"1.0.8"
,
"description"
:
"通过数据驱动的下拉框选择器"
,
"keywords"
:
[
"uni-ui"
,
"select"
,
"uni-data-select"
,
"下拉框"
,
"下拉选"
],
"repository"
:
"https://github.com/dcloudio/uni-ui"
,
"engines"
:
{
"HBuilderX"
:
"^3.1.1"
},
"directories"
:
{
"example"
:
"../../temps/example_temps"
},
"dcloudext"
:
{
"sale"
:
{
"regular"
:
{
"price"
:
"0.00"
},
"sourcecode"
:
{
"price"
:
"0.00"
}
},
"contact"
:
{
"qq"
:
""
},
"declaration"
:
{
"ads"
:
"无"
,
"data"
:
"无"
,
"permissions"
:
"无"
},
"npmurl"
:
"https://www.npmjs.com/package/@dcloudio/uni-ui"
,
"type"
:
"component-vue"
},
"uni_modules"
:
{
"dependencies"
:
[
"uni-load-more"
],
"encrypt"
:
[],
"platforms"
:
{
"cloud"
:
{
"tcb"
:
"y"
,
"aliyun"
:
"y"
,
"alipay"
:
"n"
},
"client"
:
{
"App"
:
{
"app-vue"
:
"u"
,
"app-nvue"
:
"n"
},
"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"
,
"阿里"
:
"u"
,
"百度"
:
"u"
,
"字节跳动"
:
"u"
,
"QQ"
:
"u"
,
"京东"
:
"u"
},
"快应用"
:
{
"华为"
:
"u"
,
"联盟"
:
"u"
},
"Vue"
:
{
"vue2"
:
"y"
,
"vue3"
:
"y"
}
}
}
}
}
uni_modules/uni-data-select/readme.md
0 → 100644
View file @
430dc873
## DataSelect 下拉框选择器
> **组件名:uni-data-select**
> 代码块: `uDataSelect`
当选项过多时,使用下拉菜单展示并选择内容
### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-data-select)
#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment