From 0c357e90050d9d461c6ab0d85e1b9c2bac2f6f55 Mon Sep 17 00:00:00 2001
From: zhangwencui <1064582902@qq.com>
Date: 星期一, 19 一月 2026 17:50:36 +0800
Subject: [PATCH] Merge branch 'dev_new' of http://114.132.189.42:9002/r/product-inventory-APP-before into dev_new
---
src/pages/productionManagement/productionDispatching/components/DispatchModal.vue | 168 ++++++++++++++++++++++++++++---------------------------
1 files changed, 86 insertions(+), 82 deletions(-)
diff --git a/src/pages/productionManagement/productionDispatching/components/DispatchModal.vue b/src/pages/productionManagement/productionDispatching/components/DispatchModal.vue
index d6fd25e..95c3705 100644
--- a/src/pages/productionManagement/productionDispatching/components/DispatchModal.vue
+++ b/src/pages/productionManagement/productionDispatching/components/DispatchModal.vue
@@ -1,7 +1,7 @@
<template>
- <uni-popup
- ref="popupRef"
- type="bottom"
+ <up-popup
+ v-model:show="show"
+ mode="bottom"
:round="20"
:safeAreaInsetBottom="true"
@close="handleClose"
@@ -26,33 +26,19 @@
>
<!-- 椤圭洰鍩烘湰淇℃伅 -->
<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>
@@ -90,14 +76,22 @@
<view class="form-section">
<text class="section-title">娲惧伐淇℃伅</text>
<up-form-item label="娲惧伐浜�" prop="schedulingUserId" required>
- <uni-data-select v-model="form.schedulingUserId" :localdata="userColumns" :clear="false"></uni-data-select>
+ <up-input
+ v-model="selectedUserName"
+ placeholder="璇烽�夋嫨娲惧伐浜�"
+ readonly
+ @click="showUserPicker = true"
+ suffixIcon="arrow-down"
+ />
</up-form-item>
<up-form-item label="娲惧伐鏃ユ湡" prop="schedulingDate" required>
- <uni-datetime-picker type="date" :clear-icon="false" v-model="form.schedulingDate">
- <view class="datetime-picker-value">
- {{form.schedulingDate}}
- </view>
- </uni-datetime-picker>
+ <up-input
+ v-model="form.schedulingDate"
+ placeholder="璇烽�夋嫨娲惧伐鏃ユ湡"
+ readonly
+ @click="showDatePicker = true"
+ suffixIcon="calendar"
+ />
</up-form-item>
</view>
</up-form>
@@ -121,7 +115,23 @@
/>
</view>
</view>
- </uni-popup>
+
+ <!-- 浜哄憳閫夋嫨鍣� -->
+ <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>
</template>
<script setup>
@@ -136,16 +146,26 @@
const emit = defineEmits(['confirm']);
// 寮圭獥鏄剧ず鐘舵��
-const popupRef = ref();
+const show = ref(false);
const submitting = ref(false);
+
+// 閫夋嫨鍣ㄦ樉绀虹姸鎬�
+const showUserPicker = ref(false);
+const showDatePicker = ref(false);
// 鐢ㄦ埛鍒楄〃
const userList = ref([]);
-const userColumns = computed(() => {
- return userList.value.map(user => ({
- text: user.nickName,
+const userColumns = computed(() => [
+ userList.value.map(user => ({
+ label: user.nickName,
value: user.userId
}))
+]);
+
+// 閫変腑鐨勭敤鎴峰悕绉帮紙鐢ㄤ簬鏄剧ず锛�
+const selectedUserName = computed(() => {
+ const user = userList.value.find(u => u.userId === form.schedulingUserId);
+ return user ? user.nickName : '';
});
// 琛ㄥ崟鏁版嵁
@@ -162,15 +182,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" }
+ ]
});
// 琛ㄥ崟寮曠敤
@@ -190,9 +210,9 @@
schedulingUserId: userStore.id,
schedulingDate: dayjs().format("YYYY-MM-DD")
});
- popupRef.value.open()
+
+ show.value = true;
} catch (error) {
- console.log(error)
uni.showToast({
title: '鍔犺浇鐢ㄦ埛鍒楄〃澶辫触',
icon: 'error'
@@ -211,30 +231,29 @@
}
};
+// 澶勭悊鐢ㄦ埛閫夋嫨
+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',
@@ -273,7 +292,10 @@
// 鍏抽棴寮圭獥
const handleClose = () => {
- popupRef.value.close()
+ show.value = false;
+ showUserPicker.value = false;
+ showDatePicker.value = false;
+
// 閲嶇疆琛ㄥ崟
Object.assign(form, {
projectName: "",
@@ -331,24 +353,6 @@
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