|
@@ -38,7 +38,7 @@
|
|
|
</PageWrapper>
|
|
|
</template>
|
|
|
<script lang="ts">
|
|
|
- import { defineComponent, ref, reactive } from 'vue';
|
|
|
+ import { defineComponent, ref, reactive, h } from 'vue';
|
|
|
import { BasicTable, useTable, TableAction, FormSchema, BasicColumn } from '/@/components/Table';
|
|
|
import { getUserPageList, deleteUser, resetUserPassword } from '/@/api/system/user';
|
|
|
import { PageWrapper } from '/@/components/Page';
|
|
@@ -48,6 +48,8 @@
|
|
|
import AccountModal from './components/UserModal.vue';
|
|
|
import DeptTree from './components/UserTypeTree.vue';
|
|
|
import { useI18n } from '/@/hooks/web/useI18n';
|
|
|
+ import { Switch } from 'ant-design-vue';
|
|
|
+ import { postUserChangeStatus } from '/@/services/apis/UserController';
|
|
|
const { t } = useI18n();
|
|
|
const searchInfo = reactive<Recordable>({});
|
|
|
export const searchFormSchema: FormSchema[] = [
|
|
@@ -113,7 +115,40 @@
|
|
|
align: 'left',
|
|
|
sorter: true,
|
|
|
},
|
|
|
-
|
|
|
+ {
|
|
|
+ title: t('状态'),
|
|
|
+ dataIndex: 'enabledMark',
|
|
|
+ width: 120,
|
|
|
+ align: 'left',
|
|
|
+ sorter: true,
|
|
|
+ customRender: ({ record }) => {
|
|
|
+ if (!Reflect.has(record, 'pendingStatus')) {
|
|
|
+ record.pendingStatus = false;
|
|
|
+ }
|
|
|
+ return h(Switch, {
|
|
|
+ checked: record.enabledMark === 1,
|
|
|
+ checkedChildren: '启用',
|
|
|
+ unCheckedChildren: '禁用',
|
|
|
+ loading: record.pendingStatus,
|
|
|
+ onChange(checked: boolean) {
|
|
|
+ record.pendingStatus = true;
|
|
|
+ const newStatus = checked ? 1 : 0;
|
|
|
+ const { createMessage } = useMessage();
|
|
|
+ postUserChangeStatus({ userIds: [record.id], status: newStatus })
|
|
|
+ .then(() => {
|
|
|
+ record.enabledMark = newStatus;
|
|
|
+ createMessage.success('已成功修改状态');
|
|
|
+ })
|
|
|
+ .catch(() => {
|
|
|
+ createMessage.error('修改状态失败');
|
|
|
+ })
|
|
|
+ .finally(() => {
|
|
|
+ record.pendingStatus = false;
|
|
|
+ });
|
|
|
+ },
|
|
|
+ });
|
|
|
+ },
|
|
|
+ },
|
|
|
{
|
|
|
title: t('邮箱'),
|
|
|
dataIndex: 'email',
|