New file |
| | |
| | | <template> |
| | | <view class="container"> |
| | | <view class="floor-screen" :class="floorMove" > |
| | | <view class="head"> |
| | | <text @click="port()">自动仓库WCS监控平台</text> |
| | | <view class="time-tools">{{year}}-{{month}}-{{day}} {{hours}}:{{minutes}}:{{seconds}} {{week}}</view> |
| | | <view class="button-left" @click="url()"></view> |
| | | <view class="button-right" @click="ledId()"></view> |
| | | </view> |
| | | <view class="main"> |
| | | <view class="main-sides" style="width: 100%;"> |
| | | <view class="box" style="height: 90%;"> |
| | | <view class="box-border box-border1"></view> |
| | | <view class="box-border box-border2"></view> |
| | | <view class="box-border box-border3"></view> |
| | | <view class="box-border box-border4"></view> |
| | | <!-- 全板出库 --> |
| | | <view style="width: 10%;height: 100%;display:inline-block;float: left;text-align: center;padding-top: 180px;"> |
| | | <text>{{title}}</text> |
| | | </view> |
| | | <!-- 滚动区域 --> |
| | | <view style="width: 80%;height: 100%;display: inline-block;"> |
| | | <!--显示order订单编号 --> |
| | | <text v-show="orderShow" style="display: block;font-size: 140rpx;" >{{orderNo}}</text> |
| | | <swiper :class="swiper" circular="true" vertical="true" display-multiple-items="6" :autoplay="autoplay" :interval="interval" :duration="duration"> |
| | | <swiper-item v-for="(item,index) in matList" :key="index"> |
| | | <view style="font-size: 160rpx;">{{item}}</view> |
| | | </swiper-item> |
| | | </swiper> |
| | | </view> |
| | | <!-- 站台号 --> |
| | | <view style="width: 10%;height: 100%;display: inline-block;float: right;padding-top: 180px;"> |
| | | <text>{{staNo}}</text> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | <view class="top-screen" :class="topMove"> |
| | | <view class="head"> |
| | | <text @click="port()">自动仓库WCS监控平台</text> |
| | | <view class="time-tools">{{year}}-{{month}}-{{day}} {{hours}}:{{minutes}}:{{seconds}} {{week}}</view> |
| | | <view class="button-left" @click="url()"></view> |
| | | <view class="button-right" @click="ledId()"></view> |
| | | </view> |
| | | <view class="main"> |
| | | <view class="main-sides"> |
| | | <view class="box box-lg"> |
| | | <view class="box-border box-border1"></view> |
| | | <view class="box-border box-border2"></view> |
| | | <view class="box-border box-border3"></view> |
| | | <view class="box-border box-border4"></view> |
| | | <view class="box-item introduce"> |
| | | <h3>自动化立体仓库</h3> |
| | | <p class="english">Automatic Storageand Retrieval System</p> |
| | | <p class="introduce-content"> 利用立体仓库设备可实现仓库高层合理化、存取自动化、操作简便化;自动化立体仓库是当前技术水平较高的形式。 |
| | | 自动化立体仓库的主体由货架、巷道式堆垛起重机、入(出)库工作台和自动运进(出)及操作控制系统组成。 |
| | | 货架是钢结构或钢筋混凝土结构的建筑物或结构体,货架内是标准尺寸的货位空间,巷道堆垛起重机穿行于货架之间的巷道中,完成存、取货的工作。管理上采用计算机及条形码技术。</p> |
| | | </view> |
| | | <view class="box-item charge-info"> |
| | | <h3>仓库数据</h3> |
| | | <p class="english">warehouse data</p> |
| | | <view class="charge-info-item"> |
| | | <image src="../../static/a1.png" mode="aspectFit"></image> |
| | | <view> |
| | | <text class="count">{{xDistance}}</text> |
| | | <text class="unit">m</text> |
| | | </view> |
| | | <view>累计走行距离(米)</view> |
| | | </view> |
| | | <view class="charge-info-item"> |
| | | <image src="../../static/b1.png" mode="aspectFit"></image> |
| | | <view> |
| | | <text class="count">{{yDistance}}</text> |
| | | <text class="unit">m</text> |
| | | </view> |
| | | <view>累计升降距离(米)</view> |
| | | </view> |
| | | <view class="charge-info-item"> |
| | | <image src="../../static/c1.png" mode="aspectFit"></image> |
| | | <view> |
| | | <text class="count">{{xDuration}}</text> |
| | | <text class="unit">m</text> |
| | | </view> |
| | | <view>累计走行时长(秒)</view> |
| | | </view> |
| | | <view class="charge-info-item"> |
| | | <image src="../../static/d1.png" mode="aspectFit"></image> |
| | | <view> |
| | | <text class="count">{{yDuration}}</text> |
| | | <text class="unit">m</text> |
| | | </view> |
| | | <view>累计升降时长(秒)</view> |
| | | </view> |
| | | </view> |
| | | <view class="box-item use-info"> |
| | | <view class="use-left"> |
| | | <h3>库位使用率</h3> |
| | | <p class="english">EQUIPMENT USAGE THIS MONTH</p> |
| | | </view> |
| | | <view class="use-right"> |
| | | <h3>20%</h3> |
| | | <p class="english">同比上月 + 5%</p> |
| | | </view> |
| | | <view class="use-main"> |
| | | <view class="left"> |
| | | <view class="progressBar"> |
| | | <view class="progress" :style="'width:'+ usedPr + '%'"></view> |
| | | </view> |
| | | <!-- <progress percent="20"activeColor="#FF5722" backgroundColor="#233751" stroke-width="30"></progress> --> |
| | | </view> |
| | | <view class="right"> |
| | | {{used}} |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | <view class="main-sides"> |
| | | <view class="box box-tp"> |
| | | <view class="box-border box-border1"></view> |
| | | <view class="box-border box-border2"></view> |
| | | <view class="box-border box-border3"></view> |
| | | <view class="box-border box-border4"></view> |
| | | <view class="box-item right-item"> |
| | | <view class="sub-left"> |
| | | <h3>入出库统计</h3> |
| | | <p class="english">ORDER STATISTICS</p> |
| | | </view> |
| | | <view class="sub-right"> |
| | | <h3>31</h3> |
| | | <p class="english">今日订单数</p> |
| | | </view> |
| | | <view class="sub-main"> |
| | | <view class="charts-box"> |
| | | <qiun-data-charts type="line" :chartData="chartsDataLine1" :echartsH5="true" :echartsApp="true"/> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | <view class="box box-md"> |
| | | <view class="box-border box-border1"></view> |
| | | <view class="box-border box-border2"></view> |
| | | <view class="box-border box-border3"></view> |
| | | <view class="box-border box-border4"></view> |
| | | <view class="box-item right-item"> |
| | | <view class="sub-left"> |
| | | <h3>库存类型</h3> |
| | | <p class="english">INCOME DATE</p> |
| | | </view> |
| | | <view class="sub-right"> |
| | | <h3>今天</h3> |
| | | <p class="english">Today</p> |
| | | </view> |
| | | <view class="sub-main"> |
| | | <view class="charts-box ring"> |
| | | <qiun-data-charts type="ring" :opts="{legend:{position:'bottom'}}" :eopts="ringOpts" :chartData="chartsDataPie2" :echartsH5="true" :echartsApp="true"/> |
| | | </view> |
| | | <view class="sub-main-right"> |
| | | <view class="sub-info"> |
| | | <image src="../../static/g1.png" mode="aspectFit"></image> |
| | | <text>在库</text> |
| | | <text>{{stockCount}}</text> |
| | | </view> |
| | | <view class="sub-info"> |
| | | <image src="../../static/f1.png" mode="aspectFit"></image> |
| | | <text>空库</text> |
| | | <text>{{emptyCount}}</text> |
| | | </view> |
| | | <view class="sub-info"> |
| | | <image src="../../static/e1.png" mode="aspectFit"></image> |
| | | <text>禁用</text> |
| | | <text>{{noneCount}}</text> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | <view class="box box-bt"> |
| | | <view class="box-border box-border1"></view> |
| | | <view class="box-border box-border2"></view> |
| | | <view class="box-border box-border3"></view> |
| | | <view class="box-border box-border4"></view> |
| | | <!-- <text>浙江中扬立库技术有限公司</text> |
| | | <text>当前版本号</text> --> |
| | | <view>浙江中扬立库技术有限公司</view> |
| | | <image src="../../static/barcode.png" mode="aspectFit"></image> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | <view> |
| | | <!-- 输入url --> |
| | | <uni-popup ref="url" type="dialog"> |
| | | <uni-popup-dialog ref="inputClose" mode="input" title="配置url" :value="baseUrl" |
| | | placeholder="示例:192.168.1.1" @confirm="baseUrlConfirm"></uni-popup-dialog> |
| | | </uni-popup> |
| | | </view> |
| | | <view> |
| | | <!-- 输入ledId --> |
| | | <uni-popup ref="ledId" type="dialog"> |
| | | <uni-popup-dialog ref="inputClose" mode="input" title="配置ledId" :value="baseLedId" |
| | | placeholder="示例:188" @confirm="ledIdConfirm"></uni-popup-dialog> |
| | | </uni-popup> |
| | | </view> |
| | | <view> |
| | | <!-- 输入port --> |
| | | <uni-popup ref="port" type="dialog"> |
| | | <uni-popup-dialog ref="inputClose" mode="input" title="配置端口号" :value="basePort" |
| | | placeholder="示例:9090" @confirm="portConfirm"></uni-popup-dialog> |
| | | </uni-popup> |
| | | </view> |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | import ycqdata from '@/pages/index/data.json'; |
| | | import demodata from '@/mockdata/demodata.json'; |
| | | export default { |
| | | data() { |
| | | return { |
| | | show: true, |
| | | modeClass: 'fade', |
| | | styles: {}, |
| | | baseUrl:'10.10.0.200', |
| | | baseLedId:'', |
| | | basePort:'', |
| | | value: '', |
| | | xDistance: 0, |
| | | yDistance:0, |
| | | xDuration:0, |
| | | yDuration:0, |
| | | used:317, |
| | | usedPr: 90, |
| | | stockCount:0, |
| | | emptyCount:0, |
| | | noneCount:0, |
| | | chartsData: { |
| | | "Line": { |
| | | "categories": [], |
| | | "series": [] |
| | | }, |
| | | "Pie": { |
| | | "series": [{ |
| | | "data": [] |
| | | }] |
| | | }, |
| | | }, |
| | | chartsDataLine1: {}, |
| | | chartsDataPie2: {}, |
| | | ringOpts:{}, |
| | | year:2022, |
| | | month:4, |
| | | day:14, |
| | | hours:13, |
| | | minutes:38, |
| | | seconds:13, |
| | | week:'星期四', |
| | | ani:'', |
| | | // move: 'upMove 1.5s 1;', |
| | | move:true, |
| | | topMove:'topUp', |
| | | floorMove:'', |
| | | version:'', |
| | | // newspaper:'拣料出库(4426)\n源库位:1200101\n目标站:186\n1101842-10000-22047518517\n\n', |
| | | newspaper:'', |
| | | errorPaper:'', |
| | | title:'', |
| | | staNo:'', |
| | | errorShow:'', |
| | | pakinShow:'', |
| | | pakinGun:'', |
| | | orderShow:false, |
| | | orderNo:null, |
| | | swiper:'swiper-here', |
| | | autoplay:true, // 自动循环 |
| | | interval:1000, // 调用时长 |
| | | duration:6000, // 移动速度 |
| | | matList:[], // 订单列表 |
| | | } |
| | | }, |
| | | mounted() { |
| | | let that = this |
| | | const BaseUrl = uni.getStorageSync('BaseUrl'); |
| | | const BaseLedId = uni.getStorageSync('BaseLedId'); |
| | | const BasePort = uni.getStorageSync('BasePort'); |
| | | if (BaseUrl && BaseLedId) { |
| | | that.baseUrl = BaseUrl |
| | | that.baseLedId = BaseLedId |
| | | that.basePort = BasePort |
| | | } else { |
| | | that.baseUrl = '' |
| | | that.baseLedId = '' |
| | | } |
| | | }, |
| | | onReady() { |
| | | setTimeout(() => { |
| | | // this.initlineChart(); |
| | | // this.initPieChart(); |
| | | |
| | | }, 0); |
| | | setTimeout(() => { |
| | | // this.getServerData(); |
| | | // this.getOther(); |
| | | // this.getPakin(); |
| | | }, 1000); |
| | | setInterval(() => { |
| | | this.getDate(); |
| | | // this.getPakin(); |
| | | // this.getError(); |
| | | this.getYYY(); |
| | | this.getEEE(); |
| | | this.animation(); |
| | | },1000) |
| | | }, |
| | | methods: { |
| | | getEEE() { |
| | | var result = ycqdata.dataEEE |
| | | let that = this |
| | | let res = result.data |
| | | if (res.data && res.data !== "") { |
| | | that.matList = [] |
| | | that.orderNo = null |
| | | that.matList.push(res.data) |
| | | that.swiper = 'swiper-here-error' |
| | | that.title = '' |
| | | that.staNo = '' |
| | | that.pakinShow = false |
| | | that.errorShow = true |
| | | that.move = false // 显示 |
| | | } else { |
| | | that.errorPaper = '' |
| | | that.errorShow = false |
| | | if (that.pakinShow) { |
| | | return; |
| | | } else { |
| | | that.move = true // 隐藏 |
| | | } |
| | | } |
| | | }, |
| | | getYYY() { |
| | | var result = ycqdata.dataYYY |
| | | let that = this |
| | | that.matList = [] // 清空条码列表 |
| | | var newsData = '' |
| | | var str = '' |
| | | let res = result.data |
| | | if(res.data && res.data !== null) { |
| | | if (res.data[0].matDtos.length > 0) { |
| | | that.pakinShow = true |
| | | that.pakinGun = true |
| | | if (res.data[0].ioType === 101) { |
| | | that.title = '全板出库' |
| | | } else if(res.data[0].ioType === 103) { |
| | | that.title = '检料出库' |
| | | } |
| | | if (res.data[0].orderNo) { |
| | | that.orderNo = "订单号:" + res.data[0].orderNo |
| | | that.swiper = 'swiper-here-oN' |
| | | that.orderShow = true |
| | | } else { |
| | | that.orderNo = null; |
| | | that.swiper = 'swiper-here' |
| | | that.orderShow = false |
| | | } |
| | | that.staNo = '目标站' + res.data[0].staNo |
| | | for (var i = 0; i < res.data[0].matDtos.length; i++) { |
| | | var matnr = res.data[0].matDtos[i].matnr + ' - ' + res.data[0].matDtos[i].batch |
| | | that.matList.push(matnr) |
| | | } |
| | | if (that.errorShow) { |
| | | // that.pakinShow = false |
| | | return; |
| | | } else { |
| | | that.newspaper = newsData |
| | | that.move = false |
| | | } |
| | | if (res.data[0].matDtos.length <= 8) { |
| | | that.errorShow = true |
| | | that.pakinShow = true |
| | | that.pakinGun = false |
| | | } |
| | | } else { |
| | | that.move = true |
| | | } |
| | | } else { |
| | | that.move = true |
| | | } |
| | | |
| | | }, |
| | | getError() { |
| | | let that = this |
| | | uni.request({ |
| | | url: "http://" + that.baseUrl + ":" + that.basePort + "/jkwcs/monitor/led/error", |
| | | data: { |
| | | ledId:that.baseLedId |
| | | }, |
| | | method:'GET', |
| | | success(result) { |
| | | let res = result.data |
| | | if (res.data && res.data !== "") { |
| | | that.title = '' |
| | | that.staNo = '' |
| | | that.pakinShow = false |
| | | that.errorShow = true |
| | | that.errorPaper = res.data |
| | | that.move = false // 显示 |
| | | } else { |
| | | that.errorPaper = '' |
| | | that.errorShow = false |
| | | if (that.pakinShow) { |
| | | return; |
| | | } else { |
| | | that.move = true // 隐藏 |
| | | } |
| | | } |
| | | } |
| | | }); |
| | | }, |
| | | getPakin () { |
| | | let that = this |
| | | uni.request({ |
| | | url: "http://" + that.baseUrl + ":" + that.basePort + "/jkwcs/monitor/led", |
| | | data: { |
| | | ledId:that.baseLedId |
| | | }, |
| | | method:'GET', |
| | | success(result) { |
| | | var newsData = '' |
| | | var str = '' |
| | | let res = result.data |
| | | if(res.data && res.data !== null) { |
| | | if (res.data[0].matDtos.length > 0) { |
| | | that.pakinShow = true |
| | | that.pakinGun = true |
| | | if (res.data[0].ioType === 101) { |
| | | that.title = '全板出库' |
| | | } else if(res.data[0].ioType === 103) { |
| | | that.title = '检料出库' |
| | | } |
| | | if (res.data[0].orderNo) { |
| | | that.orderShow = true |
| | | } else { |
| | | that.orderShow = false |
| | | } |
| | | that.staNo = '目标站' + res.data[0].staNo |
| | | for (var i = 0; i < res.data[0].matDtos.length; i++) { |
| | | str = res.data[0].matDtos[i].matnr + ' - ' + res.data[0].matDtos[i].batch + '\n' |
| | | newsData = newsData + str |
| | | } |
| | | if (that.errorShow) { |
| | | return; |
| | | } else { |
| | | that.newspaper = newsData |
| | | that.move = false |
| | | } |
| | | if (res.data[0].matDtos.length <= 8) { |
| | | that.errorShow = true |
| | | that.pakinShow = true |
| | | that.pakinGun = false |
| | | } |
| | | } else { |
| | | that.move = true |
| | | } |
| | | } else { |
| | | that.move = true |
| | | } |
| | | } |
| | | }) |
| | | }, |
| | | animation() { |
| | | if (this.move) { |
| | | // 上层向上 / 下层向上 |
| | | this.topMove = 'topUp' |
| | | this.floorMove = 'floorUp' |
| | | } else { |
| | | // 上层向下 / 下层向下 |
| | | this.topMove = 'topDown' |
| | | this.floorMove = 'floorDown' |
| | | } |
| | | }, |
| | | getDateFormat(value) { |
| | | var date = new Date();// 获取当前时间 |
| | | date.setDate(date.getDate() + value);// 设置天数 -1 天 |
| | | var m = date.getMonth() + 1 |
| | | var d = date.getDate() |
| | | var newDate = m + '-' + d |
| | | return newDate |
| | | }, |
| | | /*************** 折线图 *****************************************************************************************************/ |
| | | initlineChart() { |
| | | let that = this |
| | | uni.request({ |
| | | url: "http://10.10.0.222:9090/jswcs/monitor/line/charts", |
| | | method:'GET', |
| | | success(result) { |
| | | var res = result.data |
| | | if (res.code === 200) { |
| | | that.chartsData.Line.categories = [that.getDateFormat(-11),that.getDateFormat(-10),that.getDateFormat(-9),that.getDateFormat(-8),that.getDateFormat(-7),that.getDateFormat(-6),that.getDateFormat(-5),that.getDateFormat(-4),that.getDateFormat(-3),that.getDateFormat(-2),that.getDateFormat(-1),that.getDateFormat(0),] |
| | | that.chartsData.Line.series = res.data.rows |
| | | } |
| | | } |
| | | }) |
| | | }, |
| | | /*************** 饼图 *****************************************************************************************************/ |
| | | initPieChart() { |
| | | let that = this |
| | | uni.request({ |
| | | url: "http://10.10.0.222:9090/jswcs/monitor/loc/rep", |
| | | method:'GET', |
| | | success(result) { |
| | | var res = result.data |
| | | if (res.code === 200) { |
| | | that.chartsData.Pie.series[0].data = res.data.pie |
| | | that.stockCount = res.data.stockCount |
| | | that.emptyCount = res.data.emptyCount |
| | | that.noneCount = res.data.noneCount |
| | | that.used = res.data.used |
| | | that.usedPr = res.data.usedPr |
| | | } |
| | | } |
| | | }) |
| | | }, |
| | | getOther() { |
| | | let that = this |
| | | uni.request({ |
| | | // http://10.10.0.222:9090/jkwcs/monitor/led?ledId=186 |
| | | url: "http://" + that.baseUrl + ":9090/jswcs/monitor/other", |
| | | data: { |
| | | crnId: 1, |
| | | ledId: this.baseLedId, |
| | | }, |
| | | success(result) { |
| | | var res = result.data |
| | | if (res.code === 200) { |
| | | that.xDistance = res.data.xDistance |
| | | that.yDistance = res.data.yDistance |
| | | that.xDuration = res.data.xDuration |
| | | that.yDuration = res.data.yDuration |
| | | console.log(res) |
| | | } else if (res.code === 403) { |
| | | |
| | | } else { |
| | | |
| | | } |
| | | } |
| | | }) |
| | | }, |
| | | port() { |
| | | this.$refs.port.open() |
| | | }, |
| | | url() { |
| | | this.$refs.url.open() |
| | | }, |
| | | ledId() { |
| | | this.$refs.ledId.open() |
| | | }, |
| | | baseUrlConfirm(val) { |
| | | this.baseUrl = val |
| | | uni.setStorageSync('BaseUrl', this.baseUrl); |
| | | }, |
| | | ledIdConfirm(val) { |
| | | this.baseLedId = val |
| | | uni.setStorageSync('BaseLedId', this.baseLedId); |
| | | }, |
| | | portConfirm(val) { |
| | | this.basePort = val |
| | | uni.setStorageSync('BasePort',this.basePort); |
| | | }, |
| | | getServerData() { |
| | | this.chartsDataLine1=JSON.parse(JSON.stringify(this.chartsData.Line)) |
| | | this.chartsDataPie2=JSON.parse(JSON.stringify(this.chartsData.Pie)) |
| | | }, |
| | | complete(e) { |
| | | console.log("渲染完成事件",e); |
| | | }, |
| | | getDate() { |
| | | var dt = new Date(); |
| | | this.year = dt.getFullYear(); |
| | | this.month = (dt.getMonth()+1) < 10 ? '0'+ (dt.getMonth()+1) : (dt.getMonth()+1); |
| | | this.day = dt.getDate() < 10 ? '0'+dt.getDate() : dt.getDate(); |
| | | this.hours = dt.getHours() < 10 ? '0' + dt.getHours() : dt.getHours(); |
| | | this.minutes = dt.getMinutes() < 10 ? '0' + dt.getMinutes() : dt.getMinutes(); |
| | | this.seconds = dt.getSeconds() < 10 ? '0' + dt.getSeconds() : dt.getSeconds(); |
| | | this.weeks = dt.getDay(); |
| | | switch (this.weeks) { |
| | | case 0: this.week = "星期日"; break; |
| | | case 1: this.week = "星期一"; break; |
| | | case 2: this.week = "星期二"; break; |
| | | case 3: this.week = "星期三"; break; |
| | | case 4: this.week = "星期四"; break; |
| | | case 5: this.week = "星期五"; break; |
| | | default : this.week = "星期六"; |
| | | } |
| | | }, |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style> |
| | | /* 当前页面无 orderNo */ |
| | | .swiper-here { |
| | | display: inline-block; |
| | | margin: 0 auto; |
| | | width: 100%; |
| | | height: 100%; |
| | | } |
| | | /* 当前页面有 orderNo */ |
| | | .swiper-here-oN{ |
| | | display: inline-block; |
| | | /* background-color: #063A7B; */ |
| | | margin: 0 auto; |
| | | width: 100%; |
| | | height: 90%; |
| | | } |
| | | /* 当前页面有 error提示 */ |
| | | .swiper-here-error { |
| | | display: inline-block; |
| | | /* background-color: #063A7B; */ |
| | | /* margin: 0 auto; */ |
| | | margin-top: 20%; |
| | | width: 100%; |
| | | height: 100%; |
| | | } |
| | | .animate { |
| | | display: inline-block; |
| | | /* white-space: nowrap; */ |
| | | animation: 25s wordsLoop linear infinite normal; |
| | | } |
| | | |
| | | @keyframes wordsLoop { |
| | | 0% { |
| | | transform: translateY(100px); |
| | | -webkit-transform: translateY(100px); |
| | | } |
| | | 100% { |
| | | transform: translateY(-100%); |
| | | -webkit-transform: translateY(-100%); |
| | | } |
| | | } |
| | | |
| | | @-webkit-keyframes wordsLoop { |
| | | 0% { |
| | | transform: translateY(100px); |
| | | -webkit-transform: translateY(100px); |
| | | } |
| | | 100% { |
| | | transform: translateY(-100%); |
| | | -webkit-transform: translateY(-100%); |
| | | } |
| | | } |
| | | /* animation:upMove 1.5s 1; */ |
| | | /* downMove */ |
| | | /* 上层向上 */ |
| | | .topUp { |
| | | animation: topUp 1.5s 1; |
| | | animation-fill-mode: both; |
| | | } |
| | | @keyframes topUp { |
| | | from { |
| | | opacity: 0.5; |
| | | /* background-color:blue; */ |
| | | top:-1080px |
| | | } |
| | | to { |
| | | opacity: 1; |
| | | /* background-color:red; */ |
| | | top: 0; |
| | | } |
| | | } |
| | | /* 上层向下 */ |
| | | .topDown { |
| | | animation: topDown 1.5s 1; |
| | | animation-fill-mode: both; |
| | | } |
| | | @keyframes topDown |
| | | { |
| | | from { |
| | | opacity: 1; |
| | | /* background-color:red; */ |
| | | top: 0; |
| | | } |
| | | to { |
| | | opacity: 0.5; |
| | | /* background-color:blue; */ |
| | | top:-1080px |
| | | } |
| | | } |
| | | /* 下层向上 */ |
| | | .floorUp { |
| | | animation: floorUp 1.5s 1; |
| | | animation-fill-mode: both; |
| | | } |
| | | @keyframes floorUp { |
| | | from { |
| | | opacity: 0.5; |
| | | /* background-color:blue; */ |
| | | top: 0px; |
| | | } |
| | | to { |
| | | opacity: 1; |
| | | /* background-color:red; */ |
| | | top: 1080px; |
| | | } |
| | | } |
| | | /* 下层向下 */ |
| | | .floorDown { |
| | | animation: floorDown 1.5s 1; |
| | | animation-fill-mode: both; |
| | | } |
| | | @keyframes floorDown { |
| | | from { |
| | | opacity: 0.5; |
| | | /* background-color:blue; */ |
| | | top: 1080px; |
| | | } |
| | | to { |
| | | opacity: 1; |
| | | /* background-color:red; */ |
| | | top: -0px; |
| | | } |
| | | } |
| | | .top-screen { |
| | | position: fixed; |
| | | width: 1920px; |
| | | height: 1080px; |
| | | /* top: -1000px; */ |
| | | background-image: url(../../static/background.png); |
| | | /* background:red; */ |
| | | /* animation:upMove 1.5s 1; */ |
| | | z-index: 999; |
| | | } |
| | | .floor-screen { |
| | | width: 1920px; |
| | | height: 1080px; |
| | | position: relative; |
| | | color: #FFFFFF; |
| | | text-align: center; |
| | | font-size: 200rpx; |
| | | letter-spacing: 5rpx; |
| | | background-image: url(../../static/background.png); |
| | | } |
| | | .container { |
| | | width: 1920px; |
| | | height: 1080px; |
| | | |
| | | position: relative; |
| | | /* background: #000428; |
| | | background: -webkit-linear-gradient(to right, #004e92, #000428); |
| | | background: linear-gradient(to right, #004e92, #000428); */ |
| | | } |
| | | .head { |
| | | /* background-color: #55aaff; */ |
| | | width: 100%; |
| | | height: 10%; |
| | | text-align: center; |
| | | line-height: 110px; |
| | | color: #FFFFFF; |
| | | font-size: 40px; |
| | | font-weight: 700; |
| | | letter-spacing: 5px; |
| | | } |
| | | .head text { |
| | | transform: scale(1,0.9); |
| | | } |
| | | .time-tools { |
| | | height: 5%; |
| | | /* background-color: #007AFF; */ |
| | | position: absolute; |
| | | top: 0; |
| | | float: right; |
| | | right: 50px; |
| | | font-size: 16px; |
| | | font-weight: 400; |
| | | line-height: 70px; |
| | | letter-spacing: 1px; |
| | | } |
| | | .button-left { |
| | | position: absolute; |
| | | background-image: url(../../static/right.png); |
| | | background-size: 100% 100%; |
| | | top: 1.8%; |
| | | left: 21.3%; |
| | | width: 13.5%; |
| | | height: 8.5%; |
| | | transform: scaleX(-1); |
| | | } |
| | | .button-right { |
| | | position: absolute; |
| | | background-image: url(../../static/right.png); |
| | | background-size: 100% 100%; |
| | | top: 1.8%; |
| | | left: 65%; |
| | | width: 13.5%; |
| | | height: 8.5%; |
| | | } |
| | | .main { |
| | | /* background-color: #3F536E; */ |
| | | position: relative; |
| | | width: 100%; |
| | | height: 90%; |
| | | } |
| | | .main-sides { |
| | | /* background-color: #004E92; */ |
| | | position: relative; |
| | | display: inline-block; |
| | | float: left; |
| | | width: 50%; |
| | | height: 100%; |
| | | /* margin: 2% auto 0 3.2%; |
| | | border: 1px solid rgba(20, 80, 136, 1); */ |
| | | } |
| | | .box { |
| | | position: relative; |
| | | /* background-color: #ffffff; */ |
| | | margin: 3% 2% 0 2%; |
| | | width: 96%; |
| | | height: 30%; |
| | | border: 1px solid rgba(20, 80, 136, 1); |
| | | overflow: hidden; |
| | | } |
| | | .box-lg { |
| | | height: 94%; |
| | | } |
| | | .box-border { |
| | | position: absolute; |
| | | /* background-color: #4CD964; */ |
| | | width: 10px; |
| | | height: 10px; |
| | | } |
| | | .box-border1 { |
| | | top: 0; |
| | | left: 0; |
| | | border-left: 2px solid #31c4c4; |
| | | border-top: 2px solid #31c4c4; |
| | | } |
| | | .box-border2 { |
| | | top: 0; |
| | | right: 0; |
| | | border-right: 2px solid #31c4c4; |
| | | border-top: 2px solid #31c4c4; |
| | | } |
| | | .box-border3 { |
| | | bottom: 0; |
| | | left: 0; |
| | | border-bottom: 2px solid #31c4c4; |
| | | border-left: 2px solid #31c4c4; |
| | | } |
| | | .box-border4 { |
| | | bottom: 0; |
| | | right: 0; |
| | | border-right: 2px solid #31c4c4; |
| | | border-bottom: 2px solid #31c4c4; |
| | | } |
| | | .content { |
| | | display: flex; |
| | | flex-direction: column; |
| | | flex: 1; |
| | | } |
| | | |
| | | .charts-box { |
| | | width: 80%; |
| | | height: 230px; |
| | | margin-left: 10%; |
| | | /* background-color: #fff; */ |
| | | } |
| | | .ring { |
| | | display: inline-block; |
| | | float: left; |
| | | width: 60%; |
| | | height: 300px; |
| | | margin-left: -10%; |
| | | } |
| | | .box-item { |
| | | /* background-color: #2C405A; */ |
| | | width: 92%; |
| | | height: 20%; |
| | | margin-left: 4%; |
| | | padding-top: 1em; |
| | | color: #FFFFFF; |
| | | } |
| | | .introduce { |
| | | height: 30%; |
| | | } |
| | | .introduce h2 { |
| | | letter-spacing: 5px; |
| | | |
| | | } |
| | | .english { |
| | | font-size: 14px; |
| | | } |
| | | .introduce-content { |
| | | font-size: 20px; |
| | | padding-top: 2em; |
| | | text-indent: 2em; |
| | | line-height: 2em; |
| | | } |
| | | .charge-info { |
| | | /* background-color: #2C405A; */ |
| | | height: 45%; |
| | | } |
| | | .charge-info-item { |
| | | /* background-color: #EE6666; */ |
| | | display: inline-block; |
| | | width: 50%; |
| | | height: 40%; |
| | | } |
| | | .charge-info-item image { |
| | | display: inline-block; |
| | | float: left; |
| | | /* background-color: #4CD964; */ |
| | | height: 100%; |
| | | width: 20%; |
| | | } |
| | | .charge-info-item view { |
| | | display: inline-block; |
| | | position: relative; |
| | | margin-left: 10%; |
| | | width: 70%; |
| | | height: 49%; |
| | | /* background-color: #1890FF; */ |
| | | } |
| | | .charge-info-item .count, .charge-info-item .unit{ |
| | | position: absolute; |
| | | display: inline-block; |
| | | font-size: 32px; |
| | | bottom: 0; |
| | | padding-left: 5%; |
| | | } |
| | | .charge-info-item .unit { |
| | | font-size: 16px; |
| | | float: right; |
| | | right: 20%; |
| | | } |
| | | .footer { |
| | | position: absolute; |
| | | border: 1px solid rgba(20, 80, 136, 1); |
| | | height: 15%; |
| | | } |
| | | .use-info { |
| | | /* background-color: #007AFF; */ |
| | | } |
| | | .use-left { |
| | | display: inline-block; |
| | | /* background-color: #2C405A; */ |
| | | width: 40%; |
| | | } |
| | | .use-right { |
| | | display: inline-block; |
| | | /* background-color: #2C405A; */ |
| | | float: right; |
| | | width: 20%; |
| | | } |
| | | .use-main { |
| | | width: 100%; |
| | | height: 75%; |
| | | /* background-color: #4CD964; */ |
| | | } |
| | | .use-main .left { |
| | | /* background-color: #ffaa7f; */ |
| | | display: inline-block; |
| | | float: left; |
| | | height: 100%; |
| | | width: 70%; |
| | | line-height: 20px; |
| | | } |
| | | .left .progressBar { |
| | | /* margin-left: ; */ |
| | | margin-top: 9%; |
| | | width: 100%; |
| | | height: 20%; |
| | | background-color: #233751; |
| | | border-radius: 20px; |
| | | } |
| | | .left .progress { |
| | | /* width: 90%; */ |
| | | height: 100%; |
| | | background-color: #FF5722; |
| | | border-radius: 20px; |
| | | } |
| | | .left progress { |
| | | margin-left: 10%; |
| | | margin-top: 10%; |
| | | display: block; |
| | | } |
| | | .use-main .right { |
| | | /* background-color: #ffaaff; */ |
| | | display: inline-block; |
| | | float: right; |
| | | height: 100%; |
| | | width: 20%; |
| | | font-size: 40px; |
| | | color: #FF5722; |
| | | line-height: 130px; |
| | | } |
| | | .box-tp { |
| | | height: 30%; |
| | | } |
| | | .box-tp .sub-main { |
| | | /* background-color: #FFFFFF; */ |
| | | } |
| | | .box-md { |
| | | height: 43%; |
| | | } |
| | | .box-md .sub-main { |
| | | } |
| | | .sub-main-right { |
| | | display: inline-block; |
| | | height: 100%; |
| | | width: 50%; |
| | | } |
| | | .sub-info { |
| | | width: 100%; |
| | | height: 33%; |
| | | } |
| | | .sub-info image { |
| | | display: inline-block; |
| | | float: left; |
| | | height: 100%; |
| | | width: 15%; |
| | | } |
| | | .sub-info text { |
| | | display: inline-block; |
| | | width: 40%; |
| | | height: 100%; |
| | | text-align: center; |
| | | line-height: 120px; |
| | | font-size: 20px; |
| | | } |
| | | .box-bt { |
| | | background-color: #063A7B; |
| | | border: none; |
| | | height: 15%; |
| | | color: #FFFFFF; |
| | | } |
| | | .box-bt image { |
| | | position: absolute; |
| | | float: right; |
| | | right: 0; |
| | | top: 0; |
| | | width: 20%; |
| | | height: 100%; |
| | | } |
| | | .box-bt { |
| | | font-size: 36px; |
| | | line-height: 140px; |
| | | text-indent: 5em; |
| | | } |
| | | .right-item { |
| | | height: 94%; |
| | | } |
| | | .sub-left { |
| | | display: inline-block; |
| | | float: left; |
| | | width: 40%; |
| | | } |
| | | .sub-right { |
| | | display: inline-block; |
| | | float: right; |
| | | width: 20%; |
| | | } |
| | | .sub-main { |
| | | position: absolute; |
| | | /* background-color: #31C4C4; */ |
| | | width: 92%; |
| | | height: 80%; |
| | | bottom: 0; |
| | | } |
| | | </style> |