
'use client';
import { Button,Card, Space,Tag,Table,message,Input } from 'antd';
import { useEffect,useState } from 'react';
import http from '@/app/comm/http.js';
import "../dade.css";export default function Index() {const [messageApi,contextHolder] = message.useMessage();let [data, setData] = useState([]);let select = () => {http.post('/index/select', {}).then((res) => {if(res.data.code == 2000){messageApi.open({type:'success',content: '加载成功', })setData(res.data.data);}}).catch(err => {console.error('请求出错:', err);messageApi.open({type: 'error',content: '加载失败', })});}const columns = [{title: '序号',dataIndex: 'index', width: 70,render: (_, __, index) => index + 1,},{title: '备注',dataIndex: 'name',width: 200,render: (_, record,index) => (<Space.Compact style={{ width: '100%' }}><Input value={record.name} size="small" placeholder='备注' onChange={(e) => handleInputChange(e,index,"name")}/><Button type="primary" size="small">更改</Button></Space.Compact>)},{title: '容器名称',dataIndex: 'names',},{title: '启动状态',dataIndex: 'status',width: 100,render: (_, record) => {const isRunning = record.status.includes('Up');const color = isRunning ? 'green' : 'red';const text = isRunning ? '已启动' : '未启动';return <Tag color={color}>{text}</Tag>;}},{title: '镜像',dataIndex: 'image',width: 100,},{title: '端口映射(主机->容器)',dataIndex: 'ports',},{title: '挂载卷',dataIndex: 'address',},{title: '操作',dataIndex: 'address',width: 100,render: (_, record,index) => (<Space size="middle"><span style={{color:"#4096ff"}} onClick={() => update(record)}>编辑</span><span style={{color:'red'}} onClick={() => update(record)}>删除</span></Space>),},];const [data1, setData1] = useState([])let handleInputChange = (ev,index,name) => {console.log(ev.target.value)data1[index][name] = ev.target.value;setData1([...data1])};let selectDocker = () => {http.post('/index/selectDocker', {}).then((res) => {if(res.data.code == 2000){let dade = res.data.data;dade.map((item,index) => {item.key = index; })setData1(dade)}}).catch(err => {console.error('请求出错:', err);messageApi.open({type: 'error',content: '加载失败', })});}let refresh = () => {select();selectDocker()}let post = 1;useEffect(() => {if (post == 1) {post = 0;select();selectDocker()}}, []);let update = (record) => {console.log(record)}const [selectedRowKeys, setSelectedRowKeys] = useState([]);const onSelectChange = newSelectedRowKeys => {console.log('selectedRowKeys changed: ', newSelectedRowKeys);setSelectedRowKeys(newSelectedRowKeys);};const rowSelection = {selectedRowKeys,onChange: onSelectChange,};const listClick = () => {console.log(selectedRowKeys)};return (<div>{contextHolder}<div><Button type="primary" onClick={refresh}>刷新</Button><Button type="primary" style={{marginLeft:"10px"}}>新增容器</Button><Button type="primary" style={{marginLeft:"10px"}} onClick={listClick}>批量更新</Button></div><div style={{marginTop:"10px",display:"flex"}}><Space direction="vertical" size={16}><Card title="容器镜像版本"><div style={{height:"75vh",overflow:"auto"}}>{data.map((item, index) => (<div key={index} >{index == 0 ? <Tag color="green">镜像{item.repository}:{item.tag},大小:{item.size}</Tag> : <Tag style={{marginTop:"10px"}} color="green">镜像{item.repository}:{item.tag},大小:{item.size}</Tag>}</div>))}</div></Card></Space>{}<div style={{marginLeft:"10px",width:"100%",height:"86vh",overflow:"auto"}}><Table size='small' rowSelection={rowSelection} columns={columns} dataSource={data1} pagination={false} scroll={{ y: "80vh"}} bordered/></div></div></div>);
}