运维管理平台前端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

192 lines
4.9 KiB

2 months ago
<template>
<PageWrapper dense>
<a-row>
<a-col :span="8" style="margin-top: 1%">
<div>
<a-button type="primary" @click="handleAdd" size="small" class="treeButton"
>新增目录</a-button
>
<a-button type="primary" @click="handleAdd" size="small" class="treeButton"
>编辑目录</a-button
>
<a-button type="primary" @click="handleAdd" size="small" class="treeButton"
>删除目录</a-button
>
<a-button type="primary" @click="handleAdd" size="small" class="treeButton"
>导入</a-button
>
</div>
<a-tree
:show-line="true"
:show-icon="true"
:depoint-expanded-keys="['0-0-0']"
:tree-data="treeData"
@select="onSelect"
>
<template #title="{ dataRef }">
<template v-if="dataRef.key === '0-0-0-1'">
<div>multiple line title</div>
<div>multiple line title</div>
</template>
<template v-else>{{ dataRef.title }}</template>
</template>
</a-tree>
</a-col>
<a-col :span="16">
<BasicTable @register="registerTable">
<template #toolbar>
<a-button type="primary" @click="handleAdd">新增协议</a-button>
<a-button type="primary" @click="handleTypeAdd">新增类型</a-button>
<a-button type="primary" @click="handleAdd">导入</a-button>
<a-button type="primary" @click="handleAdd">导出</a-button>
</template>
<template #bodyCell="{ column, record }">
<template v-if="column && record && column.key === 'action'">
<a-button type="link" @click="handleEdit(record.id)">编辑</a-button>
<a-button type="link" @click="handleDelete(record.id)">删除</a-button>
</template>
</template>
</BasicTable>
<addModal ref="addModalRef" />
<AddTypeModal ref="addTypeModalRef" />
</a-col>
</a-row>
</PageWrapper>
</template>
<script setup lang="ts">
import { PageWrapper } from '@/components/Page';
import { BasicTable, useTable } from '@/components/Table';
import { list } from './api';
import { formSchemas, columns } from './data';
import addModal from './addModal.vue';
import { ref } from 'vue';
import AddTypeModal from './addTypeModal.vue';
defineOptions({ name: 'ServiceManage' });
const [registerTable, { reload }] = useTable({
rowSelection: {
type: 'checkbox',
},
title: '服务管理',
api: list,
showIndexColumn: true,
rowKey: 'id',
useSearchForm: true,
formConfig: {
schemas: formSchemas,
name: 'serviceManage',
baseColProps: {
xs: 24,
sm: 24,
md: 24,
lg: 6,
},
},
columns: columns,
actionColumn: {
width: 200,
title: '操作',
key: 'action',
fixed: 'right',
},
});
//新增编辑弹窗
const addModalRef = ref();
const handleAdd = () => {
addModalRef.value.showModal(1);
};
const handleEdit = (id: any) => {
addModalRef.value.showModal(2, id);
};
const handleDelete = (id: any) => {
addModalRef.value.showModal(2, id);
};
//新增类型弹窗
const addTypeModalRef = ref();
const handleTypeAdd = () => {
addTypeModalRef.value.showModal(1);
};
//tree
const treeData = ref([
{
title: 'parent 1',
key: '0-0',
children: [
{
title: 'parent 1-0',
key: '0-0-0',
children: [
{
title: 'leaf',
key: '0-0-0-0',
},
{
key: '0-0-0-1',
},
{
title: 'leaf',
key: '0-0-0-2',
},
],
},
{
title: 'parent 1-1',
key: '0-0-1',
children: [
{
title: 'leaf',
key: '0-0-1-0',
},
],
},
{
title: 'parent 1-2',
key: '0-0-2',
children: [
{
title: 'leaf 1',
key: '0-0-2-0',
},
{
title: 'leaf 2',
key: '0-0-2-1',
},
],
},
],
},
{
title: 'parent 2',
key: '0-1',
children: [
{
title: 'parent 2-0',
key: '0-1-0',
children: [
{
title: 'leaf',
key: '0-1-0-0',
},
{
title: 'leaf',
key: '0-1-0-1',
},
],
},
],
},
]);
const onSelect = (selectedKeys: any, info: any) => {
console.log('selected', selectedKeys, info);
reload();
};
</script>
<style scoped>
.treeButton {
margin: 0 1% 1%;
}
</style>