yangan
2024-02-18 809c3efe51b885eff6badca88f6965368cddf757
pages/driver-page/driver-index/bill-of-lading-details/bill-of-lading-details.vue
@@ -1,63 +1,51 @@
<template>
   <view class="bill-of-lading-details">
      <view class="top-banner"
         style="background: url('https://mx.jzeg.cn:9095/appimg/image/banner/loadingbanner.png') no-repeat;background-size: cover;">
         <view class="top-information">
            <view class="cutomer-name"
               v-if="orderType == '转入' || orderType == '转出'">煤场:{{ coalDetailsData.toFiledName || '' }}</view>
            <view class="cutomer-name"
               v-else>客户:{{ coalDetailsData.customerName || '' }}</view>
            <view class="fild-name">
               <view class="">矿场:{{ coalDetailsData.deptName || '暂无' }}</view>
               <view class=""
                  v-if="orderType == '转入' || orderType == '转出'">煤场:{{ coalDetailsData.filedName || '' }}</view>
               <view class=""
                  v-else>煤场:{{ coalDetailsData.filedName || '暂无' }}</view>
            </view>
         :style="{ backgroundImage: `url(${onlineurl}/appimg/image/banner/loadingbanner.png)`, backgroundSize: 'cover', backgroundRepeat: 'no-repeat' }">
      </view>
      <view class="top-information">
         <view class="cutomer-name"
            v-if="orderType == '转入' || orderType == '转出'">仓库:{{ coalDetailsData.toFiledName || '' }}</view>
         <view class="cutomer-name"
            v-else>客户:{{ coalDetailsData.customerName || '' }}</view>
         <view class="fild-name">
            <view class="">基地:{{ coalDetailsData.deptName || '暂无' }}</view>
            <view class=""
               v-if="orderType == '转入' || orderType == '转出'">仓库:{{ coalDetailsData.filedName || '' }}</view>
            <view class=""
               v-else>仓库:{{ coalDetailsData.filedName || '暂无' }}</view>
         </view>
         <view class="block-information">
            <view class="block-main">
               <view class="basic">
                  <view class="coalName">{{ coalDetailsData.coalName }}</view>
                  <view class="status-button"
                     style="background: url('https://mx.jzeg.cn:9095/appimg/image/banner/statusbutton.png') no-repeat;
                              background-size: cover;">
                     {{ coalStatus[coalDetailsData.status] || '' }}
                  </view>
               </view>
               <view class="time">
                  <view class="time-icon"><u-icon name="clock"
                        color="#515151"
                        size="40"></u-icon></view>
                  <view class="send-date">{{ coalDetailsData.sendDate }}</view>
               </view>
               <view class="coal-code">提煤单编号:&nbsp;&nbsp;{{ coalDetailsData.code || '' }}</view>
               <view class="order-code">
                  订单编号:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{{ coalDetailsData.orderCode || '' }}</view>
               <view class="weigh-item">
                  <view class="item">
                     <view class="concrete"
                        style="background: url('https://mx.jzeg.cn:9095/appimg/image/banner/skin.png') no-repeat;background-size: cover;">
                        皮</view>
                     <view class="num">{{ coalDetailsData.skin }}</view>
                  </view>
                  <view class="item">
                     <view class="concrete"
                        style="background: url('https://mx.jzeg.cn:9095/appimg/image/banner/hair.png') no-repeat;background-size: cover;">
                        毛</view>
                     <view class="num">{{ coalDetailsData.hair }}</view>
                  </view>
                  <view class="item">
                     <view class="concrete"
                        style="background: url('https://mx.jzeg.cn:9095/appimg/image/banner/clean.png') no-repeat;background-size: cover;">
                        净</view>
                     <view class="num">{{ coalDetailsData.clean }}</view>
                  </view>
      </view>
      <view class="block-information">
         <view class="block-main">
            <view class="basic">
               <view class="coalName"><text> {{ coalDetailsData.coalName||'' }}</text></view>
               <view class="status-button"
                  :style="{ backgroundImage: `url(${onlineurl}/appimg/image/banner/statusbutton.png)`, backgroundSize: 'cover', backgroundRepeat: 'no-repeat' }">
                  {{ coalStatus[coalDetailsData.statusWeigh] || '' }}
               </view>
            </view>
            <view class="time">
               <view class="time-icon"><u-icon name="clock"
                     color="#515151"
                     size="40"></u-icon></view>
               <view class="send-date">{{ coalDetailsData.sendDate }}</view>
            </view>
            <view class="coal-code">通知单编号:&nbsp;&nbsp;{{ coalDetailsData.code || '' }}</view>
            <view class="order-code">
               订单编号:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{{ coalDetailsData.orderCode || '' }}</view>
            <view class="coal-code"
               @click="jumpWeighDetail"
               style="color: rgb(73, 123, 251);">
               查看明细
            </view>
         </view>
      </view>
      <!--  称重历史-->
      <weigh-item :list="showWeigh" class="weighing-item"></weigh-item>
      <!-- 时间线 -->
      <view class="timeLine">
         <u-steps :current="dayRZ.length - 1"
            direction="column"
