<template>
|
<view class="appointment">
|
<view class="searchview">
|
<u-search @change="change" :searchIconSize="40" placeholder="请输入车牌号" height="60" clearabled v-model="carNo" @search="search" @custom="custom" @clear="clear" >
|
</u-search >
|
</view>
|
<u-collapse
|
ref="myCollapse"
|
:value='["1"]'
|
>
|
<u-collapse-item
|
ref="collapseHeight"
|
name='1'
|
class="collItem"
|
:title="'待检查车辆'">
|
<view style="position: relative;top: -40px;">
|
<u-empty mode="data"
|
icon="http://cdn.uviewui.com/uview/empty/data.png"
|
textSize="30"
|
iconSize="1000"
|
text="暂无车辆"
|
v-if="driverBillOfLoadingData.length == 0"></u-empty>
|
</view>
|
<view class="collection-form">
|
<view class="collection-form-item"
|
v-for="(item, index) in driverBillOfLoadingData"
|
:key="index">
|
<view class="first-line">
|
<view class="dispatch-receive">
|
<view class="dispatch-dept">{{ item.code || '' }}</view>
|
<view class="black-bar"></view>
|
<view class="dispatch">{{ item.customerName ||'' }}</view>
|
</view>
|
<view class="point-number">
|
<text class="order-type">{{ item.productNames?limitString(item.productNames,20,'...'):'' || '' }}</text>
|
</view>
|
</view>
|
<view class="second-line" v-if="item.splicingOrderId">
|
<text style="color:red">此单包含拼单!</text>
|
</view>
|
<view class="second-line">
|
<view class="coal-name">
|
<view class="dispatch-dept">{{ item.carNo || '' }}</view>
|
<view class="black-bar"></view>
|
<view class="dispatch">{{ item.driver ||'' }}</view>
|
<view class="black-bar"></view>
|
<text>{{ item.phone || '' }}</text>
|
<view class="black-bar"></view>
|
<view class="dispatch-dept">{{ item.orderType || '' }}</view>
|
</view>
|
</view>
|
<view class="second-line">
|
<view class="coal-name">
|
<view>净重:{{item.clean || 0}}</view>
|
<view class="black-bar"></view>
|
<view>数量:{{item.productQuantity || 0}}</view>
|
</view>
|
</view>
|
<view class="third-line">
|
<view class="send-date">{{ item.isEmptyCar?item.isEmptyCar=='0'?'非空车出场':'空车出场':'非空车出场' }}</view>
|
</view>
|
<view class="fourth-line">
|
<view
|
v-if="item.splicingOrderId"
|
@click.stop="checkDetail(item)">
|
<view class="button-image">
|
<u-button type='primary'>查看拼单</u-button>
|
</view>
|
</view>
|
<view class="forward"
|
@click.stop="yuYueBtnClick(item)">
|
<view class="button-image">检查</view>
|
</view>
|
</view>
|
</view>
|
</view>
|
</u-collapse-item>
|
</u-collapse>
|
<u-collapse
|
ref="myCollapse"
|
>
|
<u-collapse-item
|
ref="collapseHeights"
|
name='3'
|
class="collItem"
|
:title="'临时出场车辆'">
|
<view style="position: relative;top: -40px;">
|
<u-empty mode="data"
|
icon="http://cdn.uviewui.com/uview/empty/data.png"
|
textSize="30"
|
iconSize="1000"
|
text="暂无车辆"
|
v-if="driverTemporaryEntry.length == 0"></u-empty>
|
</view>
|
<view class="collection-form">
|
<view class="collection-form-item"
|
v-for="(item, index) in driverTemporaryEntry"
|
:key="index">
|
<view class="second-line">
|
<view class="coal-name">
|
<view class="dispatch-dept">{{ item.carNo || '' }}</view>
|
<view class="black-bar"></view>
|
<view class="dispatch">{{ item.tempEntrancePlan.driver ||'' }}</view>
|
<view class="black-bar"></view>
|
<text>{{ item.tempEntrancePlan.phone || '' }}</text>
|
<view class="black-bar"></view>
|
<view class="dispatch-dept">{{ item.orderType || '' }}</view>
|
</view>
|
</view>
|
<view class="third-line">
|
<view class="time-icon">
|
<view
|
style="width: 24rpx;height: 24rpx;line-height: 24rpx;background: url('https://wrzs.czjlchem.com:9090/appimg/image/banner/clock.png') no-repeat;background-size: cover">
|
</view>
|
</view>
|
<view class="send-date">{{ item.tempEntrancePlan.sendDate }} {{ item.tempEntrancePlan.startTime || '' }}-{{item.tempEntrancePlan.endTime || ""}}</view>
|
</view>
|
<view class="first-line">
|
<view class="dispatch-receive">
|
<view class="dispatch-dept">{{ item.tempEntrancePlan.coalName || '' }}</view>
|
<view class="black-bar"></view>
|
<view class="dispatch">{{ item.tempEntrancePlan.customerName ||'' }}</view>
|
</view>
|
<view class="point-number">
|
<text class="order-type">{{ item.tempEntrancePlan.productNames?limitString(item.tempEntrancePlan.productNames,20,'...'):'' || '' }}</text>
|
</view>
|
</view>
|
<view class="fourth-line">
|
<view class="forward"
|
@click.stop="yuYueLiShBtnClick(item)">
|
<view class="button-image">检查</view>
|
</view>
|
</view>
|
</view>
|
</view>
|
</u-collapse-item>
|
</u-collapse>
|
<u-collapse
|
ref="myCollapse"
|
>
|
<u-collapse-item
|
name='2'
|
class="collItem"
|
:title="'已检查车辆'">
|
<view style="position: relative;top: -40px;">
|
<u-empty mode="data"
|
icon="http://cdn.uviewui.com/uview/empty/data.png"
|
textSize="30"
|
iconSize="1000"
|
text="暂无车辆"
|
v-if="driverBillOfLoadingDatas.length == 0"></u-empty>
|
</view>
|
<view class="collection-form" style="margin-bottom: 60px;">
|
<view class="collection-form-item"
|
v-for="(item, index) in driverBillOfLoadingDatas"
|
:key="index">
|
<view class="first-line">
|
<view class="dispatch-receive">
|
<view class="dispatch-dept">{{ item.code || '' }}</view>
|
<view class="black-bar"></view>
|
<view class="dispatch">{{ item.customerName ||'' }}</view>
|
</view>
|
<view class="point-number">
|
<text class="order-type">{{ item.productNames?limitString(item.productNames,20,'...'):'' || '' }}</text>
|
</view>
|
</view>
|
<view class="second-line" v-if="item.splicingOrderId">
|
<text style="color:red">此单包含拼单!</text>
|
</view>
|
<view class="second-line">
|
<view class="coal-name">
|
<view>净重:{{item.clean|| 0}}</view>
|
<view class="black-bar"></view>
|
<view>数量:{{item.productQuantity|| 0}}</view>
|
</view>
|
</view>
|
<view class="second-line">
|
<view class="coal-name">
|
<view class="dispatch-dept">{{ item.carNo || '' }}</view>
|
<view class="black-bar"></view>
|
<view class="dispatch">{{ item.driver ||'' }}</view>
|
<view class="black-bar"></view>
|
<text>{{ item.phone || '' }}</text>
|
<view class="black-bar"></view>
|
<view class="dispatch-dept">{{ item.orderType || '' }}</view>
|
|
</view>
|
</view>
|
<view class="second-line">
|
<view class="coal-name">
|
<view>净重:{{item.clean|| 0}}</view>
|
<view class="black-bar"></view>
|
<view>数量:{{item.productQuantity|| 0}}</view>
|
</view>
|
</view>
|
<view class="third-line">
|
<view class="time-icon">
|
<view
|
style="width: 24rpx;height: 24rpx;line-height: 24rpx;background: url('https://wrzs.czjlchem.com:9090/appimg/image/banner/clock.png') no-repeat;background-size: cover">
|
</view>
|
</view>
|
<view class="send-date">{{ item.outTime?item.outTime.slice(10,19):null }} </view>
|
</view>
|
<view class="third-line">
|
<view class="send-date">{{ item.isEmptyCar?item.isEmptyCar=='0'?'非空车出场':'空车出场':'非空车出场' }}</view>
|
</view>
|
<view class="fourth-line">
|
<view
|
v-if="item.splicingOrderId"
|
@click.stop="checkDetail(item)">
|
<view class="button-image">
|
<u-button type='primary'>查看拼单</u-button>
|
</view>
|
</view>
|
</view>
|
</view>
|
</view>
|
</u-collapse-item>
|
</u-collapse>
|
<u-popup :show="show"
|
@close="close"
|
@open="open"
|
mode="center"
|
round="10">
|
<view class="receiverPopup">
|
<uni-table border
|
stripe
|
type="selection"
|
@selection-change="selectionChange"
|
emptyText="暂无更多数据">
|
<uni-tr>
|
<uni-th align="center">检测项</uni-th>
|
</uni-tr>
|
<uni-tr v-for="(item, index) in inspectData"
|
:key="item.id">
|
<uni-td align="center">{{ item.title }}</uni-td>
|
</uni-tr>
|
</uni-table>
|
<view class="receiverPopup__title"><text>确定检查完毕</text></view>
|
<view class="receiverPopup__btn"><u-button text="确定"
|
type="primary"
|
@click="popClick"
|
:loading="ClickLoading"></u-button></view>
|
</view>
|
</u-popup>
|
<tab-bar :current="1"></tab-bar>
|
<view class="logoutModel">
|
<u-modal :show="logoutShow"
|
:title="logoutTitle"
|
showCancelButton
|
:content="logoutContent"
|
@confirm="logoutConfirm"
|
@cancel="logoutCancel"></u-modal>
|
</view>
|
<view class="falseModel">
|
<u-modal :show="TemporaryEntryShow"
|
:title="logoutTitle"
|
showCancelButton
|
:content="logoutContent"
|
@confirm="TemporaryEntryConfirm"
|
@cancel="TemporaryEntryCancel"></u-modal>
|
</view>
|
<u-modal :width='750' :show="showModal" :title="title" @confirm='confrim'>
|
<view class="collection-form-item">
|
<view class="first-line">
|
<view class="dispatch-receive">
|
<view class="dispatch-dept">{{ activeObj.code || '' }}</view>
|
<view class="black-bar"></view>
|
<view class="dispatch">{{ activeObj.customerName ||'' }}</view>
|
</view>
|
<view class="point-number">
|
<text class="order-type">{{ activeObj.productNames?limitString(activeObj.productNames,20,'...'):'' || '' }}</text>
|
</view>
|
</view>
|
<view class="second-line" v-if="activeObj.splicingOrderId">
|
<text style="color:red">拼单</text>
|
</view>
|
<view class="second-line">
|
|
<view class="coal-name">
|
<view class="dispatch-dept">{{ activeObj.carNo || '' }}</view>
|
<view class="black-bar"></view>
|
<view class="dispatch">{{ activeObj.driver ||'' }}</view>
|
<view class="black-bar"></view>
|
<text>{{ activeObj.phone || '' }}</text>
|
</view>
|
</view>
|
<view class="third-line">
|
<view class="send-date">{{ activeObj.isEmptyCar?activeObj.isEmptyCar=='0'?'非空车出场':'空车出场':'非空车出场' }}</view>
|
</view>
|
</view>
|
</u-modal>
|
</view>
|
</template>
|
|
<script>
|
export default {
|
components: {
|
},
|
data() {
|
return {
|
door:'',
|
temporaryPlanId:"",
|
show: false, // 弹出全部领取提示
|
showModal:false,
|
title:'拼单',
|
driverBillOfLoadingData:[],
|
driverBillOfLoadingDatas:[],
|
driverTemporaryEntry:[],
|
inspectData:[],
|
isAllSelected:false,
|
form:{},
|
carNo:'',
|
logoutShow: false,
|
TemporaryEntryShow:false,
|
logoutTitle: '提示',
|
logoutContent: '是否检查完毕',
|
previewImageSrc:"",
|
ClickLoading:false,
|
activeObj:{},
|
}
|
},
|
onShow() {
|
this.door=uni.getStorageSync('door', this.door)
|
this.init();
|
},
|
methods: {
|
handleOpenChange() {
|
this.$nextTick(() => {
|
this.$refs.collapseHeight.init()
|
});
|
this.$nextTick(() => {
|
this.$refs.collapseHeights.init()
|
});
|
},
|
limitString(str, limit, suffix = '...') {
|
if (str.length <= limit) return str;
|
return str.slice(0, limit) + suffix;
|
},
|
logoutConfirm() {
|
uni.showLoading({ title: '加载中...' });
|
this.$reqPost('addCheckLog',{
|
carNo:this.form.carNo,
|
taskId:this.form.id,
|
taskcode:this.form.code,
|
}, 'json').then(res => {
|
if (res.code === 0) {
|
uni.$u.toast('检查成功')
|
this.form={}
|
this.ClickLoading = false;
|
this.TaskCoalList()
|
this.logoutShow = false;
|
} else {
|
uni.$u.toast(res.msg ? res.msg : '检查失败')
|
this.logoutShow = false;
|
}
|
})
|
},
|
TemporaryEntryConfirm(){
|
this.$reqPut('temporaryentryinspection',{
|
id:this.temporaryPlanId,
|
}, 'json').then(res => {
|
if (res.code === 0) {
|
uni.$u.toast('检查成功')
|
this.form={}
|
this.ClickLoading = false;
|
this.show = false;
|
this.TaskCoalList()
|
this.TemporaryEntryShow = false;
|
} else {
|
uni.$u.toast(res.msg ? res.msg : '检查失败')
|
this.TemporaryEntryShow = false;
|
}
|
})
|
},
|
logoutCancel() {
|
this.logoutShow = false;
|
},
|
yuYueBtnClick(item){
|
this.logoutShow = true;
|
this.inspectData=[]
|
this.form=item
|
},
|
TemporaryEntryCancel() {
|
this.TemporaryEntryShow = false;
|
},
|
selectionChange(items){
|
const allIds = this.inspectData.map(item => item);
|
this.isAllSelected = items?.detail.index.length === allIds.length
|
},
|
init() {
|
this.isAllSelected=false
|
this.TaskCoalList();
|
this.form={}
|
this.inspectData=[]
|
},
|
yuYueLiShBtnClick(item){
|
this.temporaryPlanId=item.id
|
this.TemporaryEntryShow = true;
|
},
|
popClick() {
|
if(this.isAllSelected==true){
|
this.ClickLoading = true;
|
this.inspectData=this.inspectData.map(item=>{
|
return {
|
...item,
|
valve:"通过"
|
}
|
})
|
uni.showLoading({ title: '加载中...' });
|
this.$reqPost('addCheckLog',{
|
carNo:this.form.carNo,
|
taskId:this.form.id,
|
taskcode:this.form.code,
|
inspectedResult:JSON.stringify(this.inspectData)
|
}, 'json').then(res => {
|
if (res.code === 0) {
|
uni.$u.toast('检查成功')
|
this.form={}
|
this.ClickLoading = false;
|
this.inspectData=[]
|
this.show = false;
|
this.TaskCoalList()
|
} else {
|
uni.$u.toast(res.msg ? res.msg : '检查失败')
|
}
|
})
|
}else{
|
uni.$u.toast('必须全部检测')
|
}
|
},
|
open() {},
|
close() {
|
this.show = false;
|
},
|
// 司机首页列表
|
TaskCoalList() {
|
uni.showLoading({
|
title: '加载中...'
|
});
|
|
if(!this.carNo){
|
this.$reqGet('getCheckTaskCoal',{flag:1,door:this.door}).then(res => {
|
uni.hideLoading();
|
this.driverBillOfLoadingData = res.data;
|
uni.stopPullDownRefresh();
|
this.handleOpenChange();
|
})
|
this.$reqGet('getTemporaryEntryOutInspectionList',{}).then(res => {
|
uni.hideLoading();
|
this.driverTemporaryEntry = res.data;
|
uni.stopPullDownRefresh();
|
this.handleOpenChange();
|
});
|
}else{
|
this.$reqGet('getCheckTaskCoal',{flag:1,carNo:this.carNo,door:this.door}).then(res => {
|
uni.hideLoading();
|
this.driverBillOfLoadingData = res.data;
|
uni.stopPullDownRefresh();
|
this.handleOpenChange();
|
});
|
this.$reqGet('getTemporaryEntryOutInspectionList',{carNo:this.carNo}).then(res => {
|
uni.hideLoading();
|
this.driverTemporaryEntry = res.data;
|
uni.stopPullDownRefresh();
|
this.handleOpenChange();
|
});
|
}
|
if(!this.carNo){
|
this.$reqGet('getAlreadyCheckTaskCoal',{flag:1,door:this.door}).then(res => {
|
uni.hideLoading();
|
this.driverBillOfLoadingDatas = res.data;
|
uni.stopPullDownRefresh();
|
this.handleOpenChange();
|
});
|
}else{
|
this.$reqGet('getAlreadyCheckTaskCoal',{flag:1,carNo:this.carNo,door:this.door}).then(res => {
|
uni.hideLoading();
|
this.driverBillOfLoadingDatas = res.data;
|
uni.stopPullDownRefresh();
|
this.handleOpenChange();
|
});
|
}
|
},
|
onPullDownRefresh() {
|
this.TaskCoalList()
|
},
|
change(res) {
|
console.log(res)
|
},
|
search(res) {
|
console.log(res)
|
this.TaskCoalList()
|
},
|
clear(res) {
|
this.carNo=""
|
},
|
custom(res) {
|
console.log(res)
|
},
|
//查看拼单
|
checkDetail(item){
|
this.activeObj = item.splicingOrders ? item.splicingOrders : {};
|
this.showModal = true;
|
|
},
|
confrim(){
|
this.showModal = false;
|
}
|
}
|
};
|
</script>
|
|
<style lang="scss" scoped>
|
.searchview{
|
margin: 20rpx 0;
|
height: 100rpx;
|
u-search{
|
width: 100rpx;
|
}
|
}
|
.receiverPopup {
|
height: vww(110);
|
width: 300rpx;
|
|
.receiverPopup__title {
|
margin: vww(10) auto 0;
|
width: 80%;
|
text-align: center;
|
}
|
|
|
&__btn {
|
margin: vww(10) auto;
|
width: 50%;
|
|
.u-button {
|
height: vww(20);
|
}
|
}
|
}
|
::v-deep.appointment {
|
margin-bottom: vww(100);
|
.appointment-description {
|
margin: vww(8) 0;
|
color: #fd1446;
|
|
text {
|
font-weight: bold;
|
display: inline-block;
|
margin-left: vww(5);
|
color: #252525;
|
}
|
}
|
|
// 表格
|
.uni-table-scroll {
|
width: 100%;
|
overflow-x: hidden;
|
|
.uni-table {
|
min-width: 0 !important;
|
|
.uni-table-tr {
|
padding: 0;
|
font-size: vww(10);
|
|
.uni-table-th {
|
height: vww(32);
|
line-height: vww(20);
|
padding: vww(5) vww(10);
|
color: #111111;
|
font-weight: 550;
|
background: #f5f5f5;
|
}
|
|
.uni-table-td {
|
height: vww(32);
|
line-height: vww(20);
|
padding: vww(5) vww(5);
|
color: #111111;
|
.u-button {
|
height: vww(23);
|
}
|
}
|
}
|
}
|
}
|
}
|
.wait-appointment,
|
.Reserved {
|
position: relative;
|
top: vww(-120);
|
}
|
@mixin flex {
|
display: flex;
|
justify-content: space-between;
|
align-items: center;
|
}
|
.collection-form-item {
|
margin: 0 vww(15);
|
width: 95%;
|
height: 370rpx;
|
background: #ffffff;
|
box-shadow: 4rpx 6rpx 25rpx 0rpx rgba(73, 120, 240, 0.15);
|
border-radius: 20rpx;
|
overflow: hidden;
|
@include flex;
|
flex-direction: column;
|
position: relative;
|
align-items: flex-start;
|
margin-top: vww(10);
|
|
.first-line {
|
width: 94%;
|
height: vww(30);
|
margin: vww(10) vww(16) 0 vww(16);
|
display: flex;
|
justify-content: space-between;
|
|
.dispatch-receive {
|
width: 70%;
|
display: flex;
|
justify-content: flex-start;
|
align-items: center;
|
|
.dispatch-dept {
|
|
display: flex;
|
align-items: center;
|
}
|
|
.black-bar {
|
width: 2rpx;
|
height: 30rpx;
|
background: #515151;
|
margin-left: vww(12);
|
}
|
|
.dispatch {
|
margin-left: vww(12);
|
min-width: vww(50);
|
}
|
|
}
|
|
.point-number {
|
width: 33%;
|
|
.order-type {
|
color: #035cfb;
|
border-radius: 4rpx;
|
text-align: center;
|
}
|
// text {
|
// font-size: 24rpx;
|
// font-weight: 400;
|
// color: #c78a64;
|
// }
|
|
// .residue {
|
// font-size: 40rpx;
|
// font-weight: 400;
|
// color: #f81414;
|
// }
|
}
|
}
|
|
.second-line {
|
width: 100%;
|
height: vww(30);
|
margin-left: vww(16);
|
display: flex;
|
align-items: center;
|
justify-content: flex-start;
|
|
.coal-name {
|
flex-grow: 1;
|
height: 30rpx;
|
font-size: 30rpx;
|
font-weight: 300;
|
color: #515151;
|
position: relative;
|
display: flex;
|
align-items: center;
|
|
.black-bar {
|
width: 2rpx;
|
height: 30rpx;
|
background: #515151;
|
margin: 0 vww(12) ;
|
}
|
|
.coal-type {
|
margin-left: vww(12);
|
min-width: vww(50);
|
height: 30rpx;
|
line-height: 30rpx;
|
font-size: 30rpx;
|
font-weight: 300;
|
color: #515151;
|
}
|
}
|
}
|
.third-line {
|
height: vww(30);
|
margin-left: vww(15);
|
display: flex;
|
justify-content: flex-start;
|
align-items: center;
|
.send-date {
|
margin-left: vww(14);
|
height: 24rpx;
|
line-height: 24rpx;
|
font-size: 28rpx;
|
font-weight: 300;
|
color: #515151;
|
}
|
}
|
.fourth-line {
|
width: 100%;
|
height: vww(30);
|
@include flex;
|
justify-content: flex-start;
|
position: relative;
|
bottom: vww(10);
|
left: 25%;
|
|
.receive,
|
.forward {
|
width: vww(123);
|
height: vww(48);
|
@include flex;
|
justify-content: center;
|
color: #ffffff;
|
font-size: 28rpx;
|
position: absolute;
|
|
.button-image {
|
width: 100%;
|
height: 100%;
|
background: url('../../../static/image/banner/button.png') no-repeat;
|
background-size: cover;
|
font-size: 28rpx;
|
font-weight: 300;
|
color: #ffffff;
|
text-align: center;
|
line-height: vww(45);
|
}
|
}
|
|
.receive {
|
left: vww(20);
|
}
|
|
.forward {
|
width: vww(106);
|
left: vww(140);
|
|
.button-image {
|
width: 100%;
|
height: 100%;
|
background: url('../../../static/image/banner/transpartent.png') no-repeat;
|
background-size: cover;
|
font-size: 28rpx;
|
font-weight: 300;
|
color: #3b56eb;
|
text-align: center;
|
line-height: vww(45);
|
}
|
}
|
}
|
}
|
</style>
|