import React from 'react'; import { toJS } from 'mobx'; import { observer } from 'mobx-react'; import { Table, Divider, Modal, Tag, Icon, message } from 'antd'; import http from 'libs/http'; import store from './store'; import { LinkButton } from "components"; import envStore from 'pages/config/environment/store'; import lds from 'lodash'; @observer class ComTable extends React.Component { componentDidMount() { store.fetchRecords(); if (envStore.records.length === 0) { envStore.fetchRecords() } } columns = [{ title: '序号', key: 'series', render: (_, __, index) => index + 1, width: 80, }, { title: '应用名称', dataIndex: 'name', }, { title: '标识符', dataIndex: 'key' }, { title: '描述信息', dataIndex: 'desc', ellipsis: true }, { title: '操作', render: info => ( store.showExtForm(info.id)}>新建发布 store.showForm(info)}>编辑 this.handleDelete(info)}>删除 ) }]; handleDelete = (text) => { Modal.confirm({ title: '删除确认', content: `确定要删除应用【${text['name']}】?`, onOk: () => { return http.delete('/api/app/', {params: {id: text.id}}) .then(() => { message.success('删除成功'); store.fetchRecords() }) } }) }; handleDeployDelete = (text) => { Modal.confirm({ title: '删除确认', content: `确定要删除【${lds.get(envStore.idMap, `${text.env_id}.name`)}】的发布配置?`, onOk: () => { return http.delete('/api/app/deploy/', {params: {id: text.id}}) .then(() => { message.success('删除成功'); store.loadDeploys(text.app_id) }) } }) }; expandedRowRender = (record) => { const columns = [{ title: '模式', dataIndex: 'extend', render: value => value === '1' ? : , width: 80 }, { title: '发布环境', dataIndex: 'env_id', render: value => lds.get(envStore.idMap, `${value}.name`) }, { title: '关联主机', dataIndex: 'host_ids', render: value => `${value.length} 台` }, { title: '发布审核', dataIndex: 'is_audit', render: value => value ? 开启 : 关闭 }, { title: '操作', render: info => ( store.showExtForm(record.id, info)}>编辑 this.handleDeployDelete(info)}>删除 ) }]; if (record['deploys'] === undefined) { store.loadDeploys(record.id) } return }; render() { let data = Object.values(toJS(store.records)); if (store.f_name) { data = data.filter(item => item['name'].toLowerCase().includes(store.f_name.toLowerCase())) } return (
) } } export default ComTable