yangan
2024-09-18 388e37534de86f2698323613c469f51a21c3fc14
pages/loadUnload-page/selectTarget/selectTarget.vue
@@ -55,19 +55,149 @@
            @click.stop="formHandle"></u-button>
      </view> -->
      <!-- 场地 -->
      <view class='div-box'>
            <u-empty mode="data"
         <!-- 渲染区域 -->
         <u-collapse
               :value='["1"]'
               ref="myCollapse"
               >
                <u-collapse-item
                name='1'
                 ref="collapseHeight"
               class="collItem"
               :title="'待装卸收发单'">
               <view class="history-information"
                 @click="viewDetail(item)"
                  v-for="item,i in detailData"
         :key="i">
                     <view class="first">
                        <view class="">{{ item.carNo || '' }}</view>
                        <view class=""></view>
                     </view>
                     <view class="second">
                        <view class="coal-name">{{ item.productNames?limitString(item.productNames,20,'...'):'' || ''}}</view>
                        <view class="order-type">{{ item.orderType || '' }}</view>
                     </view>
                     <view class="third">
                        <view class="third-line">
                           <view class="third-line_text">客户名称:</view>
                           <view>{{ item.customerName }}</view>
                        </view>
                           <view class="third-line" v-if="/聚氯乙烯树脂/.test(item.productName)">
                           <view class="third-line_text">包装类型:</view>
                           <view>{{ proType[item.packingType] }}</view>
                        </view>
                        <view class="third-line"  v-if="item.productName === '二氯乙烷(EDC)'">
                           <view class="third-line_text">质检状态:</view>
                           <view> <u-tag :text="checkStatusList[item.checkStatus]" plain > </u-tag></view>
                        </view>
                     </view>
                     <view class="fourth">
                        <view class="fourth-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="senddate">{{ item.sendDate }}</view>
                     </view>
                     <view class="fourth">
                        <view class="fourth-icon">
                           <view
                              style="width: 26rpx;height: 26rpx;line-height: 26rpx;background: url('https://wrzs.czjlchem.com:9090/appimg/image/banner/carnNUm.png') no-repeat;background-size: cover;">
                           </view>
                        </view>
                        <view class="senddate">{{ item.orderCode }}</view>
                     </view>
                                     <view class="table">
         <uni-table border stripe
         emptyText="暂无更多数据">
               <uni-tr>
                  <uni-th width='120'
                  align="center">操作</uni-th>
                   <uni-th align="center" width='800'>产品</uni-th>
                      <uni-th align="center" width='110'>等级</uni-th>
                   <uni-th align="center" width='110'>包装</uni-th>
                  <!-- <uni-th align="center" width='200'>仓库</uni-th>
                  <uni-th align="center" width='100'>皮重</uni-th>
                  <uni-th align="center" width='100'>毛重</uni-th>
                  <uni-th align="center" width='100'>净重</uni-th>
                  <uni-th align="center" width='100'>数量</uni-th> -->
                   <uni-th align="center"  width='120'>计划量</uni-th>
                   <!-- <uni-th align="center"  width='100'>实际量</uni-th>  -->
               </uni-tr>
               <uni-tr v-for="(subItem, index) in item.tmTaskCoalList" :key="index">
                   <uni-td  align="center">
               <view class="btnBox">
                  <!--   -->
                  <!-- <u-button   text='查看'  @click="viewDetail(subItem)"></u-button> -->
                  <u-button type='primary' text='确认装卸'  size='mini' v-if="subItem.flag && isBtnShow(item)" @click.native.stop="enterOk(item,subItem)"></u-button>
                  </view></uni-td>
                  <uni-td align="left">
                     <view>{{ subItem.productName }}</view></uni-td>
                     <uni-td align="center">
                     <view>{{ subItem.productGrade }}</view></uni-td>
                     <uni-td align="center">
                  <view>{{ proType[item.packingType] }}</view>
               </uni-td>
               <!-- <uni-td>
                  <view>{{ subItem.bunkerName }}</view>
               </uni-td>
               <uni-td>
                  <view class="name" v-if="subItem.skin">{{ Number(subItem.skin).toFixed(2) || ''  }}</view>
               </uni-td>
               <uni-td>
                  <view class="name" v-if="subItem.hair"> {{  Number(subItem.hair).toFixed(2) || ''  }}</view>
               </uni-td>
                  <uni-td>
                  <view class="name" v-if="(subItem.clean || (subItem.clean && subItem.clean === 0))">{{ Number(subItem.clean).toFixed(2) || ''}}</view>
               </uni-td>
               <uni-td>
                  <view class="name">{{ subItem.productQuantity }}</view>
               </uni-td> -->
               <uni-td align="right">
                  <view class="name">{{ subItem.planMeasure }}</view>
               </uni-td>
               <!-- <uni-td>
                  <view class="name">{{ subItem.realityMeasure }}</view>
               </uni-td> -->
