From 29658de29b2eb5292bf0c2fad7427b374b769ebc Mon Sep 17 00:00:00 2001
From: qingyiay <2386314947@qq.com>
Date: 星期三, 10 五月 2023 20:29:31 +0800
Subject: [PATCH] 样式修改,引入字体,修改逻辑

---
 pages/public-page/forward/forward.vue |  398 ++++++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 327 insertions(+), 71 deletions(-)

diff --git a/pages/public-page/forward/forward.vue b/pages/public-page/forward/forward.vue
index c3d81d6..40d8611 100644
--- a/pages/public-page/forward/forward.vue
+++ b/pages/public-page/forward/forward.vue
@@ -1,21 +1,37 @@
 <template>
 	<!-- 杞彂 -->
 	<view class="forward">
-		<view class="forward-card">
+		<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"><u--input v-model="name" placeholder="鐐瑰嚮閫夋嫨杞彂瀵硅薄"></u--input></u-form-item>
+				<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="forwardForm.nums" placeholder="璇疯緭鍏ヨ浆鍙戞暟閲�"></u--input></view>
-						<u-checkbox-group v-model="checkboxValue1" placement="column" @change="checkboxChange">
-							<u-checkbox :customStyle="{ marginBottom: '8px' }" size="30" labelSize="30" label="鍏ㄩ儴杞彂" name="鍏ㄩ儴杞彂"></u-checkbox>
+						<view class="forward-card-amount-input">
+							<u--input
+								v-model="val.carNum"
+								placeholder="璇疯緭鍏ヨ浆鍙戞暟閲�"
+								@input="debouncecarNumInput(index, val.carNum)"
+								@blur="blurInput(index, val.carNum)"
+							></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>
+		<!-- 澧炲姞鎸夐挳 -->
+		<view class="AdddBtn">
+			<u-button text="娣诲姞" :hairline="false" type="primary" :customStyle="{ marginBottom: '8px' }" @click="addForm" :disabled="whetherClick"></u-button>
+		</view>
 		<!-- 鎸夐挳 -->
-		<view class="forwardBtn"><u-button text="鎻愪氦" :hairline="false" type="primary" @click="submitForm"></u-button></view>
+		<view class="forwardBtn"><u-button text="鎻愪氦" :hairline="false" type="warning" @click="submitForm" :disabled="whetherClick1"></u-button></view>
 
 		<!-- 閫夋嫨璐т唬鎴栬溅闃熷脊鍑烘 -->
 		<view class="selectHuoDaiOrFleet-container">
@@ -25,14 +41,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>
@@ -44,37 +64,89 @@
 
 <script>
 import { customerId } from '@/utils/status';
