From 8bc17a9ea84a6af0b7d01e451c702f404a3ff895 Mon Sep 17 00:00:00 2001
From: zouyu <2723363702@qq.com>
Date: 星期六, 10 一月 2026 11:36:34 +0800
Subject: [PATCH] Merge branch 'dev_tide' into dev_tide_cbsglxt

---
 src/views/productionManagement/productionDispatching/components/formDia.vue |  167 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 167 insertions(+), 0 deletions(-)

diff --git a/src/views/productionManagement/productionDispatching/components/formDia.vue b/src/views/productionManagement/productionDispatching/components/formDia.vue
new file mode 100644
index 0000000..de04e07
--- /dev/null
+++ b/src/views/productionManagement/productionDispatching/components/formDia.vue
@@ -0,0 +1,167 @@
+<template>
+  <div>
+    <el-dialog
+        v-model="dialogFormVisible"
+        title="鐢熶骇娲惧伐"
+        width="50%"
+        @close="closeDia"
+    >
+      <el-form :model="form" label-width="140px" label-position="top" :rules="rules" ref="formRef">
+        <el-row :gutter="30">
+          <el-col :span="12">
+            <el-form-item label="浜у搧澶х被锛�" prop="productCategory">
+              <el-input v-model="form.productCategory" placeholder="璇疯緭鍏�" clearable disabled/>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="鎬绘暟閲忥細" prop="quantity">
+              <el-input v-model="form.quantity" placeholder="璇疯緭鍏�" clearable disabled/>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row :gutter="30">
+          
+          <el-col :span="12">
+						<el-form-item label="寰呮帓浜ф暟閲忥細" prop="pendingQuantity">
+							<el-input v-model="form.pendingQuantity" placeholder="璇疯緭鍏�" clearable disabled/>
+						</el-form-item>
+          </el-col>
+          <el-col :span="12">
+						<el-form-item label="鏈鎺掍骇鏁伴噺锛�" prop="schedulingNum">
+							<el-input-number
+								v-model="form.schedulingNum"
+								placeholder="璇疯緭鍏�"
+								:min="0"
+								:step="0.1"
+								:precision="2"
+								clearable
+								@change="changeNum"
+								style="width: 100%"
+							/>
+						</el-form-item>
+          </el-col>
+        </el-row>
+        <el-row :gutter="30">
+					<el-col :span="12">
+						<el-form-item label="娲惧伐浜猴細" prop="schedulingUserId">
+							<el-select
+								v-model="form.schedulingUserId"
+								placeholder="閫夋嫨浜哄憳"
+								style="width: 100%;"
+							>
+								<el-option
+									v-for="user in userList"
+									:key="user.userId"
+									:label="user.nickName"
+									:value="user.userId"
+								/>
+							</el-select>
+						</el-form-item>
+					</el-col>
+          <el-col :span="12">
+            <el-form-item label="娲惧伐鏃ユ湡锛�" prop="schedulingDate">
+              <el-date-picker
+                  v-model="form.schedulingDate"
+                  type="date"
+                  placeholder="璇烽�夋嫨鏃ユ湡"
+                  value-format="YYYY-MM-DD"
+                  format="YYYY-MM-DD"
+                  clearable
+                  style="width: 100%"
+              />
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+      <template #footer>
+        <div class="dialog-footer">
+          <el-button type="primary" @click="submitForm">纭</el-button>
+          <el-button @click="closeDia">鍙栨秷</el-button>
+        </div>
+      </template>
+    </el-dialog>
+  </div>
+</template>
+
+<script setup>
+import {ref} from "vue";
+import {getStaffJoinInfo, staffJoinAdd, staffJoinUpdate} from "@/api/personnelManagement/onboarding.js";
+import {userListNoPageByTenantId} from "@/api/system/user.js";
+import {productionDispatch} from "@/api/productionManagement/productionOrder.js";
+import useUserStore from "@/store/modules/user.js";
+import dayjs from "dayjs";
+const { proxy } = getCurrentInstance()
+const emit = defineEmits(['close'])
+
+const dialogFormVisible = ref(false);
+const operationType = ref('')
+const data = reactive({
+  form: {
+		productCategory: "",
+		quantity: "",
+		schedulingNum: "",
+		schedulingUserId: "",
+		schedulingDate: "",
+		pendingQuantity: "",
+		salesLedgerProductId: "",
+  },
+  rules: {
+		schedulingNum: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" },],
+		schedulingUserId: [{ required: true, message: "璇烽�夋嫨", trigger: "change" },],
+		schedulingDate: [{ required: true, message: "璇烽�夋嫨", trigger: "change" },],
+  },
+});
+const { form, rules } = toRefs(data);
+const userList = ref([])
+const userStore = useUserStore()
+
+// 鎵撳紑寮规
+const openDialog = (type, row) => {
+  operationType.value = type;
+  dialogFormVisible.value = true;
+	userListNoPageByTenantId().then((res) => {
+		userList.value = res.data;
+	});
+	form.value = {...row}
+	// 缁戝畾澶栧眰浼犲叆鐨勪骇鍝両D鍒板悗绔渶瑕佺殑 salesLedgerProductId 瀛楁
+	form.value.salesLedgerProductId = row.id;
+	// 纭繚涓嶄細鎶婂師濮� id 褰撲綔鎺掍骇璁板綍涓婚敭浼犵粰鍚庣
+	delete form.value.id;
+	form.value.schedulingNum = 0
+	form.value.schedulingUserId = userStore.id
+	form.value.schedulingDate = dayjs().format("YYYY-MM-DD");
+}
+
+//
+const changeNum = (value) => {
+	if (value > form.value.pendingQuantity) {
+		form.value.schedulingNum = form.value.pendingQuantity;
+		proxy.$modal.msgWarning('鎺掍骇鏁伴噺涓嶅彲澶т簬寰呮帓浜ф暟閲�')
+	}
+}
+// 鎻愪氦浜у搧琛ㄥ崟
+const submitForm = () => {
+  proxy.$refs.formRef.validate(valid => {
+    if (valid) {
+			productionDispatch(form.value).then(res => {
+				proxy.$modal.msgSuccess("鎻愪氦鎴愬姛");
+				closeDia();
+			})
+    }
+  })
+}
+
+// 鍏抽棴寮规
+const closeDia = () => {
+  proxy.resetForm("formRef");
+  dialogFormVisible.value = false;
+  emit('close')
+};
+defineExpose({
+  openDialog,
+});
+</script>
+
+<style scoped>
+
+</style>
\ No newline at end of file

--
Gitblit v1.9.3