| | |
| | | </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 line2" v-if="item.billCode && item.wmsContractNum"> |
| | | <text class="label">合同单号</text> |
| | | <text class="value">{{ item.wmsContractNum }}</text> |
| | | </view>
|
| | | <view class="line">
|
| | | <text class="label">驾驶员</text>
|
| | |
| | | </view>
|
| | | <view class="line">
|
| | | <text class="label">总运输量</text>
|
| | | <text class="value">{{ item.totalNum }}万支</text>
|
| | | <text class="value">{{ item.totalNum || item.ioQty}}万支</text>
|
| | | </view>
|
| | | <view class="line" v-if="item.carrierName">
|
| | | <text class="label">运输公司</text>
|
| | |
| | | <u-icon name="search" class="mr12" size="19" color="#999999" />
|
| | | <input v-model="platformCallSearch" type="text" placeholder="搜索车辆牌照" placeholder-class="placeholder9"
|
| | | @confirm="callQuery" />
|
| | | </view> |
| | | <view v-if="platformCallList.length == 0" class="empty_wrap"> |
| | | <image src="@/static/default_nodata@2x.png" /> |
| | | <text>暂无排队车辆</text> |
| | | </view>
|
| | | <view class="order_list">
|
| | | <scroll-view scroll-y="true" @scrolltolower="callScrolltolower" class="scroll_view">
|
| | |
| | | </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 line2" v-if="item.billCode && item.wmsContractNum"> |
| | | <text class="label">合同单号</text> |
| | | <text class="value">{{ item.wmsContractNum }}</text> |
| | | </view>
|
| | | <view class="line">
|
| | | <text class="label">驾驶员</text>
|
| | |
| | | </view>
|
| | | <view class="line">
|
| | | <text class="label">总运输量</text>
|
| | | <text class="value">{{ item.totalNum }}万支</text>
|
| | | <text class="value">{{ item.totalNum || item.ioQty }}万支</text>
|
| | | </view>
|
| | | <view class="line" v-if="item.carrierName">
|
| | | <text class="label">运输公司</text>
|
| | |
| | | <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="name">{{ item.name }}</view>
|
| | | <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>
|
| | | <image v-if="transformPlatId == item.id" src="@/static/ic_select@2x.png" class="checked" />
|
| | |
| | | callType: 1,
|
| | |
|
| | | transformPlatId: '', // 转移记录月台id
|
| | | transformId: '', // 转移记录任务id |
| | | transformId: '', // 转移记录任务id
|
| | | TransferList: [],
|
| | | wmsInfo: {}, |
| | | timer: null
|
| | | wmsInfo: {},
|
| | | timer: null, |
| | | timer1: null,
|
| | | }
|
| | | },
|
| | | onLoad() {
|
| | | this.getPlatformGroup()
|
| | | // 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() { |
| | | getPlatformWorkData({ |
| | | platformId: this.activePlatform.id |
| | | }).then(res => { |
| | | console.log('res.data', res.data); |
| | | if(res.data && res.data.platformJobList){ |
| | | this.TransferList = res.data.platformJobList |
| | | } |
| | | }) |
| | | 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() |
| | | }, 60 * 1000)
|
| | | this.activePlatform = this.activePlatformGroup.platformList[0]
|
| | | this.getPlatformTask()
|
| | | this.timer = setInterval(() => {
|
| | | this.getPlatformTask()
|
| | | }, 120 * 1000)
|
| | | }
|
| | | }
|
| | | })
|
| | | },
|
| | | getPlatformTask() { |
| | | uni.showLoading({title:"加载中..."})
|
| | | if(this.timer1){ |
| | | clearInterval(this.timer1) |
| | | }
|
| | | getPlatformWorkData({
|
| | | platformId: this.activePlatform.id
|
| | | }).then(res => { |
| | | uni.hideLoading()
|
| | | this.platformTaskInfo = res.data
|
| | | this.circulInitTaskList()
|
| | | setInterval(() => {
|
| | | this.circulInitTaskList()
|
| | | }).then(res => {
|
| | | 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)
|
| | | }, () => { |
| | | uni.hideLoading() |
| | | })
|
| | | }, () => {})
|
| | | },
|
| | | 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()
|
| | | this.platformTaskInfo.platformJobList.forEach(item => { |
| | | if(item.wmsContractNum){ |
| | | item.wmsContractNum = item.wmsContractNum.split(',').join(',') |
| | | }
|
| | | 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() |
| | | }
|
| | | |
| | | })
|
| | | }
|
| | | },
|
| | |
| | | page: platformCallPage
|
| | | }).then(res => {
|
| | | if (res.data && res.data.records) {
|
| | | this.platformCallList = [...this.platformCallList, ...res.data.records]
|
| | | this.platformCallList = [...this.platformCallList, ...res.data.records] |
| | | this.platformCallList.forEach(item => { |
| | | if(item.wmsContractNum){ |
| | | item.wmsContractNum = item.wmsContractNum.split(',').join(',') |
| | | } |
| | | })
|
| | | this.platformCallTotal = res.data.total
|
| | | }
|
| | | })
|
| | |
| | | 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);
|
| | |
| | | flex-wrap: wrap;
|
| | |
|
| | | .item {
|
| | | width: 210rpx;
|
| | | width: 220rpx;
|
| | | height: 80rpx;
|
| | | display: flex;
|
| | | justify-content: center;
|
| | | align-items: center;
|
| | | line-height: 80rpx;
|
| | | text-align: center;
|
| | | background: #ffffff;
|
| | | border-radius: 8rpx;
|
| | | border: 1rpx solid #999999;
|
| | | font-size: 30rpx;
|
| | | color: #222222;
|
| | | margin-bottom: 20rpx;
|
| | | margin-right: 30rpx;
|
| | | margin-bottom: 15rpx;
|
| | | margin-right: 15rpx;
|
| | | 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;
|
| | |
| | | margin-bottom: 20rpx;
|
| | |
|
| | | .label {
|
| | | width: 144rpx;
|
| | | color: #666666;
|
| | | width: 132rpx;
|
| | | color: #666666; |
| | | flex-shrink: 0;
|
| | | }
|
| | |
|
| | | .value {
|
| | | flex: 1;
|
| | | flex: 1; |
| | | display: flex; |
| | | flex-wrap: wrap;
|
| | | }
|
| | | }
|
| | |
|
| | |
| | | .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;
|
| | | }
|
| | | }
|
| | |
| | | .label {
|
| | | font-size: 28rpx;
|
| | | color: #666666;
|
| | | width: 88rpx;
|
| | | width: 88rpx; |
| | | flex-shrink: 0;
|
| | | }
|
| | |
|
| | | .value {
|
| | |
| | | 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;
|
| | |
| | | }
|
| | | }
|
| | | }
|
| | | } |
| | | .line2{ |
| | | margin-right: -30rpx; |
| | | padding-right: 0; |
| | | }
|
| | | </style> |