Browse Source

feat(tasks-ui): add delete-many button

pull/794/head
cKey 3 years ago
parent
commit
99aaad5afb
  1. 71
      apps/vue/src/views/task-management/background-jobs/components/JobTable.vue

71
apps/vue/src/views/task-management/background-jobs/components/JobTable.vue

@ -22,6 +22,14 @@
@click="handleAddNew" @click="handleAddNew"
>{{ L('BackgroundJobs:AddNew') }}</a-button >{{ L('BackgroundJobs:AddNew') }}</a-button
> >
<a-button
v-if="hasPermission('TaskManagement.BackgroundJobs.Delete')"
type="primary"
danger
:disabled="!isMultiSelected"
@click="handleDeleteMany"
>{{ L('Delete') }}</a-button
>
</template> </template>
<template #bodyCell="{ column, record }"> <template #bodyCell="{ column, record }">
<template v-if="column.key === 'isEnabled'"> <template v-if="column.key === 'isEnabled'">
@ -91,15 +99,16 @@
</template> </template>
</template> </template>
</BasicTable> </BasicTable>
<JobModal @change="handleChange" @register="registerModal" /> <JobModal @change="reloadTable" @register="registerModal" />
</div> </div>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import { computed, ref } from 'vue'; import { computed, ref } from 'vue';
import { Switch, Modal, Tag, Tooltip, message } from 'ant-design-vue'; import { Switch, Tag, Tooltip } from 'ant-design-vue';
import { useLocalization } from '/@/hooks/abp/useLocalization'; import { useLocalization } from '/@/hooks/abp/useLocalization';
import { usePermission } from '/@/hooks/web/usePermission'; import { usePermission } from '/@/hooks/web/usePermission';
import { useMessage } from '/@/hooks/web/useMessage';
import { useGo } from '/@/hooks/web/usePage'; import { useGo } from '/@/hooks/web/usePage';
import { useModal } from '/@/components/Modal'; import { useModal } from '/@/components/Modal';
import { BasicTable, TableAction, useTable } from '/@/components/Table'; import { BasicTable, TableAction, useTable } from '/@/components/Table';
@ -112,6 +121,7 @@
deleteById, deleteById,
bulkStop, bulkStop,
bulkStart, bulkStart,
bulkDelete,
getAvailableFields, getAvailableFields,
advancedSearch, advancedSearch,
} from '/@/api/task-management/backgroundJobInfo'; } from '/@/api/task-management/backgroundJobInfo';
@ -128,10 +138,11 @@
import JobModal from './JobModal.vue'; import JobModal from './JobModal.vue';
const go = useGo(); const go = useGo();
const { createConfirm, createMessage } = useMessage();
const { L } = useLocalization(['TaskManagement', 'AbpUi']); const { L } = useLocalization(['TaskManagement', 'AbpUi']);
const { hasPermission } = usePermission(); const { hasPermission } = usePermission();
const [registerModal, { openModal }] = useModal(); const [registerModal, { openModal }] = useModal();
const [registerTable, { reload, getSelectRowKeys }] = useTable({ const [registerTable, { reload, getSelectRowKeys, clearSelectedRowKeys }] = useTable({
rowKey: 'id', rowKey: 'id',
title: L('BackgroundJobs'), title: L('BackgroundJobs'),
columns: getDataColumns(), columns: getDataColumns(),
@ -171,10 +182,6 @@
selectedRowKeys.value = keys; selectedRowKeys.value = keys;
} }
function handleChange() {
reload();
}
function handleAddNew() { function handleAddNew() {
openModal(true, { id: null }); openModal(true, { id: null });
} }
@ -189,49 +196,68 @@
function handlePause(record) { function handlePause(record) {
pause(record.id).then(() => { pause(record.id).then(() => {
message.success(L('Successful')); createMessage.success(L('Successful'));
reload(); reloadTable();
}); });
} }
function handleResume(record) { function handleResume(record) {
resume(record.id).then(() => { resume(record.id).then(() => {
message.success(L('Successful')); createMessage.success(L('Successful'));
reload(); reloadTable();
}); });
} }
function handleTrigger(record) { function handleTrigger(record) {
trigger(record.id).then(() => { trigger(record.id).then(() => {
message.success(L('Successful')); createMessage.success(L('Successful'));
reload(); reloadTable();
}); });
} }
function handleStart() { function handleStart() {
const selectKeys = getSelectRowKeys(); const selectKeys = getSelectRowKeys();
bulkStart(selectKeys).then(() => { bulkStart(selectKeys).then(() => {
message.success(L('Successful')); createMessage.success(L('Successful'));
reload(); reloadTable();
}); });
} }
function handleStop() { function handleStop() {
const selectKeys = getSelectRowKeys(); const selectKeys = getSelectRowKeys();
bulkStop(selectKeys).then(() => { bulkStop(selectKeys).then(() => {
message.success(L('Successful')); createMessage.success(L('Successful'));
reload(); reloadTable();
});
}
function handleDeleteMany() {
const selectKeys = getSelectRowKeys();
if (selectKeys.length <= 0) {
return;
}
createConfirm({
iconType: 'warning',
title: L('AreYouSure'),
content: L('MultipleSelectJobsWillBeDeletedMessage'),
okCancel: true,
onOk: () => {
return bulkDelete(selectKeys).then(() => {
reloadTable();
});
},
}); });
} }
function handleDelete(record) { function handleDelete(record) {
Modal.warning({ createConfirm({
iconType: 'warning',
title: L('AreYouSure'), title: L('AreYouSure'),
content: L('MultipleSelectJobsWillBeDeletedMessage'), content: L('MultipleSelectJobsWillBeDeletedMessage'),
okCancel: true, okCancel: true,
onOk: () => { onOk: () => {
deleteById(record.id).then(() => { return deleteById(record.id).then(() => {
reload(); reloadTable();
}); });
}, },
}); });
@ -240,4 +266,9 @@
function handleCopy(record) { function handleCopy(record) {
openModal(true, { id: record.id, copy: true }); openModal(true, { id: record.id, copy: true });
} }
function reloadTable() {
clearSelectedRowKeys();
reload();
}
</script> </script>

Loading…
Cancel
Save