From ae1aad66a165ee7253bed2127a3b53baa40c2361 Mon Sep 17 00:00:00 2001
From: qingyiay <2386314947@qq.com>
Date: 星期三, 17 五月 2023 08:35:33 +0800
Subject: [PATCH] 修复错误,增加验证
---
pages/public-page/forward/forward.vue | 423 ++++++++++++++++++++++++++++++++++++++++------------
1 files changed, 321 insertions(+), 102 deletions(-)
diff --git a/pages/public-page/forward/forward.vue b/pages/public-page/forward/forward.vue
index e1a090f..1774faf 100644
--- a/pages/public-page/forward/forward.vue
+++ b/pages/public-page/forward/forward.vue
@@ -1,28 +1,62 @@
<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, val)">
- <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">
@@ -55,13 +89,14 @@
<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);
@@ -128,12 +163,24 @@
list1: [{ name: '杞﹂槦' }, { name: '璐т唬' }],
tabHuoDai: false,
carNumSurplus1: '',
+ tempcarNumSurplus1: '',
cars2: '',
carNum: '',
carNumSurplusHuodai: '',
formNum: 1,
// 涓汉杞彂鏁版嵁
- personalForward: {}
+ personalForward: {},
+ whetherClick: false,
+ whetherClick1: false,
+ // 婊戝姩鍗曞厓鏍奸厤缃�
+ options1: [
+ {
+ text: '鍒犻櫎',
+ style: {
+ backgroundColor: '#FB0101'
+ }
+ }
+ ]
};
},
onShow() {
@@ -155,6 +202,12 @@
}
},
methods: {
+ // 杩斿洖涓婁竴椤�
+ back() {
+ uni.navigateBack({
+ delta: 1
+ });
+ },
init() {
switch (this.roleType) {
case 1:
@@ -187,8 +240,7 @@
}
},
checkboxChange(value, index, v) {
- uni.setStorageSync('allrelay', this.jhOrderPlanForwardList[index].carNum);
- this.jhOrderPlanForwardList = this.jhOrderPlanForwardList.map((v, i) => {
+ this.jhOrderPlanForwardList = this.jhOrderPlanForwardList.map(v => {
return {
...v,
ischecked: false
@@ -197,30 +249,34 @@
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);
- }
- 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, this.carNumSurplus1);
- }
- tempcarNumSurplus1 = 0;
- if (this.roleType == 2) {
- this.jhOrderPlanForwardList[index].carNum = this.allrelay(this.jhOrderPlanForwardList[index].carNum, this.forwardSurplus);
- }
- tempforwardSurplus = 0;
+ // 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) => {
@@ -228,23 +284,10 @@
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.jhOrderPlanForwardList[index].carNum <= 0) {
- this.jhOrderPlanForwardList[index].carNum = 0;
- }
- }
- // 瀹㈡埛
- if (this.roleType == 1) {
- this.jhOrderPlanForwardList[index].carNum = this.allrelayto(this.jhOrderPlanForwardList[index].carNum, this.carNumSurplus1);
- if (this.jhOrderPlanForwardList[index].carNum <= 0) {
- this.jhOrderPlanForwardList[index].carNum = 0;
- }
- }
+ this.jhOrderPlanForwardList[index].carNum = 0;
+ this.calculate(this.jhOrderPlanForwardList);
}
},
// 鑾峰彇璐т唬鍒楄〃
@@ -298,6 +341,64 @@
}
});
},
+ // 璁$畻鎻愮叅鍗曟暟閲忥紝娣诲姞鎴栧垹闄ゆ椂璋冪敤
+ 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() {
// 鍒ゆ柇鏄惁鏈変竴涓閫夛紝濡傛灉鏈夊垯绂佹鏂板姞鐨勫閫夛紝娌℃湁鍒欎笉绂佹
@@ -306,7 +407,7 @@
this.jhOrderPlanForwardList.push({
orderPlanId: this.orderPlanId,
name: '',
- carNum: 0,
+ carNum: null,
xsUserId: 0,
fleetId: 0,
checkboxValue1: '',
@@ -316,21 +417,23 @@
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);
@@ -338,6 +441,7 @@
});
} else {
this.jhOrderPlanForwardList.splice(index, 1);
+ this.calculate(this.jhOrderPlanForwardList);
this.$u.toast('鍒犻櫎鎴愬姛');
}
},
@@ -347,8 +451,9 @@
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;
@@ -389,33 +494,127 @@
</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;
+ }
+ }
+ }
+ }
+ }
+ }
}
}
}
@@ -423,21 +622,41 @@
}
}
}
- .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;
--
Gitblit v1.9.1