import { PageContainer } from '@ant-design/pro-layout'; import React, { useEffect, useRef } from 'react'; import { DeleteOutlined, EditOutlined } from '@ant-design/icons'; import { message, Popconfirm, Tooltip } from 'antd'; import type { ActionType, ProColumns } from '@jetlinks/pro-table'; import BaseCrud from '@/components/BaseCrud'; import Service from './service'; import { useIntl } from '@@/plugin-locale/localeExports'; import { observer } from '@formily/react'; import { Link, useLocation } from 'umi'; import { Store } from 'jetlinks-store'; import SystemConst from '@/utils/const'; import { CurdModel } from '@/components/BaseCrud/model'; export const service = new Service('role'); const Role: React.FC = observer(() => { const intl = useIntl(); const actionRef = useRef(); const columns: ProColumns[] = [ // { // dataIndex: 'index', // valueType: 'indexBorder', // width: 48, // }, { title: intl.formatMessage({ id: 'pages.system.role.id', defaultMessage: '标识', }), dataIndex: 'id', // copyable: true, ellipsis: true, // sorter: true, // defaultSortOrder: 'ascend', formItemProps: { rules: [ { required: true, message: '此项为必填项', }, ], }, }, { title: intl.formatMessage({ id: 'pages.table.name', defaultMessage: '名称', }), dataIndex: 'name', // copyable: true, ellipsis: true, // tip: intl.formatMessage({ // id: 'pages.system.userName.tips', // defaultMessage: '用户名过长会自动收缩', // }), formItemProps: { rules: [ { required: true, message: '此项为必填项', }, ], }, }, { title: intl.formatMessage({ id: 'pages.table.describe', defaultMessage: '描述', }), dataIndex: 'description', filters: true, onFilter: true, }, { title: intl.formatMessage({ id: 'pages.data.option', defaultMessage: '操作', }), valueType: 'option', align: 'center', width: 200, render: (text, record) => [ , { await service.remove(record.id); message.success( intl.formatMessage({ id: 'pages.data.option.success', defaultMessage: '操作成功!', }), ); actionRef.current?.reload(); }} > , ], }, ]; const schema = { type: 'object', properties: { name: { title: intl.formatMessage({ id: 'pages.table.name', defaultMessage: '角色名称', }), type: 'string', 'x-decorator': 'FormItem', 'x-component': 'Input', 'x-component-props': {}, 'x-decorator-props': {}, name: 'name', required: true, }, description: { type: 'string', title: intl.formatMessage({ id: 'pages.table.describe', defaultMessage: '描述', }), 'x-decorator': 'FormItem', 'x-component': 'Input.TextArea', 'x-component-props': { checkStrength: true, }, 'x-decorator-props': {}, name: 'password', required: false, }, }, }; const location = useLocation(); useEffect(() => { if ((location as any).query?.save === 'true') { CurdModel.add(); } const subscription = Store.subscribe(SystemConst.BASE_UPDATE_DATA, (data) => { if ((window as any).onTabSaveSuccess) { (window as any).onTabSaveSuccess(data); setTimeout(() => window.close(), 300); } }); return () => subscription.unsubscribe(); }, []); return ( actionRef={actionRef} moduleName="role" columns={columns} service={service} search={false} title={intl.formatMessage({ id: 'pages.system.role', defaultMessage: '角色列表', })} schema={schema} /> ); }); export default Role;