@@ -71,20 +59,20 @@
      </view>
      <view class="utilsBox">
         <view class="utils_chil utils_chilTop">
         <view class="utils_chil utils_chilTop" v-if="!isReservation">
            <view class="top-button">
               <u-button text="签到"
                  type="primary"
                  plain
                  @click="arriveClick"
                  shape="circle"
                  :disabled="coalDetailsData.status >= 2"></u-button>
               <u-button text="入场申请"
                  :disabled="coalDetailsData.status > 2"></u-button>
               <u-button text="打印磅单"
                  type="primary"
                  plain
                  @click="rcsqClick"
                  @click="printOrder"
                  shape="circle"
                  :disabled="coalDetailsData.status >= 3"></u-button>
                  :disabled="currentPageCoalStatus  < 3"></u-button>
            </view>
            <view class="bottom-button">
               <u-button text="放空"
@@ -102,12 +90,14 @@
            </view>
         </view>
      </view>
      <view class="weigh-ability">
         <view class="weigh-button"><u-button text="展示提煤单"
      <view class="weigh-ability" v-if="!isReservation">
         <!-- <view class="weigh-button"><u-button text="展示通知单"
               @click="showCaolPickUpBill"
               type="primary"
               shape="circle"></u-button></view>
         <view class="weigh-button"><u-button text="上磅计量"
               shape="circle"></u-button></view> -->
         <view class="weigh-button"><u-button
                :disabled="!isapproach"
                text="上磅计量"
               @click="cengZhongClick"
               type="primary"
               shape="circle"></u-button></view>
@@ -123,19 +113,32 @@
      <view class="completeOutSale">
         <u-modal :show="completeOutSaleShow"
            title="确认"
            content="是否完成外销提煤单"
            content="是否完成外销通知单"
            :showCancelButton="true"
            @confirm="completeOutSaleConfirm"
            @cancel="completeOutSaleCancel"></u-modal>
      </view>
      <u-action-sheet
      :actions="list"
      :show="show"
      :closeOnClickOverlay="true"
      :closeOnClickAction="true"
      @select="selectClick"
      @close="sheetClose" ></u-action-sheet>
   </view>
