qingyiay
2023-04-11 84c4da09d48a202cba443321836519a18495196a
pages/public-page/forward/forward.vue
@@ -1,17 +1,18 @@
<template>
   <!-- 转发 -->
   <view class="forward">
      <view><u-notice-bar :text="text" :fontSize="30" mode="link"></u-notice-bar></view>
      <view class="forward-card" v-for="(val, index) in jhOrderPlanForwardList">
      <view v-if="roleType == 1"><u-notice-bar :text="text" :fontSize="30" mode="link"></u-notice-bar></view>
      <view v-else-if="roleType == 2"><u-notice-bar :text="text1" :fontSize="30" mode="link"></u-notice-bar></view>
      <view class="forward-card" v-for="(val, index) in jhOrderPlanForwardList" :key="index">
         <u--form labelPosition="top" :model="forwardForm" ref="form1">
            <u-form-item label="转发对象" labelWidth="20%" ref="item1" @click="forwardObjectClick(index)">
               <u--input v-model="val.name" placeholder="点击选择转发对象"></u--input>
               <u--input v-model="val.name" placeholder="点击选择转发对象" :readonly="true"></u--input>
            </u-form-item>
            <u-form-item label="输入数量" labelWidth="20%" ref="item1">
               <view class="forward-card-amount">
                  <view class="forward-card-amount-input"><u--input v-model="val.carNum" placeholder="请输入转发数量"></u--input></view>
                  <u-checkbox-group v-model="val.checkboxValue1" placement="column" @change="v => checkboxChange(v, index)">
                     <u-checkbox :customStyle="{ marginBottom: '8px' }" size="30" labelSize="30" label="全部转发" name="全部转发"></u-checkbox>
                     <u-checkbox :customStyle="{ marginBottom: '8px' }" size="30" labelSize="30" label="全部转发" name="全部转发" :disabled="val.ischecked"></u-checkbox>
                  </u-checkbox-group>
               </view>
            </u-form-item>
@@ -31,14 +32,18 @@
               <view class="" v-if="!tabHuoDai">
                  <u-cell-group>
                     <u-cell v-for="(item, index) in fleetData" :key="index" :title="item.name">
                        <view class="cell-util" slot="value"><u-button @click="forwardFleetObjectSelect(item)" text="选择" type="primary" size="mini"></u-button></view>
                        <view class="cell-util" slot="value">
                           <u-button @click="forwardFleetObjectSelect(item, index)" text="选择" type="primary" size="mini"></u-button>
                        </view>
                     </u-cell>
                  </u-cell-group>
               </view>
               <view class="" v-else-if="tabHuoDai">
                  <u-cell-group>
                     <u-cell v-for="(item, index) in huoDaiData" :key="index" :title="item.name">
                        <view class="cell-util" slot="value"><u-button @click="forwardHuoDaiObjectSelect(item)" text="选择" type="primary" size="mini"></u-button></view>
                        <view class="cell-util" slot="value">
                           <u-button @click="forwardHuoDaiObjectSelect(item, index)" text="选择" type="primary" size="mini"></u-button>
                        </view>
                     </u-cell>
                  </u-cell-group>
               </view>
