| | |
| | | method: 'post', |
| | | data |
| | | }) |
| | | } |
| | | export const getLastWaitJob = (data) => { |
| | | return http({ |
| | | url: 'visitsAdmin/cloudService/business/platformJob/getLastWaitJob', |
| | | method: 'get', |
| | | data |
| | | }) |
| | | } |
| | |
| | | import {
|
| | | logoutPost,
|
| | | driverHomeData,
|
| | | app_url
|
| | | app_url, |
| | | getLastWaitJob
|
| | | } from '@/api'
|
| | | export default {
|
| | | data() {
|
| | |
| | | this.jump('/pages/driver/reservedDetail?id=' + ywinfo.ywid) |
| | | }else if(yw == 8){ |
| | | this.jump('/pages/driver/taskDetail?id=' + ywinfo.ywid) |
| | | }else if(yw == 0) { |
| | | getLastWaitJob({ uuid: ywinfo.ywid }).then(res => { |
| | | if(res.data && res.data.id){ |
| | | this.taskClick(res.data) |
| | | } |
| | | }) |
| | | } |
| | | } |
| | | },
|
| | |
| | | export default {
|
| | | data() {
|
| | | return {
|
| | | code: 'qwe'
|
| | | code: ''
|
| | | }
|
| | | }, |
| | | onLoad(option) { |
| | |
| | | <template> |
| | | <view> |
| | | <web-view style="width: 100vw;height: 100vh;" src="https://atwl.ahzyssl.com/dps/web/wxAuth/loginV2?oaId=atwl&redirectId=index"></web-view> |
| | | <!-- <web-view src="https://www.baidu.com/"></web-view> --> |
| | | </view> |
| | | <view class="box"> |
| | | <!-- <view v-html="info"></view> --> |
| | | <mp-html :content="info" /> |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | data() { |
| | | return { |
| | | |
| | | }; |
| | | } |
| | | } |
| | | import { getSystemDictData } from '@/api' |
| | | export default { |
| | | data() { |
| | | return { |
| | | info: "", |
| | | } |
| | | }, |
| | | onLoad() { |
| | | this.initData() |
| | | }, |
| | | methods: { |
| | | initData() { |
| | | getSystemDictData({ |
| | | dictCode: 'TSM_PARAM', |
| | | label: 'CENTER_LINK_TYPE' |
| | | }).then(res => { |
| | | if (res.code === 200) { |
| | | this.info = res.data.code |
| | | uni.setNavigationBarTitle({ |
| | | title: res.data.remark |
| | | }) |
| | | } |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss"> |
| | | |
| | | </style> |
| | | <style lang="scss" scoped> |
| | | .box { |
| | | padding: 0 30rpx; |
| | | } |
| | | </style> |
| | |
| | | <view class="img_wrap" v-for="item,i in info.submitFileList" :key="item.id">
|
| | | <image v-if="item.type == 0" :src="item.fileurlFull" @click="priviewImage(item.fileurlFull)" mode="widthFix"
|
| | | class="img" />
|
| | | <view v-if="item.type == 1" @click="videoClick(item, i)" class="video_wrap"> |
| | | <video :id="'id' + i" :show-center-play-btn="false" |
| | | :src="item.fileurlFull" muted class="video" :controls="false" /> |
| | | <image src="@/static/play.png" class="play" mode=""></image> |
| | | <view v-if="item.type == 1" @click="videoClick(item, i)" class="video_wrap">
|
| | | <video :id="'id' + i" :show-center-play-btn="false" :src="item.fileurlFull" muted class="video"
|
| | | :controls="false" />
|
| | | <image src="@/static/play.png" class="play" mode=""></image>
|
| | | </view>
|
| | | </view>
|
| | | </view>
|
| | |
| | | <view class="label">{{info.status == '1' ? '整改前' : '视频/图片'}}</view>
|
| | | <view class="value">
|
| | | <view class="adduser_list_item_ipt1_upload" v-for="(item, i) in info.dealBeforeFileList" :key="i">
|
| | | <image v-if="item.type == 0" @click="priviewImage(item.fileurlFull)" :src="item.fileurlFull" mode="widthFix"></image>
|
| | | <image v-if="item.type == 0" @click="priviewImage(item.fileurlFull)" :src="item.fileurlFull"
|
| | | mode="widthFix"></image>
|
| | | <video v-if="item.type == 1" @click="videoClick(item, i)" :src="item.fileurlFull" :controls="false"></video>
|
| | | </view>
|
| | | </view>
|
| | |
| | | <view class="label">整改后</view>
|
| | | <view class="value">
|
| | | <view class="adduser_list_item_ipt1_upload" v-for="(item, i) in info.dealAfterFileList" :key="i">
|
| | | <image v-if="item.type == 0" @click="priviewImage(item.fileurlFull)" :src="item.fileurlFull" mode="widthFix"></image>
|
| | | <image v-if="item.type == 0" @click="priviewImage(item.fileurlFull)" :src="item.fileurlFull"
|
| | | mode="widthFix"></image>
|
| | | <video v-if="item.type == 1" @click="videoClick(item, i)" :src="item.fileurlFull" :controls="false"></video>
|
| | | </view>
|
| | | </view>
|
| | |
| | | </view>
|
| | | </view>
|
| | | <view class="emyty"></view>
|
| | | <view class="main_footer">
|
| | | <view class="main_footer" v-if="info.status==0&& info.checkUserId == userInfo.memberId">
|
| | | <view v-if="info.status==0&& info.checkUserId == userInfo.memberId" class="btn" @click="handleBack">退回</view>
|
| | | <view v-if="info.status==0 && info.checkUserId == userInfo.memberId" class="btn transfer" @click="handleTransfer">
|
| | | <view v-if="info.status==0&& info.checkUserId == userInfo.memberId" class="btn transfer" @click="handleTransfer">
|
| | | 转交</view>
|
| | | <view v-if="info.status==0&& info.checkUserId == userInfo.memberId" class="btn handle" @click="handleOpen">处理
|
| | | </view>
|
| | |
| | | <view class="adduser_list_item_ipt1_upload" v-for="(item, i) in dealBeforeFileList" :key="i">
|
| | | <u-icon class="close" size="20" name="close-circle-fill" color="red"
|
| | | @click="fileDel('dealBeforeFileList', i)"></u-icon>
|
| | | <image v-if="item.type == 0" @click="priviewImage(item.fileurlFull)" :src="item.fileurlFull" mode="widthFix"></image>
|
| | | <image v-if="item.type == 0" @click="priviewImage(item.fileurlFull)" :src="item.fileurlFull"
|
| | | mode="widthFix"></image>
|
| | | <video v-if="item.type == 1" @click="videoClick(item, i)" :src="item.fileurlFull" :controls="false"></video>
|
| | | </view>
|
| | | </view>
|
| | |
| | | @cancel="isShowHandleDate = false" mode="datetime"></u-datetime-picker>
|
| | | <!-- -->
|
| | |
|
| | | <!-- <view v-show="videoPlay" class="video_app">
|
| | | <video controls id="myvideo" :src="videoUrl" @fullscreenchange="screenChange"></video>
|
| | | </view> -->
|
| | | <view v-if="videoPlay" class="video_app" >
|
| | | <video controls autoplay muted x5-video-player-type="h5" |
| | | x5-video-player-fullscreen="true" id="myvideo" :src="videoUrl" @fullscreenchange="screenChange"></video> |
| | | <view class="bg" @click="closeVideo"></view>
|
| | | </view>
|
| | | </view>
|
| | | </template>
|
| | |
|
| | |
| | | memberList: [],
|
| | |
|
| | | videoPlay: false,
|
| | | videoContext: null, |
| | | videoContext: null,
|
| | | videoUrl: ''
|
| | | };
|
| | | },
|
| | |
| | | //退出全屏
|
| | | this.videoPlay = false; // 隐藏播放盒子
|
| | | }
|
| | | }, |
| | | closeVideo() { |
| | | this.videoPlay = false |
| | | this.videoContext = null |
| | | },
|
| | | videoClick(item, i) {
|
| | | this.videoContext = uni.createVideoContext("myvideo", this); // this这个是实例对象 必传
|
| | | console.log(item) |
| | | this.videoPlay = true;
|
| | | this.videoContext = uni.createVideoContext("myvideo", this); // this这个是实例对象 必传
|
| | | this.videoUrl = item.fileurlFull;
|
| | | this.videoContext.requestFullScreen(); |
| | | this.$nextTick(() => { |
| | | this.videoContext.play(); |
| | | }) |
| | | |
| | | this.videoContext.requestFullScreen();
|
| | | this.$nextTick(() => {
|
| | | this.videoContext.play();
|
| | | })
|
| | |
|
| | | },
|
| | | handleOpen() {
|
| | | this.isShowHandle = true;
|
| | | const submitFileList = this.info.submitFileList || [] |
| | | this.dealBeforeFileList = [...submitFileList]
|
| | | const submitFileList = this.info.submitFileList || []
|
| | | this.dealBeforeFileList = [...submitFileList]
|
| | | this.submitFileList = [...submitFileList];
|
| | | this.$set(this.handleParam, 'dealTime', dayjs().format('YYYY-MM-DD HH:mm:ss'));
|
| | | },
|
| | |
| | |
|
| | | .flow_wrap {
|
| | | padding: 30rpx 0 90rpx;
|
| | | |
| | |
|
| | | .list {
|
| | | .item {
|
| | | display: flex;
|
| | |
| | | height: 80rpx;
|
| | | position: relative;
|
| | | margin-right: 20rpx;
|
| | | |
| | |
|
| | | .img {
|
| | | width: 80rpx;
|
| | | height: 80rpx;
|
| | |
| | | border-radius: 50%;
|
| | | position: absolute;
|
| | | right: 0;
|
| | | bottom: 0; |
| | | bottom: 0;
|
| | | z-index: 999;
|
| | | }
|
| | | }
|
| | |
| | | background: #f7f7f7;
|
| | | color: #666666;
|
| | | font-size: 22rpx;
|
| | | display: flex; |
| | | display: flex;
|
| | | border-radius: 4rpx;
|
| | | flex-direction: column;
|
| | | align-items: center;
|
| | |
| | | margin-right: 0;
|
| | | }
|
| | | }
|
| | | .video_wrap{ |
| | | position: relative; |
| | | border: 1px solid; |
| | | width: 156rpx; |
| | | height: 156rpx; |
| | | border-radius: 4rpx; |
| | | .play{ |
| | | width: 60rpx; |
| | | height: 60rpx; |
| | | position: absolute; |
| | | top: 50%; |
| | | left: 50%; |
| | | transform: translate(-50%, -50%); |
| | | } |
| | |
|
| | | .video_wrap {
|
| | | position: relative;
|
| | | border: 1px solid;
|
| | | width: 156rpx;
|
| | | height: 156rpx;
|
| | | border-radius: 4rpx;
|
| | |
|
| | | .play {
|
| | | width: 60rpx;
|
| | | height: 60rpx;
|
| | | position: absolute;
|
| | | top: 50%;
|
| | | left: 50%;
|
| | | transform: translate(-50%, -50%);
|
| | | }
|
| | | }
|
| | |
|
| | | .img {
|
| | | width: 100%;
|
| | | max-height: 100%;
|
| | |
| | | .main_footer {
|
| | | position: fixed;
|
| | | bottom: 0;
|
| | | width: 100%; |
| | | width: 100%;
|
| | | z-index: 9999;
|
| | | left: 0;
|
| | | padding: 30rpx 10rpx 60rpx;
|
| | |
| | | color: #333333;
|
| | | }
|
| | | }
|
| | | .video_app{ |
| | | position: absolute; |
| | | left: 0; |
| | | top: 0; |
| | | width: 100vw; |
| | |
|
| | | .video_app { |
| | | overflow: hidden;
|
| | | position: fixed;
|
| | | left: 0;
|
| | | top: 0;
|
| | | width: 100vw;
|
| | | height: 100vh; |
| | | video{ |
| | | display: flex; |
| | | align-items: center;
|
| | | .bg{ |
| | | background-color: rgba(0,0,0,.6); |
| | | position: absolute; |
| | | width: 100%; |
| | | height: 100%; |
| | | } |
| | | z-index: -1; |
| | | }
|
| | | video {
|
| | | width: 100%;
|
| | | height: 42vh;
|
| | | }
|
| | | }
|
| | |
|
| | | .Transfer_footer {
|
| | | display: flex;
|
| | |
|
| | |
| | | </script> |
| | | <style lang="scss" scoped> |
| | | .box { |
| | | padding: 30rpx; |
| | | .line { |
| | | margin-bottom: 16rpx; |
| | | } |
| | | padding: 0 30rpx; |
| | | } |
| | | </style> |
| | |
| | | <image src="@/static/ic_shaixuan@2x.png" mode=""></image>
|
| | | <text>筛选</text>
|
| | | </view>
|
| | | </view>
|
| | | </view> |
| | | <view @click="diaodu" class="head_title">分中心调度联系方式</view>
|
| | | <!-- -->
|
| | | <scroll-view scroll-y="true" class="scroll_Y" @scrolltolower="scrolltolower">
|
| | | <view class="main_list">
|
| | |
| | | form: {},
|
| | | provinceList: [
|
| | | [
|
| | | '安徽省', '江苏省', '浙江省', '河北省', '山西省', '北京', '天津', '上海', '重庆', '辽宁省', '吉林省', '黑龙江省', '福建省', '江西省', '山东省',
|
| | | '河南省', '湖北省', '湖南省', '广东省', '海南省', '四川省', '贵州省', '云南省', '陕西省', '甘肃省', '青海省', '台湾省', '内蒙古自治区', '广西壮族自治区',
|
| | | '安徽', '江苏', '浙江', '河北', '山西', '北京', '天津', '上海', '重庆', '辽宁', '吉林', '黑龙江', '福建', '江西', '山东',
|
| | | '河南', '湖北', '湖南', '广东', '海南', '四川', '贵州', '云南', '陕西', '甘肃', '青海', '台湾', '内蒙古自治区', '广西壮族自治区',
|
| | | '西藏自治区', '宁夏回族自治区', '新疆维吾尔自治区'
|
| | | ]
|
| | | ]
|
| | |
| | | this.list = [] |
| | | this.showModal = false |
| | | this.getList() |
| | | }, |
| | | diaodu() { |
| | | uni.navigateTo({ |
| | | url: '/pages/staff/signin' |
| | | }) |
| | | },
|
| | | modalSub() {
|
| | | this.handleQuery()
|
| | |
| | | page {
|
| | | background: #F7F7F7;
|
| | | }
|
| | |
|
| | | .head_title{ |
| | | color: $uni-color-primary; |
| | | text-decoration-line: underline; |
| | | margin-top: 20rpx; |
| | | }
|
| | | .head_wrap {
|
| | | display: flex;
|
| | | align-items: center;
|
| | |
| | |
|
| | | .scroll_Y {
|
| | | background-color: #f7f7f7;
|
| | |
|
| | | height: calc(100vh - 130rpx);
|
| | | height: calc(100vh - 180rpx); |
| | | margin-top: 10rpx;
|
| | |
|
| | | .main_list {
|
| | | width: 750rpx;
|
| | |
| | | <template>
|
| | | <view class="main_app">
|
| | | <!-- <image class="bg" src="@/static/wuliuche_bg@2x.png" mode="widthFix"></image> -->
|
| | | <map id="map" :latitude="latitude" :longitude="longitude" :polyline="polyline" :markers="markers" :scale="4">
|
| | | <map id="map" :latitude="latitude" :longitude="longitude" :polyline="polyline" :markers="markers" :scale="scale">
|
| | |
|
| | | </map>
|
| | | <view class="main_content"> |
| | | <view class="info"> |
| | | <view class="head"> |
| | | <view class="code">{{info.contractNumber}}</view> |
| | | <view class="status">{{info.orderStatusDesc}}</view> |
| | | </view> |
| | | <view class="content"> |
| | | <view class="line"> |
| | | <view class="la">发货地</view> |
| | | <view class="val">{{info.deliveryEnterprise || '-'}}</view> |
| | | </view> |
| | | <view class="line"> |
| | | <view class="la">到货地</view> |
| | | <view class="val">{{info.receiveEnterprise || '-'}}</view> |
| | | </view> |
| | | <view class="line"> |
| | | <view class="la">车牌号</view> |
| | | <view class="val">{{info.plateName || '-'}}</view> |
| | | </view> |
| | | <view class="line"> |
| | | <view class="la">司机信息</view> |
| | | <view class="val" @click="callPhone(info.driverTel)">{{ info.driverName }} <text class="primaryColor ml12">{{info.driverTel}}</text> </view> |
| | | </view> |
| | | <view class="line"> |
| | | <view class="la">车辆位置</view> |
| | | <view class="val">{{'-'}}</view> |
| | | </view> |
| | | <view class="line"> |
| | | <view class="la">预计到达</view> |
| | | <view class="val">{{info.plannedArrivedDate}}</view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | <view class="drive_info"> |
| | | <view class="title">物流信息</view> |
| | | <view class="drive_list" v-for="dri,k in info.cicleStatusList"> |
| | | <view class="separate"></view> |
| | | <view class="item_title"> |
| | | <view class="icon_wrap"> |
| | | <image v-if="dri.key == 0 && k != 0" src="@/static/waybill/ic_dingdan@2x.png" class="icon"></image> |
| | | <image v-if="dri.key == 0 && k == 0" src="@/static/waybill/ic_dingdan_sel@2x.png" class="icon"></image> |
| | | <image v-if="dri.key == 1 && k != 0" src="@/static/waybill/ic_peizai@2x.png" class="icon"></image> |
| | | <image v-if="dri.key == 1 && k == 0" src="@/static/waybill/ic_peizai_sel@2x.png" class="icon"></image> |
| | | <image v-if="dri.key == 2 && k != 0" src="@/static/waybill/ic_cangku@2x.png" class="icon"></image> |
| | | <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" 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 class="" :class="{primaryColor: k == 0}">{{dri.name}}</view> |
| | | </view> |
| | | <view class="item" v-for="item,i in dri.secondList"> |
| | | <view class="h2" v-if="item.orderStatusDes"> |
| | | <view class="icon_wrap" v-if="i != 0"> |
| | | <image src="@/static/driver/ic_mostarted.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> |
| | | <text v-if="item.tel" @click="callPhone(item.tel)" class="primaryColor">{{item.tel}}</text> |
| | | </view> |
| | | </view> |
| | | <view class="time">{{item.recordDate}}</view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | <view class="main_content">
|
| | | <view class="info">
|
| | | <view class="head">
|
| | | <view class="code">{{info.contractNumber}}</view>
|
| | | <view class="status">{{info.orderStatusDesc}}</view>
|
| | | </view>
|
| | | <view class="content">
|
| | | <view class="line">
|
| | | <view class="la">发货地</view>
|
| | | <view class="val">{{info.deliveryEnterprise || '-'}}</view>
|
| | | </view>
|
| | | <view class="line">
|
| | | <view class="la">到货地</view>
|
| | | <view class="val">{{info.receiveEnterprise || '-'}}</view>
|
| | | </view>
|
| | | <view class="line">
|
| | | <view class="la">车牌号</view>
|
| | | <view class="val">{{info.plateName || '-'}}</view>
|
| | | </view>
|
| | | <view class="line">
|
| | | <view class="la">司机信息</view>
|
| | | <view class="val" @click="callPhone(info.driverTel)">{{ info.driverName }} <text
|
| | | class="primaryColor ml12">{{info.driverTel}}</text> </view>
|
| | | </view>
|
| | | <view class="line">
|
| | | <view class="la">车辆位置</view>
|
| | | <view class="val">{{'-'}}</view>
|
| | | </view>
|
| | | <view class="line">
|
| | | <view class="la">预计到达</view>
|
| | | <view class="val primaryColor" v-if="info.plannedArrivedDate">{{info.plannedArrivedDate.slice(0,11)}}</view>
|
| | | </view>
|
| | | </view>
|
| | | </view>
|
| | | <view class="drive_info">
|
| | | <view class="title">物流信息</view>
|
| | | <view class="drive_list" v-for="dri,k in info.cicleStatusList">
|
| | | <view class="separate"></view>
|
| | | <view class="item_title">
|
| | | <view class="icon_wrap">
|
| | | <image v-if="dri.key == 0 && k != 0" src="@/static/waybill/ic_dingdan@2x.png" class="icon"></image>
|
| | | <image v-if="dri.key == 0 && k == 0" src="@/static/waybill/ic_dingdan_sel@2x.png" class="icon"></image>
|
| | | <image v-if="dri.key == 1 && k != 0" src="@/static/waybill/ic_peizai@2x.png" class="icon"></image>
|
| | | <image v-if="dri.key == 1 && k == 0" src="@/static/waybill/ic_peizai_sel@2x.png" class="icon"></image>
|
| | | <image v-if="dri.key == 2 && k != 0" src="@/static/waybill/ic_cangku@2x.png" class="icon"></image>
|
| | | <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" 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 class="" :class="{primaryColor: k == 0}">{{dri.name}}</view>
|
| | | </view>
|
| | | <view class="item" v-for="item,i in dri.secondList">
|
| | | <view class="h2" v-if="item.orderStatusDes">
|
| | | <view class="icon_wrap" v-if="i != 0">
|
| | | <image src="@/static/driver/ic_mostarted.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>
|
| | | <text v-if="item.tel" @click="callPhone(item.tel)" class="primaryColor">{{item.tel}}</text>
|
| | | </view>
|
| | | </view>
|
| | | <view class="time">{{item.recordDate}}</view>
|
| | | </view>
|
| | | </view>
|
| | | </view>
|
| | | </view>
|
| | | </view>
|
| | | </template>
|
| | |
| | | param: {},
|
| | |
|
| | | latitude: 31.783205,
|
| | | longitude: 117.262635,
|
| | | longitude: 117.262635, |
| | | scale: 5,
|
| | | markers: [],
|
| | | includePoints: [
|
| | | // {latitude: 31.783205, longitude: 117.262635}, {latitude: 36.783205, longitude: 118.10},
|
| | |
| | | bgColor: '#FF0000'
|
| | | }
|
| | | })
|
| | | this.latitude = (Number(this.markers[0].latitude) + Number(this.markers[1].latitude)) / 2 - 8
|
| | | this.longitude = (Number(this.markers[0].longitude) + Number(this.markers[1].longitude)) / 2
|
| | | 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 |
| | | }
|
| | | }
|
| | | 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) {
|
| | | this.polyline = []
|
| | | let temp = {
|
| | | color: '#ff0000',
|
| | | width: 3,
|
| | | points: this.gisInfo.gisList.map(item => {
|
| | | return {
|
| | | latitude: item.lat,
|
| | | longitude: item.lon,
|
| | | }
|
| | | })
|
| | | }
|
| | | this.polyline.push(temp)
|
| | | }
|
| | | }
|
| | | })
|
| | | }, |
| | | callPhone(phone){ |
| | | uni.makePhoneCall({ |
| | | phoneNumber: phone |
| | | }); |
| | | },
|
| | | distance() {
|
| | | const {
|
| | | latitude: lat1,
|
| | | longitude: lng1
|
| | | } = this.markers[0];
|
| | | const {
|
| | | latitude: lat2,
|
| | | longitude: lng2
|
| | | } = this.markers[1];
|
| | | const radLat1 = this.rad(lat1);
|
| | | const radLat2 = this.rad(lat2);
|
| | | const a = radLat1 - radLat2;
|
| | | const b = this.rad(lng1) - this.rad(lng2);
|
| | | const Haversin = Math.pow(Math.sin(a / 2), 2) + Math.cos(radLat1) * Math.cos(radLat2) * Math.pow(Math.sin(b / 2),
|
| | | 2);
|
| | | const radius = 6378137; // 地球半径
|
| | | return 2 * radius * Math.asin(Math.sqrt(Haversin));
|
| | | },
|
| | | rad(d) {
|
| | | return d * Math.PI / 180.0;
|
| | | },
|
| | | callPhone(phone) {
|
| | | uni.makePhoneCall({
|
| | | phoneNumber: phone
|
| | | });
|
| | | }
|
| | | }
|
| | | }
|
| | |
| | | background-color: #f7f7f7;
|
| | | }
|
| | |
|
| | | .main_app { |
| | | padding: 0;
|
| | | .main_app {
|
| | | padding-top: 45vh;
|
| | | .main_content{ |
| | | height: 55vh ; |
| | | overflow: auto; |
| | | padding: 20rpx 30rpx 0; |
| | | position: relative; |
| | | z-index: 999; |
| | | }
|
| | |
|
| | | // .main_content{
|
| | | // height: 55vh ;
|
| | | // overflow: auto;
|
| | | // padding: 20rpx 30rpx 0;
|
| | | // position: relative;
|
| | | // z-index: 999;
|
| | | // }
|
| | | #map {
|
| | | width: 750rpx;
|
| | | position: absolute;
|
| | | position: fixed;
|
| | | left: 0;
|
| | | top: 0;
|
| | | height: 105vh;
|
| | |
| | | margin-bottom: 20rpx;
|
| | | position: relative;
|
| | | z-index: 999;
|
| | | .separate { |
| | | height: calc( 100% - 250rpx ); |
| | | width: 1rpx; |
| | | border: 1rpx dashed #CCCCCC; |
| | | position: absolute; |
| | | left: 53rpx; |
| | | top: 102rpx; |
| | | z-index: -1; |
| | |
|
| | | .separate {
|
| | | height: calc(100% - 250rpx);
|
| | | width: 1rpx;
|
| | | border: 1rpx dashed #CCCCCC;
|
| | | position: absolute;
|
| | | left: 53rpx;
|
| | | top: 102rpx;
|
| | | z-index: -1;
|
| | | }
|
| | |
|
| | | .title {
|
| | | font-weight: 500;
|
| | | font-size: 32rpx;
|
| | |
| | |
|
| | | .val {}
|
| | | }
|
| | | .item_title{ |
| | | font-weight: 600; |
| | | font-size: 32rpx; |
| | | display: flex; |
| | | align-items: center; |
| | | } |
| | | .icon_wrap { |
| | | width: 48rpx; |
| | | margin-right: 30rpx; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | .icon { |
| | | width: 48rpx; |
| | | height: 48rpx; |
| | | position: relative; |
| | | z-index: 2; |
| | | } |
| | |
|
| | | .item_title {
|
| | | font-weight: 600;
|
| | | font-size: 32rpx;
|
| | | display: flex;
|
| | | align-items: center;
|
| | | }
|
| | |
|
| | | .icon_wrap {
|
| | | width: 48rpx;
|
| | | margin-right: 30rpx;
|
| | | display: flex;
|
| | | align-items: center;
|
| | | justify-content: center;
|
| | |
|
| | | .icon {
|
| | | width: 48rpx;
|
| | | height: 48rpx;
|
| | | position: relative;
|
| | | z-index: 2;
|
| | | }
|
| | | }
|
| | |
|
| | | .item {
|
| | | position: relative;
|
| | | color: #999999;
|
| | | margin-bottom: 30rpx; |
| | | .text{ |
| | | color: #666666; |
| | | margin-bottom: 30rpx;
|
| | |
|
| | | .text {
|
| | | color: #666666;
|
| | | }
|
| | | .icon { |
| | | width: 20rpx; |
| | | height: 20rpx; |
| | | position: relative; |
| | | z-index: 2; |
| | |
|
| | | .icon {
|
| | | width: 20rpx;
|
| | | height: 20rpx;
|
| | | position: relative;
|
| | | z-index: 2;
|
| | | }
|
| | |
|
| | | .h2 {
|
| | | display: flex;
|
| | | align-items: center;
|
| | | height: 48rpx;
|
| | | }
|
| | |
|
| | | .h1 {
|
| | | }
|
| | | .h1 {}
|
| | |
|
| | | .time {
|
| | | padding-left: 78rpx;
|
| | |
| | | |
| | | export const baseUrl = 'zhyq_interface/' |
| | | // export const baseUrl = 'zhyq_interface/' |
| | | // export const baseUrl = 'http://192.168.0.173/gateway_interface/' |
| | | // export const baseUrl = 'http://10.50.250.253:8088/gateway_interface/' |
| | | // export const baseUrl = 'https://atwl.ahzyssl.com/zhyq_interface/' |
| | | export const baseUrl = 'https://atwl.ahzyssl.com/zhyq_interface/' |
| | | |
| | | export const app_url = 'https://atwl.ahzyssl.com/zhyq_h5/#/' |
| | | |
| | |
| | | // 能耗看板 实时负荷曲线 |
| | | export const zxloadCurve = (data) => { |
| | | return request('visitsAdmin/cloudService/board/api/energy/loadCurve', data) |
| | | } |
| | | // 能耗看板 实时负荷曲线 |
| | | export const regionDataRanking = (data) => { |
| | | return request('visitsAdmin/cloudService/board/api/energy/regionDataRanking', data) |
| | | } |
| | |
| | | </div> |
| | | <div class="center_box_two"> |
| | | <img class="bg" src="@/assets/images/img_city@2x.png" alt="" /> |
| | | <template v-if="data6 && data6.secondRegionDataList && data6.secondRegionDataList.length > 0"> |
| | | <div class="item item1"> |
| | | <div class="num fs_linear">{{ data6.secondRegionDataList[0].value }}<span class="unit">kw·h</span></div> |
| | | <div class="name">{{ data6.secondRegionDataList[0].name }}</div> |
| | | <template v-if="data6 && data6 && data6.length > 0"> |
| | | <div class="item item1" v-if="data6.length > 4"> |
| | | <div class="num fs_linear">{{ data6[4].value }}<span class="unit">kw·h</span></div> |
| | | <div class="name">{{ data6[4].name }}</div> |
| | | <img src="@/assets/images/bg_data@2x.png" class="bg" alt="" /> |
| | | </div> |
| | | <div class="item item2" v-if="data6.secondRegionDataList.length > 1"> |
| | | <div class="num fs_linear">{{ data6.secondRegionDataList[1].value }}<span class="unit">kw·h</span></div> |
| | | <div class="name">{{ data6.secondRegionDataList[1].name }}</div> |
| | | <div class="item item2" v-if="data6.length > 1"> |
| | | <div class="num fs_linear">{{ data6[1].value }}<span class="unit">kw·h</span></div> |
| | | <div class="name">{{ data6[1].name }}</div> |
| | | <img src="@/assets/images/bg_data@2x.png" class="bg" alt="" /> |
| | | </div> |
| | | <div class="item item3" v-if="data6.secondRegionDataList.length > 2"> |
| | | <div class="num fs_linear">{{ data6.secondRegionDataList[2].value }}<span class="unit">kw·h</span></div> |
| | | <div class="name">{{ data6.secondRegionDataList[2].name }}</div> |
| | | <div class="item item3" v-if="data6.length > 2"> |
| | | <div class="num fs_linear">{{ data6[2].value }}<span class="unit">kw·h</span></div> |
| | | <div class="name">{{ data6[2].name }}</div> |
| | | <img src="@/assets/images/bg_data@2x.png" class="bg" alt="" /> |
| | | </div> |
| | | <div class="item item4" v-if="data6.secondRegionDataList.length > 3"> |
| | | <div class="num fs_linear">{{ data6.secondRegionDataList[3].value }}<span class="unit">kw·h</span></div> |
| | | <div class="name">{{ data6.secondRegionDataList[3].name }}</div> |
| | | <div class="item item4" v-if="data6.length > 3"> |
| | | <div class="num fs_linear">{{ data6[3].value }}<span class="unit">kw·h</span></div> |
| | | <div class="name">{{ data6[3].name }}</div> |
| | | <img src="@/assets/images/bg_data@2x.png" class="bg" alt="" /> |
| | | </div> |
| | | <div class="item item5" v-if="data6.secondRegionDataList.length > 4"> |
| | | <div class="num fs_linear">{{ data6.secondRegionDataList[4].value }}<span class="unit">kw·h</span></div> |
| | | <div class="name">{{ data6.secondRegionDataList[4].name }}</div> |
| | | <div class="item item5"> |
| | | <div class="num fs_linear">{{ data6[0].value }}<span class="unit">kw·h</span></div> |
| | | <div class="name">{{ data6[0].name }}</div> |
| | | <img src="@/assets/images/bg_data@2x.png" class="bg" alt="" /> |
| | | </div> |
| | | </template> |
| | | <div class="bottom_wrap" v-if="data1.yesterdayElectricity"> |
| | | <div class="bottom bottom1"> |
| | | <div class="num fs_linear">{{ data1.yesterdayElectricity.total || 0 }}</div> |
| | | <div class="bottom bottom1" @click="changeacDay(3)"> |
| | | <div :class="{active: activeDays == 3}" class="num fs_linear">{{ data1.yesterdayElectricity.total || 0 }}</div> |
| | | <div class="name">昨日用电</div> |
| | | <div class="unit">kw·h</div> |
| | | <img src="@/assets/images/ic_dianliang_b@2x.png" class="bg" alt="" /> |
| | | <img v-if="activeDays == 3" src="@/assets/images/ic_dianliang@2x.png" class="bg" alt="" /> |
| | | <img v-else src="@/assets/images/ic_dianliang_b@2x.png" class="bg" alt="" /> |
| | | </div> |
| | | <div class="bottom bottom2"> |
| | | <div class="num">{{ data1.todayElectricity.total || 0 }}</div> |
| | | <div class="bottom bottom2" @click="changeacDay(1)"> |
| | | <div :class="{active: activeDays == 1}" class="num">{{ data1.todayElectricity.total || 0 }}</div> |
| | | <div class="name">今日用电</div> |
| | | <div class="unit">kw·h</div> |
| | | <img src="@/assets/images/ic_dianliang@2x.png" class="bg" alt="" /> |
| | | <img v-if="activeDays == 1" src="@/assets/images/ic_dianliang@2x.png" class="bg" alt="" /> |
| | | <img v-else src="@/assets/images/ic_dianliang_b@2x.png" class="bg" alt="" /> |
| | | </div> |
| | | <div class="bottom bottom3"> |
| | | <div class="num fs_linear">{{ data1.monthElectricity.total || 0 }}</div> |
| | | <div class="bottom bottom3" @click="changeacDay(2)"> |
| | | <div :class="{active: activeDays == 2}" class="num fs_linear">{{ data1.monthElectricity.total || 0 }}</div> |
| | | <div class="name">本月用电</div> |
| | | <div class="unit">kw·h</div> |
| | | <img src="@/assets/images/ic_dianliang_b@2x.png" class="bg" alt="" /> |
| | | <img v-if="activeDays == 2" src="@/assets/images/ic_dianliang@2x.png" class="bg" alt="" /> |
| | | <img v-else src="@/assets/images/ic_dianliang_b@2x.png" class="bg" alt="" /> |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | zxenergyDataList, |
| | | zxlastMonthOil, |
| | | zxloadCurve, |
| | | zxenergyRegionData |
| | | zxenergyRegionData, |
| | | regionDataRanking |
| | | } from '@/api' |
| | | |
| | | |
| | |
| | | data1.value = result |
| | | }) |
| | | } |
| | | const activeDays = ref('1') |
| | | const data6 = ref({}) |
| | | const changeacDay = (val) => { |
| | | activeDays.value = val |
| | | getData6() |
| | | } |
| | | const getData6 = () => { |
| | | zxenergyRegionData().then(res => { |
| | | regionDataRanking({type: activeDays.value}).then(res => { |
| | | const result = res.data |
| | | data6.value = result |
| | | }) |
| | | } |
| | | |
| | | |
| | | const activeTab2 = ref(0) |
| | | const tabsClick2 = (v) => { |
| | |
| | | position: absolute; |
| | | text-align: center; |
| | | padding-top: 70px; |
| | | |
| | | cursor: pointer; |
| | | .num { |
| | | font-size: 24px; |
| | | color: #D0FFFA; |
| | |
| | | .unit { |
| | | font-size: 14px; |
| | | color: #D0FFFA; |
| | | } |
| | | .active { |
| | | font-size: 36px; |
| | | color: #01D9FE; |
| | | font-weight: bold; |
| | | margin-bottom: 10px; |
| | | } |
| | | } |
| | | |
| | |
| | | bottom: -0px; |
| | | left: 50%; |
| | | transform: translate(-50%, 0); |
| | | padding-top: 50px; |
| | | /* padding-top: 50px; */ |
| | | |
| | | .num { |
| | | font-size: 36px; |
| | | color: #01D9FE; |
| | | line-height: 54px; |
| | | font-weight: bold; |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | <div class="main_app"> |
| | | <img src="@/assets/images/energy_ef/bg@2x.png" class="main_bg" alt="" /> |
| | | <div class="main_header"> |
| | | <!-- <img src="@/assets/images/maintitle.gif" class="main_header_bg" alt="" /> --> |
| | | <img src="@/assets/images/maintitle.gif" class="main_header_bg" alt="" /> |
| | | <div class="title">安泰智慧物流园区-调度能效跟踪</div> |
| | | <div class="time_wrap"> |
| | | <span class="date">{{ date }}</span> |
| | |
| | | <img v-else src="@/assets/images/ic_down.png" class="icon" alt=""> |
| | | </template> |
| | | <template v-if="activeTab1 == 1 && data1.yearLastOutTotal"> |
| | | <img v-if="data1.yearOutTotal > data1.yearLastOutTotal" src="@/assets/images/ic_up.png" |
| | | class="icon" alt=""> |
| | | <img v-if="data1.yearOutTotal > data1.yearLastOutTotal" src="@/assets/images/ic_up.png" class="icon" |
| | | alt=""> |
| | | <img v-else src="@/assets/images/ic_down.png" class="icon" alt=""> |
| | | </template> |
| | | |
| | | <span v-if="activeTab1 == 0 && data1.monthLastOutTotal">{{ Math.abs((((data1.monthOutTotal - data1.monthLastOutTotal)/data1.monthLastOutTotal) * 100).toFixed(1)) }}%</span> |
| | | <span v-else-if="activeTab1 == 1 && data1.yearLastOutTotal">{{ Math.abs((((data1.yearOutTotal - data1.yearLastOutTotal)/data1.yearLastOutTotal) * 100).toFixed(1)) }}%</span> |
| | | |
| | | <span v-if="activeTab1 == 0 && data1.monthLastOutTotal">{{ Math.abs((((data1.monthOutTotal - |
| | | data1.monthLastOutTotal) / data1.monthLastOutTotal) * 100).toFixed(1)) }}%</span> |
| | | <span v-else-if="activeTab1 == 1 && data1.yearLastOutTotal">{{ Math.abs((((data1.yearOutTotal - |
| | | data1.yearLastOutTotal) / data1.yearLastOutTotal) * 100).toFixed(1)) }}%</span> |
| | | <span v-else>-</span> |
| | | </div> |
| | | </div> |
| | |
| | | <img src="@/assets/images/energy_ef/ic_chukuxiaolv@2x.png" alt=""> |
| | | <div class="content"> |
| | | <div class="name">出库效率</div> |
| | | <div class="num"><span>{{ activeTab12 == 0 ? data1.todayOutRate : data1.monthOutRate }}</span>万支/小时 |
| | | <div class="num"><span>{{ activeTab12 == 0 ? data1.todayOutRate || 0 : data1.monthOutRate || 0 |
| | | }}</span>万支/小时 |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | <img src="@/assets/images/energy_ef/ic_rukuxiaolv@2x.png" alt=""> |
| | | <div class="content"> |
| | | <div class="name">入库效率</div> |
| | | <div class="num"><span class="today">{{ activeTab12 == 0 ? data1.todayInRate : data1.monthInRate |
| | | <div class="num"><span class="today">{{ activeTab12 == 0 ? data1.todayInRate || 0 : data1.monthInRate |
| | | || 0 |
| | | }}</span>万支/小时</div> |
| | | </div> |
| | | </div> |
| | |
| | | <div class="repertory"> |
| | | <div class="use_ratio"> |
| | | <div class="header"> |
| | | <div>库存量 <span class="num">{{ data1.stockTotal }}/{{ data1.stockMax }}</span></div> |
| | | <div v-if="data1.stockTotal && data1.stockMax">利用率{{ ((data1.stockTotal / data1.stockMax) * |
| | | 100).toFixed(0) }}%</div> |
| | | <div>库存量 <span class="num">{{ data6.num }}/{{ data6.totalNum }}</span></div> |
| | | <div v-if="data6.num && data6.totalNum">利用率{{ (data6.useRate * 100).toFixed(0) }}%</div> |
| | | </div> |
| | | <Percent v-if="data1.stockTotal && data1.stockMax" |
| | | :rate="((data1.stockTotal / data1.stockMax) * 100).toFixed(0)" /> |
| | | <Percent v-if="data6.num && data6.totalNum" :rate="((data6.num / data6.totalNum) * 100).toFixed(0)" /> |
| | | </div> |
| | | <div class="list two-swiper"> |
| | | <div class="swiper-wrapper"> |
| | | <div class="item two-swiper-slide swiper-slide" v-for="item in dataList6"> |
| | | <div class="item two-swiper-slide swiper-slide" v-for="item in data6.stockList"> |
| | | <div class="la">{{ item.name }}</div> |
| | | <div class="val">{{ item.num }}万支</div> |
| | | </div> |
| | |
| | | </div> |
| | | </div> |
| | | <!-- --> |
| | | <div class="modal" v-if="activeCar && activeCar.phone"> |
| | | <div class="modal" v-if="showModal"> |
| | | <div class="title_head"> |
| | | <img src="@/assets/images/energy_ef/chuku_ic_car@2x.png" alt=""> |
| | | <span>皖a222</span> |
| | | <span>{{ activeCar.carCode }}</span> |
| | | </div> |
| | | <div class="info"> |
| | | <div class="item"> |
| | | <div class="dian"></div> |
| | | <div class="la">运输单号:</div> |
| | | <div class="val">22</div> |
| | | <div class="val">{{ activeCar.billCode }}</div> |
| | | </div> |
| | | <div class="item"> |
| | | <div class="dian"></div> |
| | | <div class="la">司机信息:</div> |
| | | <div class="val">22</div> |
| | | <div class="val">{{ activeCar.name }} {{ activeCar.phone }}</div> |
| | | </div> |
| | | <div class="item"> |
| | | <div class="dian"></div> |
| | | <div class="la">总运输量:</div> |
| | | <div class="val">22 万支</div> |
| | | <div class="val" v-if="activeCar.totalNum">{{ activeCar.totalNum }}万支</div> |
| | | </div> |
| | | </div> |
| | | <div class="tabs"> |
| | |
| | | <div :class="{ active: modalTab == 1 }" @click="modalTabClick(1)" class="tab">合同列表</div> |
| | | </div> |
| | | <div class="tab1" v-if="modalTab == 0"> |
| | | <div class="item" v-for="item, i in 3"> |
| | | <div class="icon_wrap"> |
| | | <img v-if="i === 0" class="dian" src="@/assets/images/ic_dangqian@2x.png" alt=""> |
| | | <img v-else src="@/assets/images/ic_jindu@2x.png" class="dian_ac" alt=""> |
| | | <div class="line"></div> |
| | | <template v-for="item, i in activeCar.logList"> |
| | | <div class="item" v-if="i < 4 || showMore"> |
| | | <div class="icon_wrap"> |
| | | <img v-if="i != 0" class="dian" src="@/assets/images/ic_dangqian@2x.png" alt=""> |
| | | <img v-else src="@/assets/images/ic_jindu@2x.png" class="dian_ac" alt=""> |
| | | <div class="line"></div> |
| | | </div> |
| | | <div class="content"> |
| | | <div class="status" :class="{ ac: i == 0 }">{{ statusMapD[item.objType] }}</div> |
| | | <div class="text">{{ item.content }}</div> |
| | | <div class="time">{{ item.createDate }}</div> |
| | | </div> |
| | | </div> |
| | | <div class="content"> |
| | | <div class="status">作业中</div> |
| | | <div class="text">作业任务在【入库去1号月台】开始作业</div> |
| | | <div class="time">2024-04-02 12:00</div> |
| | | </div> |
| | | </template> |
| | | <div class="more_btn" v-if="!showMore && activeCar.logList && activeCar.logList.length > 4" |
| | | @click="showMore = true">查看更多作业信息</div> |
| | | <div class="empty" v-if="!activeCar.contractList || activeCar.logList.contractList == 0"> |
| | | <img src="@/assets/images/default_nodata.png" alt=""> |
| | | </div> |
| | | </div> |
| | | <div class="tab2" v-if="modalTab == 1"> |
| | | <div class="list"> |
| | | <div class="item"> |
| | | <div class="item" v-for="item in activeCar.contractList"> |
| | | <div class="head"> |
| | | <div class="code">合同号:12312312</div> |
| | | <div class="addr">收货地:江门烟草物流中心</div> |
| | | <div class="code">合同号:{{ item.ioCode }}</div> |
| | | <div class="addr">收货地:{{ item.address }}</div> |
| | | </div> |
| | | <div class="line" v-for="i in 3"> |
| | | <div class="name">物料名称:<span class="val">黄山</span></div> |
| | | <div class="num">数量:<span class="val">100万支</span></div> |
| | | <div class="line" v-for="i in item.detailList"> |
| | | <div class="name">物料名称:<span class="val">{{ i.materialName }}</span></div> |
| | | <div class="num">数量:<span class="val">{{ i.ioQty }}万支</span></div> |
| | | </div> |
| | | </div> |
| | | <div class="empty" v-if="!activeCar.contractList || activeCar.logList.contractList == 0"> |
| | | <img src="@/assets/images/default_nodata.png" alt=""> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="modal_mask" v-if="activeCar && activeCar.phone" @click="activeCar = {}"></div> |
| | | <div class="modal_mask" v-if="showModal" @click="closeModal"></div> |
| | | </div> |
| | | </v-scale-screen> |
| | | </template> |
| | |
| | | import 'swiper/css/swiper.min.css' |
| | | import Swiper from 'swiper' |
| | | |
| | | const statusMapD = ['任务生成', '确认任务', '已签到', '入园等待', '月台叫号', '作业中', '作业完成', '月台转移', '异常挂起', '下发授权离园', '离园', '已过号'] |
| | | const colors = ['#FEAF01', '#01ABFE', '#51F9E4'] |
| | | const weekMap = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六',] |
| | | const date = ref(dayjs().format('YYYY.MM.DD')) |
| | |
| | | const scatterData = data7.value.carsList.map(item => { |
| | | return { |
| | | name: item.terminalId, |
| | | img: item.status == 0 ? icLixian : item.status == 1 || item.status == 2 ? icZaitu : icKongxian, |
| | | img: item.jobStatus == 2 ? icLixian : item.jobStatus == 1 ? icZaitu : icKongxian, |
| | | data: [{ code: item.plateNum, value: [item.longitude, item.latitude] }] |
| | | } |
| | | }) |
| | |
| | | myChart.on('click', function (params) { |
| | | const item = params.data |
| | | getCarsJobDetails({ carCode: item.code }).then(res => { |
| | | activeCar.value = res.data |
| | | // getCarsJobDetails({ carCode: '皖AE5277' }).then(res => { |
| | | showModal.value = true |
| | | activeCar.value = { ...res.data, carCode: item.code } |
| | | }) |
| | | }) |
| | | window.addEventListener('resize', function () {//执行 |
| | |
| | | }) |
| | | } |
| | | const activeCar = ref({}) |
| | | const showModal = ref(false) |
| | | const modalTab = ref(0) |
| | | const showMore = ref(false) |
| | | const modalTabClick = (val) => { |
| | | modalTab.value = val |
| | | } |
| | | const closeModal = () => { |
| | | showModal.value = false |
| | | activeCar.value = {} |
| | | } |
| | | |
| | | |
| | |
| | | initEchart1() |
| | | }) |
| | | } |
| | | const dataList6 = ref([]) |
| | | const data6 = ref({}) |
| | | const getData6 = () => { |
| | | wlstockList().then(res => { |
| | | const result = res.data.stockList || [] |
| | | dataList6.value = result |
| | | const result = res.data || [] |
| | | data6.value = result |
| | | }) |
| | | } |
| | | |
| | |
| | | var newSwiper1 = new Swiper('.two-swiper', { |
| | | initialSlide: 0, |
| | | direction: 'vertical', //竖直方向 |
| | | slidesPerView: 7, |
| | | autoplay: autoplayFlag(dataList6.value, 7, 2000), |
| | | slidesPerView: 6, |
| | | autoplay: autoplayFlag(data6.value.stockList, 6, 2000), |
| | | observer: true, //修改swiper自己或子元素时,自动初始化swiperiper |
| | | }) |
| | | } |
| | |
| | | |
| | | .list { |
| | | margin-top: 22px; |
| | | height: 240px; |
| | | height: 216px; |
| | | overflow: hidden; |
| | | scrollbar-width: none; |
| | | |
| | |
| | | } |
| | | |
| | | .tab1 { |
| | | height: 360px; |
| | | overflow: auto; |
| | | |
| | | .more_btn { |
| | | width: 116px; |
| | | height: 25px; |
| | | border-radius: 2px; |
| | | border: 1px solid #D2E0FF; |
| | | font-size: 12px; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | color: D2E0FF; |
| | | margin-left: 30px; |
| | | margin-top: 12px; |
| | | cursor: pointer; |
| | | } |
| | | |
| | | |
| | | .item { |
| | | display: flex; |
| | | |
| | |
| | | color: #fff; |
| | | } |
| | | |
| | | .ac { |
| | | color: #00F2F3; |
| | | } |
| | | |
| | | .text { |
| | | margin-bottom: 4px; |
| | | } |
| | |
| | | } |
| | | |
| | | .tab2 { |
| | | height: 360px; |
| | | overflow: auto; |
| | | |
| | | .list { |
| | | .item { |
| | | width: 560px; |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | .empty { |
| | | display: flex; |
| | | justify-content: center; |
| | | align-items: center; |
| | | height: 340px; |
| | | |
| | | img { |
| | | width: 144px; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .modal_mask { |