From 3878c57a2bd710295931303ea85439a596838dfd Mon Sep 17 00:00:00 2001
From: Mr.Shi <1878285526@qq.com>
Date: 星期二, 05 九月 2023 16:01:31 +0800
Subject: [PATCH] 小程序

---
 minipro_standard/pages/allocation/allocation.vue |  122 ++++++++++++++++++++++++++++++----------
 1 files changed, 92 insertions(+), 30 deletions(-)

diff --git a/minipro_standard/pages/allocation/allocation.vue b/minipro_standard/pages/allocation/allocation.vue
index 43022fc..cda34f5 100644
--- a/minipro_standard/pages/allocation/allocation.vue
+++ b/minipro_standard/pages/allocation/allocation.vue
@@ -21,7 +21,7 @@
 					<u-icon name="arrow-right" color="#999999"></u-icon>
 				</view>
 			</view>
-			<view class="fp_list_item" @click="show = true">
+			<view class="fp_list_item" @click="show1 = true">
 				<view class="fp_list_item_left">
 					<text>鐢熶骇璁惧</text>
 				</view>
@@ -36,10 +36,20 @@
 					<text>鐢熶骇浜哄憳</text>
 				</view>
 				<view class="fp_list_item_right">
-					<u-checkbox-group v-model="form.personnelId" v-show="personnelData.length > 0">
-						<u-checkbox :name="item.id" v-for="(item, index) in personnelData" :key="index" activeColor="#4275FC">{{item.text}}</u-checkbox>
-					</u-checkbox-group>
-					<view class="wu" v-show="personnelData.length === 0">
+					<template v-if="personnelData.length > 0">
+						<u-checkbox-group
+							placement="column"
+							@change="checkboxChange">
+							<u-checkbox
+								:customStyle="{marginBottom: '16rpx'}"
+								v-for="(item, index) in personnelData"
+								:key="index"
+								:label="item.text"
+								:name="item.id">
+							</u-checkbox>
+						</u-checkbox-group>
+					</template>
+					<view class="wu" v-else>
 						<text>鏆傛棤鏁版嵁</text>
 					</view>
 				</view>
@@ -52,17 +62,19 @@
 		<!-- 閫夋嫨鏃ユ湡 -->
 		<u-calendar :show="timeShow" @close="timeShow = false" @confirm="timeConfirm"></u-calendar>
 		<!-- 閫夋嫨璁惧 -->
-		<u-picker :show="show" :columns="columns" @confirm="confirm" @cancel="show = false" keyName="label"></u-picker>
+		<u-picker :show="show1" :columns="equipment" @confirm="confirm" @cancel="show1 = false" keyName="text"></u-picker>
 	</view>
 </template>
 
 <script>
 	import { gsdate } from '@/util/utils.js'
+	import { distributeById, getFindAll, getDeviceByCondition } from '@/util/api/PlanningAPI'
 	export default {
 		data() {
 			return {
-				show: false,
-				columns: [[{ label: '璁惧涓�' }]],
+				id: null,
+				show1: false,
+				checkboxValue1: [],
 				form: {
 					num: '',        // 鐢熶骇鏁伴噺
 					startTime: gsdate(new Date()),      // 寮�濮嬫椂闂�
@@ -70,25 +82,79 @@
 					equipmentName: '',    // 璁惧鍚嶇О 
 					personnelId: []    // 浜哄憳id
 				},
+				isOpenDate: false,
+				equipment: [],	// 璁惧鏁版嵁
 				personnelData: [],    // 浜哄憳鏁版嵁
 				timeShow: false
 			};
 		},
 		onLoad(option) {
 			this.form.num = option.num
+			this.id = option.jhid
+			this.getDeviceByConditions()
 		},
 		methods: {
+			checkboxChange(ids) {
+				this.form.personnelId = ids;
+			},
 			go() {
 				uni.navigateBack({ delta: 1 });
 			},
+			// 纭閫夋嫨璁惧
 			confirm(val) {
-				this.form.equipmentName = val.value[0].label
-				this.form.equipmentId = 1
-				this.show = false
+				this.form.equipmentId = val.value[0].id
+				this.form.equipmentName = val.value[0].text
+				this.personnelData = []
+				getFindAll({
+					deviceId: this.form.equipmentId
+				}).then(res => {
+					if (res.code === 200 && res.data && res.data.length !== 0) {
+						this.form.personnelId = []
+						let arr = []
+						res.data.forEach((item) => {
+							arr.push({ text: item.dmodel.name + '-' + item.umodel.name, id: item.userId })
+						})
+						this.personnelData = arr
+					}
+					this.show1 = false
+				})	
 			},
 			timeConfirm(val) {
 				this.form.startTime = val[0]
 				this.timeShow = false
+			},
+			// 鎻愪氦鍒嗛厤
+			submit() {
+				if (!this.form.num) return uni.showToast({ title: '璁″垝鐢熶骇鏁伴噺涓嶈兘涓虹┖锛�', icon: 'none', duration: 2000 });
+				if (!this.form.startTime) return uni.showToast({ title: '璁″垝寮�濮嬫棩鏈熶笉鑳戒负绌猴紒', icon: 'none', duration: 2000 });
+				distributeById({
+					planId: this.id,
+					planNum: this.form.num,
+					planDate: this.form.startTime,
+					proGroupId: this.form.equipmentId,
+					proUserList: this.form.personnelId
+				}).then(res => {
+					if (res.code === 200) {
+						uni.showToast({ title: '鍒嗛厤鎴愬姛', icon: 'success', duration: 2000, mask: true });
+						setTimeout(() => {
+							uni.navigateBack({ delta: 1 });
+						}, 2000)
+					}
+				})
+			},
+			// 鏌ヨ璁惧
+			getDeviceByConditions() {
+				getDeviceByCondition({})
+					.then(res => {
+						if (res.code === 200) {
+							this.equipment = []
+							let arr = []
+							res.data.forEach((element) => {
+								arr.push({ text: element.code + '-' + element.name, id: element.id, checked: false })
+							})
+							this.equipment.push(arr)
+						}
+					})
 			}
 		}
 	}
@@ -113,7 +179,7 @@
             border-bottom: 1rpx solid #ececec;
             .fp_list_item_left {
                 flex-shrink: 0;
-                margin-bottom: 20rpx;
+                margin-bottom: 40rpx;
 				display: flex;
 				align-items: center;
                 text {
@@ -122,9 +188,21 @@
 					font-weight: 400;
                 }
             }
-            .fp_list_item_right {
+            .fp_list_item_right::v-deep {
                 display: flex;
-                align-items: center;
+				flex-direction: column;
+				.u-checkbox-group--row {
+					display: flex;
+					flex-direction: column;
+				}
+				.fp_list_item_right_dis {
+					display: flex;
+					align-items: center;
+					margin-bottom: 20rpx;
+					&:last-child {
+						margin-bottom: 0 !important;
+					}
+				}
                 .wu {
                     width: 100%;
                     margin: 30rpx 0;
@@ -134,22 +212,6 @@
                     text {
                         font-size: 26rpx;
                         color: black;
-                    }
-                }
-                .van-checkbox {
-                    margin-right: 5rpx !important;
-                    margin-top: 10rpx !important;
-                    &:nth-child(1) {
-                        margin-top: 0 !important;
-                    }
-                    &:nth-child(2) {
-                        margin-top: 0 !important;
-                    }
-                    &:nth-child(3) {
-                        margin-top: 0 !important;
-                    }
-                    .van-checkbox__label {
-                        color: black !important;
                     }
                 }
                 .black {

--
Gitblit v1.9.3