From d8f08072c50afe806fce5704a3b0b9835059bfc6 Mon Sep 17 00:00:00 2001
From: XaoLi717 <144221124+XaoLi717@users.noreply.github.com>
Date: Thu, 7 Nov 2024 18:58:43 +0800
Subject: [PATCH] =?UTF-8?q?=E5=8A=A0=E7=8F=AD=E7=AE=A1=E7=90=86?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/views/Home/jbgl/JbglCreate.vue | 150 +++++++++++++++++++----------
src/views/Home/jbgl/JbglDetail.vue | 128 ++++++++++++++----------
2 files changed, 176 insertions(+), 102 deletions(-)
diff --git a/src/views/Home/jbgl/JbglCreate.vue b/src/views/Home/jbgl/JbglCreate.vue
index e9078c4..0db82a8 100644
--- a/src/views/Home/jbgl/JbglCreate.vue
+++ b/src/views/Home/jbgl/JbglCreate.vue
@@ -10,54 +10,80 @@
label-width="100px"
v-loading="formLoading"
>
-
-
-
-
- {{ userInfo}}
- 获取失败
-
-
- {{ deptInfo}}
- 获取失败
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+ {{ userInfo}}
+ 获取失败
+
+
+
+
+ {{ deptInfo}}
+ 获取失败
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -74,6 +100,7 @@ import * as DefinitionApi from '@/api/bpm/definition'
import * as UserApi from '@/api/system/user'
import {useTagsViewStore} from "@/store/modules/tagsView";
import {getUserProfile} from "@/api/system/user/profile";
+import {number} from "echarts";
/** 加班管理 表单 */
defineOptions({ name: 'JbglCreate' })
@@ -93,7 +120,7 @@ const formData = ref({
type: undefined,
startDate: undefined,
endDate: undefined,
- duration: undefined,
+ duration: number | null,
reason: undefined,
status: undefined,
processInstanceId: undefined,
@@ -111,6 +138,29 @@ const userList = ref([]) // 用户列表
const deptInfo = ref('') // 部门信息
const userInfo = ref('') // 用户名字
+// 计算属性:计算时间差
+watchEffect(() => {
+ if (formData.value.startDate && formData.value.endDate) {
+ const start = formData.value.startDate
+ const end = formData.value.endDate
+ const differenceInMs = end - start
+ formData.value.duration = differenceInMs > 0 ? Math.floor(differenceInMs / (1000 * 60 * 60)) : -1;
+ }else {
+ formData.value.duration = 0
+ }
+})
+
+// 方法:验证开始时间是否小于结束时间
+const validateDate = () => {
+ if (formData.value.startDate && formData.value.endDate) {
+ const start = formData.value.startDate
+ const end = formData.value.endDate
+ if (start > end) {
+ formData.value.endDate = undefined
+ message.error('开始时间不能大于结束时间')
+ }
+ }
+}
// 获取用户部门
const getUserInfo = async () => {
const user = await getUserProfile();
@@ -180,7 +230,7 @@ const formRules = reactive({
type: [{ required: true, message: '加班类型不能为空', trigger: 'change' }],
startDate: [{ required: true, message: '加班开始时间不能为空', trigger: 'blur' }],
endDate: [{ required: true, message: '加班结束时间不能为空', trigger: 'blur' }],
- duration: [{ required: true,type: 'number', message: '加班总时长不能为空且是数字', trigger: 'blur' }],
+ // duration: [{ required: true,type: 'number', message: '加班总时长不能为空且是数字', trigger: 'blur' }],
})
const formRef = ref() // 表单 Ref
diff --git a/src/views/Home/jbgl/JbglDetail.vue b/src/views/Home/jbgl/JbglDetail.vue
index 4770474..0a61790 100644
--- a/src/views/Home/jbgl/JbglDetail.vue
+++ b/src/views/Home/jbgl/JbglDetail.vue
@@ -9,58 +9,82 @@
label-width="100px"
v-loading="formLoading"
>
-
-
-
-
- {{ userInfo}}
- 获取失败
-
-
- {{ deptInfo}}
- 获取失败
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+ {{ userInfo}}
+ 获取失败
+
+
+
+
+ {{ deptInfo}}
+ 获取失败
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+