<!--
                <uni-td align="center">
               <view>{{ subItem.bunkerName }}</view></uni-td> -->
                 <!-- <uni-td align="center">
               <view  class="name">{{ subItem.statusView }}</view></uni-td> -->
            </uni-tr>
            </uni-table>
       </view>
               </view>
                  <u-empty mode="data"
                     icon="http://cdn.uviewui.com/uview/empty/data.png"
                     text="暂无数据"
                     textSize="30"
                     iconSize="1000"
                     v-if="detailData.length===0"></u-empty>
                </u-collapse-item>
         </u-collapse>
      </view>
      <!-- 已装卸收发单 -->
      <view class='div-box'>
         <!-- 渲染区域 -->
         <u-collapse
               <view class="history-information"    v-for="item,i in detailData"
               ref="myCollapse"
               >
                <u-collapse-item
                name='1'
               class="collItem"
               :title="'已装卸收发单'">
               <view class="history-information"    v-for="item,i in historyData"
         :key="i">
                     <view class="first">
                        <view class="">{{ item.carNo || '' }}</view>
                        <view class="">装卸日期: {{ item.sendDate || '' }}</view>
                        <view class=""></view>
                     </view>
                     <view class="second">
@@ -79,23 +209,28 @@
                           <view class="third-line_text">客户名称:</view>
                           <view>{{ item.customerName }}</view>
                        </view>
                        <view class="third-line"  v-if="item.productName === 'EDC'">
                           <view class="third-line" v-if="/聚氯乙烯树脂/.test(item.productName)">
                           <view class="third-line_text">包装类型:</view>
                           <view>{{ proType[item.packingType] }}</view>
                        </view>
                        <view class="third-line"  v-if="item.productName === '二氯乙烷(EDC)'">
                           <view class="third-line_text">质检状态:</view>
                           <view> <u-tag :text="checkStatusList[item.checkStatus]" plain > </u-tag></view>
                        </view>
                     </view>
                     <view class="fourth">
                        <view class="fourth-icon">
                           <view
                              style="width: 24rpx;height: 24rpx;line-height: 24rpx;background: url('https://mx.jzeg.cn:9096/appimg/image/banner/clock.png') no-repeat;background-size: cover">
                              style="height: 24rpx">
                           </view>
                        </view>
                        <view class="senddate">{{ item.sendDate }}</view>
                        <view class="senddate">{{ item.carNo }}</view>
                     </view>
                     <view class="fourth">
                        <view class="fourth-icon">
                           <view
                              style="width: 26rpx;height: 26rpx;line-height: 26rpx;background: url('https://mx.jzeg.cn:9096/appimg/image/banner/carnNUm.png') no-repeat;background-size: cover;">
                              style="width: 26rpx;height: 26rpx;line-height: 26rpx;background: url('https://wrzs.czjlchem.com:9090/appimg/image/banner/carnNUm.png') no-repeat;background-size: cover;">
                           </view>
                        </view>
                        <view class="senddate">{{ item.orderCode }}</view>
