| | |
| | | <template> |
| | | <!-- 转发 --> |
| | | <view class="forward"> |
| | | <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="点击选择转发对象" :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="全部转发" :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 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="AdddBtn"><u-button text="添加" :hairline="false" type="primary" :customStyle="{ marginBottom: '8px' }" @click="addForm"></u-button></view> |
| | | <!-- 按钮 --> |
| | | <view class="forwardBtn"><u-button text="提交" :hairline="false" type="warning" @click="submitForm"></u-button></view> |
| | | |
| | | <!-- 选择货代或车队弹出框 --> |
| | | <view class="selectHuoDaiOrFleet-container"> |
| | |
| | | |
| | | <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.carNumSurplus1 = Number(params.carNumSurplus1); |
| | | this.tempcarNumSurplus1 = this.carNumSurplus1 = Number(params.carNumSurplus1); |
| | | // 货代 |
| | | this.carNum = Number(params.carNum); |
| | | this.carNumSurplusHuodai = this.forwardSurplus = Number(params.carNumSurplusHuodai); |
| | |
| | | index: '', |
| | | checkboxValue1: '', |
| | | selectPopupShow: false, |
| | | list1: [ |
| | | { |
| | | name: '车队' |
| | | }, |
| | | { |
| | | name: '货代' |
| | | } |
| | | ], |
| | | list1: [{ name: '车队' }, { name: '货代' }], |
| | | tabHuoDai: false, |
| | | carNumSurplus1: '', |
| | | tempcarNumSurplus1: '', |
| | | cars2: '', |
| | | carNum: '', |
| | | carNumSurplusHuodai: '', |
| | | formNum: 1 |
| | | formNum: 1, |
| | | // 个人转发数据 |
| | | personalForward: {}, |
| | | whetherClick: false, |
| | | whetherClick1: false, |
| | | // 滑动单元格配置 |
| | | options1: [ |
| | | { |
| | | text: '删除', |
| | | style: { |
| | | backgroundColor: '#FB0101' |
| | | } |
| | | } |
| | | ] |
| | | }; |
| | | }, |
| | | onShow() { |
| | |
| | | return uni.getStorageSync('roleType'); |
| | | }, |
| | | text() { |
| | | return `已领取${this.cars2}张日计划单,剩余${this.carNumSurplus1}张日计划单`; |
| | | return `已领取${this.cars2}张提煤单,剩余${this.carNumSurplus1}张提煤单`; |
| | | }, |
| | | text1() { |
| | | return `已拥有${this.carNum}张日计划单,剩余${this.carNumSurplusHuodai}张日计划单`; |
| | | return `已拥有${this.carNum}张提煤单,剩余${this.carNumSurplusHuodai}张提煤单`; |
| | | } |
| | | }, |
| | | methods: { |
| | | // 返回上一页 |
| | | back() { |
| | | uni.navigateBack({ |
| | | delta: 1 |
| | | }); |
| | | }, |
| | | init() { |
| | | console.log('roleType', this.roleType); |
| | | switch (this.roleType) { |
| | | case 1: |
| | | this.getAllHuoDaiByCustomerId(); |
| | |
| | | allrelay(x, y) { |
| | | let a = 0; |
| | | if (y != 0) { |
| | | a = x + y; |
| | | a = Number(x) + Number(y); |
| | | return a; |
| | | } else { |
| | | return x; |
| | | return Number(x); |
| | | } |
| | | }, |
| | | allrelayto(x, y) { |
| | | let a = 0; |
| | | if (y != 0) { |
| | | a = x - y; |
| | | a = Number(x) - Number(y); |
| | | return a; |
| | | } else { |
| | | return x; |
| | | return Number(x); |
| | | } |
| | | }, |
| | | checkboxChange(value, index) { |
| | | uni.setStorageSync('allrelay', this.jhOrderPlanForwardList[index].carNum); |
| | | this.jhOrderPlanForwardList = this.jhOrderPlanForwardList.map((v, i) => { |
| | | 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.jhOrderPlanForwardList[index].carNum, tempcarNumSurplus1); |
| | | this.jhOrderPlanForwardList[index].carNum = this.allrelay(this.carNumSurplus1, this.jhOrderPlanForwardList[index].carNum); |
| | | this.calculate(this.jhOrderPlanForwardList); |
| | | } |
| | | tempcarNumSurplus1 = 0; |
| | | // 货代 |
| | | if (this.roleType == 2) { |
| | | this.jhOrderPlanForwardList[index].carNum = this.allrelay(this.jhOrderPlanForwardList[index].carNum, tempforwardSurplus); |
| | | this.jhOrderPlanForwardList[index].carNum = this.allrelay(this.carNumSurplusHuodai, this.jhOrderPlanForwardList[index].carNum); |
| | | this.calculate(this.jhOrderPlanForwardList); |
| | | } |
| | | tempforwardSurplus = 0; |
| | | // 选择一个后其余禁止复选 |
| | | this.jhOrderPlanForwardList.forEach((v, i) => { |
| | | if (i !== index) { |
| | | v.ischecked = true; |
| | | } |
| | | }); |
| | | this.whetherClick = true; |
| | | } else { |
| | | 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); |
| | | } |
| | | this.jhOrderPlanForwardList[index].carNum = 0; |
| | | this.calculate(this.jhOrderPlanForwardList); |
| | | } |
| | | }, |
| | | // 获取货代列表 |
| | |
| | | } |
| | | }); |
| | | }, |
| | | // 计算提煤单数量,添加或删除时调用 |
| | | 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)); |
| | | if (that.roleType == 1) { |
| | | if (that.jhOrderPlanForwardList[index].carNum < that.carNumSurplus1) { |
| | | that.jhOrderPlanForwardList[index].checkboxValue1 = ''; |
| | | } |
| | | } |
| | | if (that.roleType == 2) { |
| | | if (that.jhOrderPlanForwardList[index].carNum < that.carNumSurplusHuodai) { |
| | | that.jhOrderPlanForwardList[index].checkboxValue1 = ''; |
| | | } |
| | | } |
| | | 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() { |
| | | // 判断是否有一个复选,如果有则禁止新加的复选,没有则不禁止 |
| | |
| | | this.jhOrderPlanForwardList.push({ |
| | | orderPlanId: this.orderPlanId, |
| | | name: '', |
| | | carNum: 0, |
| | | carNum: null, |
| | | xsUserId: 0, |
| | | fleetId: 0, |
| | | checkboxValue1: '', |
| | |
| | | this.jhOrderPlanForwardList.push({ |
| | | orderPlanId: this.orderPlanId, |
| | | name: '', |
| | | carNum: 0, |
| | | carNum: null, |
| | | xsUserId: 0, |
| | | fleetId: 0, |
| | | checkboxValue1: '', |
| | | ischecked: true |
| | | }); |
| | | } |
| | | this.calculate(this.jhOrderPlanForwardList); |
| | | }, |
| | | // 删除一组表单 |
| | | deleteGroup(index, v) { |
| | | let tempcarNum = v.carNum; |
| | | if (v.id && this.jhOrderPlanForwardList[index].carNum !== tempcarNum) { |
| | | 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('删除成功'); |
| | | } |
| | | }, |
| | |
| | | if (this.jhOrderPlanForwardList.length === 0) { |
| | | this.$u.toast('请至少选择一组转发对象'); |
| | | } |
| | | let reg = /^[1-9]\d*$/; |
| | | this.jhOrderPlanForwardList.forEach(v => { |
| | | if (isNaN(Number(v.carNum)) || Number(v.carNum) <= 0) { |
| | | if (!reg.test(v.carNum) || Number(v.carNum) <= 0) { |
| | | this.$u.toast('请输入合法数字'); |
| | | isPass = false; |
| | | return isPass; |
| | |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | ::v-deep.forward { |
| | | width: 90%; |
| | | margin: 0 auto; |
| | | |
| | | // 卡片 |
| | | .forward-card { |
| | | margin-top: vww(10); |
| | | .notice-bar { |
| | | width: 100%; |
| | | height: vww(24); |
| | | @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; |
| | | } |
| | | .u-form { |
| | | .u-form-item { |
| | | .u-form-item__body { |
| | | .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 { |
| | | width: vww(245); |
| | | } |
| | | } |
| | | /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-input { |
| | | border: 1px solid #dddddd; |
| | | .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; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | } |
| | | } |
| | | } |
| | | .forward-card-amount { |
| | | display: flex; |
| | | } |
| | | .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; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .forwardBtn { |
| | | width: 100%; |
| | | // position: fixed; |
| | | bottom: vww(50); |
| | | } |
| | | |
| | | .selectHuoDaiOrFleet-container { |
| | | .u-popup { |
| | | .u-transition { |
| | | height: 95%; |
| | | height: 80%; |
| | | |
| | | .u-popup__content { |
| | | overflow: scroll !important; |