@@ -49,22 +54,20 @@
</template>
<script>
import { customerId } from '@/utils/status';
import { customerId } from '@/utils/status'
export default {
   onLoad(params) {
      this.cars2 = Number(params.cars2);
      this.carNumSurplus1 = Number(params.carNumSurplus1);
      if (params.carNumSurplus1 || params.carNumSurplusHuodai) {
         if (params.carNumSurplus1 != 0) {
            this.forwardSurplus = params.carNumSurplus1;
         } else if (params.carNumSurplusHuodai != 0) {
            this.forwardSurplus = params.carNumSurplusHuodai;
         }
      }
      this.orderPlanId = params.orderPlanId;
      console.log(params, '转发页面的参数')
      // 客户
      this.cars2 = Number(params.cars2)
      this.carNumSurplus1 = Number(params.carNumSurplus1)
      // 货代
      this.carNum = Number(params.carNum)
      this.carNumSurplusHuodai = this.forwardSurplus = Number(params.carNumSurplusHuodai)
      this.orderPlanId = params.orderPlanId
      this.$reqGet('forwardList', { OrderPlanId: params.orderPlanId }).then(res => {
         if (res.data) {
         if (res.data.length !== 0 && this.roleType == 1) {
            this.jhOrderPlanForwardList = res.data.map(item => {
               return {
                  id: item.id,
@@ -74,20 +77,31 @@
                  xsUserId: item.xsUserId === null ? 0 : item.xsUserId,
                  fleetId: item.fleetId === null ? 0 : item.fleetId,
                  checkboxValue1: ''
               };
            });
            console.log(this.jhOrderPlanForwardList, '列表');
               }
            })
         } else if (res.data.length !== 0 && this.roleType == 2) {
            this.jhOrderPlanForwardList = res.data.map(item => {
               return {
                  id: item.id,
                  orderPlanId: item.orderPlanId,
                  name: item.fleetName,
                  carNum: item.carNum,
                  xsUserId: item.xsUserId === null ? 0 : item.xsUserId,
                  fleetId: item.fleetId === null ? 0 : item.fleetId,
                  checkboxValue1: ''
               }
            })
         } else {
            this.jhOrderPlanForwardList = this.jhOrderPlanForwardList.map(v => {
               if (!v.orderPlanId) {
                  return {
                     ...v,
                     orderPlanId: params.orderPlanId
                  };
                  }
               }
            });
            })
         }
      });
      })
   },
   data() {
      return {
@@ -111,161 +125,246 @@
         index: '',
         checkboxValue1: '',
         selectPopupShow: false,
         list1: [
            {
               name: '车队'
            },
            {
               name: '货代'
            }
         ],
         list1: [{ name: '车队' }, { name: '货代' }],
         tabHuoDai: false,
         carNumSurplus1: '',
         cars2: '',
         carNum: '',
         carNumSurplusHuodai: '',
         formNum: 1
      };
      }
   },
   onShow() {
      this.init();
      this.init()
      if (this.roleType == 2) {
         this.list1.splice(1, 1);
         this.tabHuoDai = false;
         this.list1.splice(1, 1)
         this.tabHuoDai = false
      }
   },
   computed: {
      roleType() {
         return uni.getStorageSync('roleType');
         return uni.getStorageSync('roleType')
      },
      text() {
         return `已领取${this.cars2}张日计划单,剩余${this.carNumSurplus1}张日计划单`;
         return `已领取${this.cars2}张提煤单,剩余${this.carNumSurplus1}张提煤单`
      },
      text1() {
         return `已拥有${this.carNum}张提煤单,剩余${this.carNumSurplusHuodai}张提煤单`
      }
   },
   methods: {
      init() {
         console.log('roleType', this.roleType);
         console.log('roleType', this.roleType)
         switch (this.roleType) {
            case 1:
               this.getAllHuoDaiByCustomerId();
               this.getFleet();
               break;
               this.getAllHuoDaiByCustomerId()
               this.getFleet()
               break
            case 2:
               this.getFleet();
               break;
               this.getFleet()
               break
            default:
               break;
               break
         }
      },
      allrelay(x, y) {
         let a = 0
         if (y != 0) {
            a = Number(x) + Number(y)
            return a
         } else {
            return Number(x)
         }
      },
      allrelayto(x, y) {
         let a = 0
         if (y != 0) {
            a = Number(x) - Number(y)
            return a
         } else {
            return Number(x)
         }
      },
      checkboxChange(value, index) {
         console.log('复选框变化', value, index);
         uni.setStorageSync('allrelay', this.jhOrderPlanForwardList[index].carNum)
         this.jhOrderPlanForwardList = this.jhOrderPlanForwardList.map((v, i) => {
            return {
               ...v,
               ischecked: false
            }
         })
         if (value.length != 0) {
            this.jhOrderPlanForwardList[index].carNum = this.forwardSurplus;
            let tempforwardSurplus = this.forwardSurplus
            let tempcarNumSurplus1 = this.carNumSurplus1
            // 计算全部转发数
            // 客户
            if (this.roleType == 1) {
               this.jhOrderPlanForwardList[index].carNum = this.allrelay(this.jhOrderPlanForwardList[index].carNum, tempcarNumSurplus1)
            }
            tempcarNumSurplus1 = 0
            // 货代
            if (this.roleType == 2) {
               this.jhOrderPlanForwardList[index].carNum = this.allrelay(this.jhOrderPlanForwardList[index].carNum, tempforwardSurplus)
            }
            tempforwardSurplus = 0
            // 选择一个后其余禁止复选
            this.jhOrderPlanForwardList.forEach((v, i) => {
               if (i !== index) {
                  v.ischecked = true
               }
            })
         } else {
            this.jhOrderPlanForwardList[index].carNum = null;
            let tempforwardSurplus = this.forwardSurplus
            let tempcarNumSurplus1 = this.carNumSurplus1
            // 货代
            if (this.roleType == 2) {
               this.jhOrderPlanForwardList[index].carNum = this.allrelayto(this.jhOrderPlanForwardList[index].carNum, this.forwardSurplus)
            }
            // 客户
            if (this.roleType == 1) {
               this.jhOrderPlanForwardList[index].carNum = this.allrelayto(this.jhOrderPlanForwardList[index].carNum, this.carNumSurplus1)
            }
         }
      },
      // 获取货代列表
      getAllHuoDaiByCustomerId() {
         this.$reqGet('getAllHuoDaiByCustomerId').then(res => {
            this.huoDaiData = res.data;
            console.log('货代列表', res);
         });
            this.huoDaiData = res.data
         })
      },
      // 获取车队列表
      getFleet() {
         this.$reqGet('getFleet').then(res => {
            this.fleetData = res.data;
            console.log('车队列表', res);
         });
            this.fleetData = res.data
         })
      },
      // 转发
      forwardObjectClick(index) {
         this.selectPopupShow = true;
         this.index = index;
         console.log(this.huoDaiData, this.fleetData, '转发');
         this.selectPopupShow = true
         this.index = index
      },
      selectPopupClose() {
         this.selectPopupShow = false;
         this.selectPopupShow = false
      },
      selectPopupOpen() {
         console.log('弹出框打开了');
      },
      selectPopupOpen() {},
      // 转发选择货代
      forwardHuoDaiObjectSelect(item) {
         this.selectPopupShow = false;
         this.jhOrderPlanForwardList[this.index].xsUserId = item.userId;
         this.jhOrderPlanForwardList[this.index].name = item.name;
         this.jhOrderPlanForwardList[this.index].fleetId = 0;
         console.log('货代选择', this.jhOrderPlanForwardList[this.index]);
      forwardHuoDaiObjectSelect(item, index) {
         this.$nextTick(() => {
            let isableAdd = this.jhOrderPlanForwardList.filter(v => item.name === v.name)
            if (isableAdd.length > 0) {
               this.$u.toast('存在重复添加')
               this.selectPopupShow = true
            } else {
               this.selectPopupShow = false
               this.jhOrderPlanForwardList[this.index].xsUserId = item.userId
               this.jhOrderPlanForwardList[this.index].name = item.name
               this.jhOrderPlanForwardList[this.index].fleetId = 0
            }
         })
      },
      // 转发选择车队
      forwardFleetObjectSelect(item) {
         this.selectPopupShow = false;
         this.jhOrderPlanForwardList[this.index].fleetId = item.id;
         this.jhOrderPlanForwardList[this.index].name = item.name;
         this.jhOrderPlanForwardList[this.index].xsUserId = 0;
         console.log('车队选择', this.jhOrderPlanForwardList[this.index]);
      forwardFleetObjectSelect(item, index) {
         this.$nextTick(() => {
            let isableAdd = this.jhOrderPlanForwardList.filter(v => item.name === v.name)
            if (isableAdd.length > 0) {
               this.$u.toast('存在重复添加')
               this.selectPopupShow = true
            } else {
               this.selectPopupShow = false
               this.jhOrderPlanForwardList[this.index].fleetId = item.id
               this.jhOrderPlanForwardList[this.index].name = item.name
               this.jhOrderPlanForwardList[this.index].xsUserId = 0
            }
         })
      },
      // 添加一组表单
      addForm() {
         this.jhOrderPlanForwardList.push({
            orderPlanId: this.orderPlanId,
            name: '',
            carNum: 0,
            xsUserId: 0,
            fleetId: 0,
            checkboxValue1: ''
         });
         // 判断是否有一个复选,如果有则禁止新加的复选,没有则不禁止
         let ischeck = this.jhOrderPlanForwardList.some(v => v.ischecked == true)
         if (!ischeck) {
            this.jhOrderPlanForwardList.push({
               orderPlanId: this.orderPlanId,
               name: '',
               carNum: 0,
               xsUserId: 0,
               fleetId: 0,
               checkboxValue1: '',
               ischecked: false
            })
         } else {
            this.jhOrderPlanForwardList.push({
               orderPlanId: this.orderPlanId,
               name: '',
               carNum: 0,
               xsUserId: 0,
               fleetId: 0,
               checkboxValue1: '',
               ischecked: true
            })
         }
      },
      // 删除一组表单
      deleteGroup(index, v) {
         if (v.id) {
         let tempcarNum = v.carNum
         if (v.id && this.jhOrderPlanForwardList[index].carNum !== tempcarNum) {
            this.$reqPost('deleteForward', { id: v.id }, 'params').then(res => {
               if (res.code === 0) {
                  this.jhOrderPlanForwardList.splice(index, 1);
                  this.$u.toast('删除成功');
                  this.jhOrderPlanForwardList.splice(index, 1)
                  this.$u.toast('删除成功')
               } else if (res.code === 1) {
                  this.$u.toast(res.msg)
               }
            });
            })
         } else {
            this.jhOrderPlanForwardList.splice(index, 1);
            this.jhOrderPlanForwardList.splice(index, 1)
            this.$u.toast('删除成功')
         }
      },
      // 提交
      submitForm() {
         let isPass = false;
         let isPass = false
         if (this.jhOrderPlanForwardList.length === 0) {
            this.$u.toast('请至少选择一组转发对象')
         }
         this.jhOrderPlanForwardList.forEach(v => {
            if (isNaN(Number(v.carNum)) || Number(v.carNum) <= 0) {
               this.$u.toast('请输入合法数字');
               isPass = false;
               return isPass;
            } else if (Number(v.carNum) > Number(this.forwardSurplus)) {
               this.$u.toast('超过最大订单剩余量');
               isPass = false;
               return isPass;
            } else {
               isPass = true;
               return isPass;
               this.$u.toast('请输入合法数字')
               isPass = false
               return isPass
            }
         });
            // else if (Number(v.carNum) > Number(this.forwardSurplus)) {
            //    this.$u.toast('超过最大订单剩余量');
            //    isPass = false;
            //    return isPass;
            // }
            else {
               isPass = true
               return isPass
            }
         })
         if (isPass) {
            this.$reqPost('forward', this.jhOrderPlanForwardList, 'json').then(res => {
               console.log(res, 'zh')
               if (res.code == 0) {
                  this.$u.toast('提交成功');
                  this.$u.toast('提交成功')
                  setTimeout(() => {
                     uni.navigateBack({ delta: 1 });
                  }, 1000);
                     uni.navigateBack({ delta: 1 })
                  }, 1000)
               } else {
                  this.$u.toast(res.msg)
               }
            });
            })
         }
      },
      tabClick(item) {
         console.log('tab点击', item);
         if (item.name == '货代') {
            this.tabHuoDai = true;
            this.tabHuoDai = true
         } else {
            this.tabHuoDai = false;
            this.tabHuoDai = false
         }
      }
   }
};
}
</script>
<style lang="scss" scoped>