<template>
|
<!-- 转发 -->
|
<view class="forward">
|
<view class="forward-banner">
|
<view class="banner-block">
|
<view class="arrow-left" @click="back"><u-icon name="arrow-left" size="40" color="#ffffff"></u-icon></view>
|
<view class="forward-text">转发</view>
|
</view>
|
</view>
|
<view v-if="roleType == 1" class="notice-bar">
|
<u-notice-bar :text="text" :fontSize="30"></u-notice-bar>
|
<view
|
class="notice-icon"
|
style="background: url('https://mx.jzeg.cn:9095/appimg/image/banner/notice.png') no-repeat;background-size: cover; width: 42rpx;height: 42rpx;"
|
></view>
|
</view>
|
<view v-else-if="roleType == 2" class="notice-bar"><u-notice-bar :text="text1" :fontSize="30"></u-notice-bar></view>
|
<view class="card-main">
|
<view class="card-block">
|
<view class="forward-card" v-for="(val, index) in jhOrderPlanForwardList" :key="index">
|
<u-swipe-action>
|
<u-swipe-action-item :options="options1" @click="deleteGroup(index, val)" :index="index" :name="val.xsUserId || val.fleetId">
|
<view class="card-content">
|
<u--form labelPosition="left" :model="forwardForm" ref="form1">
|
<u-form-item label="转发对象" labelWidth="21%" ref="item1" @click="forwardObjectClick(index)">
|
<u--input v-model="val.name" placeholder="点击选择转发对象" :readonly="true" border="bottom"></u--input>
|
</u-form-item>
|
<u-form-item label="输入数量" ref="item2" labelWidth="21%">
|
<view class="forward-card-amount">
|
<view class="forward-card-amount-input">
|
<u--input
|
v-model="val.carNum"
|
placeholder="请输入转发数量"
|
@input="debouncecarNumInput(index, val.carNum)"
|
@blur="blurInput(index, val.carNum)"
|
border="bottom"
|
></u--input>
|
</view>
|
<u-checkbox-group v-model="val.checkboxValue1" placement="column" @change="v => checkboxChange(v, index, val)">
|
<u-checkbox size="30" shape="circle" labelSize="30" label="全部转发" name="全部转发" :disabled="val.ischecked"></u-checkbox>
|
</u-checkbox-group>
|
</view>
|
</u-form-item>
|
<!-- <u-form-item><u-button text="删除本组" :hairline="false" type="error" @click="deleteGroup(index, val)"></u-button></u-form-item> -->
|
</u--form>
|
</view>
|
</u-swipe-action-item>
|
</u-swipe-action>
|
</view>
|
</view>
|
</view>
|
|
<view class="utils-buttonGroup">
|
<!-- 添加按钮 -->
|
<view class="AdddBtn"><u-button text="添加" :hairline="false" @click.stop="addForm" :disabled="whetherClick"></u-button></view>
|
<!-- 提交按钮 -->
|
<view class="forwardBtn"><u-button text="提交" :hairline="false" type="warning" @click.stop="submitForm" :disabled="whetherClick1"></u-button></view>
|
</view>
|
<!-- 增加按钮 -->
|
|
<!-- 选择货代或车队弹出框 -->
|
<view class="selectHuoDaiOrFleet-container">
|
<u-popup :show="selectPopupShow" mode="bottom" @close="selectPopupClose" @open="selectPopupOpen">
|
<view class="selectHuoDaiOrFleet-container-box">
|
<u-tabs :list="list1" @click="tabClick"></u-tabs>
|
<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, 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, index)" text="选择" type="primary" size="mini"></u-button>
|
</view>
|
</u-cell>
|
</u-cell-group>
|
</view>
|
</view>
|
</u-popup>
|
</view>
|
</view>
|
</template>
|
|
<script>
|
import { customerId } from '@/utils/status';
|
import toast from '../../../uni_modules/uview-ui/libs/config/props/toast';
|
|
export default {
|
onLoad(params) {
|
console.log(params, '转发页面的参数');
|
// 客户
|
this.cars2 = Number(params.cars2);
|
this.tempcarNumSurplus1 = 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.length !== 0 && this.roleType == 1) {
|
this.jhOrderPlanForwardList = res.data.map(item => {
|
return {
|
id: item.id,
|
orderPlanId: item.orderPlanId,
|
name: item.xsUserName === null ? item.fleetName : item.xsUserName,
|
carNum: item.carNum,
|
xsUserId: item.xsUserId === null ? 0 : item.xsUserId,
|
fleetId: item.fleetId === null ? 0 : item.fleetId,
|
checkboxValue1: ''
|
};
|
});
|
} 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 {
|
forwardSurplus: 0,
|
paramsName: {},
|
huoDaiData: [],
|
fleetData: [],
|
// 日计划id
|
orderPlanId: '',
|
jhOrderPlanForwardList: [
|
{
|
orderPlanId: '',
|
name: '',
|
carNum: null,
|
xsUserId: 0,
|
fleetId: 0,
|
checkboxValue1: ''
|
}
|
],
|
// 索引,利用索引正确显示
|
index: '',
|
checkboxValue1: '',
|
selectPopupShow: false,
|
list1: [{ name: '车队' }, { name: '货代' }],
|
tabHuoDai: false,
|
carNumSurplus1: '',
|
tempcarNumSurplus1: '',
|
cars2: '',
|
carNum: '',
|
carNumSurplusHuodai: '',
|
formNum: 1,
|
// 个人转发数据
|
personalForward: {},
|
whetherClick: false,
|
whetherClick1: false,
|
// 滑动单元格配置
|
options1: [
|
{
|
text: '删除',
|
style: {
|
backgroundColor: '#FB0101'
|
}
|
}
|
]
|
};
|
},
|
onShow() {
|
this.init();
|
if (this.roleType == 2) {
|
this.list1.splice(1, 1);
|
this.tabHuoDai = false;
|
}
|
},
|
computed: {
|
roleType() {
|
return uni.getStorageSync('roleType');
|
},
|
text() {
|
return `已领取${this.cars2}张提煤单,剩余${this.carNumSurplus1}张提煤单`;
|
},
|
text1() {
|
return `已拥有${this.carNum}张提煤单,剩余${this.carNumSurplusHuodai}张提煤单`;
|
}
|
},
|
methods: {
|
// 返回上一页
|
back() {
|
uni.navigateBack({
|
delta: 1
|
});
|
},
|
init() {
|
switch (this.roleType) {
|
case 1:
|
this.getAllHuoDaiByCustomerId();
|
this.getFleet();
|
break;
|
case 2:
|
this.getFleet();
|
break;
|
default:
|
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, v) {
|
this.jhOrderPlanForwardList = this.jhOrderPlanForwardList.map(v => {
|
return {
|
...v,
|
ischecked: false
|
};
|
});
|
if (value.length != 0) {
|
let tempforwardSurplus = this.forwardSurplus;
|
let tempcarNumSurplus1 = this.carNumSurplus1;
|
// if (v.id) {
|
// this.$reqGet('jhorderplanforward', { forwardId: v.id }).then(res => {
|
// this.personalForward = res.data;
|
// // 计算全部转发数
|
// // 客户
|
// if (this.roleType == 1) {
|
// this.jhOrderPlanForwardList[index].carNum = this.allrelay(this.personalForward.carNum, tempcarNumSurplus1);
|
// this.calculate(this.jhOrderPlanForwardList);
|
// if (tempcarNumSurplus1 == 0) {
|
// this.jhOrderPlanForwardList[index].carNum = this.allrelay(0, this.carNumSurplus1);
|
// }
|
// }
|
// tempcarNumSurplus1 = 0;
|
// // 货代
|
// if (this.roleType == 2) {
|
// this.jhOrderPlanForwardList[index].carNum = this.allrelay(this.personalForward.carNum, tempforwardSurplus);
|
// }
|
// tempforwardSurplus = 0;
|
// });
|
// } else { }
|
|
if (this.roleType == 1) {
|
this.jhOrderPlanForwardList[index].carNum = this.allrelay(this.carNumSurplus1, this.jhOrderPlanForwardList[index].carNum);
|
this.calculate(this.jhOrderPlanForwardList);
|
}
|
if (this.roleType == 2) {
|
this.jhOrderPlanForwardList[index].carNum = this.allrelay(this.carNumSurplusHuodai, this.jhOrderPlanForwardList[index].carNum);
|
this.calculate(this.jhOrderPlanForwardList);
|
}
|
// 选择一个后其余禁止复选
|
this.jhOrderPlanForwardList.forEach((v, i) => {
|
if (i !== index) {
|
v.ischecked = true;
|
}
|
});
|
this.whetherClick = true;
|
} else {
|
this.jhOrderPlanForwardList[index].carNum = 0;
|
this.calculate(this.jhOrderPlanForwardList);
|
}
|
},
|
// 获取货代列表
|
getAllHuoDaiByCustomerId() {
|
this.$reqGet('getAllHuoDaiByCustomerId').then(res => {
|
this.huoDaiData = res.data;
|
});
|
},
|
// 获取车队列表
|
getFleet() {
|
this.$reqGet('getFleet').then(res => {
|
this.fleetData = res.data;
|
});
|
},
|
// 转发
|
forwardObjectClick(index) {
|
this.selectPopupShow = true;
|
this.index = index;
|
},
|
selectPopupClose() {
|
this.selectPopupShow = false;
|
},
|
selectPopupOpen() {},
|
// 转发选择货代
|
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, 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;
|
}
|
});
|
},
|
// 计算提煤单数量,添加或删除时调用
|
calculate(arr) {
|
let total = arr.reduce((prev, cur) => {
|
return cur.carNum + prev;
|
}, 0);
|
console.log(total, '提煤单一共的数据');
|
if (this.roleType == 1) {
|
if (this.cars2 >= total) {
|
this.carNumSurplus1 = this.cars2 - total;
|
this.whetherClick = false;
|
this.whetherClick1 = false;
|
} else {
|
this.carNumSurplus1 = 0;
|
this.$u.toast('剩余提煤单数量不足');
|
this.whetherClick = true;
|
this.whetherClick1 = true;
|
}
|
}
|
if (this.roleType == 2) {
|
if (this.carNum >= total) {
|
this.carNumSurplusHuodai = this.carNum - total;
|
this.whetherClick = false;
|
this.whetherClick1 = false;
|
} else {
|
this.carNumSurplusHuodai = 0;
|
this.$u.toast('剩余提煤单数量不足');
|
this.whetherClick = true;
|
this.whetherClick1 = true;
|
}
|
}
|
},
|
debouncecarNumInput(index, value) {
|
let time;
|
let that = this;
|
that.$set(that.jhOrderPlanForwardList[index], 'carNum', Number(value));
|
return (function() {
|
if (!time) {
|
time = setTimeout(() => {
|
that.calculate(that.jhOrderPlanForwardList);
|
time = null;
|
}, 800);
|
}
|
})();
|
},
|
blurInput(index, value) {
|
this.$set(this.jhOrderPlanForwardList[index], 'carNum', Number(value));
|
this.calculate(this.jhOrderPlanForwardList);
|
},
|
// 添加一组表单
|
addForm() {
|
// 判断是否有一个复选,如果有则禁止新加的复选,没有则不禁止
|
let ischeck = this.jhOrderPlanForwardList.some(v => v.ischecked == true);
|
if (!ischeck) {
|
this.jhOrderPlanForwardList.push({
|
orderPlanId: this.orderPlanId,
|
name: '',
|
carNum: null,
|
xsUserId: 0,
|
fleetId: 0,
|
checkboxValue1: '',
|
ischecked: false
|
});
|
} else {
|
this.jhOrderPlanForwardList.push({
|
orderPlanId: this.orderPlanId,
|
name: '',
|
carNum: null,
|
xsUserId: 0,
|
fleetId: 0,
|
checkboxValue1: '',
|
ischecked: true
|
});
|
}
|
this.calculate(this.jhOrderPlanForwardList);
|
},
|
// 删除一组表单
|
deleteGroup(index, v) {
|
let tempcarNum = v.carNum;
|
if (v.id) {
|
this.$reqPost('deleteForward', { id: v.id }, 'params').then(res => {
|
if (res.code === 0) {
|
this.jhOrderPlanForwardList.splice(index, 1);
|
this.calculate(this.jhOrderPlanForwardList);
|
this.$u.toast('删除成功');
|
} else if (res.code === 1) {
|
this.$u.toast(res.msg);
|
}
|
});
|
} else {
|
this.jhOrderPlanForwardList.splice(index, 1);
|
this.calculate(this.jhOrderPlanForwardList);
|
this.$u.toast('删除成功');
|
}
|
},
|
// 提交
|
submitForm() {
|
let isPass = false;
|
if (this.jhOrderPlanForwardList.length === 0) {
|
this.$u.toast('请至少选择一组转发对象');
|
}
|
let reg = /^[1-9]\d*$/;
|
this.jhOrderPlanForwardList.forEach(v => {
|
if (!reg.test(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;
|
}
|
});
|
if (isPass) {
|
this.$reqPost('forward', this.jhOrderPlanForwardList, 'json').then(res => {
|
console.log(res, 'zh');
|
if (res.code == 0) {
|
this.$u.toast('提交成功');
|
setTimeout(() => {
|
uni.navigateBack({ delta: 1 });
|
}, 1000);
|
} else {
|
this.$u.toast(res.msg);
|
}
|
});
|
}
|
},
|
tabClick(item) {
|
if (item.name == '货代') {
|
this.tabHuoDai = true;
|
} else {
|
this.tabHuoDai = false;
|
}
|
}
|
}
|
};
|
</script>
|
|
<style lang="scss" scoped>
|
@mixin flex {
|
display: flex;
|
justify-content: space-between;
|
align-items: center;
|
}
|
/deep/ .u-notice-bar {
|
background: rgba(255, 255, 255, 0.3) !important;
|
box-shadow: 0rpx 0rpx 5rpx 0rpx rgba(27, 103, 255, 0);
|
border-radius: 28rpx;
|
.u-notice__content {
|
text {
|
text-shadow: 3rpx 3rpx 8rpx #4784fe;
|
font-size: 24rpx;
|
color: #fd1446 !important;
|
font-weight: 400;
|
}
|
}
|
}
|
/deep/ .u-input {
|
border-bottom: 1px solid #c4c4c4;
|
width: 458rpx;
|
}
|
::v-deep.forward {
|
width: 100%;
|
margin: 0 auto;
|
.forward-banner {
|
width: 100%;
|
height: 430rpx;
|
background: linear-gradient(0deg, #ffffff 0%, #0055fe 100%);
|
@include flex;
|
justify-content: flex-start;
|
overflow: hidden;
|
.banner-block {
|
width: 50%;
|
@include flex;
|
position: relative;
|
top: -75rpx;
|
left: 32rpx;
|
.forward-text {
|
width: 80rpx;
|
font-size: 40rpx;
|
font-weight: 400;
|
color: #ffffff;
|
line-height: 69rpx;
|
}
|
}
|
}
|
.notice-bar {
|
width: 688rpx;
|
height: 56rpx;
|
margin: 0 auto;
|
position: relative;
|
top: -200rpx;
|
background: transparent;
|
.notice-icon {
|
position: absolute;
|
top: 21rpx;
|
left: 7rpx;
|
}
|
}
|
.card-main {
|
width: 100%;
|
@include flex;
|
justify-content: center;
|
position: relative;
|
top: -100rpx;
|
z-index: 1;
|
margin-bottom: vww(40);
|
.card-block {
|
width: 690rpx;
|
@include flex;
|
flex-direction: column;
|
.forward-card {
|
margin-top: vww(10);
|
width: 690rpx;
|
height: 275rpx;
|
background: #ffffff;
|
box-shadow: 4rpx 6rpx 25rpx 0rpx rgba(73, 120, 240, 0.15);
|
border-radius: 20rpx;
|
.card-content {
|
width: 612rpx;
|
margin-left: 48rpx;
|
margin-top: 24rpx;
|
// margin: 56rpx 30rpx 70rpx 48rpx;
|
.u-form {
|
.u-form-item {
|
.u-form-item__body {
|
.u-form-item__body__left {
|
.u-form-item__body__left__content {
|
.u-form-item__body__left__content__label {
|
font-weight: 400 !important;
|
color: #898989 !important;
|
font-size: 30rpx !important;
|
}
|
}
|
}
|
.u-form-item__body__right {
|
.u-form-item__body__right__content {
|
.u-form-item__body__right__content__slot {
|
.forward-card-amount {
|
display: flex;
|
justify-content: space-between;
|
align-items: flex-end;
|
.forward-card-amount-input {
|
.u-input {
|
width: 263rpx;
|
}
|
}
|
.u-checkbox-group {
|
position: relative;
|
top: vww(8);
|
left: vww(4);
|
.u-checkbox {
|
.u-checkbox__icon-wrap {
|
border-color: rgba(42, 97, 255, 1) !important;
|
}
|
}
|
}
|
}
|
}
|
}
|
}
|
}
|
}
|
}
|
}
|
}
|
}
|
}
|
.utils-buttonGroup {
|
width: 610rpx;
|
@include flex;
|
position: fixed;
|
bottom: vww(30);
|
left: vww(30);
|
z-index: 3;
|
.AdddBtn,
|
.forwardBtn {
|
width: 290rpx;
|
}
|
.AdddBtn {
|
.u-button {
|
height: 74rpx;
|
border: 1px solid #3b56eb;
|
border-radius: 37rpx 37rpx 37rpx 37rpx;
|
background: transparent;
|
color: #3b56eb;
|
}
|
}
|
.forwardBtn {
|
.u-button {
|
height: 74rpx;
|
color: #ffffff;
|
background: rgba(73, 123, 251, 1);
|
border: 0;
|
border-radius: 37rpx 37rpx 37rpx 37rpx;
|
}
|
}
|
}
|
.selectHuoDaiOrFleet-container {
|
.u-popup {
|
.u-transition {
|
height: 80%;
|
|
.u-popup__content {
|
overflow: scroll !important;
|
.selectHuoDaiOrFleet-container-box {
|
width: 90%;
|
margin: 0 auto;
|
}
|
}
|
}
|
}
|
}
|
}
|
</style>
|