yinweiwen
2 years ago
3 changed files with 99 additions and 9 deletions
@ -0,0 +1,89 @@ |
|||
import React, { useState, useRef, useEffect } from 'react'; |
|||
import { connect } from 'react-redux'; |
|||
import { Button, Empty, Space, Spin, Tag, Descriptions } from 'antd'; |
|||
import '../style.less'; |
|||
import { ProTable } from '@ant-design/pro-table'; |
|||
import { render } from 'react-dom'; |
|||
import { Link } from 'react-router-dom'; |
|||
|
|||
const ProtocolInfo = (props) => { |
|||
const { dispatch, actions, productId, product, products, loading } = props |
|||
|
|||
const { meta } = actions; |
|||
|
|||
useEffect(() => { |
|||
if (!!productId) { |
|||
dispatch(meta.getProduct(productId)) |
|||
} |
|||
}, []); |
|||
|
|||
const columns = [{ |
|||
title: '能力', |
|||
dataIndex: 'cmname' |
|||
}, { |
|||
title: '描述', |
|||
dataIndex: 'cmdesc' |
|||
}, { |
|||
title: '接口', |
|||
dataIndex: 'iname' |
|||
}, { |
|||
title: '协议名', |
|||
dataIndex: 'pmdesc' |
|||
}, { |
|||
title: '协议', |
|||
dataIndex: 'pmname', |
|||
render: (_, item) => { |
|||
return <a href={`protocol/${item.pmname}`}>{item.pmname}</a>; |
|||
}, |
|||
}, |
|||
] |
|||
|
|||
const actionRef = useRef(); |
|||
return ( |
|||
<Spin spinning={loading}> |
|||
<Descriptions title="Product Info" bordered> |
|||
<Descriptions.Item label="ID" span={3} >{product?.Id}</Descriptions.Item> |
|||
<Descriptions.Item label="名称" span={2}>{product?.Name}</Descriptions.Item> |
|||
<Descriptions.Item label="型号" span={1}>{product?.Model}</Descriptions.Item> |
|||
<Descriptions.Item label="描述" span={3}>{product?.Desc}</Descriptions.Item> |
|||
<Descriptions.Item label="更新时间" span={3}>{product?.UpdatedAt}</Descriptions.Item> |
|||
<Descriptions.Item label="创建时间" span={3}>{product?.CreatedAt}</Descriptions.Item> |
|||
<Descriptions.Item label="所属公司" >{product?.Company}</Descriptions.Item> |
|||
<Descriptions.Item label="创建用户" >{product?.Username}</Descriptions.Item> |
|||
<Descriptions.Item label="资源类型" span={3}>{product?.FilterResource}</Descriptions.Item> |
|||
</Descriptions> |
|||
<h3>能力集合</h3> |
|||
<ProTable |
|||
columns={columns} |
|||
actionRef={actionRef} |
|||
dataSource={products} |
|||
options={false} |
|||
toolBarRender={false} |
|||
search={false} |
|||
|
|||
> |
|||
</ProTable> |
|||
</Spin> |
|||
) |
|||
} |
|||
|
|||
function mapStateToProps(state) { |
|||
const { auth, global, product } = state; |
|||
console.log(product) |
|||
let raw = product |
|||
let p = {} |
|||
if (product && product.data && (product.data.data ?? []).length > 0) { |
|||
p = product.data.data[0]; |
|||
} |
|||
console.log(raw.data?.data ?? []) |
|||
|
|||
return { |
|||
user: auth.user, |
|||
actions: global.actions, |
|||
loading: product.isRequesting, |
|||
product: p, |
|||
products: raw.data?.data ?? [], |
|||
}; |
|||
} |
|||
|
|||
export default connect(mapStateToProps)(ProtocolInfo); |
Loading…
Reference in new issue