Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
D
dataease
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
zhu
dataease
Commits
4d3324de
提交
4d3324de
authored
2月 08, 2022
作者:
fit2cloud-chenyw
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
refactor: 移动端仪表板详情外层布局
上级
253e4810
全部展开
隐藏空白字符变更
内嵌
并排
正在显示
33 个修改的文件
包含
2647 行增加
和
150 行删除
+2647
-150
uni-col.vue
mobile/src/components/uni-col/uni-col.vue
+317
-0
icons.js
mobile/src/components/uni-icons/icons.js
+0
-132
uni-icons.vue
mobile/src/components/uni-icons/uni-icons.vue
+0
-0
uni.ttf
mobile/src/components/uni-icons/uni.ttf
+0
-0
uni-row.vue
mobile/src/components/uni-row/uni-row.vue
+190
-0
detail.nvue
mobile/src/pages/tabBar/home/detail.nvue
+18
-18
changelog.md
mobile/src/uni_modules/uni-icons/changelog.md
+22
-0
icons.js
...e/src/uni_modules/uni-icons/components/uni-icons/icons.js
+0
-0
uni-icons.vue
.../uni_modules/uni-icons/components/uni-icons/uni-icons.vue
+96
-0
uniicons.css
...c/uni_modules/uni-icons/components/uni-icons/uniicons.css
+663
-0
uniicons.ttf
...c/uni_modules/uni-icons/components/uni-icons/uniicons.ttf
+0
-0
package.json
mobile/src/uni_modules/uni-icons/package.json
+87
-0
readme.md
mobile/src/uni_modules/uni-icons/readme.md
+8
-0
changelog.md
mobile/src/uni_modules/uni-nav-bar/changelog.md
+37
-0
uni-nav-bar.vue
...odules/uni-nav-bar/components/uni-nav-bar/uni-nav-bar.vue
+343
-0
uni-status-bar.vue
...les/uni-nav-bar/components/uni-nav-bar/uni-status-bar.vue
+27
-0
package.json
mobile/src/uni_modules/uni-nav-bar/package.json
+90
-0
readme.md
mobile/src/uni_modules/uni-nav-bar/readme.md
+15
-0
changelog.md
mobile/src/uni_modules/uni-scss/changelog.md
+8
-0
index.scss
mobile/src/uni_modules/uni-scss/index.scss
+1
-0
package.json
mobile/src/uni_modules/uni-scss/package.json
+82
-0
readme.md
mobile/src/uni_modules/uni-scss/readme.md
+5
-0
index.scss
mobile/src/uni_modules/uni-scss/styles/index.scss
+7
-0
_border.scss
mobile/src/uni_modules/uni-scss/styles/setting/_border.scss
+4
-0
_color.scss
mobile/src/uni_modules/uni-scss/styles/setting/_color.scss
+66
-0
_radius.scss
mobile/src/uni_modules/uni-scss/styles/setting/_radius.scss
+55
-0
_space.scss
mobile/src/uni_modules/uni-scss/styles/setting/_space.scss
+57
-0
_styles.scss
mobile/src/uni_modules/uni-scss/styles/setting/_styles.scss
+167
-0
_text.scss
mobile/src/uni_modules/uni-scss/styles/setting/_text.scss
+24
-0
_variables.scss
...e/src/uni_modules/uni-scss/styles/setting/_variables.scss
+146
-0
functions.scss
mobile/src/uni_modules/uni-scss/styles/tools/functions.scss
+19
-0
theme.scss
mobile/src/uni_modules/uni-scss/theme.scss
+31
-0
variables.scss
mobile/src/uni_modules/uni-scss/variables.scss
+62
-0
没有找到文件。
mobile/src/components/uni-col/uni-col.vue
0 → 100644
浏览文件 @
4d3324de
<
template
>
<!-- #ifndef APP-NVUE -->
<view
:class=
"['uni-col', sizeClass, pointClassList]"
:style=
"
{
paddingLeft:`${Number(gutter)}rpx`,
paddingRight:`${Number(gutter)}rpx`,
}">
<slot></slot>
</view>
<!-- #endif -->
<!-- #ifdef APP-NVUE -->
<!-- 在nvue上,类名样式不生效,换为style -->
<!-- 设置right正值失效,设置 left 负值 -->
<view
:class=
"['uni-col']"
:style=
"
{
paddingLeft:`${Number(gutter)}rpx`,
paddingRight:`${Number(gutter)}rpx`,
width:`${nvueWidth}rpx`,
position:'relative',
marginLeft:`${marginLeft}rpx`,
left:`${right === 0 ? left : -right}rpx`
}">
<slot></slot>
</view>
<!-- #endif -->
</
template
>
<
script
>
/**
* Col 布局-列
* @description 搭配uni-row使用,构建布局。
* @tutorial https://ext.dcloud.net.cn/plugin?id=3958
*
* @property {span} type = Number 栅格占据的列数
* 默认 24
* @property {offset} type = Number 栅格左侧的间隔格数
* @property {push} type = Number 栅格向右移动格数
* @property {pull} type = Number 栅格向左移动格数
* @property {xs} type = [Number, Object] <768px 响应式栅格数或者栅格属性对象
* @description Number时表示在此屏幕宽度下,栅格占据的列数。Object时可配置多个描述{span: 4, offset: 4}
* @property {sm} type = [Number, Object] ≥768px 响应式栅格数或者栅格属性对象
* @description Number时表示在此屏幕宽度下,栅格占据的列数。Object时可配置多个描述{span: 4, offset: 4}
* @property {md} type = [Number, Object] ≥992px 响应式栅格数或者栅格属性对象
* @description Number时表示在此屏幕宽度下,栅格占据的列数。Object时可配置多个描述{span: 4, offset: 4}
* @property {lg} type = [Number, Object] ≥1200px 响应式栅格数或者栅格属性对象
* @description Number时表示在此屏幕宽度下,栅格占据的列数。Object时可配置多个描述{span: 4, offset: 4}
* @property {xl} type = [Number, Object] ≥1920px 响应式栅格数或者栅格属性对象
* @description Number时表示在此屏幕宽度下,栅格占据的列数。Object时可配置多个描述{span: 4, offset: 4}
*/
const
ComponentClass
=
'uni-col'
;
// -1 默认值,因为在微信小程序端只给Number会有默认值0
export
default
{
name
:
'uniCol'
,
// #ifdef MP-WEIXIN
options
:
{
virtualHost
:
true
// 在微信小程序中将组件节点渲染为虚拟节点,更加接近Vue组件的表现
},
// #endif
props
:
{
span
:
{
type
:
Number
,
default
:
24
},
offset
:
{
type
:
Number
,
default
:
-
1
},
pull
:
{
type
:
Number
,
default
:
-
1
},
push
:
{
type
:
Number
,
default
:
-
1
},
xs
:
[
Number
,
Object
],
sm
:
[
Number
,
Object
],
md
:
[
Number
,
Object
],
lg
:
[
Number
,
Object
],
xl
:
[
Number
,
Object
]
},
data
()
{
return
{
gutter
:
0
,
sizeClass
:
''
,
parentWidth
:
0
,
nvueWidth
:
0
,
marginLeft
:
0
,
right
:
0
,
left
:
0
}
},
created
()
{
// 字节小程序中,在computed中读取$parent为undefined
let
parent
=
this
.
$parent
;
while
(
parent
&&
parent
.
$options
.
componentName
!==
'uniRow'
)
{
parent
=
parent
.
$parent
;
}
this
.
updateGutter
(
parent
.
gutter
)
parent
.
$watch
(
'gutter'
,
(
gutter
)
=>
{
this
.
updateGutter
(
gutter
)
})
// #ifdef APP-NVUE
this
.
updateNvueWidth
(
parent
.
width
)
parent
.
$watch
(
'width'
,
(
width
)
=>
{
this
.
updateNvueWidth
(
width
)
})
// #endif
},
computed
:
{
sizeList
()
{
let
{
span
,
offset
,
pull
,
push
}
=
this
;
return
{
span
,
offset
,
pull
,
push
}
},
// #ifndef APP-NVUE
pointClassList
()
{
let
classList
=
[];
[
'xs'
,
'sm'
,
'md'
,
'lg'
,
'xl'
].
forEach
(
point
=>
{
const
props
=
this
[
point
];
if
(
typeof
props
===
'number'
)
{
classList
.
push
(
`
${
ComponentClass
}
-
${
point
}
-
${
props
}
`
)
}
else
if
(
typeof
props
===
'object'
&&
props
)
{
Object
.
keys
(
props
).
forEach
(
pointProp
=>
{
classList
.
push
(
pointProp
===
'span'
?
`
${
ComponentClass
}
-
${
point
}
-
${
props
[
pointProp
]}
`
:
`
${
ComponentClass
}
-
${
point
}
-
${
pointProp
}
-
${
props
[
pointProp
]}
`
)
})
}
});
// 支付宝小程序使用 :class=[ ['a','b'] ],渲染错误
return
classList
.
join
(
' '
);
}
// #endif
},
methods
:
{
updateGutter
(
parentGutter
)
{
parentGutter
=
Number
(
parentGutter
);
if
(
!
isNaN
(
parentGutter
))
{
this
.
gutter
=
parentGutter
/
2
}
},
// #ifdef APP-NVUE
updateNvueWidth
(
width
)
{
// 用于在nvue端,span,offset,pull,push的计算
this
.
parentWidth
=
width
;
[
'span'
,
'offset'
,
'pull'
,
'push'
].
forEach
(
size
=>
{
const
curSize
=
this
[
size
];
if
((
curSize
||
curSize
===
0
)
&&
curSize
!==
-
1
)
{
let
RPX
=
1
/
24
*
curSize
*
width
RPX
=
Number
(
RPX
);
switch
(
size
)
{
case
'span'
:
this
.
nvueWidth
=
RPX
break
;
case
'offset'
:
this
.
marginLeft
=
RPX
break
;
case
'pull'
:
this
.
right
=
RPX
break
;
case
'push'
:
this
.
left
=
RPX
break
;
}
}
});
}
// #endif
},
watch
:
{
sizeList
:
{
immediate
:
true
,
handler
(
newVal
)
{
// #ifndef APP-NVUE
let
classList
=
[];
for
(
let
size
in
newVal
)
{
const
curSize
=
newVal
[
size
];
if
((
curSize
||
curSize
===
0
)
&&
curSize
!==
-
1
)
{
classList
.
push
(
size
===
'span'
?
`
${
ComponentClass
}
-
${
curSize
}
`
:
`
${
ComponentClass
}
-
${
size
}
-
${
curSize
}
`
)
}
}
// 支付宝小程序使用 :class=[ ['a','b'] ],渲染错误
this
.
sizeClass
=
classList
.
join
(
' '
);
// #endif
// #ifdef APP-NVUE
this
.
updateNvueWidth
(
this
.
parentWidth
);
// #endif
}
}
}
}
</
script
>
<
style
lang=
'scss'
scoped
>
/* breakpoints */
$--sm
:
768px
!
default
;
$--md
:
992px
!
default
;
$--lg
:
1200px
!
default
;
$--xl
:
1920px
!
default
;
$breakpoints
:
(
'xs'
:
(
max-width
:
$--sm
-
1
)
,
'sm'
:
(
min-width
:
$--sm
)
,
'md'
:
(
min-width
:
$--md
)
,
'lg'
:
(
min-width
:
$--lg
)
,
'xl'
:
(
min-width
:
$--xl
));
$layout-namespace
:
".uni-"
;
$col
:
$layout-namespace
+
"col"
;
@function
getSize
(
$size
)
{
/* TODO 1/24 * $size * 100 * 1%; 使用计算后的值,为了解决 vue3 控制台报错 */
@return
0
.04166666666
*
$size
*
100
*
1%
;
}
@mixin
res
(
$key
,
$map
:
$breakpoints
)
{
@if
map-has-key
(
$map
,
$key
)
{
@media
screen
and
#{
inspect
(
map-get
(
$map
,
$key
))
}
{
@content
;
}
}
@else
{
@warn
"Undeinfed point: `
#{
$key
}
`"
;
}
}
/* #ifndef APP-NVUE */
#{
$col
}
{
float
:
left
;
box-sizing
:
border-box
;
}
#{
$col
}
-0
{
/* #ifdef APP-NVUE */
width
:
0
;
height
:
0
;
margin-top
:
0
;
margin-right
:
0
;
margin-bottom
:
0
;
margin-left
:
0
;
/* #endif */
/* #ifndef APP-NVUE */
display
:
none
;
/* #endif */
}
@for
$i
from
0
through
24
{
#{
$col
}
-
#{
$i
}
{
width
:
getSize
(
$i
);
}
#{
$col
}
-offset-
#{
$i
}
{
margin-left
:
getSize
(
$i
);
}
#{
$col
}
-pull-
#{
$i
}
{
position
:
relative
;
right
:
getSize
(
$i
);
}
#{
$col
}
-push-
#{
$i
}
{
position
:
relative
;
left
:
getSize
(
$i
);
}
}
@each
$point
in
map-keys
(
$breakpoints
)
{
@include
res
(
$point
)
{
#{
$col
}
-
#{
$point
}
-0
{
display
:
none
;
}
@for
$i
from
0
through
24
{
#{
$col
}
-
#{
$point
}
-
#{
$i
}
{
width
:
getSize
(
$i
);
}
#{
$col
}
-
#{
$point
}
-offset-
#{
$i
}
{
margin-left
:
getSize
(
$i
);
}
#{
$col
}
-
#{
$point
}
-pull-
#{
$i
}
{
position
:
relative
;
right
:
getSize
(
$i
);
}
#{
$col
}
-
#{
$point
}
-push-
#{
$i
}
{
position
:
relative
;
left
:
getSize
(
$i
);
}
}
}
}
/* #endif */
</
style
>
mobile/src/components/uni-icons/icons.js
deleted
100644 → 0
浏览文件 @
253e4810
export
default
{
"pulldown"
:
"
\
ue588"
,
"refreshempty"
:
"
\
ue461"
,
"back"
:
"
\
ue471"
,
"forward"
:
"
\
ue470"
,
"more"
:
"
\
ue507"
,
"more-filled"
:
"
\
ue537"
,
"scan"
:
"
\
ue612"
,
"qq"
:
"
\
ue264"
,
"weibo"
:
"
\
ue260"
,
"weixin"
:
"
\
ue261"
,
"pengyouquan"
:
"
\
ue262"
,
"loop"
:
"
\
ue565"
,
"refresh"
:
"
\
ue407"
,
"refresh-filled"
:
"
\
ue437"
,
"arrowthindown"
:
"
\
ue585"
,
"arrowthinleft"
:
"
\
ue586"
,
"arrowthinright"
:
"
\
ue587"
,
"arrowthinup"
:
"
\
ue584"
,
"undo-filled"
:
"
\
ue7d6"
,
"undo"
:
"
\
ue406"
,
"redo"
:
"
\
ue405"
,
"redo-filled"
:
"
\
ue7d9"
,
"bars"
:
"
\
ue563"
,
"chatboxes"
:
"
\
ue203"
,
"camera"
:
"
\
ue301"
,
"chatboxes-filled"
:
"
\
ue233"
,
"camera-filled"
:
"
\
ue7ef"
,
"cart-filled"
:
"
\
ue7f4"
,
"cart"
:
"
\
ue7f5"
,
"checkbox-filled"
:
"
\
ue442"
,
"checkbox"
:
"
\
ue7fa"
,
"arrowleft"
:
"
\
ue582"
,
"arrowdown"
:
"
\
ue581"
,
"arrowright"
:
"
\
ue583"
,
"smallcircle-filled"
:
"
\
ue801"
,
"arrowup"
:
"
\
ue580"
,
"circle"
:
"
\
ue411"
,
"eye-filled"
:
"
\
ue568"
,
"eye-slash-filled"
:
"
\
ue822"
,
"eye-slash"
:
"
\
ue823"
,
"eye"
:
"
\
ue824"
,
"flag-filled"
:
"
\
ue825"
,
"flag"
:
"
\
ue508"
,
"gear-filled"
:
"
\
ue532"
,
"reload"
:
"
\
ue462"
,
"gear"
:
"
\
ue502"
,
"hand-thumbsdown-filled"
:
"
\
ue83b"
,
"hand-thumbsdown"
:
"
\
ue83c"
,
"hand-thumbsup-filled"
:
"
\
ue83d"
,
"heart-filled"
:
"
\
ue83e"
,
"hand-thumbsup"
:
"
\
ue83f"
,
"heart"
:
"
\
ue840"
,
"home"
:
"
\
ue500"
,
"info"
:
"
\
ue504"
,
"home-filled"
:
"
\
ue530"
,
"info-filled"
:
"
\
ue534"
,
"circle-filled"
:
"
\
ue441"
,
"chat-filled"
:
"
\
ue847"
,
"chat"
:
"
\
ue263"
,
"mail-open-filled"
:
"
\
ue84d"
,
"email-filled"
:
"
\
ue231"
,
"mail-open"
:
"
\
ue84e"
,
"email"
:
"
\
ue201"
,
"checkmarkempty"
:
"
\
ue472"
,
"list"
:
"
\
ue562"
,
"locked-filled"
:
"
\
ue856"
,
"locked"
:
"
\
ue506"
,
"map-filled"
:
"
\
ue85c"
,
"map-pin"
:
"
\
ue85e"
,
"map-pin-ellipse"
:
"
\
ue864"
,
"map"
:
"
\
ue364"
,
"minus-filled"
:
"
\
ue440"
,
"mic-filled"
:
"
\
ue332"
,
"minus"
:
"
\
ue410"
,
"micoff"
:
"
\
ue360"
,
"mic"
:
"
\
ue302"
,
"clear"
:
"
\
ue434"
,
"smallcircle"
:
"
\
ue868"
,
"close"
:
"
\
ue404"
,
"closeempty"
:
"
\
ue460"
,
"paperclip"
:
"
\
ue567"
,
"paperplane"
:
"
\
ue503"
,
"paperplane-filled"
:
"
\
ue86e"
,
"person-filled"
:
"
\
ue131"
,
"contact-filled"
:
"
\
ue130"
,
"person"
:
"
\
ue101"
,
"contact"
:
"
\
ue100"
,
"images-filled"
:
"
\
ue87a"
,
"phone"
:
"
\
ue200"
,
"images"
:
"
\
ue87b"
,
"image"
:
"
\
ue363"
,
"image-filled"
:
"
\
ue877"
,
"location-filled"
:
"
\
ue333"
,
"location"
:
"
\
ue303"
,
"plus-filled"
:
"
\
ue439"
,
"plus"
:
"
\
ue409"
,
"plusempty"
:
"
\
ue468"
,
"help-filled"
:
"
\
ue535"
,
"help"
:
"
\
ue505"
,
"navigate-filled"
:
"
\
ue884"
,
"navigate"
:
"
\
ue501"
,
"mic-slash-filled"
:
"
\
ue892"
,
"search"
:
"
\
ue466"
,
"settings"
:
"
\
ue560"
,
"sound"
:
"
\
ue590"
,
"sound-filled"
:
"
\
ue8a1"
,
"spinner-cycle"
:
"
\
ue465"
,
"download-filled"
:
"
\
ue8a4"
,
"personadd-filled"
:
"
\
ue132"
,
"videocam-filled"
:
"
\
ue8af"
,
"personadd"
:
"
\
ue102"
,
"upload"
:
"
\
ue402"
,
"upload-filled"
:
"
\
ue8b1"
,
"starhalf"
:
"
\
ue463"
,
"star-filled"
:
"
\
ue438"
,
"star"
:
"
\
ue408"
,
"trash"
:
"
\
ue401"
,
"phone-filled"
:
"
\
ue230"
,
"compose"
:
"
\
ue400"
,
"videocam"
:
"
\
ue300"
,
"trash-filled"
:
"
\
ue8dc"
,
"download"
:
"
\
ue403"
,
"chatbubble-filled"
:
"
\
ue232"
,
"chatbubble"
:
"
\
ue202"
,
"cloud-download"
:
"
\
ue8e4"
,
"cloud-upload-filled"
:
"
\
ue8e5"
,
"cloud-upload"
:
"
\
ue8e6"
,
"cloud-download-filled"
:
"
\
ue8e9"
,
"headphones"
:
"
\
ue8bf"
,
"shop"
:
"
\
ue609"
}
mobile/src/components/uni-icons/uni-icons.vue
deleted
100644 → 0
浏览文件 @
253e4810
差异被折叠。
点击展开。
mobile/src/components/uni-icons/uni.ttf
deleted
100644 → 0
浏览文件 @
253e4810
File deleted
mobile/src/components/uni-row/uni-row.vue
0 → 100644
浏览文件 @
4d3324de
<
template
>
<view
:class=
"[ 'uni-row', typeClass , justifyClass, alignClass, ]"
:style=
"
{
marginLeft:`${Number(marginValue)}rpx`,
marginRight:`${Number(marginValue)}rpx`,
}">
<slot></slot>
</view>
</
template
>
<
script
>
const
ComponentClass
=
'uni-row'
;
const
modifierSeparator
=
'--'
;
/**
* Row 布局-行
* @description 流式栅格系统,随着屏幕或视口分为 24 份,可以迅速简便地创建布局。
* @tutorial https://ext.dcloud.net.cn/plugin?id=3958
*
* @property {gutter} type = Number 栅格间隔
* @property {justify} type = String flex 布局下的水平排列方式
* 可选 start/end/center/space-around/space-between start
* 默认值 start
* @property {align} type = String flex 布局下的垂直排列方式
* 可选 top/middle/bottom
* 默认值 top
* @property {width} type = String|Number nvue下需要自行配置宽度用于计算
* 默认值 750
*/
export
default
{
name
:
'uniRow'
,
componentName
:
'uniRow'
,
// #ifdef MP-WEIXIN
options
:
{
virtualHost
:
true
// 在微信小程序中将组件节点渲染为虚拟节点,更加接近Vue组件的表现,可使用flex布局
},
// #endif
props
:
{
type
:
String
,
gutter
:
Number
,
justify
:
{
type
:
String
,
default
:
'start'
},
align
:
{
type
:
String
,
default
:
'top'
},
// nvue如果使用span等属性,需要配置宽度
width
:
{
type
:
[
String
,
Number
],
default
:
750
}
},
created
()
{
// #ifdef APP-NVUE
this
.
type
=
'flex'
;
// #endif
},
computed
:
{
marginValue
()
{
// #ifndef APP-NVUE
if
(
this
.
gutter
)
{
return
-
(
this
.
gutter
/
2
);
}
// #endif
return
0
;
},
typeClass
()
{
return
this
.
type
===
'flex'
?
`
${
ComponentClass
+
modifierSeparator
}
flex`
:
''
;
},
justifyClass
()
{
return
this
.
justify
!==
'start'
?
`
${
ComponentClass
+
modifierSeparator
}
flex-justify-
${
this
.
justify
}
`
:
''
},
alignClass
()
{
return
this
.
align
!==
'top'
?
`
${
ComponentClass
+
modifierSeparator
}
flex-align-
${
this
.
align
}
`
:
''
}
}
};
</
script
>
<
style
lang=
"scss"
>
$layout-namespace
:
".uni-"
;
$row
:
$layout-namespace
+
"row"
;
$modifier-separator
:
"--"
;
@mixin
utils-clearfix
{
$selector
:
&
;
@at-root
{
/* #ifndef APP-NVUE */
#{
$selector
}
::before
,
#{
$selector
}
::after
{
display
:
table
;
content
:
""
;
}
#{
$selector
}
::after
{
clear
:
both
;
}
/* #endif */
}
}
@mixin
utils-flex
(
$direction
:
row
)
{
/* #ifndef APP-NVUE */
display
:
flex
;
/* #endif */
flex-direction
:
$direction
;
}
@mixin
set-flex
(
$state
)
{
@at-root
&
-
#{
$state
}
{
@content
}
}
#{
$row
}
{
position
:
relative
;
flex-direction
:
row
;
/* #ifdef APP-NVUE */
flex
:
1
;
/* #endif */
/* #ifndef APP-NVUE */
box-sizing
:
border-box
;
/* #endif */
// 非nvue使用float布局
@include
utils-clearfix
;
// 在QQ、字节、百度小程序平台,编译后使用shadow dom,不可使用flex布局,使用float
@at-root
{
/* #ifndef MP-QQ || MP-TOUTIAO || MP-BAIDU */
&
#{
$modifier-separator
}
flex
{
@include
utils-flex
;
flex-wrap
:
wrap
;
flex
:
1
;
&
:before
,
&
:after
{
/* #ifndef APP-NVUE */
display
:
none
;
/* #endif */
}
@include
set-flex
(
justify-center
)
{
justify-content
:
center
;
}
@include
set-flex
(
justify-end
)
{
justify-content
:
flex-end
;
}
@include
set-flex
(
justify-space-between
)
{
justify-content
:
space-between
;
}
@include
set-flex
(
justify-space-around
)
{
justify-content
:
space-around
;
}
@include
set-flex
(
align-middle
)
{
align-items
:
center
;
}
@include
set-flex
(
align-bottom
)
{
align-items
:
flex-end
;
}
}
/* #endif */
}
}
// 字节、QQ配置后不生效
// 此处用法无法使用scoped
/* #ifdef MP-WEIXIN || MP-TOUTIAO || MP-QQ */
:host
{
display
:
block
;
}
/* #endif */
</
style
>
mobile/src/pages/tabBar/home/detail.nvue
浏览文件 @
4d3324de
<template>
<view class="page dataease-main">
<uni-list>
<uni-list-item class="person-title" :title="banner.title" />
</uni-list>
<uni-nav-bar :title="banner.title" >
<view slot="right">
<uni-row class="demo-uni-row" >
<uni-col :span="12" @click="enshrine">
<uni-icons v-if="hasStar" type="star-filled" size="18" color="#007AFF"></uni-icons>
<uni-icons v-else type="star" size="18" color="#999"></uni-icons>
</uni-col>
<uni-col :span="12" @click="refresh" style="margin: 0 10rpx;">
<uni-icons type="reload" size="18" color="#999"></uni-icons>
</uni-col>
</uni-row>
</view>
</uni-nav-bar>
<view class="article-content">
<view v-if="url">
<web-view
...
...
@@ -17,19 +29,7 @@
<ad v-if="htmlNodes.length > 0" unit-id="adunit-01b7a010bf53d74e"></ad>
<!-- #endif -->
<view class="card-actions">
<view v-if="banner.index === 2" class="card-actions-item">
</view>
<view v-else class="card-actions-item" @click="enshrine">
<uni-icons v-if="hasStar" type="star-filled" size="18" color="#007AFF"></uni-icons>
<uni-icons v-else type="star" size="18" color="#999"></uni-icons>
</view>
<view class="card-actions-item" @click="refresh">
<uni-icons type="reload" size="18" color="#999"></uni-icons>
</view>
</view>
</view>
</template>
...
...
@@ -271,7 +271,7 @@
}
.article-content {
height:
calc(100vh - 110px)
;
height:
100vh
;
margin: 5px 0;
background: #ffffff;
}
...
...
mobile/src/uni_modules/uni-icons/changelog.md
0 → 100644
浏览文件 @
4d3324de
## 1.3.5(2022-01-24)
-
优化 size 属性可以传入不带单位的字符串数值
## 1.3.4(2022-01-24)
-
优化 size 支持其他单位
## 1.3.3(2022-01-17)
-
修复 nvue 有些图标不显示的bug,兼容老版本图标
## 1.3.2(2021-12-01)
-
优化 示例可复制图标名称
## 1.3.1(2021-11-23)
-
优化 兼容旧组件 type 值
## 1.3.0(2021-11-19)
-
新增 更多图标
-
优化 自定义图标使用方式
-
优化 组件UI,并提供设计资源,详见:
[
https://uniapp.dcloud.io/component/uniui/resource
](
https://uniapp.dcloud.io/component/uniui/resource
)
-
文档迁移,详见:
[
https://uniapp.dcloud.io/component/uniui/uni-icons
](
https://uniapp.dcloud.io/component/uniui/uni-icons
)
## 1.1.7(2021-11-08)
## 1.2.0(2021-07-30)
-
组件兼容 vue3,如何创建vue3项目,详见
[
uni-app 项目支持 vue3 介绍
](
https://ask.dcloud.net.cn/article/37834
)
## 1.1.5(2021-05-12)
-
新增 组件示例地址
## 1.1.4(2021-02-05)
-
调整为uni_modules目录规范
mobile/src/uni_modules/uni-icons/components/uni-icons/icons.js
0 → 100644
浏览文件 @
4d3324de
差异被折叠。
点击展开。
mobile/src/uni_modules/uni-icons/components/uni-icons/uni-icons.vue
0 → 100644
浏览文件 @
4d3324de
<
template
>
<!-- #ifdef APP-NVUE -->
<text
:style=
"
{ color: color, 'font-size': iconSize }" class="uni-icons" @click="_onClick">
{{
unicode
}}
</text>
<!-- #endif -->
<!-- #ifndef APP-NVUE -->
<text
:style=
"
{ color: color, 'font-size': iconSize }" class="uni-icons" :class="['uniui-'+type,customPrefix,customPrefix?type:'']" @click="_onClick">
</text>
<!-- #endif -->
</
template
>
<
script
>
import
icons
from
'./icons.js'
;
const
getVal
=
(
val
)
=>
{
const
reg
=
/^
[
0-9
]
*$/g
return
(
typeof
val
===
'number'
||
reg
.
test
(
val
)
)?
val
+
'px'
:
val
;
}
// #ifdef APP-NVUE
var
domModule
=
weex
.
requireModule
(
'dom'
);
import
iconUrl
from
'./uniicons.ttf'
domModule
.
addRule
(
'fontFace'
,
{
'fontFamily'
:
"uniicons"
,
'src'
:
"url('"
+
iconUrl
+
"')"
});
// #endif
/**
* Icons 图标
* @description 用于展示 icons 图标
* @tutorial https://ext.dcloud.net.cn/plugin?id=28
* @property {Number} size 图标大小
* @property {String} type 图标图案,参考示例
* @property {String} color 图标颜色
* @property {String} customPrefix 自定义图标
* @event {Function} click 点击 Icon 触发事件
*/
export
default
{
name
:
'UniIcons'
,
emits
:[
'click'
],
props
:
{
type
:
{
type
:
String
,
default
:
''
},
color
:
{
type
:
String
,
default
:
'#333333'
},
size
:
{
type
:
[
Number
,
String
],
default
:
16
},
customPrefix
:{
type
:
String
,
default
:
''
}
},
data
()
{
return
{
icons
:
icons
.
glyphs
}
},
computed
:{
unicode
(){
let
code
=
this
.
icons
.
find
(
v
=>
v
.
font_class
===
this
.
type
)
if
(
code
){
return
unescape
(
`%u
${
code
.
unicode
}
`
)
}
return
''
},
iconSize
(){
return
getVal
(
this
.
size
)
}
},
methods
:
{
_onClick
()
{
this
.
$emit
(
'click'
)
}
}
}
</
script
>
<
style
lang=
"scss"
>
/* #ifndef APP-NVUE */
@import
'./uniicons.css'
;
@font-face
{
font-family
:
uniicons
;
src
:
url('./uniicons.ttf')
format
(
'truetype'
);
}
/* #endif */
.uni-icons
{
font-family
:
uniicons
;
text-decoration
:
none
;
text-align
:
center
;
}
</
style
>
mobile/src/uni_modules/uni-icons/components/uni-icons/uniicons.css
0 → 100644
浏览文件 @
4d3324de
.uniui-color
:before
{
content
:
"\e6cf"
;
}
.uniui-wallet
:before
{
content
:
"\e6b1"
;
}
.uniui-settings-filled
:before
{
content
:
"\e6ce"
;
}
.uniui-auth-filled
:before
{
content
:
"\e6cc"
;
}
.uniui-shop-filled
:before
{
content
:
"\e6cd"
;
}
.uniui-staff-filled
:before
{
content
:
"\e6cb"
;
}
.uniui-vip-filled
:before
{
content
:
"\e6c6"
;
}
.uniui-plus-filled
:before
{
content
:
"\e6c7"
;
}
.uniui-folder-add-filled
:before
{
content
:
"\e6c8"
;
}
.uniui-color-filled
:before
{
content
:
"\e6c9"
;
}
.uniui-tune-filled
:before
{
content
:
"\e6ca"
;
}
.uniui-calendar-filled
:before
{
content
:
"\e6c0"
;
}
.uniui-notification-filled
:before
{
content
:
"\e6c1"
;
}
.uniui-wallet-filled
:before
{
content
:
"\e6c2"
;
}
.uniui-medal-filled
:before
{
content
:
"\e6c3"
;
}
.uniui-gift-filled
:before
{
content
:
"\e6c4"
;
}
.uniui-fire-filled
:before
{
content
:
"\e6c5"
;
}
.uniui-refreshempty
:before
{
content
:
"\e6bf"
;
}
.uniui-location-filled
:before
{
content
:
"\e6af"
;
}
.uniui-person-filled
:before
{
content
:
"\e69d"
;
}
.uniui-personadd-filled
:before
{
content
:
"\e698"
;
}
.uniui-back
:before
{
content
:
"\e6b9"
;
}
.uniui-forward
:before
{
content
:
"\e6ba"
;
}
.uniui-arrow-right
:before
{
content
:
"\e6bb"
;
}
.uniui-arrowthinright
:before
{
content
:
"\e6bb"
;
}
.uniui-arrow-left
:before
{
content
:
"\e6bc"
;
}
.uniui-arrowthinleft
:before
{
content
:
"\e6bc"
;
}
.uniui-arrow-up
:before
{
content
:
"\e6bd"
;
}
.uniui-arrowthinup
:before
{
content
:
"\e6bd"
;
}
.uniui-arrow-down
:before
{
content
:
"\e6be"
;
}
.uniui-arrowthindown
:before
{
content
:
"\e6be"
;
}
.uniui-bottom
:before
{
content
:
"\e6b8"
;
}
.uniui-arrowdown
:before
{
content
:
"\e6b8"
;
}
.uniui-right
:before
{
content
:
"\e6b5"
;
}
.uniui-arrowright
:before
{
content
:
"\e6b5"
;
}
.uniui-top
:before
{
content
:
"\e6b6"
;
}
.uniui-arrowup
:before
{
content
:
"\e6b6"
;
}
.uniui-left
:before
{
content
:
"\e6b7"
;
}
.uniui-arrowleft
:before
{
content
:
"\e6b7"
;
}
.uniui-eye
:before
{
content
:
"\e651"
;
}
.uniui-eye-filled
:before
{
content
:
"\e66a"
;
}
.uniui-eye-slash
:before
{
content
:
"\e6b3"
;
}
.uniui-eye-slash-filled
:before
{
content
:
"\e6b4"
;
}
.uniui-info-filled
:before
{
content
:
"\e649"
;
}
.uniui-reload
:before
{
content
:
"\e6b2"
;
}
.uniui-micoff-filled
:before
{
content
:
"\e6b0"
;
}
.uniui-map-pin-ellipse
:before
{
content
:
"\e6ac"
;
}
.uniui-map-pin
:before
{
content
:
"\e6ad"
;
}
.uniui-location
:before
{
content
:
"\e6ae"
;
}
.uniui-starhalf
:before
{
content
:
"\e683"
;
}
.uniui-star
:before
{
content
:
"\e688"
;
}
.uniui-star-filled
:before
{
content
:
"\e68f"
;
}
.uniui-calendar
:before
{
content
:
"\e6a0"
;
}
.uniui-fire
:before
{
content
:
"\e6a1"
;
}
.uniui-medal
:before
{
content
:
"\e6a2"
;
}
.uniui-font
:before
{
content
:
"\e6a3"
;
}
.uniui-gift
:before
{
content
:
"\e6a4"
;
}
.uniui-link
:before
{
content
:
"\e6a5"
;
}
.uniui-notification
:before
{
content
:
"\e6a6"
;
}
.uniui-staff
:before
{
content
:
"\e6a7"
;
}
.uniui-vip
:before
{
content
:
"\e6a8"
;
}
.uniui-folder-add
:before
{
content
:
"\e6a9"
;
}
.uniui-tune
:before
{
content
:
"\e6aa"
;
}
.uniui-auth
:before
{
content
:
"\e6ab"
;
}
.uniui-person
:before
{
content
:
"\e699"
;
}
.uniui-email-filled
:before
{
content
:
"\e69a"
;
}
.uniui-phone-filled
:before
{
content
:
"\e69b"
;
}
.uniui-phone
:before
{
content
:
"\e69c"
;
}
.uniui-email
:before
{
content
:
"\e69e"
;
}
.uniui-personadd
:before
{
content
:
"\e69f"
;
}
.uniui-chatboxes-filled
:before
{
content
:
"\e692"
;
}
.uniui-contact
:before
{
content
:
"\e693"
;
}
.uniui-chatbubble-filled
:before
{
content
:
"\e694"
;
}
.uniui-contact-filled
:before
{
content
:
"\e695"
;
}
.uniui-chatboxes
:before
{
content
:
"\e696"
;
}
.uniui-chatbubble
:before
{
content
:
"\e697"
;
}
.uniui-upload-filled
:before
{
content
:
"\e68e"
;
}
.uniui-upload
:before
{
content
:
"\e690"
;
}
.uniui-weixin
:before
{
content
:
"\e691"
;
}
.uniui-compose
:before
{
content
:
"\e67f"
;
}
.uniui-qq
:before
{
content
:
"\e680"
;
}
.uniui-download-filled
:before
{
content
:
"\e681"
;
}
.uniui-pyq
:before
{
content
:
"\e682"
;
}
.uniui-sound
:before
{
content
:
"\e684"
;
}
.uniui-trash-filled
:before
{
content
:
"\e685"
;
}
.uniui-sound-filled
:before
{
content
:
"\e686"
;
}
.uniui-trash
:before
{
content
:
"\e687"
;
}
.uniui-videocam-filled
:before
{
content
:
"\e689"
;
}
.uniui-spinner-cycle
:before
{
content
:
"\e68a"
;
}
.uniui-weibo
:before
{
content
:
"\e68b"
;
}
.uniui-videocam
:before
{
content
:
"\e68c"
;
}
.uniui-download
:before
{
content
:
"\e68d"
;
}
.uniui-help
:before
{
content
:
"\e679"
;
}
.uniui-navigate-filled
:before
{
content
:
"\e67a"
;
}
.uniui-plusempty
:before
{
content
:
"\e67b"
;
}
.uniui-smallcircle
:before
{
content
:
"\e67c"
;
}
.uniui-minus-filled
:before
{
content
:
"\e67d"
;
}
.uniui-micoff
:before
{
content
:
"\e67e"
;
}
.uniui-closeempty
:before
{
content
:
"\e66c"
;
}
.uniui-clear
:before
{
content
:
"\e66d"
;
}
.uniui-navigate
:before
{
content
:
"\e66e"
;
}
.uniui-minus
:before
{
content
:
"\e66f"
;
}
.uniui-image
:before
{
content
:
"\e670"
;
}
.uniui-mic
:before
{
content
:
"\e671"
;
}
.uniui-paperplane
:before
{
content
:
"\e672"
;
}
.uniui-close
:before
{
content
:
"\e673"
;
}
.uniui-help-filled
:before
{
content
:
"\e674"
;
}
.uniui-paperplane-filled
:before
{
content
:
"\e675"
;
}
.uniui-plus
:before
{
content
:
"\e676"
;
}
.uniui-mic-filled
:before
{
content
:
"\e677"
;
}
.uniui-image-filled
:before
{
content
:
"\e678"
;
}
.uniui-locked-filled
:before
{
content
:
"\e668"
;
}
.uniui-info
:before
{
content
:
"\e669"
;
}
.uniui-locked
:before
{
content
:
"\e66b"
;
}
.uniui-camera-filled
:before
{
content
:
"\e658"
;
}
.uniui-chat-filled
:before
{
content
:
"\e659"
;
}
.uniui-camera
:before
{
content
:
"\e65a"
;
}
.uniui-circle
:before
{
content
:
"\e65b"
;
}
.uniui-checkmarkempty
:before
{
content
:
"\e65c"
;
}
.uniui-chat
:before
{
content
:
"\e65d"
;
}
.uniui-circle-filled
:before
{
content
:
"\e65e"
;
}
.uniui-flag
:before
{
content
:
"\e65f"
;
}
.uniui-flag-filled
:before
{
content
:
"\e660"
;
}
.uniui-gear-filled
:before
{
content
:
"\e661"
;
}
.uniui-home
:before
{
content
:
"\e662"
;
}
.uniui-home-filled
:before
{
content
:
"\e663"
;
}
.uniui-gear
:before
{
content
:
"\e664"
;
}
.uniui-smallcircle-filled
:before
{
content
:
"\e665"
;
}
.uniui-map-filled
:before
{
content
:
"\e666"
;
}
.uniui-map
:before
{
content
:
"\e667"
;
}
.uniui-refresh-filled
:before
{
content
:
"\e656"
;
}
.uniui-refresh
:before
{
content
:
"\e657"
;
}
.uniui-cloud-upload
:before
{
content
:
"\e645"
;
}
.uniui-cloud-download-filled
:before
{
content
:
"\e646"
;
}
.uniui-cloud-download
:before
{
content
:
"\e647"
;
}
.uniui-cloud-upload-filled
:before
{
content
:
"\e648"
;
}
.uniui-redo
:before
{
content
:
"\e64a"
;
}
.uniui-images-filled
:before
{
content
:
"\e64b"
;
}
.uniui-undo-filled
:before
{
content
:
"\e64c"
;
}
.uniui-more
:before
{
content
:
"\e64d"
;
}
.uniui-more-filled
:before
{
content
:
"\e64e"
;
}
.uniui-undo
:before
{
content
:
"\e64f"
;
}
.uniui-images
:before
{
content
:
"\e650"
;
}
.uniui-paperclip
:before
{
content
:
"\e652"
;
}
.uniui-settings
:before
{
content
:
"\e653"
;
}
.uniui-search
:before
{
content
:
"\e654"
;
}
.uniui-redo-filled
:before
{
content
:
"\e655"
;
}
.uniui-list
:before
{
content
:
"\e644"
;
}
.uniui-mail-open-filled
:before
{
content
:
"\e63a"
;
}
.uniui-hand-down-filled
:before
{
content
:
"\e63c"
;
}
.uniui-hand-down
:before
{
content
:
"\e63d"
;
}
.uniui-hand-up-filled
:before
{
content
:
"\e63e"
;
}
.uniui-hand-up
:before
{
content
:
"\e63f"
;
}
.uniui-heart-filled
:before
{
content
:
"\e641"
;
}
.uniui-mail-open
:before
{
content
:
"\e643"
;
}
.uniui-heart
:before
{
content
:
"\e639"
;
}
.uniui-loop
:before
{
content
:
"\e633"
;
}
.uniui-pulldown
:before
{
content
:
"\e632"
;
}
.uniui-scan
:before
{
content
:
"\e62a"
;
}
.uniui-bars
:before
{
content
:
"\e627"
;
}
.uniui-cart-filled
:before
{
content
:
"\e629"
;
}
.uniui-checkbox
:before
{
content
:
"\e62b"
;
}
.uniui-checkbox-filled
:before
{
content
:
"\e62c"
;
}
.uniui-shop
:before
{
content
:
"\e62f"
;
}
.uniui-headphones
:before
{
content
:
"\e630"
;
}
.uniui-cart
:before
{
content
:
"\e631"
;
}
mobile/src/uni_modules/uni-icons/components/uni-icons/uniicons.ttf
0 → 100644
浏览文件 @
4d3324de
File added
mobile/src/uni_modules/uni-icons/package.json
0 → 100644
浏览文件 @
4d3324de
{
"id"
:
"uni-icons"
,
"displayName"
:
"uni-icons 图标"
,
"version"
:
"1.3.5"
,
"description"
:
"图标组件,用于展示移动端常见的图标,可自定义颜色、大小。"
,
"keywords"
:
[
"uni-ui"
,
"uniui"
,
"icon"
,
"图标"
],
"repository"
:
"https://github.com/dcloudio/uni-ui"
,
"engines"
:
{
"HBuilderX"
:
"^3.2.14"
},
"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-scss"
],
"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"
:
"y"
}
}
}
}
}
\ No newline at end of file
mobile/src/uni_modules/uni-icons/readme.md
0 → 100644
浏览文件 @
4d3324de
## Icons 图标
> **组件名:uni-icons**
> 代码块: `uIcons`
用于展示 icons 图标 。
### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-icons)
#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839
mobile/src/uni_modules/uni-nav-bar/changelog.md
0 → 100644
浏览文件 @
4d3324de
## 1.3.4(2022-01-24)
-
更新 组件示例
## 1.3.3(2022-01-24)
-
新增 left-width/right-width属性 ,可修改左右两侧的宽度
## 1.3.2(2022-01-18)
-
修复 在vue下,标题不垂直居中的bug
## 1.3.1(2022-01-18)
-
修复 height 属性类型错误
## 1.3.0(2022-01-18)
-
新增 height 属性,可修改组件高度
-
新增 dark 属性可可开启暗黑模式
-
优化 标题字数过多显示省略号
-
优化 插槽,插入内容可完全覆盖
## 1.2.1(2022-01-10)
-
修复 color 属性不生效的bug
## 1.2.0(2021-11-19)
-
优化 组件UI,并提供设计资源,详见:
[
https://uniapp.dcloud.io/component/uniui/resource
](
https://uniapp.dcloud.io/component/uniui/resource
)
-
文档迁移,详见:
[
https://uniapp.dcloud.io/component/uniui/uni-nav-bar
](
https://uniapp.dcloud.io/component/uniui/uni-nav-bar
)
## 1.1.0(2021-07-30)
-
组件兼容 vue3,如何创建vue3项目,详见
[
uni-app 项目支持 vue3 介绍
](
https://ask.dcloud.net.cn/article/37834
)
## 1.0.11(2021-05-12)
-
新增 组件示例地址
## 1.0.10(2021-04-30)
-
修复 在nvue下fixed为true,宽度不能撑满的Bug
## 1.0.9(2021-04-21)
-
优化 添加依赖 uni-icons, 导入后自动下载依赖
## 1.0.8(2021-04-14)
-
uni-ui 修复 uni-nav-bar 当 fixed 属性为 true 时铺不满屏幕的 bug
## 1.0.7(2021-02-25)
-
修复 easycom 下,找不到 uni-status-bar 的bug
## 1.0.6(2021-02-05)
-
优化 组件引用关系,通过uni_modules引用组件
## 1.0.5(2021-02-05)
-
调整为uni_modules目录规范
mobile/src/uni_modules/uni-nav-bar/components/uni-nav-bar/uni-nav-bar.vue
0 → 100644
浏览文件 @
4d3324de
<
template
>
<view
class=
"uni-navbar"
:class=
"
{'uni-dark':dark}">
<view
:class=
"
{ 'uni-navbar--fixed': fixed, 'uni-navbar--shadow': shadow, 'uni-navbar--border': border }"
:style="{ 'background-color': themeBgColor }" class="uni-navbar__content">
<status-bar
v-if=
"statusBar"
/>
<view
:style=
"
{ color: themeColor,backgroundColor: themeBgColor ,height:navbarHeight}"
class="uni-navbar__header">
<view
@
tap=
"onClickLeft"
class=
"uni-navbar__header-btns uni-navbar__header-btns-left"
:style=
"
{width:leftIconWidth}">
<slot
name=
"left"
>
<view
class=
"uni-navbar__content_view"
v-if=
"leftIcon.length > 0"
>
<uni-icons
:color=
"themeColor"
:type=
"leftIcon"
size=
"20"
/>
</view>
<view
:class=
"
{ 'uni-navbar-btn-icon-left': !leftIcon.length > 0 }" class="uni-navbar-btn-text"
v-if="leftText.length">
<text
:style=
"
{ color: themeColor, fontSize: '12px' }">
{{
leftText
}}
</text>
</view>
</slot>
</view>
<view
class=
"uni-navbar__header-container "
@
tap=
"onClickTitle"
>
<slot>
<view
class=
"uni-navbar__header-container-inner"
v-if=
"title.length>0"
>
<text
class=
"uni-nav-bar-text uni-ellipsis-1"
:style=
"
{color: themeColor }">
{{
title
}}
</text>
</view>
</slot>
</view>
<view
@
click=
"onClickRight"
class=
"uni-navbar__header-btns uni-navbar__header-btns-right"
:style=
"
{width:rightIconWidth}">
<slot
name=
"right"
>
<view
v-if=
"rightIcon.length"
>
<uni-icons
:color=
"themeColor"
:type=
"rightIcon"
size=
"22"
/>
</view>
<view
class=
"uni-navbar-btn-text"
v-if=
"rightText.length && !rightIcon.length"
>
<text
class=
"uni-nav-bar-right-text"
:style=
"
{ color: themeColor}">
{{
rightText
}}
</text>
</view>
</slot>
</view>
</view>
</view>
<view
class=
"uni-navbar__placeholder"
v-if=
"fixed"
>
<status-bar
v-if=
"statusBar"
/>
<view
class=
"uni-navbar__placeholder-view"
:style=
"
{ height:navbarHeight}" />
</view>
</view>
</
template
>
<
script
>
import
statusBar
from
"./uni-status-bar.vue"
;
const
getVal
=
(
val
)
=>
typeof
val
===
'number'
?
val
+
'px'
:
val
;
/**
* NavBar 自定义导航栏
* @description 导航栏组件,主要用于头部导航
* @tutorial https://ext.dcloud.net.cn/plugin?id=52
* @property {Boolean} dark 开启黑暗模式
* @property {String} title 标题文字
* @property {String} leftText 左侧按钮文本
* @property {String} rightText 右侧按钮文本
* @property {String} leftIcon 左侧按钮图标(图标类型参考 [Icon 图标](http://ext.dcloud.net.cn/plugin?id=28) type 属性)
* @property {String} rightIcon 右侧按钮图标(图标类型参考 [Icon 图标](http://ext.dcloud.net.cn/plugin?id=28) type 属性)
* @property {String} color 图标和文字颜色
* @property {String} backgroundColor 导航栏背景颜色
* @property {Boolean} fixed = [true|false] 是否固定顶部
* @property {Boolean} statusBar = [true|false] 是否包含状态栏
* @property {Boolean} shadow = [true|false] 导航栏下是否有阴影
* @event {Function} clickLeft 左侧按钮点击时触发
* @event {Function} clickRight 右侧按钮点击时触发
* @event {Function} clickTitle 中间标题点击时触发
*/
export
default
{
name
:
"UniNavBar"
,
components
:
{
statusBar
},
emits
:
[
'clickLeft'
,
'clickRight'
,
'clickTitle'
],
props
:
{
dark
:
{
type
:
Boolean
,
default
:
false
},
title
:
{
type
:
String
,
default
:
""
},
leftText
:
{
type
:
String
,
default
:
""
},
rightText
:
{
type
:
String
,
default
:
""
},
leftIcon
:
{
type
:
String
,
default
:
""
},
rightIcon
:
{
type
:
String
,
default
:
""
},
fixed
:
{
type
:
[
Boolean
,
String
],
default
:
false
},
color
:
{
type
:
String
,
default
:
""
},
backgroundColor
:
{
type
:
String
,
default
:
""
},
statusBar
:
{
type
:
[
Boolean
,
String
],
default
:
false
},
shadow
:
{
type
:
[
Boolean
,
String
],
default
:
false
},
border
:
{
type
:
[
Boolean
,
String
],
default
:
true
},
height
:
{
type
:
[
Number
,
String
],
default
:
44
},
leftWidth
:
{
type
:
[
Number
,
String
],
default
:
60
},
rightWidth
:
{
type
:
[
Number
,
String
],
default
:
60
},
},
computed
:
{
themeBgColor
()
{
if
(
this
.
dark
)
{
// 默认值
if
(
this
.
backgroundColor
)
{
return
this
.
backgroundColor
}
else
{
return
this
.
dark
?
'#333'
:
'#FFF'
}
}
return
this
.
backgroundColor
||
'#FFF'
},
themeColor
()
{
if
(
this
.
dark
)
{
// 默认值
if
(
this
.
color
)
{
return
this
.
color
}
else
{
return
this
.
dark
?
'#fff'
:
'#333'
}
}
return
this
.
color
||
'#333'
},
navbarHeight
()
{
return
getVal
(
this
.
height
)
},
leftIconWidth
()
{
return
getVal
(
this
.
leftWidth
)
},
rightIconWidth
()
{
return
getVal
(
this
.
rightWidth
)
}
},
mounted
()
{
if
(
uni
.
report
&&
this
.
title
!==
''
)
{
uni
.
report
(
'title'
,
this
.
title
)
}
},
methods
:
{
onClickLeft
()
{
this
.
$emit
(
"clickLeft"
);
},
onClickRight
()
{
this
.
$emit
(
"clickRight"
);
},
onClickTitle
()
{
this
.
$emit
(
"clickTitle"
);
}
}
};
</
script
>
<
style
lang=
"scss"
scoped
>
$nav-height
:
44px
;
.uni-navbar
{
// box-sizing: border-box;
}
.uni-nav-bar-text
{
/* #ifdef APP-PLUS */
font-size
:
34rpx
;
/* #endif */
/* #ifndef APP-PLUS */
font-size
:
14px
;
/* #endif */
}
.uni-nav-bar-right-text
{
font-size
:
12px
;
}
.uni-navbar__content
{
position
:
relative
;
// background-color: #fff;
// box-sizing: border-box;
background-color
:
transparent
;
}
.uni-navbar__content_view
{
// box-sizing: border-box;
}
.uni-navbar-btn-text
{
/* #ifndef APP-NVUE */
display
:
flex
;
/* #endif */
flex-direction
:
column
;
justify-content
:
flex-start
;
align-items
:
center
;
line-height
:
12px
;
}
.uni-navbar__header
{
/* #ifndef APP-NVUE */
display
:
flex
;
/* #endif */
padding
:
0
10px
;
flex-direction
:
row
;
height
:
$nav-height
;
font-size
:
12px
;
}
.uni-navbar__header-btns
{
/* #ifndef APP-NVUE */
overflow
:
hidden
;
display
:
flex
;
/* #endif */
flex-wrap
:
nowrap
;
flex-direction
:
row
;
width
:
120rpx
;
// padding: 0 6px;
justify-content
:
center
;
align-items
:
center
;
/* #ifdef H5 */
cursor
:
pointer
;
/* #endif */
}
.uni-navbar__header-btns-left
{
/* #ifndef APP-NVUE */
display
:
flex
;
/* #endif */
width
:
120rpx
;
justify-content
:
flex-start
;
align-items
:
center
;
}
.uni-navbar__header-btns-right
{
/* #ifndef APP-NVUE */
display
:
flex
;
/* #endif */
flex-direction
:
row
;
// width: 150rpx;
// padding-right: 30rpx;
justify-content
:
flex-end
;
align-items
:
center
;
}
.uni-navbar__header-container
{
/* #ifndef APP-NVUE */
display
:
flex
;
/* #endif */
flex
:
1
;
padding
:
0
10px
;
overflow
:
hidden
;
}
.uni-navbar__header-container-inner
{
/* #ifndef APP-NVUE */
display
:
flex
;
/* #endif */
flex
:
1
;
flex-direction
:
row
;
align-items
:
center
;
justify-content
:
center
;
font-size
:
12px
;
overflow
:
hidden
;
// box-sizing: border-box;
}
.uni-navbar__placeholder-view
{
height
:
$nav-height
;
}
.uni-navbar--fixed
{
position
:
fixed
;
z-index
:
998
;
/* #ifdef H5 */
left
:
var
(
--
window-left
);
right
:
var
(
--
window-right
);
/* #endif */
/* #ifndef H5 */
left
:
0
;
right
:
0
;
/* #endif */
}
.uni-navbar--shadow
{
box-shadow
:
0
1px
6px
#ccc
;
}
.uni-navbar--border
{
border-bottom-width
:
1rpx
;
border-bottom-style
:
solid
;
border-bottom-color
:
#eee
;
}
.uni-ellipsis-1
{
overflow
:
hidden
;
/* #ifndef APP-NVUE */
white-space
:
nowrap
;
text-overflow
:
ellipsis
;
/* #endif */
/* #ifdef APP-NVUE */
lines
:
1
;
text-overflow
:
ellipsis
;
/* #endif */
}
// 暗主题配置
.uni-dark
{}
</
style
>
mobile/src/uni_modules/uni-nav-bar/components/uni-nav-bar/uni-status-bar.vue
0 → 100644
浏览文件 @
4d3324de
<
template
>
<view
:style=
"
{ height: statusBarHeight }" class="uni-status-bar">
<slot
/>
</view>
</
template
>
<
script
>
export
default
{
name
:
'UniStatusBar'
,
data
()
{
return
{
statusBarHeight
:
20
}
},
mounted
()
{
this
.
statusBarHeight
=
uni
.
getSystemInfoSync
().
statusBarHeight
+
'px'
}
}
</
script
>
<
style
lang=
"scss"
>
.uni-status-bar
{
// width: 750rpx;
height
:
20px
;
// height: var(--status-bar-height);
}
</
style
>
mobile/src/uni_modules/uni-nav-bar/package.json
0 → 100644
浏览文件 @
4d3324de
{
"id"
:
"uni-nav-bar"
,
"displayName"
:
"uni-nav-bar 自定义导航栏"
,
"version"
:
"1.3.4"
,
"description"
:
"自定义导航栏组件,主要用于头部导航。"
,
"keywords"
:
[
"uni-ui"
,
"导航"
,
"导航栏"
,
"自定义导航栏"
],
"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-scss"
,
"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"
:
"y"
}
}
}
}
}
\ No newline at end of file
mobile/src/uni_modules/uni-nav-bar/readme.md
0 → 100644
浏览文件 @
4d3324de
## NavBar 导航栏
> **组件名:uni-nav-bar**
> 代码块: `uNavBar`
导航栏组件,主要用于头部导航。
### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-nav-bar)
#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839
mobile/src/uni_modules/uni-scss/changelog.md
0 → 100644
浏览文件 @
4d3324de
## 1.0.3(2022-01-21)
-
优化 组件示例
## 1.0.2(2021-11-22)
-
修复 / 符号在 vue 不同版本兼容问题引起的报错问题
## 1.0.1(2021-11-22)
-
修复 vue3中scss语法兼容问题
## 1.0.0(2021-11-18)
-
init
mobile/src/uni_modules/uni-scss/index.scss
0 → 100644
浏览文件 @
4d3324de
@import
'./styles/index.scss'
;
mobile/src/uni_modules/uni-scss/package.json
0 → 100644
浏览文件 @
4d3324de
{
"id"
:
"uni-scss"
,
"displayName"
:
"uni-scss 辅助样式"
,
"version"
:
"1.0.3"
,
"description"
:
"uni-sass是uni-ui提供的一套全局样式 ,通过一些简单的类名和sass变量,实现简单的页面布局操作,比如颜色、边距、圆角等。"
,
"keywords"
:
[
"uni-scss"
,
"uni-ui"
,
"辅助样式"
],
"repository"
:
"https://github.com/dcloudio/uni-ui"
,
"engines"
:
{
"HBuilderX"
:
"^3.1.0"
},
"dcloudext"
:
{
"category"
:
[
"JS SDK"
,
"通用 SDK"
],
"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"
:
"u"
},
"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"
},
"快应用"
:
{
"华为"
:
"n"
,
"联盟"
:
"n"
},
"Vue"
:
{
"vue2"
:
"y"
,
"vue3"
:
"y"
}
}
}
}
}
mobile/src/uni_modules/uni-scss/readme.md
0 → 100644
浏览文件 @
4d3324de
`uni-sass`
是
`uni-ui`
提供的一套全局样式 ,通过一些简单的类名和
`sass`
变量,实现简单的页面布局操作,比如颜色、边距、圆角等。
### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-sass)
#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839
\ No newline at end of file
mobile/src/uni_modules/uni-scss/styles/index.scss
0 → 100644
浏览文件 @
4d3324de
@import
'./setting/_variables.scss'
;
@import
'./setting/_border.scss'
;
@import
'./setting/_color.scss'
;
@import
'./setting/_space.scss'
;
@import
'./setting/_radius.scss'
;
@import
'./setting/_text.scss'
;
@import
'./setting/_styles.scss'
;
mobile/src/uni_modules/uni-scss/styles/setting/_border.scss
0 → 100644
浏览文件 @
4d3324de
.uni-border
{
border
:
1px
$uni-border-1
solid
;
}
\ No newline at end of file
mobile/src/uni_modules/uni-scss/styles/setting/_color.scss
0 → 100644
浏览文件 @
4d3324de
// TODO 暂时不需要 class ,需要用户使用变量实现 ,如果使用类名其实并不推荐
// @mixin get-styles($k,$c) {
// @if $k == size or $k == weight{
// font-#{$k}:#{$c}
// }@else{
// #{$k}:#{$c}
// }
// }
$uni-ui-color
:(
//
主色
primary
:
$uni-primary
,
primary-disable
:
$uni-primary-disable
,
primary-light
:
$uni-primary-light
,
//
辅助色
success
:
$uni-success
,
success-disable
:
$uni-success-disable
,
success-light
:
$uni-success-light
,
warning
:
$uni-warning
,
warning-disable
:
$uni-warning-disable
,
warning-light
:
$uni-warning-light
,
error
:
$uni-error
,
error-disable
:
$uni-error-disable
,
error-light
:
$uni-error-light
,
info
:
$uni-info
,
info-disable
:
$uni-info-disable
,
info-light
:
$uni-info-light
,
//
中性色
main-color
:
$uni-main-color
,
base-color
:
$uni-base-color
,
secondary-color
:
$uni-secondary-color
,
extra-color
:
$uni-extra-color
,
//
背景色
bg-color
:
$uni-bg-color
,
//
边框颜色
border-1
:
$uni-border-1
,
border-2
:
$uni-border-2
,
border-3
:
$uni-border-3
,
border-4
:
$uni-border-4
,
//
黑色
black
:
$uni-black
,
//
白色
white
:
$uni-white
,
//
透明
transparent
:
$uni-transparent
)
!
default
;
@each
$key
,
$child
in
$uni-ui-color
{
.uni-
#{
""
+
$key
}
{
color
:
$child
;
}
.uni-
#{
""
+
$key
}
-bg
{
background-color
:
$child
;
}
}
.uni-shadow-sm
{
box-shadow
:
$uni-shadow-sm
;
}
.uni-shadow-base
{
box-shadow
:
$uni-shadow-base
;
}
.uni-shadow-lg
{
box-shadow
:
$uni-shadow-lg
;
}
.uni-mask
{
background-color
:
$uni-mask
;
}
mobile/src/uni_modules/uni-scss/styles/setting/_radius.scss
0 → 100644
浏览文件 @
4d3324de
@mixin
radius
(
$r
,
$d
:
null
,
$important
:
false
){
$radius-value
:
map-get
(
$uni-radius
,
$r
)
if
(
$important
,
!
important
,
null
);
// Key exists within the $uni-radius variable
@if
(
map-has-key
(
$uni-radius
,
$r
)
and
$d
){
@if
$d
==
t
{
border-top-left-radius
:
$radius-value
;
border-top-right-radius
:
$radius-value
;
}
@else
if
$d
==
r
{
border-top-right-radius
:
$radius-value
;
border-bottom-right-radius
:
$radius-value
;
}
@else
if
$d
==
b
{
border-bottom-left-radius
:
$radius-value
;
border-bottom-right-radius
:
$radius-value
;
}
@else
if
$d
==
l
{
border-top-left-radius
:
$radius-value
;
border-bottom-left-radius
:
$radius-value
;
}
@else
if
$d
==
tl
{
border-top-left-radius
:
$radius-value
;
}
@else
if
$d
==
tr
{
border-top-right-radius
:
$radius-value
;
}
@else
if
$d
==
br
{
border-bottom-right-radius
:
$radius-value
;
}
@else
if
$d
==
bl
{
border-bottom-left-radius
:
$radius-value
;
}
}
@else
{
border-radius
:
$radius-value
;
}
}
@each
$key
,
$child
in
$uni-radius
{
@if
(
$key
){
.uni-radius-
#{
""
+
$key
}
{
@include
radius
(
$key
)
}
}
@else
{
.uni-radius
{
@include
radius
(
$key
)
}
}
}
@each
$direction
in
t
,
r
,
b
,
l
,
tl
,
tr
,
br
,
bl
{
@each
$key
,
$child
in
$uni-radius
{
@if
(
$key
){
.uni-radius-
#{
""
+
$direction
}
-
#{
""
+
$key
}
{
@include
radius
(
$key
,
$direction
,
false
)
}
}
@else
{
.uni-radius-
#{
$direction
}
{
@include
radius
(
$key
,
$direction
,
false
)
}
}
}
}
mobile/src/uni_modules/uni-scss/styles/setting/_space.scss
0 → 100644
浏览文件 @
4d3324de
@mixin
fn
(
$space
,
$direction
,
$size
,
$n
)
{
@if
$n
{
#{
$space
}
-
#{
$direction
}
:
#{
$size
*
$uni-space-root
}
px
}
@else
{
#{
$space
}
-
#{
$direction
}
:
#{
-
$size
*
$uni-space-root
}
px
}
}
@mixin
get-styles
(
$direction
,
$i
,
$space
,
$n
){
@if
$direction
==
t
{
@include
fn
(
$space
,
top
,
$i
,
$n
);
}
@if
$direction
==
r
{
@include
fn
(
$space
,
right
,
$i
,
$n
);
}
@if
$direction
==
b
{
@include
fn
(
$space
,
bottom
,
$i
,
$n
);
}
@if
$direction
==
l
{
@include
fn
(
$space
,
left
,
$i
,
$n
);
}
@if
$direction
==
x
{
@include
fn
(
$space
,
left
,
$i
,
$n
);
@include
fn
(
$space
,
right
,
$i
,
$n
);
}
@if
$direction
==
y
{
@include
fn
(
$space
,
top
,
$i
,
$n
);
@include
fn
(
$space
,
bottom
,
$i
,
$n
);
}
@if
$direction
==
a
{
@if
$n
{
#{
$space
}
:
#{
$i
*
$uni-space-root
}
px
;
}
@else
{
#{
$space
}
:
#{
-
$i
*
$uni-space-root
}
px
;
}
}
}
@each
$orientation
in
m
,
p
{
$space
:
margin
;
@if
$orientation
==
m
{
$space
:
margin
;
}
@else
{
$space
:
padding
;
}
@for
$i
from
0
through
16
{
@each
$direction
in
t
,
r
,
b
,
l
,
x
,
y
,
a
{
.uni-
#{
$orientation
}#{
$direction
}
-
#{
$i
}
{
@include
get-styles
(
$direction
,
$i
,
$space
,
true
);
}
.uni-
#{
$orientation
}#{
$direction
}
-n
#{
$i
}
{
@include
get-styles
(
$direction
,
$i
,
$space
,
false
);
}
}
}
}
\ No newline at end of file
mobile/src/uni_modules/uni-scss/styles/setting/_styles.scss
0 → 100644
浏览文件 @
4d3324de
/* #ifndef APP-NVUE */
$-color-white
:
#fff
;
$-color-black
:
#000
;
@mixin
base-style
(
$color
)
{
color
:
#fff
;
background-color
:
$color
;
border-color
:
mix
(
$-color-black
,
$color
,
8%
);
&
:not
([
hover-class
])
:active
{
background
:
mix
(
$-color-black
,
$color
,
10%
);
border-color
:
mix
(
$-color-black
,
$color
,
20%
);
color
:
$-color-white
;
outline
:
none
;
}
}
@mixin
is-color
(
$color
)
{
@include
base-style
(
$color
);
&
[
loading
]
{
@include
base-style
(
$color
);
&
:
:
before
{
margin-right
:
5px
;
}
}
&
[
disabled
]
{
&
,
&
[
loading
],
&
:not
([
hover-class
])
:active
{
color
:
$-color-white
;
border-color
:
mix
(
darken
(
$color
,
10%
)
,
$-color-white
);
background-color
:
mix
(
$color
,
$-color-white
);
}
}
}
@mixin
base-plain-style
(
$color
)
{
color
:
$color
;
background-color
:
mix
(
$-color-white
,
$color
,
90%
);
border-color
:
mix
(
$-color-white
,
$color
,
70%
);
&
:not
([
hover-class
])
:active
{
background
:
mix
(
$-color-white
,
$color
,
80%
);
color
:
$color
;
outline
:
none
;
border-color
:
mix
(
$-color-white
,
$color
,
50%
);
}
}
@mixin
is-plain
(
$color
){
&
[
plain
]
{
@include
base-plain-style
(
$color
);
&
[
loading
]
{
@include
base-plain-style
(
$color
);
&
:
:
before
{
margin-right
:
5px
;
}
}
&
[
disabled
]
{
&
,
&
:active
{
color
:
mix
(
$-color-white
,
$color
,
40%
);
background-color
:
mix
(
$-color-white
,
$color
,
90%
);
border-color
:
mix
(
$-color-white
,
$color
,
80%
);
}
}
}
}
.uni-btn
{
margin
:
5px
;
color
:
#393939
;
border
:
1px
solid
#ccc
;
font-size
:
16px
;
font-weight
:
200
;
background-color
:
#F9F9F9
;
// TODO 暂时处理边框隐藏一边的问题
overflow
:
visible
;
&
:
:
after
{
border
:
none
;
}
&
:not
([
type
]),
&
[
type
=
default
]
{
color
:
#999
;
&
[
loading
]
{
background
:
none
;
&
:
:
before
{
margin-right
:
5px
;
}
}
&
[
disabled
]
{
color
:
mix
(
$-color-white
,
#999
,
60%
);
&
,
&
[
loading
],
&
:active
{
color
:
mix
(
$-color-white
,
#999
,
60%
);
background-color
:
mix
(
$-color-white
,
$-color-black
,
98%
);
border-color
:
mix
(
$-color-white
,
#999
,
85%
);
}
}
&
[
plain
]
{
color
:
#999
;
background
:
none
;
border-color
:
$uni-border-1
;
&
:not
([
hover-class
])
:active
{
background
:
none
;
color
:
mix
(
$-color-white
,
$-color-black
,
80%
);
border-color
:
mix
(
$-color-white
,
$-color-black
,
90%
);
outline
:
none
;
}
&
[
disabled
]
{
&
,
&
[
loading
],
&
:active
{
background
:
none
;
color
:
mix
(
$-color-white
,
#999
,
60%
);
border-color
:
mix
(
$-color-white
,
#999
,
85%
);
}
}
}
}
&
:not
([
hover-class
])
:active
{
color
:
mix
(
$-color-white
,
$-color-black
,
50%
);
}
&
[
size
=
mini
]
{
font-size
:
16px
;
font-weight
:
200
;
border-radius
:
8px
;
}
&
.uni-btn-small
{
font-size
:
14px
;
}
&
.uni-btn-mini
{
font-size
:
12px
;
}
&
.uni-btn-radius
{
border-radius
:
999px
;
}
&
[
type
=
primary
]
{
@include
is-color
(
$uni-primary
);
@include
is-plain
(
$uni-primary
)
}
&
[
type
=
success
]
{
@include
is-color
(
$uni-success
);
@include
is-plain
(
$uni-success
)
}
&
[
type
=
error
]
{
@include
is-color
(
$uni-error
);
@include
is-plain
(
$uni-error
)
}
&
[
type
=
warning
]
{
@include
is-color
(
$uni-warning
);
@include
is-plain
(
$uni-warning
)
}
&
[
type
=
info
]
{
@include
is-color
(
$uni-info
);
@include
is-plain
(
$uni-info
)
}
}
/* #endif */
mobile/src/uni_modules/uni-scss/styles/setting/_text.scss
0 → 100644
浏览文件 @
4d3324de
@mixin
get-styles
(
$k
,
$c
)
{
@if
$k
==
size
or
$k
==
weight
{
font-
#{
$k
}
:
#{
$c
}
}
@else
{
#{
$k
}
:
#{
$c
}
}
}
@each
$key
,
$child
in
$uni-headings
{
/* #ifndef APP-NVUE */
.uni-
#{
$key
}
{
@each
$k
,
$c
in
$child
{
@include
get-styles
(
$k
,
$c
)
}
}
/* #endif */
/* #ifdef APP-NVUE */
.container
.uni-
#{
$key
}
{
@each
$k
,
$c
in
$child
{
@include
get-styles
(
$k
,
$c
)
}
}
/* #endif */
}
mobile/src/uni_modules/uni-scss/styles/setting/_variables.scss
0 → 100644
浏览文件 @
4d3324de
// @use "sass:math";
@import
'../tools/functions.scss'
;
// 间距基础倍数
$uni-space-root
:
2
!
default
;
// 边框半径默认值
$uni-radius-root
:
5px
!
default
;
$uni-radius
:
()
!
default
;
// 边框半径断点
$uni-radius
:
map-deep-merge
(
(
0
:
0
,
//
TODO
当前版本暂时不支持
sm
属性
//
'sm'
:
math
.
div
(
$uni-radius-root
,
2
)
,
null
:
$uni-radius-root
,
'lg'
:
$uni-radius-root
*
2
,
'xl'
:
$uni-radius-root
*
6
,
'pill'
:
9999px
,
'circle'
:
50%
)
,
$uni-radius
);
// 字体家族
$body-font-family
:
'Roboto'
,
sans-serif
!
default
;
// 文本
$heading-font-family
:
$body-font-family
!
default
;
$uni-headings
:
()
!
default
;
$letterSpacing
:
-0
.01562em
;
$uni-headings
:
map-deep-merge
(
(
'h1'
:
(
size
:
32px
,
weight
:
300
,
line-height
:
50px
,
//
letter-spacing
:-
0
.01562em
)
,
'h2'
:
(
size
:
28px
,
weight
:
300
,
line-height
:
40px
,
//
letter-spacing
:
-0
.00833em
)
,
'h3'
:
(
size
:
24px
,
weight
:
400
,
line-height
:
32px
,
//
letter-spacing
:
normal
)
,
'h4'
:
(
size
:
20px
,
weight
:
400
,
line-height
:
30px
,
//
letter-spacing
:
0
.00735em
)
,
'h5'
:
(
size
:
16px
,
weight
:
400
,
line-height
:
24px
,
//
letter-spacing
:
normal
)
,
'h6'
:
(
size
:
14px
,
weight
:
500
,
line-height
:
18px
,
//
letter-spacing
:
0
.0125em
)
,
'subtitle'
:
(
size
:
12px
,
weight
:
400
,
line-height
:
20px
,
//
letter-spacing
:
0
.00937em
)
,
'body'
:
(
font-size
:
14px
,
font-weight
:
400
,
line-height
:
22px
,
//
letter-spacing
:
0
.03125em
)
,
'caption'
:
(
'size'
:
12px
,
'weight'
:
400
,
'line-height'
:
20px
,
//
'letter-spacing'
:
0
.03333em
,
//
'text-transform'
:
false
)
)
,
$uni-headings
);
// 主色
$uni-primary
:
#2979ff
!
default
;
$uni-primary-disable
:
lighten
(
$uni-primary
,
20%
)
!
default
;
$uni-primary-light
:
lighten
(
$uni-primary
,
25%
)
!
default
;
// 辅助色
// 除了主色外的场景色,需要在不同的场景中使用(例如危险色表示危险的操作)。
$uni-success
:
#18bc37
!
default
;
$uni-success-disable
:
lighten
(
$uni-success
,
20%
)
!
default
;
$uni-success-light
:
lighten
(
$uni-success
,
25%
)
!
default
;
$uni-warning
:
#f3a73f
!
default
;
$uni-warning-disable
:
lighten
(
$uni-warning
,
20%
)
!
default
;
$uni-warning-light
:
lighten
(
$uni-warning
,
25%
)
!
default
;
$uni-error
:
#e43d33
!
default
;
$uni-error-disable
:
lighten
(
$uni-error
,
20%
)
!
default
;
$uni-error-light
:
lighten
(
$uni-error
,
25%
)
!
default
;
$uni-info
:
#8f939c
!
default
;
$uni-info-disable
:
lighten
(
$uni-info
,
20%
)
!
default
;
$uni-info-light
:
lighten
(
$uni-info
,
25%
)
!
default
;
// 中性色
// 中性色用于文本、背景和边框颜色。通过运用不同的中性色,来表现层次结构。
$uni-main-color
:
#3a3a3a
!
default
;
// 主要文字
$uni-base-color
:
#6a6a6a
!
default
;
// 常规文字
$uni-secondary-color
:
#909399
!
default
;
// 次要文字
$uni-extra-color
:
#c7c7c7
!
default
;
// 辅助说明
// 边框颜色
$uni-border-1
:
#F0F0F0
!
default
;
$uni-border-2
:
#EDEDED
!
default
;
$uni-border-3
:
#DCDCDC
!
default
;
$uni-border-4
:
#B9B9B9
!
default
;
// 常规色
$uni-black
:
#000000
!
default
;
$uni-white
:
#ffffff
!
default
;
$uni-transparent
:
rgba
(
$color
:
#000000
,
$alpha
:
0
)
!
default
;
// 背景色
$uni-bg-color
:
#f7f7f7
!
default
;
/* 水平间距 */
$uni-spacing-sm
:
8px
!
default
;
$uni-spacing-base
:
15px
!
default
;
$uni-spacing-lg
:
30px
!
default
;
// 阴影
$uni-shadow-sm
:
0
0
5px
rgba
(
$color
:
#d8d8d8
,
$alpha
:
0
.5
)
!
default
;
$uni-shadow-base
:
0
1px
8px
1px
rgba
(
$color
:
#a5a5a5
,
$alpha
:
0
.2
)
!
default
;
$uni-shadow-lg
:
0px
1px
10px
2px
rgba
(
$color
:
#a5a4a4
,
$alpha
:
0
.5
)
!
default
;
// 蒙版
$uni-mask
:
rgba
(
$color
:
#000000
,
$alpha
:
0
.4
)
!
default
;
mobile/src/uni_modules/uni-scss/styles/tools/functions.scss
0 → 100644
浏览文件 @
4d3324de
// 合并 map
@function
map-deep-merge
(
$parent-map
,
$child-map
){
$result
:
$parent-map
;
@each
$key
,
$child
in
$child-map
{
$parent-has-key
:
map-has-key
(
$result
,
$key
);
$parent-value
:
map-get
(
$result
,
$key
);
$parent-type
:
type-of
(
$parent-value
);
$child-type
:
type-of
(
$child
);
$parent-is-map
:
$parent-type
==
map
;
$child-is-map
:
$child-type
==
map
;
@if
(
not
$parent-has-key
)
or
(
$parent-type
!=
$child-type
)
or
(
not
(
$parent-is-map
and
$child-is-map
)){
$result
:
map-merge
(
$result
,
(
$key
:
$child
));
}
@else
{
$result
:
map-merge
(
$result
,
(
$key
:
map-deep-merge
(
$parent-value
,
$child
)
));
}
}
@return
$result
;
};
mobile/src/uni_modules/uni-scss/theme.scss
0 → 100644
浏览文件 @
4d3324de
// 间距基础倍数
$uni-space-root
:
2
;
// 边框半径默认值
$uni-radius-root
:
5px
;
// 主色
$uni-primary
:
#2979ff
;
// 辅助色
$uni-success
:
#4cd964
;
// 警告色
$uni-warning
:
#f0ad4e
;
// 错误色
$uni-error
:
#dd524d
;
// 描述色
$uni-info
:
#909399
;
// 中性色
$uni-main-color
:
#303133
;
$uni-base-color
:
#606266
;
$uni-secondary-color
:
#909399
;
$uni-extra-color
:
#C0C4CC
;
// 背景色
$uni-bg-color
:
#f5f5f5
;
// 边框颜色
$uni-border-1
:
#DCDFE6
;
$uni-border-2
:
#E4E7ED
;
$uni-border-3
:
#EBEEF5
;
$uni-border-4
:
#F2F6FC
;
// 常规色
$uni-black
:
#000000
;
$uni-white
:
#ffffff
;
$uni-transparent
:
rgba
(
$color
:
#000000
,
$alpha
:
0
);
mobile/src/uni_modules/uni-scss/variables.scss
0 → 100644
浏览文件 @
4d3324de
@import
'./styles/setting/_variables.scss'
;
// 间距基础倍数
$uni-space-root
:
2
;
// 边框半径默认值
$uni-radius-root
:
5px
;
// 主色
$uni-primary
:
#2979ff
;
$uni-primary-disable
:
mix
(
#fff
,
$uni-primary
,
50%
);
$uni-primary-light
:
mix
(
#fff
,
$uni-primary
,
80%
);
// 辅助色
// 除了主色外的场景色,需要在不同的场景中使用(例如危险色表示危险的操作)。
$uni-success
:
#18bc37
;
$uni-success-disable
:
mix
(
#fff
,
$uni-success
,
50%
);
$uni-success-light
:
mix
(
#fff
,
$uni-success
,
80%
);
$uni-warning
:
#f3a73f
;
$uni-warning-disable
:
mix
(
#fff
,
$uni-warning
,
50%
);
$uni-warning-light
:
mix
(
#fff
,
$uni-warning
,
80%
);
$uni-error
:
#e43d33
;
$uni-error-disable
:
mix
(
#fff
,
$uni-error
,
50%
);
$uni-error-light
:
mix
(
#fff
,
$uni-error
,
80%
);
$uni-info
:
#8f939c
;
$uni-info-disable
:
mix
(
#fff
,
$uni-info
,
50%
);
$uni-info-light
:
mix
(
#fff
,
$uni-info
,
80%
);
// 中性色
// 中性色用于文本、背景和边框颜色。通过运用不同的中性色,来表现层次结构。
$uni-main-color
:
#3a3a3a
;
// 主要文字
$uni-base-color
:
#6a6a6a
;
// 常规文字
$uni-secondary-color
:
#909399
;
// 次要文字
$uni-extra-color
:
#c7c7c7
;
// 辅助说明
// 边框颜色
$uni-border-1
:
#F0F0F0
;
$uni-border-2
:
#EDEDED
;
$uni-border-3
:
#DCDCDC
;
$uni-border-4
:
#B9B9B9
;
// 常规色
$uni-black
:
#000000
;
$uni-white
:
#ffffff
;
$uni-transparent
:
rgba
(
$color
:
#000000
,
$alpha
:
0
);
// 背景色
$uni-bg-color
:
#f7f7f7
;
/* 水平间距 */
$uni-spacing-sm
:
8px
;
$uni-spacing-base
:
15px
;
$uni-spacing-lg
:
30px
;
// 阴影
$uni-shadow-sm
:
0
0
5px
rgba
(
$color
:
#d8d8d8
,
$alpha
:
0
.5
);
$uni-shadow-base
:
0
1px
8px
1px
rgba
(
$color
:
#a5a5a5
,
$alpha
:
0
.2
);
$uni-shadow-lg
:
0px
1px
10px
2px
rgba
(
$color
:
#a5a4a4
,
$alpha
:
0
.5
);
// 蒙版
$uni-mask
:
rgba
(
$color
:
#000000
,
$alpha
:
0
.4
);
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论