|
@@ -0,0 +1,100 @@
|
|
|
+<template>
|
|
|
+ <div :class="[prefixCls]">
|
|
|
+ <BasicTable @register="registerTable">
|
|
|
+ <template #toolbar>
|
|
|
+ <a-button type="primary" @click="handleCreateAccount"> 新增账号 </a-button>
|
|
|
+ </template>
|
|
|
+ <template #action="{ record }">
|
|
|
+ <TableAction
|
|
|
+ :actions="[
|
|
|
+ {
|
|
|
+ label: '编辑',
|
|
|
+ onClick: handleEdit.bind(null, record),
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '删除',
|
|
|
+ color: 'error',
|
|
|
+ popConfirm: {
|
|
|
+ title: '是否确认删除',
|
|
|
+ confirm: handleDelete.bind(null, record),
|
|
|
+ },
|
|
|
+ },
|
|
|
+ ]"
|
|
|
+ />
|
|
|
+ </template>
|
|
|
+ </BasicTable>
|
|
|
+ <AccountModal @register="registerModal" />
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+<script lang="ts">
|
|
|
+ import { defineComponent } from 'vue';
|
|
|
+
|
|
|
+ import { useDesign } from '/@/hooks/web/useDesign';
|
|
|
+ import { BasicTable, useTable, TableAction } from '/@/components/Table';
|
|
|
+ import { getAccountList } from '/@/api/demo/system';
|
|
|
+
|
|
|
+ import { useModal } from '/@/components/Modal';
|
|
|
+ import AccountModal from './AccountModal.vue';
|
|
|
+
|
|
|
+ import { columns, searchFormSchema } from './account.data';
|
|
|
+
|
|
|
+ export default defineComponent({
|
|
|
+ name: 'AccountManagement',
|
|
|
+ components: { BasicTable, AccountModal, TableAction },
|
|
|
+ setup() {
|
|
|
+ const { prefixCls } = useDesign('account-management');
|
|
|
+
|
|
|
+ const [registerModal, { openModal }] = useModal();
|
|
|
+ const [registerTable] = useTable({
|
|
|
+ title: '账号列表',
|
|
|
+ api: getAccountList,
|
|
|
+ columns,
|
|
|
+ formConfig: {
|
|
|
+ labelWidth: 120,
|
|
|
+ schemas: searchFormSchema,
|
|
|
+ },
|
|
|
+ useSearchForm: true,
|
|
|
+ showTableSetting: true,
|
|
|
+ actionColumn: {
|
|
|
+ width: 160,
|
|
|
+ title: '操作',
|
|
|
+ dataIndex: 'action',
|
|
|
+ slots: { customRender: 'action' },
|
|
|
+ },
|
|
|
+ });
|
|
|
+
|
|
|
+ function handleCreateAccount() {
|
|
|
+ openModal(true, {
|
|
|
+ isUpdate: false,
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ function handleEdit(record: Recordable) {
|
|
|
+ openModal(true, {
|
|
|
+ record,
|
|
|
+ isUpdate: true,
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ function handleDelete(record: Recordable) {
|
|
|
+ console.log(record);
|
|
|
+ }
|
|
|
+
|
|
|
+ return {
|
|
|
+ prefixCls,
|
|
|
+ registerTable,
|
|
|
+ registerModal,
|
|
|
+ handleCreateAccount,
|
|
|
+ handleEdit,
|
|
|
+ handleDelete,
|
|
|
+ };
|
|
|
+ },
|
|
|
+ });
|
|
|
+</script>
|
|
|
+<style lang="less" scoped>
|
|
|
+ @prefix-cls: ~'@{namespace}-account-management';
|
|
|
+
|
|
|
+ .@{prefix-cls} {
|
|
|
+ display: flex;
|
|
|
+ }
|
|
|
+</style>
|