| | |
| | | <BasicTable @register="registerTable" class="w-3/4 xl:w-4/5" :searchInfo="searchInfo"> |
| | | <template #toolbar> |
| | | <a-button type="primary" @click="handleCreate">新增账号</a-button> |
| | | <a-button type="primary" @click="handleExport">导出账号</a-button> |
| | | </template> |
| | | <template #bodyCell="{ column, record }"> |
| | | <template v-if="column.key === 'action'"> |
| | |
| | | color: 'error', |
| | | tooltip: '删除此账号', |
| | | popConfirm: { |
| | | title: '是否确认删除?', |
| | | placement: 'left', |
| | | title: '是否确认删除', |
| | | placement: 'left', |
| | | confirm: handleDelete.bind(null, record), |
| | | }, |
| | |
| | | <AccountModal @register="registerModal" @success="handleSuccess" /> |
| | | </PageWrapper> |
| | | </template> |
| | | <script lang="ts"> |
| | | import { defineComponent, reactive } from 'vue'; |
| | | <script lang="ts" setup> |
| | | import { reactive } from 'vue'; |
| | | |
| | | import { BasicTable, useTable, TableAction } from '/@/components/Table'; |
| | | import { getAccountList } from '/@/api/demo/system'; |
| | | import { PageWrapper } from '/@/components/Page'; |
| | | import { BasicTable, useTable, TableAction } from '@/components/Table'; |
| | | import { getAccountList } from '@/api/demo/system'; |
| | | import { PageWrapper } from '@/components/Page'; |
| | | import DeptTree from './DeptTree.vue'; |
| | | |
| | | import { useModal } from '/@/components/Modal'; |
| | | import { useModal } from '@/components/Modal'; |
| | | import AccountModal from './AccountModal.vue'; |
| | | |
| | | import { columns, searchFormSchema } from './account.data'; |
| | | import { useGo } from '/@/hooks/web/usePage'; |
| | | import { useGo } from '@/hooks/web/usePage'; |
| | | |
| | | export default defineComponent({ |
| | | name: 'AccountManagement', |
| | | components: { BasicTable, PageWrapper, DeptTree, AccountModal, TableAction }, |
| | | setup() { |
| | | const go = useGo(); |
| | | const [registerModal, { openModal }] = useModal(); |
| | | const searchInfo = reactive<Recordable>({}); |
| | | const [registerTable, { reload, updateTableDataRecord }] = useTable({ |
| | | title: '账号列表', |
| | | api: getAccountList, |
| | | rowKey: 'id', |
| | | columns, |
| | | formConfig: { |
| | | labelWidth: 120, |
| | | schemas: searchFormSchema, |
| | | autoSubmitOnEnter: true, |
| | | }, |
| | | useSearchForm: true, |
| | | showTableSetting: true, |
| | | bordered: true, |
| | | handleSearchInfoFn(info) { |
| | | console.log('handleSearchInfoFn', info); |
| | | return info; |
| | | }, |
| | | actionColumn: { |
| | | width: 120, |
| | | title: '操作', |
| | | dataIndex: 'action', |
| | | // slots: { customRender: 'action' }, |
| | | }, |
| | | }); |
| | | defineOptions({ name: 'AccountManagement' }); |
| | | |
| | | function handleCreate() { |
| | | openModal(true, { |
| | | isUpdate: false, |
| | | }); |
| | | } |
| | | |
| | | function handleEdit(record: Recordable) { |
| | | console.log(record); |
| | | openModal(true, { |
| | | record, |
| | | isUpdate: true, |
| | | }); |
| | | } |
| | | |
| | | function handleDelete(record: Recordable) { |
| | | console.log(record); |
| | | } |
| | | |
| | | function handleSuccess({ isUpdate, values }) { |
| | | if (isUpdate) { |
| | | // 演示不刷新表格直接更新内部数据。 |
| | | // 注意:updateTableDataRecord要求表格的rowKey属性为string并且存在于每一行的record的keys中 |
| | | const result = updateTableDataRecord(values.id, values); |
| | | console.log(result); |
| | | } else { |
| | | reload(); |
| | | } |
| | | } |
| | | |
| | | function handleSelect(deptId = '') { |
| | | searchInfo.deptId = deptId; |
| | | reload(); |
| | | } |
| | | |
| | | function handleView(record: Recordable) { |
| | | go('/system/account_detail/' + record.id); |
| | | } |
| | | |
| | | return { |
| | | registerTable, |
| | | registerModal, |
| | | handleCreate, |
| | | handleEdit, |
| | | handleDelete, |
| | | handleSuccess, |
| | | handleSelect, |
| | | handleView, |
| | | searchInfo, |
| | | }; |
| | | const go = useGo(); |
| | | const [registerModal, { openModal }] = useModal(); |
| | | const searchInfo = reactive<Recordable>({}); |
| | | const [registerTable, { reload, updateTableDataRecord, getSearchInfo }] = useTable({ |
| | | title: '账号列表', |
| | | api: getAccountList, |
| | | rowKey: 'id', |
| | | columns, |
| | | formConfig: { |
| | | labelWidth: 120, |
| | | schemas: searchFormSchema, |
| | | autoSubmitOnEnter: true, |
| | | }, |
| | | useSearchForm: true, |
| | | showTableSetting: true, |
| | | bordered: true, |
| | | handleSearchInfoFn(info) { |
| | | console.log('handleSearchInfoFn', info); |
| | | return info; |
| | | }, |
| | | actionColumn: { |
| | | width: 120, |
| | | title: '操作', |
| | | dataIndex: 'action', |
| | | // slots: { customRender: 'action' }, |
| | | }, |
| | | }); |
| | | |
| | | function handleCreate() { |
| | | openModal(true, { |
| | | isUpdate: false, |
| | | }); |
| | | } |
| | | |
| | | function handleEdit(record: Recordable) { |
| | | console.log(record); |
| | | openModal(true, { |
| | | record, |
| | | isUpdate: true, |
| | | }); |
| | | } |
| | | |
| | | function handleDelete(record: Recordable) { |
| | | console.log(record); |
| | | } |
| | | |
| | | function handleExport() { |
| | | console.log(getSearchInfo()); |
| | | } |
| | | |
| | | function handleSuccess({ isUpdate, values }) { |
| | | if (isUpdate) { |
| | | // 演示不刷新表格直接更新内部数据。 |
| | | // 注意:updateTableDataRecord要求表格的rowKey属性为string并且存在于每一行的record的keys中 |
| | | const result = updateTableDataRecord(values.id, values); |
| | | console.log(result); |
| | | } else { |
| | | reload(); |
| | | } |
| | | } |
| | | |
| | | function handleSelect(deptId = '') { |
| | | searchInfo.deptId = deptId; |
| | | reload(); |
| | | } |
| | | |
| | | function handleView(record: Recordable) { |
| | | go('/system/account_detail/' + record.id); |
| | | } |
| | | </script> |