</template>
<script>
   import { onlineurl } from '@/api/request.js'
   import { webSocketUrl } from '@/api/request.js';
   import { mapState, mapMutations } from 'vuex';
   import weighItem from '@/components/weighItem.vue'
   export default {
      components: {
         weighItem
      },
      onLoad(value) {
         console.log(value,'valyue')
         this.orderPlanId = value.orderPlanId;
         this.yyId = value.yyId;
         if (value.overTmWaixiao) {
@@ -147,9 +150,22 @@
         return {
            orderPlanId: null,
            yyId: null,
            show:false,
            chengZhongFlag:true, // 上榜称重状态
            dayRZ: [],
            coalDetailsData: {}, // 提煤单详情
            currentPageCoalStatus: 0, // 当前页面提煤单状态
            list: [
            {
               name:'选项一',
            },
            {
               name: '选项二禁用',
            },
            {
               name: '开启load加载', //开启后文字不显示
            }
         ],
            coalDetailsData: {}, // 通知单详情
            currentPageCoalStatus: 0, // 当前页面通知单状态
            // 获取所在磅房参数
            getWeightHouseObj: {
               deptId: '',
@@ -174,9 +190,7 @@
               openId: null,
               openName: ''
            },
            coalStatus: ['领取', '预约', '签到', '入场', '称皮', '称毛', '离场', '入磅房', '出磅房', '入煤仓', '出煤仓', '放空', '作废', '入场申请',
               '进入场院'
            ], // 状态
            coalStatus: ['未称重', '称重中', '验质中', '称重完成', '处理完成'], // 状态
            weighHouseCode: '',
            // 放空弹窗控制变量
            evacuationModalShow: false,
@@ -206,8 +220,11 @@
               clean: ""
            },
            completeOutSaleShow: false,
            overTmWaixiao: null
            reservationIsShow:false,
            overTmWaixiao: null,
            // 判读网络状态,
            normalCode: true,
            onlineurl,
         };
      },
      onShow() {
@@ -242,14 +259,21 @@
            return this.coalDetailsData.hair !== 0 || this.coalDetailsData.skin !== 0;
         },
         isapproach() {
            return this.currentPageCoalStatus !== 3;
            return this.currentPageCoalStatus < 3;
         },
         // 展示皮毛净
         showWeigh() {
            return this.coalDetailsData.tmTaskCoalItems ? this.coalDetailsData.tmTaskCoalItems : []
         },
         //司机领取状态按钮全不展示
         isReservation(){
            return this.reservationIsShow < 1;
         }
      },
      methods: {
         init() {
            this.$reqGet('coalDayPage', { id: this.orderPlanId }).then(res => {
               if (res.code == 0) {
                  // this.dayRZ = res.data;
                  this.dayRZ = res.data.map(v => {
                     let slicedate = v.taskStatusDes.slice(0, 10);
                     if (slicedate == this.currentDate) {
@@ -264,7 +288,7 @@
               }
            });
            this.coalDayPage(); //获取日志
            this.getTakeCoal(); //获取提煤单详情
            this.getTakeCoal(); //获取通知单详情
            this.getgetService(); //获取客服
         },
         // 获取客服openid
@@ -281,15 +305,15 @@
               }
            });
         },
         // 获取提煤单详情
         // 获取通知单详情
         getTakeCoal() {
            uni.showLoading({
               title: '加载中'
            });
            this.$reqGet('getTakeCoal', { takeCoalId: this.orderPlanId }).then(res => {
               uni.hideLoading();
               if (res.code == 0) {
                  uni.hideLoading();
                  console.log(res, '提煤单详情');
                  console.log(res, '通知单详情');
                  this.coalDetailsData = res.data;
                  this.orderType = this.coalDetailsData.orderType;
                  // 判断是否完成外销订单
@@ -310,12 +334,17 @@
                  // 获取客服openId参数赋值
                  this.getServiceOpenid.deptId = this.coalDetailsData.deptId;
                  this.getServiceOpenid.filedId = this.coalDetailsData.filedId;
                  // 获取提煤单状态
                  this.currentPageCoalStatus = this.coalDetailsData.status;
                  // 获取通知单状态
                  this.currentPageCoalStatus = this.coalDetailsData.statusWeigh;
                  this.reservationIsShow = this.coalDetailsData.status;
                  // 获取原发信息
                  this.primarySkin = this.coalDetailsData.skinTwo;
                  this.primaryHair = this.coalDetailsData.hairTwo;
                  this.primaryClean = this.coalDetailsData.cleanTwo;
                  //初始化磅单数据
                  this.list = this.coalDetailsData.tmTaskCoalItems.map(item=>{
                     return  {name:item.breed + '/' + item.spec,id:item.id}
                  })
               } else {
                  this.$u.toast('加载失败');
               }
@@ -339,26 +368,33 @@
         },
         // 日志查询
         coalDayPage() {
            this.interval = setInterval(() => {
               this.$reqGet('coalDayPage', { id: this.orderPlanId }).then(res => {
                  if (res.code == 0) {
                     // this.dayRZ = res.data;
                     this.dayRZ = res.data.map(v => {
                        let slicedate = v.taskStatusDes.slice(0, 10);
                        if (slicedate == this.currentDate) {
                           return {
                              ...v,
                              taskStatusDes: v.taskStatusDes.slice(10)
                           };
                        } else {
                           return { ...v }
                        }
                     });
                  }
               });
            }, 5000);
            if (this.normalCode) {
               this.interval = setInterval(() => {
                  this.$reqGet('coalDayPage', { id: this.orderPlanId }).then(res => {
                     if (res.code == 0) {
                        this.normalCode = true;
                        this.dayRZ = res.data.map(v => {
                           let slicedate = v.taskStatusDes.slice(0, 10);
                           if (slicedate == this.currentDate) {
                              return {
                                 ...v,
                                 taskStatusDes: v.taskStatusDes.slice(10)
                              };
                           } else {
                              return { ...v }
                           }
                        });
                     } else {
                        this.normalCode = false;
                     }
                  });
               }, 10000);
            } else {
               clearInterval(this.interval)
               this.$u.toast('服务器错误,请稍后重试')
            }
         },
         // 展示提煤单详情
         // 展示通知单详情
         showCaolPickUpBill() {
            uni.navigateTo({
               url: `/pages/driver-page/driver-index/bill-of-lading-details/coal-pick-up-bill/coal-pick-up-bill?orderPlanId=${this.orderPlanId}`
@@ -369,7 +405,7 @@
            uni.navigateTo({
               url: `/pages/driver-page/driver-index/bill-of-lading-details/punchTheClock/punchTheClock?orderPlanId=${this.orderPlanId}&coalStatus=${
               this.currentPageCoalStatus
            }&tmId=${this.getWeightHouseObj.tmId}`
            }&tmId=${this.getWeightHouseObj.tmId}&yyId=${this.yyId}`
            });
         },
         // 入场申请
@@ -426,14 +462,6 @@
               }
            });
         },
         calling() {
            // wx.join1v1Chat({
            //    caller: { nickname: this.name, openid: this.openid }, //oZjXk5RRmbroAfl1m5aZ6hRNvqh4
            //    listener: { nickname: this.serviceInfoObj.openName, openid: 'orutI5YT0yEvARVngdsTmBpisWmw' }, // 这里的openid是fyy的,充当固定的客服openid
            //    backgroundType: 2,
            //    roomType: 'voice'
            // });
         },
         // 称重
         cengZhongClick() {
            this.$reqGet('getWeighHouse', this.getWeightHouseObj).then(res => {
@@ -449,7 +477,8 @@
                     res.data.id
                  }&gateCameraId=${res.data.lastEquipmentId}&gateCameraCode=${res.data.lastEquipmentCode}&weighHouseCode=${res.data.code}&primarySkin=${
                     this.primarySkin
                  }&primaryHair=${this.primaryHair}&psrimaryClean=${this.primaryClean}&sceneInOut=${res.data.sceneInOut}&overTmWaixiao=${this.overTmWaixiao}`
                  }&primaryHair=${this.primaryHair}&psrimaryClean=${this.primaryClean}&sceneInOut=${res.data.sceneInOut}&overTmWaixiao=${this.overTmWaixiao}
                  &isWeighing=${this.coalDetailsData.weighingType}`
                  });
               } else {
                  this.$u.toast('未在磅房,请前往磅房后再试!!');
@@ -493,12 +522,44 @@
         completeOutSaleCancel() {
            this.completeOutSaleShow = false
         },
         // 查看质量明细
         jumpWeighDetail() {
            uni.navigateTo({
               url: `/pages/driver-page/driver-index/bill-of-lading-details/weighDetail/weighDetail?orderPlanId=${this.orderPlanId}&flag=${true}`
            })
         },
         //打印磅单
         printOrder(){
           this.show = true;
         },
         selectClick(obj){
            this.$reqGet('printerHandler',{tmItemId:obj.id}).then(res => {
               uni.hideLoading();
               this.$u.toast(res.msg)
               if (res.data) {
                  // this.$u.toast('打印成功')
                  // this.orderPlanData = res.data
               }
            }).catch((err) => {
               uni.hideLoading();
                  this.$u.toast('打印失败')
            }).finally(() => {
               this.show = false;
            })
         },
         sheetClose(){
            this.show = false;
         }
      }
   };
</script>
<style lang="scss"
   scoped>
   .weighing-item{
      min-height: 200rpx!important;
   }
   /deep/.u-steps {
      .u-steps-item {
         .u-steps-item__content {
@@ -521,169 +582,198 @@
   ::v-deep.bill-of-lading-details {
      width: 100%;
      height: 100vh;
      height: 100%;
      margin: 0 auto;
      display: flex;
      flex-direction: column;
      .top-banner {
         width: 100%;
         height: 346rpx;
         position: fixed;
      }
         .top-information {
            width: 94%;
            margin: 0 auto;
            height: vww(52);
            @include flex position: relative;
            flex-direction: column;
      .top-information {
         width: 94%;
         margin: 0 auto;
         height: vww(52);
         @include flex position: relative;
         flex-direction: column;
         justify-content: space-between;
         align-items: flex-start;
         top: vww(25);
         color: #ffffff;
         font-size: 31rpx;
         font-weight: 300;
         .cutomer-name {
            width: 100%;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
         }
         .fild-name {
            @include flex;
            justify-content: space-between;
            align-items: flex-start;
            top: vww(25);
            color: #ffffff;
            font-size: 31rpx;
            font-weight: 300;
            width: 100%;
            .cutomer-name {
               width: 100%;
            view {
               min-width: 296rpx;
               white-space: nowrap;
               overflow: hidden;
               text-overflow: ellipsis;
            }
         }
      }
            .fild-name {
               @include flex;
               justify-content: space-between;
               width: 100%;
      .block-information {
         width: 690rpx;
         height: 100%;
         min-height: 420rpx;
         margin: vww(40) auto;
         background: #ffffff;
         box-shadow: 4rpx 6rpx 51rpx 0rpx rgba(73, 120, 240, 0.11);
         border-radius: 20rpx;
         position: relative;
         font-size: 30rpx;
         font-weight: 300;
         color: #303030;
         overflow: hidden;
               view {
                  min-width: 296rpx;
                  white-space: nowrap;
                  overflow: hidden;
                  text-overflow: ellipsis;
               }
         .block-main {
            display: grid;
            grid-template-columns: auto;
            grid-template-rows: repeat(auto-fit, minmax(40rpx, 1fr));
            gap: auto 5rpx;
            width: 94%;
            height: 100%;
            min-height: 380rpx;
            margin: vww(18) vww(7) vww(11) vww(17);
         }
         .status-button {
            width: vww(71);
            height: vww(36);
            text-align: center;
            line-height: vww(33);
            font-size: 28rpx;
            font-weight: 300;
            position: absolute;
            right: vww(10);
            color: #fff;
         }
         .basic {
            width: 100%;
            height: vww(15);
            @include flex;
            justify-content: flex-start;
            .coalName,
            .order-type {
               width: 370rpx;
               height: 55rpx;
               font-size: 30rpx;
               font-weight: 300;
               color: #515151;
               position: relative;
               overflow: hidden; //溢出隐藏
               text-overflow: ellipsis;   //超出部分省略号
               white-space: nowrap; //不换行
            }
            .black-block {
               width: 2rpx;
               height: 30rpx;
               background: #515151;
               position: relative;
               top: vww(2);
            }
         }
         .block-information {
            width: 690rpx;
            height: 396rpx;
            margin: vww(40) auto;
            background: #ffffff;
            box-shadow: 4rpx 6rpx 51rpx 0rpx rgba(73, 120, 240, 0.11);
            border-radius: 20rpx;
            position: relative;
            font-size: 30rpx;
            font-weight: 300;
            color: #303030;
            overflow: hidden;
         .time {
            width: 35%;
            height: vww(12);
            display: flex;
            justify-content: flex-start;
            .block-main {
               @include flex width: 94%;
               height: 336rpx;
               margin: vww(18) vww(7) vww(11) vww(17);
               flex-direction: column;
               justify-content: space-between;
               align-items: flex-start;
            }
            .status-button {
               width: vww(71);
               height: vww(36);
               text-align: center;
               line-height: vww(33);
               font-size: 28rpx;
               font-weight: 300;
               position: absolute;
               right: vww(10);
               color: #fff;
            }
            .basic {
               width: 100%;
               height: vww(15);
               @include flex;
               justify-content: flex-start;
               .coalName,
               .order-type {
                  width: 45%;
                  height: 30rpx;
                  font-size: 30rpx;
                  font-weight: 300;
                  color: #515151;
                  position: relative;
               }
               .black-block {
                  width: 2rpx;
                  height: 30rpx;
                  background: #515151;
                  position: relative;
                  top: vww(2);
               }
            }
            .time {
               width: 35%;
               height: vww(12);
               display: flex;
               justify-content: flex-start;
               .send-date {
                  width: 148rpx;
                  height: 24rpx;
                  margin-left: vww(14);
                  font-size: 28rpx;
                  font-weight: 300;
                  color: #515151;
               }
            }
            .coal-code,
            .order-code {
               width: 100%;
            .send-date {
               width: 148rpx;
               height: 24rpx;
               margin-left: vww(14);
               font-size: 28rpx;
               font-weight: 300;
               color: #7d7d7d;
               color: #515151;
            }
         }
         .coal-code,
         .order-code {
            width: 100%;
            height: 24rpx;
            font-size: 28rpx;
            font-weight: 300;
            color: #7d7d7d;
         }
      }
      // 称重历史
      .weigh-history {
         @extend .block-information;
         .block-main {
            @extend .block-main;
            gap: 10rpx 20rpx;
            .weigh-item {
               width: 100%;
               height: vww(36);
               height: vww(80);
               @include flex;
               flex-direction: column;
               justify-content: space-around;
               align-items: flex-start;
               .item {
                  min-width: vww(50);
                  height: vww(45);
                  font-size: 21rpx;
                  font-weight: 400;
                  color: #ffffff;
                  text-align: center;
                  line-height: vww(30);
               .item-block {
                  width: 100%;
                  height: vww(36);
                  @include flex;
                  justify-content: space-around;
                  .concrete {
                     width: vww(36);
                     height: vww(36);
                  }
                  .item {
                     min-width: vww(50);
                     height: vww(45);
                     font-size: 21rpx;
                     font-weight: 400;
                     color: #ffffff;
                     text-align: center;
                     line-height: vww(30);
                     @include flex;
                  .num {
                     font-size: 40rpx;
                     font-weight: 300;
                     color: #303030;
                     .concrete {
                        width: vww(36);
                        height: vww(36);
                     }
                     .num {
                        font-size: 40rpx;
                        font-weight: 300;
                        color: #303030;
                     }
                  }
               }
            }
         }
      }
      // 时间线
      .timeLine {
         height: 40%;
         height: 300rpx;
         min-height: 300rpx;
         margin: vww(20);
         position: relative;
         top: vww(120);
         // top: vww(120);
         overflow-y: overlay;
         padding: vww(20);
@@ -716,7 +806,7 @@
         width: 94%;
         margin: 0 auto;
         position: relative;
         top: vww(80);
         // top: vww(80);
         .utils_chil {
            width: 100%;
@@ -743,7 +833,7 @@
      .weigh-ability {
         width: 631rpx;
         height: vww(100);
         margin: vww(80) auto;
         margin: vww(20) auto;
         margin-bottom: vww(10);
         @include flex;
         flex-direction: column;