mirror of
https://gitee.com/hhyykk/ipms-sjy.git
synced 2025-07-06 07:12:00 +08:00
1812 lines
32 KiB
Vue
1812 lines
32 KiB
Vue
/**
|
||
* BaseCloud APP更新检测组件
|
||
v1.0.4
|
||
*/
|
||
<template>
|
||
<view class="base-cloud" style="display: inline-block;">
|
||
<view class="father" style="display: flex;align-items: center;" v-if="showVersion" @click.stop.prevent="checkVersion">
|
||
<text class="version-text">版本{{version}}</text>
|
||
<view class="abs top right" v-if="updateData.updated" style="top: -3px;right: -7px;">
|
||
<view class="w7 h7 rds redBg"></view>
|
||
</view>
|
||
</view>
|
||
<view class="fixed z20 wp6 flex ct plr50 pb50 " v-if="show">
|
||
<view class="w100p showIn" :animation="inData" style="max-width: 300px;">
|
||
<view class="rds12" :style="{'background-color':color}">
|
||
<view class="father">
|
||
<view class="h120 father hidden">
|
||
<view class="abs top left50p">
|
||
<image src="./static/cloudRight.png" mode="widthFix" class="w500 h120 animated goAway infinite"></image>
|
||
</view>
|
||
<view class="abs top right50p">
|
||
<image src="./static/cloudLeft.png" mode="widthFix" class="w500 h120 animated goAwayLeft infinite"></image>
|
||
</view>
|
||
<image class="abs top30 left30 w10 h10 animated infinite fadeOut slow" src="./static/star.png" mode="widthFix"></image>
|
||
<image class="abs top60 left80 w10 h10 animated infinite fadeOut slowest delay-1s" src="./static/star.png" mode="widthFix"></image>
|
||
<image class="abs top20 right20 w10 h10 animated infinite fadeOut slower delay-2s" src="./static/star.png" mode="widthFix"></image>
|
||
<image class="abs top20 right50 w30 h30 animated fadeOutRight infinite slowest" src="./static/smallCloud.png"
|
||
mode="widthFix"></image>
|
||
<image class="abs top30 left50 w30 h30 animated fadeOutRight infinite slow8 " src="./static/smallCloud.png" mode="widthFix"></image>
|
||
</view>
|
||
<view class="abs bottom animated bounceUp infinite">
|
||
<view class="animated goUp delay-06s">
|
||
<image src="./static/airship.png" mode="widthFix" class="w80 h75 center-block father z3"></image>
|
||
<view class="father" style="top: -5px;">
|
||
<image src="./static/shipAir.png" mode="widthFix" class="w40 h85 center-block animated infinite splashOut"></image>
|
||
<view class="abs">
|
||
<image src="./static/shipAir.png" mode="widthFix" class="w40 h85 center-block animated infinite splashOut delay-03s"></image>
|
||
</view>
|
||
<view class="abs">
|
||
<image src="./static/shipAir.png" mode="widthFix" class="w40 h85 center-block animated infinite splashOut delay-06s"></image>
|
||
</view>
|
||
<view class="abs bottom" style="bottom: -80upx;">
|
||
<image src="./static/shipGas.png" mode="widthFix" class="w40 h85 center-block animated infinite splash"></image>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
|
||
<view class=" whiteBg hidden plr20 father z3 rdsBr12 rdsBl12" :class="{'pb100':progress <= 0 || progress >= 100 || completed}">
|
||
<view class="ptb10 fz16 bold">
|
||
<block v-if="progress == 0">
|
||
{{title}} {{ updateData.version ? 'v' + updateData.version : ''}}
|
||
</block>
|
||
<block v-else-if="progress <=100 && !completed">
|
||
<view>
|
||
<view class="fz30 normal avanti pt15 text-center">
|
||
{{ progress }}
|
||
<text class="fz12 ml2">
|
||
%
|
||
</text>
|
||
</view>
|
||
|
||
<view class="text-center pb40 op8 gray fz14 normal">
|
||
版本更新中,不要离开...
|
||
</view>
|
||
</view>
|
||
</block>
|
||
<view class="text-center pt15" v-else-if="completed">
|
||
版本升级成功
|
||
<view class="pb40 op8 gray fz14 normal pt5">
|
||
更新已完成,请重启应用体验新版
|
||
</view>
|
||
</view>
|
||
</view>
|
||
<scroll-view scroll-y="true" class="scroll-view h60 autoY pb20" v-if="progress == 0">
|
||
<view class="column">
|
||
<text v-if="updateData.description.length === 0">
|
||
{{ defaultContent }}
|
||
</text>
|
||
<text v-for="(item, index) in updateData.description" :key="index">
|
||
{{ index + 1 }}.{{ item }}
|
||
</text>
|
||
</view>
|
||
</scroll-view>
|
||
<view class="pd50 pt25" v-else-if="progress < 100">
|
||
<view class="grayBg bd rds23">
|
||
<view class="grayBg rds23">
|
||
<view class="ptb3 rds23" :style="{width:progress+'%','background-color':color}"></view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
<view class="father">
|
||
<view class="abs top left50p roundBox rds text-center" :style="{'background-color':color}">
|
||
<view class="pt30" v-if="!completed">
|
||
<button hover-class="op9" @tap.stop="download" class="btn bd2 whiteBg line rds23 inline plr50 ptb10 fz16">
|
||
立即升级
|
||
</button>
|
||
</view>
|
||
<view class="pt30" v-else>
|
||
<button hover-class="op8" @tap.stop="restart" class="btn bd2 whiteBg line rds23 inline plr50 ptb10 fz16">
|
||
立即重启
|
||
</button>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
<view class="op9 father" v-if="progress == 0">
|
||
<view class="abs">
|
||
<view class="flex ct ">
|
||
<view class="h30 bl3 whiteBd"></view>
|
||
</view>
|
||
<view class="close-btn" @click="hide">
|
||
<text class="mix-icon icon-close"></text>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
|
||
<mix-loading v-if="isLoading"></mix-loading>
|
||
</view>
|
||
</template>
|
||
|
||
<script>
|
||
export default {
|
||
name: "version-update",
|
||
props: {
|
||
title: {
|
||
default: "发现新版本"
|
||
},
|
||
defaultContent: {
|
||
default: "快来升级,体验最新的功能吧!"
|
||
},
|
||
showVersion: {
|
||
default: true
|
||
},
|
||
autoShow: {
|
||
default: false
|
||
},
|
||
isCache: {
|
||
default: true
|
||
},
|
||
updateUrl: {
|
||
default: "api/base-app-version"
|
||
},
|
||
color: {
|
||
default: "#ff536f"
|
||
}
|
||
},
|
||
data() {
|
||
return {
|
||
show: false,
|
||
version: "1.0.0",
|
||
updateData: {
|
||
description: []
|
||
},
|
||
progress: 0,
|
||
completed: false,
|
||
inData: null
|
||
};
|
||
},
|
||
created() {
|
||
// #ifdef APP-PLUS
|
||
plus.runtime.getProperty(plus.runtime.appid, (widgetInfo) => {
|
||
this.version = widgetInfo.version;
|
||
});
|
||
// #endif
|
||
},
|
||
methods: {
|
||
async checkVersion(e) {
|
||
console.log(e);
|
||
const res = await this.$request('version', 'check', {
|
||
version: this.version
|
||
}, {
|
||
showLoading: true
|
||
})
|
||
if (res.status === 0) {
|
||
this.$util.msg(res.msg);
|
||
} else {
|
||
res.data.description = res.data.description.split(';');
|
||
this.updateData = res.data;
|
||
this.show = true;
|
||
}
|
||
},
|
||
|
||
download(e) {
|
||
if(this.isDownloading){
|
||
return;
|
||
}
|
||
this.isDownloading = true;
|
||
const task = uni.downloadFile({
|
||
url: this.updateData.downloadLink,
|
||
success: (downloadResult) => {
|
||
this.isDownloading =false;
|
||
uni.hideLoading();
|
||
if (downloadResult.statusCode === 200) {
|
||
plus.runtime.install(downloadResult.tempFilePath, {
|
||
force: false
|
||
}, (e) => {
|
||
this.downloadSuccess(e);
|
||
}, (err) => {
|
||
this.downloadError(err);
|
||
});
|
||
}
|
||
},
|
||
fail: err => {
|
||
this.isDownloading =false;
|
||
this.downloadError(err);
|
||
}
|
||
});
|
||
|
||
task.onProgressUpdate((e) => {
|
||
console.log(e.progress);
|
||
this.progress = e.progress;
|
||
});
|
||
},
|
||
downloadError(e) {
|
||
this.show = false;
|
||
this.progress = 0;
|
||
uni.showModal({
|
||
title: '提示',
|
||
content: '更新失败,请稍后再试',
|
||
showCancel: false,
|
||
confirmColor: '#414cd9'
|
||
});
|
||
},
|
||
downloadSuccess(e) {
|
||
this.completed = true;
|
||
},
|
||
restart(e) {
|
||
this.show = false;
|
||
this.completed = false;
|
||
this.progress = 0;
|
||
// #ifdef APP-PLUS
|
||
plus.runtime.restart();
|
||
// #endif
|
||
},
|
||
hide(e) {
|
||
var animation = uni.createAnimation({
|
||
duration: 300,
|
||
timingFunction: 'ease',
|
||
});
|
||
animation.scale(0).opacity(0).step();
|
||
this.inData = animation.export();
|
||
setTimeout((e) => {
|
||
this.show = false;
|
||
this.inData = null;
|
||
}, 420);
|
||
},
|
||
|
||
},
|
||
}
|
||
</script>
|
||
|
||
<style scoped lang="scss">
|
||
.version-text{
|
||
margin-right: 10rpx;
|
||
font-size: 26rpx;
|
||
color: #999;
|
||
position: relative;
|
||
z-index: -2rpx;
|
||
}
|
||
.close-btn{
|
||
display: flex;
|
||
justify-content: center;
|
||
color: #fff;
|
||
|
||
.mix-icon{
|
||
margin-top: -20rpx;
|
||
padding: 20rpx;
|
||
font-size: 48rpx;
|
||
}
|
||
}
|
||
.scroll-view{
|
||
height: auto !important;
|
||
min-height: 120rpx;
|
||
max-height: 17vh;
|
||
|
||
text{
|
||
margin-bottom: 16rpx;
|
||
line-height: 1.5;
|
||
font-size: 28rpx;
|
||
}
|
||
}
|
||
.roundBox {
|
||
width: 5000upx;
|
||
height: 5000upx;
|
||
margin-left: -2500upx;
|
||
}
|
||
|
||
.animated {
|
||
-webkit-animation-duration: 1s;
|
||
animation-duration: 1s;
|
||
-webkit-animation-fill-mode: both;
|
||
animation-fill-mode: both;
|
||
animation-timing-function: linear;
|
||
}
|
||
|
||
.animated.infinite {
|
||
-webkit-animation-iteration-count: infinite;
|
||
animation-iteration-count: infinite;
|
||
}
|
||
|
||
@keyframes goUp {
|
||
from {
|
||
-webkit-transform: translate3d(0, 70%, 0);
|
||
transform: translate3d(0, 70%, 0);
|
||
}
|
||
|
||
to {
|
||
-webkit-transform: translate3d(0, 0, 0);
|
||
transform: translate3d(0, 0, 0);
|
||
}
|
||
}
|
||
|
||
.goUp {
|
||
-webkit-animation-name: goUp;
|
||
animation-name: goUp;
|
||
-webkit-animation-duration: 600ms;
|
||
animation-duration: 600ms;
|
||
animation-timing-function: ease-in;
|
||
}
|
||
|
||
@keyframes splash {
|
||
|
||
0,
|
||
100% {
|
||
transform: scaleX(0.9);
|
||
}
|
||
|
||
5%,
|
||
95% {
|
||
transform: scaleX(1.02);
|
||
}
|
||
|
||
10%,
|
||
80% {
|
||
transform: scaleX(1.05);
|
||
}
|
||
|
||
25%,
|
||
75% {
|
||
transform: scaleX(1.08);
|
||
}
|
||
|
||
50% {
|
||
transform: scaleX(1.1);
|
||
}
|
||
}
|
||
|
||
.splash {
|
||
-webkit-animation-name: splash;
|
||
animation-name: splash;
|
||
-webkit-animation-duration: 0.6s;
|
||
animation-duration: 0.6s;
|
||
animation-timing-function: linear;
|
||
}
|
||
|
||
@-webkit-keyframes splashOut {
|
||
from {
|
||
opacity: 1;
|
||
transform: scaleX(0);
|
||
}
|
||
|
||
to {
|
||
opacity: 0;
|
||
transform: scaleX(2);
|
||
}
|
||
}
|
||
|
||
.splashOut {
|
||
-webkit-animation-name: splashOut;
|
||
animation-name: splashOut;
|
||
-webkit-animation-duration: 1s;
|
||
animation-duration: 1s;
|
||
}
|
||
|
||
@keyframes bounceUp {
|
||
0% {
|
||
transform: translate3d(0, 0, 0);
|
||
}
|
||
|
||
50% {
|
||
transform: translate3d(0, -30rpx, 0);
|
||
}
|
||
}
|
||
|
||
.bounceUp {
|
||
-webkit-animation-name: bounceUp;
|
||
animation-name: bounceUp;
|
||
-webkit-animation-duration: 1.6s;
|
||
animation-duration: 1.6s;
|
||
animation-timing-function: linear;
|
||
}
|
||
|
||
@keyframes fadeOut {
|
||
|
||
0,
|
||
100% {
|
||
opacity: 1;
|
||
}
|
||
|
||
50% {
|
||
opacity: 0;
|
||
}
|
||
}
|
||
|
||
.fadeOut {
|
||
-webkit-animation-name: fadeOut;
|
||
animation-name: fadeOut;
|
||
}
|
||
|
||
@keyframes fadeOutRight {
|
||
0% {
|
||
opacity: 0;
|
||
transform: translate3d(-200%, 0, 0);
|
||
}
|
||
|
||
50% {
|
||
opacity: 1;
|
||
transform: translate3d(0, 0, 0);
|
||
}
|
||
|
||
100% {
|
||
opacity: 0;
|
||
transform: translate3d(200%, 0, 0);
|
||
}
|
||
}
|
||
|
||
.fadeOutRight {
|
||
-webkit-animation-name: fadeOutRight;
|
||
animation-name: fadeOutRight;
|
||
}
|
||
|
||
.animated.delay-03s {
|
||
-webkit-animation-delay: 0.3s;
|
||
animation-delay: 0.3s;
|
||
}
|
||
|
||
.animated.delay-06s {
|
||
-webkit-animation-delay: 0.6s;
|
||
animation-delay: 0.6s;
|
||
}
|
||
|
||
.animated.delay-1s {
|
||
-webkit-animation-delay: 1s;
|
||
animation-delay: 1s;
|
||
}
|
||
|
||
.animated.delay-2s {
|
||
-webkit-animation-delay: 2s;
|
||
animation-delay: 2s;
|
||
}
|
||
|
||
.animated.delay-3s {
|
||
-webkit-animation-delay: 3s;
|
||
animation-delay: 3s;
|
||
}
|
||
|
||
.animated.fast {
|
||
-webkit-animation-duration: 800ms;
|
||
animation-duration: 800ms;
|
||
}
|
||
|
||
.animated.faster {
|
||
-webkit-animation-duration: 500ms;
|
||
animation-duration: 500ms;
|
||
}
|
||
|
||
.animated.fastest {
|
||
-webkit-animation-duration: 200ms;
|
||
animation-duration: 200ms;
|
||
}
|
||
|
||
.animated.slow {
|
||
-webkit-animation-duration: 2s;
|
||
animation-duration: 2s;
|
||
}
|
||
|
||
.animated.slower {
|
||
-webkit-animation-duration: 3s;
|
||
animation-duration: 3s;
|
||
}
|
||
|
||
.animated.slowest {
|
||
-webkit-animation-duration: 10s;
|
||
animation-duration: 10s;
|
||
}
|
||
|
||
.animated.slow4 {
|
||
-webkit-animation-duration: 5s;
|
||
animation-duration: 5s;
|
||
}
|
||
|
||
.animated.slow5 {
|
||
-webkit-animation-duration: 5s;
|
||
animation-duration: 5s;
|
||
}
|
||
|
||
.animated.slow8 {
|
||
-webkit-animation-duration: 8s;
|
||
animation-duration: 8s;
|
||
}
|
||
|
||
.goAway {
|
||
transform: translate3d(-50%, 10%, 0);
|
||
-webkit-animation-name: goAway;
|
||
animation-name: goAway;
|
||
-webkit-animation-duration: 2s;
|
||
animation-duration: 2s;
|
||
}
|
||
|
||
@keyframes goAway {
|
||
from {
|
||
transform: translate3d(-50%, 10%, 0);
|
||
}
|
||
|
||
to {
|
||
transform: translate3d(-1.3%, -17.6%, 0);
|
||
}
|
||
}
|
||
|
||
.goAwayLeft {
|
||
transform: translate3d(50%, 10%, 0);
|
||
-webkit-animation-name: goAwayLeft;
|
||
animation-name: goAwayLeft;
|
||
-webkit-animation-duration: 2s;
|
||
animation-duration: 2s;
|
||
}
|
||
|
||
@keyframes goAwayLeft {
|
||
from {
|
||
transform: translate3d(50%, 10%, 0);
|
||
}
|
||
|
||
to {
|
||
transform: translate3d(2%, -17%, 0);
|
||
}
|
||
}
|
||
|
||
@keyframes showIn {
|
||
|
||
0% {
|
||
opacity: 0;
|
||
transform: scale3d(0.5, 0.5, 0.5);
|
||
}
|
||
|
||
100% {
|
||
opacity: 1;
|
||
transform: scale3d(1, 1, 1);
|
||
}
|
||
}
|
||
|
||
.showIn {
|
||
animation-duration: 0.4s;
|
||
animation-name: showIn;
|
||
}
|
||
|
||
div,a,img,span,page,view,navigator,image,text,input,textarea,button,form{
|
||
box-sizing: border-box;
|
||
}
|
||
|
||
a{
|
||
text-decoration: none;
|
||
color: $main;
|
||
}
|
||
|
||
form{
|
||
display: block;
|
||
width: 100%;
|
||
}
|
||
|
||
image{will-change: transform}
|
||
|
||
input,textarea,form{
|
||
width: 100%;
|
||
height: auto;
|
||
min-height: 10px;
|
||
display: block;
|
||
font-size: inherit;
|
||
}
|
||
|
||
button{
|
||
color: inherit;
|
||
line-height: inherit;
|
||
margin: 0;
|
||
background-color: transparent;
|
||
padding: 0;
|
||
-webkit-border-radius: 0;
|
||
-moz-border-radius: 0;
|
||
border-radius: 0;
|
||
&:after{
|
||
display: none;
|
||
}
|
||
}
|
||
|
||
switch .uni-switch-input{
|
||
margin-right: 0;
|
||
}
|
||
.wx-switch-input,.uni-switch-input{width:42px !important;height:22px !important;}
|
||
.wx-switch-input::before,.uni-switch-input::before{width:40px !important;height: 20px !important;}
|
||
.wx-switch-input::after,.uni-switch-input::after{width: 20px !important;height: 20px !important;}
|
||
|
||
|
||
/**背景颜色**/
|
||
.bg{
|
||
background-color: $main;
|
||
color: $mainInverse;
|
||
}
|
||
.gradualBg{
|
||
background-image: $mainGradual;
|
||
color: $mainGradualInverse ;
|
||
}
|
||
.grayBg{
|
||
background-color: #f7f7f7;
|
||
color: #30302f;
|
||
}
|
||
.whiteBg{
|
||
background-color: #fff;
|
||
color: #000;
|
||
}
|
||
.blackBg{
|
||
background-color: #000;
|
||
color: #fff;
|
||
}
|
||
.orangeBg{
|
||
background-color: $orange;
|
||
color: #fff;
|
||
}
|
||
.redBg{
|
||
background-color: $red;
|
||
color: #fff;
|
||
}
|
||
.yellowBg{
|
||
background-color: $yellow;
|
||
color: #000;
|
||
}
|
||
.greenBg{
|
||
background-color: $green;
|
||
color: #fff;
|
||
}
|
||
.brownBg{
|
||
background-color: $brown;
|
||
color: #fff;
|
||
}
|
||
.blueBg{
|
||
background-color: $blue;
|
||
color: #fff;
|
||
}
|
||
.purpleBg{
|
||
background-color: $purple;
|
||
color: #fff;
|
||
}
|
||
|
||
/* 文字颜色 */
|
||
.main{
|
||
color: $main;
|
||
}
|
||
.green{
|
||
color: $green;
|
||
}
|
||
.red{
|
||
color: $red;
|
||
}
|
||
.yellow{
|
||
color: $yellow;
|
||
}
|
||
.black{
|
||
color: $black;
|
||
}
|
||
.white{
|
||
color: $white;
|
||
}
|
||
.gray{
|
||
color: $gray;
|
||
}
|
||
.grey{
|
||
color: $grey;
|
||
}
|
||
.orange{
|
||
color: $orange;
|
||
}
|
||
.brown{
|
||
color: $brown;
|
||
}
|
||
.blue{
|
||
color: $blue;
|
||
}
|
||
.purple{
|
||
color: $purple;
|
||
}
|
||
|
||
.hoverMain{
|
||
&:hover{
|
||
color: $main;
|
||
}
|
||
}
|
||
|
||
.hoverGreen{
|
||
&:hover{
|
||
color: $green;
|
||
}
|
||
}
|
||
|
||
.hoverRed{
|
||
&:hover{
|
||
color: $red;
|
||
}
|
||
}
|
||
|
||
.hoverBlue{
|
||
&:hover{
|
||
color: $blue;
|
||
}
|
||
}
|
||
|
||
.hoverGray{
|
||
&:hover{
|
||
color: $gray;
|
||
}
|
||
}
|
||
|
||
.hoverWhite{
|
||
&:hover{
|
||
color: $white;
|
||
}
|
||
}
|
||
|
||
.hoverBlack{
|
||
&:hover{
|
||
color: $black;
|
||
}
|
||
}
|
||
|
||
.hoverOrange{
|
||
&:hover{
|
||
color: $orange;
|
||
}
|
||
}
|
||
|
||
.hoverYellow{
|
||
&:hover{
|
||
color: $yellow;
|
||
}
|
||
}
|
||
|
||
.hoverBrown{
|
||
&:hover{
|
||
color: $brown;
|
||
}
|
||
}
|
||
|
||
.hoverPurple{
|
||
&:hover{
|
||
color: $purple;
|
||
}
|
||
}
|
||
|
||
/* 宽度 高度 */
|
||
$w:0;
|
||
@while $w <= 500 {
|
||
@if $w <= 100 {
|
||
.w#{$w}p{
|
||
width: $w*1%;
|
||
}
|
||
.h#{$w}p{
|
||
height: $w*1%;
|
||
}
|
||
@if $w == 100 {
|
||
.100p{
|
||
width: 100%;
|
||
height: 100%;
|
||
}
|
||
.ww{
|
||
width: 100vw;
|
||
}
|
||
.hh{
|
||
height: 100vh;
|
||
}
|
||
}
|
||
}
|
||
.w#{$w}{
|
||
width: $w*2upx;
|
||
}
|
||
.h#{$w}{
|
||
height: $w*2upx;
|
||
}
|
||
@if $w < 10 {
|
||
$w : $w + 1 ;
|
||
} @else{
|
||
$w : $w + 5 ;
|
||
}
|
||
}
|
||
|
||
|
||
/* 字号 */
|
||
@for $fz from 12 through 100 {
|
||
.fz#{$fz}{
|
||
font-size: $fz*2upx !important;
|
||
}
|
||
}
|
||
|
||
/* 边距 - 覆盖顺序是小的尺寸覆盖大的尺寸 少的方向覆盖多的方向 */
|
||
$s : 0 ;
|
||
@while $s <= 500 {
|
||
.pd#{$s}{
|
||
padding: $s*2upx!important;
|
||
}
|
||
.m#{$s}{
|
||
margin: $s*2upx!important;
|
||
}
|
||
@if $s == 15 {
|
||
.pd{
|
||
padding: 30upx!important;
|
||
}
|
||
.m{
|
||
margin: 30upx!important;
|
||
}
|
||
}
|
||
@if $s < 10 {
|
||
$s : $s + 1 ;
|
||
} @else if($s < 100){
|
||
$s : $s + 5 ;
|
||
} @else if($s < 300){
|
||
$s : $s + 10 ;
|
||
} @else{
|
||
$s : $s + 50 ;
|
||
}
|
||
}
|
||
|
||
$s : 0 ;
|
||
@while $s <= 500 {
|
||
.ptb#{$s}{
|
||
padding-top: $s*2upx!important;
|
||
padding-bottom: $s*2upx!important;
|
||
}
|
||
.plr#{$s}{
|
||
padding-left: $s*2upx!important;
|
||
padding-right: $s*2upx!important;
|
||
}
|
||
.mtb#{$s}{
|
||
margin-top: $s*2upx!important;
|
||
margin-bottom: $s*2upx!important;
|
||
}
|
||
.mlr#{$s}{
|
||
margin-left: $s*2upx!important;
|
||
margin-right: $s*2upx!important;
|
||
}
|
||
@if $s == 15 {
|
||
.ptb{
|
||
padding-top: 30upx!important;
|
||
padding-bottom: 30upx!important;
|
||
}
|
||
.plr{
|
||
padding-left: 30upx!important;
|
||
padding-right: 30upx!important;
|
||
}
|
||
|
||
.mlr{
|
||
margin-left: 30upx!important;
|
||
margin-right: 30upx!important;
|
||
}
|
||
.mtb{
|
||
margin-top: 30upx!important;
|
||
margin-bottom: 30upx!important;
|
||
}
|
||
}
|
||
@if $s < 10 {
|
||
$s : $s + 1 ;
|
||
} @else if($s < 100){
|
||
$s : $s + 5 ;
|
||
} @else if($s < 300){
|
||
$s : $s + 10 ;
|
||
} @else{
|
||
$s : $s + 50 ;
|
||
}
|
||
}
|
||
|
||
$s : 0 ;
|
||
@while $s <= 500 {
|
||
.pl#{$s}{
|
||
padding-left: $s*2upx!important;
|
||
}
|
||
.pr#{$s}{
|
||
padding-right: $s*2upx!important;
|
||
}
|
||
.pt#{$s}{
|
||
padding-top: $s*2upx!important;
|
||
}
|
||
.pb#{$s}{
|
||
padding-bottom: $s*2upx!important;
|
||
}
|
||
.ml#{$s}{
|
||
margin-left: $s*2upx!important;
|
||
}
|
||
.mr#{$s}{
|
||
margin-right: $s*2upx!important;
|
||
}
|
||
.mt#{$s}{
|
||
margin-top: $s*2upx!important;
|
||
}
|
||
.mb#{$s}{
|
||
margin-bottom: $s*2upx!important;
|
||
}
|
||
@if $s == 15 {
|
||
.pt{
|
||
padding-top: 30upx!important;
|
||
}
|
||
.pb{
|
||
padding-bottom: 30upx!important;
|
||
}
|
||
.pl{
|
||
padding-left: 30upx!important;
|
||
}
|
||
.pr{
|
||
padding-right: 30upx!important;
|
||
}
|
||
.mt{
|
||
margin-top: 30upx!important;
|
||
}
|
||
.mr{
|
||
margin-right: 30upx!important;
|
||
}
|
||
.ml{
|
||
margin-left: 30upx!important;
|
||
}
|
||
.mb{
|
||
margin-bottom: 30upx!important;
|
||
}
|
||
}
|
||
@if $s < 10 {
|
||
$s : $s + 1 ;
|
||
} @else if($s < 100){
|
||
$s : $s + 5 ;
|
||
} @else if($s < 300){
|
||
$s : $s + 10 ;
|
||
} @else{
|
||
$s : $s + 50 ;
|
||
}
|
||
}
|
||
|
||
|
||
|
||
/* 文字溢出隐藏 */
|
||
.clip{
|
||
width: 100%;
|
||
display: -webkit-box;
|
||
overflow: hidden;
|
||
-webkit-line-clamp: 1;
|
||
-webkit-box-orient: vertical;
|
||
@for $i from 2 through 10{
|
||
&.c#{$i}{
|
||
-webkit-line-clamp: $i;
|
||
}
|
||
}
|
||
}
|
||
|
||
.cut{
|
||
display: block;
|
||
width: 100%;
|
||
overflow: hidden;
|
||
text-overflow: ellipsis;
|
||
white-space: nowrap;
|
||
}
|
||
|
||
/* 价格 */
|
||
.price{
|
||
font-size: inherit ;
|
||
&:before{
|
||
content: "¥";
|
||
font-size: 70%;
|
||
color: inherit;
|
||
font-weight: normal;
|
||
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif ;
|
||
}
|
||
.point{
|
||
display: inline-block;
|
||
font-size: 70%;
|
||
font-weight: inherit;
|
||
letter-spacing: 1px;
|
||
color: inherit;
|
||
}
|
||
&.noPrefix{
|
||
&:before{
|
||
content: '';
|
||
}
|
||
}
|
||
}
|
||
|
||
/* 布局 */
|
||
.grid,.gridNoPd,.gridSmPd,.gridNoMb{
|
||
display: -webkit-box;
|
||
display: -webkit-flex;
|
||
display: -ms-flexbox;
|
||
display: flex;
|
||
-webkit-flex-wrap: wrap;
|
||
-ms-flex-wrap: wrap;
|
||
flex-wrap: wrap;
|
||
width: 100%;
|
||
padding: 20upx 20upx 0 20upx;
|
||
>.item,>image,>view,>navigator,>text,>button{
|
||
width: 50%;
|
||
padding: 0 10upx;
|
||
margin-bottom: 20upx;
|
||
}
|
||
@for $i from 1 through 50{
|
||
&.g#{$i}{
|
||
>.item,>image,>view,>navigator,>text,>button{
|
||
width: 100%/$i;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
.gridNoMb{
|
||
>.item,>image,>view,>navigator,>text,>button{
|
||
margin-bottom: 0;
|
||
}
|
||
}
|
||
|
||
.gridNoPd{
|
||
padding: 0;
|
||
>.item,>image,>view,>navigator,>text,>button{
|
||
padding: 0;
|
||
margin-bottom: 0;
|
||
}
|
||
}
|
||
.gridSmPd{
|
||
padding: 0;
|
||
>.item,>image,>view,>navigator,>text,>button{
|
||
padding-right: 0;
|
||
&:first-child{
|
||
padding-left: 0;
|
||
padding-right: 10upx;
|
||
}
|
||
}
|
||
}
|
||
|
||
/* flex布局 */
|
||
.flex{
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: space-between;
|
||
&.t{
|
||
align-items: flex-start;
|
||
}
|
||
&.b{
|
||
align-items: flex-end;
|
||
}
|
||
&.cv{ //垂直方向铺满
|
||
align-items: stretch;
|
||
}
|
||
&.bk{ //水平方向铺满
|
||
flex-direction: column;
|
||
}
|
||
&.lt{
|
||
justify-content: flex-start;
|
||
}
|
||
&.ct{
|
||
justify-content: center;
|
||
}
|
||
&.rt{
|
||
justify-content: flex-end;
|
||
}
|
||
&.ar{
|
||
justify-content: space-around;
|
||
}
|
||
&.av{
|
||
>.item,view,button,navigator,image,text{
|
||
flex:1;
|
||
}
|
||
}
|
||
}
|
||
|
||
/* 定位布局 */
|
||
.father{
|
||
position: relative;
|
||
}
|
||
.abs,.fixed{
|
||
position: absolute;
|
||
top: 0;
|
||
left: 0;
|
||
right: 0;
|
||
bottom: 0;
|
||
z-index: 1;
|
||
&image{
|
||
width: 100%;
|
||
height: 100%;
|
||
}
|
||
&.top{
|
||
bottom: auto;
|
||
}
|
||
&.bottom{
|
||
top: auto;
|
||
}
|
||
&.left{
|
||
right: auto;
|
||
}
|
||
&.right{
|
||
left: auto;
|
||
}
|
||
}
|
||
@for $i from 0 through 20 {
|
||
.z#{$i}{
|
||
z-index: $i !important;
|
||
}
|
||
}
|
||
|
||
@for $i from 1 through 200 {
|
||
.top-#{$i}{
|
||
bottom: auto;
|
||
top: $i * -2upx;
|
||
}
|
||
.left-#{$i}{
|
||
right: auto;
|
||
left: $i * -2upx;
|
||
}
|
||
.bottom-#{$i}{
|
||
top: auto;
|
||
bottom: $i * -2upx;
|
||
}
|
||
.right-#{$i}{
|
||
left: auto;
|
||
right: $i * -2upx;
|
||
}
|
||
.top#{$i}{
|
||
bottom: auto;
|
||
top: $i * 2upx;
|
||
}
|
||
.left#{$i}{
|
||
right: auto;
|
||
left: $i * 2upx;
|
||
}
|
||
.bottom#{$i}{
|
||
top: auto;
|
||
bottom: $i * 2upx;
|
||
}
|
||
.right#{$i}{
|
||
left: auto;
|
||
right: $i * 2upx;
|
||
}
|
||
.top-#{$i}p{
|
||
bottom: auto;
|
||
top: $i * -1%;
|
||
}
|
||
.left-#{$i}p{
|
||
right: auto;
|
||
left: $i * -1%;
|
||
}
|
||
.bottom-#{$i}p{
|
||
top: auto;
|
||
bottom: $i * -1%;
|
||
}
|
||
.right-#{$i}p{
|
||
left: auto;
|
||
right: $i * -1%;
|
||
}
|
||
.top#{$i}p{
|
||
bottom: auto;
|
||
top: $i * 1%;
|
||
}
|
||
.left#{$i}p{
|
||
right: auto;
|
||
left: $i * 1%;
|
||
}
|
||
.bottom#{$i}p{
|
||
top: auto;
|
||
bottom: $i * 1%;
|
||
}
|
||
.right#{$i}p{
|
||
left: auto;
|
||
right: $i * 1%;
|
||
}
|
||
}
|
||
|
||
.fixed{
|
||
position: fixed;
|
||
}
|
||
|
||
/* fix-auto布局 */
|
||
.fixAuto,.fixAutoNoPd,.fixAutoSmPd{
|
||
display: table;
|
||
width: 100%;
|
||
padding: 20upx 10upx;
|
||
>.item,>view,>image,>navigator,>text,>button{
|
||
vertical-align: top;
|
||
padding: 0 10upx;
|
||
display: table-cell ;
|
||
}
|
||
&.middle{
|
||
>.item,>view,>image,>navigator,>text{
|
||
vertical-align: middle;
|
||
}
|
||
}
|
||
&.bottom{
|
||
>.item,>view,>image,>navigator,>text{
|
||
vertical-align: bottom;
|
||
}
|
||
}
|
||
}
|
||
.fixAutoSmPd{
|
||
padding: 0;
|
||
>.item,>view,>image,>navigator,>text{
|
||
padding-right: 0;
|
||
&:first-child{
|
||
padding-left: 0;
|
||
padding-right: 10upx;
|
||
}
|
||
}
|
||
}
|
||
.fixAutoNoPd{
|
||
padding: 0;
|
||
>.item,>view,>image,>navigator,>text{
|
||
padding: 0;
|
||
}
|
||
}
|
||
|
||
/* 浮动组件 */
|
||
.clear{
|
||
&:after{
|
||
content: "";
|
||
clear: both;
|
||
height: 0;
|
||
display: block;
|
||
visibility: hidden;
|
||
}
|
||
}
|
||
.fl{
|
||
float: left;
|
||
}
|
||
.fr{
|
||
float: right;
|
||
}
|
||
|
||
/* 按钮样式类 */
|
||
.btn,.roundBtn{
|
||
cursor: pointer;
|
||
display: inline-block;
|
||
text-align: center;
|
||
padding: 8upx 24upx;
|
||
background-color: $main;
|
||
color: $mainInverse ;
|
||
font-size: 28upx;
|
||
border: 1px solid $main;
|
||
-webkit-border-radius: 8upx;
|
||
-moz-border-radius: 8upx;
|
||
border-radius: 8upx;
|
||
transition: 0.4s;
|
||
white-space: nowrap;
|
||
text-overflow: ellipsis;
|
||
&.gradualBg{
|
||
border-color: transparent;
|
||
background-image: $mainGradual;
|
||
color: $mainGradualInverse;
|
||
|
||
}
|
||
&.blackBg{
|
||
background-color: $black;
|
||
border-color: $black;
|
||
color: #fff;
|
||
&.shadow{
|
||
box-shadow: 0px 2px 9px -1px rgba($black , 0.4);
|
||
}
|
||
}
|
||
&.greenBg{
|
||
background-color: $green;
|
||
border-color: $green;
|
||
color: #fff;
|
||
&.shadow{
|
||
box-shadow: 0px 2px 9px -1px rgba($green , 0.4);
|
||
}
|
||
}
|
||
&.grayBg{
|
||
border-color: rgba(#30302f,0.2);
|
||
background-color: #f7f7f7;
|
||
color: #30302f;
|
||
&.shadow{
|
||
box-shadow: 0px 2px 9px -1px rgba( #30302f , 0.2);
|
||
}
|
||
}
|
||
&.whiteBg{
|
||
border-color: rgba(#fff,0.2);
|
||
background-color: #fff;
|
||
color: #000;
|
||
}
|
||
|
||
&.orangeBg{
|
||
border-color: $orange;
|
||
background-color: $orange;
|
||
color: #fff;
|
||
&.shadow{
|
||
box-shadow: 0px 2px 9px -1px rgba( $orange , 0.4);
|
||
}
|
||
}
|
||
&.redBg{
|
||
border-color: $red;
|
||
background-color: $red;
|
||
color: #fff;
|
||
&.shadow{
|
||
box-shadow: 0px 2px 9px -1px rgba( $red , 0.4);
|
||
}
|
||
}
|
||
&.yellowBg{
|
||
border-color: $yellow;
|
||
background-color: $yellow;
|
||
color: #000;
|
||
&.shadow{
|
||
box-shadow: 0px 2px 9px -1px rgba( $yellow , 0.4);
|
||
}
|
||
}
|
||
|
||
&.line{
|
||
background-color: transparent;
|
||
background-image: none;
|
||
color: $main;
|
||
&.blackBg{
|
||
color: $black;
|
||
}
|
||
&.greenBg{
|
||
color: $green;
|
||
}
|
||
&.yellowBg{
|
||
color: $yellow;
|
||
}
|
||
&.grayBg{
|
||
color: #30302f;
|
||
}
|
||
&.whiteBg{
|
||
border-color: rgba(#fff,0.7);
|
||
color: #fff;
|
||
}
|
||
&.orangeBg{
|
||
color: $orange;
|
||
}
|
||
&.redBg{
|
||
color: $red;
|
||
}
|
||
}
|
||
&+.btn,&+.roundBtn{
|
||
margin-left: 20upx;
|
||
}
|
||
&.block{
|
||
margin: 0;
|
||
padding: 20upx 24upx;
|
||
display: block;
|
||
width: 100%;
|
||
&+.btn{
|
||
margin-left: 0;
|
||
}
|
||
}
|
||
&:hover{
|
||
-webkit-transform: scale(0.99);
|
||
-moz-transform: scale(0.99);
|
||
-ms-transform: scale(0.99);
|
||
-o-transform: scale(0.99);
|
||
transform: scale(0.99);
|
||
opacity: 0.8;
|
||
}
|
||
&.disabled{
|
||
-webkit-transform: scale(1);
|
||
-moz-transform: scale(1);
|
||
-ms-transform: scale(1);
|
||
-o-transform: scale(1);
|
||
transform: scale(1);
|
||
opacity: 0.4;
|
||
cursor: not-allowed;
|
||
}
|
||
}
|
||
|
||
[class^="tag"] , [class*=" tag"]{
|
||
display: inline-block;
|
||
font-size: 24upx;
|
||
padding: 4upx 14upx;
|
||
border-radius: 4upx;
|
||
margin-right: 6upx;
|
||
margin-left: 6upx;
|
||
}
|
||
.tag{
|
||
background-color: rgba($main,0.2);
|
||
color: $main;
|
||
}
|
||
.tagBlue{
|
||
background-color: rgba($blue,0.2);
|
||
color: $blue;
|
||
}
|
||
.tagGray{
|
||
background-color: rgba($gray,0.2);
|
||
color: $gray;
|
||
}
|
||
|
||
.tagGradual{
|
||
background-image: linear-gradient(to top right,rgba($main,0.2),rgba($main,0.1));
|
||
color: $main;
|
||
}
|
||
|
||
.tagBlack{
|
||
background-color: rgba($black,0.2);
|
||
color: $black;
|
||
}
|
||
.tagGreen{
|
||
background-color: rgba($green,0.2);
|
||
color: $green;
|
||
}
|
||
|
||
.tagWhite{
|
||
background-color: rgba($white,0.2);
|
||
color: $white;
|
||
}
|
||
|
||
.tagOrange{
|
||
background-color: rgba($orange,0.2);
|
||
color: $orange;
|
||
}
|
||
.tagRed{
|
||
background-color: rgba($red,0.2);
|
||
color: $red;
|
||
}
|
||
.tagYellow{
|
||
background-color: rgba($yellow,0.2);
|
||
color: $yellow;
|
||
}
|
||
|
||
/* 边线(实线、虚线) */
|
||
.bdn{
|
||
border: none;
|
||
}
|
||
.bd{
|
||
border: 1px solid $borderColor;
|
||
&.dashed{
|
||
border-style: dashed;
|
||
}
|
||
}
|
||
.bt{
|
||
border-top:1px solid $borderColor;
|
||
&.dashed{
|
||
border-top-style: dashed;
|
||
}
|
||
}
|
||
.bb{
|
||
border-bottom:1px solid $borderColor;
|
||
&.dashed{
|
||
border-bottom-style: dashed;
|
||
}
|
||
}
|
||
.bl{
|
||
border-left:1px solid $borderColor;
|
||
&.dashed{
|
||
border-left-style: dashed;
|
||
}
|
||
}
|
||
.br{
|
||
border-right: 1px solid $borderColor;
|
||
&.dashed{
|
||
border-right-style: dashed;
|
||
}
|
||
}
|
||
|
||
$b:2;
|
||
@while $b <= 10 {
|
||
.bd#{$b}{
|
||
border: #{$b}px solid $borderColor;
|
||
&.dashed{
|
||
border-style: dashed;
|
||
}
|
||
}
|
||
.bt#{$b}{
|
||
border-top:#{$b}px solid $borderColor;
|
||
&.dashed{
|
||
border-top-style: dashed;
|
||
}
|
||
}
|
||
.bb#{$b}{
|
||
border-bottom:#{$b}px solid $borderColor;
|
||
&.dashed{
|
||
border-bottom-style: dashed;
|
||
}
|
||
}
|
||
.bl#{$b}{
|
||
border-left:#{$b}px solid $borderColor;
|
||
&.dashed{
|
||
border-left-style: dashed;
|
||
}
|
||
}
|
||
.br#{$b}{
|
||
border-right: #{$b}px solid $borderColor;
|
||
&.dashed{
|
||
border-right-style: dashed;
|
||
}
|
||
}
|
||
$b : $b + 1 ;
|
||
}
|
||
|
||
/* 边线颜色 */
|
||
.mainBd{
|
||
border-color: $main;
|
||
}
|
||
.greenBd{
|
||
border-color: $green;
|
||
}
|
||
.redBd{
|
||
border-color: $red;
|
||
}
|
||
.yellowBd{
|
||
border-color:$yellow ;
|
||
}
|
||
.blackBd{
|
||
border-color: $black;
|
||
}
|
||
.whiteBd{
|
||
border-color:$white ;
|
||
}
|
||
.grayBd{
|
||
border-color:$gray;
|
||
}
|
||
.greyBd{
|
||
border-color:$grey;
|
||
}
|
||
.orangeBd{
|
||
border-color:$orange;
|
||
}
|
||
|
||
/* 圆角 */
|
||
.radius,.rds{
|
||
-webkit-border-radius: 100%!important;
|
||
-moz-border-radius: 100%!important;
|
||
border-radius: 100%!important;
|
||
}
|
||
|
||
$r:0;
|
||
@while $r <= 50{
|
||
.rds#{$r},&.radius#{$r}{
|
||
-webkit-border-radius:$r*2upx!important;
|
||
-moz-border-radius:$r*2upx!important;
|
||
border-radius:$r*2upx!important;
|
||
}
|
||
$r : $r + 1;
|
||
}
|
||
|
||
.rdsTl,.radiusTopLeft{
|
||
border-top-left-radius:100%!important;
|
||
}
|
||
.rdsTr,.radiusTopRight{
|
||
border-top-right-radius: 100%!important;
|
||
}
|
||
.rdsBl,.radiusBottomLeft{
|
||
border-bottom-left-radius: 100%!important;
|
||
}
|
||
.rdsBr,.radiusBottomRight{
|
||
border-bottom-right-radius: 100%!important;
|
||
}
|
||
|
||
$r:0;
|
||
@while $r <= 50{
|
||
.rdsTl#{$r},.radiusTopLeft#{$r}{
|
||
border-top-left-radius: $r*2upx!important;
|
||
}
|
||
.rdsTr#{$r},.radiusTopRight#{$r}{
|
||
border-top-right-radius: $r*2upx!important;
|
||
}
|
||
.rdsBl#{$r},.radiusBottomLeft#{$r}{
|
||
border-bottom-left-radius: $r*2upx!important;
|
||
}
|
||
.rdsBr#{$r},.radiusBottomRight#{$r}{
|
||
border-bottom-right-radius: $r*2upx!important;
|
||
}
|
||
$r : $r + 1;
|
||
}
|
||
|
||
/* 正方形&长方形 */
|
||
[class^="square"] , [class*=" square"]{
|
||
width: 100%;
|
||
position: relative;
|
||
height: auto;
|
||
>.item,>image,>view,>navigator,>text,>button{
|
||
position: absolute;
|
||
top: 0;
|
||
left: 0;
|
||
width: 100%;
|
||
height: 100%;
|
||
}
|
||
}
|
||
|
||
$p : 200 ;
|
||
@while $p > 0 {
|
||
.square#{$p}{
|
||
padding-top: $p*1%;
|
||
}
|
||
@if $p == 100 {
|
||
.square{
|
||
padding-top: 100%;
|
||
}
|
||
}
|
||
$p : $p - 5 ;
|
||
}
|
||
|
||
|
||
|
||
/* 阴影 */
|
||
.shadow{
|
||
box-shadow: 0px 2px 9px -1px rgba(0, 0, 0, 0.1);
|
||
}
|
||
|
||
/* 遮罩层 */
|
||
.wrapper-top,.wt{
|
||
background-image: linear-gradient(rgba(0,0,0,0.3) , rgba(0,0,0,0.02));
|
||
}
|
||
.wrapper-bottom,.wb{
|
||
background-image: linear-gradient( rgba(0,0,0,0.02) , rgba(0,0,0,0.3) );
|
||
}
|
||
|
||
[class^="wp"],[class*=" wp"] {
|
||
z-index: 10;
|
||
}
|
||
|
||
/* 透明度 */
|
||
@for $op from 0 through 10 {
|
||
.op#{$op}{
|
||
opacity: $op * 0.1!important;
|
||
}
|
||
.wp#{$op}{
|
||
background-color: rgba(#000,$op*0.1);
|
||
}
|
||
@if $op == 5 {
|
||
.wp{
|
||
background-color: rgba(#000,0.5);
|
||
}
|
||
}
|
||
}
|
||
|
||
/* 分割线 */
|
||
[class*=" split"],[class^="split"] {
|
||
position: relative;
|
||
&:before{
|
||
content:"";
|
||
display: block;
|
||
position: absolute;
|
||
left: 0;
|
||
top: 50%;
|
||
border-left: 1px solid $borderColor;
|
||
}
|
||
}
|
||
|
||
$s:10;
|
||
@while $s <= 100 {
|
||
.split#{$s}{
|
||
&:before{
|
||
height: #{$s*2}upx;
|
||
margin-top: -#{$s}upx;
|
||
}
|
||
}
|
||
@if $s == 10 {
|
||
.split{
|
||
&:before{
|
||
height: 20upx;
|
||
margin-top: -10upx;
|
||
}
|
||
}
|
||
}
|
||
$s:$s+2;
|
||
}
|
||
|
||
.hover,[class^="hover"],[class*=" hover"]{
|
||
transition: all 0.4s;
|
||
cursor: pointer;
|
||
&:hover{
|
||
opacity: 0.8 !important;
|
||
}
|
||
}
|
||
|
||
|
||
|
||
.statusBar{
|
||
height: var(--status-bar-height);
|
||
}
|
||
|
||
.winBottom{
|
||
height: var(--windown-bottom);
|
||
}
|
||
|
||
.safeBottom{
|
||
padding-bottom: constant(safe-area-inset-bottom);
|
||
padding-bottom: env(safe-area-inset-bottom);
|
||
}
|
||
|
||
.disabled{
|
||
opacity:0.8;
|
||
cursor: not-allowed;
|
||
}
|
||
|
||
|
||
|
||
.grid,.gridNoMb,.gridNoPd{
|
||
>.btn,>.roundBtn{
|
||
&+.btn,&+.roundBtn{
|
||
margin-left: 0 ;
|
||
}
|
||
}
|
||
}
|
||
|
||
.roundBtn{
|
||
-webkit-border-radius: 100upx;
|
||
-moz-border-radius: 100upx;
|
||
border-radius: 100upx;
|
||
}
|
||
|
||
|
||
|
||
/* 位置 */
|
||
.text-center,.tc{
|
||
text-align: center!important;
|
||
}
|
||
.text-left,.tl{
|
||
text-align: left!important;
|
||
}
|
||
.text-right,.tr{
|
||
text-align: right!important;
|
||
}
|
||
.text-justify,.tj{
|
||
text-align: justify!important;
|
||
}
|
||
.text-bold,.bold{
|
||
font-weight: bold!important;
|
||
}
|
||
.text-normal,.normal{
|
||
font-weight: normal!important;
|
||
}
|
||
.break{
|
||
white-space: normal;
|
||
word-break: break-all;
|
||
}
|
||
.noBreak{
|
||
white-space: nowrap;
|
||
word-break: keep-all;
|
||
}
|
||
.inline{
|
||
display: inline-block;
|
||
}
|
||
.block{
|
||
display: block;
|
||
width: 100%;
|
||
}
|
||
.none{
|
||
display: none;
|
||
}
|
||
.center-block{
|
||
margin: 0 auto;
|
||
display: block;
|
||
}
|
||
.hidden{
|
||
overflow: hidden;
|
||
}
|
||
.hiddenX{
|
||
overflow-x: hidden;
|
||
}
|
||
.hiddenY{
|
||
overflow-y: hidden;
|
||
}
|
||
.auto{
|
||
overflow: auto;
|
||
}
|
||
.autoX{
|
||
overflow-x: auto;
|
||
}
|
||
.autoY{
|
||
overflow-y: auto;
|
||
}
|
||
.showInMb{
|
||
display: block;
|
||
}
|
||
.showInPc{
|
||
display: none;
|
||
}
|
||
table{
|
||
width: 100%;
|
||
border-collapse: collapse;
|
||
border-spacing: 0;
|
||
border: 1px solid #e6e6e6;
|
||
thead{
|
||
tr{
|
||
background-color: #f2f2f2;
|
||
th{
|
||
color: #8799a3;
|
||
width: 1%;
|
||
}
|
||
}
|
||
}
|
||
tr{
|
||
background-color: #fff;
|
||
transition: all 0.4s;
|
||
td,th{
|
||
border: 1px solid #e6e6e6;
|
||
overflow: hidden;
|
||
-o-text-overflow: ellipsis;
|
||
text-overflow: ellipsis;
|
||
white-space: nowrap;
|
||
word-wrap: break-word;
|
||
padding: 5px 10px;
|
||
height: 28px;
|
||
line-height: 28px;
|
||
&.autoWidth{
|
||
width: auto;
|
||
}
|
||
}
|
||
&:hover{
|
||
background-color: #f2f2f2;
|
||
}
|
||
}
|
||
}
|
||
</style>
|