From d5e65bf5925c8cd1fe0f0bf0b8b857006d64ad94 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期五, 30 一月 2026 15:26:34 +0800
Subject: [PATCH] 进销存升级 1.部分输入框(有效日期、检定周期)输入做下限制(大于0的整数数字)

---
 src/views/personnelManagement/employeeRecord/components/NewOrEditFormDia.vue |   63 ++++++++++++++++++++++++++-----
 1 files changed, 52 insertions(+), 11 deletions(-)

diff --git a/src/views/personnelManagement/employeeRecord/components/NewOrEditFormDia.vue b/src/views/personnelManagement/employeeRecord/components/NewOrEditFormDia.vue
index 00e796c..f65509a 100644
--- a/src/views/personnelManagement/employeeRecord/components/NewOrEditFormDia.vue
+++ b/src/views/personnelManagement/employeeRecord/components/NewOrEditFormDia.vue
@@ -56,6 +56,25 @@
         </el-row>
         <el-row :gutter="30">
           <el-col :span="12">
+            <el-form-item label="閮ㄩ棬锛�" prop="sysDeptId">
+              <el-tree-select
+                  v-model="form.sysDeptId"
+                  :data="deptOptions"
+                  :props="{ value: 'id', label: 'label', children: 'children' }"
+                  value-key="id"
+                  placeholder="璇烽�夋嫨閮ㄩ棬"
+                  check-strictly
+              />
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="骞撮緞锛�" prop="age">
+              <el-input-number v-model="form.age" :precision="0" :step="1" style="width: 100%"/>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row :gutter="30">
+          <el-col :span="12">
             <el-form-item label="绗竴瀛﹀巻锛�" prop="firstStudy">
               <el-input v-model="form.firstStudy" placeholder="璇疯緭鍏�" clearable/>
             </el-form-item>
@@ -63,13 +82,6 @@
           <el-col :span="12">
             <el-form-item label="涓撲笟锛�" prop="profession">
               <el-input v-model="form.profession" placeholder="璇疯緭鍏�" clearable/>
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row :gutter="30">
-          <el-col :span="12">
-            <el-form-item label="骞撮緞锛�" prop="age">
-              <el-input-number v-model="form.age" :precision="0" :step="1" style="width: 100%"/>
             </el-form-item>
           </el-col>
         </el-row>
@@ -140,9 +152,10 @@
 
 <script setup>
 import {ref, onMounted} from "vue";
-import {getStaffJoinInfo, staffJoinAdd, staffJoinUpdate} from "@/api/personnelManagement/onboarding.js";
 import {findPostOptions} from "@/api/system/post.js";
+import {listDept} from "@/api/system/dept.js";
 import {staffOnJobInfo, createStaffOnJob, updateStaffOnJob} from "@/api/personnelManagement/staffOnJob.js";
+import {deptTreeSelect} from "@/api/system/user.js";
 const { proxy } = getCurrentInstance()
 const emit = defineEmits(['close'])
 
@@ -166,8 +179,8 @@
     contractTerm: 0,
     contractStartTime: "",
     contractEndTime: "",
-    staffState: "",
     sysPostId: undefined,
+    sysDeptId: undefined,
   },
   rules: {
     staffNo: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" },],
@@ -187,8 +200,9 @@
     contractEndTime: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
   },
   postOptions: [], // 宀椾綅閫夐」
+  deptOptions: [], // 閮ㄩ棬閫夐」
 });
-const { form, rules, postOptions } = toRefs(data);
+const { form, rules, postOptions, deptOptions } = toRefs(data);
 
 // 鎵撳紑寮规
 const openDialog = (type, row) => {
@@ -201,6 +215,9 @@
       if (form.value.sysPostId === 0) {
         form.value.sysPostId = undefined
       }
+      if (form.value.sysDeptId === 0) {
+        form.value.sysDeptId = undefined
+      }
       // 缂栬緫鏃朵篃璁$畻涓�娆″悎鍚屽勾闄�
       calculateContractTerm();
     })
@@ -211,6 +228,7 @@
 }
 onMounted(() => {
   fetchPostOptions()
+  fetchDeptOptions()
 })
 
 const fetchPostOptions = () => {
@@ -218,14 +236,37 @@
     postOptions.value = res.data
   })
 }
+
+// 鏌ヨ閮ㄩ棬鍒楄〃
+const fetchDeptOptions = () => {
+  deptTreeSelect().then(response => {
+    deptOptions.value = filterDisabledDept(JSON.parse(JSON.stringify(response.data)))
+  })
+}
+
+/** 杩囨护绂佺敤鐨勯儴闂� */
+function filterDisabledDept(deptList) {
+  return deptList.filter(dept => {
+    if (dept.disabled) {
+      return false
+    }
+    if (dept.children && dept.children.length) {
+      dept.children = filterDisabledDept(dept.children)
+    }
+    return true
+  })
+}
+
 // 鎻愪氦浜у搧琛ㄥ崟
 const submitForm = () => {
   if (!form.value.sysPostId) {
     form.value.sysPostId = 0;
   }
+  if (!form.value.sysDeptId) {
+    form.value.sysDeptId = 0;
+  }
   proxy.$refs.formRef.validate(valid => {
     if (valid) {
-      form.value.staffState = 1
       if (operationType.value === "add") {
         createStaffOnJob(form.value).then(res => {
           proxy.$modal.msgSuccess("鎻愪氦鎴愬姛");

--
Gitblit v1.9.3