123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 |
- <template>
- <BasicModal v-bind="$attrs" @register="registerModal" title="离职人员信息" :showOkBtn="false" width="1000px" destroyOnClose>
- <BasicTable @register="registerTable" :rowSelection="rowSelection">
- <!--插槽:table标题-->
- <template #tableTitle>
- <a-dropdown v-if="selectedRowKeys.length > 0">
- <template #overlay>
- <a-menu>
- <a-menu-item key="1" @click="batchHandleRevert">
- <Icon icon="ant-design:redo-outlined"></Icon>
- 批量取消
- </a-menu-item>
- </a-menu>
- </template>
- <a-button
- >批量操作
- <Icon icon="ant-design:down-outlined"></Icon>
- </a-button>
- </a-dropdown>
- </template>
- <!--操作栏-->
- <template #action="{ record }">
- <TableAction :actions="getTableAction(record)" />
- </template>
- </BasicTable>
- </BasicModal>
- </template>
- <script lang="ts" setup name="user-quit-modal">
- import { ref, toRaw, unref } from 'vue';
- import { BasicModal, useModalInner } from '/@/components/Modal';
- import { BasicTable, useTable, TableAction } from '/@/components/Table';
- import { recycleColumns } from './user.data';
- import { getQuitList, putCancelQuit, deleteRecycleBin } from './user.api';
- import { useMessage } from '/@/hooks/web/useMessage';
- import { useListPage } from '/@/hooks/system/useListPage';
- import { Modal } from 'ant-design-vue';
- import { defHttp } from '/@/utils/http/axios';
- const { createConfirm } = useMessage();
- // 声明Emits
- const emit = defineEmits(['success', 'register']);
- const checkedKeys = ref<Array<string | number>>([]);
- const [registerModal] = useModalInner(() => {
- checkedKeys.value = [];
- });
- //注册table数据
- const { prefixCls, tableContext } = useListPage({
- tableProps: {
- api: getQuitList,
- columns: recycleColumns,
- rowKey: 'id',
- useSearchForm: false,
- actionColumn: {
- width: 120,
- },
- },
- });
- //注册table数据
- const [registerTable, { reload }, { rowSelection, selectedRowKeys, selectedRows }] = tableContext;
- /**
- * 取消离职事件
- * @param record
- */
- async function handleCancelQuit(record) {
- await putCancelQuit({ userIds: record.id, usernames: record.username }, reload);
- emit('success');
- }
- /**
- * 批量取消离职事件
- */
- function batchHandleRevert() {
- Modal.confirm({
- title: '取消离职',
- content: '取消离职交接人也会清空',
- okText: '确认',
- cancelText: '取消',
- onOk: () => {
- let rowValue = selectedRows.value;
- let rowData: any = [];
- for (const value of rowValue) {
- rowData.push(value.username);
- }
- handleCancelQuit({ id: toRaw(unref(selectedRowKeys)).join(','), username: rowData.join(',') });
- },
- });
- }
- //获取操作栏事件
- function getTableAction(record) {
- return [
- {
- label: '取消离职',
- icon: 'ant-design:redo-outlined',
- popConfirm: {
- title: '是否取消离职,取消离职交接人也会清空',
- confirm: handleCancelQuit.bind(null, record),
- },
- },
- ];
- }
- </script>
- <style scoped lang="less">
- :deep(.ant-popover-inner-content) {
- width: 185px !important;
- }
- </style>
|