From faf1d3cc35a3a5f83558946c8056537a4d77fa1f Mon Sep 17 00:00:00 2001
From: liuleilei <234@qq.com>
Date: 星期一, 11 九月 2023 09:34:02 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev' into dev

---
 minipro_standard/pages/allocation/allocation.vue |  331 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 331 insertions(+), 0 deletions(-)

diff --git a/minipro_standard/pages/allocation/allocation.vue b/minipro_standard/pages/allocation/allocation.vue
new file mode 100644
index 0000000..cda34f5
--- /dev/null
+++ b/minipro_standard/pages/allocation/allocation.vue
@@ -0,0 +1,331 @@
+<template>
+	<view class="fp">
+		<view class="fp_list">
+			<view class="fp_list_item">
+				<view class="fp_list_item_left">
+					<text style="color: #f00;">*</text>
+					<text>璁″垝鐢熶骇鏁伴噺锛�</text>
+				</view>
+				<view class="fp_list_item_right">
+					<u--input placeholder="璇疯緭鍏�" :customStyle="{width: '180rpx'}" inputAlign="right" type="number" border="surround" v-model="form.num"></u--input>
+				</view>
+			</view>
+			<view class="fp_list_item">
+				<view class="fp_list_item_left">
+					<text style="color: #f00;">*</text>
+					<text>璁″垝寮�宸ユ棩鏈燂細</text>
+				</view>
+				<view class="fp_list_item_right" @click="timeShow = true">
+					<text class="black" v-if="form.startTime">{{form.startTime}}</text>
+					<text v-else>骞� / 鏈� / 鏃�</text>
+					<u-icon name="arrow-right" color="#999999"></u-icon>
+				</view>
+			</view>
+			<view class="fp_list_item" @click="show1 = true">
+				<view class="fp_list_item_left">
+					<text>鐢熶骇璁惧</text>
+				</view>
+				<view class="fp_list_item_right">
+					<text v-if="form.equipmentName" class="black">{{form.equipmentName}}</text>
+					<text v-else>璇烽�夋嫨</text>
+					<u-icon name="arrow-right" color="#999999"></u-icon>
+				</view>
+			</view>
+			<view class="fp_list_item1" v-show="form.equipmentName">
+				<view class="fp_list_item_left">
+					<text>鐢熶骇浜哄憳</text>
+				</view>
+				<view class="fp_list_item_right">
+					<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>
+			</view>
+		</view>
+		<view class="fp_footer">
+			<view class="fp_footer_close" @click="go">鍙栨秷</view>
+			<button class="fp_footer_submit" @click="submit">纭</button>
+		</view>
+		<!-- 閫夋嫨鏃ユ湡 -->
+		<u-calendar :show="timeShow" @close="timeShow = false" @confirm="timeConfirm"></u-calendar>
+		<!-- 閫夋嫨璁惧 -->
+		<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 {
+				id: null,
+				show1: false,
+				checkboxValue1: [],
+				form: {
+					num: '',        // 鐢熶骇鏁伴噺
+					startTime: gsdate(new Date()),      // 寮�濮嬫椂闂�
+					equipmentId: '',    // 璁惧id
+					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.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)
+						}
+					})
+			}
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+.fp {
+    width: 100%;
+    height: 100%;
+    position: absolute;
+    background: #F7F7F7;
+    .fp_list {
+        display: flex;
+        flex-direction: column;
+        .fp_list_item1 {
+            display: flex;
+            flex-direction: column;
+            justify-content: space-between;
+            padding: 20rpx 30rpx;
+            box-sizing: border-box;
+            background: #ffffff;
+            border-bottom: 1rpx solid #ececec;
+            .fp_list_item_left {
+                flex-shrink: 0;
+                margin-bottom: 40rpx;
+				display: flex;
+				align-items: center;
+                text {
+					color: #222222;
+					font-size: 30rpx;
+					font-weight: 400;
+                }
+            }
+            .fp_list_item_right::v-deep {
+                display: flex;
+				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;
+                    display: flex;
+                    align-items: center;
+                    justify-content: center;
+                    text {
+                        font-size: 26rpx;
+                        color: black;
+                    }
+                }
+                .black {
+                    color: black !important;
+                }
+                input {
+                    width: 180rpx;
+                    height: 60rpx;
+                    border-radius: 8rpx;
+                    border: 2rpx solid #E5E5E5;
+                    padding: 0 30rpx;
+                    text-align: right;
+                    font-size: 25rpx;
+                }
+                text {
+                    font-size: 28rpx;
+                    font-weight: 400;
+                    color: #999999;
+                    margin-right: 20rpx;
+                }
+            }
+        }
+        .fp_list_item {
+            display: flex;
+            justify-content: space-between;
+            align-items: center;
+            padding: 0 30rpx;
+            height: 98rpx;
+            box-sizing: border-box;
+            background: #ffffff;
+            border-bottom: 1rpx solid #ececec;
+            .fp_list_item_left {
+                flex-shrink: 0;
+                b {
+                    color: $nav-stateColor4;
+                    font-size: 28rpx;
+                    margin-right: 5rpx;
+                }
+                text {
+                    color: #222222;
+                    font-size: 30rpx;
+                    font-weight: 400;
+                }
+            }
+            .fp_list_item_right {
+                display: flex;
+                align-items: center;
+                .wu {
+                    text-align: center;
+                    text {
+                        font-size: 26rpx;
+                        color: black;
+                    }
+                }
+                .black {
+                    color: black !important;
+                }
+                input {
+                    width: 180rpx;
+                    height: 60rpx;
+                    border-radius: 8rpx;
+                    border: 1rpx solid #E5E5E5;
+                    padding: 0 30rpx;
+                    text-align: right;
+                    font-size: 25rpx;
+                }
+                text {
+                    font-size: 28rpx;
+                    font-weight: 400;
+                    color: #999999;
+                    margin-right: 20rpx;
+                }
+            }
+        }
+    }
+    .fp_footer {
+        width: 100%;
+        padding-left: 30rpx;
+        padding-right: 30rpx;
+        padding-bottom: 68rpx;
+        box-sizing: border-box;
+        position: fixed;
+        bottom: 0;
+        left: 0;
+        display: flex;
+        align-items: center;
+        justify-content: space-between;
+        .fp_footer_close {
+            width: 334rpx;
+            height: 88rpx;
+            background: #FFFFFF;
+            box-shadow: 0 0 12rpx 0 rgba(0, 0, 0, 0.08);
+            border-radius: 8rpx;
+            font-size: 30rpx;
+            font-weight: 500;
+            color: #666666;
+            display: flex;
+            align-items: center;
+            justify-content: center;
+        }
+        .fp_footer_submit {
+            width: 334rpx;
+            height: 88rpx;
+            border: none;
+            background: $nav-color;
+            box-shadow: 0 0 12rpx 0 rgba(0, 0, 0, 0.08);
+            border-radius: 8rpx;
+            font-size: 30rpx;
+            font-weight: 500;
+            color: #ffffff;
+            display: flex;
+            align-items: center;
+            justify-content: center;
+        }
+    }
+}
+</style>

--
Gitblit v1.9.3