From fa3556713df4ed667e4a7fe89a3a09a6f6e3fe80 Mon Sep 17 00:00:00 2001 From: charlzyx <charlzyx@qq.com> Date: Wed, 17 Jan 2024 17:08:05 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=F0=9F=8E=B8=20linkage?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bun.lockb | Bin 366469 -> 386820 bytes docs/components/demos/ArrayTablePro.tsx | 6 +- docs/components/demos/DictDemo.tsx | 4 +- docs/components/demos/EditablePro.tsx | 6 +- .../components/demos/EditableProWithArray.tsx | 6 +- docs/components/demos/ImageView.tsx | 2 +- docs/components/demos/Linkage.tsx | 358 ++++++++++++++++++ docs/components/demos/QueryList.tsx | 6 +- docs/components/demos/Suggestion.tsx | 4 +- docs/components/index.md | 3 - docs/components/index.tsx | 208 ++++++++++ docs/components/plus/linkage.mdx | 6 + package.json | 7 +- rspress.config.ts | 4 +- src/index.ts | 1 + src/linkage/index.tsx | 218 +++++++++++ tsconfig.json | 2 +- ui/antd-v5/index.ts | 6 + ui/antd/index.ts | 9 +- ui/overview/overview.less | 52 --- 20 files changed, 829 insertions(+), 79 deletions(-) create mode 100644 docs/components/demos/Linkage.tsx delete mode 100644 docs/components/index.md create mode 100644 docs/components/index.tsx create mode 100644 docs/components/plus/linkage.mdx create mode 100644 src/linkage/index.tsx delete mode 100644 ui/overview/overview.less diff --git a/bun.lockb b/bun.lockb index ed2483fe6047ca1853b23c0b83126ac82e7a642d..4bdf062cbeff5ca504e178a3430b92c916752564 100755 GIT binary patch delta 84504 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 DpFy7D delta 75029 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 diff --git a/docs/components/demos/ArrayTablePro.tsx b/docs/components/demos/ArrayTablePro.tsx index 4ff43d3..d4b9e33 100644 --- a/docs/components/demos/ArrayTablePro.tsx +++ b/docs/components/demos/ArrayTablePro.tsx @@ -5,7 +5,7 @@ import { FormItem, Input, Submit, -} from "@formily/antd-v5"; +} from "@formily/antd"; import { createForm, onFieldValueChange, @@ -13,7 +13,7 @@ import { } from "@formily/core"; import { FormProvider, ISchema, createSchemaField } from "@formily/react"; import { Button, ConfigProvider, Divider, Space } from "antd"; -import "antd/dist/reset.css"; +import "antd/dist/antd.css"; // import "antd/dist/antd.css"; import zhCN from "antd/lib/locale/zh_CN"; import moment from "moment"; @@ -24,7 +24,7 @@ import { ArrayTablePro, useArrayCompPropsOf, useFormArrayProps, -} from "@proformily/antd-v5"; +} from "@proformily/antd"; import { useEffect } from "react"; const CustomeToolbar = () => { diff --git a/docs/components/demos/DictDemo.tsx b/docs/components/demos/DictDemo.tsx index 519e715..92b5741 100644 --- a/docs/components/demos/DictDemo.tsx +++ b/docs/components/demos/DictDemo.tsx @@ -7,10 +7,10 @@ import { Radio, Select, Space, -} from "@formily/antd-v5"; +} from "@formily/antd"; import { createForm } from "@formily/core"; import { FormProvider, createSchemaField } from "@formily/react"; -import { Dict, dict, dictEffects, registerDictLoader } from "@proformily/antd-v5"; +import { Dict, dict, dictEffects, registerDictLoader } from "@proformily/antd"; import React, { useMemo } from "react"; const loaders = { diff --git a/docs/components/demos/EditablePro.tsx b/docs/components/demos/EditablePro.tsx index 56fd019..c729f93 100644 --- a/docs/components/demos/EditablePro.tsx +++ b/docs/components/demos/EditablePro.tsx @@ -5,11 +5,11 @@ import { FormItem, FormLayout, Input, -} from "@formily/antd-v5"; +} from "@formily/antd"; import { createForm } from "@formily/core"; import { FormProvider, ISchema, createSchemaField } from "@formily/react"; import { ConfigProvider } from "antd"; -import "antd/dist/reset.css"; +import "antd/dist/antd.css"; // import "antd/dist/antd.css"; import zhCN from "antd/lib/locale/zh_CN"; import moment from "moment"; @@ -21,7 +21,7 @@ import { QueryForm, QueryList, QueryTable, -} from "@proformily/antd-v5"; +} from "@proformily/antd"; import { useMemo } from "react"; const form = createForm({}); diff --git a/docs/components/demos/EditableProWithArray.tsx b/docs/components/demos/EditableProWithArray.tsx index 9806462..e1de1e6 100644 --- a/docs/components/demos/EditableProWithArray.tsx +++ b/docs/components/demos/EditableProWithArray.tsx @@ -5,11 +5,11 @@ import { FormItem, FormLayout, Input, -} from "@formily/antd-v5"; +} from "@formily/antd"; import { createForm } from "@formily/core"; import { FormProvider, ISchema, createSchemaField } from "@formily/react"; import { ConfigProvider } from "antd"; -import "antd/dist/reset.css"; +import "antd/dist/antd.css"; // import "antd/dist/antd.css"; import zhCN from "antd/lib/locale/zh_CN"; import moment from "moment"; @@ -22,7 +22,7 @@ import { QueryList, QueryTable, useQueryListRef, -} from "@proformily/antd-v5"; +} from "@proformily/antd"; import { useMemo } from "react"; const log = (label: string, x: any) => { diff --git a/docs/components/demos/ImageView.tsx b/docs/components/demos/ImageView.tsx index 0e9d907..79631b0 100644 --- a/docs/components/demos/ImageView.tsx +++ b/docs/components/demos/ImageView.tsx @@ -1,4 +1,4 @@ -import { ImageView } from "@proformily/antd-v5"; +import { ImageView } from "@proformily/antd"; import { Divider } from "antd"; import React from "react"; diff --git a/docs/components/demos/Linkage.tsx b/docs/components/demos/Linkage.tsx new file mode 100644 index 0000000..85f9e40 --- /dev/null +++ b/docs/components/demos/Linkage.tsx @@ -0,0 +1,358 @@ +import { Linkage } from "@proformily/antd"; +import { Button, Divider, Space } from "antd"; +import list from "china-location/dist/location.json"; +import React, { useEffect, useState } from "react"; + +export interface OptionData { + label?: string; + value?: string | number; + isLeaf?: boolean; + children?: OptionData[]; + loading?: boolean; +} + +export const flat = ( + json: Record< + string, + { + name: string; + code: string; + children?: { + name: string; + code: string; + children?: { name: string; code: string }[]; + }[]; + cities: Record< + string, + { + name: string; + code: string; + children?: { + name: string; + code: string; + }[]; + districts: Record<string, string>; + } + >; + } + >, +) => { + const flatten: { parent?: string; code: string; name: string }[] = []; + + const tree = Object.values(json).map((province) => { + flatten.push({ code: province.code, name: province.name }); + province.children = Object.values(province.cities).map((city) => { + // 拍平的结构要求 parentId 不能重复, 这个数据里面直辖市是一样的, 搞一下 + const cityCode = + city.code === province.code ? `${city.code}00` : city.code; + + flatten.push({ + code: cityCode, + name: city.name, + parent: province.code, + }); + city.code = cityCode; + city.children = Object.entries(city.districts).map(([code, name]) => { + const distCode = + code === cityCode || code === province.code ? `${code}0000` : code; + flatten.push({ code: distCode, name, parent: cityCode }); + return { code, name } as any; + }); + return city; + }); + return province; + }); + return { flatten, tree }; +}; + +const buildTree = (parent: ReturnType<typeof flat>["tree"]) => { + const tree = parent.reduce((root, item) => { + // item.children = + const node: OptionData = { + label: item.name, + value: item.code, + isLeaf: !(Array.isArray(item.children) && item.children.length > 0), + }; + if (!node.isLeaf) { + node.children = buildTree(item.children as any); + } + root.push(node); + return root; + }, [] as OptionData[]); + return tree; +}; + +const fake = (): Promise<typeof list> => { + return new Promise((resolve) => { + setTimeout(() => { + resolve(list); + }, 500); + }); +}; + +export const loadAll = () => { + return fake() + .then((origin) => flat(origin)) + .then(({ tree }) => buildTree(tree)); +}; +export const getById = (parent?: React.Key) => { + return fake() + .then((origin) => flat(origin)) + .then(({ flatten }) => { + return flatten.filter((x) => x.parent === parent); + }); +}; +export const loadData = (options: OptionData[]): Promise<OptionData[]> => { + const keys = [undefined, ...options.map((x) => x.value)]; + const last = options[options.length - 1]; + return getById(last?.value).then((opts) => + opts.map((item) => { + return { + value: item.code, + label: item.name, + // 需要给出叶子条件, 这里我们是省市区3级, 所以keys长度是3的时候就到最后一级别了 + isLeaf: keys.length === 3, + }; + }), + ); +}; + +export const LinkageDemo1 = () => { + const [value, setValue] = useState([]); + const [mul, setMul] = useState(false); + const [all, setAll] = useState(false); + const [labelInValue, setLabelInValue] = useState(false); + const [forceUpdateKey, setForceUpdateKey] = useState(1); + + useEffect(() => { + setValue([]); + setForceUpdateKey((x) => x + 1); + }, [mul, labelInValue, all]); + const onChange = (v: any) => { + console.log("🚀 ~ onChange ~ v:", v); + setValue(v); + }; + useEffect(() => { + console.log("🚀 ~ Linkage ~ value:", value); + }, [value]); + return ( + <div> + <Space style={{ marginBottom: "10px" }}> + <Button + size="small" + type={all ? "primary" : "default"} + onClick={() => setAll(true)} + > + 全量加载 + </Button> + <Button + size="small" + type={!all ? "primary" : "default"} + onClick={() => setAll(false)} + > + 懒加载 + </Button> + <Button + size="small" + type={mul ? "primary" : "default"} + onClick={() => setMul(true)} + > + 多选 + </Button> + <Button + size="small" + type={!mul ? "primary" : "default"} + onClick={() => setMul(false)} + > + !多选 + </Button> + <Button + size="small" + type={labelInValue ? "primary" : "default"} + onClick={() => setLabelInValue(true)} + > + labeInValue + </Button> + <Button + size="small" + type={!labelInValue ? "primary" : "default"} + onClick={() => setLabelInValue(false)} + > + !labelInValue + </Button> + </Space> + <div> + <Linkage + key={forceUpdateKey} + value={value} + onChange={onChange} + all={all} + loadData={all ? (loadAll as any) : loadData} + multiple={mul} + labelInValue={labelInValue} + ></Linkage> + </div> + </div> + ); +}; +export const LinkageDemo2 = () => { + const [value, setValue] = useState(["110000", "11000000", "110105"]); + const [mValue, setMValue] = useState([ + ["110000", "11000000", "110105"], + ["410000", "410600", "410621"], + ]); + const [mul, setMul] = useState(false); + const [forceUpdateKey, setForceUpdateKey] = useState(1); + + useEffect(() => { + setForceUpdateKey((x) => x + 1); + }, [mul]); + const onChange = (v: any) => { + console.log("🚀 ~ onChange ~ v:", v); + if (mul) { + setMValue(v); + } else { + setValue(v); + } + }; + + useEffect(() => { + console.log("🚀 ~ Linkage ~ value:", value); + }, [value]); + return ( + <div> + <Space style={{ marginBottom: "10px" }}> + <Button + size="small" + type={mul ? "primary" : "default"} + onClick={() => setMul(true)} + > + 多选 + </Button> + <Button + size="small" + type={!mul ? "primary" : "default"} + onClick={() => setMul(false)} + > + !多选 + </Button> + </Space> + <div> + <Linkage + key={forceUpdateKey} + value={mul ? mValue : value} + multiple={mul} + onChange={onChange} + loadData={loadData as any} + ></Linkage> + </div> + </div> + ); +}; + +export const LinkageDemo3 = () => { + const [value, setValue] = useState([ + { + label: "北京市", + value: "110000", + }, + { + label: "北京市", + value: "11000000", + }, + { + label: "朝阳区", + value: "110105", + }, + ]); + const [mValue, setMValue] = useState([ + [ + { + label: "北京市", + value: "110000", + }, + { + label: "北京市", + value: "11000000", + }, + { + label: "朝阳区", + value: "110105", + }, + ], + [ + { + label: "河南省", + value: "410000", + }, + { + label: "鹤壁市", + value: "410600", + }, + { + label: "浚县", + value: "410621", + }, + ], + ]); + const [mul, setMul] = useState(false); + const [forceUpdateKey, setForceUpdateKey] = useState(1); + + useEffect(() => { + setForceUpdateKey((x) => x + 1); + }, [mul]); + const onChange = (v: any) => { + console.log("🚀 ~ onChange ~ v:", v); + if (mul) { + setMValue(v); + } else { + setValue(v); + } + }; + + useEffect(() => { + console.log("🚀 ~ Linkage ~ value:", value); + }, [value]); + return ( + <div> + <Space style={{ marginBottom: "10px" }}> + <Button + size="small" + type={mul ? "primary" : "default"} + onClick={() => setMul(true)} + > + 多选 + </Button> + <Button + size="small" + type={!mul ? "primary" : "default"} + onClick={() => setMul(false)} + > + !多选 + </Button> + </Space> + <div> + <Linkage + key={forceUpdateKey} + value={mul ? mValue : value} + multiple={mul} + labelInValue + onChange={onChange} + loadData={loadData as any} + ></Linkage> + </div> + </div> + ); +}; +export default () => { + return ( + <div> + <Divider orientation="left">基本属性</Divider> + <LinkageDemo1></LinkageDemo1> + <Divider orientation="left">Lazy Load 反显</Divider> + <LinkageDemo2></LinkageDemo2> + <Divider orientation="left">Lazy Load & labelInValue 反显</Divider> + <LinkageDemo3></LinkageDemo3> + </div> + ); +}; diff --git a/docs/components/demos/QueryList.tsx b/docs/components/demos/QueryList.tsx index 2b06941..59693a5 100644 --- a/docs/components/demos/QueryList.tsx +++ b/docs/components/demos/QueryList.tsx @@ -9,18 +9,18 @@ import { Input, Select, Submit, -} from "@formily/antd-v5"; +} from "@formily/antd"; import { createForm } from "@formily/core"; import { FormProvider, ISchema, createSchemaField } from "@formily/react"; import { ConfigProvider, Divider } from "antd"; -import "antd/dist/reset.css"; +import "antd/dist/antd.css"; // import "antd/dist/antd.css"; import zhCN from "antd/lib/locale/zh_CN"; import moment from "moment"; import "moment/locale/zh-cn"; moment.locale("zh-cn"); -import { QueryForm, QueryList, QueryTable } from "@proformily/antd-v5"; +import { QueryForm, QueryList, QueryTable } from "@proformily/antd"; const log = (label: string, x: any) => { console.log("LABEL:", label); diff --git a/docs/components/demos/Suggestion.tsx b/docs/components/demos/Suggestion.tsx index 33df89a..dd69d61 100644 --- a/docs/components/demos/Suggestion.tsx +++ b/docs/components/demos/Suggestion.tsx @@ -1,7 +1,7 @@ -import { FormGrid, FormItem, FormLayout } from "@formily/antd-v5"; +import { FormGrid, FormItem, FormLayout } from "@formily/antd"; import { createForm } from "@formily/core"; import { FormProvider, createSchemaField } from "@formily/react"; -import { Suggestion } from "@proformily/antd-v5"; +import { Suggestion } from "@proformily/antd"; import jsonp from "fetch-jsonp"; import qs from "qs"; import React, { useMemo } from "react"; diff --git a/docs/components/index.md b/docs/components/index.md deleted file mode 100644 index 41fc3a5..0000000 --- a/docs/components/index.md +++ /dev/null @@ -1,3 +0,0 @@ ---- -overview: true ---- diff --git a/docs/components/index.tsx b/docs/components/index.tsx new file mode 100644 index 0000000..41ac4c2 --- /dev/null +++ b/docs/components/index.tsx @@ -0,0 +1,208 @@ +const prefix = window.location.pathname.replace(/\.html$/, ""); +import { Card, Col, Divider, Row, Space, Tag, Typography } from "antd"; + +import { useState } from "react"; + +const groups = [ + { + title: "专业级组件", + prefix: `${prefix}/pro`, + children: [ + { + title: "QueryList", + subtitle: "查询列表", + cover: + "https://gw.alipayobjects.com/zos/antfincdn/AwU0Cv%26Ju/bianzu%2525208.svg", + link: "/query-list", + }, + { + title: "ArrayTablePro", + subtitle: "专业Table", + cover: + "https://mdn.alipayobjects.com/huamei_7uahnr/afts/img/A*3yz3QqMlShYAAAAAAAAAAAAADrJ8AQ/original", + link: "/array-table-pro", + }, + { + title: "EditablePro", + subtitle: "专业对象编辑器", + cover: + "https://gw.alipayobjects.com/zos/antfincdn/mStei5BFC/bianzu%2525207.svg", + link: "/editable-pro", + }, + ], + }, + { + title: "增强型组件", + prefix: `${prefix}/plus`, + children: [ + { + title: "Dict", + subtitle: "远程词典", + cover: + "https://mdn.alipayobjects.com/huamei_7uahnr/afts/img/A*I5a2Tpqs3y0AAAAAAAAAAAAADrJ8AQ/original", + link: "/dict", + }, + { + title: "Suggestion", + subtitle: "搜索建议", + cover: + "https://gw.alipayobjects.com/zos/alicdn/qtJm4yt45/AutoComplete.svg", + link: "/suggestion", + }, + { + title: "Linkage", + subtitle: "级联选择", + cover: "https://gw.alipayobjects.com/zos/alicdn/UdS8y8xyZ/Cascader.svg", + link: "/linkage", + }, + ], + }, + { + title: "优雅阅读态组件", + prefix: `${prefix}/pretty`, + children: [ + { + title: "ImageView", + subtitle: "图片查看", + cover: + "https://gw.alipayobjects.com/zos/antfincdn/D1dXz9PZqa/image.svg", + link: "/image-view", + }, + ], + }, +]; + +const style = { + components_overview: { + padding: "0", + }, + components_overview_group_title: { + marginBottom: "24px !important", + }, + components_overview_a_hover: { + textDecoration: "none", + }, + components_overview_title: { + overflow: "hidden", + color: "black", + textOverflow: "ellipsis", + }, + components_overview_img: { + display: "flex", + alignItems: "center", + justifyContent: "center", + height: "152px", + }, + components_overview_card: { + cursor: "pointer", + transition: "all 0.5s", + }, + components_overview_card_hover: { + boxShadow: + "0 6px 16px -8px rgba(0,0,0,0.08), 0 9px 28px 0 rgba(0,0,0,0.05), 0 12px 48px 16px rgba(0,0,0,0.03)", + }, +}; + +const { Title } = Typography; + +export const Overview = (props: { + groups: { + title: string; + prefix: string; + children: { + filename: string; + title: string; + subtitle: string; + cover: string; + link: string; + tag: string; + }[]; + }[]; +}) => { + const { groups } = props; + const [hover, setHover] = useState({ overview: false, card: "" }); + return ( + <section className="markdown"> + {groups.map((group, gidx) => { + const components = group.children; + return components.length ? ( + <div + key={group.title} + style={style.components_overview} + className="components-overview" + > + {gidx === 0 ? null : <Divider />} + <Title + level={2} + style={style.components_overview_group_title} + className="components-overview-group-title" + > + <Space align="center"> + {group.title} + <Tag style={{ display: "block" }}>{components.length}</Tag> + </Space> + </Title> + <Row gutter={[24, 24]}> + {components.map((component, idx) => { + const uri = `${`${group.prefix}${component.link}`.replace( + "//", + "/", + )}.html`; + + return ( + <Col xs={24} sm={12} lg={8} xl={6} key={component.title}> + <a + style={{ + textDecoration: "none", + }} + href={uri} + > + <Card + bodyStyle={{ + backgroundRepeat: "no-repeat", + backgroundPosition: "bottom right", + backgroundImage: `url(${component.tag})`, + ...style.components_overview_card, + ...(hover.card === `${gidx}${idx}` + ? style.components_overview_card_hover + : {}), + }} + onMouseEnter={() => { + setHover((x) => ({ ...x, card: `${gidx}${idx}` })); + }} + onMouseLeave={() => { + setHover((x) => ({ ...x, card: "" })); + }} + size="small" + className="components-overview-card" + title={ + <div + style={style.components_overview_title} + className="components-overview-title" + > + {component.title} {component.subtitle} + </div> + } + > + <div + style={style.components_overview_img} + className="components-overview-img" + > + <img src={component.cover} alt={component.title} /> + </div> + </Card> + </a> + </Col> + ); + })} + </Row> + </div> + ) : null; + })} + </section> + ); +}; + +export default () => { + return <Overview groups={groups as any} />; +}; diff --git a/docs/components/plus/linkage.mdx b/docs/components/plus/linkage.mdx new file mode 100644 index 0000000..d267bee --- /dev/null +++ b/docs/components/plus/linkage.mdx @@ -0,0 +1,6 @@ +# Linkage + +## 高级级联选择 + +<code src="../demos/Linkage.tsx" /> + diff --git a/package.json b/package.json index 3c39ed6..6201a7b 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { - "name": "@proformily/antd-v5", + "name": "@proformily/antd", "version": "1.0.0", "private": true, "scripts": { @@ -22,8 +22,8 @@ "react": "^18.2.0", "react-dom": "^18.2.0", "react-resizable": "^3.0.5", - "@formily/antd-v5": "^1.*.*", - "antd": "^5.*.*" + "@formily/antd": "^2.*.*", + "antd": "^4.*.*" }, "devDependencies": { "@biomejs/biome": "^1.5.0", @@ -34,6 +34,7 @@ "@types/react": "^18.2.47", "@types/react-dom": "^18.2.18", "@types/react-resizable": "^3.0.7", + "china-location": "^2.1.0", "fetch-jsonp": "^1.3.0", "qs": "^6.11.2", "rimraf": "^5.0.5", diff --git a/rspress.config.ts b/rspress.config.ts index 773d5ac..922f08d 100644 --- a/rspress.config.ts +++ b/rspress.config.ts @@ -5,9 +5,9 @@ import RsBuildConfig from "./rsbuild.config"; import { pluginFixCss } from "./scripts/fixcss"; export default defineConfig({ - base: "/pro.formily/antd-v5/", + base: "/pro.formily/antd/", root: path.join(__dirname, "docs"), - outDir: "./doc_build/antd-v5", + outDir: "./doc_build/antd", title: "ProFormily", description: "Pro Formily, 启动!", icon: "/rspress-icon.png", diff --git a/src/index.ts b/src/index.ts index a9ebb70..669a2b2 100644 --- a/src/index.ts +++ b/src/index.ts @@ -8,3 +8,4 @@ export * from "./long-text"; export * from "./suggestion"; export * from "./editable-pro"; export * from "./shared"; +export * from './linkage' diff --git a/src/linkage/index.tsx b/src/linkage/index.tsx new file mode 100644 index 0000000..64cc875 --- /dev/null +++ b/src/linkage/index.tsx @@ -0,0 +1,218 @@ +import { observer } from "@formily/react"; +import { model } from "@formily/reactive"; +import React, { useEffect, useMemo, useRef } from "react"; +import { Cascader, CascaderProps } from "../adaptor"; + +export interface LinkageOption<Value extends ValueType> { + label?: string; + value?: Value; + isLeaf?: boolean; + children?: LinkageOption<Value>[]; + disabled?: boolean; + loading?: boolean; +} + +const fullWithStyle = { + width: "100%", +}; + +type ValueType = string | number; +type LabelValueType = { label: string; value: ValueType }; + +export type LinkageValueType = LabelValueType[] | ValueType[]; + +const display: CascaderProps["displayRender"] = (label, options) => { + return label.join("/"); +}; + +const mapProps = (props: React.ComponentProps<typeof Linkage>) => { + // type ChangeFnParams = Parameters<Required<CascaderProps>['onChange']>; + const onChange = (values: any, options: any) => { + let next = values; + if (props.labelInValue) { + next = props.multiple + ? options.map((arr: LabelValueType[]) => + arr.map((item) => { + return { + label: item.label, + value: item.value, + }; + }), + ) + : options.map((item: LabelValueType) => { + return { + label: item.label, + value: item.value, + }; + }); + } + props.onChange?.(next); + }; + + const getValue = (val: any): ValueType[] => { + return Array.isArray(val) + ? val.map((item) => { + // multiple mode + if (Array.isArray(item)) { + return getValue(item); + } else if (item.label) { + // labelInValue + return item.value; + } else { + return item; + } + }) + : []; + }; + return { onChange, value: getValue(props.value) }; +}; + +const fill = < + Option extends LinkageOption<ValueType> = LinkageOption<ValueType>, +>( + $options: Option[], + loader: (opts: Option[]) => Promise<Option[]>, + cache: Record<ValueType, { key: ValueType; list: Option[] }>, + values?: ValueType[], +) => { + if (!Array.isArray(values) || values.length === 0) return; + let should = false; + // 反向排列value值 [河南省->鹤壁市->浚县] => [浚县->鹤壁市->河南省] + const asOptions = [] as Option[]; + values.reduce((parent, v) => { + // biome-ignore lint/suspicious/noDoubleEquals: <explanation> + const has = parent ? parent.find((x) => x.value == v) : false; + if (!has) { + should = true; + asOptions.unshift({ value: v } as Option); + return []; + } else { + asOptions.unshift({ value: v } as Option); + return has.children as Option[]; + } + }, $options); + + return should + ? Promise.all( + asOptions.map((optLike) => { + return ( + cache[optLike.value!] ?? + loader([optLike]).then((list) => { + // cache + cache[optLike.value!] = { + key: optLike.value!, + list: list, + }; + return cache[optLike.value!]; + }) + ); + }), + ).then((childList) => { + // 在这里返回来 [浚县->鹤壁市->河南省] => [河南省->鹤壁市->浚县] + return childList.reduceRight((parent, item) => { + // biome-ignore lint/suspicious/noDoubleEquals: <explanation> + const me = parent.find((x) => x.value == item.key); + me!.children = item.list; + return me!.children! as Option[]; + }, $options); + }) + : Promise.resolve([]); +}; + +export const Linkage = observer( + < + TLabelInValue extends boolean, + TValueType = TLabelInValue extends true ? ValueType[] : LabelValueType[], + >( + props: Omit<CascaderProps, "value" | "onChange" | "loadData"> & { + value: TValueType; + onChange: (neo: TValueType) => void; + multiple?: boolean; + disabled?: boolean; + labelInValue?: TLabelInValue; + /** 懒加载, 与整棵树加载不能共存 */ + loadData?: ( + selectOptions: TLabelInValue[], + ) => Promise<LinkageOption<ValueType>[]>; + /** loadData 是否返回整棵树加载, 与懒加载不能共存 */ + all?: boolean; + }, + ) => { + const { loadData, all, labelInValue, disabled, multiple, ...others } = + props; + + const state = useMemo(() => { + return model({ + loading: false, + options: [] as LinkageOption<ValueType>[], + }); + }, []); + const { onChange, value } = mapProps(props as any); + const loaderCache = useRef({}); + + useEffect(() => { + if (!loadData) return; + state.loading = true; + loadData([]) + .then((options) => { + state.options = options; + console.log("🚀 ~ .then ~ options:", options); + const values = value.map((x) => x); + state.loading = true; + return all + ? null + : Promise.all( + (multiple ? values : [values]).map((valueList) => { + return fill( + state.options, + loadData as any, + loaderCache.current, + valueList as any, + ); + }), + ); + }) + .finally(() => { + state.loading = false; + }); + }, [loadData, state]); + + const _loadData = + all || !loadData + ? undefined + : (options: LinkageOption<ValueType>[]) => { + const last = options[options.length - 1]; + if (last.children) return; + last.loading = true; + // 触发组件更新啦 state.loading -> [...state.options] + state.loading = true; + return loadData(options as any) + .then((children) => { + if (Array.isArray(children) && children.length > 0) { + last.children = children; + } else { + last.isLeaf = true; + } + }) + .finally(() => { + last.loading = false; + // 触发组件更新啦 state.loading -> [...state.options] + state.loading = false; + }); + }; + return ( + <Cascader + multiple={multiple} + displayRender={display} + changeOnSelect + {...others} + loading={state.loading} + value={value} + style={props.style || fullWithStyle} + options={[...state.options]} + loadData={_loadData as any} + onChange={onChange as any} + /> + ); + }, +); diff --git a/tsconfig.json b/tsconfig.json index 386f899..986efb2 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -13,7 +13,7 @@ "declaration": true, "moduleResolution": "node", "paths": { - "@proformily/antd-v5": ["src"] + "@proformily/antd": ["src"] } }, "include": [ diff --git a/ui/antd-v5/index.ts b/ui/antd-v5/index.ts index db9e7d6..27aee8c 100644 --- a/ui/antd-v5/index.ts +++ b/ui/antd-v5/index.ts @@ -2,6 +2,10 @@ export { ColumnHeightOutlined, SettingOutlined, SyncOutlined, + CopyOutlined, + DeleteOutlined, + PlusOutlined, + ToTopOutlined, } from "@ant-design/icons"; export { Alert, @@ -13,6 +17,7 @@ export { Table, Button, ConfigProvider, + Cascader, Popover, Popconfirm, Row, @@ -31,4 +36,5 @@ export type { BadgeProps, TablePaginationConfig, TableProps, + CascaderProps, } from "antd"; diff --git a/ui/antd/index.ts b/ui/antd/index.ts index fee53be..888a3bb 100644 --- a/ui/antd/index.ts +++ b/ui/antd/index.ts @@ -1,10 +1,15 @@ export { - SyncOutlined, ColumnHeightOutlined, SettingOutlined, + SyncOutlined, + CopyOutlined, + DeleteOutlined, + PlusOutlined, + ToTopOutlined, } from "@ant-design/icons"; export { Alert, + Cascader, Divider, Badge, Select, @@ -26,6 +31,7 @@ export { import "antd/lib/alert/style/index"; import "antd/lib/badge/style/index"; import "antd/lib/button/style/index"; +import "antd/lib/cascader/style/index"; import "antd/lib/divider/style/index"; import "antd/lib/drawer/style/index"; import "antd/lib/image/style/index"; @@ -49,4 +55,5 @@ export type { BadgeProps, TablePaginationConfig, TableProps, + CascaderProps, } from "antd"; diff --git a/ui/overview/overview.less b/ui/overview/overview.less deleted file mode 100644 index d3e2800..0000000 --- a/ui/overview/overview.less +++ /dev/null @@ -1,52 +0,0 @@ - -.components-overview { - padding: 0; - - &-group-title { - margin-bottom: 24px !important; - } - - a:hover { - text-decoration: none; - } - - &-title { - overflow: hidden; - color: black; - text-overflow: ellipsis; - } - - &-img { - display: flex; - align-items: center; - justify-content: center; - height: 152px; - } - - &-card { - cursor: pointer; - transition: all 0.5s; - - &:hover { - box-shadow: 0 6px 16px -8px rgba(0, 0, 0, 0.08), 0 9px 28px 0 rgba(0, 0, 0, 0.05), - 0 12px 48px 16px rgba(0, 0, 0, 0.03); - } - } -} - -.components-overview-search.ant-input-affix-wrapper { - width: 100%; - padding: 0; - font-size: 20px; - border: 0; - box-shadow: none; - - input { - color: rgba(0, 0, 0, 0.85); - font-size: 20px; - } - - .anticon { - color: #bbb; - } -}