diff --git a/.gitignore b/.gitignore index 49c12e2..6e584f0 100644 --- a/.gitignore +++ b/.gitignore @@ -122,3 +122,4 @@ dist *package-lock.json *log/ code/web/client/assets/color.less +code/web/client/assets/color.less diff --git a/code/web/client/assets/color.less b/code/web/client/assets/color.less index a440d82..7d440a3 100644 --- a/code/web/client/assets/color.less +++ b/code/web/client/assets/color.less @@ -1147,10 +1147,10 @@ tr > .ant-picker-cell-in-view.ant-picker-cell-range-hover-start:last-child::afte .ant-mentions-dropdown-menu-item-active {background-color: @item-hover-bg;} .ant-menu-item-danger.ant-menu-item {color: #ff4d4f;} .ant-menu-item-danger.ant-menu-item:hover, .ant-menu-item-danger.ant-menu-item-active {color: #ff4d4f;} -.ant-menu-item-danger.ant-menu-item:active {background: color(~`colorPalette("@{slider-rail-background-color}", 1)`);} +.ant-menu-item-danger.ant-menu-item:active {background: #fff1f0;} .ant-menu-item-danger.ant-menu-item-selected {color: #ff4d4f;} .ant-menu-item-danger.ant-menu-item-selected > a, .ant-menu-item-danger.ant-menu-item-selected > a:hover {color: #ff4d4f;} -.ant-menu:not(.ant-menu-horizontal) .ant-menu-item-danger.ant-menu-item-selected {background-color: color(~`colorPalette("@{slider-rail-background-color}", 1)`);} +.ant-menu:not(.ant-menu-horizontal) .ant-menu-item-danger.ant-menu-item-selected {background-color: #fff1f0;} .ant-menu-inline .ant-menu-item-danger.ant-menu-item::after {border-right-color: #ff4d4f;} .ant-menu-dark .ant-menu-item-danger.ant-menu-item, .ant-menu-dark .ant-menu-item-danger.ant-menu-item:hover, .ant-menu-dark .ant-menu-item-danger.ant-menu-item > a {color: #ff4d4f;} .ant-menu-dark.ant-menu-dark:not(.ant-menu-horizontal) .ant-menu-item-danger.ant-menu-item-selected {color: #fff;background-color: #ff4d4f;} @@ -1727,11 +1727,11 @@ tr.ant-table-expanded-row:hover > td {background: @table-expanded-row-bg;} .ant-tag-checkable:active, .ant-tag-checkable-checked {color: #fff;} .ant-tag-checkable-checked {background-color: @primary-color;} .ant-tag-checkable:active {background-color: color(~`colorPalette("@{primary-color}", 7)`);} -.ant-tag-pink {color: #c41d7f;background: #fff0f6;border-color: color(~`colorPalette("@{input-placeholder-color}", 2)`);} +.ant-tag-pink {color: #c41d7f;background: #fff0f6;border-color: #ffadd2;} .ant-tag-pink-inverse {color: #fff;background: #eb2f96;border-color: #eb2f96;} -.ant-tag-magenta {color: #c41d7f;background: #fff0f6;border-color: color(~`colorPalette("@{input-placeholder-color}", 2)`);} +.ant-tag-magenta {color: #c41d7f;background: #fff0f6;border-color: #ffadd2;} .ant-tag-magenta-inverse {color: #fff;background: #eb2f96;border-color: #eb2f96;} -.ant-tag-red {color: #cf1322;background: color(~`colorPalette("@{slider-rail-background-color}", 1)`);border-color: #ffa39e;} +.ant-tag-red {color: #cf1322;background: #fff1f0;border-color: #ffa39e;} .ant-tag-red-inverse {color: #fff;background: #f5222d;border-color: #f5222d;} .ant-tag-volcano {color: #d4380d;background: #fff2e8;border-color: #ffbb96;} .ant-tag-volcano-inverse {color: #fff;background: #fa541c;border-color: #fa541c;} @@ -1741,17 +1741,17 @@ tr.ant-table-expanded-row:hover > td {background: @table-expanded-row-bg;} .ant-tag-yellow-inverse {color: #fff;background: #fadb14;border-color: #fadb14;} .ant-tag-gold {color: #d48806;background: #fffbe6;border-color: #ffe58f;} .ant-tag-gold-inverse {color: #fff;background: #faad14;border-color: #faad14;} -.ant-tag-cyan {color: #08979c;background: color(~`colorPalette("@{info-color-deprecated-border}", 1)`);border-color: #87e8de;} +.ant-tag-cyan {color: #08979c;background: #e6fffb;border-color: #87e8de;} .ant-tag-cyan-inverse {color: #fff;background: #13c2c2;border-color: #13c2c2;} -.ant-tag-lime {color: #7cb305;background: color(~`colorPalette("@{calendar-bg}", 1)`);border-color: #eaff8f;} +.ant-tag-lime {color: #7cb305;background: #fcffe6;border-color: #eaff8f;} .ant-tag-lime-inverse {color: #fff;background: #a0d911;border-color: #a0d911;} .ant-tag-green {color: #389e0d;background: #f6ffed;border-color: #b7eb8f;} .ant-tag-green-inverse {color: #fff;background: #52c41a;border-color: #52c41a;} .ant-tag-blue {color: #096dd9;background: #e6f7ff;border-color: #91d5ff;} .ant-tag-blue-inverse {color: #fff;background: #1890ff;border-color: #1890ff;} -.ant-tag-geekblue {color: #1d39c4;background: #f0f5ff;border-color: #adc6ff;} +.ant-tag-geekblue {color: #1d39c4;background: color(~`colorPalette("@{progress-steps-item-bg}", 2)`);border-color: #adc6ff;} .ant-tag-geekblue-inverse {color: #fff;background: #2f54eb;border-color: #2f54eb;} -.ant-tag-purple {color: #531dab;background: color(~`colorPalette("@{comment-author-time-color}", 1)`);border-color: #d3adf7;} +.ant-tag-purple {color: #531dab;background: color(~`colorPalette("@{table-header-sort-active-bg}", 1)`);border-color: #d3adf7;} .ant-tag-purple-inverse {color: #fff;background: #722ed1;border-color: #722ed1;} .ant-tag-success {color: #52c41a;background: @success-color-deprecated-bg;border-color: @success-color-deprecated-border;} .ant-tag-processing {color: @primary-color;background: @info-color-deprecated-bg;border-color: @info-color-deprecated-border;} diff --git a/code/web/client/src/sections/meta/containers/ProtocolInfo.js b/code/web/client/src/sections/meta/containers/ProtocolInfo.js new file mode 100644 index 0000000..3aa1c0a --- /dev/null +++ b/code/web/client/src/sections/meta/containers/ProtocolInfo.js @@ -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 {item.pmname}; + }, + }, + ] + + const actionRef = useRef(); + return ( + + + {product?.Id} + {product?.Name} + {product?.Model} + {product?.Desc} + {product?.UpdatedAt} + {product?.CreatedAt} + {product?.Company} + {product?.Username} + {product?.FilterResource} + +

能力集合

+ + +
+ ) +} + +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); \ No newline at end of file