/** * Copyright (c) OpenSpug Organization. https://github.com/openspug/spug * Copyright (c) * Released under the MIT License. */ import React from 'react'; import { observer } from 'mobx-react'; import { Table, Divider, Modal, message } from 'antd'; import { LinkButton } from 'components'; import ComForm from './Form'; import ComImport from './Import'; import http from 'libs/http'; import store from './store'; @observer class ComTable extends React.Component { componentDidMount() { store.fetchRecords() } columns = [{ title: '序号', key: 'series', render: (_, __, index) => index + 1, width: 80 }, { title: '类别', dataIndex: 'zone', }, { title: '主机名称', dataIndex: 'name', sorter: (a, b) => a.name.localeCompare(b.name) }, { title: '连接地址', dataIndex: 'hostname', sorter: (a, b) => a.name.localeCompare(b.name) }, { title: '端口', dataIndex: 'port' }, { title: '备注', dataIndex: 'desc', ellipsis: true }, { title: '操作', width: 200, render: info => ( store.showForm(info)}>编辑 this.handleDelete(info)}>删除 this.handleConsole(info)}>Console ) }]; handleConsole = (info) => { window.open(`/ssh/${info.id}`) }; handleDelete = (text) => { Modal.confirm({ title: '删除确认', content: `确定要删除【${text['name']}】?`, onOk: () => { return http.delete('/api/host/', {params: {id: text.id}}) .then(() => { message.success('删除成功'); store.fetchRecords() }) } }) }; render() { let data = store.permRecords; if (store.f_name) { data = data.filter(item => item['name'].toLowerCase().includes(store.f_name.toLowerCase())) } if (store.f_zone) { data = data.filter(item => item['zone'].toLowerCase().includes(store.f_zone.toLowerCase())) } if (store.f_host) { data = data.filter(item => item['hostname'].toLowerCase().includes(store.f_host.toLowerCase())) } return ( {store.formVisible && } {store.importVisible && } ) } } export default ComTable