| | |
| | | @keyup.enter="refreshTable()" /> |
| | | </div> |
| | | <div class="search-item"> |
| | | <el-tree-select v-model="query.deptId" |
| | | <el-tree-select v-model="query.sysDeptId" |
| | | :data="deptOptions" |
| | | :props="{ value: 'id', label: 'label', children: 'children' }" |
| | | value-key="id" |
| | |
| | | class="shift-dropdown"> |
| | | <div class="shift-box" |
| | | :class="{ |
| | | 'shift-box-early': m.shift === '0', |
| | | 'shift-box-mid': m.shift === '1', |
| | | 'shift-box-night': m.shift === '2', |
| | | 'shift-box-rest': m.shift === '3', |
| | | 'shift-box-leave': m.shift === '4', |
| | | 'shift-box-other': m.shift === '5', |
| | | 'shift-box-business': m.shift === '6', |
| | | 'shift-box-early': m.shift === '早班', |
| | | 'shift-box-mid': m.shift === '中班', |
| | | 'shift-box-night': m.shift === '夜班', |
| | | 'shift-box-rest': m.shift === '休息', |
| | | 'shift-box-leave': m.shift === '请假', |
| | | 'shift-box-other': m.shift === '夜11', |
| | | 'shift-box-business': m.shift === '夜12', |
| | | }"> |
| | | <span class="shift-text">{{ getShiftByDic(m.shift) || '—' }}</span> |
| | | <span class="shift-text">{{ getShiftNameByValue(m.shift) || '—' }}</span> |
| | | </div> |
| | | <template #dropdown> |
| | | <el-dropdown-menu> |
| | | <el-dropdown-item v-for="(n, j) in classType" |
| | | :key="'h' + j" |
| | | :command="n.id">{{ n.locationName |
| | | :command="n.id">{{ n.shift || '—' |
| | | }}</el-dropdown-item> |
| | | </el-dropdown-menu> |
| | | </template> |
| | |
| | | clearable |
| | | collapse-tags> |
| | | <el-option v-for="item in personList" |
| | | :key="item.userId" |
| | | :label="item.nickName" |
| | | :value="item.userId"> |
| | | :key="item.id" |
| | | :label="item.staffName" |
| | | :value="item.id"> |
| | | </el-option> |
| | | </el-select> |
| | | </div> |
| | |
| | | style="width: 100%"> |
| | | <el-option v-for="item in classType" |
| | | :key="item.id" |
| | | :label="item.locationName" |
| | | :label="getShiftNameByValue(item.shift)" |
| | | :value="item.id"> |
| | | </el-option> |
| | | </el-select> |
| | |
| | | add, |
| | | exportFile, |
| | | update, |
| | | selectUserCondition, |
| | | staffOnJobListPage, |
| | | } from "@/api/personnelManagement/class"; |
| | | import { deptTreeSelect } from "@/api/system/user.js"; |
| | | import { getAttendanceRules } from "@/api/personnelManagement/attendanceRules.js"; |
| | | import { useDict } from "@/utils/dict"; |
| | | const { proxy } = getCurrentInstance(); |
| | | const router = useRouter(); |
| | | |
| | | // 查询条件 |
| | | const query = reactive({ |
| | | userName: "", |
| | | deptId: "", |
| | | sysDeptId: "", |
| | | year: new Date(), |
| | | month: new Date().getMonth() + 1, |
| | | }); |
| | | |
| | | // 获取班次字典值 |
| | | const { shifts_list } = useDict("shifts_list"); |
| | | // 月份选项 |
| | | const monthOptions = [ |
| | | { value: 1, label: "1月" }, |
| | |
| | | const deptOptions = ref([]); |
| | | |
| | | // 周列表 |
| | | const weeks = ref([ |
| | | { weekNum: 1, week: "周一", day: "01" }, |
| | | { weekNum: 1, week: "周二", day: "02" }, |
| | | { weekNum: 1, week: "周三", day: "03" }, |
| | | { weekNum: 1, week: "周四", day: "04" }, |
| | | { weekNum: 1, week: "周五", day: "05" }, |
| | | { weekNum: 1, week: "周六", day: "06" }, |
| | | { weekNum: 2, week: "周日", day: "07" }, |
| | | { weekNum: 2, week: "周一", day: "08" }, |
| | | { weekNum: 2, week: "周二", day: "09" }, |
| | | { weekNum: 2, week: "周三", day: "10" }, |
| | | { weekNum: 2, week: "周四", day: "11" }, |
| | | { weekNum: 2, week: "周五", day: "12" }, |
| | | { weekNum: 2, week: "周六", day: "13" }, |
| | | { weekNum: 3, week: "周日", day: "14" }, |
| | | { weekNum: 3, week: "周一", day: "15" }, |
| | | { weekNum: 3, week: "周二", day: "16" }, |
| | | { weekNum: 3, week: "周三", day: "17" }, |
| | | { weekNum: 3, week: "周四", day: "18" }, |
| | | { weekNum: 3, week: "周五", day: "19" }, |
| | | { weekNum: 3, week: "周六", day: "20" }, |
| | | { weekNum: 4, week: "周日", day: "21" }, |
| | | { weekNum: 4, week: "周一", day: "22" }, |
| | | { weekNum: 4, week: "周二", day: "23" }, |
| | | { weekNum: 4, week: "周三", day: "24" }, |
| | | { weekNum: 4, week: "周四", day: "25" }, |
| | | { weekNum: 4, week: "周五", day: "26" }, |
| | | { weekNum: 4, week: "周六", day: "27" }, |
| | | { weekNum: 5, week: "周日", day: "28" }, |
| | | { weekNum: 5, week: "周一", day: "29" }, |
| | | { weekNum: 5, week: "周二", day: "30" }, |
| | | ]); |
| | | const weeks = ref([]); |
| | | |
| | | // 班次类型 |
| | | const classType = ref([]); |
| | |
| | | }); |
| | | |
| | | // 列表数据 |
| | | const listForm = ref([ |
| | | { |
| | | id: 1, |
| | | name: "张三", |
| | | monthlyAttendance: { |
| | | totalAttendance: 22, |
| | | 早班: 10, |
| | | 中班: 8, |
| | | 夜班: 4, |
| | | 休息: 6, |
| | | 请假: 0, |
| | | 出差: 0, |
| | | }, |
| | | day0: 10, |
| | | day1: 8, |
| | | day2: 4, |
| | | day3: 6, |
| | | day4: 0, |
| | | day6: 0, |
| | | list: [ |
| | | { id: 1, shift: "0" }, |
| | | { id: 2, shift: "0" }, |
| | | { id: 3, shift: "1" }, |
| | | { id: 4, shift: "1" }, |
| | | { id: 5, shift: "2" }, |
| | | { id: 6, shift: "2" }, |
| | | { id: 7, shift: "3" }, |
| | | { id: 8, shift: "0" }, |
| | | { id: 9, shift: "0" }, |
| | | { id: 10, shift: "1" }, |
| | | { id: 11, shift: "1" }, |
| | | { id: 12, shift: "2" }, |
| | | { id: 13, shift: "2" }, |
| | | { id: 14, shift: "3" }, |
| | | { id: 15, shift: "0" }, |
| | | { id: 16, shift: "0" }, |
| | | { id: 17, shift: "1" }, |
| | | { id: 18, shift: "1" }, |
| | | { id: 19, shift: "2" }, |
| | | { id: 20, shift: "2" }, |
| | | { id: 21, shift: "3" }, |
| | | { id: 22, shift: "0" }, |
| | | { id: 23, shift: "0" }, |
| | | { id: 24, shift: "1" }, |
| | | { id: 25, shift: "1" }, |
| | | { id: 26, shift: "2" }, |
| | | { id: 27, shift: "2" }, |
| | | { id: 28, shift: "3" }, |
| | | { id: 29, shift: "0" }, |
| | | { id: 30, shift: "0" }, |
| | | ], |
| | | }, |
| | | { |
| | | id: 2, |
| | | name: "李四", |
| | | monthlyAttendance: { |
| | | totalAttendance: 20, |
| | | 早班: 8, |
| | | 中班: 6, |
| | | 夜班: 6, |
| | | 休息: 8, |
| | | 请假: 2, |
| | | 出差: 0, |
| | | }, |
| | | day0: 8, |
| | | day1: 6, |
| | | day2: 6, |
| | | day3: 8, |
| | | day4: 2, |
| | | day6: 0, |
| | | list: [ |
| | | { id: 31, shift: "1" }, |
| | | { id: 32, shift: "1" }, |
| | | { id: 33, shift: "2" }, |
| | | { id: 34, shift: "2" }, |
| | | { id: 35, shift: "3" }, |
| | | { id: 36, shift: "0" }, |
| | | { id: 37, shift: "0" }, |
| | | { id: 38, shift: "1" }, |
| | | { id: 39, shift: "1" }, |
| | | { id: 40, shift: "2" }, |
| | | { id: 41, shift: "2" }, |
| | | { id: 42, shift: "3" }, |
| | | { id: 43, shift: "0" }, |
| | | { id: 44, shift: "0" }, |
| | | { id: 45, shift: "1" }, |
| | | { id: 46, shift: "1" }, |
| | | { id: 47, shift: "2" }, |
| | | { id: 48, shift: "2" }, |
| | | { id: 49, shift: "3" }, |
| | | { id: 50, shift: "0" }, |
| | | { id: 51, shift: "0" }, |
| | | { id: 52, shift: "4" }, |
| | | { id: 53, shift: "4" }, |
| | | { id: 54, shift: "1" }, |
| | | { id: 55, shift: "1" }, |
| | | { id: 56, shift: "2" }, |
| | | { id: 57, shift: "2" }, |
| | | { id: 58, shift: "3" }, |
| | | { id: 59, shift: "0" }, |
| | | { id: 60, shift: "0" }, |
| | | ], |
| | | }, |
| | | { |
| | | id: 3, |
| | | name: "王五", |
| | | monthlyAttendance: { |
| | | totalAttendance: 23, |
| | | 早班: 9, |
| | | 中班: 9, |
| | | 夜班: 5, |
| | | 休息: 5, |
| | | 请假: 0, |
| | | 出差: 2, |
| | | }, |
| | | day0: 9, |
| | | day1: 9, |
| | | day2: 5, |
| | | day3: 5, |
| | | day4: 0, |
| | | day6: 2, |
| | | list: [ |
| | | { id: 61, shift: "2" }, |
| | | { id: 62, shift: "2" }, |
| | | { id: 63, shift: "3" }, |
| | | { id: 64, shift: "0" }, |
| | | { id: 65, shift: "0" }, |
| | | { id: 66, shift: "1" }, |
| | | { id: 67, shift: "1" }, |
| | | { id: 68, shift: "2" }, |
| | | { id: 69, shift: "2" }, |
| | | { id: 70, shift: "3" }, |
| | | { id: 71, shift: "0" }, |
| | | { id: 72, shift: "0" }, |
| | | { id: 73, shift: "1" }, |
| | | { id: 74, shift: "1" }, |
| | | { id: 75, shift: "2" }, |
| | | { id: 76, shift: "2" }, |
| | | { id: 77, shift: "3" }, |
| | | { id: 78, shift: "0" }, |
| | | { id: 79, shift: "0" }, |
| | | { id: 80, shift: "1" }, |
| | | { id: 81, shift: "1" }, |
| | | { id: 82, shift: "6" }, |
| | | { id: 83, shift: "6" }, |
| | | { id: 84, shift: "2" }, |
| | | { id: 85, shift: "2" }, |
| | | { id: 86, shift: "3" }, |
| | | { id: 87, shift: "0" }, |
| | | { id: 88, shift: "0" }, |
| | | { id: 89, shift: "1" }, |
| | | { id: 90, shift: "1" }, |
| | | ], |
| | | }, |
| | | { |
| | | id: 4, |
| | | name: "张三", |
| | | monthlyAttendance: { |
| | | totalAttendance: 22, |
| | | 早班: 10, |
| | | 中班: 8, |
| | | 夜班: 4, |
| | | 休息: 6, |
| | | 请假: 0, |
| | | 出差: 0, |
| | | }, |
| | | day0: 10, |
| | | day1: 8, |
| | | day2: 4, |
| | | day3: 6, |
| | | day4: 0, |
| | | day6: 0, |
| | | list: [ |
| | | { id: 1, shift: "0" }, |
| | | { id: 2, shift: "0" }, |
| | | { id: 3, shift: "1" }, |
| | | { id: 4, shift: "1" }, |
| | | { id: 5, shift: "2" }, |
| | | { id: 6, shift: "2" }, |
| | | { id: 7, shift: "3" }, |
| | | { id: 8, shift: "0" }, |
| | | { id: 9, shift: "0" }, |
| | | { id: 10, shift: "1" }, |
| | | { id: 11, shift: "1" }, |
| | | { id: 12, shift: "2" }, |
| | | { id: 13, shift: "2" }, |
| | | { id: 14, shift: "3" }, |
| | | { id: 15, shift: "0" }, |
| | | { id: 16, shift: "0" }, |
| | | { id: 17, shift: "1" }, |
| | | { id: 18, shift: "1" }, |
| | | { id: 19, shift: "2" }, |
| | | { id: 20, shift: "2" }, |
| | | { id: 21, shift: "3" }, |
| | | { id: 22, shift: "0" }, |
| | | { id: 23, shift: "0" }, |
| | | { id: 24, shift: "1" }, |
| | | { id: 25, shift: "1" }, |
| | | { id: 26, shift: "2" }, |
| | | { id: 27, shift: "2" }, |
| | | { id: 28, shift: "3" }, |
| | | { id: 29, shift: "0" }, |
| | | { id: 30, shift: "0" }, |
| | | ], |
| | | }, |
| | | { |
| | | id: 5, |
| | | name: "张三", |
| | | monthlyAttendance: { |
| | | totalAttendance: 22, |
| | | 早班: 10, |
| | | 中班: 8, |
| | | 夜班: 4, |
| | | 休息: 6, |
| | | 请假: 0, |
| | | 出差: 0, |
| | | }, |
| | | day0: 10, |
| | | day1: 8, |
| | | day2: 4, |
| | | day3: 6, |
| | | day4: 0, |
| | | day6: 0, |
| | | list: [ |
| | | { id: 1, shift: "0" }, |
| | | { id: 2, shift: "0" }, |
| | | { id: 3, shift: "1" }, |
| | | { id: 4, shift: "1" }, |
| | | { id: 5, shift: "2" }, |
| | | { id: 6, shift: "2" }, |
| | | { id: 7, shift: "3" }, |
| | | { id: 8, shift: "0" }, |
| | | { id: 9, shift: "0" }, |
| | | { id: 10, shift: "1" }, |
| | | { id: 11, shift: "1" }, |
| | | { id: 12, shift: "2" }, |
| | | { id: 13, shift: "2" }, |
| | | { id: 14, shift: "3" }, |
| | | { id: 15, shift: "0" }, |
| | | { id: 16, shift: "0" }, |
| | | { id: 17, shift: "1" }, |
| | | { id: 18, shift: "1" }, |
| | | { id: 19, shift: "2" }, |
| | | { id: 20, shift: "2" }, |
| | | { id: 21, shift: "3" }, |
| | | { id: 22, shift: "0" }, |
| | | { id: 23, shift: "0" }, |
| | | { id: 24, shift: "1" }, |
| | | { id: 25, shift: "1" }, |
| | | { id: 26, shift: "2" }, |
| | | { id: 27, shift: "2" }, |
| | | { id: 28, shift: "3" }, |
| | | { id: 29, shift: "0" }, |
| | | { id: 30, shift: "0" }, |
| | | ], |
| | | }, |
| | | { |
| | | id: 6, |
| | | name: "张三", |
| | | monthlyAttendance: { |
| | | totalAttendance: 22, |
| | | 早班: 10, |
| | | 中班: 8, |
| | | 夜班: 4, |
| | | 休息: 6, |
| | | 请假: 0, |
| | | 出差: 0, |
| | | }, |
| | | day0: 10, |
| | | day1: 8, |
| | | day2: 4, |
| | | day3: 6, |
| | | day4: 0, |
| | | day6: 0, |
| | | list: [ |
| | | { id: 1, shift: "0" }, |
| | | { id: 2, shift: "0" }, |
| | | { id: 3, shift: "1" }, |
| | | { id: 4, shift: "1" }, |
| | | { id: 5, shift: "2" }, |
| | | { id: 6, shift: "2" }, |
| | | { id: 7, shift: "3" }, |
| | | { id: 8, shift: "0" }, |
| | | { id: 9, shift: "0" }, |
| | | { id: 10, shift: "1" }, |
| | | { id: 11, shift: "1" }, |
| | | { id: 12, shift: "2" }, |
| | | { id: 13, shift: "2" }, |
| | | { id: 14, shift: "3" }, |
| | | { id: 15, shift: "0" }, |
| | | { id: 16, shift: "0" }, |
| | | { id: 17, shift: "1" }, |
| | | { id: 18, shift: "1" }, |
| | | { id: 19, shift: "2" }, |
| | | { id: 20, shift: "2" }, |
| | | { id: 21, shift: "3" }, |
| | | { id: 22, shift: "0" }, |
| | | { id: 23, shift: "0" }, |
| | | { id: 24, shift: "1" }, |
| | | { id: 25, shift: "1" }, |
| | | { id: 26, shift: "2" }, |
| | | { id: 27, shift: "2" }, |
| | | { id: 28, shift: "3" }, |
| | | { id: 29, shift: "0" }, |
| | | { id: 30, shift: "0" }, |
| | | ], |
| | | }, |
| | | ]); |
| | | const listForm = ref([]); |
| | | |
| | | // 当前页 |
| | | const currentPage = ref(1); |
| | |
| | | const monthList = ref([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]); |
| | | |
| | | // 年度列表 |
| | | const yearList = ref([ |
| | | { |
| | | id: 1, |
| | | name: "张三", |
| | | work_time: 260, |
| | | day0: 98, |
| | | day1: 78, |
| | | day2: 46, |
| | | day3: 74, |
| | | day4: 14, |
| | | day6: 10, |
| | | monthList: [ |
| | | { |
| | | totalMonthAttendance: 22, |
| | | day0: 10, |
| | | day1: 8, |
| | | day2: 4, |
| | | day3: 6, |
| | | day4: 0, |
| | | day6: 0, |
| | | }, |
| | | { |
| | | totalMonthAttendance: 19, |
| | | day0: 7, |
| | | day1: 6, |
| | | day2: 6, |
| | | day3: 9, |
| | | day4: 3, |
| | | day6: 0, |
| | | }, |
| | | { |
| | | totalMonthAttendance: 23, |
| | | day0: 9, |
| | | day1: 9, |
| | | day2: 5, |
| | | day3: 5, |
| | | day4: 0, |
| | | day6: 2, |
| | | }, |
| | | { |
| | | totalMonthAttendance: 21, |
| | | day0: 8, |
| | | day1: 7, |
| | | day2: 6, |
| | | day3: 7, |
| | | day4: 0, |
| | | day6: 1, |
| | | }, |
| | | { |
| | | totalMonthAttendance: 22, |
| | | day0: 9, |
| | | day1: 8, |
| | | day2: 5, |
| | | day3: 6, |
| | | day4: 1, |
| | | day6: 1, |
| | | }, |
| | | { |
| | | totalMonthAttendance: 18, |
| | | day0: 6, |
| | | day1: 6, |
| | | day2: 6, |
| | | day3: 8, |
| | | day4: 4, |
| | | day6: 0, |
| | | }, |
| | | { |
| | | totalMonthAttendance: 23, |
| | | day0: 10, |
| | | day1: 9, |
| | | day2: 4, |
| | | day3: 5, |
| | | day4: 0, |
| | | day6: 0, |
| | | }, |
| | | { |
| | | totalMonthAttendance: 22, |
| | | day0: 9, |
| | | day1: 8, |
| | | day2: 5, |
| | | day3: 6, |
| | | day4: 0, |
| | | day6: 0, |
| | | }, |
| | | { |
| | | totalMonthAttendance: 21, |
| | | day0: 8, |
| | | day1: 7, |
| | | day2: 6, |
| | | day3: 7, |
| | | day4: 0, |
| | | day6: 1, |
| | | }, |
| | | { |
| | | totalMonthAttendance: 22, |
| | | day0: 9, |
| | | day1: 8, |
| | | day2: 5, |
| | | day3: 6, |
| | | day4: 1, |
| | | day6: 1, |
| | | }, |
| | | { |
| | | totalMonthAttendance: 19, |
| | | day0: 7, |
| | | day1: 7, |
| | | day2: 5, |
| | | day3: 8, |
| | | day4: 2, |
| | | day6: 0, |
| | | }, |
| | | { |
| | | totalMonthAttendance: 23, |
| | | day0: 10, |
| | | day1: 9, |
| | | day2: 4, |
| | | day3: 5, |
| | | day4: 0, |
| | | day6: 0, |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | id: 2, |
| | | name: "李四", |
| | | work_time: 252, |
| | | day0: 90, |
| | | day1: 72, |
| | | day2: 50, |
| | | day3: 76, |
| | | day4: 18, |
| | | day6: 8, |
| | | monthList: [ |
| | | { |
| | | totalMonthAttendance: 21, |
| | | day0: 9, |
| | | day1: 7, |
| | | day2: 5, |
| | | day3: 7, |
| | | day4: 2, |
| | | day6: 0, |
| | | }, |
| | | { |
| | | totalMonthAttendance: 18, |
| | | day0: 6, |
| | | day1: 6, |
| | | day2: 6, |
| | | day3: 10, |
| | | day4: 4, |
| | | day6: 0, |
| | | }, |
| | | { |
| | | totalMonthAttendance: 22, |
| | | day0: 8, |
| | | day1: 8, |
| | | day2: 6, |
| | | day3: 6, |
| | | day4: 0, |
| | | day6: 2, |
| | | }, |
| | | { |
| | | totalMonthAttendance: 20, |
| | | day0: 7, |
| | | day1: 6, |
| | | day2: 7, |
| | | day3: 8, |
| | | day4: 0, |
| | | day6: 2, |
| | | }, |
| | | { |
| | | totalMonthAttendance: 21, |
| | | day0: 8, |
| | | day1: 7, |
| | | day2: 6, |
| | | day3: 7, |
| | | day4: 1, |
| | | day6: 1, |
| | | }, |
| | | { |
| | | totalMonthAttendance: 17, |
| | | day0: 5, |
| | | day1: 5, |
| | | day2: 7, |
| | | day3: 9, |
| | | day4: 5, |
| | | day6: 0, |
| | | }, |
| | | { |
| | | totalMonthAttendance: 22, |
| | | day0: 9, |
| | | day1: 8, |
| | | day2: 5, |
| | | day3: 6, |
| | | day4: 0, |
| | | day6: 0, |
| | | }, |
| | | { |
| | | totalMonthAttendance: 21, |
| | | day0: 8, |
| | | day1: 7, |
| | | day2: 6, |
| | | day3: 7, |
| | | day4: 1, |
| | | day6: 0, |
| | | }, |
| | | { |
| | | totalMonthAttendance: 20, |
| | | day0: 7, |
| | | day1: 6, |
| | | day2: 7, |
| | | day3: 8, |
| | | day4: 0, |
| | | day6: 2, |
| | | }, |
| | | { |
| | | totalMonthAttendance: 21, |
| | | day0: 8, |
| | | day1: 7, |
| | | day2: 6, |
| | | day3: 7, |
| | | day4: 1, |
| | | day6: 1, |
| | | }, |
| | | { |
| | | totalMonthAttendance: 18, |
| | | day0: 6, |
| | | day1: 6, |
| | | day2: 6, |
| | | day3: 9, |
| | | day4: 3, |
| | | day6: 0, |
| | | }, |
| | | { |
| | | totalMonthAttendance: 22, |
| | | day0: 9, |
| | | day1: 8, |
| | | day2: 5, |
| | | day3: 6, |
| | | day4: 0, |
| | | day6: 0, |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | id: 3, |
| | | name: "王五", |
| | | work_time: 268, |
| | | day0: 102, |
| | | day1: 82, |
| | | day2: 48, |
| | | day3: 70, |
| | | day4: 10, |
| | | day6: 14, |
| | | monthList: [ |
| | | { |
| | | totalMonthAttendance: 23, |
| | | day0: 10, |
| | | day1: 9, |
| | | day2: 4, |
| | | day3: 5, |
| | | day4: 0, |
| | | day6: 0, |
| | | }, |
| | | { |
| | | totalMonthAttendance: 21, |
| | | day0: 8, |
| | | day1: 8, |
| | | day2: 5, |
| | | day3: 6, |
| | | day4: 0, |
| | | day6: 2, |
| | | }, |
| | | { |
| | | totalMonthAttendance: 24, |
| | | day0: 10, |
| | | day1: 9, |
| | | day2: 5, |
| | | day3: 4, |
| | | day4: 0, |
| | | day6: 3, |
| | | }, |
| | | { |
| | | totalMonthAttendance: 22, |
| | | day0: 9, |
| | | day1: 8, |
| | | day2: 5, |
| | | day3: 6, |
| | | day4: 0, |
| | | day6: 2, |
| | | }, |
| | | { |
| | | totalMonthAttendance: 23, |
| | | day0: 10, |
| | | day1: 8, |
| | | day2: 5, |
| | | day3: 5, |
| | | day4: 1, |
| | | day6: 1, |
| | | }, |
| | | { |
| | | totalMonthAttendance: 21, |
| | | day0: 8, |
| | | day1: 7, |
| | | day2: 6, |
| | | day3: 7, |
| | | day4: 1, |
| | | day6: 1, |
| | | }, |
| | | { |
| | | totalMonthAttendance: 23, |
| | | day0: 10, |
| | | day1: 9, |
| | | day2: 4, |
| | | day3: 5, |
| | | day4: 0, |
| | | day6: 0, |
| | | }, |
| | | { |
| | | totalMonthAttendance: 22, |
| | | day0: 9, |
| | | day1: 8, |
| | | day2: 5, |
| | | day3: 6, |
| | | day4: 0, |
| | | day6: 0, |
| | | }, |
| | | { |
| | | totalMonthAttendance: 23, |
| | | day0: 10, |
| | | day1: 9, |
| | | day2: 4, |
| | | day3: 5, |
| | | day4: 0, |
| | | day6: 2, |
| | | }, |
| | | { |
| | | totalMonthAttendance: 22, |
| | | day0: 9, |
| | | day1: 8, |
| | | day2: 5, |
| | | day3: 6, |
| | | day4: 1, |
| | | day6: 1, |
| | | }, |
| | | { |
| | | totalMonthAttendance: 21, |
| | | day0: 8, |
| | | day1: 7, |
| | | day2: 6, |
| | | day3: 7, |
| | | day4: 0, |
| | | day6: 2, |
| | | }, |
| | | { |
| | | totalMonthAttendance: 24, |
| | | day0: 10, |
| | | day1: 9, |
| | | day2: 5, |
| | | day3: 4, |
| | | day4: 0, |
| | | day6: 3, |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | id: 4, |
| | | name: "赵六", |
| | | work_time: 248, |
| | | day0: 88, |
| | | day1: 70, |
| | | day2: 50, |
| | | day3: 78, |
| | | day4: 20, |
| | | day6: 6, |
| | | monthList: [ |
| | | { |
| | | totalMonthAttendance: 20, |
| | | day0: 8, |
| | | day1: 6, |
| | | day2: 6, |
| | | day3: 8, |
| | | day4: 3, |
| | | day6: 0, |
| | | }, |
| | | { |
| | | totalMonthAttendance: 17, |
| | | day0: 5, |
| | | day1: 5, |
| | | day2: 7, |
| | | day3: 10, |
| | | day4: 5, |
| | | day6: 0, |
| | | }, |
| | | { |
| | | totalMonthAttendance: 21, |
| | | day0: 7, |
| | | day1: 7, |
| | | day2: 7, |
| | | day3: 7, |
| | | day4: 1, |
| | | day6: 1, |
| | | }, |
| | | { |
| | | totalMonthAttendance: 19, |
| | | day0: 6, |
| | | day1: 6, |
| | | day2: 7, |
| | | day3: 9, |
| | | day4: 2, |
| | | day6: 1, |
| | | }, |
| | | { |
| | | totalMonthAttendance: 20, |
| | | day0: 7, |
| | | day1: 7, |
| | | day2: 6, |
| | | day3: 8, |
| | | day4: 2, |
| | | day6: 0, |
| | | }, |
| | | { |
| | | totalMonthAttendance: 16, |
| | | day0: 4, |
| | | day1: 4, |
| | | day2: 8, |
| | | day3: 10, |
| | | day4: 6, |
| | | day6: 0, |
| | | }, |
| | | { |
| | | totalMonthAttendance: 21, |
| | | day0: 8, |
| | | day1: 7, |
| | | day2: 6, |
| | | day3: 7, |
| | | day4: 1, |
| | | day6: 1, |
| | | }, |
| | | { |
| | | totalMonthAttendance: 20, |
| | | day0: 7, |
| | | day1: 7, |
| | | day2: 6, |
| | | day3: 8, |
| | | day4: 2, |
| | | day6: 0, |
| | | }, |
| | | { |
| | | totalMonthAttendance: 19, |
| | | day0: 6, |
| | | day1: 6, |
| | | day2: 7, |
| | | day3: 9, |
| | | day4: 2, |
| | | day6: 1, |
| | | }, |
| | | { |
| | | totalMonthAttendance: 20, |
| | | day0: 7, |
| | | day1: 7, |
| | | day2: 6, |
| | | day3: 8, |
| | | day4: 2, |
| | | day6: 0, |
| | | }, |
| | | { |
| | | totalMonthAttendance: 18, |
| | | day0: 6, |
| | | day1: 6, |
| | | day2: 6, |
| | | day3: 9, |
| | | day4: 4, |
| | | day6: 0, |
| | | }, |
| | | { |
| | | totalMonthAttendance: 21, |
| | | day0: 8, |
| | | day1: 7, |
| | | day2: 6, |
| | | day3: 7, |
| | | day4: 1, |
| | | day6: 1, |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | id: 5, |
| | | name: "钱七", |
| | | work_time: 266, |
| | | day0: 100, |
| | | day1: 84, |
| | | day2: 46, |
| | | day3: 72, |
| | | day4: 12, |
| | | day6: 12, |
| | | monthList: [ |
| | | { |
| | | totalMonthAttendance: 23, |
| | | day0: 10, |
| | | day1: 9, |
| | | day2: 4, |
| | | day3: 5, |
| | | day4: 0, |
| | | day6: 0, |
| | | }, |
| | | { |
| | | totalMonthAttendance: 21, |
| | | day0: 8, |
| | | day1: 8, |
| | | day2: 5, |
| | | day3: 6, |
| | | day4: 1, |
| | | day6: 1, |
| | | }, |
| | | { |
| | | totalMonthAttendance: 23, |
| | | day0: 9, |
| | | day1: 9, |
| | | day2: 5, |
| | | day3: 5, |
| | | day4: 0, |
| | | day6: 2, |
| | | }, |
| | | { |
| | | totalMonthAttendance: 22, |
| | | day0: 9, |
| | | day1: 8, |
| | | day2: 5, |
| | | day3: 6, |
| | | day4: 0, |
| | | day6: 2, |
| | | }, |
| | | { |
| | | totalMonthAttendance: 22, |
| | | day0: 9, |
| | | day1: 8, |
| | | day2: 5, |
| | | day3: 6, |
| | | day4: 1, |
| | | day6: 1, |
| | | }, |
| | | { |
| | | totalMonthAttendance: 20, |
| | | day0: 7, |
| | | day1: 7, |
| | | day2: 6, |
| | | day3: 8, |
| | | day4: 2, |
| | | day6: 0, |
| | | }, |
| | | { |
| | | totalMonthAttendance: 23, |
| | | day0: 10, |
| | | day1: 9, |
| | | day2: 4, |
| | | day3: 5, |
| | | day4: 0, |
| | | day6: 0, |
| | | }, |
| | | { |
| | | totalMonthAttendance: 22, |
| | | day0: 9, |
| | | day1: 8, |
| | | day2: 5, |
| | | day3: 6, |
| | | day4: 0, |
| | | day6: 0, |
| | | }, |
| | | { |
| | | totalMonthAttendance: 23, |
| | | day0: 9, |
| | | day1: 9, |
| | | day2: 5, |
| | | day3: 5, |
| | | day4: 0, |
| | | day6: 2, |
| | | }, |
| | | { |
| | | totalMonthAttendance: 22, |
| | | day0: 9, |
| | | day1: 8, |
| | | day2: 5, |
| | | day3: 6, |
| | | day4: 1, |
| | | day6: 1, |
| | | }, |
| | | { |
| | | totalMonthAttendance: 20, |
| | | day0: 7, |
| | | day1: 7, |
| | | day2: 6, |
| | | day3: 8, |
| | | day4: 2, |
| | | day6: 0, |
| | | }, |
| | | { |
| | | totalMonthAttendance: 23, |
| | | day0: 10, |
| | | day1: 9, |
| | | day2: 4, |
| | | day3: 5, |
| | | day4: 0, |
| | | day6: 0, |
| | | }, |
| | | ], |
| | | }, |
| | | ]); |
| | | const yearList = ref([]); |
| | | |
| | | // 导出加载状态 |
| | | const downLoading = ref(false); |
| | |
| | | JSON.parse(JSON.stringify(response.data)) |
| | | ); |
| | | }); |
| | | }; |
| | | |
| | | // 根据班次值获取班次名称 |
| | | const getShiftNameByValue = value => { |
| | | if (!value) return ""; |
| | | const shift = shifts_list.value.find(item => item.value === value); |
| | | return shift ? shift.label : value; |
| | | }; |
| | | |
| | | // 过滤禁用的部门 |
| | |
| | | yearList.value = []; |
| | | currentPage.value = 1; |
| | | query.userName = ""; |
| | | query.deptId = ""; |
| | | query.sysDeptId = ""; |
| | | query.year = new Date(); |
| | | query.month = new Date().getMonth() + 1; |
| | | if (query.month) { |
| | |
| | | current: currentPage.value, |
| | | time: year + "-" + month + "-01 00:00:00", |
| | | userName: query.userName, |
| | | deptId: query.deptId, |
| | | sysDeptId: query.sysDeptId, |
| | | }) |
| | | .then(res => { |
| | | pageLoading.value = false; |
| | |
| | | current: currentPage.value, |
| | | time: year + "-01-01 00:00:00", |
| | | userName: query.userName, |
| | | deptId: query.deptId, |
| | | sysDeptId: query.sysDeptId, |
| | | }).then(res => { |
| | | pageLoading.value = false; |
| | | total.value = res.data.total; |
| | |
| | | add({ |
| | | startWeek, |
| | | endWeek, |
| | | userId: schedulingQuery.userId.join(","), |
| | | shift: schedulingQuery.shift, |
| | | staffOnJobId: schedulingQuery.userId.join(","), |
| | | personalAttendanceLocationConfigId: schedulingQuery.shift, |
| | | }) |
| | | .then(res => { |
| | | loading.value = false; |
| | |
| | | exportFile({ |
| | | time, |
| | | userName: query.userName, |
| | | deptId: query.deptId, |
| | | sysDeptId: query.sysDeptId, |
| | | isMonth: query.month ? true : false, |
| | | }) |
| | | .then(res => { |
| | |
| | | }; |
| | | // 处理命令 |
| | | const handleCommand = (e, m) => { |
| | | if (e != m.shift) { |
| | | update({ |
| | | id: m.id, |
| | | shift: e, |
| | | }).then(res => { |
| | | proxy.$modal.msgSuccess("操作成功"); |
| | | m.shift = e; |
| | | }); |
| | | } |
| | | // if (e != m.shift) { |
| | | update({ |
| | | id: m.id, |
| | | personalAttendanceLocationConfigId: e, |
| | | }).then(res => { |
| | | proxy.$modal.msgSuccess("操作成功"); |
| | | // m.shift = e; |
| | | if (query.month) { |
| | | init(); |
| | | } else { |
| | | initYear(); |
| | | } |
| | | }); |
| | | // } |
| | | }; |
| | | // 查询规则列表 |
| | | const fetchData = () => { |
| | |
| | | // let arr = res.data; |
| | | // personList.value = arr; |
| | | // }); |
| | | selectUserCondition().then(res => { |
| | | let arr = res.data; |
| | | staffOnJobListPage({ |
| | | current: -1, |
| | | size: -1, |
| | | staffState: 1, |
| | | }).then(res => { |
| | | let arr = res.data.records; |
| | | personList.value = arr; |
| | | }); |
| | | }; |
| | | |
| | | // 根据字典获取日期 |
| | | const getDayByDic = e => { |
| | | let obj = classType.value.find(m => m.locationName == e); |
| | | let obj = classType.value.find(m => m.shift == e); |
| | | if (obj) { |
| | | return obj.id; |
| | | } |
| | |
| | | |
| | | // 根据字典获取班次 |
| | | const getShiftByDic = e => { |
| | | let obj = classType.value.find(m => m.id == e); |
| | | let obj = classType.value.find(m => m.shift == e); |
| | | if (obj) { |
| | | return obj.locationName; |
| | | return obj.shift; |
| | | } |
| | | return "无"; |
| | | }; |
| | |
| | | .user-stats { |
| | | /* display: flex; */ |
| | | /* flex-wrap: wrap; |
| | | gap: 10px; */ |
| | | gap: 10px; */ |
| | | margin-bottom: 4px; |
| | | } |
| | | |