<template> <view class="app-content"> <!-- <img src="../../static/beijing.png" alt="" class="tuku"> --> <Navs :navname.sync="navname" @fall="fall" :index='index'></Navs> <view class="content"> <view class="content_top"> <view class="craid" v-if="flightDetail&&flightDetail.carrierFlights"> <view class="craid_data"> <p>{{flightDetail.carrierFlights}}</p> <span>{{flightDetail.carrierFlightsDate}}</span> </view> <view class="craid_data"> <p>{{flightDetail.outAirport}}</p> <span>{{flightDetail.scheduleTakeOffTime?flightDetail.scheduleTakeOffTime:"-"}}</span> </view> <view class="fight_center"> <view class="type"> {{flightDetail.normalState}} </view> <view class="aircraft"></view> </view> <view class="craid_data"> <p>{{flightDetail.landAirport}}</p> <span>{{flightDetail.scheduleLandInTime?flightDetail.scheduleLandInTime:"-"}}</span> </view> </view> <view class="craids" v-if="!flightDetail.carrierFlights"> <p>暂无航班信息</p> </view> <view class="scanning"> <view :class="getFooterClass"> <input class="input" v-model.trim="stratvalue" type="text" placeholder-style="font-size:.8125rem;color:rgb(189, 214, 231);display:flex;justify-content: start;" placeholder="请输入操作位置" /> <view class="log_l"></view> <view class="log" @tap="scan('1')"></view> </view> <view :class="getFooterClasser" v-if="navname == '装车'"> <input class="input" v-model.trim="container_ID" type="text" placeholder-style="font-size:.8125rem;color:rgb(189, 214, 231);display:flex;justify-content: start;" placeholder="请输入容器编号" /> <view class="log_l"></view> <view class="log" @tap="scan('2')"></view> </view> <view :class="getlooterClass"> <input class="input" v-model.trim="currentLuggageNum" disabled="true" @tap="baggageEntry" type="text" placeholder-style="font-size:.8125rem;color:rgb(189, 214, 231);display:flex;justify-content: start;" placeholder="请输入行李号" /> <view class="log_l"></view> <view class="log" @tap="scan('3')"></view> </view> </view> </view> <view class="content_bootom" :style="{top:dataheight}"> <view class="choice" @touchmove="movetran"> <view :class="action === true ?'handle':'handles'" @tap="clicker(true)">已处理({{listdate1.length}}件) </view> <view :class="action !== true ?'handle':'handles'" @tap="clicker(false)">未处理({{listdate2.length}}件) </view> </view> <scroll-view scroll-y="true" class="scroll-Y"> <view v-if="action === true" :class="item.types ? 'ups':'up'" v-for="(item, index) in listdate1" :key="index" @touchstart="start" @touchend="(e)=>end(e,item)"> <view class="list" @tap="toDetail(item.luggageNum)">{{ item.luggageNum }}</view> <view class="normal" @tap="toDetail(item.luggageNum)"> {{item.specialType!=null?specialTypeList[item.specialType]:" "}} </view> <view :class="item.abnormalType!=null?'error':'normal'" @tap="toDetail(item.luggageNum)"> {{item.abnormalType!=null?item.abnormalName:"正常"}}</view> <view class="down_up" v-if="pagename == 'LOAD' && item.abnormalType!='OFF' && item.abnormalType!='POFF'" @tap="up(item,index)"></view> <view class="delete" v-if="pagename == 'LOAD' && item.abnormalType!='OFF' && item.abnormalType!='POFF'"> <view class="log" @click="()=>up(item,index)"></view> </view> </view> <view v-if="action !== true" :class="item.types ? 'ups':'up'" v-for="(item, index) in listdate2" :key="index" @tap="toDetail(item.luggageNum)"> <view class="list" >{{ item.luggageNum }}</view> <view class="normal"> {{item.specialType!=null?specialTypeList[item.specialType]:" "}} </view> <view :class="item.abnormalType!=null?'error':'normal'"> {{item.abnormalType!=null?item.abnormalName:"正常"}}</view> <!-- <view class="down_up" @tap="up"></view> --> </view> </scroll-view> <view class="but" v-if="!action&&listdate2.length>0" @tap="clickOrder">一键处理</view> </view> </view> <!-- 提示信息和下拉弹窗 --> <mask-model :headername="headername" :typeShow="typeShow" :tabname="tabname" ref="showMask" btnType="1" @confirm="confirm" @next="next" @load="load" @cancel="cancel" titleColoe="#666666" cancelColor="#666666" confirmColor="#007AFF" :maskTitle="maskTitle"></mask-model> <!-- 一键弹窗 --> <mask-model :headername="headername" :typeShow="typeShow" ref="showMask2" btnType="1" @confirm="confirm2" @cancel="cancel" titleColoe="#666666" cancelColor="#666666" confirmColor="#007AFF" :maskTitle="maskTitle2"></mask-model> <!-- 航班开始操作弹窗 --> <mask-model :headername="headername" :typeShow="typeShow" ref="showMask3" btnType="1" @confirm="confirm3" @cancel="cancel3" titleColoe="#666666" cancelColor="#666666" confirmColor="#007AFF" :maskTitle="maskTitle3"></mask-model> </view> </template> <script> import Navs from '../../components/header/navs.vue' import maskModel from '../../components/mask-model/mask-model.vue' import { Format } from '@/components/utils/validate' export default { data() { return { isShow: true, dataheight: '20.75rem', scrollTop: 0, input: '', arr: [], navname: '', action: true, listdate: [], listdate1: [], loadNumber: 0, listdate2: [], startData: { clientX: 0, clientY: 0 }, stratvalue: '', //开始位置 container_ID: '', endvalue: '', //结束位置 maskTitle: '该行李不属于当前航班,请选择处理方式。', maskTitle2: "", maskTitle3: "", tabname: '', //航班名称 typeShow: true, headername: '提示信息', flightNO: "null", flightDate: null, outAirport:null, landAirport:null, onFlightDate: null, flightDetail: {}, index: 0, currentLuggageNum: null, pagename: "", currentLuggage: null, currentIndex: null, abnormalList: [{ "type": null, "name": "无" }, { "type": "NAL", "name": "未授权装载" }, { "type": "OFF", "name": "已卸载" }, { "type": "PFF", "name": "预卸载" }, { "type": "UNS", "name": "未找到" }, { "type": "OND", "name": "在场未装载,未授权" }, { "type": "ONA", "name": "在场未装载,已授权" } ], oldRfidList: [], specialTypeList:{ "AVIH":"装笼动物", "CREW":"机组行李", "RFAG":"易碎行李", "HVY":"重型行李", "PRIO":"优先行李", "RUSH":"无人行李", "SCON":"急转行李", "SPEQ":"运动装备", "VIP":"VIP行李", "WCHR":"轮椅", "WFAP":"武器枪支", "SJ05":"到港行李破损", "SJ34":"超大柜台接收", } } }, created(option) {}, onLoad(option) { this.pagename = option.item this.flightNO = option.flightNO this.flightDate = option.date this.outAirport = option.outAirport this.landAirport = option.landAirport this.getNode() switch (this.pagename) { case "SORT": this.navname = "分拣" break; case "LOAD": this.navname = "装车" break; case "INFL": this.navname = "装机" break; case "UNLOAD": this.navname = "卸机" break; case "ARRIVED": this.navname = "到达" break; default: break; } if (this.flightNO != "null" && this.flightNO) { this.getFlightData() } console.log("onLoad") }, onUnload() { uni.$off("scancodemsg"); if(this.$devapi.RFIDIntervalTime!=0){ this.$devapi.RFIDStopInventory() this.$devapi.ISRFIDOPEN = false } }, onShow() { uni.$on("scancodemsg", (data) => { // data.msg = '0089580761' if (data.msg.trim().length > 9) { this.currentLuggageNum = data.msg.trim() this.getluggage(this.currentLuggageNum, true) } if (data.msg.trim().length < 9) { this.container_ID = data.msg.trim() } }); uni.$on("scancodeList", (data) => { // data.msg = ['0089580818','0089580819','0089580820', '0089580783', '0089580816'] if (this.flightNO == "null" && data.msg.length > 0) { this.currentLuggageNum = data.msg[0].trim() this.getluggage(this.currentLuggageNum, true) this.$devapi.RFIDStopInventory() this.$devapi.ISRFIDOPEN = false } else if (this.flightNO && data.msg.length > 0) { data.msg.map(item => { if (_.findIndex(this.listdate1, function(o) { return o.luggageNum == item }) < 0) { if (item.trim().length > 9) { this.currentLuggageNum = item.trim() this.getluggage(this.currentLuggageNum, true) } } }) } }); if (this.$storage.getJson('airport')) { this.index = this.$storage.getJson('airport') } if (this.flightNO != "null" && this.flightNO) { this.getFlightData() } console.log("onShow") }, onHide() { uni.$off("scancodemsg"); }, mounted() { // this.$refs.showMask.show(); // console.log(this.stratvalue.length) }, computed: { getFooterClass() { return this.stratvalue ? 'scanning_cds' : 'scanning_cd' }, getlooterClass() { return this.currentLuggageNum ? 'scanning_cds' : 'scanning_cd' }, getFooterClasser() { return this.container_ID ? 'scanning_cds' : 'scanning_cd' }, }, components: { Navs, maskModel: maskModel, }, methods: { scan(type) { let that = this uni.scanCode({ onlyFromCamera: true, success: function(res) { if (type == "1") { that.stratvalue = res.result; } else if (type == "2") { that.container_ID = res.result; } else { that.currentLuggageNum = res.result that.getluggage(that.currentLuggageNum, true) } } }); }, async getNode() { let data = { "serviceId": 3003, "dataContent": {}, "event": "0" } await this.$http.httpPost('/openApi/query', data).then(res => { if (res.code == "0") { res.returnData.map(item => { if (item.nodeCode == this.pagename) { this.stratvalue = item.nodeDescribe; } }) } }) }, next(data) { this.flightNO = this.currentLuggage.carrierFlights; this.flightDate = this.currentLuggage.carrierFlightsDate; this.outAirport = this.currentLuggage.outAirport; this.landAirport = this.currentLuggage.landAirport; this.loadNumber = 0; this.getFlightData() this.$refs.showMask.hide(); }, load() { this.currentLuggage.carrierFlights = this.flightNO this.currentLuggage.carrierFlightsDate = this.flightDate; this.currentLuggage.outAirport = this.outAirport; this.currentLuggage.landAirport = this.landAirport; let datas = this.setLuggage() this.sendData(datas) }, async getFlightData() { let data = { "serviceId": 3000, "page": 1, "pageSize": 10, "dataContent": [{ "carrierFlights": this.flightNO }], "event": "0" } await this.$http.httpPost('/openApi/query', data).then(res => { if (res.code == "0" && res.returnData.length > 0) { this.flightDetail = [] if (this.flightDate && this.flightDate != "null") { console.log(this.outAirport) console.log(this.landAirport) res.returnData.map(item => { if (this.flightDate == item.carrierFlightsDate && this.outAirport == item.outAirport&& this.landAirport == item.landAirport) { this.flightDetail = item this.getluggageList() } }) } else { this.flightDetail = res.returnData[0] this.getluggageList() } if (this.flightDetail.scheduleTakeOffTime) { this.flightDetail.scheduleTakeOffTime = this.flightDetail.scheduleTakeOffTime .split("T")[1] } else { item.scheduleTakeOffTime = "-" } if (this.flightDetail.scheduleLandInTime) { this.flightDetail.scheduleLandInTime = this.flightDetail.scheduleLandInTime.split( "T")[1] } else { item.scheduleLandInTime = "-" } } else { this.$scanAudio.src = "../../static/hqhb.mp3" this.$scanAudio.play() uni.showToast({ icon: 'none', title: "未查询到" + this.flightNO + "航班信息", duration: 5000 }); } }) }, async getluggageList() { let data = { "serviceId": 3001, "page": 1, "pageSize": 999, "dataContent": { "carrierFlights": this.flightDetail.carrierFlights, "carrierFlightsDate": this.flightDetail.carrierFlightsDate, "outAirport":this.flightDetail.outAirport, "landAirport":this.flightDetail.landAirport }, "event": "0" } await this.$http.httpPost('/openApi/query', data).then(res => { this.listdate1 = [] this.listdate2 = [] if (res.code == "0") { this.listdate = res.returnData; res.returnData.map(item => { this.abnormalList.map(item2 => { if (item.abnormalType == item2.type) { item.abnormalName = item2.name } }) switch (this.pagename) { case "SORT": if (item.sorting_time != null) { this.listdate1.push(item) this.listdate1.sort(this.compareDesc("sorting_time")) } else { this.listdate2.push(item) } break; case "LOAD": if (item.loading_time != null) { this.listdate1.push(item) this.listdate1.sort(this.compareDesc("loading_time")) } else { this.listdate2.push(item) } break; case "INFL": if (item.installation_time != null) { this.listdate1.push(item) this.listdate1.sort(this.compareDesc("installation_time")) } else { this.listdate2.push(item) } break; case "UNLOAD": if (item.unloadtime != null) { this.listdate1.push(item) this.listdate1.sort(this.compareDesc("unloadtime")) } else { this.listdate2.push(item) } break; case "ARRIVED": if (item.arrivedtime != null) { this.listdate1.push(item) this.listdate1.sort(this.compareDesc("arrivedtime")) } else { this.listdate2.push(item) } break; default: break; } }) if (this.loadNumber == 0 && this.currentLuggageNum != null) { this.loadNumber = this.listdate1.length; let datas = this.setLuggage() this.sendData(datas) } else { this.loadNumber = this.listdate1.length; } } }) }, async getluggage(num, isSend) { let data = { "serviceId": 3002, "page": 1, "pageSize": 1, "dataContent": { "luggageNum": num, //行李号 }, "event": "0" } await this.$http.httpPost('/openApi/query', data).then(res => { if (res.code == "0" && res.returnData.length > 0) { this.currentLuggage = res.returnData[0]; if (this.flightNO != "null" && this.flightNO && this.flightNO == res.returnData[0] .carrierFlights && isSend == true) { let datas = this.setLuggage() this.sendData(datas) } else if (this.flightNO != "null" && this.flightNO && this.flightNO != res.returnData[ 0].carrierFlights) { if (this.$storage.get('times') == 1 && this.$storage.get('device') == 1) { return } else { this.tabname = res.returnData[0].carrierFlights this.typeShow = true this.$refs.showMask.show(); this.$scanAudio.src = "../../static/qzcz.mp3" this.$scanAudio.play() } } else if (this.flightNO == "null") { this.typeShow = false this.maskTitle3 = '是否对航班:' + res.returnData[0].carrierFlights + "行李进行" + this .navname + "操作?" this.headername = '提示' this.$refs.showMask3.show(); this.$scanAudio.src = "../../static/kscz.mp3" this.$scanAudio.play() } } else { if(this.$devapi.RFIDIntervalTime!=0){ this.$devapi.RFIDStopInventory() this.$devapi.ISRFIDOPEN = false } this.$scanAudio.src = "../../static/hqxl.mp3" this.$scanAudio.play() uni.showToast({ icon: 'none', title: "未查询到" + this.currentLuggageNum + "行李信息", duration: 5000 }); } }) }, setLuggage(data) { let arr = [] if (data) { data.map(item => { item.nodeCode = this.pagename; item.nodeName = this.navname; item.location_code = this.stratvalue; item.container_ID = this.container_ID item.loadNumber = this.loadNumber++; item.sourceAirport = this.$storage.get('airportName'); item.ID = null; item.dataType = "BPM"; item.agentNumber = this.$storage.getJson("users").user_name; item.device_ID = uni.getDeviceInfo().deviceId; arr.push(item) }) return arr } else { this.currentLuggage.nodeCode = this.pagename; this.currentLuggage.nodeName = this.navname; this.currentLuggage.location_code = this.stratvalue; this.currentLuggage.container_ID = this.container_ID this.currentLuggage.loadNumber = this.loadNumber++; this.currentLuggage.sourceAirport = this.$storage.get('airportName'); this.currentLuggage.ID = null; this.currentLuggage.dataType = "BPM"; this.currentLuggage.agentNumber = this.$storage.getJson("users").user_name; this.currentLuggage.device_ID = uni.getDeviceInfo().deviceId; arr.push(this.currentLuggage) return arr } }, async sendData(result) { let that = this; let data = { "serviceId": 3005, "dataContent": result, "event": "0" } await this.$http.httpPost('/openApi/query', data).then(res => { if (res.code == "0") { if (result.length > 1) { setTimeout(function() { uni.showToast({ icon: 'none', title: "操作行李成功", duration: 5000 }); that.getluggageList() }, 3000) } else { this.getluggageList() } } else { this.$scanAudio.src = "../../static/czsb.mp3" this.$scanAudio.play() uni.showToast({ icon: 'none', title: "操作失败", duration: 5000 }); } }) }, datatime() { let dataTime = Format("yyyy-MM-dd hh:mm:ss", new Date()); return dataTime }, //下拉 up(item, index) { this.currentLuggageNum = item.luggageNum; this.getluggage(this.currentLuggageNum, false); this.currentIndex = index this.typeShow = false this.maskTitle = '是否确定要拉下该件行李?' this.headername = '拉下提示' this.$refs.showMask.show(); this.$scanAudio.src = "../../static/sflx.mp3" this.$scanAudio.play() }, confirm: function(e) { //确定按钮 this.currentLuggage.abnormalState = "PFF" this.currentLuggage.abnormalName = "预卸载" let datas = this.setLuggage() this.sendData(datas) }, confirm2(e) { //确定一键操作按钮 uni.showToast({ icon: 'none', title: "操作中", duration: 5000 }); let data = this.listdate2 let datas = this.setLuggage(data) this.sendData(datas) }, confirm3: function(e) { //确定按钮 this.flightNO = this.currentLuggage.carrierFlights this.flightDate = this.currentLuggage.carrierFlightsDate this.landAirport = this.currentLuggage.landAirport this.outAirport = this.currentLuggage.outAirport this.getFlightData(); if (this.$devapi.RFIDIntervalTime!=0) {//继续连续操作 this.$devapi.RFIDStartInventory() this.$devapi.ISRFIDOPEN = true } }, cancel3: function() { //取消按钮 this.flightNO = "null" }, cancel: function() { //取消按钮 console.log('您点击了取消按钮'); }, toDetail(num) { uni.navigateTo({ // url: "/pages/detail/index?luggageNum=" + data.msg url: "/pages/detail/index?luggageNum=" + num }) }, clickOrder() { this.typeShow = false this.maskTitle2 = '是否确定要一键' + this.navname + '全部行李?' this.headername = '操作提示' this.$refs.showMask2.show(); this.$scanAudio.src = "../../static/yjzc.mp3" this.$scanAudio.play() }, baggageEntry() { uni.navigateTo({ url: "/pages/baggageEntry/index" }) }, locationEntry() { uni.navigateTo({ url: "/pages/locationEntry/index" }) }, fall() { uni.navigateBack({ delta: 1 }) }, clicker(e) { this.action = !this.action if (e != this.action) { this.action = e } }, compareDesc(propertyName) { return function(object1, object2) { var value1 = object1[propertyName]; var value2 = object2[propertyName]; if (value2 < value1) { return -1; } else if (value2 > value1) { return 1; } else { return 0; } } }, movetran(e) { let arr = uni.getSystemInfoSync().windowHeight; this.dataheight = (e.changedTouches[0].clientY / 16) + 'rem' if (e.changedTouches[0].clientY / 16 > 20.75) { this.dataheight = 20.75 + 'rem' } else if (e.changedTouches[0].clientY / 16 < 7.3125) { this.dataheight = 6.3125 + 'rem' } }, start(e) { this.startData.clientX = e.changedTouches[0].clientX; }, end(e, item) { const subX = e.changedTouches[0].clientX - this.startData.clientX; if (subX > 50) { // console.log('右滑') item.types = false } else if (subX < -50) { item.types = true // console.log('左滑') } }, checkMore(item) { console.log(item) } }, } </script> <style lang="scss" scoped> .app-content { position: relative; background: rgb(49, 85, 99); >.content { width: 100%; height: calc(100vh - 5.375rem); position: relative; // overflow: hidden; // background: rgb(49, 85, 99); >.content_top { width: 100%; // background: rgb(49, 85, 99); padding-bottom: 1.3125rem; >.craid { // width: 100%; height: 5.625rem; padding: 0 2.5625rem 0 2.5625rem; display: flex; justify-content: space-between; flex-wrap: wrap; align-items: center; >.craid_data { display: flex; flex-direction: column; justify-content: center; align-items: start; >p { color: rgb(255, 255, 255); font-family: Noto Sans SC; font-size: 18px; font-weight: 700; } >span { color: rgb(255, 255, 255); font-family: Noto Sans SC; font-size: 13px; font-weight: 500; } } .fight_center { width: 3rem; display: flex; flex-direction: column; align-items: center; justify-content: center; color: rgb(255, 255, 255); font-family: Noto Sans SC; font-size: 16px; line-height: 24px; font-weight: 700; >.aircraft { width: 1.75rem; height: 1.75rem; background: url('../../static/hang.png') no-repeat; background-size: 100% 100%; } } } >.craids { height: 5.625rem; padding: 0 2.5625rem 0 2.5625rem; display: flex; justify-content: center; align-items: center; >p { color: rgb(189, 214, 231); font-family: Noto Sans SC; font-size: 13px; font-weight: 500; } } >.scanning { height: 12rem; padding: 0 1.5rem 0 1.5rem; opacity: 1; transition: all 3s; .scanning_cd { width: 100%; height: 3rem; opacity: 1; transition: all 3s; background: rgb(59, 103, 123); margin-top: 1rem; margin-bottom: .5rem; border-radius: 4px; display: flex; justify-content: center; align-items: center; color: rgb(255, 255, 255); font-family: Noto Sans SC; font-size: 16px; >.log { width: .875rem; height: .875rem; background: url('../../static/saoma.png') no-repeat; background-size: 100% 100%; margin-left: 1rem; } >.log_l { width: .125rem; height: 1.3125rem; margin-left: 4rem; background: rgb(255, 255, 255); } } .scanning_cds { width: 100%; height: 3rem; opacity: 1; transition: all 3s; background: rgb(51, 161, 165); margin-top: 1rem; margin-bottom: .5rem; border-radius: 4px; display: flex; justify-content: center; align-items: center; color: rgb(255, 255, 255); font-family: Noto Sans SC; font-size: 16px; >.log { width: .875rem; height: .875rem; background: url('../../static/saoma.png') no-repeat; background-size: 100% 100%; margin-left: 1rem; } >.log_l { width: .125rem; height: 1.3125rem; margin-left: 4rem; background: rgb(255, 255, 255); } } } } >.content_bootom { width: 100%; // height: calc(100vh - 20.9375rem - 4.375rem); padding-bottom: 0; position: absolute; bottom: 0; top: 20.75rem; border-radius: 6px 6px 0px 0px; overflow: hidden; background: rgb(255, 255, 255); >.choice { width: 100%; height: 2.5rem; display: flex; background: rgb(240, 241, 243); >.handle { width: 50%; display: flex; align-items: center; justify-content: center; color: rgb(0, 0, 0); font-family: Noto Sans SC; font-size: 15px; font-weight: 700; border-radius: 6px 6px 0px 0px; background: rgb(255, 255, 255); } >.handles { width: 50%; display: flex; align-items: center; justify-content: center; color: rgb(0, 0, 0); font-family: Noto Sans SC; font-size: 15px; font-weight: 700; } } .up { width: 100%; display: flex; align-items: center; justify-content: space-between; margin-left: 1rem; border-bottom: 1px solid rgb(238, 238, 238); // transform: all 3s; >.down_up { width: .875rem; height: .875rem; background: url('../../static/xia.png') no-repeat; background-size: 100% 100%; } >.error { width: 20%; color: red } >.normal { width: 20%; color: #4682b4 } >.list { position: relative; height: 3rem; display: flex; align-items: center; transform: all 3s; right: 0; color: rgb(0, 0, 0); font-family: Noto Sans SC; font-size: 16px; font-weight: 500; } >.delete { width: 3.75rem; height: 3.75rem; background: rgb(237, 101, 101); display: flex; align-items: center; justify-content: center; position: relative; right: -3.75rem; transform: all 3s; >.log { width: .875rem; height: .875rem; background: url('../../static/vector@1x.png') no-repeat; background-size: 100% 100%; } } } .ups { width: 100%; display: flex; align-items: center; justify-content: space-between; margin-left: 1rem; border-bottom: 1px solid rgb(238, 238, 238); // transform: all 3s; >.down_up { width: .875rem; height: .875rem; position: relative; right: 1.875rem; background: url('../../static/xia.png') no-repeat; background-size: 100% 100%; } >.list { position: relative; height: 3rem; display: flex; align-items: center; transform: all 3s; right: 0; color: rgb(0, 0, 0); font-family: Noto Sans SC; font-size: 16px; font-weight: 500; } >.delete { width: 3.75rem; height: 3.75rem; background: rgb(237, 101, 101); display: flex; align-items: center; justify-content: center; position: relative; right: 1rem; transform: all 3s; // right: -3.75rem; >.log { width: .875rem; height: .875rem; background: url('../../static/vector@1x.png') no-repeat; background-size: 100% 100%; } } } .scroll-Y { // height: calc(100% - 2.5rem - 2.75rem - 2.25rem - 2.25rem); height: calc(100% - 2.5rem - 2.75rem); } .but { width: 20.5625rem; height: 2.5rem; background: linear-gradient(179.10deg, rgba(51, 161, 165, 1.00) 11.326%, rgba(59, 111, 142, 1.00) 119.032%, rgba(59, 111, 142, 1.00) 119.032%, rgba(59, 111, 142, 1.00) 119.032%); border-radius: .25rem; color: rgb(255, 255, 255); font-family: Noto Sans SC; font-size: 1rem; margin: 0 auto; display: flex; align-items: center; justify-content: center; margin-top: 0.25rem; margin-bottom: 2.25rem; } } } } </style>