qingyiay
2023-04-24 bb52e0d4baffe8e0486c951e525b6614bd4aaa28
pages/customer-page/customer-index/customer-index.vue
@@ -9,8 +9,8 @@
                  张
               </view>
               <view class="card-left__utils">
                  <u-button @tap.stop="receiveClick(item)" text="领取" type="primary" v-if="item.cars2 == 0" shape="circle"></u-button>
                  <u-button text="转发" type="primary" @tap.stop="forwardClick(item)" shape="circle" v-if="item.carNumSurplus1 == 0"></u-button>
                  <u-button @tap.stop="receiveClick(item)" text="领取" type="primary" v-if="item.carNum - item.cars2 != 0" shape="circle"></u-button>
                  <u-button text="转发" type="primary" @tap.stop="forwardClick(item)" shape="circle"></u-button>
               </view>
            </template>
            <template v-slot:right-top>
@@ -34,7 +34,7 @@
                        <text class="lingqu" @tap.stop="numInput(item.id)">{{ item.receiveNum || '_______' }}</text>
                        张
                     </view> -->
                     <view v-if="item.cars == item.cars2 ? false : true">剩余{{ item.carNum - item.cars2 }}张</view>
                     <view v-if="item.carNum == item.cars2 ? false : true">剩余{{ item.carNum - item.cars2 }}张</view>
                     <view v-else>已领完</view>
                  </view>
               </view>
@@ -46,7 +46,45 @@
            </template>
         </card>
      </view>
      <view class="history-numbers">
         <combined-title title="历史提煤单"></combined-title>
         <scroll-view :scroll-top="scrollTop" scroll-y="true" class="scroll-Y" @scrolltolower="historyScrolltolower">
            <view class="history-information" v-for="(item, index) in historyCoalData" :key="index" @click="faYundetail(item)">
               <view class="history-sendate">
                  <text>发运日期 {{ item.sendDate || '' }}</text>
                  <view class="view-more">
                     <text style="color: #449cfc;">详情</text>
                     <view class="arrow-right"><u-icon name="arrow-right" size="40" color="#449cfc"></u-icon></view>
                  </view>
               </view>
               <view class="history-main">
                  <view class="main-left">
                     <view class="history-body">
                        <text>所属单位 {{ item.deptName || '' }}</text>
                     </view>
                     <view class="history-body">
                        <text>煤场名称 {{ item.filedName || '' }}</text>
                     </view>
                     <view class="history-body">
                        <text>煤种名称 {{ item.coalName || '' }}</text>
                     </view>
                  </view>
                  <view class="main-right">
                     <view class="history-body">
                        <text style="word-break: break-all;">订单编号 {{ item.orderCode || '' }}</text>
                     </view>
                     <view class="history-body">
                        <text>订单剩余量 {{ item.carNumSurplus || '' }}</text>
                     </view>
                     <view class="history-body">
                        <text>提煤单个数 {{ item.tmCount || '' }}</text>
                     </view>
                  </view>
               </view>
            </view>
            <view class="more_text" v-if="showMoreData && historyCoalData.length !== 0">没有数据了...</view>
         </scroll-view>
      </view>
      <!-- 领取弹出框 -->
      <u-popup :show="show" @close="close" @open="open" mode="center" round="10">
         <view class="receiverPopup">