+import toast from '../../../uni_modules/uview-ui/libs/config/props/toast';
 
 export default {
 	onLoad(params) {
-		console.log('杞彂鐨勬彁鐓ゅ崟id', params.orderPlanId, params.carNum);
-		this.forwardForm.orderPlanId = params.orderPlanId;
-		this.carNumTatal = params.carNum;
+		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: [],
-			carNumTatal: null,
-			name: '',
-			forwardForm: {
-				orderPlanId: null,
-				nums: null,
-				userId: 0,
-				fleetId: 0
-			},
-			checkboxValue1: '',
-			selectPopupShow: false,
-			list1: [
+			// 鏃ヨ鍒抜d
+			orderPlanId: '',
+			jhOrderPlanForwardList: [
 				{
-					name: '杞﹂槦'
-				},
-				{
-					name: '璐т唬'
+					orderPlanId: '',
+					name: '',
+					carNum: null,
+					xsUserId: 0,
+					fleetId: 0,
+					checkboxValue1: ''
 				}
 			],
-			tabHuoDai: false
+			// 绱㈠紩锛屽埄鐢ㄧ储寮曟纭樉绀�
+			index: '',
+			checkboxValue1: '',
+			selectPopupShow: false,
+			list1: [{ name: '杞﹂槦' }, { name: '璐т唬' }],
+			tabHuoDai: false,
+			carNumSurplus1: '',
+			tempcarNumSurplus1: '',
+			cars2: '',
+			carNum: '',
+			carNumSurplusHuodai: '',
+			formNum: 1,
+			// 涓汉杞彂鏁版嵁
+			personalForward: {},
+			whetherClick: false,
+			whetherClick1: false
 		};
 	},
 	onShow() {
@@ -87,11 +159,16 @@
 	computed: {
 		roleType() {
 			return uni.getStorageSync('roleType');
+		},
+		text() {
+			return `宸查鍙�${this.cars2}寮犳彁鐓ゅ崟,鍓╀綑${this.carNumSurplus1}寮犳彁鐓ゅ崟`;
+		},
+		text1() {
+			return `宸叉嫢鏈�${this.carNum}寮犳彁鐓ゅ崟,鍓╀綑${this.carNumSurplusHuodai}寮犳彁鐓ゅ崟`;
 		}
 	},
 	methods: {
 		init() {
-			console.log('roleType', this.roleType);
 			switch (this.roleType) {
 				case 1:
 					this.getAllHuoDaiByCustomerId();
@@ -104,71 +181,247 @@
 					break;
 			}
 		},
-		checkboxChange(value) {
-			console.log('澶嶉�夋鍙樺寲', value);
-			if (value.length != 0) {
-				this.forwardForm.nums = this.carNumTatal;
+		allrelay(x, y) {
+			let a = 0;
+			if (y != 0) {
+				a = Number(x) + Number(y);
+				return a;
 			} else {
-				this.forwardForm.nums = null;
+				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.forwardSurplus, 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;
-				console.log('璐т唬鍒楄〃', res);
 			});
 		},
 		// 鑾峰彇杞﹂槦鍒楄〃
 		getFleet() {
 			this.$reqGet('getFleet').then(res => {
 				this.fleetData = res.data;
-				console.log('杞﹂槦鍒楄〃', res);
 			});
 		},
 		// 杞彂
-		forwardObjectClick() {
-			console.log('hahah');
+		forwardObjectClick(index) {
 			this.selectPopupShow = true;
-			console.log(this.huoDaiData, this.fleetData, '杞彂');
+			this.index = index;
 		},
 		selectPopupClose() {
 			this.selectPopupShow = false;
 		},
-		selectPopupOpen() {
-			console.log('寮瑰嚭妗嗘墦寮�浜�');
-		},
+		selectPopupOpen() {},
 		// 杞彂閫夋嫨璐т唬
-		forwardHuoDaiObjectSelect(item) {
-			this.selectPopupShow = false;
-			this.forwardForm.userId = item.id;
-			// this.forwardForm.name = item.huoDaiName;
-			this.name = item.huoDaiName;
-			this.forwardForm.fleetId = 0;
-			console.log('璐т唬閫夋嫨', this.forwardForm);
-		},
-		// 杞彂閫夋嫨杞﹂槦
-		forwardFleetObjectSelect(item) {
-			this.selectPopupShow = false;
-			this.forwardForm.fleetId = item.id;
-			// this.forwardForm.name = item.name;
-			this.name = item.name;
-			this.forwardForm.userId = 0;
-			console.log('杞﹂槦閫夋嫨', this.forwardForm);
-		},
-		// 鎻愪氦
-		submitForm() {
-			this.$reqPost('forward', this.forwardForm, 'params').then(res => {
-				if (res.code == 0) {
-					this.$u.toast('鎻愪氦鎴愬姛');
-					setTimeout(() => {
-						uni.navigateBack({ delta: 1 });
-					}, 1000);
+		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;
+				}
+			}
+			return total;
+		},
+		debouncecarNumInput(index, value) {
+			let time;
+			let that = this;
+			return (function() {
+				if (!time) {
+					time = setTimeout(() => {
+						that.$set(that.jhOrderPlanForwardList[index], 'carNum', Number(value));
+						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.jhOrderPlanForwardList[index].carNum !== tempcarNum) {
+				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) {
-			console.log('tab鐐瑰嚮', item);
 			if (item.name == '璐т唬') {
 				this.tabHuoDai = true;
 			} else {
@@ -186,8 +439,11 @@
 
 	// 鍗$墖
 	.forward-card {
-		margin-top: vww(24);
-
+		margin-top: vww(10);
+		.notice-bar {
+			width: 100%;
+			height: vww(24);
+		}
 		.u-form {
 			.u-form-item {
 				.u-form-item__body {
@@ -217,8 +473,8 @@
 	}
 
 	.forwardBtn {
-		width: 90%;
-		position: fixed;
+		width: 100%;
+		// position: fixed;
 		bottom: vww(50);
 	}
 

--
Gitblit v1.9.1