From 20215f3e0a35ab72d3011b3c88574ca8a15b7773 Mon Sep 17 00:00:00 2001
From: 周宾 <2802492122@qq.com>
Date: 星期三, 17 十二月 2025 11:14:49 +0800
Subject: [PATCH] 海川开心-修改生产管控-生产派工

---
 src/pages/productionManagement/productionDispatching/components/DispatchModal.vue |  168 +++++++++++++++++++++++++++----------------------------
 1 files changed, 82 insertions(+), 86 deletions(-)

diff --git a/src/pages/productionManagement/productionDispatching/components/DispatchModal.vue b/src/pages/productionManagement/productionDispatching/components/DispatchModal.vue
index 95c3705..d6fd25e 100644
--- a/src/pages/productionManagement/productionDispatching/components/DispatchModal.vue
+++ b/src/pages/productionManagement/productionDispatching/components/DispatchModal.vue
@@ -1,7 +1,7 @@
 <template>
-	<up-popup 
-		v-model:show="show" 
-		mode="bottom" 
+	<uni-popup
+		ref="popupRef"
+		type="bottom" 
 		:round="20"
 		:safeAreaInsetBottom="true"
 		@close="handleClose"
@@ -26,19 +26,33 @@
 				>
 					<!-- 椤圭洰鍩烘湰淇℃伅 -->
 					<view class="form-section">
-						<text class="section-title">椤圭洰淇℃伅</text>
-						<up-form-item label="椤圭洰鍚嶇О" prop="projectName">
+						<text class="section-title">浜у搧淇℃伅</text>
+					<!-- 	<up-form-item label="椤圭洰鍚嶇О" prop="projectName">
 							<up-input 
 								v-model="form.projectName" 
 								disabled 
 								placeholder="椤圭洰鍚嶇О"
 							/>
-						</up-form-item>
+						</up-form-item> -->
 						<up-form-item label="浜у搧澶х被" prop="productCategory">
 							<up-input 
 								v-model="form.productCategory" 
 								disabled 
 								placeholder="浜у搧澶х被"
+							/>
+						</up-form-item>
+						<up-form-item label="瑙勬牸鍨嬪彿" prop="specificationModel">
+							<up-input 
+								v-model="form.specificationModel" 
+								disabled 
+								placeholder="瑙勬牸鍨嬪彿"
+							/>
+						</up-form-item>
+						<up-form-item label="缁戝畾鏈哄櫒" prop="speculativeTradingName">
+							<up-input 
+								v-model="form.speculativeTradingName" 
+								disabled 
+								placeholder="缁戝畾鏈哄櫒"
 							/>
 						</up-form-item>
 					</view>
@@ -76,22 +90,14 @@
 					<view class="form-section">
 						<text class="section-title">娲惧伐淇℃伅</text>
 						<up-form-item label="娲惧伐浜�" prop="schedulingUserId" required>
-							<up-input 
-								v-model="selectedUserName"
-								placeholder="璇烽�夋嫨娲惧伐浜�"
-								readonly
-								@click="showUserPicker = true"
-								suffixIcon="arrow-down"
-							/>
+							<uni-data-select v-model="form.schedulingUserId" :localdata="userColumns" :clear="false"></uni-data-select>
 						</up-form-item>
 						<up-form-item label="娲惧伐鏃ユ湡" prop="schedulingDate" required>
-							<up-input 
-								v-model="form.schedulingDate"
-								placeholder="璇烽�夋嫨娲惧伐鏃ユ湡"
-								readonly
-								@click="showDatePicker = true"
-								suffixIcon="calendar"
-							/>
+							<uni-datetime-picker type="date" :clear-icon="false" v-model="form.schedulingDate">
+								<view class="datetime-picker-value">
+									{{form.schedulingDate}}
+								</view>
+							</uni-datetime-picker>
 						</up-form-item>
 					</view>
 				</up-form>
@@ -115,23 +121,7 @@
 				/>
 			</view>
 		</view>
-		
-		<!-- 浜哄憳閫夋嫨鍣� -->
-		<up-picker
-			v-model="showUserPicker"
-			:columns="userColumns"
-			@confirm="handleUserSelect"
-			@cancel="showUserPicker = false"
-		/>
-		
-		<!-- 鏃ユ湡閫夋嫨鍣� -->
-		<up-datetime-picker
-			v-model="showDatePicker"
-			mode="date"
-			@confirm="handleDateSelect"
-			@cancel="showDatePicker = false"
-		/>
-	</up-popup>
+	</uni-popup>
 </template>
 
 <script setup>
@@ -146,26 +136,16 @@
 const emit = defineEmits(['confirm']);
 
 // 寮圭獥鏄剧ず鐘舵��
-const show = ref(false);
+const popupRef = ref();
 const submitting = ref(false);
