qingyiay
2023-04-10 7406be32979e90a730b5a2ac8d392892f71835d2
pages/driver-page/driver-index/bill-of-lading-details/bill-of-lading-details.vue
@@ -28,16 +28,28 @@
         <view class="utils_chil utils_chilTop">
            <u-button text="签到" type="primary" plain @click="arriveClick"></u-button>
            <u-button text="入场申请" type="primary" plain @click="rcsqClick"></u-button>
            <u-button text="放空" type="primary" plain></u-button>
            <u-button text="放空" type="primary" plain @click="evacuation" throttleTime="500"></u-button>
            <u-button text="呼叫客服" type="primary" plain @click="callCustomerService"></u-button>
         </view>
         <view class="utils_chil"><u-button text="展示提煤单" @click="showCaolPickUpBill" type="primary"></u-button></view>
         <view class="utils_chil"><u-button text="上磅计量" @click="cengZhongClick" type="primary"></u-button></view>
      </view>
      <view class="evacuationModal">
         <u-modal
            :show="evacuationModalShow"
            :title="evacuationTitle"
            :content="evacuationContent"
            :showCancelButton="true"
            @confirm="evacuationConfirm"
            @cancel="evacuationCancel"
         ></u-modal>
      </view>
   </view>
</template>
<script>
let socket = null;
import { webSocketUrl } from '@/api/request.js';
export default {
   onLoad(value) {
      if (value.orderPlanId && value.yyId) {
@@ -77,7 +89,19 @@
            openId: null,
            openName: ''
         },
         coalStatus: ['领取', '预约', '签到', '入场', '称皮', '称毛', '离场', '入磅房', '出磅房', '入煤场', '出煤仓'] // 状态
         coalStatus: ['领取', '预约', '签到', '入场', '称皮', '称毛', '离场', '入磅房', '出磅房', '入煤场', '出煤仓', '放空'], // 状态
         weighHouseCode: '',
         // 放空弹窗控制变量
         evacuationModalShow: false,
         evacuationTitle: '放空确认',
         evacuationContent: '是否确认放空',
         // 第一次放空参数
         weighData: {
            sceneId: '',
            gateCameraId: '',
            equipmentCode: '',
            weigh: 30
         }
      };
   },
   onShow() {
@@ -217,6 +241,10 @@
         this.$reqGet('getWeighHouse', this.getWeightHouseObj).then(res => {
            console.log(res, '获取磅房');
            if (res.code == 0) {
               this.weighData.sceneId = res.data.id;
               this.weighData.gateCameraId = res.data.lastEquipmentId;
               this.weighData.equipmentCode = res.data.lastEquipmentCode;
               this.weighHouseCode = res.data.code;
               uni.navigateTo({
                  url: `/pages/driver-page/driver-index/bill-of-lading-details/weighingDevice/weighingDevice?takeCoalId=${this.orderPlanId}&sceneId=${
                     res.data.id
@@ -226,6 +254,66 @@
               this.$u.toast('未在磅房,请前往磅房后再试!!');
            }
         });
      },
      /**
       * 初始化 weoSocket
       */
      initWebSocket() {
         let wsUrl = `${webSocketUrl}?access_token=${uni.getStorageSync('token')}`;
         socket = uni.connectSocket({
            url: wsUrl,
            header: {
               CLIENT_TOC: 'Y'
            },
            complete: res => {
               console.log(res, 'socket结果');
            }
         });
         socket.onOpen(() => {
            console.log('onOpen');
         });
         // 获取服务器传来的数据,做相应处理
         socket.onMessage(res => {
            console.log('socketWeigh', res);
            let nowWeighObj = JSON.parse(res.data.slice(7));
            if (nowWeighObj.eqCode == this.weighHouseCode) {
               if (nowWeighObj.eqInfraredStatus) {
                  this.weighData.weigh = nowWeighObj.weigh;
               } else {
                  this.weighData.weigh = nowWeighObj.weigh;
               }
            }
         });
         socket.onClose(() => {
            console.log('webSocketClose');
            this.$u.toast('磅房中断');
         });
         socket.onError(err => {
            console.log('socket报错', err);
            this.$u.toast('出现错误,请重新进入该页面,重试!!');
         });
      },
      // 放空
      evacuation() {
         this.evacuationModalShow = true;
      },
      // 放空弹窗确认
      evacuationConfirm() {
         let mix = Object.assign(this.weighData, this.getWeightHouseObj);
         this.$reqPost('getOneEvacuation', mix, 'json').then(res => {
            console.log(res, '第一次放空');
            if (res.code == 0) {
               this.$u.toast('操作成功');
               this.evacuationModalShow = false;
            } else {
               this.$u.toast('操作失败,请稍后重试');
               this.evacuationModalShow = false;
            }
         });
      },
      // 放空弹窗取消
      evacuationCancel() {
         this.evacuationModalShow = false;
      }
   }
};