|  |  | 
 |  |  |             <el-icon><Refresh/></el-icon> | 
 |  |  |             重置 | 
 |  |  |           </el-button> | 
 |  |  |           <el-button @click="handleExport"> | 
 |  |  |             <el-icon><Download/></el-icon> | 
 |  |  |             导出 | 
 |  |  |           </el-button> | 
 |  |  |           <el-button type="primary" @click="openScheduleDialog('add')"> | 
 |  |  |           <el-icon><Plus/></el-icon> | 
 |  |  |           新增排班 | 
 |  |  | 
 |  |  | </template> | 
 |  |  |  | 
 |  |  | <script setup> | 
 |  |  | import {ref, reactive, computed, onMounted} from 'vue' | 
 |  |  | import {ref, reactive, computed, onMounted, getCurrentInstance} from 'vue' | 
 |  |  | import {ElMessage, ElMessageBox} from 'element-plus' | 
 |  |  | import {useDict} from "@/utils/dict.js" | 
 |  |  | import {Plus, Download, Search, Refresh} from '@element-plus/icons-vue' | 
 |  |  | 
 |  |  | import {getStaffOnJob} from "@/api/personnelManagement/onboarding.js"; | 
 |  |  | import dayjs from "dayjs"; | 
 |  |  | import pagination from "@/components/PIMTable/Pagination.vue"; | 
 |  |  |  | 
 |  |  | const { proxy } = getCurrentInstance(); | 
 |  |  |  | 
 |  |  | const tableCount = ref(0) | 
 |  |  | // 响应式数据 | 
 |  |  | 
 |  |  |   selectedRows.value = selection | 
 |  |  | } | 
 |  |  |  | 
 |  |  | // 导出 | 
 |  |  | const handleExport = () => { | 
 |  |  |   let searchForm = { | 
 |  |  |     ...filterForm, | 
 |  |  |     ...(filterForm.dateRange.length > 0 && { | 
 |  |  |       startDate: filterForm.dateRange[0], | 
 |  |  |       endDate: filterForm.dateRange[1], | 
 |  |  |     }) | 
 |  |  |   } | 
 |  |  |   proxy.download('/staff/staffScheduling/export', {}, '人员排班.xlsx') | 
 |  |  | } | 
 |  |  |  | 
 |  |  | // 生命周期 | 
 |  |  | onMounted(() => { |