-
-// 閫夋嫨鍣ㄦ樉绀虹姸鎬�
-const showUserPicker = ref(false);
-const showDatePicker = ref(false);
 
 // 鐢ㄦ埛鍒楄〃
 const userList = ref([]);
-const userColumns = computed(() => [
-	userList.value.map(user => ({
-		label: user.nickName,
+const userColumns = computed(() => {
+	return userList.value.map(user => ({
+		text: user.nickName,
 		value: user.userId
 	}))
-]);
-
-// 閫変腑鐨勭敤鎴峰悕绉帮紙鐢ㄤ簬鏄剧ず锛�
-const selectedUserName = computed(() => {
-	const user = userList.value.find(u => u.userId === form.schedulingUserId);
-	return user ? user.nickName : '';
 });
 
 // 琛ㄥ崟鏁版嵁
@@ -182,15 +162,15 @@
 
 // 琛ㄥ崟楠岃瘉瑙勫垯
 const rules = reactive({
-	schedulingNum: [
-		{ required: true, message: "璇疯緭鍏ユ帓浜ф暟閲�", trigger: "blur" }
-	],
-	schedulingUserId: [
-		{ required: true, message: "璇烽�夋嫨娲惧伐浜�", trigger: "change" }
-	],
-	schedulingDate: [
-		{ required: true, message: "璇烽�夋嫨娲惧伐鏃ユ湡", trigger: "change" }
-	]
+	// schedulingNum: [
+	// 	{ required: true, message: "璇疯緭鍏ユ帓浜ф暟閲�", trigger: "blur" }
+	// ],
+	// schedulingUserId: [
+	// 	{ required: true, message: "璇烽�夋嫨娲惧伐浜�", trigger: "change" }
+	// ],
+	// schedulingDate: [
+	// 	{ required: true, message: "璇烽�夋嫨娲惧伐鏃ユ湡", trigger: "change" }
+	// ]
 });
 
 // 琛ㄥ崟寮曠敤
@@ -210,9 +190,9 @@
 			schedulingUserId: userStore.id,
 			schedulingDate: dayjs().format("YYYY-MM-DD")
 		});
-		
-		show.value = true;
+		popupRef.value.open()
 	} catch (error) {
+		console.log(error)
 		uni.showToast({
 			title: '鍔犺浇鐢ㄦ埛鍒楄〃澶辫触',
 			icon: 'error'
@@ -231,29 +211,30 @@
 	}
 };
 
-// 澶勭悊鐢ㄦ埛閫夋嫨
-const handleUserSelect = (params) => {
-	if (params.value && params.value.length > 0) {
-		form.schedulingUserId = params.value[0];
-	}
-	showUserPicker.value = false;
-};
-
-// 澶勭悊鏃ユ湡閫夋嫨
-const handleDateSelect = (params) => {
-	if (params.value) {
-		form.schedulingDate = dayjs(params.value).format("YYYY-MM-DD");
-	}
-	showDatePicker.value = false;
-};
-
 // 纭娲惧伐
 const handleConfirm = async () => {
+	if(!form.schedulingNum){
+		uni.showToast({
+			title: '璇疯緭鍏ユ帓浜ф暟閲�',
+			icon:'none'
+		})
+		return
+	}
+	if(!form.schedulingUserId){
+		uni.showToast({
+			title: '璇烽�夋嫨娲惧伐浜�',
+			icon:'none'
+		})
+		return
+	}
+	if(!form.schedulingDate){
+		uni.showToast({
+			title: '璇烽�夋嫨娲惧伐鏃ユ湡',
+			icon:'none'
+		})
+		return
+	}
 	try {
-		// 琛ㄥ崟楠岃瘉
-		const valid = await formRef.value?.validate();
-		if (!valid) return;
-		
 		if (form.schedulingNum <= 0) {
 			uni.showToast({
 				title: '鎺掍骇鏁伴噺蹇呴』澶т簬0',
@@ -292,10 +273,7 @@
 
 // 鍏抽棴寮圭獥
 const handleClose = () => {
-	show.value = false;
-	showUserPicker.value = false;
-	showDatePicker.value = false;
-	
+	popupRef.value.close()
 	// 閲嶇疆琛ㄥ崟
 	Object.assign(form, {
 		projectName: "",
@@ -353,6 +331,24 @@
 	flex: 1;
 	padding: 0 20px;
 	overflow-y: auto;
+	.datetime-picker-value{
+		font-size: 14px;
+		border: 1px solid #e5e5e5;
+		box-sizing: border-box;
+		border-radius: 4px;
+		padding: 0 5px;
+		padding-left: 10px;
+		position: relative;
+		display: flex;
+		-webkit-user-select: none;
+		-moz-user-select: none;
+		user-select: none;
+		flex-direction: row;
+		align-items: center;
+		width: 100%;
+		flex: 1;
+		height: 35px;
+	}
 }
 
 .form-section {

--
Gitblit v1.9.3