Merge remote-tracking branch 'origin/master'
| | |
| | | handleCall(item) { |
| | | // const activePlatform = this.activePlat |
| | | platformJobSign({ jobId: item.id, signType: '2' }).then(res => { |
| | | Message.success('签到成功') |
| | | this.$emit('success') |
| | | this.getList() |
| | | if (res.code == 200) { |
| | | Message.success('签到成功') |
| | | this.$emit('success') |
| | | this.getList() |
| | | } |
| | | }) |
| | | }, |
| | | getList(page) { |
| | | const { activePlat, pagination, carCodeFront } = this |
| | | if(page){ |
| | | if (page) { |
| | | pagination.page = page |
| | | } |
| | | } |
| | | platformJobPage({ |
| | | model: { platformGroupId: activePlat.id, queryStatus: '0,1', carCodeFront }, |
| | | page: pagination.page, |
| | | capacity: pagination.pageSize |
| | | }).then(res => { |
| | | }).then(res => { |
| | | this.dataList = res.records |
| | | this.pagination.total = res.total |
| | | }) |
| | |
| | | {
|
| | | "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 =>{ |
| | | this.showToast('确认成功') |
| | | this.$goBack() |
| | | 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 => {
|
| | | this.showToast('签到成功')
|
| | | this.getDetail()
|
| | | }).then(res => { |
| | | if (res && res.code == 200) { |
| | | this.showToast('签到成功') |
| | | this.getDetail() |
| | | }
|
| | | })
|
| | | },
|
| | | getDetail() {
|
| | |
| | | console.log('---', res);
|
| | | this.getDetail()
|
| | | },
|
| | | fail: (err) => {
|
| | | fail: (err) => { |
| | | this.getDetail()
|
| | | this.showToast('获取定位失败', err)
|
| | | }
|
| | | })
|
| | |
| | |
|
| | | </map>
|
| | | <view class="main_content">
|
| | | <view class="info"> |
| | | <view class="stock_status" v-if="info.overStock && info.overStock == 1"> |
| | | <image src="@/static/ic_tip@2x.png" mode=""></image> |
| | | <view class="">因库存不足,订单暂时无法配载</view> |
| | | <view class="info">
|
| | | <view class="stock_status" v-if="info.overStock && info.overStock == 1">
|
| | | <image src="@/static/ic_tip@2x.png" mode=""></image>
|
| | | <view class="">因库存不足,订单暂时无法配载</view>
|
| | | </view>
|
| | | <view class="head">
|
| | | <view class="code">{{info.contractNumber}}</view>
|
| | |
| | | <view class="line">
|
| | | <view class="la">预计到达</view>
|
| | | <view class="val primaryColor" v-if="info.plannedArrivedDate">{{info.plannedArrivedDate.slice(0,11)}}</view>
|
| | | </view> |
| | | <view v-if="showRecord" class="table"> |
| | | <view class="ite header"> |
| | | <view class="name">品规名称</view> |
| | | <view class="num">数量<text>(万支)</text></view> |
| | | </view> |
| | | <view class="ite" v-for="ite in info.orderDetailVOList"> |
| | | <view class="name">{{ite.productName}}</view> |
| | | <view class="num">{{ite.pnumber}}</view> |
| | | </view> |
| | | </view> |
| | | <view class="line switch" @click="showRecord = !showRecord"> |
| | | <view class="">{{ showRecord ? '收起品规明细' : '查看品规明细'}}</view> |
| | | <u-icon v-if="!showRecord" name="arrow-down" size="12" class="ml6" color='#666666'></u-icon> |
| | | <u-icon v-if="showRecord" name="arrow-up" size="12" class="ml6" color='#666666'></u-icon> |
| | | </view> |
| | | </view>
|
| | | <view v-if="showRecord" class="table">
|
| | | <view class="ite header">
|
| | | <view class="name">品规名称</view>
|
| | | <view class="num">数量<text>(万支)</text></view>
|
| | | </view>
|
| | | <view class="ite" v-for="ite in info.orderDetailVOList">
|
| | | <view class="name">{{ite.productName}}</view>
|
| | | <view class="num">{{ite.pnumber}}</view>
|
| | | </view>
|
| | | </view>
|
| | | <view class="line switch" @click="showRecord = !showRecord">
|
| | | <view class="">{{ showRecord ? '收起品规明细' : '查看品规明细'}}</view>
|
| | | <u-icon v-if="!showRecord" name="arrow-down" size="12" class="ml6" color='#666666'></u-icon>
|
| | | <u-icon v-if="showRecord" name="arrow-up" size="12" class="ml6" color='#666666'></u-icon>
|
| | | </view>
|
| | |
|
| | | </view>
|
| | | </view>
|
| | |
| | | <image v-if="dri.key == 2 && k == 0" src="@/static/waybill/ic_cangku_sel@2x.png" class="icon"></image>
|
| | | <image v-if="dri.key == 3 && k != 0" src="@/static/waybill/ic_yunshu@2x.png" class="icon"></image>
|
| | | <image v-if="dri.key == 3 && k == 0" src="@/static/waybill/ic_yunshu_sel@2x.png" class="icon"></image>
|
| | | <image v-if="dri.key == 4 && k != 0" src="@/static/waybill/ic_dingdan@2x.png" class="icon"></image> |
| | | <image v-if="dri.key == 4 && k != 0" src="@/static/waybill/ic_dingdan@2x.png" class="icon"></image>
|
| | | <image v-if="dri.key == 4 && k == 0" src="@/static/waybill/ic_daohuo_sel@2x.png" class="icon"></image>
|
| | | <image v-if="dri.key == 5" src="@/static/waybill/ic_ruku.png" class="icon"></image>
|
| | | </view>
|
| | |
| | | <view v-else class="icon_wrap"></view>
|
| | | <view class="text" :class="{placeholder3: k==0 && i== 0}">
|
| | | {{item.orderStatusDes}}
|
| | | <text v-if="item.tel">,发货仓库电话:</text> |
| | | <template v-if="item.tel"> |
| | | <text v-for="phone,p in item.tel.split(',')" @click="callPhone(phone)" class="primaryColor">{{phone}}<text v-if="p < item.tel.split(',').length - 1">,</text></text> |
| | | <text v-if="item.tel">,发货仓库电话:</text>
|
| | | <template v-if="item.tel">
|
| | | <text v-for="phone,p in item.tel.split(',')" @click="callPhone(phone)" class="primaryColor">{{phone}}<text v-if="p < item.tel.split(',').length - 1">,</text></text>
|
| | | </template>
|
| | |
|
| | | </view>
|
| | |
| | | param: {},
|
| | |
|
| | | latitude: 31.783205,
|
| | | longitude: 117.262635, |
| | | longitude: 117.262635,
|
| | | scale: 5,
|
| | | markers: [],
|
| | | includePoints: [
|
| | |
| | | // color: '#FF0000',
|
| | | // width: 3
|
| | | // },
|
| | | ], |
| | | ],
|
| | | showRecord: false
|
| | | };
|
| | | },
|
| | |
| | | }
|
| | | })
|
| | | this.latitude = (Number(this.markers[0].latitude) + Number(this.markers[1].latitude)) / 2 - 4
|
| | | this.longitude = (Number(this.markers[0].longitude) + Number(this.markers[1].longitude)) / 2 |
| | | const distance = this.distance() |
| | | console.log('distance', distance); |
| | | if(distance > 1500000){ |
| | | this.scale = 4 |
| | | }else if(distance < 600000){ |
| | | this.scale = 6 |
| | | }else{ |
| | | this.scale = 5 |
| | | this.longitude = (Number(this.markers[0].longitude) + Number(this.markers[1].longitude)) / 2
|
| | | const distance = this.distance()
|
| | | console.log('distance', distance);
|
| | | if(distance > 1500000){
|
| | | this.scale = 4
|
| | | }else if(distance < 600000){
|
| | | this.scale = 6
|
| | | }else{
|
| | | this.scale = 5
|
| | | }
|
| | | }
|
| | | 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'; |
| | | let adsInfo = this.gisInfo.gisList[this.gisInfo.gisList.length - 1] |
| | | const location = adsInfo.lon1 + ',' + adsInfo.lat1; |
| | | uni.request({ |
| | | url: `https://restapi.amap.com/v3/geocode/regeo?key=${apiKey}&location=${location}`, |
| | | method: 'GET', |
| | | success: (res) => { |
| | | this.$set(this.info, 'address', res.data.regeocode.formatted_address) |
| | | }, |
| | | if (this.gisInfo && this.gisInfo.gisList && this.gisInfo.gisList.length > 0) {
|
| | | // const apiKey = 'd9a554b1808ce10a12a932ed9b0db1d0';
|
| | | const apiKey = '3916a7b434e7f13ae1a0af64e88ec0a3';
|
| | | let adsInfo = this.gisInfo.gisList[this.gisInfo.gisList.length - 1]
|
| | | const location = adsInfo.lon1 + ',' + adsInfo.lat1;
|
| | | uni.request({
|
| | | url: `https://restapi.amap.com/v3/geocode/regeo?key=${apiKey}&location=${location}`,
|
| | | method: 'GET',
|
| | | success: (res) => {
|
| | | this.$set(this.info, 'address', res.data.regeocode.formatted_address)
|
| | | },
|
| | | })
|
| | | this.polyline = []
|
| | | let temp = {
|
| | |
| | | }
|
| | | this.polyline.push(temp)
|
| | | }
|
| | | } |
| | | }
|
| | |
|
| | | })
|
| | | },
|
| | |
| | | background: #fff;
|
| | | border-radius: 16rpx;
|
| | | padding: 30rpx;
|
| | | margin-bottom: 20rpx; |
| | | position: relative; |
| | | margin-bottom: 20rpx;
|
| | | position: relative;
|
| | | z-index: 999;
|
| | | .drive_list{ |
| | | position: relative; |
| | | z-index: 999; |
| | | .separate { |
| | | height: calc(100% - 48rpx); |
| | | width: 1rpx; |
| | | border: 1rpx dashed #CCCCCC; |
| | | position: absolute; |
| | | left: 24rpx; |
| | | top: 48rpx; |
| | | z-index: -1; |
| | | } |
| | | .drive_list{
|
| | | position: relative;
|
| | | z-index: 999;
|
| | | .separate {
|
| | | height: calc(100% - 48rpx);
|
| | | width: 1rpx;
|
| | | border: 1rpx dashed #CCCCCC;
|
| | | position: absolute;
|
| | | left: 24rpx;
|
| | | top: 48rpx;
|
| | | z-index: -1;
|
| | | }
|
| | | }
|
| | |
|
| | |
|
| | |
| | | position: relative;
|
| | | color: #999999;
|
| | | margin-bottom: 30rpx;
|
| | | &:nth-last-child(1){ |
| | | margin-bottom: 0; |
| | | padding-bottom: 30rpx; |
| | | &:nth-last-child(1){
|
| | | margin-bottom: 0;
|
| | | padding-bottom: 30rpx;
|
| | | }
|
| | | .text {
|
| | | color: #666666; |
| | | color: #666666;
|
| | | flex: 1;
|
| | | }
|
| | |
|
| | |
| | | width: 20rpx;
|
| | | height: 20rpx;
|
| | | position: relative;
|
| | | z-index: 2; |
| | | z-index: 2;
|
| | | margin-top: 12rpx;
|
| | | }
|
| | |
|
| | |
| | | background-color: #fff;
|
| | | overflow: hidden;
|
| | | position: relative;
|
| | | z-index: 1; |
| | | .stock_status{ |
| | | background: #FFEEEE; |
| | | font-size: 26rpx; |
| | | color: #ED4545; |
| | | display: flex; |
| | | align-items: center; |
| | | border-radius: 8rpx 8rpx 0rpx 0rpx; |
| | | height: 80rpx; |
| | | margin: 0rpx -30rpx 0; |
| | | position: relative; |
| | | z-index: 1; |
| | | padding: 0 30rpx; |
| | | image{ |
| | | width: 28rpx; |
| | | height: 28rpx; |
| | | margin-right: 10rpx; |
| | | } |
| | | z-index: 1;
|
| | | .stock_status{
|
| | | background: #FFEEEE;
|
| | | font-size: 26rpx;
|
| | | color: #ED4545;
|
| | | display: flex;
|
| | | align-items: center;
|
| | | border-radius: 8rpx 8rpx 0rpx 0rpx;
|
| | | height: 80rpx;
|
| | | margin: 0rpx -30rpx 0;
|
| | | position: relative;
|
| | | z-index: 1;
|
| | | padding: 0 30rpx;
|
| | | image{
|
| | | width: 28rpx;
|
| | | height: 28rpx;
|
| | | margin-right: 10rpx;
|
| | | }
|
| | | }
|
| | | .head {
|
| | | display: flex;
|
| | | justify-content: space-between;
|
| | | align-items: center;
|
| | | padding: 0 30rpx;
|
| | | width: 690rpx; |
| | | width: 690rpx;
|
| | | border-radius: 8rpx 8rpx 0rpx 0rpx;
|
| | | height: 84rpx;
|
| | | margin: 0 -30rpx;
|
| | | background: linear-gradient(270deg, #FEFEFF 0%, #E1F7FE 100%);
|
| | | position: relative; |
| | | position: relative;
|
| | | z-index: 11;
|
| | | .code {
|
| | | font-weight: 500;
|
| | |
| | | width: 140rpx;
|
| | | }
|
| | |
|
| | | .val { |
| | | flex: 1; |
| | | .val {
|
| | | flex: 1;
|
| | | }
|
| | |
|
| | | &:nth-last-child(1) {
|
| | | margin-bottom: 0;
|
| | | }
|
| | | }
|
| | | .table{ |
| | | margin: 0 auto 20rpx; |
| | | .ite{ |
| | | width: 100%; |
| | | height: 68rpx; |
| | | background: #FFFFFF; |
| | | border-bottom: 1rpx solid #E5E5E5; |
| | | display: flex; |
| | | align-items: center; |
| | | font-size: 28rpx; |
| | | padding-left: 30rpx; |
| | | .name{ |
| | | flex: 8; |
| | | // padding-left: 20rpx; |
| | | } |
| | | .num{ |
| | | flex: 3; |
| | | } |
| | | } |
| | | .header{ |
| | | background: #F4F7FC; |
| | | font-weight: 500; |
| | | text{ |
| | | font-size: 22rpx; |
| | | } |
| | | } |
| | | } |
| | | .switch{ |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | color: #666666; |
| | | } |
| | | .table{
|
| | | margin: 0 auto 20rpx;
|
| | | .ite{
|
| | | width: 100%;
|
| | | height: 68rpx;
|
| | | background: #FFFFFF;
|
| | | border-bottom: 1rpx solid #E5E5E5;
|
| | | display: flex;
|
| | | align-items: center;
|
| | | font-size: 28rpx;
|
| | | padding-left: 30rpx;
|
| | | .name{
|
| | | flex: 8;
|
| | | // padding-left: 20rpx;
|
| | | }
|
| | | .num{
|
| | | flex: 3;
|
| | | }
|
| | | }
|
| | | .header{
|
| | | background: #F4F7FC;
|
| | | font-weight: 500;
|
| | | text{
|
| | | font-size: 22rpx;
|
| | | }
|
| | | }
|
| | | }
|
| | | .switch{
|
| | | display: flex;
|
| | | align-items: center;
|
| | | justify-content: center;
|
| | | color: #666666;
|
| | | }
|
| | | }
|
| | |
|
| | | }
|
| | |
| | | </view>
|
| | | <view class="line" v-else>
|
| | | <text class="label">合同单号</text>
|
| | | <text class="value">{{ item.contractNum }}</text> |
| | | <text class="value">{{ item.contractNum }}</text>
|
| | | <text class="primaryColor" @click="subDetail(item)">预约详情</text>
|
| | | </view>
|
| | | <view class="line">
|
| | |
| | | </view>
|
| | | <view class="line" v-else>
|
| | | <text class="label">合同单号</text>
|
| | | <text class="value">{{ item.contractNum }}</text> |
| | | <text class="value">{{ item.contractNum }}</text>
|
| | | <text class="primaryColor" @click="subDetail(item)">预约详情</text>
|
| | | </view>
|
| | | <view class="line">
|
| | |
| | | <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>
|
| | |
| | | callType: 1,
|
| | |
|
| | | transformPlatId: '', // 转移记录月台id
|
| | | transformId: '', // 转移记录任务id |
| | | transformId: '', // 转移记录任务id
|
| | | TransferList: [],
|
| | | wmsInfo: {}, |
| | | timer: null
|
| | | wmsInfo: {},
|
| | | 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() { |
| | | getPlatformGroupList({ |
| | | queryData: 1, |
| | | queryType: 1 |
| | | }).then(res => { |
| | | const platformGroupList = res.data || [] |
| | | if (platformGroupList.length > 0) { |
| | | const { activePlatformGroup } = this |
| | | const temp = platformGroupList.find(i => i.id === activePlatformGroup.id) |
| | | this.TransferList = temp.platformList || [] |
| | | } |
| | | }) |
| | | methods: {
|
| | | getTransferList() {
|
| | | getPlatformGroupList({
|
| | | queryData: 1,
|
| | | queryType: 1
|
| | | }).then(res => {
|
| | | const platformGroupList = res.data || []
|
| | | if (platformGroupList.length > 0) {
|
| | | const {
|
| | | activePlatformGroup
|
| | | } = this
|
| | | const temp = platformGroupList.find(i => i.id === activePlatformGroup.id)
|
| | | this.TransferList = temp.platformList || []
|
| | | }
|
| | | })
|
| | | },
|
| | | getPlatformGroup() {
|
| | | getPlatformGroupList({
|
| | |
| | | if (this.platformGroupList.length > 0) {
|
| | | this.activePlatformGroup = this.platformGroupList[0]
|
| | | if (this.activePlatformGroup.platformList && this.activePlatformGroup.platformList.length > 0) {
|
| | | this.activePlatform = this.activePlatformGroup.platformList[0] |
| | | this.getPlatformTask() |
| | | this.timer = setInterval(() => { |
| | | this.getPlatformTask() |
| | | this.activePlatform = this.activePlatformGroup.platformList[0]
|
| | | this.getPlatformTask()
|
| | | this.timer = setInterval(() => {
|
| | | this.getPlatformTask()
|
| | | }, 120 * 1000)
|
| | | }
|
| | | }
|
| | | })
|
| | | },
|
| | | getPlatformTask() {
|
| | | getPlatformTask() { |
| | | if(this.timer1){ |
| | | clearInterval(this.timer1) |
| | | }
|
| | | getPlatformWorkData({
|
| | | platformId: this.activePlatform.id
|
| | | }).then(res => {
|
| | | this.platformTaskInfo = res.data
|
| | | this.circulInitTaskList()
|
| | | setInterval(() => {
|
| | | this.circulInitTaskList()
|
| | | this.platformTaskInfo = res.data |
| | | this.currentDate = new Date(res.data.currentDate).getTime()
|
| | | this.circulInitTaskList() |
| | | this.currentDate = this.currentDate + 1000
|
| | | this.timer1 = setInterval(() => {
|
| | | this.circulInitTaskList() |
| | | this.currentDate = this.currentDate + 1000
|
| | | }, 1000)
|
| | | }, () => { |
| | | })
|
| | | }, () => {})
|
| | | },
|
| | | circulInitTaskList() {
|
| | | 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()
|
| | | if (item.newCallDate) { |
| | | 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 {
|
| | | item.callDateTemp = dayjs.duration(timeNum).format('m分s秒')
|
| | | }
|
| | | }
|
| | | if (item.newStartDate) {
|
| | | let timeNum = time.getTime() - new Date(item.newStartDate).getTime()
|
| | | if (item.newStartDate) { |
| | | 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 {
|
| | |
| | | const index = e.indexs[0]
|
| | | this.activePlatformGroup = this.platformGroupList[index]
|
| | | if (this.activePlatformGroup.platformList && this.activePlatformGroup.platformList.length > 0) {
|
| | | this.activePlatform = this.activePlatformGroup.platformList[0] |
| | | this.getPlatformTask() |
| | | clearInterval(this.timer) |
| | | this.timer = setInterval(() => { |
| | | this.getPlatformTask() |
| | | this.activePlatform = this.activePlatformGroup.platformList[0]
|
| | | this.getPlatformTask()
|
| | | clearInterval(this.timer)
|
| | | this.timer = setInterval(() => {
|
| | | this.getPlatformTask()
|
| | | }, 60 * 1000)
|
| | | }
|
| | | this.showPlatformgroup = false
|
| | |
| | | this.wmsInfo = res.data
|
| | | this.showDetail = true
|
| | | })
|
| | | }, |
| | | subDetail(item) { |
| | | uni.navigateTo({ |
| | | url: `/pages/index/SubDetail?id=${item.bookId}` |
| | | }) |
| | | },
|
| | | subDetail(item) {
|
| | | uni.navigateTo({
|
| | | url: `/pages/index/SubDetail?id=${item.bookId}`
|
| | | })
|
| | | },
|
| | | handleFinish(item) {
|
| | | finishWork({
|
| | | jobId: item.id
|
| | | }).then(res => {
|
| | | this.showToast('完成作业')
|
| | | this.getPlatformTask()
|
| | | if (res && res.code == 200) {
|
| | | this.showToast('完成作业')
|
| | | this.getPlatformTask()
|
| | | }
|
| | | })
|
| | | },
|
| | | handleWork(item) { // 开始作业
|
| | | beginWork({
|
| | | jobId: item.id
|
| | | }).then(res => {
|
| | | this.showToast('已开始作业')
|
| | | this.getPlatformTask()
|
| | | if (res && res.code == 200) {
|
| | | this.showToast('已开始作业')
|
| | | this.getPlatformTask()
|
| | | }
|
| | | })
|
| | | },
|
| | | handlePass(item) {
|
| | |
| | | platformInPark({
|
| | | jobId: item.id,
|
| | | platformId: activePlatform.id
|
| | | }).then(res => {
|
| | | this.showToast('叫号成功')
|
| | | this.getPlatformCallList()
|
| | | }).then(res => { |
| | | if (res && res.code == 200) { |
| | | this.showToast('叫号成功') |
| | | this.getPlatformCallList() |
| | | }
|
| | | |
| | | })
|
| | | } else { // 月台叫号
|
| | | platformCallNumber({
|
| | | platformId: activePlatform.id,
|
| | | jobId: item.id
|
| | | }).then(res => {
|
| | | this.showToast('叫号成功')
|
| | | this.getPlatformCallList()
|
| | | this.getPlatformTask()
|
| | | }).then(res => { |
| | | if (res && res.code == 200) { |
| | | this.showToast('叫号成功') |
| | | this.getPlatformCallList() |
| | | this.getPlatformTask() |
| | | }
|
| | | |
| | | })
|
| | | }
|
| | | },
|
| | |
| | | activePlatform
|
| | | } = this
|
| | | this.transformId = item.id
|
| | | this.transformPlatId = activePlatform.id |
| | | this.transformPlatId = activePlatform.id
|
| | | this.getTransferList()
|
| | | this.showTransform = true
|
| | | },
|
| | |
| | | }
|
| | | </script>
|
| | | <style lang="scss">
|
| | | page {
|
| | | background-color: #f1f2f2;
|
| | | }
|
| | |
|
| | | .main_app {
|
| | | padding: 0rpx;
|
| | | height: calc(100vh - 44px);
|
| | |
| | |
|
| | | .item {
|
| | | width: 220rpx;
|
| | | height: 80rpx; |
| | | line-height: 80rpx; |
| | | height: 80rpx;
|
| | | line-height: 80rpx;
|
| | | text-align: center;
|
| | | background: #ffffff;
|
| | | border-radius: 8rpx;
|
| | |
| | | color: #222222;
|
| | | margin-bottom: 15rpx;
|
| | | margin-right: 15rpx;
|
| | | white-space: nowrap; |
| | | overflow: hidden; |
| | | 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;
|
| | |
| | | .PlatformCallModal {
|
| | | height: calc(100vh - 44px);
|
| | | padding: 30rpx;
|
| | | |
| | |
|
| | | .title {
|
| | | text-align: center;
|
| | | margin: 0 0 30rpx;
|
| | |
| | | .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){
|
| | |
|
| | | &: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 );
|
| | |
|
| | | .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){
|
| | |
|
| | | &:nth-last-child(1) {
|
| | | margin-bottom: 0;
|
| | | }
|
| | |
|
| | | .list {
|
| | | background: #f7f7f7;
|
| | | border-radius: 8rpx;
|
| | | padding: 20rpx;
|
| | | .item{
|
| | |
|
| | | .item {
|
| | | border-bottom: 1rpx solid #e5e5e5;
|
| | | padding-bottom: 20rpx;
|
| | | margin-bottom: 20rpx;
|
| | | &:nth-last-child(1){
|
| | |
|
| | | &:nth-last-child(1) {
|
| | | border: none;
|
| | | padding-bottom: 0;
|
| | | margin-bottom: 0;
|
| | | }
|
| | | }
|
| | |
|
| | | .line {
|
| | | display: flex;
|
| | | margin-bottom: 20rpx;
|
| | | &:nth-last-child(1){
|
| | |
|
| | | &: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) { |