From 6e9a85f8b9be0f06a148a36306e135785e227a6a Mon Sep 17 00:00:00 2001
From: maven <2163098428@qq.com>
Date: 星期三, 13 八月 2025 16:28:13 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev_huangjin' into dev_huangjin

---
 src/views/lavorissue/ledger/Form.vue |  128 ++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 128 insertions(+), 0 deletions(-)

diff --git a/src/views/lavorissue/ledger/Form.vue b/src/views/lavorissue/ledger/Form.vue
new file mode 100644
index 0000000..071bc66
--- /dev/null
+++ b/src/views/lavorissue/ledger/Form.vue
@@ -0,0 +1,128 @@
+<template>
+  <el-form :model="form" label-width="100px" :rules="formRules" ref="formRef">
+    <el-form-item label="閮ㄩ棬鍚嶇О" prop="deptId">
+      <el-select
+          v-model="form.deptId"
+          placeholder="璇烽�夋嫨"
+          clearable
+          disabled
+      >
+        <el-option :label="item.deptName" :value="item.deptId" v-for="(item,index) in productOptions" :key="deptId" />
+      </el-select>
+        </el-form-item>
+        <el-form-item label="鍛樺伐鍚嶇О" prop="staffId">
+          <el-select
+            v-model="form.staffId"
+            placeholder="璇烽�夋嫨"
+            clearable
+          >
+            <el-option :label="item.staffName" :value="item.id" v-for="(item,index) in personList" :key="id" />
+          </el-select>
+        </el-form-item>
+        <el-form-item label="鍔充繚闃插叿" prop="dictId">
+          <el-select
+              v-model="form.dictId"
+              placeholder="璇烽�夋嫨"
+              clearable
+          >
+            <el-option :label="item.label" :value="item.value" v-for="(item,index) in sys_lavor_issue" :key="value" />
+          </el-select>
+        </el-form-item>
+        <el-form-item label="棰嗙敤鏁伴噺" prop="num">
+          <el-input-number :step="1" :min="0" style="width: 100%"
+            v-model="form.num"
+            placeholder="璇疯緭鍏�"
+          />
+        </el-form-item>
+        <el-form-item label="棰嗙敤鏃ユ湡" prop="adoptedDate">
+          <el-date-picker
+              style="width: 100%"
+              v-model="form.adoptedDate"
+              format="YYYY-MM-DD"
+              value-format="YYYY-MM-DD"
+              type="date"
+              placeholder="璇烽�夋嫨鏃ユ湡"
+              clearable
+          />
+        </el-form-item>
+        
+  </el-form>
+</template>
+
+<script setup>
+import useFormData from "@/hooks/useFormData";
+import {ref,onMounted} from "vue";
+import useUserStore from "@/store/modules/user";
+import {getStaffOnJob} from "@/api/personnelManagement/onboarding.js";
+import {deepCopySameProperties} from '@/utils/util'
+const userStore = useUserStore();
+import {
+  getDept
+} from "@/api/collaborativeApproval/approvalProcess.js";
+const { proxy } = getCurrentInstance();
+
+
+defineOptions({
+  name: "鏂板鏀跺叆",
+});
+const { sys_lavor_issue } = proxy.useDict("sys_lavor_issue")
+const formRef = ref(null);
+const productOptions = ref([]);
+const personList = ref([]);
+const formRules = {
+  deptId: [{ required: true, trigger: "blur", message: "璇疯緭鍏�" }],
+  staffId: [{ required: true, trigger: "blur", message: "璇疯緭鍏�" }],
+  dictId: [{ required: true, trigger: "change", message: "璇烽�夋嫨" }],
+  num: [{ required: true, trigger: "change", message: "璇烽�夋嫨" }],
+  adoptedDate: [{ required: true, trigger: "change", message: "璇烽�夋嫨" }],
+}
+
+const { form, resetForm } = useFormData({
+  deptId: undefined, //
+  staffId: undefined, //
+  dictId: undefined, //
+  num: undefined, //
+  adoptedDate: undefined,
+});
+const getPersonList = () => {
+  getStaffOnJob().then(res => {
+    personList.value = res.data
+  })
+};
+const loadForm = (data) => {
+  deepCopySameProperties(data, form)
+};
+
+const getProductOptions = () => {
+  getDept().then((res) => {
+    productOptions.value = res.data;
+  });
+}
+// 娓呴櫎琛ㄥ崟鏍¢獙鐘舵��
+const clearValidate = () => {
+  formRef.value?.clearValidate();
+};
+
+// 閲嶇疆琛ㄥ崟鏁版嵁鍜屾牎楠岀姸鎬�
+const resetFormAndValidate = () => {
+  resetForm();
+  clearValidate();
+  form.deptId = userStore.currentDeptId
+  getProductOptions();
+  getPersonList();
+};
+onMounted(() => {
+  console.log(sys_lavor_issue)
+  form.deptId = userStore.currentDeptId
+  getProductOptions();
+  getPersonList();
+})
+defineExpose({
+  form,
+  resetForm,
+  clearValidate,
+  loadForm,
+  resetFormAndValidate,
+	formRef,
+});
+</script>

--
Gitblit v1.9.3