Merge remote-tracking branch 'origin/master'
| | |
| | | handleCall(item) { |
| | | // const activePlatform = this.activePlat |
| | | platformJobSign({ jobId: item.id, signType: '2' }).then(res => { |
| | | if (res.code == 200) { |
| | | Message.success('签到成功') |
| | | this.$emit('success') |
| | | this.getList() |
| | | } |
| | | }) |
| | | }, |
| | | getList(page) { |
| | |
| | | {
|
| | | "path": "pages/driver/reserved",
|
| | | "style": {
|
| | | "navigationBarTitleText": "入园预约",
|
| | | "navigationBarTitleText": "入园卸货预约",
|
| | | "enablePullDownRefresh": false
|
| | | }
|
| | | },
|
| | |
| | | <view class="left">
|
| | | <view class="img_wrap img1" @click="jump('/pages/driver/notice')">
|
| | | <image src="@/static/driver/wuliu_ic_ruyuanyuyue@2x.png" class="img"></image>
|
| | | <view class="h1">入园预约</view>
|
| | | <view class="h1">入园卸货预约</view>
|
| | | <view class="h2">RESERVATION</view>
|
| | | </view>
|
| | | <view class="img_wrap img2" @click="jump('/pages/driver/reservedGuide?str=bookingTips')">
|
| | |
| | | carCodeBack: param.carCodeBack, |
| | | arriveDate: param.date + ':59' |
| | | }).then(res =>{ |
| | | if(res && res.code == 200){ |
| | | this.showToast('确认成功') |
| | | this.$goBack() |
| | | } |
| | | }) |
| | | }, |
| | | getDetail(jobId) { |
| | |
| | | </view> -->
|
| | | <view v-if="param.status == 1" class="signIn_wrap" @click="handleSignIn">
|
| | | <image :src="
|
| | | param.getDistance < signDistance
|
| | | (param.getDistance || param.getDistance == 0) && param.getDistance < signDistance
|
| | | ? require('@/static/driver/btn_qiandao@2x.png')
|
| | | : require('@/static/driver/btn_qiandao_fail@2x.png')
|
| | | " class="img" mode="widthFix"></image>
|
| | | <view class="handle">{{ param.getDistance > signDistance ? '无法签到' : '签到' }}</view>
|
| | | <view class="handle">{{ !param.getDistance || param.getDistance > signDistance ? '无法签到' : '签到' }}</view>
|
| | | <view class="time">{{nowTime}}</view>
|
| | | </view>
|
| | | </view>
|
| | |
| | | status: '0'
|
| | | },
|
| | | jobId: '',
|
| | | // lat: '',
|
| | | // lnt: '',
|
| | | lat: '31.783205',
|
| | | lnt: '117.262635',
|
| | | lat: '',
|
| | | lnt: '',
|
| | | // lat: '31.783205',
|
| | | // lnt: '117.262635',
|
| | | nowTime: '',
|
| | | wmsInfo: {},
|
| | | signDistance: uni.getStorageSync('driverGuide').signDistance,
|
| | |
| | | lnt,
|
| | | jobId
|
| | | } = this
|
| | | if (param.getDistance > signDistance) return
|
| | | if (!param.getDistance || param.getDistance > signDistance) return
|
| | | driverSignInTask({
|
| | | jobId,
|
| | | lat,
|
| | | lnt,
|
| | | signType: 0
|
| | | }).then(res => {
|
| | | if (res && res.code == 200) { |
| | | this.showToast('签到成功')
|
| | | this.getDetail()
|
| | | }
|
| | | })
|
| | | },
|
| | | getDetail() {
|
| | |
| | | this.getDetail()
|
| | | },
|
| | | fail: (err) => {
|
| | | this.getDetail()
|
| | | this.showToast('获取定位失败', err)
|
| | | }
|
| | | })
|
| | |
| | | if (res.data && res.data.gisList && res.data.gisList.length > 0) {
|
| | | this.gisInfo = res.data.gisList[0]
|
| | | if (this.gisInfo && this.gisInfo.gisList && this.gisInfo.gisList.length > 0) { |
| | | const apiKey = 'd9a554b1808ce10a12a932ed9b0db1d0'; |
| | | // const apiKey = 'd9a554b1808ce10a12a932ed9b0db1d0';
|
| | | const apiKey = '3916a7b434e7f13ae1a0af64e88ec0a3';
|
| | | let adsInfo = this.gisInfo.gisList[this.gisInfo.gisList.length - 1] |
| | | const location = adsInfo.lon1 + ',' + adsInfo.lat1; |
| | | uni.request({ |
| | |
| | | <view class="TransformModal">
|
| | | <view class="title">转移月台</view>
|
| | | <view class="transform_list">
|
| | | <view class="line" @click="transformPlatClick(item)" v-for="item in TransferList"
|
| | | :key="item.id">
|
| | | <view class="line" @click="transformPlatClick(item)" v-for="item in TransferList" :key="item.id">
|
| | | <view class="name">{{ item.name || item.platformName}}</view>
|
| | | <view class="status" :class="{ green: item.workStatus == 1 }">({{ item.workStatus == 0 ? "空闲" : "作业中" }})
|
| | | </view>
|
| | |
| | | transformId: '', // 转移记录任务id |
| | | TransferList: [],
|
| | | wmsInfo: {}, |
| | | timer: null
|
| | | timer: null, |
| | | timer1: null,
|
| | | }
|
| | | },
|
| | | onLoad() {
|
| | |
| | | // setInterval(() => {
|
| | | // this.getPlatformGroup()
|
| | | // }, 1000 * 30)
|
| | | }, |
| | | onHide(){ |
| | | if(this.timer1){ |
| | | clearInterval(this.timer1) |
| | | } |
| | | if(this.timer){ |
| | | clearInterval(this.timer) |
| | | } |
| | | }, |
| | | onUnload(){ |
| | | if(this.timer1){ |
| | | clearInterval(this.timer1) |
| | | } |
| | | if(this.timer){ |
| | | clearInterval(this.timer) |
| | | } |
| | | },
|
| | | methods: { |
| | | getTransferList() { |
| | |
| | | }).then(res => { |
| | | const platformGroupList = res.data || [] |
| | | if (platformGroupList.length > 0) { |
| | | const { activePlatformGroup } = this |
| | | const {
|
| | | activePlatformGroup
|
| | | } = this
|
| | | const temp = platformGroupList.find(i => i.id === activePlatformGroup.id) |
| | | this.TransferList = temp.platformList || [] |
| | | } |
| | |
| | | })
|
| | | },
|
| | | getPlatformTask() {
|
| | | if(this.timer1){ |
| | | clearInterval(this.timer1) |
| | | }
|
| | | getPlatformWorkData({
|
| | | platformId: this.activePlatform.id
|
| | | }).then(res => {
|
| | | this.platformTaskInfo = res.data
|
| | | this.currentDate = new Date(res.data.currentDate).getTime()
|
| | | this.circulInitTaskList()
|
| | | setInterval(() => {
|
| | | this.currentDate = this.currentDate + 1000
|
| | | this.timer1 = setInterval(() => {
|
| | | this.circulInitTaskList()
|
| | | this.currentDate = this.currentDate + 1000
|
| | | }, 1000)
|
| | | }, () => { |
| | | })
|
| | | }, () => {})
|
| | | },
|
| | | circulInitTaskList() {
|
| | | let time = this.currentDate
|
| | | if (this.platformTaskInfo && this.platformTaskInfo.platformJobList && this.platformTaskInfo.platformJobList
|
| | | .length > 0) {
|
| | | let time = new Date()
|
| | | this.platformTaskInfo.platformJobList.forEach(item => {
|
| | | if (item.newCallDate) {
|
| | | let timeNum = time.getTime() - new Date(item.newCallDate).getTime()
|
| | | let timeNum = 0 |
| | | if(time > new Date(item.newCallDate).getTime()){ |
| | | timeNum = time - new Date(item.newCallDate).getTime() |
| | | }else{ |
| | | timeNum = 0 |
| | | }
|
| | | if (timeNum > 3600000) {
|
| | | item.callDateTemp = dayjs.duration(timeNum).format('H小时m分s秒')
|
| | | } else {
|
| | |
| | | }
|
| | | }
|
| | | if (item.newStartDate) {
|
| | | let timeNum = time.getTime() - new Date(item.newStartDate).getTime()
|
| | | let timeNum = 0 |
| | | if(time > new Date(item.newStartDate).getTime()){ |
| | | timeNum = time - new Date(item.newStartDate).getTime() |
| | | }else{ |
| | | timeNum = 0 |
| | | }
|
| | | if (timeNum > 3600000) {
|
| | | item.startDateTemp = dayjs.duration(timeNum).format('H小时m分s秒')
|
| | | } else {
|
| | |
| | | finishWork({
|
| | | jobId: item.id
|
| | | }).then(res => {
|
| | | if (res && res.code == 200) {
|
| | | this.showToast('完成作业')
|
| | | this.getPlatformTask()
|
| | | }
|
| | | })
|
| | | },
|
| | | handleWork(item) { // 开始作业
|
| | | beginWork({
|
| | | jobId: item.id
|
| | | }).then(res => {
|
| | | if (res && res.code == 200) {
|
| | | this.showToast('已开始作业')
|
| | | this.getPlatformTask()
|
| | | }
|
| | | })
|
| | | },
|
| | | handlePass(item) {
|
| | |
| | | jobId: item.id,
|
| | | platformId: activePlatform.id
|
| | | }).then(res => {
|
| | | if (res && res.code == 200) { |
| | | this.showToast('叫号成功')
|
| | | this.getPlatformCallList()
|
| | | }
|
| | | |
| | | })
|
| | | } else { // 月台叫号
|
| | | platformCallNumber({
|
| | | platformId: activePlatform.id,
|
| | | jobId: item.id
|
| | | }).then(res => {
|
| | | if (res && res.code == 200) { |
| | | this.showToast('叫号成功')
|
| | | this.getPlatformCallList()
|
| | | this.getPlatformTask()
|
| | | }
|
| | | |
| | | })
|
| | | }
|
| | | },
|
| | |
| | | }
|
| | | </script>
|
| | | <style lang="scss">
|
| | | page {
|
| | | background-color: #f1f2f2;
|
| | | }
|
| | |
|
| | | .main_app {
|
| | | padding: 0rpx;
|
| | | height: calc(100vh - 44px);
|
| | |
| | | white-space: nowrap; |
| | | overflow: hidden; |
| | | text-overflow: ellipsis;
|
| | |
|
| | | &:nth-of-type(3n) {
|
| | | margin-right: 0;
|
| | | }
|
| | |
| | | justify-content: center;
|
| | | align-items: center;
|
| | | height: 100%;
|
| | |
|
| | | &:nth-of-type(1) {
|
| | | background: #e9f5f6;
|
| | | padding: 0 12rpx;
|
| | |
| | | .order_list {
|
| | | height: calc(100% - 160rpx);
|
| | | margin-top: 20rpx;
|
| | |
|
| | | .scroll_view {
|
| | | height: 100%;
|
| | | }
|
| | |
| | | .platform_ing {
|
| | | border-radius: 8rpx;
|
| | | border: 1rpx solid #dfe2e8;
|
| | |
|
| | | &:nth-of-type(1){
|
| | | margin-top: 0;
|
| | | }
|
| | |
| | | padding: 36rpx 30rpx;
|
| | | border-radius: 12rpx;
|
| | | box-shadow: 0 0 6rpx rgba(0, 0, 0, 0.5);
|
| | |
|
| | | .modal_title {
|
| | | font-weight: 600;
|
| | | font-size: 32rpx;
|
| | |
| | | text-align: center;
|
| | | margin-bottom: 36rpx;
|
| | | }
|
| | |
|
| | | .contract_wrap{
|
| | | height: calc( 100% - 400rpx );
|
| | | overflow-y: auto;
|
| | | }
|
| | |
|
| | | .contract_list {
|
| | | border-top: 1rpx solid #E5E5E5;
|
| | | margin-bottom: 30rpx;
|
| | | padding-top: 30rpx;
|
| | |
|
| | | &:nth-last-child(1){
|
| | | margin-bottom: 0;
|
| | | }
|
| | |
|
| | | .list {
|
| | | background: #f7f7f7;
|
| | | border-radius: 8rpx;
|
| | | padding: 20rpx;
|
| | |
|
| | | .item{
|
| | | border-bottom: 1rpx solid #e5e5e5;
|
| | | padding-bottom: 20rpx;
|
| | | margin-bottom: 20rpx;
|
| | |
|
| | | &:nth-last-child(1){
|
| | | border: none;
|
| | | padding-bottom: 0;
|
| | | margin-bottom: 0;
|
| | | }
|
| | | }
|
| | |
|
| | | .line {
|
| | | display: flex;
|
| | | margin-bottom: 20rpx;
|
| | |
|
| | | &:nth-last-child(1){
|
| | | margin-bottom: 0rpx;
|
| | | }
|
| | |
|
| | | .label {
|
| | | color: #666666;
|
| | | width: 92rpx;
|
| | |
| | | }, |
| | | data: data5.value.map(i => dayjs(i.timeData).format('M')) |
| | | }, |
| | | // tooltip: { |
| | | // trigger: 'axis', |
| | | // axisPointer: { |
| | | // type: 'line' |
| | | // }, |
| | | // }, |
| | | tooltip: { |
| | | trigger: 'axis', |
| | | axisPointer: { |
| | | type: 'line' |
| | | }, |
| | | formatter: function (params) { |
| | | // 遍历悬浮时的所有点,定制化显示内容 |
| | | let result = `<div> |
| | | <div style="width: 120px">${params[0].name}月</div> |
| | | <div style="display: flex;align-items: center;;margin-top: 2px;"> |
| | | <div style="display: flex;align-items: center;"><div style="width: 10px;height: 10px; border-radius: 50%;background-color: #f6d047;margin-right: 6px;"></div></div> |
| | | <div><strong>${params[0].value} L</strong></div> |
| | | </div> |
| | | </div>` |
| | | return result |
| | | } |
| | | }, |
| | | yAxis: { |
| | | type: 'value', |
| | |
| | | }, |
| | | tooltip: { |
| | | trigger: 'axis', |
| | | axisPointer: { |
| | | type: 'line' |
| | | }, |
| | | formatter: function (params) { |
| | | // 遍历悬浮时的所有点,定制化显示内容 |
| | | let result = `<div> |
| | | <div style="width: 120px">${params[0].name}月</div> |
| | | <div style="display: flex;align-items: center;;margin-top: 2px;"> |
| | | <div style="display: flex;align-items: center;"><div style="width: 10px;height: 10px; border-radius: 50%;background-color: #61a1c4;margin-right: 6px;"></div></div> |
| | | <div><strong>${params[0].value} </strong></div> |
| | | </div> |
| | | </div>` |
| | | return result |
| | | } |
| | | }, |
| | | xAxis: { |
| | | type: 'category', |
| | |
| | | <div class="list_wrap"> |
| | | <div class="list"> |
| | | <div class="header line"> |
| | | <span class="item name">设备类型</span> |
| | | <span class="item name">设备名称</span> |
| | | <span class="item">总数</span> |
| | | <span class="item">报警</span> |
| | | <span class="item">屏蔽</span> |
| | |
| | | <span class="item" style="color: #FEAF01;">{{ item.alarmDeviceNum || 0 }}</span> |
| | | <span class="item">{{ item.shieldDeviceNum || 0 }}</span> |
| | | <span class="item">{{ item.errDeviceNum || 0 }}</span> |
| | | <span class="item">{{ item.offlineDeviceNum || 0 }}</span> |
| | | <span class="item">{{ item.onlineDeviceNum || 0 }}</span> |
| | | </div> |
| | | <div class="separate"></div> |
| | | </div> |
| | |
| | | <img src="@/assets/images/FireFighting/xiaofang_ic_zaixian@2x.png" alt=""> |
| | | <div class="content"> |
| | | <div class="name">总数</div> |
| | | <div class="num">{{ dataList4.onlineDeviceNum }}</div> |
| | | <div class="num">{{ dataList4.onlineDeviceNum || 0 }}</div> |
| | | </div> |
| | | </div> |
| | | <div class="item"> |
| | | <img src="@/assets/images/FireFighting/xiaofang_ic_baojing@2x.png" alt=""> |
| | | <div class="content"> |
| | | <div class="name">报警</div> |
| | | <div class="num num2">{{ dataList4.alarmDeviceNum }}</div> |
| | | <div class="num num2">{{ dataList4.alarmDeviceNum || 0}}</div> |
| | | </div> |
| | | </div> |
| | | <div class="item"> |
| | |
| | | <img src="@/assets/images/FireFighting/xiaofang_ic_guzhang@2x.png" alt=""> |
| | | <div class="content"> |
| | | <div class="name">故障</div> |
| | | <div class="num num3">{{ dataList4.errDeviceNum }}</div> |
| | | <div class="num num3">{{ dataList4.errDeviceNum || 0 }}</div> |
| | | </div> |
| | | </div> |
| | | <div class="item"> |
| | | <img src="@/assets/images/FireFighting/xiaofang_ic_zhengchang@2x.png" alt=""> |
| | | <div class="content"> |
| | | <div class="name">正常</div> |
| | | <div class="num num4">{{ dataList4.offlineDeviceNum }}</div> |
| | | <div class="num num4">{{ dataList4.onlineDeviceNum || 0 }}</div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | getData7() |
| | | }, 60 * 1000) |
| | | setInterval(() => { |
| | | |
| | | getData5() |
| | | getData8() |
| | | |
| | | }, 60 * 60 * 1000) |
| | | |
| | | setInterval(() => { |
| | | changeData8(1) |
| | | changeData9(1) |
| | | }, 1000 * 5) |
| | | |
| | | setTimeout(() => { |
| | | loopFn1() |
| | | loopFn2() |
| | | }, 12000) |
| | | |
| | | |
| | | }) |
| | | |
| | |
| | | font-size: 14px; |
| | | |
| | | .item { |
| | | flex: 1; |
| | | flex: 2; |
| | | display: flex; |
| | | justify-content: center; |
| | | /* margin: 0 6px; */ |
| | | align-items: center; |
| | | white-space: nowrap; |
| | | overflow: hidden; |
| | | text-overflow: ellipsis; |
| | | |
| | | } |
| | | |
| | | .name { |
| | | flex: 2; |
| | | flex: 5; |
| | | justify-content: flex-start; |
| | | } |
| | | |
| | | .warnning { |
| | |
| | | showModal.value = true |
| | | kzorderInfo({ contractNumber: item.contractNumber }).then(res => { |
| | | modalInfo.value = res.data |
| | | const apiKey = 'd9a554b1808ce10a12a932ed9b0db1d0' |
| | | // const apiKey = 'd9a554b1808ce10a12a932ed9b0db1d0' |
| | | const apiKey = '3916a7b434e7f13ae1a0af64e88ec0a3' |
| | | if (modalInfo.value.gisList && modalInfo.value.gisList.length > 0) { |
| | | const gisInfo = modalInfo.value.gisList[0] |
| | | if (gisInfo && gisInfo.gisList && gisInfo.gisList.length > 0) { |