gaoluyang
5 天以前 af4f913751c08fd6ef70cb183de2fb3c604bab38
src/views/personnelManagement/scheduling/index.vue
@@ -37,6 +37,10 @@
            <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>
          新增排班
@@ -106,6 +110,13 @@
          </template>
        </el-table-column>
      </el-table>
        <pagination
            v-if="tableCount > 0"
            :total="tableCount"
            :page="filterForm.current"
            :limit="filterForm.size"
            @pagination="paginationChange"
        />
    </div>
    <!-- 批量操作 -->
@@ -237,14 +248,18 @@
</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 {save, del, delByIds, listPage} from "@/api/personnelManagement/scheduling.js"
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)
// 响应式数据
const scheduleDialog = ref(false)
const dialogType = ref('add')
@@ -255,7 +270,9 @@
const filterForm = reactive({
  staffName: '',
  shiftType: '',
  dateRange: []
  dateRange: [],
  current:1,
  size: 10
})
// 排班表单
@@ -304,7 +321,11 @@
    personList.value = res.data
  })
};
const paginationChange = (obj) => {
  filterForm.current = obj.page;
  filterForm.size = obj.limit;
  handleFilter();
};
const handleSelectStaff = (val) => {
  let obj = personList.value.find(item => item.id === val)
@@ -328,14 +349,14 @@
const handleFilter = async () => {
  tableLoading.value = true
  let searchForm = {
    staffName: filterForm.staffName,
    shiftType: filterForm.shiftType,
    ...filterForm,
    ...(filterForm.dateRange.length > 0 && {
      startDate: filterForm.dateRange[0],
      endDate: filterForm.dateRange[1],
    })
  }
  let resp = await listPage(searchForm)
  tableCount.value = resp.data.total
  scheduleList.value = resp.data.records.map(it => {
    return {
      ...it,
@@ -467,6 +488,17 @@
  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(() => {