@@ -106,26 +241,32 @@
               <uni-tr>
                  <uni-th width='120'
                  align="center">操作</uni-th>
                   <uni-th align="center" width='120'>产品</uni-th>
                  <uni-th align="center" width='200'>仓库</uni-th>
                   <uni-th align="center" width='800'>产品</uni-th>
                      <uni-th align="center" width='90'>等级</uni-th>
                   <uni-th align="center" width='90'>包装</uni-th>
                  <!-- <uni-th align="center" width='200'>仓库</uni-th>
                  <uni-th align="center" width='100'>皮重</uni-th>
                  <uni-th align="center" width='100'>毛重</uni-th>
                  <uni-th align="center" width='100'>净重</uni-th>
                  <uni-th align="center" width='100'>数量</uni-th>
                   <!-- <uni-th align="center">仓库</uni-th> -->
                  <!-- <uni-th align="center">状态</uni-th> -->
                  <uni-th align="center" width='100'>数量</uni-th> -->
                   <uni-th align="center"  width='100'>计划量</uni-th>
                   <!-- <uni-th align="center"  width='100'>实际量</uni-th>  -->
                  
               </uni-tr>
               <uni-tr v-for="(subItem, index) in item.tmTaskCoalList" :key="index">
                   <uni-td  align="center">
               <view class="btnBox"> 
                  <!--   -->
                  <u-button   text='查看'  @click="viewDetail(subItem)"></u-button>
                  <u-button type='primary' text='确认装卸'  v-if="subItem.flag && isBtnShow(item)" @click="enterOk(item,subItem)"></u-button>
                  <u-button type='primary' text='拼单' size='mini'  v-if="isPinShow(item)" @click="pinDan(subItem)"></u-button>
                  </view></uni-td>
                  <uni-td align="center">
                  <uni-td w align="center">
                     <view>{{ subItem.productName }}</view></uni-td>
               <uni-td>
                     <uni-td align="center">
                     <view>{{ subItem.productGrade }}</view></uni-td>
                     <uni-td>
                  <view>{{ proType[item.packingType] }}</view>
               </uni-td>
               <!-- <uni-td>
                  <view>{{ subItem.bunkerName }}</view>
               </uni-td>
               <uni-td>
@@ -139,6 +280,9 @@
               </uni-td>
               <uni-td>
                  <view class="name">{{ subItem.productQuantity }}</view>
               </uni-td> -->
               <uni-td>
                  <view class="name">{{ subItem.planMeasure }}</view>
               </uni-td>
<!--                
                <uni-td align="center">
@@ -150,8 +294,15 @@
            </uni-table>
       </view>
               </view>
                  <u-empty mode="data"
                     icon="http://cdn.uviewui.com/uview/empty/data.png"
                     text="暂无数据"
                     textSize="30"
                     iconSize="1000"
                     v-if="detailData.length===0"></u-empty>
                </u-collapse-item>
         </u-collapse>
      </view>
      <u-action-sheet :actions="firstClassActionsList"
         :show="firstClassShow"