@@ -60,12 +98,27 @@
<script>
import card from '@/components/card/card.vue';
import combinedTitle from '@/components/combined-title/combined-title.vue';
import { customerId } from '@/utils/status';
import colorGradient from '@/uni_modules/uview-ui/libs/function/colorGradient';
import { todayDate } from '@/utils/util.js';
export default {
   props: {
      orderPlanDataStore: {
         type: Array,
         default: []
      }
   },
   components: {
      card
      card,
      combinedTitle
   },
   watch: {
      orderPlanDataStore: {
         handler(v) {
            this.orderPlanData = v;
         },
         deep: true,
         immediate: true
      }
   },
   data() {
      return {
@@ -75,37 +128,76 @@
         getOrderNum: {
            num: '',
            id: null
         }
         },
         historyCoalData: [],
         // 表格加载状态
         loading: false,
         scrollTop: 0,
         // 每页数据量
         pageSize: 10,
         // 当前页
         pageCurrent: 1,
         // 数据总量
         total: 0,
         // 是否显示更多数据
         showMoreData: false
      };
   },
   onLoad() {},
   onShow() {
      this.init();
      console.log(todayDate, '获取今天的日期');
   },
   methods: {
      init() {
         this.GetOrderPlan();
         this.getJhOrderPlanDataPage();
      },
      // 获取发运计划列表
      GetOrderPlan() {
         uni.showLoading({
            title: '加载中...'
         });
         uni.showLoading({ title: '加载中...' });
         this.$reqGet('GetOrderPlan').then(res => {
            this.orderPlanData = res.data;
            uni.hideLoading();
            if (res.data) {
               this.orderPlanData = res.data;
               uni.hideLoading();
            }
         });
      },
      // 领取点击
      // numInput(id) {
      // },
      // 获取历史提煤单
      getJhOrderPlanDataPage() {
         this.loading = true;
         this.$reqGet('getJhOrderPlanDataPage', { current: this.pageCurrent, size: this.pageSize }).then(res => {
            if (res.data.records) {
               this.total = res.data.total;
               if (this.pageCurrent > 1) {
                  this.historyCoalData = this.historyCoalData.concat(res.data.records);
                  this.historyCoalData = this.ArrSet(this.historyCoalData, 'id');
                  this.loading = false;
               } else {
                  this.historyCoalData = res.data.records;
                  this.loading = false;
               }
            }
         });
      },
      // 上拉加载
      historyScrolltolower() {
         if (this.pageCurrent * this.pageSize >= this.total) return (this.showMoreData = true);
         this.pageCurrent++;
         this.getJhOrderPlanDataPage();
      },
      //fix 点击提煤单返回会增加重复数据
      ArrSet(Arr, id) {
         var obj = {};
         const arrays = Arr.reduce((setArr, item) => {
            obj[item[id]] ? '' : (obj[item[id]] = true && setArr.push(item));
            return setArr;
         }, []);
         return arrays;
      },
      popupDetermineClick() {
         if (this.receiveNum) {
            this.getOrderNum.num = this.receiveNum;
            uni.showLoading({
               title: '加载中...'
            });
            uni.showLoading({ title: '加载中...' });
            this.$reqPost('customerGet', this.getOrderNum, 'params').then(res => {
               uni.hideLoading();
               if (res.code == 0) {
@@ -116,6 +208,8 @@
                     icon: 'none',
                     duration: 1000
                  });
               } else {
                  this.$u.toast(res.msg ? res.msg : '领取失败');
               }
            });
         } else {
@@ -128,17 +222,14 @@
      },
      /**
       * @客户领取
       * 领取弹框
       */
      receiveClick(item) {
         this.show = true;
         this.getOrderNum.id = item.id; // 获取领取提煤单的id
      },
      open() {
         console.log('打开了');
      },
      open() {},
      close() {
         console.log('关闭方法');
         this.show = false;
         this.receiveNum = null;
      },
@@ -147,28 +238,88 @@
      },
      // 提煤单详情
      cardBodyClick(name) {
         console.log('提煤单详情', name);
         uni.navigateTo({
            url: `/pages/customer-page/customer-index/fayunPlanDetails/fayunPlanDetails?orderPlanId=${name}`
         console.log(name, 'name');
         let code = null;
         let cars2 = null;
         this.orderPlanData.forEach(item => {
            if (item.id == name) {
               code = item.code;
               cars2 = item.cars2;
            }
         });
         uni.navigateTo({ url: `/pages/customer-page/customer-index/fayunPlanDetails/fayunPlanDetails?orderPlanId=${name}&code=${code}&cars2=${cars2}` });
      },
      // 点击历史提煤单一行获取详情
      faYundetail(v) {
         uni.navigateTo({ url: `/pages/customer-page/customer-index/fayunPlanDetails/fayunPlanDetails?orderPlanId=${v.id}&cars2=${v.cars2}` });
      },
      // 转发
      forwardClick(obj) {
         uni.navigateTo({
            url: `/pages/public-page/forward/forward?orderPlanId=${obj.id}&carNumSurplus1=${obj.carNumSurplus1}`
         });
         if (obj.cars2 == 0) return this.$u.toast('请先领取后再转发');
         uni.navigateTo({ url: `/pages/public-page/forward/forward?orderPlanId=${obj.id}&carNumSurplus1=${obj.carNumSurplus1}&carNum=${obj.carNum}&cars2=${obj.cars2}` });
      }
   }
};
</script>
<style lang="scss" scoped>
.scroll-Y {
   height: 900rpx;
   background-color: #e2e2e2;
   border-radius: vww(10);
   .history-information {
      width: 94%;
      display: flex;
      flex-direction: column;
      border: 1px solid #e2e2e2;
      background-color: #fff;
      border-radius: vww(10);
      margin: vww(10);
      .history-sendate {
         height: vww(40);
         border-bottom: 1px solid #e2e2e2;
         line-height: vww(40);
         padding-left: vww(8);
         position: relative;
         .view-more {
            display: flex;
            width: vww(80);
            position: absolute;
            right: vww(10);
            top: vww(-1);
            .arrow-right {
               position: absolute;
               right: vww(27);
               top: vww(12);
            }
         }
      }
      .history-main {
         min-height: vww(120);
         display: flex;
         justify-content: space-between;
         .main-left,
         .main-right {
            width: 45%;
            display: flex;
            flex-direction: column;
            justify-content: space-between;
            padding: vww(4) vww(4);
         }
      }
   }
   .more_text {
      color: #333;
      font-size: 24rpx;
      text-align: center;
   }
}
::v-deep.customer-index {
   width: 94%;
   margin: 0 auto;
   // 主体
   .customer-index-body {
      margin-bottom: vww(56);
      margin-bottom: vww(10);
      .card-left__top {
         margin-top: vww(26);
         text-align: center;