From 87fa1ae5cf27f72cbc18a5ad7cc6902daa912430 Mon Sep 17 00:00:00 2001 From: BianLzhaoMin <11485688+bianliangzhaomin123@user.noreply.gitee.com> Date: Fri, 30 Jan 2026 10:45:52 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E8=A1=A5=E5=8D=A1=E7=94=B3?= =?UTF-8?q?=E8=AF=B7=E9=A1=B5=E9=9D=A2=E4=BB=A5=E5=8F=8A=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E8=B0=83=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/report/cardReplenishmentManage.js | 47 + src/views/report/attendanceRate/index.vue | 2701 +++++++++-------- .../report/cardReplenishmentManage/index.vue | 502 ++- src/views/report/monthReport/index.vue | 9 +- src/views/setting/change/index.vue | 7 +- 5 files changed, 1940 insertions(+), 1326 deletions(-) create mode 100644 src/api/report/cardReplenishmentManage.js diff --git a/src/api/report/cardReplenishmentManage.js b/src/api/report/cardReplenishmentManage.js new file mode 100644 index 0000000..a9f510f --- /dev/null +++ b/src/api/report/cardReplenishmentManage.js @@ -0,0 +1,47 @@ +// 补卡申请页面接口 +import request from '@/utils/request' + +// 获取补卡申请列表 +export function getCardReplenishmentManageListAPI(data) { + return request({ + url: '/system/repairCard/getAllList', + method: 'GET', + params: data + }) +} + +// 新增补卡申请 +export function addCardReplenishmentManageAPI(data) { + return request({ + url: '/system/repairCard/addRepairCard', + method: 'post', + data + }) +} + +// 修改补卡申请 +export function updateCardReplenishmentManageAPI(data) { + return request({ + url: '/system/repairCard/update', + method: 'post', + data + }) +} + +// 删除补卡申请 +export function deleteCardReplenishmentManageAPI(data) { + return request({ + url: '/system/repairCard/delRepairCard', + method: 'post', + data + }) +} + +// 判断是否已经补过卡 +export function isCardReplenishmentManageAPI(data) { + return request({ + url: '/system/repairCard/getAttCardStatus', + method: 'post', + data + }) +} diff --git a/src/views/report/attendanceRate/index.vue b/src/views/report/attendanceRate/index.vue index d97d3c2..99db2e2 100644 --- a/src/views/report/attendanceRate/index.vue +++ b/src/views/report/attendanceRate/index.vue @@ -1,93 +1,96 @@ diff --git a/src/views/report/cardReplenishmentManage/index.vue b/src/views/report/cardReplenishmentManage/index.vue index 54d244e..7e7952c 100644 --- a/src/views/report/cardReplenishmentManage/index.vue +++ b/src/views/report/cardReplenishmentManage/index.vue @@ -1,11 +1,503 @@ +import { + getCardReplenishmentManageListAPI, + addCardReplenishmentManageAPI, + deleteCardReplenishmentManageAPI, + isCardReplenishmentManageAPI, +} from '@/api/report/cardReplenishmentManage' - +// 获取人员下拉 +import { getPersonSelect } from '@/api/system/userInfo' +import { getOldData } from '@/api/setting/change' + +import { listDeptTree } from '@/api/system/userInfo' +import Treeselect from '@riophae/vue-treeselect' +import '@riophae/vue-treeselect/dist/vue-treeselect.css' +export default { + name: 'CardReplenishmentManage', + components: { Treeselect }, + data() { + return { + total: 0, + loading: false, + deptOptions: [], + personSelectList: [], // 人员下拉数据 + addAndEditForm: { + userId: '', // 用户id + userName: '', // 姓名 + idNumber: '', // 身份证号 + orgId: '', // 部门ID + orgName: '', // 部门名称 + currentDay: '', // 补卡日期 + attType: '', // 补卡类型 1 上午 2 下午 + }, + applyList: [], + dialogVisible: false, + dialogTitle: '新增', + tableColumns: [ + { + label: '姓名', + prop: 'userName', + }, + { + label: '所属部门', + prop: 'orgName', + }, + { + label: '补卡时间', + prop: 'currentDay', + }, + { + label: '补卡类型', + prop: 'attType', + slot: 'attType', + }, + ], + queryParams: { + pageNum: 1, + pageSize: 10, + userName: '', + orgId: undefined, + }, + // 校验规则 + addAndEditFormRules: { + userId: [ + { + required: true, + trigger: 'change', + message: '请选择人员姓名', + }, + ], + currentDay: [ + { + required: true, + trigger: 'change', + message: '请选择补卡日期', + }, + ], + attType: [ + { + required: true, + trigger: 'change', + message: '请选择补卡类型', + }, + ], + }, + // 日期选择器配置 + pickerOptions: { + disabledDate: (time) => { + const today = new Date() + const currentDay = today.getDate() + const currentMonth = today.getMonth() + const currentYear = today.getFullYear() + + // 如果当前时间超过当月的3号 + if (currentDay > 3) { + // 只能选择本月3号到今天的日期 + const minDate = new Date(currentYear, currentMonth, 3) + const maxDate = new Date(today) + maxDate.setHours(23, 59, 59, 999) + return ( + time.getTime() < minDate.getTime() || + time.getTime() > maxDate.getTime() + ) + } else { + // 如果在3号之前,可以选择上个月1号至今天的日期 + const lastMonth = + currentMonth === 0 ? 11 : currentMonth - 1 + const lastMonthYear = + currentMonth === 0 ? currentYear - 1 : currentYear + const minDate = new Date(lastMonthYear, lastMonth, 1) + const maxDate = new Date(today) + maxDate.setHours(23, 59, 59, 999) + return ( + time.getTime() < minDate.getTime() || + time.getTime() > maxDate.getTime() + ) + } + }, + }, + } + }, + methods: { + // 新增 + onHandleAdd() { + this.getPersonSelect() + this.dialogTitle = '新增' + this.dialogVisible = true + }, + + // 删除 + onHandleDelete(row) { + this.$confirm('确定删除该补卡申请吗?', '提示', { + confirmButtonText: '确定', + cancelButtonText: '取消', + type: 'warning', + }).then(async () => { + const res = await deleteCardReplenishmentManageAPI({ + id: row.id, + }) + + if (res.code === 200) { + this.$modal.msgSuccess('删除成功!') + this.getCardReplenishmentManageList() + } + }) + }, + + // 重置 + onHandleReset() { + this.$refs.queryFormRef.resetFields() + this.queryParams.pageNum = 1 + this.queryParams.pageSize = 10 + this.getCardReplenishmentManageList() + }, + + // 获取补卡申请列表 + async getCardReplenishmentManageList() { + const res = await getCardReplenishmentManageListAPI( + this.queryParams, + ) + + this.applyList = res?.rows || [] + this.total = res?.total || 0 + }, + + // 获取人员下拉数据 + async getPersonSelect() { + const res = await getPersonSelect() + this.personSelectList = res?.data?.map((item) => { + return { + id: item.userIds, + userName: item.userName, + idNumber: item.idNumber, + } + }) + + // 从store获取用户Id + this.addAndEditForm.userId = this.$store.state.user.id.toString() + this.handleChangeUserId(this.addAndEditForm.userId) + }, + + // 人员change事件 + async handleChangeUserId(value) { + if (!value) { + this.addAndEditForm.idNumber = '' + this.addAndEditForm.userName = '' + this.addAndEditForm.orgId = '' + this.addAndEditForm.orgName = '' + return + } + const userInfo = this.personSelectList.find( + (item) => item.id === value, + ) + if (userInfo) { + this.addAndEditForm.idNumber = userInfo.idNumber + this.addAndEditForm.userName = userInfo.userName + } + + // 根据userId获取部门信息 + const res = await getOldData({ + userId: value, + userIds: value, + }) + this.addAndEditForm.orgId = res?.data?.oldOrgId + this.addAndEditForm.orgName = res?.data?.oldOrgName + }, + + // 提交申请 + onHandleSubmit() { + this.$refs.addAndEditFormRef.validate(async (valid) => { + if (valid) { + // 先判断是否打卡 + const { idNumber, userName, currentDay, attType } = + this.addAndEditForm + const res = await isCardReplenishmentManageAPI({ + idNumber, + userName, + currentDay, + attType, + }) + if (res.msg === '未打卡') { + const result = await addCardReplenishmentManageAPI( + this.addAndEditForm, + ) + + if (result.code === 200) { + this.$modal.msgSuccess('补卡申请提交成功!') + this.onHandleCloseDialog() + this.getCardReplenishmentManageList() + } + return + } + this.$modal.msgError(res.msg) + } + }) + }, + + // 关闭弹框 + onHandleCloseDialog() { + this.dialogVisible = false + this.addAndEditForm = { + userId: '', + userName: '', + idNumber: '', + } + this.$refs.addAndEditFormRef.resetFields() + }, + + // 获取部门列表 + 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, + } + }, + }, + + mounted() { + this.getDeptList() + this.getCardReplenishmentManageList() + }, +} + diff --git a/src/views/report/monthReport/index.vue b/src/views/report/monthReport/index.vue index 0e690aa..a2abe3d 100644 --- a/src/views/report/monthReport/index.vue +++ b/src/views/report/monthReport/index.vue @@ -46,11 +46,12 @@ icon="el-icon-search" size="mini" @click="handleQuery" - >搜索 - 重置 + 搜索 + + + 重置 + diff --git a/src/views/setting/change/index.vue b/src/views/setting/change/index.vue index 51499ba..158c6aa 100644 --- a/src/views/setting/change/index.vue +++ b/src/views/setting/change/index.vue @@ -208,10 +208,11 @@