@@ -160,27 +311,62 @@
         @close='firstClassClose'
         @select="firstClassSelectClick"></u-action-sheet>
         <u-modal :show="enterZx"
            :title="'提示'"
            :title="'确认装卸'"
            @close="closeModal"
            :width='740'
            @cancel="cancelModal"
            @confirm="confirmModal"
            :closeOnClickOverlay="true"
            :showCancelButton="true">
            <view class="slot-content">
               是否确认装卸?
               <view v-if="isNumOk || isClean">
                  <text>产品名称:{{activeObj.productName}}</text>
                  <view class="queren">
               <view v-if="isNumOk || isClean||isFlagNum">
                  <view>产品名称:{{activeObj.productName}}</view>
                  <view>仓库:{{activeObj.bunkerName}}</view>
                  <view v-if="activeObj.isWeight === 1">
                  <view>皮重:{{ Number(activeObj.skin).toFixed(2) || ''}}</view>
                  <view>毛重:{{Number(activeObj.hair).toFixed(2) || ''}}</view>
                  <view >净重:{{ Number(activeObj.clean).toFixed(2) || ''}}</view>
                  </view>
                  <view class="queren" v-show="isCleanFlag === '1'">
                     <text>请输入</text>:
                       <u--input
                          type='digit'
                          border="bottom"
                        :placeholder="isNumOk ?  '数量' :'折吨'"
                        :placeholder="/聚氯乙烯树脂/.test(activeObj.productName) ? '实际吨数' :  isNumOk ?  '数量' :'折吨'"
                        v-model="checkNum"
                     >
                     </u--input>
                     <text> {{isNumOk ? '件' : '吨' }}</text>
                     </view>
                     <!-- 是否输入折吨 -->
                      <view style="display:flex;margin-top:20rpx" v-if="isClean">是否需要折吨: <u-radio-group
                        v-model="isCleanFlag"
                         placement="row"
                         @change="isCleanChange"
                         iconPlacement="right"
                         style="justify-content: space-evenly"
                     >
                        <u-radio
                        :key="1"
                        :label="'是'"
                        :name="'1'"
                        shape="circle"
                        iconSize="32"
                        label-size="32"
                        size="40"
                        >
                        </u-radio>
                        <u-radio
                        :key="0"
                        :label="'否'"
                        :name="'0'"
                        shape="circle"
                        iconSize="32"
                        label-size="32"
                        size="40"
                        >
                        </u-radio>
                     </u-radio-group></view>
                     <!-- 聚氯乙烯树脂 并且是大包 -->
                     <view class="pvcBig" v-if="activeObj.productName === '聚氯乙烯树脂' && activeObj.packingType === 5">
                        
@@ -189,7 +375,7 @@
                     <view v-if="activeObj.containerNumber"><span>集装箱号:</span>{{activeObj.containerNumber}}</view>
                     
               </view>
                     <view>是否空车出厂: <u-radio-group
                     <view style="display:flex;margin-top:20rpx">是否空车出厂: <u-radio-group
                        v-model="isEmptyCar"
                         placement="row"
                         iconPlacement="right"
