diff --git a/package.json b/package.json index 9ce314d..ae24e9d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@kne-components/components-core", - "version": "0.4.70", + "version": "0.4.71", "files": [ "build" ], diff --git a/src/components/FormInfo/preset.js b/src/components/FormInfo/preset.js index ee7fcaf..48ed62b 100644 --- a/src/components/FormInfo/preset.js +++ b/src/components/FormInfo/preset.js @@ -54,6 +54,22 @@ const formPreset = async (options, otherOptions) => { return value; }); + interceptors.input.use("json-string", (value) => { + try { + return JSON.stringify(value, null, 2); + } catch (e) { + return ''; + } + }); + + interceptors.output.use("json-string", (value) => { + try { + return JSON.parse(value); + } catch (e) { + return void 0; + } + }); + interceptors.input.use("to-array", (value) => { return Array.isArray(value) ? value[0] : value; }); diff --git a/src/components/InfoPage/README.md b/src/components/InfoPage/README.md index 9aa24ae..bc14a33 100644 --- a/src/components/InfoPage/README.md +++ b/src/components/InfoPage/README.md @@ -1,19 +1,15 @@ - # info-page - ### 描述 一般用在复杂的详情展示页面,InfoPage提供了一个标准的展示信息的格式 - ### 安装 ```shell npm i --save @kne/info-page ``` - ### 概述 info-page 是一个专为复杂详情展示页面设计的 React 组件库,提供标准化的信息展示格式和丰富的布局选项。 @@ -450,8 +446,8 @@ const BaseExample = () => { bonus: 50000, leaveDays: 5, projectCount: 8, - description: `负责公司核心产品的前端架构设计与开发工作,主导了多个重要项目的技术方案设计。精通React、Vue等主流前端框架,对TypeScript有深入理解。在性能优化方面有丰富经验,成功将项目加载时间减少40%。`, - skills: `React, Vue, TypeScript, Node.js, Webpack, Vite, Jenkins, Docker, Kubernetes` + description: `负责公司核心产品的前端架构设计与开发工作,主导了多个重要项目的技术方案设计。精通React、Vue等主流前端框架,对TypeScript有深入理解。在性能优化方面有丰富经验,成功将项目加载时间减少40%。`, + skills: `React, Vue, TypeScript, Node.js, Webpack, Vite, Jenkins, Docker, Kubernetes` }} col={3} columns={[ @@ -696,6 +692,99 @@ render(); ``` +- Modal中展示 +- 展示InfoPage在Modal弹窗中的典型用法 +- _InfoPage(@kne/info-page),(@kne/info-page/dist/index.css),antd(antd) + +```jsx +const { default: InfoPage, Content, TableView } = _InfoPage; +const { Button, Flex, Modal } = antd; +const { useState } = React; + +const ModalExample = () => { + const [open, setOpen] = useState(false); + + const data = { + id: '10001', + name: '产品详情', + category: '电子产品', + price: 2999, + stock: 500, + status: '在售', + description: '这是一款高性能的智能设备,支持多种功能和应用场景。', + createTime: '2024-01-15 10:30:00', + updateTime: '2024-03-20 14:22:00', + }; + + const logDataSource = [ + { id: '1', action: '创建', operator: '管理员', time: data.createTime }, + { id: '2', action: '更新', operator: '管理员', time: data.updateTime }, + ]; + + const logColumns = [ + { name: 'action', title: '操作' }, + { name: 'operator', title: '操作人' }, + { name: 'time', title: '时间' }, + ]; + + return ( + + + + setOpen(false)} + footer={[ + , + , + ]} + width={720} + > + + + + + + + + + + +

{data.description}

+
+ + + + +
+
+
+ ); +}; + +render(); + +``` + - 表格视图 - 支持行选择、固定表头和多数据展示的表格组件 - _InfoPage(@kne/info-page),(@kne/info-page/dist/index.css),antd(antd) @@ -799,7 +888,7 @@ const WithSelected = () => { return (
- 已选订单:{selectedOrder ? `${selectedOrder.id} (${selectedOrder.customerName})` : '无'} + 已选订单:{selectedOrder ? `${selectedOrder.id} (${selectedOrder.customerName})` : '无'} {selectedOrder && ¥{selectedOrder.amount.toLocaleString()}} { return (
- 已选客户:{selectedCustomer ? `${selectedCustomer.name} (${selectedCustomer.company})` : '无'} - {selectedCustomer ? `¥${selectedCustomer.amount.toLocaleString()}` : '-'} + 已选客户:{selectedCustomer ? `${selectedCustomer.name} (${selectedCustomer.company})` : '无'} + {selectedCustomer ? `¥${selectedCustomer.amount.toLocaleString()}` : '-'} { name: 'workYears', title: '工作年限', icon: , - render: (value) => `${value}年` + render: (value) => `${value}年` }, { name: 'entryDate', @@ -1199,7 +1288,7 @@ const BaseExample = () => { { name: 'teamSize', title: '团队规模', - render: (value) => `${value}人` + render: (value) => `${value}人` }, { name: 'startDate', @@ -1219,12 +1308,12 @@ const BaseExample = () => { { name: 'budget', title: '项目预算', - render: (value) => `¥${value.toLocaleString()}` + render: (value) => `¥${value.toLocaleString()}` }, { name: 'spent', title: '已投入', - render: (value) => `¥${value.toLocaleString()}` + render: (value) => `¥${value.toLocaleString()}` } ]} /> @@ -1437,7 +1526,7 @@ const BaseExample = () => { }, { label: '测评工具', - content: `AI模拟系统:提供基于语音和文本的交互模拟环境。\n评分标准:沟通技巧、信息传达清晰度、候选人反馈、建立关系的能力。` + content: `AI模拟系统:提供基于语音和文本的交互模拟环境。\n评分标准:沟通技巧、信息传达清晰度、候选人反馈、建立关系的能力。` }, { label: '任务目标', @@ -2127,7 +2216,6 @@ render(); ``` - ### API ### InfoPage @@ -2442,4 +2530,3 @@ render(); | emptyIsPlaceholder | boolean | 否 | true | 空值是否显示占位符 | | removeEmpty | boolean | 否 | true | 是否移除空值列 | | placeholder | ReactNode | 否 | '-' | 空值占位符 | -