From 5d6bd54f5b30bd2fe24cc9d401d44e3449afe5d3 Mon Sep 17 00:00:00 2001
From: lSun <15893999301@qq.com>
Date: Tue, 25 Feb 2025 17:22:39 +0800
Subject: [PATCH] =?UTF-8?q?=E7=A6=85=E9=81=93bug=E4=BF=AE=E6=94=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/views/dashboard/topOne.vue | 4 +-
.../process/eightMembersVacancy/index.vue | 6 ++
src/views/process/evection/index.vue | 28 +++++-
src/views/process/leaveReporting/index.vue | 28 +++++-
src/views/process/outApply/index.vue | 30 +++++-
src/views/process/outExam/index.vue | 15 +++
src/views/process/restApply/index.vue | 29 +++++-
src/views/process/restExam/index.vue | 17 ++++
src/views/report/attReport/check.vue | 98 +++++++++++++------
src/views/report/attReport/dictTag.vue | 39 ++++++++
src/views/report/attReport/index.vue | 19 +++-
src/views/system/userInfo/index.vue | 5 +-
12 files changed, 272 insertions(+), 46 deletions(-)
create mode 100644 src/views/report/attReport/dictTag.vue
diff --git a/src/views/dashboard/topOne.vue b/src/views/dashboard/topOne.vue
index fb5be99..9bae706 100644
--- a/src/views/dashboard/topOne.vue
+++ b/src/views/dashboard/topOne.vue
@@ -50,10 +50,10 @@
打卡地异常
{{ todayAbnormalBean.addressErrorNum }}
-
+
diff --git a/src/views/process/eightMembersVacancy/index.vue b/src/views/process/eightMembersVacancy/index.vue
index 10f7c18..500de3d 100644
--- a/src/views/process/eightMembersVacancy/index.vue
+++ b/src/views/process/eightMembersVacancy/index.vue
@@ -233,6 +233,9 @@ export default {
/** 缺员项目部数量 */
openVacancyDeptList(row) {
this.title = '缺员情况'
+ this.queryVacancyDept.pageNum = 1
+ this.queryVacancyDept.pageSize = 10
+ this.queryVacancyDept.orgName = undefined
this.queryVacancyDept.id = row.id
this.showVacancyDept = true
this.getUnderStaffingList()
@@ -251,6 +254,9 @@ export default {
/** 兼职项目部数量 */
openPartTimeJobList(row) {
this.title = '兼职情况'
+ this.queryPartTime.pageNum = 1
+ this.queryPartTime.pageSize = 10
+ this.queryPartTime.orgName = undefined
this.queryPartTime.id = row.id
this.showPartTime = true
this.getPartTimeList()
diff --git a/src/views/process/evection/index.vue b/src/views/process/evection/index.vue
index e8c2e85..3b8e499 100644
--- a/src/views/process/evection/index.vue
+++ b/src/views/process/evection/index.vue
@@ -194,7 +194,7 @@
-
+
+
+
+
@@ -618,6 +622,7 @@ import {
import Treeselect from "@riophae/vue-treeselect";
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
import { getDaysDate } from "@/api/process/leaveReporting";
+import { listDeptTree } from '@/api/system/userInfo'
export default {
name: "Evection",
@@ -763,12 +768,14 @@ export default {
},
},
daysNumber: "",
+ deptOptions:[],
};
},
created() {
this.getList();
this.getUserLists();
this.getPersonSelect();
+ this.getDeptList();
},
methods: {
async handleDateChange() {
@@ -1055,6 +1062,25 @@ export default {
}
);
},
+ getDeptList(){
+ listDeptTree().then(response => {
+ this.deptOptions = this.handleTree(response.data, "id");
+ });
+ },
+ /** 转换部门数据结构 */
+ normalizer(node) {
+ if (node.children && !node.children.length) {
+ delete node.children;
+ }
+ return {
+ id: node.id,
+ label: node.orgName,
+ children: node.children
+ };
+ },
+ onSelect(selectedNode) {
+ this.form.orgName = selectedNode.orgName;
+ }
},
};
diff --git a/src/views/process/leaveReporting/index.vue b/src/views/process/leaveReporting/index.vue
index 704dbe0..5ab8672 100644
--- a/src/views/process/leaveReporting/index.vue
+++ b/src/views/process/leaveReporting/index.vue
@@ -130,7 +130,7 @@
-
+
+
+
@@ -401,7 +404,7 @@ import {
} from "@/api/process/leaveReporting";
import Treeselect from "@riophae/vue-treeselect";
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
-import {getSelectRole} from "@/api/system/userInfo";
+import { getSelectRole, listDeptTree } from '@/api/system/userInfo'
import {listDeptUser} from "@/api/system/dept";
// 转换函数
function transformToTypeList(data) {
@@ -513,12 +516,14 @@ export default {
},
},
daysNumber:"",
+ deptOptions:[],
};
},
created() {
this.getList();
this.getUserLists();
this.getLeaveReporting();
+ this.getDeptList();
},
methods: {
getLeaveReporting(){
@@ -736,6 +741,25 @@ export default {
})
})
},
+ getDeptList(){
+ listDeptTree().then(response => {
+ this.deptOptions = this.handleTree(response.data, "id");
+ });
+ },
+ /** 转换部门数据结构 */
+ normalizer(node) {
+ if (node.children && !node.children.length) {
+ delete node.children;
+ }
+ return {
+ id: node.id,
+ label: node.orgName,
+ children: node.children
+ };
+ },
+ onSelect(selectedNode) {
+ this.form.orgName = selectedNode.orgName;
+ }
}
};
diff --git a/src/views/process/outApply/index.vue b/src/views/process/outApply/index.vue
index 77be151..2a3ade6 100644
--- a/src/views/process/outApply/index.vue
+++ b/src/views/process/outApply/index.vue
@@ -148,7 +148,7 @@
-
+
+
+
+
+
@@ -294,6 +299,7 @@ import {
import Treeselect from "@riophae/vue-treeselect";
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
import {getDaysDate} from "@/api/process/leaveReporting";
+import { listDeptTree } from '@/api/system/userInfo'
export default {
name: "OutApply",
@@ -422,11 +428,13 @@ export default {
},
},
daysNumber: "",
+ deptOptions:[],
};
},
created() {
this.getList();
this.getUserLists();
+ this.getDeptList();
},
methods: {
async handleDateChange() {
@@ -674,6 +682,26 @@ export default {
})
},
+ getDeptList(){
+ listDeptTree().then(response => {
+ this.deptOptions = this.handleTree(response.data, "id");
+ });
+ },
+ /** 转换部门数据结构 */
+ normalizer(node) {
+ if (node.children && !node.children.length) {
+ delete node.children;
+ }
+ return {
+ id: node.id,
+ label: node.orgName,
+ children: node.children
+ };
+ },
+ onSelect(selectedNode) {
+ this.form.orgName = selectedNode.orgName;
+ }
+
}
};
diff --git a/src/views/process/outExam/index.vue b/src/views/process/outExam/index.vue
index 4188fac..acf4656 100644
--- a/src/views/process/outExam/index.vue
+++ b/src/views/process/outExam/index.vue
@@ -8,6 +8,20 @@
+
+
+
+
+
+
搜索
重置
@@ -308,6 +322,7 @@ export default {
leaveType:"临时外出",
userName: undefined,
orgName: undefined,
+ examineStatus: undefined
},
personOptions:[],
typeList:[{value:'1',label:'固定班制'},{value:'2',label:'自由工时'}],
diff --git a/src/views/process/restApply/index.vue b/src/views/process/restApply/index.vue
index e3ac2ca..7c387ca 100644
--- a/src/views/process/restApply/index.vue
+++ b/src/views/process/restApply/index.vue
@@ -157,7 +157,7 @@
-
+
+
+
@@ -291,6 +294,7 @@ import {
import Treeselect from '@riophae/vue-treeselect'
import '@riophae/vue-treeselect/dist/vue-treeselect.css'
import { getDaysDate } from '@/api/process/leaveReporting'
+import { listDeptTree } from '@/api/system/userInfo'
export default {
name: 'RestApply',
@@ -402,12 +406,14 @@ export default {
return v.getTime() < today.getTime()
}
},
- daysNumber: ''
+ daysNumber: '',
+ deptOptions:[],
}
},
created() {
this.getList()
this.getUserLists()
+ this.getDeptList();
},
methods: {
async handleDateChange() {
@@ -638,6 +644,25 @@ export default {
fileType: 'application/vnd.ms-excel;charset=utf-8'
})
})
+ },
+ getDeptList(){
+ listDeptTree().then(response => {
+ this.deptOptions = this.handleTree(response.data, "id");
+ });
+ },
+ /** 转换部门数据结构 */
+ normalizer(node) {
+ if (node.children && !node.children.length) {
+ delete node.children;
+ }
+ return {
+ id: node.id,
+ label: node.orgName,
+ children: node.children
+ };
+ },
+ onSelect(selectedNode) {
+ this.form.orgName = selectedNode.orgName;
}
}
diff --git a/src/views/process/restExam/index.vue b/src/views/process/restExam/index.vue
index 6bb6078..add784e 100644
--- a/src/views/process/restExam/index.vue
+++ b/src/views/process/restExam/index.vue
@@ -8,6 +8,22 @@
+
+
+
+
+
+
+
+
搜索
重置
@@ -299,6 +315,7 @@ export default {
leaveType:"轮休",
userName: undefined,
orgName: undefined,
+ examineStatus: undefined
},
personOptions:[],
typeList:[{value:'1',label:'固定班制'},{value:'2',label:'自由工时'}],
diff --git a/src/views/report/attReport/check.vue b/src/views/report/attReport/check.vue
index e2c42ae..68b068a 100644
--- a/src/views/report/attReport/check.vue
+++ b/src/views/report/attReport/check.vue
@@ -75,18 +75,10 @@
- 未打卡
- 正常
- 迟到
- 旷工
- 早退
- 轮休
- 请假
- 临时外出
- 出入异常
- 打卡地异常
- 出差
- 法定节假日
+
@@ -96,7 +88,14 @@
- 未打卡
+
+ {{ scope.row.toWorkUpdateAtt }}
+
+
@@ -122,7 +122,13 @@
- 未打卡
+
+
+
+
- 未打卡
+
+ {{ scope.row.offWorkUpdateAtt }}
+
+
@@ -182,18 +196,22 @@
- 未打卡
- 正常
- 迟到
- 旷工
- 早退
- 轮休
- 请假
- 临时外出
- 出入异常
- 打卡地异常
- 出差
- 法定节假日
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -213,6 +231,7 @@
打卡地异常
出差
法定节假日
+
@@ -225,7 +244,11 @@
- 未打卡
+
+
@@ -301,10 +324,12 @@ import BnsKkFilePreview from '@/views/bns-kkFile-preview'
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
import { getToken } from '@/utils/auth'
+import DictTag from './dictTag.vue';
+
export default {
name: "Check",
dicts: ['att_status'],
- components: {Treeselect,BnsKkFilePreview},
+ components: {Treeselect,BnsKkFilePreview,DictTag},
data() {
return {
// 遮罩层
@@ -554,6 +579,17 @@ export default {
}
console.log(this.kkFilePreview)
},
+
+ getStatusStyle(status) {
+ const styleMap = {
+ 2: { color: '#F1A4AD' }, // 迟到
+ 3: { color: '#29C9C9' }, // 旷工
+ 6: { color: '#14ACF0' }, // 请假
+ 8: { color: '#DD1E36' } // 出入异常
+ };
+ return styleMap[status] || {};
+ },
+
}
};
diff --git a/src/views/report/attReport/dictTag.vue b/src/views/report/attReport/dictTag.vue
new file mode 100644
index 0000000..bf76826
--- /dev/null
+++ b/src/views/report/attReport/dictTag.vue
@@ -0,0 +1,39 @@
+
+
+ {{ getText }}
+
+
+
+
+
+
diff --git a/src/views/report/attReport/index.vue b/src/views/report/attReport/index.vue
index 380cc9b..dec483a 100644
--- a/src/views/report/attReport/index.vue
+++ b/src/views/report/attReport/index.vue
@@ -567,8 +567,13 @@ export default {
this.dialogList = selection.slice()
},
openDialog() {
- console.log(this.dialogList)
if (this.dialogList.length > 0) {
+ this.dialogList.forEach(item => {
+ item.filesVoList = [];
+ item.toErrorRemake = "";
+ item.offErrorRemake = "";
+ });
+ console.log(this.dialogList)
this.open = true
this.dialogListOld = JSON.parse(JSON.stringify(this.dialogList))
} else {
@@ -724,15 +729,16 @@ export default {
submitEdit() {
let paramList = []
let hasError = false
+ let hasChanges = false;
+
this.dialogList.forEach((newItem, index) => {
const oldItem = this.dialogListOld[index]
-
-
// 检查toWorkAttCurrentTime或toWorkAttStatus是否改变
if ((newItem.toWorkAttCurrentTime !== oldItem.toWorkAttCurrentTime || newItem.toWorkAttStatus !== oldItem.toWorkAttStatus) &&
(!newItem.toErrorRemake || newItem.toErrorRemake === '' || !this.hasAttachments(newItem.filesVoList, '1') )) {
hasError = true
+ hasChanges = true;
this.$message({ message: '上班时间或状态改变时,原因说明、附件不能为空!', type: 'warning' })
}
@@ -740,10 +746,10 @@ export default {
if ((newItem.offWorkAttCurrentTime !== oldItem.offWorkAttCurrentTime || newItem.offWorkAttStatus !== oldItem.offWorkAttStatus) &&
(!newItem.offErrorRemake || newItem.offErrorRemake === '' || !this.hasAttachments(newItem.filesVoList, '1') )) {
hasError = true
+ hasChanges = true;
this.$message({ message: '下班时间或状态改变时,原因说明、附件不能为空!', type: 'warning' })
}
-
// 如果没有错误,则构建参数对象
if (!hasError) {
let obj = {
@@ -763,6 +769,11 @@ export default {
}
})
console.log("aa=",paramList)
+ if(!hasChanges){
+ this.$message({ message: '没有数据变化,无需更新!', type: 'info' });
+ return;
+ }
+
if (!hasError) {
updateAttDetails(paramList).then(response => {
if (response.code === 200) {
diff --git a/src/views/system/userInfo/index.vue b/src/views/system/userInfo/index.vue
index e287d9a..3980d1b 100644
--- a/src/views/system/userInfo/index.vue
+++ b/src/views/system/userInfo/index.vue
@@ -14,10 +14,8 @@
-
-
-
+
@@ -511,6 +509,7 @@
if (valid) {
if (this.form.userId != undefined) {
this.form.newFace = "";
+ this.form.orgIds = [this.form.orgIds]
console.log("人员修改",this.form);
updateUser(this.form).then(response => {
this.$modal.msgSuccess("修改成功");