@@ -237,6 +423,7 @@
<script>
   import { mapState, mapMutations, mapGetters } from 'vuex';
   import combinedTitle from '@/components/combined-title/combined-title.vue';
   export default {
      props: {
         loadUnloadData: {
@@ -247,12 +434,13 @@
      computed:{
         isBtnShow(){
            return function(item){
               console.log(item,'itemssss')
               if(!item){
                  return false
               }else{
                  if(this.errorStatusList.includes(item.status)){
                     return false
                  }else if (item.productName ==='二氯乙烷(EDC)' && item.checkStatus !== 7){
                     return false;
                  }else{
                     return true;
                  }
@@ -260,6 +448,20 @@
               
            }
         },
         isPinShow(){
            return function(item){
               if(!item){
                  return false
               }else{
                  if(   !item.orderType === '外销' || item.status === 6){
                     return false
                  }else{
                     return true;
                  }
               }
            }
         },
         messageText(){
            if(this.messageObj.carNo){
@@ -277,6 +479,7 @@
            handler(v) {
               console.log(v,'vvvvvv')
               this.loadUnloadData = v;
               this.getTodayOrder();
            },
            deep: true,
            immediate: true
@@ -307,12 +510,19 @@
      },
      data() {
         return {
            proType:['散装','液氯瓶装','罐装','PVC25','PVC80','PVC1150','PVc1200'],
            coalStatus: ['领取', '预约', '签到', '入场', '称皮', '称毛', '离场', '入磅房', '出磅房', '入仓库', '出仓库', '放空', '作废', '入场申请',
               '进入场院', '异常审核中', '返回加减吨', '超时', '打印中', '打印中', '填写', '放空确认中', '超最大毛重确认中','补打','入场检查','质检中',
               '离场检查','已打印','装卸','返回加减吨确认中'
            ],
            isCleanFlag:'1',
            dataForm: {
               firstClass: "",
               secondClass: "",
               orderType: '',
               bunkerIds:""
            },
            historyData:[],
            messageObj:{
               carNo:'',
            },
@@ -324,7 +534,8 @@
            enterZx:false,
            typeText:'', // 确认装卸三种类型
            isNumOk:false, //计件
            isClean:false, // 折吨
            isClean:false, // 折吨
            isFlagNum:false,// PVCV
            // 场地操作菜单
            firstClassActionsList: [],
            firstClassShow: false,
@@ -357,15 +568,39 @@
         };
      },
      methods: {
            limitString(str, limit, suffix = '...') {
                     if (str.length <= limit) return str;
                     return str.slice(0, limit) + suffix;
                  },
            getPVCWeight(){
         
         },
         viewDetail(item){
            //查看收发单详情
            uni.navigateTo({
               url: `/subPages/loadUnlaodPageDetail/detail?id=${item.id}&checkId=${item.checkId}`
            });
           handleOpenChange() {
                 // 方法一
      console.log(this.$refs.collapseHeight);
    //   let long = this.$refs.collapseHeight.length;
    //   setTimeout(() => {
    //     for (let i = 0; i < long; i++) {
    //       this.$refs.collapseHeight[i].queryRect();// 计算高度
    //     }
    //   }, 20);
        // 方法二
        this.$nextTick(() => {
        this.$refs.collapseHeight.init()
      });
         },
         //获取已装卸收发单
         getTodayOrder(){
            this.$reqGet('getTodayConfirmedTaskCoalList',{ bunkerIds:this.dataForm.bunkerIds }).then(res=>{
             if(res.code === 0){
               this.historyData = res.data;
             }else{
                  this.historyData = [];
             }
            })
         },
         getUserInfo() {
            this.$reqGet('getUserEntity').then(res => {
@@ -396,7 +631,7 @@
                  
                  
                     this.getDetailData();
                     this.getTodayOrder();
                  }
               } else {
                  this.$u.toast('加载失败')
@@ -425,17 +660,25 @@
                     })
                   return item;
                  });
                  this.handleOpenChange();
                  console.log(this.detailData,'detailData')
               }else if(res.code === 1){
                  this.detailData = [];
                  this.$u.toast(res.msg ? res.msg : '操作失败!!')
               }
            }).catch(err=>{
               this.detailData = [];
               this.$u.toast(res.msg ? res.msg : '操作失败!!')
            })
         },
                  viewDetail(value){
            //查看收发单详情
               uni.navigateTo({
               url: `/subPages/fayunPlanDetails/fayunPlanMore/fayunPlanMore?id=${value.id}&orderType=${value.orderType}`,
               })
                  },
         firstClassSelectClick(val) {
            this.dataForm.firstClass = val.name;
            this.dataForm.bunkerIds= val.id;
@@ -457,6 +700,13 @@
         },
         close(){
         },
         isCleanChange(val){
            console.log(val,'触发')
            if(val === '0'){
               this.checkNum = '';
            }
         },
         open(){},
@@ -481,36 +731,49 @@
            if( (parintItem.orderType === '外购' ||parintItem.orderType === '外购退' ) && item.isWeight === 0){
               this.isNumOk = true;
               this.isClean = false;
               this.isFlagNum = false;
               //回显计数量
                this.checkNum  = item.productQuantity ? item.productQuantity : '';
            }else if( parintItem.orderType ==='外购' &&  item.isWeight === 1){
               this.isClean = true;
               this.isNumOk = false;
                 this.isFlagNum = false;
            }else{
               this.isNumOk = false;
               this.isClean = false;
                 this.isFlagNum = false;
            }
            //聚氯乙烯树脂
             if(parintItem.orderType ==='外销' && (/聚氯乙烯树脂/.test(item.productName) || item.productName === 'PVC')  && (item.packingType === 3 || item.packingType === 4)){
               this.isNumOk = true;
               this.isNumOk = false;
               this.isClean  = false;
               this.isFlagNum = true;;
               this.checkNum = item.planMeasure;
            }
            //瓶装液氯条件
            //EDC 质检完成方可确认
            if(item.packingType === 1){ 
               this.isNumOk = true;
               this.isClean = false;
                this.isFlagNum = false;
            }
            //
            //pvc大包自动计算折吨
            if((/聚氯乙烯树脂/.test(item.productName) || item.productName === 'PVC')  && item.packingType === 5){
               this.isNumOk = true;
               this.isNumOk = false;
               this.isClean = false;
                this.isFlagNum = true;
            }
            if(parintItem.orderType === '外购'){
               this.isEmptyCar = '1';
            }else if(parintItem.orderType === '外销' || parintItem.orderType === '外购退'){
               this.isEmptyCar = '0';
            }
            //外销不用 输入折吨
            if(parintItem.orderType ==='外销'){
               this.isClean  = false;
            }
         this.enterZx = true;
            
@@ -529,11 +792,11 @@
                uni.showLoading({
                    title:'加载中'
                });
            console.log(this.activeObj,this.activeObj.productName ==='EDC' && this.activeObj.checkStatus !== 7,'12313')
            if(this.activeObj.productName ==='EDC' && this.activeObj.checkStatus !== 7){
            console.log(this.activeObj,this.activeObj.productName ==='二氯乙烷(EDC)' && this.activeObj.checkStatus !== 7,'12313')
            if(this.activeObj.productName ==='二氯乙烷(EDC)' && this.activeObj.checkStatus !== 7){
               console.log('触发,’13131')
               this.enterZx = false;
               this.$u.toast(`请检查当前EDC订单质检状态后在确认装卸!`);
               this.$u.toast(`请检查当前二氯乙烷(EDC)DC订单质检状态后在确认装卸!`);
               
            }else if( this.isEmptyCar === null){
               this.$u.toast(`请检查${this.isNumOk ? '计件数量' :'折吨'},以及是否空车出厂项!`);
@@ -544,7 +807,9 @@
               productQuantity:this.isNumOk ? this.checkNum : '',
               discount:this.isClean ? this.checkNum : null,
               isEmptyCar:this.isEmptyCar,
               isPretendDischar:this.activeObj.isPretendDischar
               isPretendDischar:this.activeObj.isPretendDischar,
               realityMeasure:this.isFlagNum ? this.checkNum : null,
               productId:this.isFlagNum ? this.activeObj.productId : null,
             },'json').then(res=>{
               uni.hideLoading();
               console.log(res,'rez')
@@ -555,10 +820,11 @@
                  uni.hideLoading();
               }else{
                 this.$u.toast('操作成功');
               }
               setTimeout(() => {
                 setTimeout(() => {
                  this.getDetailData();
               }, 500);
               }
            
            }).catch((err) => {
                this.$u.toast(err.msg || '失败');
@@ -582,10 +848,17 @@
                  url: `/subPages/checkTestDetails/index`
               })
         },
         pinDan(item){
            console.log('pindan')
            uni.navigateTo({
                  url: `/subPages/splicingOrders/index?taskCoalId=${item.id}`
               })
         }
      },
      onShow(){
         console.log('触发ONShow')
         uni.showLoading({
               title: "加载中"
            })
@@ -600,7 +873,7 @@
            }).then(() => {
            
            });
      },
   }
@@ -703,9 +976,12 @@
   }
   .btnBox{
      min-width: 130rpx;
      display: flex;
      min-width: 100rpx;
      // display: flex;
      justify-content: space-around;
      :v-deep   .u-button__text{
         font-size: 12px!important;
      }
       text{
         color: #035cfb;
      }
@@ -715,7 +991,7 @@
      margin: 10px;
      // margin-top: vww(100);
      position: relative;
      top: vww(-160);
      top: vww(-200);
      .top-tag{
             width: 60%;
            margin-left: 55%;