| @ -0,0 +1,9 @@ | |||||
| { | |||||
| "version" : "1.0", | |||||
| "configurations" : [ | |||||
| { | |||||
| "playground" : "custom", | |||||
| "type" : "uni-app:app-android" | |||||
| } | |||||
| ] | |||||
| } | |||||
| @ -0,0 +1,17 @@ | |||||
| <script> | |||||
| export default { | |||||
| onLaunch: function() { | |||||
| console.log('App Launch') | |||||
| }, | |||||
| onShow: function() { | |||||
| console.log('App Show') | |||||
| }, | |||||
| onHide: function() { | |||||
| console.log('App Hide') | |||||
| } | |||||
| } | |||||
| </script> | |||||
| <style> | |||||
| /*每个页面公共css */ | |||||
| </style> | |||||
| @ -0,0 +1,215 @@ | |||||
| <template> | |||||
| <view class="carInfo"> | |||||
| <view class="carContent"> | |||||
| <view> | |||||
| <view class="carTitle"> | |||||
| 1号支架车 | |||||
| </view> | |||||
| <view class="carDetail"> | |||||
| <view v-for="item,index in carDetail1" :key="index" :class="item.width==0?'optionWidth':''"> | |||||
| <span>{{item.name}}</span> | |||||
| <span style="padding-right:4px ;">{{item.val}}</span> | |||||
| <span>{{index==7||index==11?'mm':index==9?'°':''}}</span> | |||||
| </view> | |||||
| </view> | |||||
| </view> | |||||
| <view> | |||||
| <view class="carTitle"> | |||||
| 2号支架车 | |||||
| </view> | |||||
| <view class="carDetail"> | |||||
| <view v-for="item,index in carDetail2" :key="index" :class="item.width==0?'optionWidth':''"> | |||||
| <span>{{item.name}}</span> | |||||
| <span style="padding-right:4px ;">{{item.val}}</span> | |||||
| <span>{{index==7||index==11?'mm':index==9?'°':''}}</span> | |||||
| </view> | |||||
| </view> | |||||
| </view> | |||||
| <view> | |||||
| <view class="carTitle"> | |||||
| 3号支架车 | |||||
| </view> | |||||
| <view class="carDetail"> | |||||
| <view v-for="item,index in carDetail3" :key="index" :class="item.width==0?'optionWidth':''"> | |||||
| <span>{{item.name}}</span> | |||||
| <span style="padding-right:4px ;">{{item.val}}</span> | |||||
| <span>{{index==7||index==11?'mm':index==9?'°':''}}</span> | |||||
| </view> | |||||
| </view> | |||||
| </view> | |||||
| </view> | |||||
| </view> | |||||
| </template> | |||||
| <script> | |||||
| export default{ | |||||
| props:{ | |||||
| carData1:{ | |||||
| type:Array | |||||
| }, | |||||
| carData2:{ | |||||
| type:Array | |||||
| }, | |||||
| carData3:{ | |||||
| type:Array | |||||
| }, | |||||
| }, | |||||
| data(){ | |||||
| return{ | |||||
| dataInter:[ | |||||
| { | |||||
| name:'支架车在线状态:', | |||||
| width:0, | |||||
| val:'离线' | |||||
| },{ | |||||
| name:'左横移限位:', | |||||
| width:1, | |||||
| val:'2' | |||||
| },{ | |||||
| name:'右横移限位:', | |||||
| width:1, | |||||
| val:'3' | |||||
| },{ | |||||
| name:'上限位:', | |||||
| width:1, | |||||
| val:'3' | |||||
| },{ | |||||
| name:'下限位:', | |||||
| width:1, | |||||
| val:'3' | |||||
| },{ | |||||
| name:'左滚转限位:', | |||||
| width:1, | |||||
| val:'3' | |||||
| },{ | |||||
| name:'右滚转限位:', | |||||
| width:1, | |||||
| val:'3' | |||||
| },{ | |||||
| name:'行进位置:', | |||||
| width:1, | |||||
| val:'3' | |||||
| },{ | |||||
| name:'横移位置:', | |||||
| width:1, | |||||
| val:'3' | |||||
| },{ | |||||
| name:'滚转位置:', | |||||
| width:1, | |||||
| val:'3' | |||||
| },{ | |||||
| name:'超重限位:', | |||||
| width:1, | |||||
| val:'3' | |||||
| },{ | |||||
| name:'升降位置:', | |||||
| width:0, | |||||
| val:'3' | |||||
| } | |||||
| ], | |||||
| carDetail1:[], | |||||
| carDetail2:[], | |||||
| carDetail3:[], | |||||
| } | |||||
| }, | |||||
| watch:{ | |||||
| carData1:{ | |||||
| handler(newVal,oldVal){ | |||||
| if(newVal){ | |||||
| this.carDetail1=newVal | |||||
| } | |||||
| } | |||||
| }, | |||||
| carData2:{ | |||||
| handler(newVal,oldVal){ | |||||
| if(newVal){ | |||||
| this.carDetail2=newVal | |||||
| } | |||||
| } | |||||
| }, | |||||
| carData3:{ | |||||
| handler(newVal,oldVal){ | |||||
| if(newVal){ | |||||
| this.carDetail3=newVal | |||||
| } | |||||
| } | |||||
| } | |||||
| }, | |||||
| mounted() { | |||||
| this.carDetail1=this.dataInter; //初始化1号车数据 | |||||
| this.carDetail2=this.dataInter; //初始化2号车数据 | |||||
| this.carDetail3=this.dataInter; //初始化3号车数据 | |||||
| } | |||||
| } | |||||
| </script> | |||||
| <style scoped> | |||||
| .optionWidth{ | |||||
| width: 92% !important; | |||||
| } | |||||
| .carInfo{ | |||||
| width: 100%; | |||||
| height: 90%; | |||||
| position: absolute; | |||||
| bottom: 0; | |||||
| display: flex; | |||||
| justify-content: center; | |||||
| align-items: center; | |||||
| } | |||||
| .carContent{ | |||||
| width: 98%; | |||||
| height: 98%; | |||||
| display: flex; | |||||
| justify-content: space-between; | |||||
| align-items: center; | |||||
| } | |||||
| .carContent>view{ | |||||
| width: 33%; | |||||
| height: 100%; | |||||
| border-radius: 10px; | |||||
| background-color: #ffffff; | |||||
| } | |||||
| .carTitle{ | |||||
| display: flex; | |||||
| justify-content: center; | |||||
| align-items: center; | |||||
| border-bottom: 1px solid #ccc; | |||||
| width: 100%; | |||||
| height: 8%; | |||||
| font-size: 24px; | |||||
| background-color: rgb(204, 204, 204,0.4); | |||||
| border-radius: 10px 10px 0 0; | |||||
| } | |||||
| .carDetail{ | |||||
| width: 100%; | |||||
| height: 92%; | |||||
| display: flex; | |||||
| justify-content: space-around; | |||||
| align-items: center; | |||||
| flex-wrap: wrap; | |||||
| } | |||||
| .carDetail>view{ | |||||
| width: 42%; | |||||
| height: 8%; | |||||
| border-radius: 10px; | |||||
| border: 1px solid #ccc; | |||||
| box-shadow: 1px 1px 3px 1px rgba(0, 0, 0, 0.12); | |||||
| display: flex; | |||||
| justify-content: start; | |||||
| align-items: center; | |||||
| padding-left: 4%; | |||||
| font-size: 18px; | |||||
| } | |||||
| .carDetail>view>span{ | |||||
| display: flex; | |||||
| height: 50%; | |||||
| align-items: end; | |||||
| } | |||||
| </style> | |||||
| @ -0,0 +1,497 @@ | |||||
| <template> | |||||
| <view class="deviceInfo"> | |||||
| <view class="deviceContent"> | |||||
| <view class="infoShow"> | |||||
| <view class="deviceitle info">设备数据</view> | |||||
| <view class="deivceData"> | |||||
| <view class='left'> | |||||
| <view class="left_top"> | |||||
| <view> | |||||
| <span>设备状态:</span> | |||||
| <image class="Icon" :src="deviceData.lightFlag==0?normalIcon:errorIcon"/> | |||||
| </view> | |||||
| <view> | |||||
| <span>自动对接:</span> | |||||
| <image class="Icon" :src="deviceData.autoDockLightFlag==0?errorIcon:normalIcon"/> | |||||
| </view> | |||||
| <view> | |||||
| <span>急停有效:</span> | |||||
| <image class="Icon" :src="deviceData.stopLightFlag==0?errorIcon:normalIcon"/> | |||||
| </view> | |||||
| <view> | |||||
| <span>自动装填:</span> | |||||
| <image class="Icon" :src="deviceData.autoFillLightFlag==0?errorIcon:normalIcon"/> | |||||
| </view> | |||||
| <view> | |||||
| <span>控制模式:</span> | |||||
| <span>{{deviceData.ctrlFlag==1?'自动':'手动'}}</span> | |||||
| </view> | |||||
| <view> | |||||
| <span>自动退货:</span> | |||||
| <image class="Icon" :src="deviceData.autoReturnLightFlag==0?errorIcon:normalIcon"/> | |||||
| </view> | |||||
| </view> | |||||
| <view class="left-bottom"> | |||||
| <view> | |||||
| <view style="width: 25%;">设备状态:</view> | |||||
| <view> | |||||
| <image class="Icon" :src="normalIcon"/>: | |||||
| <span>正常</span> | |||||
| </view> | |||||
| <view> | |||||
| <image class="Icon" :src="errorIcon"/>: | |||||
| <span>异常</span> | |||||
| </view> | |||||
| </view> | |||||
| <view> | |||||
| <view style="width: 25%;">急停有效:</view> | |||||
| <view > | |||||
| <image class="Icon" :src="normalIcon"/>: | |||||
| <span>有效</span> | |||||
| </view> | |||||
| <view > | |||||
| <image class="Icon" :src="errorIcon"/>: | |||||
| <span>无效</span> | |||||
| </view> | |||||
| </view> | |||||
| <view> | |||||
| <view style="width: 25%;">自动对接:</view> | |||||
| <view> | |||||
| <image class="Icon" :src="normalIcon"/>: | |||||
| <span>有动作</span> | |||||
| </view> | |||||
| <view > | |||||
| <image class="Icon" :src="errorIcon"/>: | |||||
| <span>无动作</span> | |||||
| </view> | |||||
| </view> | |||||
| <view> | |||||
| <view style="width: 25%;">自动装填:</view> | |||||
| <view > | |||||
| <image class="Icon" :src="normalIcon"/>: | |||||
| <span>有动作</span> | |||||
| </view> | |||||
| <view > | |||||
| <image class="Icon" :src="errorIcon"/>: | |||||
| <span>无动作</span> | |||||
| </view> | |||||
| </view> | |||||
| <view> | |||||
| <view style="width: 25%;">自动退货:</view> | |||||
| <view > | |||||
| <image class="Icon" :src="normalIcon"/>: | |||||
| <span>有动作</span> | |||||
| </view> | |||||
| <view > | |||||
| <image class="Icon" :src="errorIcon"/>: | |||||
| <span>无动作</span> | |||||
| </view> | |||||
| </view> | |||||
| </view> | |||||
| </view> | |||||
| <view class="right"> | |||||
| <view class="cameraInfo"> | |||||
| <view style="width: 22%;"> | |||||
| <span class="infoTitle">设备在线状态:</span> | |||||
| <span class="detail">{{deviceData.isOnline?'在线':'不在线'}}</span> | |||||
| </view> | |||||
| <view style="width: 22%;"> | |||||
| <span class="infoTitle">相机1状态:</span> | |||||
| <span class="detail">{{cameraState(deviceData.cameraOneState)}}</span> | |||||
| </view> | |||||
| <view style="width: 22%;"> | |||||
| <span class="infoTitle">相机2状态:</span> | |||||
| <span class="detail">{{cameraState(deviceData.cameraTwoState)}}</span> | |||||
| </view> | |||||
| </view> | |||||
| <view class="directionInfo"> | |||||
| <view style="width: 22%;"> | |||||
| <span class="infoTitle">X方向距离:</span> | |||||
| <span class="detail">{{deviceData.xAxisDistance}}mm</span> | |||||
| </view> | |||||
| <view style="width: 22%;"> | |||||
| <span class="infoTitle">Y方向距离:</span> | |||||
| <span class="detail">{{deviceData.yAxisDistance}}mm</span> | |||||
| </view> | |||||
| <view style="width: 22%;"> | |||||
| <span class="infoTitle">Z方向距离:</span> | |||||
| <span class="detail">{{deviceData.zAxisDistance}}mm</span> | |||||
| </view> | |||||
| </view> | |||||
| <view class="angleInfo"> | |||||
| <view style="width: 22%;"> | |||||
| <span class="infoTitle" >滚转角度:</span> | |||||
| <span >{{deviceData.horizontalTurnAngle?deviceData.horizontalTurnAngle:'0'}}°</span> | |||||
| </view> | |||||
| <view style="width: 22%;"> | |||||
| <span class="infoTitle" >俯仰角度:</span> | |||||
| <span >{{deviceData.upDownAngle?deviceData.upDownAngle:'0'}}°</span> | |||||
| </view> | |||||
| <view style="width: 22%;"> | |||||
| <span class="infoTitle" >方位角度:</span> | |||||
| <span class="detail">{{deviceData.directionAngle?deviceData.directionAngle:'0'}}°</span> | |||||
| </view> | |||||
| </view> | |||||
| <view class="encoderInfo"> | |||||
| <view style="width: 28%;"> | |||||
| <span class="infoTitle" >编码器在线状态:</span> | |||||
| <span class="detail">{{deviceData.encoderOnlineState==1?'在线':'离线'}}</span> | |||||
| </view> | |||||
| <view style="width: 24%;"> | |||||
| <span class="infoTitle">编码器位置:</span> | |||||
| <span class="detail">{{deviceData.encoderPosition}}mm</span> | |||||
| </view> | |||||
| <view style="width: 10%;opacity: 0;"> | |||||
| </view> | |||||
| </view> | |||||
| <view class="encoderInfo"> | |||||
| <view style="width: 28%;"> | |||||
| <span class="infoTitle">变频器在线状态:</span> | |||||
| <span class="detail">{{deviceData.vfdOnlineState==1?'在线':'离线'}}</span> | |||||
| </view> | |||||
| <view style="width: 24%;"> | |||||
| <span class="infoTitle">变频器故障码:</span> | |||||
| <span class="detail">{{deviceData.vfdFaultCode}}</span> | |||||
| </view> | |||||
| <view style="width: 10%;opacity: 0;"> | |||||
| </view> | |||||
| </view> | |||||
| <view class="angleInfo"> | |||||
| <view style="width: 28%;"> | |||||
| <span class="infoTitle">电机实际运行电流:</span> | |||||
| <span class="detail">{{deviceData.trueEleCurrent}}</span> | |||||
| </view> | |||||
| <view style="opacity: 0;"> | |||||
| </view> | |||||
| <view style="opacity: 0;"> | |||||
| </view> | |||||
| </view> | |||||
| </view> | |||||
| </view> | |||||
| </view> | |||||
| <view class="controlButton"> | |||||
| <view class="deviceitle control">设备控制</view> | |||||
| <view class="controlContent"> | |||||
| <view @click="controlDevice(1)">对接</view> | |||||
| <view @click="controlDevice(2)">装填</view> | |||||
| <view @click="controlDevice(3)">退货</view> | |||||
| <view @click="controlDevice(4)">急停</view> | |||||
| <view @click="controlDevice(5)">恢复</view> | |||||
| </view> | |||||
| </view> | |||||
| </view> | |||||
| </view> | |||||
| </template> | |||||
| <script> | |||||
| import {httpPost} from '../../utils/requset.js'; | |||||
| export default{ | |||||
| props:{ | |||||
| Data:{ | |||||
| type:Object | |||||
| } | |||||
| }, | |||||
| data(){ | |||||
| return{ | |||||
| deviceData:{ | |||||
| trueEleCurrent:'', //电机实际运行电流 | |||||
| vfdOnlineState:'', //变频器在线状态 | |||||
| vfdFaultCode: 1,//变频器故障码 | |||||
| encoderPosition: 100,//编码器位置,单位mm | |||||
| encoderOnlineState: 0,//编码器在线状态:0-离线,1-在线 | |||||
| upDownAngle:'', //俯仰角度 | |||||
| directionAngle: 100,//方位角度,单位° | |||||
| horizontalTurnAngle: 100,//滚装角度,单位° | |||||
| cameraOneState: 1,//相机1状态:0:正常,1:通讯异常,2:无图像,3:光强饱和,4:缺少目标点 | |||||
| cameraTwoState: 1,//相机2状态:0:正常,1:通讯异常,2:无图像,3:光强饱和,4:缺少目标点 | |||||
| yAxisDistance: 100,//Y方向距离,单位mm | |||||
| xAxisDistance: 100,//X方向距离,单位mm | |||||
| zAxisDistance: 100,//Z方向距离,单位mm | |||||
| isOnline: false,//在线状态:true-在线、false | |||||
| autoDockLightFlag: 0,//自动对接:0:无动作、1:有动作 | |||||
| stopLightFlag: 0,//急停有效:0:无效、1:有效 | |||||
| autoReturnLightFlag: 0,//自动退货: 0:无动作、1:有动作 | |||||
| autoFillLightFlag: 0,//自动装填: 0:无动作、1:有动作 | |||||
| ctrlFlag: 0,//控制模式:0-手动、1-自动 | |||||
| lightFlag: 1,//设备状态:0-正常、1-异常 | |||||
| }, | |||||
| errorIcon:'/static/image/error.png', | |||||
| normalIcon:'/static/image/normal.png' | |||||
| } | |||||
| }, | |||||
| methods:{ | |||||
| controlDevice(value){ | |||||
| console.log(value) | |||||
| httpPost({ | |||||
| url:`/zhxx/dt/horizonLoadIControl/${value}`, | |||||
| data:{} | |||||
| }).then((res)=>{ | |||||
| if(res.code==200){ | |||||
| uni.showToast({ | |||||
| title: res.msg, | |||||
| icon: "success", | |||||
| duration: 1000 | |||||
| }) | |||||
| }else{ | |||||
| uni.showToast({ | |||||
| title: res.msg?res.msg:'请求失败', | |||||
| icon: "error", | |||||
| duration: 1000 | |||||
| }) | |||||
| } | |||||
| }).catch((Error)=>{ | |||||
| // console.log(Error) | |||||
| uni.showToast({ | |||||
| title: Error, | |||||
| icon: "error", | |||||
| duration: 1000 | |||||
| }) | |||||
| }) | |||||
| } | |||||
| }, | |||||
| computed:{ | |||||
| cameraState(){ | |||||
| return function(value){ | |||||
| let cameraData=''; | |||||
| switch(value){ | |||||
| case 0: | |||||
| cameraData='正常'; | |||||
| break; | |||||
| case 1: | |||||
| cameraData='通讯异常'; | |||||
| break; | |||||
| case 2: | |||||
| cameraData='无图像'; | |||||
| break; | |||||
| case 3: | |||||
| cameraData='光强饱和'; | |||||
| break; | |||||
| case 4: | |||||
| cameraData='缺少目标点'; | |||||
| break; | |||||
| } | |||||
| return cameraData; | |||||
| } | |||||
| } | |||||
| }, | |||||
| watch:{ | |||||
| Data:{ | |||||
| handler(newVal,oldVal){ | |||||
| if(newVal){ | |||||
| this.deviceData=newVal | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| </script> | |||||
| <style scoped> | |||||
| .deviceInfo{ | |||||
| width: 100%; | |||||
| height: 90%; | |||||
| position: absolute; | |||||
| bottom: 0; | |||||
| display: flex; | |||||
| justify-content: center; | |||||
| align-items: center; | |||||
| } | |||||
| .deviceContent{ | |||||
| width: 98%; | |||||
| height: 98%; | |||||
| display: flex; | |||||
| flex-direction: column; | |||||
| justify-content: space-between; | |||||
| align-items: center; | |||||
| } | |||||
| .infoShow{ | |||||
| width: 100%; | |||||
| height: 72%; | |||||
| border-radius: 10px; | |||||
| background-color: #ffffff; | |||||
| } | |||||
| .controlButton{ | |||||
| width: 100%; | |||||
| height: 26%; | |||||
| border-radius: 10px; | |||||
| background-color: #ffffff; | |||||
| } | |||||
| .deviceitle{ | |||||
| width: 100%; | |||||
| border-bottom: 1px solid #ccc; | |||||
| display: flex; | |||||
| justify-content: center; | |||||
| align-items: center; | |||||
| font-size: 28px; | |||||
| font-weight: bold; | |||||
| letter-spacing: 10px; | |||||
| background-color: rgb(204, 204, 204,0.4); | |||||
| border-radius: 10px 10px 0 0; | |||||
| } | |||||
| .info{ | |||||
| height: 10%; | |||||
| } | |||||
| .control{ | |||||
| height: 28%; | |||||
| } | |||||
| .deivceData{ | |||||
| width: 100%; | |||||
| height: 88%; | |||||
| display: flex; | |||||
| align-items: center; | |||||
| } | |||||
| .left{ | |||||
| width: 32%; | |||||
| height: 100%; | |||||
| border-right: 1px solid #ccc; | |||||
| font-size: 18px; | |||||
| } | |||||
| .left_top{ | |||||
| width: 100%; | |||||
| height: 58%; | |||||
| display: flex; | |||||
| justify-content: space-around; | |||||
| flex-wrap: wrap; | |||||
| align-items: center; | |||||
| border-bottom: 1px solid #ccc; | |||||
| } | |||||
| .left_top>view{ | |||||
| width: 40%; | |||||
| height: 20%; | |||||
| display: flex; | |||||
| justify-content: center; | |||||
| align-items: center; | |||||
| border:1px solid #ccc; | |||||
| border-radius: 10px; | |||||
| box-shadow: 1px 1px 3px 1px rgba(0, 0, 0, 0.12); | |||||
| } | |||||
| .Icon{ | |||||
| width: 24px; | |||||
| height: 24px; | |||||
| } | |||||
| .left-bottom{ | |||||
| width: 100%; | |||||
| height: 36%; | |||||
| display: flex; | |||||
| flex-direction: column; | |||||
| justify-content: space-around; | |||||
| align-items: center; | |||||
| font-size: 16px; | |||||
| padding-top: 2%; | |||||
| } | |||||
| .left-bottom>view{ | |||||
| width: 70%; | |||||
| display: flex; | |||||
| justify-content: space-between; | |||||
| align-items: center; | |||||
| } | |||||
| .left-bottom>view>view{ | |||||
| width: 32%; | |||||
| display: flex; | |||||
| justify-content: start; | |||||
| align-items: center; | |||||
| } | |||||
| .controlContent{ | |||||
| width: 100%; | |||||
| height: 74%; | |||||
| display: flex; | |||||
| justify-content: space-around; | |||||
| align-items: center; | |||||
| } | |||||
| .controlContent>view{ | |||||
| width: 12%; | |||||
| height: 40%; | |||||
| background-color: #42B983; | |||||
| color: #ffffff; | |||||
| font-size: 24px; | |||||
| display: flex; | |||||
| justify-content: center; | |||||
| align-items: center; | |||||
| border-radius: 10px; | |||||
| } | |||||
| .controlContent>view:active{ | |||||
| opacity: 0.6; | |||||
| } | |||||
| .right{ | |||||
| width: 68%; | |||||
| height: 100%; | |||||
| display: flex; | |||||
| flex-direction: column; | |||||
| justify-content: space-around; | |||||
| align-items: center; | |||||
| font-size: 18px; | |||||
| } | |||||
| .cameraInfo,.directionInfo,.angleInfo,.encoderInfo{ | |||||
| width: 96%; | |||||
| height: 11%; | |||||
| display: flex; | |||||
| justify-content: space-between; | |||||
| align-items: center; | |||||
| } | |||||
| .cameraInfo>view,.directionInfo>view,.angleInfo>view,.encoderInfo>view{ | |||||
| width: 20%; | |||||
| height: 100%; | |||||
| display: flex; | |||||
| justify-content: start; | |||||
| align-items: center; | |||||
| border-radius: 10px; | |||||
| border: 1px solid #ccc; | |||||
| box-shadow: 1px 1px 3px 1px rgba(0, 0, 0, 0.12); | |||||
| padding: 0 3%; | |||||
| } | |||||
| .infoTitle{ | |||||
| /* width: 52%; */ | |||||
| display: flex; | |||||
| justify-content: center; | |||||
| align-items: center | |||||
| } | |||||
| .detail{ | |||||
| /* width: 28%; */ | |||||
| /* background-color: #ccc; */ | |||||
| } | |||||
| </style> | |||||
| @ -0,0 +1,9 @@ | |||||
| // 配置地址 | |||||
| let debug = true | |||||
| export const CONFIG = {} | |||||
| if (debug) { | |||||
| CONFIG['API_BASE_URL'] = 'http://192.168.150.29:10086'; | |||||
| } else { | |||||
| CONFIG['API_BASE_URL'] = 'http://192.168.150.29:10086'; | |||||
| } | |||||
| @ -0,0 +1,20 @@ | |||||
| <!DOCTYPE html> | |||||
| <html lang="en"> | |||||
| <head> | |||||
| <meta charset="UTF-8" /> | |||||
| <script> | |||||
| var coverSupport = 'CSS' in window && typeof CSS.supports === 'function' && (CSS.supports('top: env(a)') || | |||||
| CSS.supports('top: constant(a)')) | |||||
| document.write( | |||||
| '<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' + | |||||
| (coverSupport ? ', viewport-fit=cover' : '') + '" />') | |||||
| </script> | |||||
| <title></title> | |||||
| <!--preload-links--> | |||||
| <!--app-context--> | |||||
| </head> | |||||
| <body> | |||||
| <div id="app"><!--app-html--></div> | |||||
| <script type="module" src="/main.js"></script> | |||||
| </body> | |||||
| </html> | |||||
| @ -0,0 +1,38 @@ | |||||
| import App from './App' | |||||
| import mitt from "mitt"; | |||||
| // #ifndef VUE3 | |||||
| import Vue from 'vue' | |||||
| import './uni.promisify.adaptor' | |||||
| Vue.config.productionTip = false | |||||
| App.mpType = 'app' | |||||
| const app = new Vue({ | |||||
| ...App | |||||
| }) | |||||
| const eventBus = mitt(); | |||||
| eventBus.$on = eventBus.on; | |||||
| eventBus.$off = eventBus.off; | |||||
| eventBus.$emit = eventBus.emit; | |||||
| app.config.globalProperties.$eventBus = eventBus; | |||||
| app.$mount() | |||||
| // #endif | |||||
| // #ifdef VUE3 | |||||
| import { createSSRApp } from 'vue' | |||||
| export function createApp() { | |||||
| const app = createSSRApp(App) | |||||
| const eventBus = mitt(); | |||||
| eventBus.$on = eventBus.on; | |||||
| eventBus.$off = eventBus.off; | |||||
| eventBus.$emit = eventBus.emit; | |||||
| app.config.globalProperties.$eventBus = eventBus; | |||||
| return { | |||||
| app | |||||
| } | |||||
| } | |||||
| // #endif | |||||
| @ -0,0 +1,79 @@ | |||||
| { | |||||
| "name" : "ATIA", | |||||
| "appid" : "__UNI__17D2062", | |||||
| "description" : "", | |||||
| "versionName" : "1.0.0", | |||||
| "versionCode" : "100", | |||||
| "transformPx" : false, | |||||
| /* 5+App特有相关 */ | |||||
| "app-plus" : { | |||||
| "usingComponents" : true, | |||||
| "nvueStyleCompiler" : "uni-app", | |||||
| "compilerVersion" : 3, | |||||
| "splashscreen" : { | |||||
| "alwaysShowBeforeRender" : true, | |||||
| "waiting" : true, | |||||
| "autoclose" : true, | |||||
| "delay" : 0 | |||||
| }, | |||||
| /* 模块配置 */ | |||||
| "modules" : {}, | |||||
| /* 应用发布信息 */ | |||||
| "distribute" : { | |||||
| /* android打包配置 */ | |||||
| "android" : { | |||||
| "permissions" : [ | |||||
| "<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>", | |||||
| "<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>", | |||||
| "<uses-permission android:name=\"android.permission.VIBRATE\"/>", | |||||
| "<uses-permission android:name=\"android.permission.READ_LOGS\"/>", | |||||
| "<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>", | |||||
| "<uses-feature android:name=\"android.hardware.camera.autofocus\"/>", | |||||
| "<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>", | |||||
| "<uses-permission android:name=\"android.permission.CAMERA\"/>", | |||||
| "<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>", | |||||
| "<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>", | |||||
| "<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>", | |||||
| "<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>", | |||||
| "<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>", | |||||
| "<uses-feature android:name=\"android.hardware.camera\"/>", | |||||
| "<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>" | |||||
| ] | |||||
| }, | |||||
| /* ios打包配置 */ | |||||
| "ios" : { | |||||
| "dSYMs" : false | |||||
| }, | |||||
| /* SDK配置 */ | |||||
| "sdkConfigs" : {}, | |||||
| "icons" : { | |||||
| "android" : { | |||||
| "xxxhdpi" : "static/image/logo.png" | |||||
| } | |||||
| } | |||||
| } | |||||
| }, | |||||
| /* 快应用特有相关 */ | |||||
| "quickapp" : {}, | |||||
| /* 小程序特有相关 */ | |||||
| "mp-weixin" : { | |||||
| "appid" : "", | |||||
| "setting" : { | |||||
| "urlCheck" : false | |||||
| }, | |||||
| "usingComponents" : true | |||||
| }, | |||||
| "mp-alipay" : { | |||||
| "usingComponents" : true | |||||
| }, | |||||
| "mp-baidu" : { | |||||
| "usingComponents" : true | |||||
| }, | |||||
| "mp-toutiao" : { | |||||
| "usingComponents" : true | |||||
| }, | |||||
| "uniStatistics" : { | |||||
| "enable" : false | |||||
| }, | |||||
| "vueVersion" : "3" | |||||
| } | |||||
| @ -0,0 +1,13 @@ | |||||
| { | |||||
| "name": "SpztPad", | |||||
| "lockfileVersion": 3, | |||||
| "requires": true, | |||||
| "packages": { | |||||
| "node_modules/mitt": { | |||||
| "version": "3.0.1", | |||||
| "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz", | |||||
| "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==", | |||||
| "license": "MIT" | |||||
| } | |||||
| } | |||||
| } | |||||
| @ -0,0 +1,21 @@ | |||||
| MIT License | |||||
| Copyright (c) 2021 Jason Miller | |||||
| Permission is hereby granted, free of charge, to any person obtaining a copy | |||||
| of this software and associated documentation files (the "Software"), to deal | |||||
| in the Software without restriction, including without limitation the rights | |||||
| to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | |||||
| copies of the Software, and to permit persons to whom the Software is | |||||
| furnished to do so, subject to the following conditions: | |||||
| The above copyright notice and this permission notice shall be included in all | |||||
| copies or substantial portions of the Software. | |||||
| THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | |||||
| IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | |||||
| FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | |||||
| AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | |||||
| LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | |||||
| OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | |||||
| SOFTWARE. | |||||
| @ -0,0 +1,205 @@ | |||||
| <p align="center"> | |||||
| <img src="https://i.imgur.com/BqsX9NT.png" width="300" height="300" alt="mitt"> | |||||
| <br> | |||||
| <a href="https://www.npmjs.org/package/mitt"><img src="https://img.shields.io/npm/v/mitt.svg" alt="npm"></a> | |||||
| <img src="https://github.com/developit/mitt/workflows/CI/badge.svg" alt="build status"> | |||||
| <a href="https://unpkg.com/mitt/dist/mitt.js"><img src="https://img.badgesize.io/https://unpkg.com/mitt/dist/mitt.js?compression=gzip" alt="gzip size"></a> | |||||
| </p> | |||||
| # Mitt | |||||
| > Tiny 200b functional event emitter / pubsub. | |||||
| - **Microscopic:** weighs less than 200 bytes gzipped | |||||
| - **Useful:** a wildcard `"*"` event type listens to all events | |||||
| - **Familiar:** same names & ideas as [Node's EventEmitter](https://nodejs.org/api/events.html#events_class_eventemitter) | |||||
| - **Functional:** methods don't rely on `this` | |||||
| - **Great Name:** somehow [mitt](https://npm.im/mitt) wasn't taken | |||||
| Mitt was made for the browser, but works in any JavaScript runtime. It has no dependencies and supports IE9+. | |||||
| ## Table of Contents | |||||
| - [Install](#install) | |||||
| - [Usage](#usage) | |||||
| - [Examples & Demos](#examples--demos) | |||||
| - [API](#api) | |||||
| - [Contribute](#contribute) | |||||
| - [License](#license) | |||||
| ## Install | |||||
| This project uses [node](http://nodejs.org) and [npm](https://npmjs.com). Go check them out if you don't have them locally installed. | |||||
| ```sh | |||||
| $ npm install --save mitt | |||||
| ``` | |||||
| Then with a module bundler like [rollup](http://rollupjs.org/) or [webpack](https://webpack.js.org/), use as you would anything else: | |||||
| ```javascript | |||||
| // using ES6 modules | |||||
| import mitt from 'mitt' | |||||
| // using CommonJS modules | |||||
| var mitt = require('mitt') | |||||
| ``` | |||||
| The [UMD](https://github.com/umdjs/umd) build is also available on [unpkg](https://unpkg.com): | |||||
| ```html | |||||
| <script src="https://unpkg.com/mitt/dist/mitt.umd.js"></script> | |||||
| ``` | |||||
| You can find the library on `window.mitt`. | |||||
| ## Usage | |||||
| ```js | |||||
| import mitt from 'mitt' | |||||
| const emitter = mitt() | |||||
| // listen to an event | |||||
| emitter.on('foo', e => console.log('foo', e) ) | |||||
| // listen to all events | |||||
| emitter.on('*', (type, e) => console.log(type, e) ) | |||||
| // fire an event | |||||
| emitter.emit('foo', { a: 'b' }) | |||||
| // clearing all events | |||||
| emitter.all.clear() | |||||
| // working with handler references: | |||||
| function onFoo() {} | |||||
| emitter.on('foo', onFoo) // listen | |||||
| emitter.off('foo', onFoo) // unlisten | |||||
| ``` | |||||
| ### Typescript | |||||
| Set `"strict": true` in your tsconfig.json to get improved type inference for `mitt` instance methods. | |||||
| ```ts | |||||
| import mitt from 'mitt'; | |||||
| type Events = { | |||||
| foo: string; | |||||
| bar?: number; | |||||
| }; | |||||
| const emitter = mitt<Events>(); // inferred as Emitter<Events> | |||||
| emitter.on('foo', (e) => {}); // 'e' has inferred type 'string' | |||||
| emitter.emit('foo', 42); // Error: Argument of type 'number' is not assignable to parameter of type 'string'. (2345) | |||||
| ``` | |||||
| Alternatively, you can use the provided `Emitter` type: | |||||
| ```ts | |||||
| import mitt, { Emitter } from 'mitt'; | |||||
| type Events = { | |||||
| foo: string; | |||||
| bar?: number; | |||||
| }; | |||||
| const emitter: Emitter<Events> = mitt<Events>(); | |||||
| ``` | |||||
| ## Examples & Demos | |||||
| <a href="http://codepen.io/developit/pen/rjMEwW?editors=0110"> | |||||
| <b>Preact + Mitt Codepen Demo</b> | |||||
| <br> | |||||
| <img src="https://i.imgur.com/CjBgOfJ.png" width="278" alt="preact + mitt preview"> | |||||
| </a> | |||||
| * * * | |||||
| ## API | |||||
| <!-- Generated by documentation.js. Update this documentation by updating the source code. --> | |||||
| #### Table of Contents | |||||
| - [mitt](#mitt) | |||||
| - [all](#all) | |||||
| - [on](#on) | |||||
| - [Parameters](#parameters) | |||||
| - [off](#off) | |||||
| - [Parameters](#parameters-1) | |||||
| - [emit](#emit) | |||||
| - [Parameters](#parameters-2) | |||||
| ### mitt | |||||
| Mitt: Tiny (~200b) functional event emitter / pubsub. | |||||
| Returns **Mitt** | |||||
| ### all | |||||
| A Map of event names to registered handler functions. | |||||
| ### on | |||||
| Register an event handler for the given type. | |||||
| #### Parameters | |||||
| - `type` **([string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String) \| [symbol](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Symbol))** Type of event to listen for, or `'*'` for all events | |||||
| - `handler` **[Function](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/function)** Function to call in response to given event | |||||
| ### off | |||||
| Remove an event handler for the given type. | |||||
| If `handler` is omitted, all handlers of the given type are removed. | |||||
| #### Parameters | |||||
| - `type` **([string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String) \| [symbol](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Symbol))** Type of event to unregister `handler` from, or `'*'` | |||||
| - `handler` **[Function](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/function)?** Handler function to remove | |||||
| ### emit | |||||
| Invoke all handlers for the given type. | |||||
| If present, `'*'` handlers are invoked after type-matched handlers. | |||||
| Note: Manually firing '\*' handlers is not supported. | |||||
| #### Parameters | |||||
| - `type` **([string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String) \| [symbol](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Symbol))** The event type to invoke | |||||
| - `evt` **Any?** Any value (object is recommended and powerful), passed to each handler | |||||
| ## Contribute | |||||
| First off, thanks for taking the time to contribute! | |||||
| Now, take a moment to be sure your contributions make sense to everyone else. | |||||
| ### Reporting Issues | |||||
| Found a problem? Want a new feature? First of all see if your issue or idea has [already been reported](../../issues). | |||||
| If don't, just open a [new clear and descriptive issue](../../issues/new). | |||||
| ### Submitting pull requests | |||||
| Pull requests are the greatest contributions, so be sure they are focused in scope, and do avoid unrelated commits. | |||||
| - Fork it! | |||||
| - Clone your fork: `git clone https://github.com/<your-username>/mitt` | |||||
| - Navigate to the newly cloned directory: `cd mitt` | |||||
| - Create a new branch for the new feature: `git checkout -b my-new-feature` | |||||
| - Install the tools necessary for development: `npm install` | |||||
| - Make your changes. | |||||
| - Commit your changes: `git commit -am 'Add some feature'` | |||||
| - Push to the branch: `git push origin my-new-feature` | |||||
| - Submit a pull request with full remarks documenting your changes. | |||||
| ## License | |||||
| [MIT License](https://opensource.org/licenses/MIT) © [Jason Miller](https://jasonformat.com/) | |||||
| @ -0,0 +1,2 @@ | |||||
| module.exports=function(n){return{all:n=n||new Map,on:function(e,t){var i=n.get(e);i?i.push(t):n.set(e,[t])},off:function(e,t){var i=n.get(e);i&&(t?i.splice(i.indexOf(t)>>>0,1):n.set(e,[]))},emit:function(e,t){var i=n.get(e);i&&i.slice().map(function(n){n(t)}),(i=n.get("*"))&&i.slice().map(function(n){n(e,t)})}}}; | |||||
| //# sourceMappingURL=mitt.js.map | |||||
| @ -0,0 +1 @@ | |||||
| {"version":3,"file":"mitt.js","sources":["../src/index.ts"],"sourcesContent":["export type EventType = string | symbol;\n\n// An event handler can take an optional event argument\n// and should not return a value\nexport type Handler<T = unknown> = (event: T) => void;\nexport type WildcardHandler<T = Record<string, unknown>> = (\n\ttype: keyof T,\n\tevent: T[keyof T]\n) => void;\n\n// An array of all currently registered event handlers for a type\nexport type EventHandlerList<T = unknown> = Array<Handler<T>>;\nexport type WildCardEventHandlerList<T = Record<string, unknown>> = Array<\n\tWildcardHandler<T>\n>;\n\n// A map of event types and their corresponding event handlers.\nexport type EventHandlerMap<Events extends Record<EventType, unknown>> = Map<\n\tkeyof Events | '*',\n\tEventHandlerList<Events[keyof Events]> | WildCardEventHandlerList<Events>\n>;\n\nexport interface Emitter<Events extends Record<EventType, unknown>> {\n\tall: EventHandlerMap<Events>;\n\n\ton<Key extends keyof Events>(type: Key, handler: Handler<Events[Key]>): void;\n\ton(type: '*', handler: WildcardHandler<Events>): void;\n\n\toff<Key extends keyof Events>(\n\t\ttype: Key,\n\t\thandler?: Handler<Events[Key]>\n\t): void;\n\toff(type: '*', handler: WildcardHandler<Events>): void;\n\n\temit<Key extends keyof Events>(type: Key, event: Events[Key]): void;\n\temit<Key extends keyof Events>(\n\t\ttype: undefined extends Events[Key] ? Key : never\n\t): void;\n}\n\n/**\n * Mitt: Tiny (~200b) functional event emitter / pubsub.\n * @name mitt\n * @returns {Mitt}\n */\nexport default function mitt<Events extends Record<EventType, unknown>>(\n\tall?: EventHandlerMap<Events>\n): Emitter<Events> {\n\ttype GenericEventHandler =\n\t\t| Handler<Events[keyof Events]>\n\t\t| WildcardHandler<Events>;\n\tall = all || new Map();\n\n\treturn {\n\t\t/**\n\t\t * A Map of event names to registered handler functions.\n\t\t */\n\t\tall,\n\n\t\t/**\n\t\t * Register an event handler for the given type.\n\t\t * @param {string|symbol} type Type of event to listen for, or `'*'` for all events\n\t\t * @param {Function} handler Function to call in response to given event\n\t\t * @memberOf mitt\n\t\t */\n\t\ton<Key extends keyof Events>(type: Key, handler: GenericEventHandler) {\n\t\t\tconst handlers: Array<GenericEventHandler> | undefined = all!.get(type);\n\t\t\tif (handlers) {\n\t\t\t\thandlers.push(handler);\n\t\t\t} else {\n\t\t\t\tall!.set(type, [handler] as EventHandlerList<Events[keyof Events]>);\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Remove an event handler for the given type.\n\t\t * If `handler` is omitted, all handlers of the given type are removed.\n\t\t * @param {string|symbol} type Type of event to unregister `handler` from (`'*'` to remove a wildcard handler)\n\t\t * @param {Function} [handler] Handler function to remove\n\t\t * @memberOf mitt\n\t\t */\n\t\toff<Key extends keyof Events>(type: Key, handler?: GenericEventHandler) {\n\t\t\tconst handlers: Array<GenericEventHandler> | undefined = all!.get(type);\n\t\t\tif (handlers) {\n\t\t\t\tif (handler) {\n\t\t\t\t\thandlers.splice(handlers.indexOf(handler) >>> 0, 1);\n\t\t\t\t} else {\n\t\t\t\t\tall!.set(type, []);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Invoke all handlers for the given type.\n\t\t * If present, `'*'` handlers are invoked after type-matched handlers.\n\t\t *\n\t\t * Note: Manually firing '*' handlers is not supported.\n\t\t *\n\t\t * @param {string|symbol} type The event type to invoke\n\t\t * @param {Any} [evt] Any value (object is recommended and powerful), passed to each handler\n\t\t * @memberOf mitt\n\t\t */\n\t\temit<Key extends keyof Events>(type: Key, evt?: Events[Key]) {\n\t\t\tlet handlers = all!.get(type);\n\t\t\tif (handlers) {\n\t\t\t\t(handlers as EventHandlerList<Events[keyof Events]>)\n\t\t\t\t\t.slice()\n\t\t\t\t\t.map((handler) => {\n\t\t\t\t\t\thandler(evt!);\n\t\t\t\t\t});\n\t\t\t}\n\n\t\t\thandlers = all!.get('*');\n\t\t\tif (handlers) {\n\t\t\t\t(handlers as WildCardEventHandlerList<Events>)\n\t\t\t\t\t.slice()\n\t\t\t\t\t.map((handler) => {\n\t\t\t\t\t\thandler(type, evt!);\n\t\t\t\t\t});\n\t\t\t}\n\t\t}\n\t};\n}\n"],"names":["all","Map","on","type","handler","handlers","get","push","set","off","splice","indexOf","emit","evt","slice","map"],"mappings":"wBA8CCA,GAOA,MAAO,CAINA,IANDA,EAAMA,GAAO,IAAIC,IAchBC,YAA6BC,EAAWC,GACvC,IAAMC,EAAmDL,EAAKM,IAAIH,GAC9DE,EACHA,EAASE,KAAKH,GAEdJ,EAAKQ,IAAIL,EAAM,CAACC,KAWlBK,aAA8BN,EAAWC,GACxC,IAAMC,EAAmDL,EAAKM,IAAIH,GAC9DE,IACCD,EACHC,EAASK,OAAOL,EAASM,QAAQP,KAAa,EAAG,GAEjDJ,EAAKQ,IAAIL,EAAM,MAelBS,cAA+BT,EAAWU,GACzC,IAAIR,EAAWL,EAAKM,IAAIH,GACpBE,GACFA,EACCS,QACAC,IAAI,SAACX,GACLA,EAAQS,MAIXR,EAAWL,EAAKM,IAAI,OAElBD,EACCS,QACAC,IAAI,SAACX,GACLA,EAAQD,EAAMU"} | |||||
| @ -0,0 +1,2 @@ | |||||
| export default function(n){return{all:n=n||new Map,on:function(t,e){var i=n.get(t);i?i.push(e):n.set(t,[e])},off:function(t,e){var i=n.get(t);i&&(e?i.splice(i.indexOf(e)>>>0,1):n.set(t,[]))},emit:function(t,e){var i=n.get(t);i&&i.slice().map(function(n){n(e)}),(i=n.get("*"))&&i.slice().map(function(n){n(t,e)})}}} | |||||
| //# sourceMappingURL=mitt.mjs.map | |||||
| @ -0,0 +1 @@ | |||||
| {"version":3,"file":"mitt.mjs","sources":["../src/index.ts"],"sourcesContent":["export type EventType = string | symbol;\n\n// An event handler can take an optional event argument\n// and should not return a value\nexport type Handler<T = unknown> = (event: T) => void;\nexport type WildcardHandler<T = Record<string, unknown>> = (\n\ttype: keyof T,\n\tevent: T[keyof T]\n) => void;\n\n// An array of all currently registered event handlers for a type\nexport type EventHandlerList<T = unknown> = Array<Handler<T>>;\nexport type WildCardEventHandlerList<T = Record<string, unknown>> = Array<\n\tWildcardHandler<T>\n>;\n\n// A map of event types and their corresponding event handlers.\nexport type EventHandlerMap<Events extends Record<EventType, unknown>> = Map<\n\tkeyof Events | '*',\n\tEventHandlerList<Events[keyof Events]> | WildCardEventHandlerList<Events>\n>;\n\nexport interface Emitter<Events extends Record<EventType, unknown>> {\n\tall: EventHandlerMap<Events>;\n\n\ton<Key extends keyof Events>(type: Key, handler: Handler<Events[Key]>): void;\n\ton(type: '*', handler: WildcardHandler<Events>): void;\n\n\toff<Key extends keyof Events>(\n\t\ttype: Key,\n\t\thandler?: Handler<Events[Key]>\n\t): void;\n\toff(type: '*', handler: WildcardHandler<Events>): void;\n\n\temit<Key extends keyof Events>(type: Key, event: Events[Key]): void;\n\temit<Key extends keyof Events>(\n\t\ttype: undefined extends Events[Key] ? Key : never\n\t): void;\n}\n\n/**\n * Mitt: Tiny (~200b) functional event emitter / pubsub.\n * @name mitt\n * @returns {Mitt}\n */\nexport default function mitt<Events extends Record<EventType, unknown>>(\n\tall?: EventHandlerMap<Events>\n): Emitter<Events> {\n\ttype GenericEventHandler =\n\t\t| Handler<Events[keyof Events]>\n\t\t| WildcardHandler<Events>;\n\tall = all || new Map();\n\n\treturn {\n\t\t/**\n\t\t * A Map of event names to registered handler functions.\n\t\t */\n\t\tall,\n\n\t\t/**\n\t\t * Register an event handler for the given type.\n\t\t * @param {string|symbol} type Type of event to listen for, or `'*'` for all events\n\t\t * @param {Function} handler Function to call in response to given event\n\t\t * @memberOf mitt\n\t\t */\n\t\ton<Key extends keyof Events>(type: Key, handler: GenericEventHandler) {\n\t\t\tconst handlers: Array<GenericEventHandler> | undefined = all!.get(type);\n\t\t\tif (handlers) {\n\t\t\t\thandlers.push(handler);\n\t\t\t} else {\n\t\t\t\tall!.set(type, [handler] as EventHandlerList<Events[keyof Events]>);\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Remove an event handler for the given type.\n\t\t * If `handler` is omitted, all handlers of the given type are removed.\n\t\t * @param {string|symbol} type Type of event to unregister `handler` from (`'*'` to remove a wildcard handler)\n\t\t * @param {Function} [handler] Handler function to remove\n\t\t * @memberOf mitt\n\t\t */\n\t\toff<Key extends keyof Events>(type: Key, handler?: GenericEventHandler) {\n\t\t\tconst handlers: Array<GenericEventHandler> | undefined = all!.get(type);\n\t\t\tif (handlers) {\n\t\t\t\tif (handler) {\n\t\t\t\t\thandlers.splice(handlers.indexOf(handler) >>> 0, 1);\n\t\t\t\t} else {\n\t\t\t\t\tall!.set(type, []);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Invoke all handlers for the given type.\n\t\t * If present, `'*'` handlers are invoked after type-matched handlers.\n\t\t *\n\t\t * Note: Manually firing '*' handlers is not supported.\n\t\t *\n\t\t * @param {string|symbol} type The event type to invoke\n\t\t * @param {Any} [evt] Any value (object is recommended and powerful), passed to each handler\n\t\t * @memberOf mitt\n\t\t */\n\t\temit<Key extends keyof Events>(type: Key, evt?: Events[Key]) {\n\t\t\tlet handlers = all!.get(type);\n\t\t\tif (handlers) {\n\t\t\t\t(handlers as EventHandlerList<Events[keyof Events]>)\n\t\t\t\t\t.slice()\n\t\t\t\t\t.map((handler) => {\n\t\t\t\t\t\thandler(evt!);\n\t\t\t\t\t});\n\t\t\t}\n\n\t\t\thandlers = all!.get('*');\n\t\t\tif (handlers) {\n\t\t\t\t(handlers as WildCardEventHandlerList<Events>)\n\t\t\t\t\t.slice()\n\t\t\t\t\t.map((handler) => {\n\t\t\t\t\t\thandler(type, evt!);\n\t\t\t\t\t});\n\t\t\t}\n\t\t}\n\t};\n}\n"],"names":["all","Map","on","type","handler","handlers","get","push","set","off","splice","indexOf","emit","evt","slice","map"],"mappings":"wBA8CCA,GAOA,MAAO,CAINA,IANDA,EAAMA,GAAO,IAAIC,IAchBC,YAA6BC,EAAWC,GACvC,IAAMC,EAAmDL,EAAKM,IAAIH,GAC9DE,EACHA,EAASE,KAAKH,GAEdJ,EAAKQ,IAAIL,EAAM,CAACC,KAWlBK,aAA8BN,EAAWC,GACxC,IAAMC,EAAmDL,EAAKM,IAAIH,GAC9DE,IACCD,EACHC,EAASK,OAAOL,EAASM,QAAQP,KAAa,EAAG,GAEjDJ,EAAKQ,IAAIL,EAAM,MAelBS,cAA+BT,EAAWU,GACzC,IAAIR,EAAWL,EAAKM,IAAIH,GACpBE,GACFA,EACCS,QACAC,IAAI,SAACX,GACLA,EAAQS,MAIXR,EAAWL,EAAKM,IAAI,OAElBD,EACCS,QACAC,IAAI,SAACX,GACLA,EAAQD,EAAMU"} | |||||
| @ -0,0 +1,2 @@ | |||||
| !function(e,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n():"function"==typeof define&&define.amd?define(n):(e=e||self).mitt=n()}(this,function(){return function(e){return{all:e=e||new Map,on:function(n,t){var f=e.get(n);f?f.push(t):e.set(n,[t])},off:function(n,t){var f=e.get(n);f&&(t?f.splice(f.indexOf(t)>>>0,1):e.set(n,[]))},emit:function(n,t){var f=e.get(n);f&&f.slice().map(function(e){e(t)}),(f=e.get("*"))&&f.slice().map(function(e){e(n,t)})}}}}); | |||||
| //# sourceMappingURL=mitt.umd.js.map | |||||
| @ -0,0 +1 @@ | |||||
| {"version":3,"file":"mitt.umd.js","sources":["../src/index.ts"],"sourcesContent":["export type EventType = string | symbol;\n\n// An event handler can take an optional event argument\n// and should not return a value\nexport type Handler<T = unknown> = (event: T) => void;\nexport type WildcardHandler<T = Record<string, unknown>> = (\n\ttype: keyof T,\n\tevent: T[keyof T]\n) => void;\n\n// An array of all currently registered event handlers for a type\nexport type EventHandlerList<T = unknown> = Array<Handler<T>>;\nexport type WildCardEventHandlerList<T = Record<string, unknown>> = Array<\n\tWildcardHandler<T>\n>;\n\n// A map of event types and their corresponding event handlers.\nexport type EventHandlerMap<Events extends Record<EventType, unknown>> = Map<\n\tkeyof Events | '*',\n\tEventHandlerList<Events[keyof Events]> | WildCardEventHandlerList<Events>\n>;\n\nexport interface Emitter<Events extends Record<EventType, unknown>> {\n\tall: EventHandlerMap<Events>;\n\n\ton<Key extends keyof Events>(type: Key, handler: Handler<Events[Key]>): void;\n\ton(type: '*', handler: WildcardHandler<Events>): void;\n\n\toff<Key extends keyof Events>(\n\t\ttype: Key,\n\t\thandler?: Handler<Events[Key]>\n\t): void;\n\toff(type: '*', handler: WildcardHandler<Events>): void;\n\n\temit<Key extends keyof Events>(type: Key, event: Events[Key]): void;\n\temit<Key extends keyof Events>(\n\t\ttype: undefined extends Events[Key] ? Key : never\n\t): void;\n}\n\n/**\n * Mitt: Tiny (~200b) functional event emitter / pubsub.\n * @name mitt\n * @returns {Mitt}\n */\nexport default function mitt<Events extends Record<EventType, unknown>>(\n\tall?: EventHandlerMap<Events>\n): Emitter<Events> {\n\ttype GenericEventHandler =\n\t\t| Handler<Events[keyof Events]>\n\t\t| WildcardHandler<Events>;\n\tall = all || new Map();\n\n\treturn {\n\t\t/**\n\t\t * A Map of event names to registered handler functions.\n\t\t */\n\t\tall,\n\n\t\t/**\n\t\t * Register an event handler for the given type.\n\t\t * @param {string|symbol} type Type of event to listen for, or `'*'` for all events\n\t\t * @param {Function} handler Function to call in response to given event\n\t\t * @memberOf mitt\n\t\t */\n\t\ton<Key extends keyof Events>(type: Key, handler: GenericEventHandler) {\n\t\t\tconst handlers: Array<GenericEventHandler> | undefined = all!.get(type);\n\t\t\tif (handlers) {\n\t\t\t\thandlers.push(handler);\n\t\t\t} else {\n\t\t\t\tall!.set(type, [handler] as EventHandlerList<Events[keyof Events]>);\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Remove an event handler for the given type.\n\t\t * If `handler` is omitted, all handlers of the given type are removed.\n\t\t * @param {string|symbol} type Type of event to unregister `handler` from (`'*'` to remove a wildcard handler)\n\t\t * @param {Function} [handler] Handler function to remove\n\t\t * @memberOf mitt\n\t\t */\n\t\toff<Key extends keyof Events>(type: Key, handler?: GenericEventHandler) {\n\t\t\tconst handlers: Array<GenericEventHandler> | undefined = all!.get(type);\n\t\t\tif (handlers) {\n\t\t\t\tif (handler) {\n\t\t\t\t\thandlers.splice(handlers.indexOf(handler) >>> 0, 1);\n\t\t\t\t} else {\n\t\t\t\t\tall!.set(type, []);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Invoke all handlers for the given type.\n\t\t * If present, `'*'` handlers are invoked after type-matched handlers.\n\t\t *\n\t\t * Note: Manually firing '*' handlers is not supported.\n\t\t *\n\t\t * @param {string|symbol} type The event type to invoke\n\t\t * @param {Any} [evt] Any value (object is recommended and powerful), passed to each handler\n\t\t * @memberOf mitt\n\t\t */\n\t\temit<Key extends keyof Events>(type: Key, evt?: Events[Key]) {\n\t\t\tlet handlers = all!.get(type);\n\t\t\tif (handlers) {\n\t\t\t\t(handlers as EventHandlerList<Events[keyof Events]>)\n\t\t\t\t\t.slice()\n\t\t\t\t\t.map((handler) => {\n\t\t\t\t\t\thandler(evt!);\n\t\t\t\t\t});\n\t\t\t}\n\n\t\t\thandlers = all!.get('*');\n\t\t\tif (handlers) {\n\t\t\t\t(handlers as WildCardEventHandlerList<Events>)\n\t\t\t\t\t.slice()\n\t\t\t\t\t.map((handler) => {\n\t\t\t\t\t\thandler(type, evt!);\n\t\t\t\t\t});\n\t\t\t}\n\t\t}\n\t};\n}\n"],"names":["all","Map","on","type","handler","handlers","get","push","set","off","splice","indexOf","emit","evt","slice","map"],"mappings":"6LA8CCA,GAOA,MAAO,CAINA,IANDA,EAAMA,GAAO,IAAIC,IAchBC,YAA6BC,EAAWC,GACvC,IAAMC,EAAmDL,EAAKM,IAAIH,GAC9DE,EACHA,EAASE,KAAKH,GAEdJ,EAAKQ,IAAIL,EAAM,CAACC,KAWlBK,aAA8BN,EAAWC,GACxC,IAAMC,EAAmDL,EAAKM,IAAIH,GAC9DE,IACCD,EACHC,EAASK,OAAOL,EAASM,QAAQP,KAAa,EAAG,GAEjDJ,EAAKQ,IAAIL,EAAM,MAelBS,cAA+BT,EAAWU,GACzC,IAAIR,EAAWL,EAAKM,IAAIH,GACpBE,GACFA,EACCS,QACAC,IAAI,SAACX,GACLA,EAAQS,MAIXR,EAAWL,EAAKM,IAAI,OAElBD,EACCS,QACAC,IAAI,SAACX,GACLA,EAAQD,EAAMU"} | |||||
| @ -0,0 +1,21 @@ | |||||
| export declare type EventType = string | symbol; | |||||
| export declare type Handler<T = unknown> = (event: T) => void; | |||||
| export declare type WildcardHandler<T = Record<string, unknown>> = (type: keyof T, event: T[keyof T]) => void; | |||||
| export declare type EventHandlerList<T = unknown> = Array<Handler<T>>; | |||||
| export declare type WildCardEventHandlerList<T = Record<string, unknown>> = Array<WildcardHandler<T>>; | |||||
| export declare type EventHandlerMap<Events extends Record<EventType, unknown>> = Map<keyof Events | '*', EventHandlerList<Events[keyof Events]> | WildCardEventHandlerList<Events>>; | |||||
| export interface Emitter<Events extends Record<EventType, unknown>> { | |||||
| all: EventHandlerMap<Events>; | |||||
| on<Key extends keyof Events>(type: Key, handler: Handler<Events[Key]>): void; | |||||
| on(type: '*', handler: WildcardHandler<Events>): void; | |||||
| off<Key extends keyof Events>(type: Key, handler?: Handler<Events[Key]>): void; | |||||
| off(type: '*', handler: WildcardHandler<Events>): void; | |||||
| emit<Key extends keyof Events>(type: Key, event: Events[Key]): void; | |||||
| emit<Key extends keyof Events>(type: undefined extends Events[Key] ? Key : never): void; | |||||
| } | |||||
| /** | |||||
| * Mitt: Tiny (~200b) functional event emitter / pubsub. | |||||
| * @name mitt | |||||
| * @returns {Mitt} | |||||
| */ | |||||
| export default function mitt<Events extends Record<EventType, unknown>>(all?: EventHandlerMap<Events>): Emitter<Events>; | |||||
| @ -0,0 +1,85 @@ | |||||
| { | |||||
| "name": "mitt", | |||||
| "version": "3.0.1", | |||||
| "description": "Tiny 200b functional Event Emitter / pubsub.", | |||||
| "module": "dist/mitt.mjs", | |||||
| "main": "dist/mitt.js", | |||||
| "jsnext:main": "dist/mitt.mjs", | |||||
| "umd:main": "dist/mitt.umd.js", | |||||
| "source": "src/index.ts", | |||||
| "typings": "index.d.ts", | |||||
| "exports": { | |||||
| "types": "./index.d.ts", | |||||
| "module": "./dist/mitt.mjs", | |||||
| "import": "./dist/mitt.mjs", | |||||
| "require": "./dist/mitt.js", | |||||
| "default": "./dist/mitt.mjs" | |||||
| }, | |||||
| "scripts": { | |||||
| "test": "npm-run-all --silent typecheck lint mocha test-types", | |||||
| "mocha": "mocha test", | |||||
| "test-types": "tsc test/test-types-compilation.ts --noEmit --strict", | |||||
| "lint": "eslint src test --ext ts --ext js", | |||||
| "typecheck": "tsc --noEmit", | |||||
| "bundle": "microbundle -f es,cjs,umd", | |||||
| "build": "npm-run-all --silent clean -p bundle -s docs", | |||||
| "clean": "rimraf dist", | |||||
| "docs": "documentation readme src/index.ts --section API -q --parse-extension ts", | |||||
| "release": "npm run -s build -s && npm t && git commit -am $npm_package_version && git tag $npm_package_version && git push && git push --tags && npm publish" | |||||
| }, | |||||
| "repository": "developit/mitt", | |||||
| "keywords": [ | |||||
| "events", | |||||
| "eventemitter", | |||||
| "emitter", | |||||
| "pubsub" | |||||
| ], | |||||
| "homepage": "https://github.com/developit/mitt", | |||||
| "authors": [ | |||||
| "Jason Miller <jason@developit.ca>" | |||||
| ], | |||||
| "license": "MIT", | |||||
| "files": [ | |||||
| "dist", | |||||
| "index.d.ts" | |||||
| ], | |||||
| "mocha": { | |||||
| "extension": [ | |||||
| "ts" | |||||
| ], | |||||
| "require": [ | |||||
| "ts-node/register", | |||||
| "esm" | |||||
| ], | |||||
| "spec": [ | |||||
| "test/*_test.ts" | |||||
| ] | |||||
| }, | |||||
| "prettier": { | |||||
| "singleQuote": true, | |||||
| "trailingComma": "none" | |||||
| }, | |||||
| "devDependencies": { | |||||
| "@types/chai": "^4.2.11", | |||||
| "@types/mocha": "^7.0.2", | |||||
| "@types/sinon": "^9.0.4", | |||||
| "@types/sinon-chai": "^3.2.4", | |||||
| "@typescript-eslint/eslint-plugin": "^5.61.0", | |||||
| "@typescript-eslint/parser": "^5.61.0", | |||||
| "chai": "^4.2.0", | |||||
| "documentation": "^14.0.2", | |||||
| "eslint": "^7.32.0", | |||||
| "eslint-config-developit": "^1.2.0", | |||||
| "eslint-plugin-compat": "^4.1.4", | |||||
| "esm": "^3.2.25", | |||||
| "microbundle": "^0.12.3", | |||||
| "mocha": "^8.0.1", | |||||
| "npm-run-all": "^4.1.5", | |||||
| "prettier": "^2.8.8", | |||||
| "rimraf": "^3.0.2", | |||||
| "sinon": "^9.0.2", | |||||
| "sinon-chai": "^3.5.0", | |||||
| "ts-node": "^10.9.1", | |||||
| "typescript": "^4.9.5" | |||||
| } | |||||
| } | |||||
| @ -0,0 +1,18 @@ | |||||
| { | |||||
| "name": "SpztPad", | |||||
| "lockfileVersion": 3, | |||||
| "requires": true, | |||||
| "packages": { | |||||
| "": { | |||||
| "dependencies": { | |||||
| "mitt": "^3.0.1" | |||||
| } | |||||
| }, | |||||
| "node_modules/mitt": { | |||||
| "version": "3.0.1", | |||||
| "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz", | |||||
| "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==", | |||||
| "license": "MIT" | |||||
| } | |||||
| } | |||||
| } | |||||
| @ -0,0 +1,5 @@ | |||||
| { | |||||
| "dependencies": { | |||||
| "mitt": "^3.0.1" | |||||
| } | |||||
| } | |||||
| @ -0,0 +1,32 @@ | |||||
| { | |||||
| "pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages | |||||
| { | |||||
| "path": "pages/login/LoginPage", | |||||
| "style": { | |||||
| "navigationBarTitleText": "", | |||||
| "navigationStyle": "custom", | |||||
| "app-plus" : { | |||||
| "background" : "#0F2265" | |||||
| } | |||||
| } | |||||
| }, | |||||
| { | |||||
| "path": "pages/index/index", | |||||
| "style": { | |||||
| "navigationBarTitleText": "", | |||||
| "navigationStyle": "custom", | |||||
| "app-plus" : { | |||||
| "background" : "#0F2265" | |||||
| } | |||||
| } | |||||
| } | |||||
| ], | |||||
| "globalStyle": { | |||||
| "navigationBarTextStyle": "black", | |||||
| "navigationBarTitleText": "uni-app", | |||||
| "navigationBarBackgroundColor": "#F8F8F8", | |||||
| "navigationStyle": "custom", | |||||
| "backgroundColor": "#F8F8F8" | |||||
| }, | |||||
| "uniIdRouter": {} | |||||
| } | |||||
| @ -0,0 +1,249 @@ | |||||
| <template> | |||||
| <view class="content" style='background-color:#09154F;height: 784px;'> | |||||
| <image src="../../static/image/taitou.png" style="width: 100%;height:7%;position: absolute;"></image> | |||||
| <view class="title"> | |||||
| <text>控制终端</text> | |||||
| </view> | |||||
| <view class="optionButton"> | |||||
| <span :class="optionIndex==0?'pitch':''" @click="cutOption(0)">控制面板</span> | |||||
| <span :class="optionIndex==1?'pitch':''" @click="cutOption(1)">车辆面板</span> | |||||
| </view> | |||||
| <view class="outButton"> | |||||
| <span :class="optionIndex==2?'pitch':''" @click="outLogin()">退出</span> | |||||
| </view> | |||||
| <controlPage v-if="optionIndex==0" :Data='deviceData'></controlPage> | |||||
| <carPage v-if="optionIndex==1" :carData1='carData1' :carData2='carData2' :carData3='carData3'></carPage> | |||||
| </view> | |||||
| </template> | |||||
| <script> | |||||
| import controlPage from '/components/controlPage/index.vue'; | |||||
| import carPage from '/components/carPage/index.vue'; | |||||
| import {httpPost} from '../../utils/requset.js'; | |||||
| export default { | |||||
| components: { | |||||
| controlPage, | |||||
| carPage | |||||
| }, | |||||
| data() { | |||||
| return { | |||||
| optionIndex:1, | |||||
| dataInter:[ | |||||
| { | |||||
| name:'支架车在线状态:', | |||||
| width:0, | |||||
| val:'' | |||||
| },{ | |||||
| name:'左横移限位:', | |||||
| width:1, | |||||
| val:'' | |||||
| },{ | |||||
| name:'右横移限位:', | |||||
| width:1, | |||||
| val:'' | |||||
| },{ | |||||
| name:'上限位:', | |||||
| width:1, | |||||
| val:'' | |||||
| },{ | |||||
| name:'下限位:', | |||||
| width:1, | |||||
| val:'' | |||||
| },{ | |||||
| name:'左滚转限位:', | |||||
| width:1, | |||||
| val:'' | |||||
| },{ | |||||
| name:'右滚转限位:', | |||||
| width:1, | |||||
| val:'' | |||||
| },{ | |||||
| name:'行进位置:', | |||||
| width:1, | |||||
| val:'' | |||||
| },{ | |||||
| name:'横移位置:', | |||||
| width:1, | |||||
| val:'' | |||||
| },{ | |||||
| name:'滚转位置:', | |||||
| width:1, | |||||
| val:'' | |||||
| },{ | |||||
| name:'超重限位:', | |||||
| width:1, | |||||
| val:'' | |||||
| },{ | |||||
| name:'升降位置:', | |||||
| width:0, | |||||
| val:'' | |||||
| } | |||||
| ], | |||||
| carData1:[], | |||||
| carData2:[], | |||||
| carData3:[], | |||||
| deviceData:{}, | |||||
| } | |||||
| }, | |||||
| methods: { | |||||
| cutOption(value){ | |||||
| this.optionIndex=value | |||||
| }, | |||||
| outLogin(){ | |||||
| uni.showModal({ | |||||
| title: '提示', | |||||
| content: '是否退出', | |||||
| success: (res)=>{ | |||||
| if (res.confirm) { | |||||
| httpPost({ | |||||
| url:'/logout', | |||||
| data:{} | |||||
| }).then((res)=>{ | |||||
| console.log(res) | |||||
| uni.reLaunch({ | |||||
| url:"/pages/login/LoginPage" | |||||
| }) | |||||
| }) | |||||
| } else if (res.cancel) { | |||||
| console.log('用户点击取消'); | |||||
| } | |||||
| } | |||||
| }); | |||||
| }, | |||||
| deviceAjax(){ | |||||
| httpPost({ | |||||
| url:'/zhxx/dt/horizonLoadInfo', | |||||
| data:{} | |||||
| }).then((res)=>{ | |||||
| if(res.code==200){ | |||||
| this.deviceData=res.data; | |||||
| this.carData1=this.carEntsorgen(res.data,1); | |||||
| this.carData2=this.carEntsorgen(res.data,2); | |||||
| this.carData3=this.carEntsorgen(res.data,3); | |||||
| } | |||||
| // this.deviceData=this.mock.data; | |||||
| // this.carData1=this.carEntsorgen(this.mock.data,1); | |||||
| // this.carData2=this.carEntsorgen(this.mock.data,2); | |||||
| // this.carData3=this.carEntsorgen(this.mock.data,3); | |||||
| // else{ | |||||
| // uni.showToast({ | |||||
| // title:'接口错误', | |||||
| // icon:'error', | |||||
| // duration:1200 | |||||
| // }) | |||||
| // } | |||||
| }) | |||||
| }, | |||||
| carEntsorgen(value,type){ | |||||
| let data=value; | |||||
| let arrData=this.dataInter; | |||||
| if(type==1){ | |||||
| arrData[0].val=value.online==1?'在线':'离线'; | |||||
| arrData[1].val=value.leftHorizontalLimit; | |||||
| arrData[2].val=value.rightHorizontalLimit; | |||||
| arrData[3].val=value.downLimit; | |||||
| arrData[4].val=value.upLimit; | |||||
| arrData[5].val=value.leftTurnLimit; | |||||
| arrData[6].val=value.rightTurnLimit; | |||||
| arrData[7].val=value.walkAxisPosition; | |||||
| arrData[8].val=value.horizontalAxisPosition; | |||||
| arrData[9].val=value.turnPosition; | |||||
| arrData[10].val=value.overWeightLimit; | |||||
| arrData[11].val=value.liftPosition; | |||||
| }else if(type==2){ | |||||
| arrData[0].val=value.onlineTwo==1?'在线':'离线'; | |||||
| arrData[1].val=value.leftHorizontalLimitTwo; | |||||
| arrData[2].val=value.rightHorizontalLimitTwo; | |||||
| arrData[3].val=value.downLimitTwo; | |||||
| arrData[4].val=value.upLimitTwo; | |||||
| arrData[5].val=value.leftTurnLimitTwo; | |||||
| arrData[6].val=value.rightTurnLimitTwo; | |||||
| arrData[7].val=value.walkAxisPositionTwo; | |||||
| arrData[8].val=value.horizontalAxisPositionTwo; | |||||
| arrData[9].val=value.turnPositionTwo; | |||||
| arrData[10].val=value.overWeightLimitTwo; | |||||
| arrData[11].val=value.liftPositionTwo; | |||||
| }else{ | |||||
| arrData[0].val=value.onlineThree==1?'在线':'离线'; | |||||
| arrData[1].val=value.leftHorizontalLimitThree; | |||||
| arrData[2].val=value.rightHorizontalLimitThree; | |||||
| arrData[3].val=value.downLimitThree; | |||||
| arrData[4].val=value.upLimitThree; | |||||
| arrData[5].val=value.leftTurnLimitThree; | |||||
| arrData[6].val=value.rightTurnLimitThree; | |||||
| arrData[7].val=value.walkAxisPositionThree; | |||||
| arrData[8].val=value.horizontalAxisPositionThree; | |||||
| arrData[9].val=value.turnPositionThree; | |||||
| arrData[10].val=value.overWeightLimitThree; | |||||
| arrData[11].val=value.liftPositionThree; | |||||
| } | |||||
| return arrData; | |||||
| } | |||||
| }, | |||||
| watch: { | |||||
| }, | |||||
| onLoad() { | |||||
| plus.screen.lockOrientation('landscape-primary'); //强制横屏 | |||||
| uni.getSystemInfo({ | |||||
| success: (info) => { | |||||
| this.screenHeight = info.windowHeight; | |||||
| } | |||||
| }); | |||||
| }, | |||||
| mounted() { | |||||
| this.deviceAjax(); | |||||
| setInterval(()=>{ | |||||
| this.deviceAjax(); | |||||
| },1000) | |||||
| } | |||||
| } | |||||
| </script> | |||||
| <style scoped> | |||||
| .pitch { | |||||
| color: #0372D7; | |||||
| } | |||||
| .content { | |||||
| position: relative; | |||||
| width: 100%; | |||||
| } | |||||
| .title { | |||||
| position: absolute; | |||||
| left: 50%; | |||||
| transform: translateX(-50%); | |||||
| color: #ffffff; | |||||
| top: 0; | |||||
| font-size: 34px; | |||||
| letter-spacing: 4px; | |||||
| z-index: 99; | |||||
| } | |||||
| .optionButton{ | |||||
| width: 20%; | |||||
| height: 5%; | |||||
| position: absolute; | |||||
| top: 5.6%; | |||||
| font-size: 24px; | |||||
| display: flex; | |||||
| justify-content: space-around; | |||||
| align-items: center; | |||||
| color: #ffffff; | |||||
| } | |||||
| .outButton{ | |||||
| font-size: 24px; | |||||
| color: #ffffff; | |||||
| position: absolute; | |||||
| top: 5.6%; | |||||
| right: 2%; | |||||
| } | |||||
| </style> | |||||
| @ -0,0 +1,154 @@ | |||||
| <template> | |||||
| <view class="content"> | |||||
| <image class="logo" src="../../static/image/login.png"></image> | |||||
| <view class="text-area"> | |||||
| <text class="title">管理终端</text> | |||||
| </view> | |||||
| <view class="user"> | |||||
| <input type="text" placeholder="账号" v-model="username" name="username"> | |||||
| <input type="password" placeholder="密码" v-model="password" name="password"> | |||||
| </view> | |||||
| <view class="btn" @tap="skip">登录</view> | |||||
| </view> | |||||
| </template> | |||||
| <script> | |||||
| import {httpPost} from '../../utils/requset.js'; | |||||
| import {getItem,setItem} from "../util/storageHelper"; | |||||
| export default { | |||||
| data() { | |||||
| return { | |||||
| title: 'Hello', | |||||
| username: "admin", | |||||
| password: "admin123", | |||||
| } | |||||
| }, | |||||
| onLoad() { | |||||
| uni.removeStorageSync('NUM', 'message'); | |||||
| plus.screen.lockOrientation('landscape-primary'); //强制横屏 | |||||
| }, | |||||
| methods: { | |||||
| skip() { | |||||
| let username = this.username; | |||||
| let password = this.password; | |||||
| let password1='666666'; | |||||
| if (username && password) { | |||||
| console.log(username, password) | |||||
| httpPost({ | |||||
| url: '/login', | |||||
| data: { | |||||
| username, | |||||
| password | |||||
| } | |||||
| }).then((res) => { | |||||
| console.log(res) | |||||
| if (res.data.code == 200) { | |||||
| console.log(res.data) | |||||
| let token = res.data.token; | |||||
| setItem('token1', token); | |||||
| setItem('username', username); | |||||
| this.goSystem(); | |||||
| }else if(res.data.status == 403){ | |||||
| httpPost({ | |||||
| url:'/logout', | |||||
| data:{} | |||||
| }).then((res)=>{ | |||||
| console.log(res) | |||||
| }) | |||||
| } | |||||
| }).catch((err) => { | |||||
| uni.showToast({ | |||||
| title:'无法连接到服务', | |||||
| icon:'error' | |||||
| }) | |||||
| console.log(err) | |||||
| uni.showToast({ | |||||
| icon:'error', | |||||
| title:'连接服务器失败' | |||||
| }) | |||||
| }) | |||||
| } else if (!username) { | |||||
| uni.showToast({ | |||||
| title: "请输入用户名", | |||||
| icon: "error", | |||||
| duration: 1000 | |||||
| }) | |||||
| } else { | |||||
| uni.showToast({ | |||||
| title: "请输入密码", | |||||
| icon: "error", | |||||
| duration: 1000 | |||||
| }) | |||||
| } | |||||
| }, | |||||
| goSystem() { | |||||
| uni.reLaunch({ | |||||
| url: "/pages/index/index" | |||||
| }) | |||||
| } | |||||
| }, | |||||
| mounted() { | |||||
| } | |||||
| } | |||||
| </script> | |||||
| <style> | |||||
| .content { | |||||
| display: flex; | |||||
| flex-direction: column; | |||||
| align-items: center; | |||||
| background-image: url(../../static/image/login_bg.png); | |||||
| background-size: 100% 100%; | |||||
| color: #fff; | |||||
| width: 100%; | |||||
| height: 100%; | |||||
| } | |||||
| .logo { | |||||
| width: 400px; | |||||
| height: 320px; | |||||
| } | |||||
| .text-area { | |||||
| display: flex; | |||||
| justify-content: center; | |||||
| align-items: center; | |||||
| margin-bottom: 2%; | |||||
| } | |||||
| .title { | |||||
| font-size: 36px; | |||||
| } | |||||
| .user { | |||||
| width: 90%; | |||||
| height: 25%; | |||||
| display: flex; | |||||
| flex-direction: column; | |||||
| align-items: center; | |||||
| } | |||||
| .user input { | |||||
| width: 400px; | |||||
| height: 50px; | |||||
| border: 1rpx solid #567192; | |||||
| outline: none; | |||||
| padding-left: 20px; | |||||
| margin: 20px 0; | |||||
| } | |||||
| .btn { | |||||
| width: 250px; | |||||
| height: 40px; | |||||
| background-color: #879FBE; | |||||
| color: #0A62CF; | |||||
| border: 1rpx solid #567192; | |||||
| outline: none; | |||||
| margin: 20px 0; | |||||
| border-radius: 50px; | |||||
| text-align: center; | |||||
| line-height: 40px; | |||||
| font-size: 20px; | |||||
| } | |||||
| </style> | |||||
| @ -0,0 +1,15 @@ | |||||
| export function removeItem(key) { | |||||
| uni.removeStorageSync(key) | |||||
| } | |||||
| export function getItem(key) { | |||||
| return uni.getStorageSync(key); | |||||
| } | |||||
| export function setItem(key, value) { | |||||
| uni.setStorageSync(key, value); | |||||
| } | |||||
| export function clear() { | |||||
| uni.clearStorageSync(); | |||||
| } | |||||
| @ -0,0 +1,13 @@ | |||||
| uni.addInterceptor({ | |||||
| returnValue (res) { | |||||
| if (!(!!res && (typeof res === "object" || typeof res === "function") && typeof res.then === "function")) { | |||||
| return res; | |||||
| } | |||||
| return new Promise((resolve, reject) => { | |||||
| res.then((res) => { | |||||
| if (!res) return resolve(res) | |||||
| return res[0] ? reject(res[0]) : resolve(res[1]) | |||||
| }); | |||||
| }); | |||||
| }, | |||||
| }); | |||||
| @ -0,0 +1,76 @@ | |||||
| /** | |||||
| * 这里是uni-app内置的常用样式变量 | |||||
| * | |||||
| * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 | |||||
| * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App | |||||
| * | |||||
| */ | |||||
| /** | |||||
| * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 | |||||
| * | |||||
| * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 | |||||
| */ | |||||
| /* 颜色变量 */ | |||||
| /* 行为相关颜色 */ | |||||
| $uni-color-primary: #007aff; | |||||
| $uni-color-success: #4cd964; | |||||
| $uni-color-warning: #f0ad4e; | |||||
| $uni-color-error: #dd524d; | |||||
| /* 文字基本颜色 */ | |||||
| $uni-text-color:#333;//基本色 | |||||
| $uni-text-color-inverse:#fff;//反色 | |||||
| $uni-text-color-grey:#999;//辅助灰色,如加载更多的提示信息 | |||||
| $uni-text-color-placeholder: #808080; | |||||
| $uni-text-color-disable:#c0c0c0; | |||||
| /* 背景颜色 */ | |||||
| $uni-bg-color:#ffffff; | |||||
| $uni-bg-color-grey:#f8f8f8; | |||||
| $uni-bg-color-hover:#f1f1f1;//点击状态颜色 | |||||
| $uni-bg-color-mask:rgba(0, 0, 0, 0.4);//遮罩颜色 | |||||
| /* 边框颜色 */ | |||||
| $uni-border-color:#c8c7cc; | |||||
| /* 尺寸变量 */ | |||||
| /* 文字尺寸 */ | |||||
| $uni-font-size-sm:12px; | |||||
| $uni-font-size-base:14px; | |||||
| $uni-font-size-lg:16px; | |||||
| /* 图片尺寸 */ | |||||
| $uni-img-size-sm:20px; | |||||
| $uni-img-size-base:26px; | |||||
| $uni-img-size-lg:40px; | |||||
| /* Border Radius */ | |||||
| $uni-border-radius-sm: 2px; | |||||
| $uni-border-radius-base: 3px; | |||||
| $uni-border-radius-lg: 6px; | |||||
| $uni-border-radius-circle: 50%; | |||||
| /* 水平间距 */ | |||||
| $uni-spacing-row-sm: 5px; | |||||
| $uni-spacing-row-base: 10px; | |||||
| $uni-spacing-row-lg: 15px; | |||||
| /* 垂直间距 */ | |||||
| $uni-spacing-col-sm: 4px; | |||||
| $uni-spacing-col-base: 8px; | |||||
| $uni-spacing-col-lg: 12px; | |||||
| /* 透明度 */ | |||||
| $uni-opacity-disabled: 0.3; // 组件禁用态的透明度 | |||||
| /* 文章场景相关 */ | |||||
| $uni-color-title: #2C405A; // 文章标题颜色 | |||||
| $uni-font-size-title:20px; | |||||
| $uni-color-subtitle: #555555; // 二级标题颜色 | |||||
| $uni-font-size-subtitle:26px; | |||||
| $uni-color-paragraph: #3F536E; // 文章段落颜色 | |||||
| $uni-font-size-paragraph:15px; | |||||
| @ -0,0 +1,24 @@ | |||||
| <!DOCTYPE html> | |||||
| <html lang="en"> | |||||
| <head> | |||||
| <meta charset="UTF-8" /> | |||||
| <title>View</title> | |||||
| <link rel="icon" href="data:,"> | |||||
| <link rel="stylesheet" href="app.css" /> | |||||
| <script>var __uniConfig = {"globalStyle":{},"darkmode":false}</script> | |||||
| <script> | |||||
| var coverSupport = 'CSS' in window && typeof CSS.supports === 'function' && (CSS.supports('top: env(a)') || | |||||
| CSS.supports('top: constant(a)')) | |||||
| document.write( | |||||
| '<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' + | |||||
| (coverSupport ? ', viewport-fit=cover' : '') + '" />') | |||||
| </script> | |||||
| </head> | |||||
| <body> | |||||
| <div id="app"></div> | |||||
| <script src="uni-app-view.umd.js"></script> | |||||
| </body> | |||||
| </html> | |||||
| @ -0,0 +1,11 @@ | |||||
| ;(function(){ | |||||
| let u=void 0,isReady=false,onReadyCallbacks=[],isServiceReady=false,onServiceReadyCallbacks=[]; | |||||
| const __uniConfig = {"pages":[],"globalStyle":{"backgroundColor":"#F8F8F8","navigationBar":{"backgroundColor":"#F8F8F8","titleText":"uni-app","style":"custom","type":"default","titleColor":"#000000"},"isNVue":false},"nvue":{"compiler":"uni-app","styleCompiler":"uni-app","flex-direction":"column"},"renderer":"auto","appname":"ATIA","splashscreen":{"alwaysShowBeforeRender":true,"autoclose":true},"compilerVersion":"4.66","entryPagePath":"pages/index/index","entryPageQuery":"","realEntryPagePath":"","networkTimeout":{"request":60000,"connectSocket":60000,"uploadFile":60000,"downloadFile":60000},"locales":{},"darkmode":false,"themeConfig":{}}; | |||||
| const __uniRoutes = [{"path":"pages/index/index","meta":{"isQuit":true,"isEntry":true,"background":"#0F2265","navigationBar":{"titleText":"","style":"custom","type":"default"},"isNVue":false}}].map(uniRoute=>(uniRoute.meta.route=uniRoute.path,__uniConfig.pages.push(uniRoute.path),uniRoute.path='/'+uniRoute.path,uniRoute)); | |||||
| __uniConfig.styles=[];//styles | |||||
| __uniConfig.onReady=function(callback){if(__uniConfig.ready){callback()}else{onReadyCallbacks.push(callback)}};Object.defineProperty(__uniConfig,"ready",{get:function(){return isReady},set:function(val){isReady=val;if(!isReady){return}const callbacks=onReadyCallbacks.slice(0);onReadyCallbacks.length=0;callbacks.forEach(function(callback){callback()})}}); | |||||
| __uniConfig.onServiceReady=function(callback){if(__uniConfig.serviceReady){callback()}else{onServiceReadyCallbacks.push(callback)}};Object.defineProperty(__uniConfig,"serviceReady",{get:function(){return isServiceReady},set:function(val){isServiceReady=val;if(!isServiceReady){return}const callbacks=onServiceReadyCallbacks.slice(0);onServiceReadyCallbacks.length=0;callbacks.forEach(function(callback){callback()})}}); | |||||
| service.register("uni-app-config",{create(a,b,c){if(!__uniConfig.viewport){var d=b.weex.config.env.scale,e=b.weex.config.env.deviceWidth,f=Math.ceil(e/d);Object.assign(__uniConfig,{viewport:f,defaultFontSize:16})}return{instance:{__uniConfig:__uniConfig,__uniRoutes:__uniRoutes,global:u,window:u,document:u,frames:u,self:u,location:u,navigator:u,localStorage:u,history:u,Caches:u,screen:u,alert:u,confirm:u,prompt:u,fetch:u,XMLHttpRequest:u,WebSocket:u,webkit:u,print:u}}}}); | |||||
| })(); | |||||
| @ -0,0 +1 @@ | |||||
| (function(){})(); | |||||
| @ -0,0 +1 @@ | |||||
| if("undefined"==typeof Promise||Promise.prototype.finally||(Promise.prototype.finally=function(e){const t=this.constructor;return this.then((n=>t.resolve(e()).then((()=>n))),(n=>t.resolve(e()).then((()=>{throw n}))))}),"undefined"!=typeof uni&&uni&&uni.requireGlobal){const e=uni.requireGlobal();ArrayBuffer=e.ArrayBuffer,Int8Array=e.Int8Array,Uint8Array=e.Uint8Array,Uint8ClampedArray=e.Uint8ClampedArray,Int16Array=e.Int16Array,Uint16Array=e.Uint16Array,Int32Array=e.Int32Array,Uint32Array=e.Uint32Array,Float32Array=e.Float32Array,Float64Array=e.Float64Array,BigInt64Array=e.BigInt64Array,BigUint64Array=e.BigUint64Array}uni.restoreGlobal&&uni.restoreGlobal(Vue,weex,plus,setTimeout,clearTimeout,setInterval,clearInterval),function(e){"use strict";function t(e,t,...n){uni.__log__?uni.__log__(e,t,...n):console[e].apply(console,[...n,t])}__definePage("pages/index/index",((e,t)=>{const n=e.__vccOpts||e;for(const[o,r]of t)n[o]=r;return n})({data:()=>({screenHeight:""}),methods:{},watch:{},onLoad(){plus.screen.lockOrientation("landscape-primary"),uni.getSystemInfo({success:e=>{this.screenHeight=e.windowHeight}})},onShow(){},onUnload(){}},[["render",function(t,n,o,r,a,i){return e.openBlock(),e.createElementBlock("view",{class:"content",style:{"background-color":"#09154F",height:"784px"}},[e.createElementVNode("image",{src:"/static/image/taitou.png",style:{width:"100%",height:"7%",position:"absolute"}}),e.createElementVNode("view",{class:"title"},[e.createElementVNode("text",null,"spzt控制终端")]),e.createElementVNode("view",{class:"deviceInfo"},[e.createElementVNode("view",{class:"infoDetail"}),e.createElementVNode("view",{class:"buttonContent"},[e.createElementVNode("view",null,[e.createElementVNode("view",{class:"button"},"装填")]),e.createElementVNode("view",null,[e.createElementVNode("view",{class:"button"},"分离")]),e.createElementVNode("view",null,[e.createElementVNode("view",{class:"button"},"组装")]),e.createElementVNode("view",null,[e.createElementVNode("view",{class:"button"})]),e.createElementVNode("view",null,[e.createElementVNode("view",{class:"button"})]),e.createElementVNode("view",null,[e.createElementVNode("view",{class:"button"})])])])])}],["__scopeId","data-v-e640a569"]]));const n={onLaunch:function(){t("log","at App.vue:4","App Launch")},onShow:function(){t("log","at App.vue:7","App Show")},onHide:function(){t("log","at App.vue:10","App Hide")}};const{app:o,Vuex:r,Pinia:a}={app:e.createVueApp(n)};uni.Vuex=r,uni.Pinia=a,o.provide("__globalStyles",__uniConfig.styles),o._component.mpType="app",o._component.render=()=>{},o.mount("#app")}(Vue); | |||||
| @ -0,0 +1 @@ | |||||
| {"@platforms":["android","iPhone","iPad"],"id":"__UNI__17D2062","name":"ATIA","version":{"name":"1.0.0","code":"100"},"description":"","developer":{"name":"","email":"","url":""},"permissions":{"UniNView":{"description":"UniNView原生渲染"}},"plus":{"useragent":{"value":"uni-app","concatenate":true},"splashscreen":{"autoclose":true,"delay":0,"target":"id:1","waiting":true},"popGesture":"close","launchwebview":{"render":"always","id":"1","kernel":"WKWebview"},"usingComponents":true,"nvueStyleCompiler":"uni-app","compilerVersion":3,"distribute":{"icons":{"android":{"xxxhdpi":"icon-android-xxxhdpi.png"}},"google":{"permissions":["<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>","<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>","<uses-permission android:name=\"android.permission.VIBRATE\"/>","<uses-permission android:name=\"android.permission.READ_LOGS\"/>","<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>","<uses-feature android:name=\"android.hardware.camera.autofocus\"/>","<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>","<uses-permission android:name=\"android.permission.CAMERA\"/>","<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>","<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>","<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>","<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>","<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>","<uses-feature android:name=\"android.hardware.camera\"/>","<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"],"packagename":"uni.app.UNI17D2062","custompermissions":true},"apple":{"dSYMs":false,"plistcmds":["Add :UIFileSharingEnabled bool true"],"devices":"universal"},"plugins":{"audio":{"mp3":{"description":"Android平台录音支持MP3格式文件"}}},"debug":true,"syncDebug":true,"orientation":"portrait-primary"},"statusbar":{"immersed":"supportedDevice","style":"dark","background":"#F8F8F8"},"uniStatistics":{"enable":false},"allowsInlineMediaPlayback":true,"uni-app":{"control":"uni-v3","vueVersion":"3","compilerVersion":"4.66","nvueCompiler":"uni-app","renderer":"auto","nvue":{"flex-direction":"column"},"nvueLaunchMode":"normal","webView":{"minUserAgentVersion":"49.0"}},"adid":"124310290005"},"app-harmony":{"useragent":{"value":"uni-app","concatenate":true},"uniStatistics":{"enable":false}},"launch_path":"__uniappview.html"} | |||||
| @ -0,0 +1 @@ | |||||
| .content[data-v-e640a569]{position:relative;width:100%}.title[data-v-e640a569]{position:absolute;left:50%;transform:translate(-50%);color:#fff;top:0;font-size:34px;letter-spacing:4px;z-index:99}.deviceInfo[data-v-e640a569]{width:100%;height:92%;position:absolute;bottom:0}.infoDetail[data-v-e640a569]{width:100%;height:60%}.buttonContent[data-v-e640a569]{display:flex;flex-wrap:wrap;justify-content:space-around;align-items:center;width:100%;height:40%}.buttonContent>uni-view[data-v-e640a569]{width:30%;height:40%;display:flex;justify-content:center;align-items:center}.button[data-v-e640a569]{width:70%;height:90%;background-color:#0a62cf;border-radius:15px;display:flex;justify-content:center;align-items:center;font-size:30px;color:#fff}.button[data-v-e640a569]:active{opacity:.4} | |||||
| @ -0,0 +1,11 @@ | |||||
| var __getOwnPropNames = Object.getOwnPropertyNames; | |||||
| var __commonJS = (cb, mod) => function __require() { | |||||
| return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; | |||||
| }; | |||||
| var require_app_css = __commonJS({ | |||||
| "app.css.js"(exports) { | |||||
| const _style_0 = {}; | |||||
| exports.styles = [_style_0]; | |||||
| } | |||||
| }); | |||||
| export default require_app_css(); | |||||
| @ -0,0 +1,2 @@ | |||||
| Promise.resolve("./app.css.js").then(() => { | |||||
| }); | |||||
| @ -0,0 +1,24 @@ | |||||
| <!DOCTYPE html> | |||||
| <html lang="en"> | |||||
| <head> | |||||
| <meta charset="UTF-8" /> | |||||
| <title>View</title> | |||||
| <link rel="icon" href="data:,"> | |||||
| <link rel="stylesheet" href="app.css" /> | |||||
| <script>var __uniConfig = {"globalStyle":{},"darkmode":false}</script> | |||||
| <script> | |||||
| var coverSupport = 'CSS' in window && typeof CSS.supports === 'function' && (CSS.supports('top: env(a)') || | |||||
| CSS.supports('top: constant(a)')) | |||||
| document.write( | |||||
| '<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' + | |||||
| (coverSupport ? ', viewport-fit=cover' : '') + '" />') | |||||
| </script> | |||||
| </head> | |||||
| <body> | |||||
| <div id="app"></div> | |||||
| <script src="uni-app-view.umd.js"></script> | |||||
| </body> | |||||
| </html> | |||||
| @ -0,0 +1,11 @@ | |||||
| ;(function(){ | |||||
| let u=void 0,isReady=false,onReadyCallbacks=[],isServiceReady=false,onServiceReadyCallbacks=[]; | |||||
| const __uniConfig = {"pages":[],"globalStyle":{"backgroundColor":"#F8F8F8","navigationBar":{"backgroundColor":"#F8F8F8","titleText":"uni-app","style":"custom","type":"default","titleColor":"#000000"},"isNVue":false},"nvue":{"compiler":"uni-app","styleCompiler":"uni-app","flex-direction":"column"},"renderer":"auto","appname":"ATIA","splashscreen":{"alwaysShowBeforeRender":true,"autoclose":true},"compilerVersion":"4.66","entryPagePath":"pages/index/index","entryPageQuery":"","realEntryPagePath":"","networkTimeout":{"request":60000,"connectSocket":60000,"uploadFile":60000,"downloadFile":60000},"locales":{},"darkmode":false,"themeConfig":{}}; | |||||
| const __uniRoutes = [{"path":"pages/index/index","meta":{"isQuit":true,"isEntry":true,"background":"#0F2265","navigationBar":{"titleText":"","style":"custom","type":"default"},"isNVue":false}}].map(uniRoute=>(uniRoute.meta.route=uniRoute.path,__uniConfig.pages.push(uniRoute.path),uniRoute.path='/'+uniRoute.path,uniRoute)); | |||||
| __uniConfig.styles=[];//styles | |||||
| __uniConfig.onReady=function(callback){if(__uniConfig.ready){callback()}else{onReadyCallbacks.push(callback)}};Object.defineProperty(__uniConfig,"ready",{get:function(){return isReady},set:function(val){isReady=val;if(!isReady){return}const callbacks=onReadyCallbacks.slice(0);onReadyCallbacks.length=0;callbacks.forEach(function(callback){callback()})}}); | |||||
| __uniConfig.onServiceReady=function(callback){if(__uniConfig.serviceReady){callback()}else{onServiceReadyCallbacks.push(callback)}};Object.defineProperty(__uniConfig,"serviceReady",{get:function(){return isServiceReady},set:function(val){isServiceReady=val;if(!isServiceReady){return}const callbacks=onServiceReadyCallbacks.slice(0);onServiceReadyCallbacks.length=0;callbacks.forEach(function(callback){callback()})}}); | |||||
| service.register("uni-app-config",{create(a,b,c){if(!__uniConfig.viewport){var d=b.weex.config.env.scale,e=b.weex.config.env.deviceWidth,f=Math.ceil(e/d);Object.assign(__uniConfig,{viewport:f,defaultFontSize:16})}return{instance:{__uniConfig:__uniConfig,__uniRoutes:__uniRoutes,global:u,window:u,document:u,frames:u,self:u,location:u,navigator:u,localStorage:u,history:u,Caches:u,screen:u,alert:u,confirm:u,prompt:u,fetch:u,XMLHttpRequest:u,WebSocket:u,webkit:u,print:u}}}}); | |||||
| })(); | |||||
| @ -0,0 +1 @@ | |||||
| (function(){})(); | |||||
| @ -0,0 +1 @@ | |||||
| if("undefined"==typeof Promise||Promise.prototype.finally||(Promise.prototype.finally=function(e){const t=this.constructor;return this.then((n=>t.resolve(e()).then((()=>n))),(n=>t.resolve(e()).then((()=>{throw n}))))}),"undefined"!=typeof uni&&uni&&uni.requireGlobal){const e=uni.requireGlobal();ArrayBuffer=e.ArrayBuffer,Int8Array=e.Int8Array,Uint8Array=e.Uint8Array,Uint8ClampedArray=e.Uint8ClampedArray,Int16Array=e.Int16Array,Uint16Array=e.Uint16Array,Int32Array=e.Int32Array,Uint32Array=e.Uint32Array,Float32Array=e.Float32Array,Float64Array=e.Float64Array,BigInt64Array=e.BigInt64Array,BigUint64Array=e.BigUint64Array}uni.restoreGlobal&&uni.restoreGlobal(Vue,weex,plus,setTimeout,clearTimeout,setInterval,clearInterval),function(e){"use strict";function t(e,t,...n){uni.__log__?uni.__log__(e,t,...n):console[e].apply(console,[...n,t])}__definePage("pages/index/index",((e,t)=>{const n=e.__vccOpts||e;for(const[o,r]of t)n[o]=r;return n})({data:()=>({screenHeight:""}),methods:{},watch:{},onLoad(){plus.screen.lockOrientation("landscape-primary"),uni.getSystemInfo({success:e=>{this.screenHeight=e.windowHeight}})},onShow(){},onUnload(){}},[["render",function(t,n,o,r,a,i){return e.openBlock(),e.createElementBlock("view",{class:"content",style:{"background-color":"#09154F",height:"784px"}},[e.createElementVNode("image",{src:"/static/image/taitou.png",style:{width:"100%",height:"7%",position:"absolute"}}),e.createElementVNode("view",{class:"title"},[e.createElementVNode("text",null,"spzt控制终端")]),e.createElementVNode("view",{class:"deviceInfo"},[e.createElementVNode("view",{class:"infoDetail"}),e.createElementVNode("view",{class:"buttonContent"},[e.createElementVNode("view",null,[e.createElementVNode("view",{class:"button"},"装填")]),e.createElementVNode("view",null,[e.createElementVNode("view",{class:"button"},"分离")]),e.createElementVNode("view",null,[e.createElementVNode("view",{class:"button"},"组装")]),e.createElementVNode("view",null,[e.createElementVNode("view",{class:"button"})]),e.createElementVNode("view",null,[e.createElementVNode("view",{class:"button"})]),e.createElementVNode("view",null,[e.createElementVNode("view",{class:"button"})])])])])}],["__scopeId","data-v-e640a569"]]));const n={onLaunch:function(){t("log","at App.vue:4","App Launch")},onShow:function(){t("log","at App.vue:7","App Show")},onHide:function(){t("log","at App.vue:10","App Hide")}};const{app:o,Vuex:r,Pinia:a}={app:e.createVueApp(n)};uni.Vuex=r,uni.Pinia=a,o.provide("__globalStyles",__uniConfig.styles),o._component.mpType="app",o._component.render=()=>{},o.mount("#app")}(Vue); | |||||
| @ -0,0 +1,114 @@ | |||||
| { | |||||
| "@platforms": [ | |||||
| "android", | |||||
| "iPhone", | |||||
| "iPad" | |||||
| ], | |||||
| "id": "__UNI__17D2062", | |||||
| "name": "ATIA", | |||||
| "version": { | |||||
| "name": "1.0.0", | |||||
| "code": "100" | |||||
| }, | |||||
| "description": "", | |||||
| "developer": { | |||||
| "name": "", | |||||
| "email": "", | |||||
| "url": "" | |||||
| }, | |||||
| "permissions": { | |||||
| "UniNView": { | |||||
| "description": "UniNView原生渲染" | |||||
| } | |||||
| }, | |||||
| "plus": { | |||||
| "useragent": { | |||||
| "value": "uni-app", | |||||
| "concatenate": true | |||||
| }, | |||||
| "splashscreen": { | |||||
| "target": "id:1", | |||||
| "autoclose": true, | |||||
| "waiting": true, | |||||
| "delay": 0 | |||||
| }, | |||||
| "popGesture": "close", | |||||
| "launchwebview": { | |||||
| "render": "always", | |||||
| "id": "1", | |||||
| "kernel": "WKWebview" | |||||
| }, | |||||
| "usingComponents": true, | |||||
| "nvueStyleCompiler": "uni-app", | |||||
| "compilerVersion": 3, | |||||
| "distribute": { | |||||
| "icons": { | |||||
| "android": { | |||||
| "xxxhdpi": "static/image/logo.png" | |||||
| } | |||||
| }, | |||||
| "google": { | |||||
| "permissions": [ | |||||
| "<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>", | |||||
| "<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>", | |||||
| "<uses-permission android:name=\"android.permission.VIBRATE\"/>", | |||||
| "<uses-permission android:name=\"android.permission.READ_LOGS\"/>", | |||||
| "<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>", | |||||
| "<uses-feature android:name=\"android.hardware.camera.autofocus\"/>", | |||||
| "<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>", | |||||
| "<uses-permission android:name=\"android.permission.CAMERA\"/>", | |||||
| "<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>", | |||||
| "<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>", | |||||
| "<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>", | |||||
| "<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>", | |||||
| "<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>", | |||||
| "<uses-feature android:name=\"android.hardware.camera\"/>", | |||||
| "<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>" | |||||
| ] | |||||
| }, | |||||
| "apple": { | |||||
| "dSYMs": false | |||||
| }, | |||||
| "plugins": { | |||||
| "audio": { | |||||
| "mp3": { | |||||
| "description": "Android平台录音支持MP3格式文件" | |||||
| } | |||||
| } | |||||
| } | |||||
| }, | |||||
| "statusbar": { | |||||
| "immersed": "supportedDevice", | |||||
| "style": "dark", | |||||
| "background": "#F8F8F8" | |||||
| }, | |||||
| "uniStatistics": { | |||||
| "enable": false | |||||
| }, | |||||
| "allowsInlineMediaPlayback": true, | |||||
| "uni-app": { | |||||
| "control": "uni-v3", | |||||
| "vueVersion": "3", | |||||
| "compilerVersion": "4.66", | |||||
| "nvueCompiler": "uni-app", | |||||
| "renderer": "auto", | |||||
| "nvue": { | |||||
| "flex-direction": "column" | |||||
| }, | |||||
| "nvueLaunchMode": "normal", | |||||
| "webView": { | |||||
| "minUserAgentVersion": "49.0" | |||||
| } | |||||
| } | |||||
| }, | |||||
| "app-harmony": { | |||||
| "useragent": { | |||||
| "value": "uni-app", | |||||
| "concatenate": true | |||||
| }, | |||||
| "uniStatistics": { | |||||
| "enable": false | |||||
| } | |||||
| }, | |||||
| "launch_path": "__uniappview.html" | |||||
| } | |||||
| @ -0,0 +1 @@ | |||||
| .content[data-v-e640a569]{position:relative;width:100%}.title[data-v-e640a569]{position:absolute;left:50%;transform:translate(-50%);color:#fff;top:0;font-size:34px;letter-spacing:4px;z-index:99}.deviceInfo[data-v-e640a569]{width:100%;height:92%;position:absolute;bottom:0}.infoDetail[data-v-e640a569]{width:100%;height:60%}.buttonContent[data-v-e640a569]{display:flex;flex-wrap:wrap;justify-content:space-around;align-items:center;width:100%;height:40%}.buttonContent>uni-view[data-v-e640a569]{width:30%;height:40%;display:flex;justify-content:center;align-items:center}.button[data-v-e640a569]{width:70%;height:90%;background-color:#0a62cf;border-radius:15px;display:flex;justify-content:center;align-items:center;font-size:30px;color:#fff}.button[data-v-e640a569]:active{opacity:.4} | |||||
| @ -0,0 +1,11 @@ | |||||
| var __getOwnPropNames = Object.getOwnPropertyNames; | |||||
| var __commonJS = (cb, mod) => function __require() { | |||||
| return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; | |||||
| }; | |||||
| var require_app_css = __commonJS({ | |||||
| "app.css.js"(exports) { | |||||
| const _style_0 = {}; | |||||
| exports.styles = [_style_0]; | |||||
| } | |||||
| }); | |||||
| export default require_app_css(); | |||||
| @ -0,0 +1,2 @@ | |||||
| Promise.resolve("./app.css.js").then(() => { | |||||
| }); | |||||
| @ -0,0 +1,24 @@ | |||||
| <!DOCTYPE html> | |||||
| <html lang="en"> | |||||
| <head> | |||||
| <meta charset="UTF-8" /> | |||||
| <title>View</title> | |||||
| <link rel="icon" href="data:,"> | |||||
| <link rel="stylesheet" href="app.css" /> | |||||
| <script>var __uniConfig = {"globalStyle":{},"darkmode":false}</script> | |||||
| <script> | |||||
| var coverSupport = 'CSS' in window && typeof CSS.supports === 'function' && (CSS.supports('top: env(a)') || | |||||
| CSS.supports('top: constant(a)')) | |||||
| document.write( | |||||
| '<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' + | |||||
| (coverSupport ? ', viewport-fit=cover' : '') + '" />') | |||||
| </script> | |||||
| </head> | |||||
| <body> | |||||
| <div id="app"></div> | |||||
| <script src="uni-app-view.umd.js"></script> | |||||
| </body> | |||||
| </html> | |||||
| @ -0,0 +1,11 @@ | |||||
| ;(function(){ | |||||
| let u=void 0,isReady=false,onReadyCallbacks=[],isServiceReady=false,onServiceReadyCallbacks=[]; | |||||
| const __uniConfig = {"pages":[],"globalStyle":{"backgroundColor":"#F8F8F8","navigationBar":{"backgroundColor":"#F8F8F8","titleText":"uni-app","style":"custom","type":"default","titleColor":"#000000"},"isNVue":false},"nvue":{"compiler":"uni-app","styleCompiler":"uni-app","flex-direction":"column"},"renderer":"auto","appname":"ATIA","splashscreen":{"alwaysShowBeforeRender":true,"autoclose":true},"compilerVersion":"4.66","entryPagePath":"pages/login/LoginPage","entryPageQuery":"","realEntryPagePath":"","networkTimeout":{"request":60000,"connectSocket":60000,"uploadFile":60000,"downloadFile":60000},"locales":{},"darkmode":false,"themeConfig":{}}; | |||||
| const __uniRoutes = [{"path":"pages/login/LoginPage","meta":{"isQuit":true,"isEntry":true,"background":"#0F2265","navigationBar":{"titleText":"","style":"custom","type":"default"},"isNVue":false}},{"path":"pages/index/index","meta":{"background":"#0F2265","navigationBar":{"titleText":"","style":"custom","type":"default"},"isNVue":false}}].map(uniRoute=>(uniRoute.meta.route=uniRoute.path,__uniConfig.pages.push(uniRoute.path),uniRoute.path='/'+uniRoute.path,uniRoute)); | |||||
| __uniConfig.styles=[];//styles | |||||
| __uniConfig.onReady=function(callback){if(__uniConfig.ready){callback()}else{onReadyCallbacks.push(callback)}};Object.defineProperty(__uniConfig,"ready",{get:function(){return isReady},set:function(val){isReady=val;if(!isReady){return}const callbacks=onReadyCallbacks.slice(0);onReadyCallbacks.length=0;callbacks.forEach(function(callback){callback()})}}); | |||||
| __uniConfig.onServiceReady=function(callback){if(__uniConfig.serviceReady){callback()}else{onServiceReadyCallbacks.push(callback)}};Object.defineProperty(__uniConfig,"serviceReady",{get:function(){return isServiceReady},set:function(val){isServiceReady=val;if(!isServiceReady){return}const callbacks=onServiceReadyCallbacks.slice(0);onServiceReadyCallbacks.length=0;callbacks.forEach(function(callback){callback()})}}); | |||||
| service.register("uni-app-config",{create(a,b,c){if(!__uniConfig.viewport){var d=b.weex.config.env.scale,e=b.weex.config.env.deviceWidth,f=Math.ceil(e/d);Object.assign(__uniConfig,{viewport:f,defaultFontSize:16})}return{instance:{__uniConfig:__uniConfig,__uniRoutes:__uniRoutes,global:u,window:u,document:u,frames:u,self:u,location:u,navigator:u,localStorage:u,history:u,Caches:u,screen:u,alert:u,confirm:u,prompt:u,fetch:u,XMLHttpRequest:u,WebSocket:u,webkit:u,print:u}}}}); | |||||
| })(); | |||||
| @ -0,0 +1 @@ | |||||
| (function(){})(); | |||||
| @ -0,0 +1,114 @@ | |||||
| { | |||||
| "@platforms": [ | |||||
| "android", | |||||
| "iPhone", | |||||
| "iPad" | |||||
| ], | |||||
| "id": "__UNI__17D2062", | |||||
| "name": "ATIA", | |||||
| "version": { | |||||
| "name": "1.0.0", | |||||
| "code": "100" | |||||
| }, | |||||
| "description": "", | |||||
| "developer": { | |||||
| "name": "", | |||||
| "email": "", | |||||
| "url": "" | |||||
| }, | |||||
| "permissions": { | |||||
| "UniNView": { | |||||
| "description": "UniNView原生渲染" | |||||
| } | |||||
| }, | |||||
| "plus": { | |||||
| "useragent": { | |||||
| "value": "uni-app", | |||||
| "concatenate": true | |||||
| }, | |||||
| "splashscreen": { | |||||
| "target": "id:1", | |||||
| "autoclose": true, | |||||
| "waiting": true, | |||||
| "delay": 0 | |||||
| }, | |||||
| "popGesture": "close", | |||||
| "launchwebview": { | |||||
| "render": "always", | |||||
| "id": "1", | |||||
| "kernel": "WKWebview" | |||||
| }, | |||||
| "usingComponents": true, | |||||
| "nvueStyleCompiler": "uni-app", | |||||
| "compilerVersion": 3, | |||||
| "distribute": { | |||||
| "icons": { | |||||
| "android": { | |||||
| "xxxhdpi": "static/image/logo.png" | |||||
| } | |||||
| }, | |||||
| "google": { | |||||
| "permissions": [ | |||||
| "<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>", | |||||
| "<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>", | |||||
| "<uses-permission android:name=\"android.permission.VIBRATE\"/>", | |||||
| "<uses-permission android:name=\"android.permission.READ_LOGS\"/>", | |||||
| "<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>", | |||||
| "<uses-feature android:name=\"android.hardware.camera.autofocus\"/>", | |||||
| "<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>", | |||||
| "<uses-permission android:name=\"android.permission.CAMERA\"/>", | |||||
| "<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>", | |||||
| "<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>", | |||||
| "<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>", | |||||
| "<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>", | |||||
| "<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>", | |||||
| "<uses-feature android:name=\"android.hardware.camera\"/>", | |||||
| "<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>" | |||||
| ] | |||||
| }, | |||||
| "apple": { | |||||
| "dSYMs": false | |||||
| }, | |||||
| "plugins": { | |||||
| "audio": { | |||||
| "mp3": { | |||||
| "description": "Android平台录音支持MP3格式文件" | |||||
| } | |||||
| } | |||||
| } | |||||
| }, | |||||
| "statusbar": { | |||||
| "immersed": "supportedDevice", | |||||
| "style": "dark", | |||||
| "background": "#F8F8F8" | |||||
| }, | |||||
| "uniStatistics": { | |||||
| "enable": false | |||||
| }, | |||||
| "allowsInlineMediaPlayback": true, | |||||
| "uni-app": { | |||||
| "control": "uni-v3", | |||||
| "vueVersion": "3", | |||||
| "compilerVersion": "4.66", | |||||
| "nvueCompiler": "uni-app", | |||||
| "renderer": "auto", | |||||
| "nvue": { | |||||
| "flex-direction": "column" | |||||
| }, | |||||
| "nvueLaunchMode": "normal", | |||||
| "webView": { | |||||
| "minUserAgentVersion": "49.0" | |||||
| } | |||||
| } | |||||
| }, | |||||
| "app-harmony": { | |||||
| "useragent": { | |||||
| "value": "uni-app", | |||||
| "concatenate": true | |||||
| }, | |||||
| "uniStatistics": { | |||||
| "enable": false | |||||
| } | |||||
| }, | |||||
| "launch_path": "__uniappview.html" | |||||
| } | |||||
| @ -0,0 +1,265 @@ | |||||
| .deviceInfo[data-v-d6733cbd]{ | |||||
| width: 100%; | |||||
| height: 90%; | |||||
| position: absolute; | |||||
| bottom: 0; | |||||
| display: flex; | |||||
| justify-content: center; | |||||
| align-items: center; | |||||
| } | |||||
| .deviceContent[data-v-d6733cbd]{ | |||||
| width: 98%; | |||||
| height: 98%; | |||||
| display: flex; | |||||
| flex-direction: column; | |||||
| justify-content: space-between; | |||||
| align-items: center; | |||||
| } | |||||
| .infoShow[data-v-d6733cbd]{ | |||||
| width: 100%; | |||||
| height: 72%; | |||||
| border-radius: 10px; | |||||
| background-color: #ffffff; | |||||
| } | |||||
| .controlButton[data-v-d6733cbd]{ | |||||
| width: 100%; | |||||
| height: 26%; | |||||
| border-radius: 10px; | |||||
| background-color: #ffffff; | |||||
| } | |||||
| .deviceitle[data-v-d6733cbd]{ | |||||
| width: 100%; | |||||
| border-bottom: 1px solid #ccc; | |||||
| display: flex; | |||||
| justify-content: center; | |||||
| align-items: center; | |||||
| font-size: 28px; | |||||
| font-weight: bold; | |||||
| letter-spacing: 10px; | |||||
| background-color: rgb(204, 204, 204,0.4); | |||||
| border-radius: 10px 10px 0 0; | |||||
| } | |||||
| .info[data-v-d6733cbd]{ | |||||
| height: 10%; | |||||
| } | |||||
| .control[data-v-d6733cbd]{ | |||||
| height: 28%; | |||||
| } | |||||
| .deivceData[data-v-d6733cbd]{ | |||||
| width: 100%; | |||||
| height: 88%; | |||||
| display: flex; | |||||
| align-items: center; | |||||
| } | |||||
| .left[data-v-d6733cbd]{ | |||||
| width: 32%; | |||||
| height: 100%; | |||||
| border-right: 1px solid #ccc; | |||||
| font-size: 18px; | |||||
| } | |||||
| .left_top[data-v-d6733cbd]{ | |||||
| width: 100%; | |||||
| height: 58%; | |||||
| display: flex; | |||||
| justify-content: space-around; | |||||
| flex-wrap: wrap; | |||||
| align-items: center; | |||||
| border-bottom: 1px solid #ccc; | |||||
| } | |||||
| .left_top>uni-view[data-v-d6733cbd]{ | |||||
| width: 40%; | |||||
| height: 20%; | |||||
| display: flex; | |||||
| justify-content: center; | |||||
| align-items: center; | |||||
| border:1px solid #ccc; | |||||
| border-radius: 10px; | |||||
| box-shadow: 1px 1px 3px 1px rgba(0, 0, 0, 0.12); | |||||
| } | |||||
| .Icon[data-v-d6733cbd]{ | |||||
| width: 24px; | |||||
| height: 24px; | |||||
| } | |||||
| .left-bottom[data-v-d6733cbd]{ | |||||
| width: 100%; | |||||
| height: 36%; | |||||
| display: flex; | |||||
| flex-direction: column; | |||||
| justify-content: space-around; | |||||
| align-items: center; | |||||
| font-size: 16px; | |||||
| padding-top: 2%; | |||||
| } | |||||
| .left-bottom>uni-view[data-v-d6733cbd]{ | |||||
| width: 70%; | |||||
| display: flex; | |||||
| justify-content: space-between; | |||||
| align-items: center; | |||||
| } | |||||
| .left-bottom>uni-view>uni-view[data-v-d6733cbd]{ | |||||
| width: 32%; | |||||
| display: flex; | |||||
| justify-content: start; | |||||
| align-items: center; | |||||
| } | |||||
| .controlContent[data-v-d6733cbd]{ | |||||
| width: 100%; | |||||
| height: 74%; | |||||
| display: flex; | |||||
| justify-content: space-around; | |||||
| align-items: center; | |||||
| } | |||||
| .controlContent>uni-view[data-v-d6733cbd]{ | |||||
| width: 12%; | |||||
| height: 40%; | |||||
| background-color: #42B983; | |||||
| color: #ffffff; | |||||
| font-size: 24px; | |||||
| display: flex; | |||||
| justify-content: center; | |||||
| align-items: center; | |||||
| border-radius: 10px; | |||||
| } | |||||
| .controlContent>uni-view[data-v-d6733cbd]:active{ | |||||
| opacity: 0.6; | |||||
| } | |||||
| .right[data-v-d6733cbd]{ | |||||
| width: 68%; | |||||
| height: 100%; | |||||
| display: flex; | |||||
| flex-direction: column; | |||||
| justify-content: space-around; | |||||
| align-items: center; | |||||
| font-size: 18px; | |||||
| } | |||||
| .cameraInfo[data-v-d6733cbd],.directionInfo[data-v-d6733cbd],.angleInfo[data-v-d6733cbd],.encoderInfo[data-v-d6733cbd]{ | |||||
| width: 96%; | |||||
| height: 11%; | |||||
| display: flex; | |||||
| justify-content: space-between; | |||||
| align-items: center; | |||||
| } | |||||
| .cameraInfo>uni-view[data-v-d6733cbd],.directionInfo>uni-view[data-v-d6733cbd],.angleInfo>uni-view[data-v-d6733cbd],.encoderInfo>uni-view[data-v-d6733cbd]{ | |||||
| width: 20%; | |||||
| height: 100%; | |||||
| display: flex; | |||||
| justify-content: start; | |||||
| align-items: center; | |||||
| border-radius: 10px; | |||||
| border: 1px solid #ccc; | |||||
| box-shadow: 1px 1px 3px 1px rgba(0, 0, 0, 0.12); | |||||
| padding: 0 3%; | |||||
| } | |||||
| .infoTitle[data-v-d6733cbd]{ | |||||
| /* width: 52%; */ | |||||
| display: flex; | |||||
| justify-content: center; | |||||
| align-items: center | |||||
| } | |||||
| .detail[data-v-d6733cbd]{ | |||||
| /* width: 28%; */ | |||||
| /* background-color: #ccc; */ | |||||
| } | |||||
| .optionWidth[data-v-5961d202]{ | |||||
| width: 92% !important; | |||||
| } | |||||
| .carInfo[data-v-5961d202]{ | |||||
| width: 100%; | |||||
| height: 90%; | |||||
| position: absolute; | |||||
| bottom: 0; | |||||
| display: flex; | |||||
| justify-content: center; | |||||
| align-items: center; | |||||
| } | |||||
| .carContent[data-v-5961d202]{ | |||||
| width: 98%; | |||||
| height: 98%; | |||||
| display: flex; | |||||
| justify-content: space-between; | |||||
| align-items: center; | |||||
| } | |||||
| .carContent>uni-view[data-v-5961d202]{ | |||||
| width: 33%; | |||||
| height: 100%; | |||||
| border-radius: 10px; | |||||
| background-color: #ffffff; | |||||
| } | |||||
| .carTitle[data-v-5961d202]{ | |||||
| display: flex; | |||||
| justify-content: center; | |||||
| align-items: center; | |||||
| border-bottom: 1px solid #ccc; | |||||
| width: 100%; | |||||
| height: 8%; | |||||
| font-size: 24px; | |||||
| background-color: rgb(204, 204, 204,0.4); | |||||
| border-radius: 10px 10px 0 0; | |||||
| } | |||||
| .carDetail[data-v-5961d202]{ | |||||
| width: 100%; | |||||
| height: 92%; | |||||
| display: flex; | |||||
| justify-content: space-around; | |||||
| align-items: center; | |||||
| flex-wrap: wrap; | |||||
| } | |||||
| .carDetail>uni-view[data-v-5961d202]{ | |||||
| width: 42%; | |||||
| height: 8%; | |||||
| border-radius: 10px; | |||||
| border: 1px solid #ccc; | |||||
| box-shadow: 1px 1px 3px 1px rgba(0, 0, 0, 0.12); | |||||
| display: flex; | |||||
| justify-content: start; | |||||
| align-items: center; | |||||
| padding-left: 4%; | |||||
| font-size: 18px; | |||||
| } | |||||
| .carDetail>uni-view>span[data-v-5961d202]{ | |||||
| display: flex; | |||||
| height: 50%; | |||||
| align-items: end; | |||||
| } | |||||
| .pitch[data-v-1cf27b2a] { | |||||
| color: #0372D7; | |||||
| } | |||||
| .content[data-v-1cf27b2a] { | |||||
| position: relative; | |||||
| width: 100%; | |||||
| } | |||||
| .title[data-v-1cf27b2a] { | |||||
| position: absolute; | |||||
| left: 50%; | |||||
| transform: translateX(-50%); | |||||
| color: #ffffff; | |||||
| top: 0; | |||||
| font-size: 34px; | |||||
| letter-spacing: 4px; | |||||
| z-index: 99; | |||||
| } | |||||
| .optionButton[data-v-1cf27b2a]{ | |||||
| width: 20%; | |||||
| height: 5%; | |||||
| position: absolute; | |||||
| top: 5.6%; | |||||
| font-size: 24px; | |||||
| display: flex; | |||||
| justify-content: space-around; | |||||
| align-items: center; | |||||
| color: #ffffff; | |||||
| } | |||||
| .outButton[data-v-1cf27b2a]{ | |||||
| font-size: 24px; | |||||
| color: #ffffff; | |||||
| position: absolute; | |||||
| top: 5.6%; | |||||
| right: 2%; | |||||
| } | |||||
| @ -0,0 +1,52 @@ | |||||
| .content { | |||||
| display: flex; | |||||
| flex-direction: column; | |||||
| align-items: center; | |||||
| background-image: url(../../static/image/login_bg.png); | |||||
| background-size: 100% 100%; | |||||
| color: #fff; | |||||
| width: 100%; | |||||
| height: 100%; | |||||
| } | |||||
| .logo { | |||||
| width: 400px; | |||||
| height: 320px; | |||||
| } | |||||
| .text-area { | |||||
| display: flex; | |||||
| justify-content: center; | |||||
| align-items: center; | |||||
| margin-bottom: 2%; | |||||
| } | |||||
| .title { | |||||
| font-size: 36px; | |||||
| } | |||||
| .user { | |||||
| width: 90%; | |||||
| height: 25%; | |||||
| display: flex; | |||||
| flex-direction: column; | |||||
| align-items: center; | |||||
| } | |||||
| .user uni-input { | |||||
| width: 400px; | |||||
| height: 50px; | |||||
| border: 0.03125rem solid #567192; | |||||
| outline: none; | |||||
| padding-left: 20px; | |||||
| margin: 20px 0; | |||||
| } | |||||
| .btn { | |||||
| width: 250px; | |||||
| height: 40px; | |||||
| background-color: #879FBE; | |||||
| color: #0A62CF; | |||||
| border: 0.03125rem solid #567192; | |||||
| outline: none; | |||||
| margin: 20px 0; | |||||
| border-radius: 50px; | |||||
| text-align: center; | |||||
| line-height: 40px; | |||||
| font-size: 20px; | |||||
| } | |||||