From ba01c8bd58bea9acbb98c2097765b939a81b21cd Mon Sep 17 00:00:00 2001
From: spring <2396852758@qq.com>
Date: 星期五, 29 八月 2025 17:52:41 +0800
Subject: [PATCH] Merge branch 'refs/heads/dev_huangjin' into dev
---
src/views/lavorissue/ledger/Form.vue | 154 +++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 154 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..7031957
--- /dev/null
+++ b/src/views/lavorissue/ledger/Form.vue
@@ -0,0 +1,154 @@
+<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="dictType">
+ <el-select
+ v-model="form.dictType"
+ placeholder="璇烽�夋嫨"
+ clearable
+ >
+ <el-option :label="item.label" :value="item.value" v-for="(item,index) in sys_lavor_issue_type" :key="value" />
+ </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="factoryDate">
+ <el-date-picker
+ style="width: 100%"
+ v-model="form.factoryDate"
+ format="YYYY-MM-DD"
+ value-format="YYYY-MM-DD"
+ type="date"
+ placeholder="璇烽�夋嫨鏃ユ湡"
+ clearable
+ />
+ </el-form-item>
+ <el-form-item label="鍙戞斁鏃ユ湡" prop="issueDate">
+ <el-date-picker
+ style="width: 100%"
+ v-model="form.issueDate"
+ 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 { sys_lavor_issue_type } = proxy.useDict("sys_lavor_issue_type")
+const formRef = ref(null);
+const productOptions = ref([]);
+const personList = ref([]);
+const formRules = {
+ deptId: [{ required: true, trigger: "blur", message: "璇疯緭鍏�" }],
+ dictType: [{ required: true, trigger: "change", 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: "璇烽�夋嫨" }],
+ factoryDate: [{ required: true, trigger: "change", message: "璇烽�夋嫨" }],
+ issueDate: [{ required: true, trigger: "change", message: "璇烽�夋嫨" }],
+}
+
+const { form, resetForm } = useFormData({
+ deptId: undefined, //
+ dictType: undefined,
+ staffId: undefined, //
+ dictId: undefined, //
+ num: undefined, //
+ adoptedDate: undefined,
+ factoryDate: undefined,
+ issueDate: 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(() => {
+ form.deptId = userStore.currentDeptId
+ getProductOptions();
+ getPersonList();
+})
+defineExpose({
+ form,
+ resetForm,
+ clearValidate,
+ loadForm,
+ resetFormAndValidate,
+ formRef,
+});
+</script>
--
Gitblit v1.9.3