cnd-components-mcp
Version:
An MCP service for Cnd components query | 一个减少 Cnd 组件代码生成幻觉的 MCP 服务,包含系统提示词、组件文档、API 文档、代码示例和更新日志查询
217 lines (199 loc) • 5.38 kB
Markdown
## 基本使用
```tsx preview
import React, { useState, useEffect } from "react";
import { CndRcSelect, Button } from "@ali/cnd";
import axios from 'axios';
import { get } from 'lodash';
const Demo = () => {
const [dataSource, setDataSource] = useState([]);
const [item,setItem] = useState(0);
const fetchData = async ( search = '', pageNumber = 1 ) => {
console.log("params",search,pageNumber);
const params = {
PageNumber: pageNumber || 1,
PageSize: 10,
FilterParams:{Name:search},
}
const res = await axios.get('https://oneapi.alibaba-inc.com/mock/0801MSE/gateway/mse/migrate',{
params
});
let data = get(res, 'data.data.Data.Result',[]).map((item)=>{
return {
label: item.GatewayUniqueId,
value: item.GatewayUniqueId
}
})
return {
data: data,
total: get(res, 'data.data.TotalSize')
}
}
useEffect(()=>{
fetchData();
},[])
return (
<div>
使用后端搜索:
<CndRcSelect
style={{width: 300}}
fetchData={fetchData}
useBackendSearch
pagination={{
pageNumber: 1,
pageSize: 10,
}}
placeholder="请选择网关实例"
/>
<br /> <br />
使用前端搜索:
<CndRcSelect
fetchData={fetchData}
style={{width: 300}}
pagination={{
pageNumber: 1,
pageSize: 10,
}}/>
</div>
);
};
export default Demo;
```
## CndRcSelect.AutoComplete
```tsx preview
import React,{ useState, useEffect } from "react";
import axios from 'axios';
import { get } from 'lodash';
import { CndRcSelect, Button } from "@ali/cnd";
const Demo = () => {
const [dataSource, setDataSource] = useState([]);
const [item,setItem] = useState(0);
const fetchData = async ( search = '', pageNumber = 1 ) => {
console.log("params",search,pageNumber);
const params = {
PageNumber: pageNumber || 1,
PageSize: 10,
FilterParams:{Name:search},
}
const res = await axios.get('https://oneapi.alibaba-inc.com/mock/0801MSE/gateway/mse/migrate',{
params
});
let data = get(res, 'data.data.Data.Result',[]).map((item)=>{
return {
label: item.GatewayUniqueId,
value: item.GatewayUniqueId
}
})
return {
data: data,
total: get(res, 'data.data.TotalSize')
}
}
useEffect(()=>{
fetchData();
},[])
return (
<div>
使用后端分页方法:
<CndRcSelect.AutoComplete
fetchData={fetchData}
useBackendSearch
pagination={{
pageNumber: 1,
pageSize: 10,
}}
placeholder="请选择网关实例"
style={{width: 300}}
/>
<br /> <br />
使用前端分页方法:
<CndRcSelect.AutoComplete
fetchData={fetchData}
style={{width: 300}}
pagination={{
pageNumber: 1,
pageSize: 10,
}}/>
</div>
);
};
export default Demo;
```
## menuHeader定义
```tsx preview
import React, { useState, useEffect } from "react";
import axios from 'axios';
import { get } from 'lodash';
import { Button, CndRcSelect } from "@ali/cnd";
const Demo = () => {
const [dataSource, setDataSource] = useState([]);
const [item,setItem] = useState(0);
const fetchData = async ( search = '', pageNumber = 1 ) => {
const params = {
PageNumber: pageNumber || 1,
PageSize: 10,
FilterParams:{Name:search},
}
const res = await axios.get('https://oneapi.alibaba-inc.com/mock/0801MSE/gateway/mse/migrate',{
params
});
let data = get(res, 'data.data.Data.Result',[]).map((item)=>{
return {
label: item.GatewayUniqueId,
value: item.GatewayUniqueId
}
})
return {
data: data,
total: get(res, 'data.data.TotalSize')
}
}
useEffect(()=>{
fetchData();
},[])
return (
<div>
<h2>不使用头部</h2>
<div>
后端搜索:<CndRcSelect
fetchData={fetchData}
style={{width: 300}}
useBackendSearch
placeholder="请选择网关实例"
/>
</div>
<div style={{marginTop: 8}}>
前端搜索:<CndRcSelect
fetchData={fetchData}
style={{width: 300}}
placeholder="请选择网关实例"
/>
</div>
<h2>使用头部</h2>
<div>
使用默认头部:
<CndRcSelect
fetchData={fetchData}
useBackendSearch
menuHeaderProps={{
headerProps: {
text: '创建服务',
clickFunc: () => {console.log('click')},
refreshFunc: (search, page) => {console.log('fresh')}
}
}}
/>
</div>
<div style={{marginTop: 8}}>
使用自定义渲染头部:<CndRcSelect
fetchData={fetchData}
useBackendSearch
menuHeaderProps={{
renderFunc:() => {return <div>自定义头部</div>}
}}
/>
</div>
</div>
);
};
export default Demo;
```