From 0b529ba1edd8297aa60d662adbfbb6669db8b2a0 Mon Sep 17 00:00:00 2001
From: lion <120344285@qq.com>
Date: Fri, 11 Jul 2025 22:53:28 +0800
Subject: [PATCH] =?UTF-8?q?oa=20=E6=9B=B4=E6=94=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/layout/components/Sidebar/SidebarItem.vue | 6 +-
src/store/modules/permission.js | 26 ++-
src/views/attendance/YearStatistics.vue | 186 ++++++++++--------
src/views/attendance/otherovertimechart.vue | 39 +++-
src/views/attendance/statistics.vue | 31 ++-
5 files changed, 193 insertions(+), 95 deletions(-)
diff --git a/src/layout/components/Sidebar/SidebarItem.vue b/src/layout/components/Sidebar/SidebarItem.vue
index 17469fb..6c93b78 100644
--- a/src/layout/components/Sidebar/SidebarItem.vue
+++ b/src/layout/components/Sidebar/SidebarItem.vue
@@ -69,9 +69,9 @@ export default {
})
// When there is only one child router, the child router is displayed by default
- if (showingChildren.length === 1) {
- return true
- }
+ // if (showingChildren.length === 1) {
+ // return true
+ // }
// Show parent if there are no child router to display
if (showingChildren.length === 0) {
diff --git a/src/store/modules/permission.js b/src/store/modules/permission.js
index 9f5f268..1264500 100644
--- a/src/store/modules/permission.js
+++ b/src/store/modules/permission.js
@@ -7,13 +7,13 @@ import Nested from "@/layout/nested.vue"
const loadView = (view) => {
return (resolve) => require([`@/views${view}`], resolve);
}
-const componentHandle = (path, route)=> {
- if (/^#+/.test(path)) {
+const componentHandle = (url, route)=> {
+ if (/^#+/.test(route.path) && route.pid === 0) {
return Layout
- } else if (/^#+/.test(path) && route.pid !== 0) {
+ } else if (/^#+/.test(route.path) && route.pid !== 0) {
return Nested
} else {
- return loadView(path)
+ return loadView(url)
}
}
@@ -22,6 +22,23 @@ export function filterAsyncRoutes(routes) {
routes.forEach(route => {
if (!route.visible) return
+ let params = {};
+ if(route.path?.includes('?')){
+ let flag = route.path.split('?')
+ route.path = flag[0]
+ if(flag[1]){
+ let list = flag[1].split('&')
+ list.forEach(item => {
+ let kv = item.split('=')
+ Object.defineProperty(params,kv[0],{
+ value:kv[1],
+ writable:true,
+ enumerable:true,
+ configurable:false
+ })
+ })
+ }
+ }
let tmp= {
key: `key-${route.id}`,
path: route.path === '#' ? '' : route.path,
@@ -33,6 +50,7 @@ export function filterAsyncRoutes(routes) {
icon: route.icon,
guard: route.guard_name,
folder: route.folder,
+ params
}
}
diff --git a/src/views/attendance/YearStatistics.vue b/src/views/attendance/YearStatistics.vue
index 0d7e4b2..9d09d13 100644
--- a/src/views/attendance/YearStatistics.vue
+++ b/src/views/attendance/YearStatistics.vue
@@ -1,78 +1,110 @@
-
-
-
-
-
-
- 搜索
-
-
-
-
-
-
-
-
-
diff --git a/src/views/attendance/otherovertimechart.vue b/src/views/attendance/otherovertimechart.vue
index 3886d3a..b69c3ad 100644
--- a/src/views/attendance/otherovertimechart.vue
+++ b/src/views/attendance/otherovertimechart.vue
@@ -4,15 +4,21 @@
+ format="yyyy-MM" />
+
-
-
+ -->
+
+ 工作日/节假日
+ 双休
+
+
搜索
@@ -48,7 +54,15 @@
+ title="本月折算累计(h)">
+
+
+
+
+
@@ -72,7 +86,7 @@
page_size: 10,
month: this.$moment().format('YYYY-MM'),
department_id: '',
- is_week: 1
+ is_week: 0
},
my_department_id: "",
is_bgs: false, // 是否是办公室
@@ -121,7 +135,10 @@
id,
name,
department,
- overtime
+ overtime,
+ time_off,
+ use_overtime,
+ discount,
} = item;
let obj = {}
const allDay = overtime.reduce((sum, overtimeItem) => sum + parseFloat(overtimeItem.jiabanshichang), 0);
@@ -148,7 +165,10 @@
overtimeItem.sortnumber = department.sortnumber
overtimeItem.department_id = department.id
overtimeItem.allDay = parseFloat(allDay).toFixed(2);
- overtimeItem.allConvertTime = parseFloat(allConvertTime).toFixed(2);
+ overtimeItem.allConvertTime = parseFloat(allConvertTime).toFixed(2);
+ overtimeItem.time_off = parseFloat(time_off).toFixed(2);
+ overtimeItem.use_overtime = parseFloat(use_overtime).toFixed(2);
+ overtimeItem.discount = parseFloat(discount).toFixed(2);
result.push(overtimeItem);
// 累计折算时长
@@ -179,8 +199,9 @@
// 合并单元格
generateMergeCells(data) {
const columns = this.$refs.table.getColumns();
- let mergeCells = [];
- const columnsToMerge = ['department_name', 'name', 'allDay', 'allConvertTime'];
+ let mergeCells = [];
+
+ const columnsToMerge = ['department_name', 'name', 'allDay', 'allConvertTime','time_off','use_overtime','discount'];
columnsToMerge.forEach(key => {
const col = columns.findIndex(item => item['field'] === key);
diff --git a/src/views/attendance/statistics.vue b/src/views/attendance/statistics.vue
index 0005c04..c4fc0ac 100644
--- a/src/views/attendance/statistics.vue
+++ b/src/views/attendance/statistics.vue
@@ -4,6 +4,13 @@
+
+
+
+
+
+
搜索
@@ -93,12 +100,18 @@