Просмотр исходного кода

考勤功能-修复考勤模块分页bug

zhonghuizhen 1 год назад
Родитель
Сommit
5baebd8930

+ 44 - 40
src/views/business/attendance/attendanceStatistics.vue

@@ -121,7 +121,7 @@ export default {
             listData: [],
             pagination: {
                 totalCount: 0,
-                currentPage: 1,
+                page: 1,
                 limit: 15
             },
             sorts: {},
@@ -188,40 +188,7 @@ export default {
             return ActionUtils.formatParams(searchParam, this.pagination, this.sorts)
         },
         getSearchSql () {
-            let sql = `select 
-                        COUNT(*) AS total_count,
-                        USER_ID_,
-                        ri_qi_,
-                        user_name_,
-		                pos_name_,
-		                gong_hao_,
-                        COUNT(ri_qi_) AS ying_chu_qin_shu,
-                        SUM(CASE WHEN (da_ka_shi_jian_1_ IS NULL OR da_ka_shi_jian_1_ = '') 
-                                AND (da_ka_shi_jian_2_ IS NULL OR da_ka_shi_jian_2_ = '') 
-                                THEN 1 ELSE 0 END) AS xiu_xi_shu,
-                        COUNT(ri_qi_) - SUM(CASE WHEN (da_ka_shi_jian_1_ IS NULL OR da_ka_shi_jian_1_ = '') 
-                                                AND (da_ka_shi_jian_2_ IS NULL OR da_ka_shi_jian_2_ = '') 
-                                                THEN 1 ELSE 0 END) AS shi_ji_chu_qin_shu,
-                        SUM(CASE WHEN (zhuang_tai_1_ = '正常' OR zhuang_tai_1_ IS NULL) 
-                                AND (zhuang_tai_2_ = '正常' OR zhuang_tai_2_ IS NULL) 
-                                THEN 1 ELSE 0 END) AS zheng_chang_shu,
-                        COUNT(ri_qi_) - SUM(CASE WHEN (zhuang_tai_1_ = '正常' OR zhuang_tai_1_ IS NULL) 
-                                                AND (zhuang_tai_2_ = '正常' OR zhuang_tai_2_ IS NULL) 
-                                                THEN 1 ELSE 0 END) AS yi_chang_shu,
-                        SUM(ban_ci_shi_chang_) AS total_ban_ci_shi_chang,
-                        SUM(gong_zuo_shi_chan) AS total_gong_zuo_shi_chan,
-                        SUM(CASE WHEN zhuang_tai_1_ = '迟到' OR zhuang_tai_2_ = '迟到' THEN 1 ELSE 0 END) AS chi_dao_ci_shu,
-                        SUM(CASE WHEN zhuang_tai_1_ = '迟到' THEN chi_dao_shi_chang ELSE 0 END) +
-                        SUM(CASE WHEN zhuang_tai_2_ = '迟到' THEN chi_dao_shi_chang ELSE 0 END) AS total_chi_dao_shi_chang,
-                        SUM(CASE WHEN zhuang_tai_1_ IS NULL OR zhuang_tai_1_ = '' OR 
-                                    zhuang_tai_2_ IS NULL OR zhuang_tai_2_ = '' 
-                                THEN 1 ELSE 0 END) AS kuang_gong_ci_shu,
-                        SUM(CASE WHEN zhuang_tai_1_ = '迟到' OR zhuang_tai_2_ = '迟到' THEN 1 ELSE 0 END) +
-                        SUM(CASE WHEN zhuang_tai_1_ IS NULL OR zhuang_tai_1_ = '' OR 
-                                    zhuang_tai_2_ IS NULL OR zhuang_tai_2_ = '' 
-                                THEN 1 ELSE 0 END) AS yi_chang_he_ji
-                    FROM 
-                        v_attendance_statistics `
+            let sql = ``
             const params = this.getSearchFormData()
             // 定义操作符映射
             const operatorMap = {
@@ -253,13 +220,50 @@ export default {
                 })
 
                 if (conditions.length > 0) {
-                    sql += ' WHERE ' + conditions.join(' AND ')
-                    sql += ' GROUP BY USER_ID_ ORDER BY USER_ID_'
+                    const wherestr = ' WHERE ' + conditions.join(' AND ')
+                    sql = `select 
+                        (select COUNT(DISTINCT USER_ID_) 
+                            FROM v_attendance_statistics 
+                             ${wherestr}
+                        ) AS total_count,
+                        USER_ID_,
+                        ri_qi_,
+                        user_name_,
+		                pos_name_,
+		                gong_hao_,
+                        COUNT(ri_qi_) AS ying_chu_qin_shu,
+                        SUM(CASE WHEN (da_ka_shi_jian_1_ IS NULL OR da_ka_shi_jian_1_ = '') 
+                                AND (da_ka_shi_jian_2_ IS NULL OR da_ka_shi_jian_2_ = '') 
+                                THEN 1 ELSE 0 END) AS xiu_xi_shu,
+                        COUNT(ri_qi_) - SUM(CASE WHEN (da_ka_shi_jian_1_ IS NULL OR da_ka_shi_jian_1_ = '') 
+                                                AND (da_ka_shi_jian_2_ IS NULL OR da_ka_shi_jian_2_ = '') 
+                                                THEN 1 ELSE 0 END) AS shi_ji_chu_qin_shu,
+                        SUM(CASE WHEN (zhuang_tai_1_ = '正常' OR zhuang_tai_1_ IS NULL) 
+                                AND (zhuang_tai_2_ = '正常' OR zhuang_tai_2_ IS NULL) 
+                                THEN 1 ELSE 0 END) AS zheng_chang_shu,
+                        COUNT(ri_qi_) - SUM(CASE WHEN (zhuang_tai_1_ = '正常' OR zhuang_tai_1_ IS NULL) 
+                                                AND (zhuang_tai_2_ = '正常' OR zhuang_tai_2_ IS NULL) 
+                                                THEN 1 ELSE 0 END) AS yi_chang_shu,
+                        SUM(ban_ci_shi_chang_) AS total_ban_ci_shi_chang,
+                        SUM(gong_zuo_shi_chan) AS total_gong_zuo_shi_chan,
+                        SUM(CASE WHEN zhuang_tai_1_ = '迟到' OR zhuang_tai_2_ = '迟到' THEN 1 ELSE 0 END) AS chi_dao_ci_shu,
+                        SUM(CASE WHEN zhuang_tai_1_ = '迟到' THEN chi_dao_shi_chang ELSE 0 END) +
+                        SUM(CASE WHEN zhuang_tai_2_ = '迟到' THEN chi_dao_shi_chang ELSE 0 END) AS total_chi_dao_shi_chang,
+                        SUM(CASE WHEN zhuang_tai_1_ IS NULL OR zhuang_tai_1_ = '' OR 
+                                    zhuang_tai_2_ IS NULL OR zhuang_tai_2_ = '' 
+                                THEN 1 ELSE 0 END) AS kuang_gong_ci_shu,
+                        SUM(CASE WHEN zhuang_tai_1_ = '迟到' OR zhuang_tai_2_ = '迟到' THEN 1 ELSE 0 END) +
+                        SUM(CASE WHEN zhuang_tai_1_ IS NULL OR zhuang_tai_1_ = '' OR 
+                                    zhuang_tai_2_ IS NULL OR zhuang_tai_2_ = '' 
+                                THEN 1 ELSE 0 END) AS yi_chang_he_ji
+                    FROM 
+                        v_attendance_statistics 
+                    ${wherestr}
+                    GROUP BY USER_ID_ ORDER BY USER_ID_
+                    LIMIT ${this.pagination.limit} OFFSET ${(this.pagination.page - 1) * this.pagination.limit}
+                    `
                 }
             }
-            // 添加分页
-            sql += ` LIMIT ${this.pagination.limit} OFFSET ${(this.pagination.currentPage - 1) * this.pagination.limit}`
-
             return sql
         },
         getTodayDate () { // 获取初始化查询截止日期

+ 2 - 2
src/views/business/attendance/makeUpRecords.vue

@@ -83,8 +83,8 @@ export default {
                     { prop: 'bu_ka_ri_qi_', label: '补卡日期', dateFormat: 'yyyy-MM-dd', sortable: 'custom', width: 80 },
                     { prop: 'bu_ka_shi_jian_', label: '补卡时间', dateFormat: 'HH:mm', sortable: 'custom', width: 80 },
                     { prop: 'bu_ka_ban_ci_', label: '补卡班次', width: 80 },
-                    { prop: 'bu_ka_shi_you_', label: '补卡事由', width: 300 },
-                    { prop: 'fu_jian_', label: '说明附件', width: 150 }
+                    { prop: 'bu_ka_shi_you_', label: '补卡事由', width: 300 }
+                    // { prop: 'fu_jian_', label: '说明附件', width: 150 }
                 ],
                 rowHandle: {
                     effect: 'default',

+ 2 - 2
src/views/business/attendance/personAttendanceDetails.vue

@@ -102,7 +102,7 @@ export default {
             listData: [],
             pagination: {
                 totalCount: 0,
-                currentPage: 1,
+                page: 1,
                 limit: 15
             },
             sorts: {},
@@ -205,7 +205,7 @@ export default {
                 }
             }
             // 添加分页
-            sql += ` LIMIT ${this.pagination.limit} OFFSET ${(this.pagination.currentPage - 1) * this.pagination.limit}`
+            sql += ` LIMIT ${this.pagination.limit} OFFSET ${(this.pagination.page - 1) * this.pagination.limit}`
             return sql
         },
         // 分页/排序处理