@flatbiz/antd 4.2.83 → 4.2.84
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm/dialog-alert/index.css +0 -1
- package/esm/dialog-alert/index.js.map +1 -1
- package/esm/dialog-confirm/index.css +1 -1
- package/esm/drag-table/index.css +0 -0
- package/esm/drag-table/index.js +5 -0
- package/esm/drag-table/index.js.map +1 -0
- package/esm/easy-table/index.js +1 -1
- package/esm/easy-table/index.js.map +1 -1
- package/esm/flex-layout/index.js +1 -1
- package/esm/flex-layout/index.js.map +1 -1
- package/esm/index.js +2 -1
- package/esm/simple-layout/index.css +1 -1
- package/esm/tree-wrapper/index.js +1 -1
- package/esm/tree-wrapper/index.js.map +1 -1
- package/index.d.ts +54 -19
- package/package.json +11 -11
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.v-dialog-confirm .ant-modal-header{margin:0!important}.v-dialog-confirm .ant-modal-body{color:rgba(0,0,0,.78)!important;font-size:16px;font-weight:400}.v-dialog-confirm .ant-modal-footer>button:nth-child(2){margin-left:15px!important}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/dialog-alert/dialog-alert.tsx"],"sourcesContent":["import { dialogConfirm } from '../dialog-confirm';\nimport { DialogModalProps } from '../dialog-modal';\
|
|
1
|
+
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/dialog-alert/dialog-alert.tsx"],"sourcesContent":["import { dialogConfirm } from '../dialog-confirm';\nimport { DialogModalProps } from '../dialog-modal';\n\nexport type DialogAlertProps = Omit<\n DialogModalProps,\n 'onOk' | 'cancelHidden' | 'cancelButtonProps' | 'onCancel' | 'onClick'\n> & {\n onClick?: (e: React.MouseEvent<HTMLElement>) => void | Promise<void>;\n};\n\nexport const dialogAlert = {\n open: (props: DialogAlertProps) => {\n return dialogConfirm.open({\n okText: '确定',\n cancelHidden: true,\n maskClosable: false,\n ...props,\n onOk: props.onClick,\n } as DialogModalProps);\n },\n};\n"],"names":["dialogAlert","open","props","dialogConfirm","_extends","okText","cancelHidden","maskClosable","onOk","onClick"],"mappings":";0hCAUO,IAAMA,EAAc,CACzBC,KAAM,SAAAA,EAACC,GACL,OAAOC,EAAcF,KAAIG,EAAA,CACvBC,OAAQ,KACRC,aAAc,KACdC,aAAc,OACXL,EAAK,CACRM,KAAMN,EAAMO,UAEhB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.v-dialog-confirm .ant-modal-header{margin:0!important}.v-dialog-confirm .ant-modal-body{color
|
|
1
|
+
.v-dialog-confirm .ant-modal-header{margin:0!important}.v-dialog-confirm .ant-modal-body{color:#787878!important;font-size:14px;font-weight:400}.v-dialog-confirm .ant-modal-footer>button:nth-child(2){margin-left:15px!important}
|
|
File without changes
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/* eslint-disable */
|
|
2
|
+
import './index.css';
|
|
3
|
+
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
4
|
+
import r from"@ant-design/icons/es/icons/DragOutlined";import{a as n,_ as e}from"../_rollupPluginBabelHelpers-fc015ef2.js";import{useSensors as o,useSensor as t,PointerSensor as i,DndContext as a}from"@dnd-kit/core";import{restrictToVerticalAxis as d}from"@dnd-kit/modifiers";import{SortableContext as s,verticalListSortingStrategy as l,arrayMove as c,useSortable as f}from"@dnd-kit/sortable";import{CSS as u}from"@dnd-kit/utilities";import{IconWrapper as m}from"@flatbiz/antd";import{noop as v}from"@flatbiz/utils";import{Table as p}from"antd";import g,{useState as x,useEffect as y,useMemo as h,isValidElement as b}from"react";import{jsx as I}from"react/jsx-runtime";var k=["dragIcon","uidFieldKey","columns","dataSource","onDragChange"],w=["children"];var S=function S(C){var D=C.dragIcon,z=C.uidFieldKey,A=C.columns,K=C.dataSource,N=C.onDragChange,R=n(C,k);var j=x([]),E=j[0],F=j[1];y((function(){F(K||[])}),[K]);var T=function r(n){var e=n.active,o=n.over;if(e.id!==(o==null?void 0:o.id)){var t=E.findIndex((function(r){return r[z]===e.id}));var i=E.findIndex((function(r){return r[z]===(o==null?void 0:o.id)}));var a=c(E,t,i);F([].concat(a));N==null?void 0:N(a,{activeId:e.id,activeIndex:t,overIndex:i})}};var Y=function r(n){var o=f({id:n["data-row-key"]}),t=o.listeners,i=o.setNodeRef,a=o.transform,d=o.transition,s=o.isDragging;var l=e({},n.style,{transform:u.Transform.toString(a&&e({},a,{scaleY:1})),transition:d,cursor:D===false?"move":undefined},s?{position:"relative",zIndex:9999,boxShadow:" 0px 0px 12px 4px rgba(34, 33, 81, 0.1)"}:{});return I("tr",e({},n,{ref:i,style:l},t))};var _=function o(t){var i=t.children,a=n(t,w);var d=f({id:a["data-row-key"]}),s=d.setActivatorNodeRef,l=d.listeners,c=d.setNodeRef,p=d.transform,x=d.transition,y=d.isDragging;var h=e({},a.style,{transform:u.Transform.toString(p&&e({},p,{scaleY:1})),transition:x,cursor:D===false?"move":undefined},y?{position:"relative",zIndex:9999,boxShadow:" 0px 0px 12px 4px rgba(34, 33, 81, 0.1)",backgroundColor:"#fff"}:{});var k=b(D)?D:I(r,{});return I("tr",e({},a,{ref:c,style:h,children:g.Children.map(i,(function(r){if(r.key==="sort"){return g.cloneElement(r,{children:I("span",e({ref:s,style:{touchAction:"none",cursor:"move"}},l,{children:I(m,{style:{display:"inline-flex",touchAction:"none",cursor:"move"},icon:k,onClick:v})}))})}return r}))}))};var B=h((function(){if(D===false)return A;return[{key:"sort",dataIndex:"sort",align:"center",width:50}].concat(A||[])}),[A,D]);var H=o(t(i,{activationConstraint:{delay:D===false?150:0,tolerance:0}}));return I(a,{sensors:H,modifiers:[d],onDragEnd:T,children:I(s,{items:E.map((function(r){return r[z]})),strategy:l,children:I(p,e({pagination:false,rowKey:z,bordered:true},R,{dataSource:E,columns:B,components:{body:{row:C.dragIcon===false?Y:_}}}))})})};export{S as DragTable};
|
|
5
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/drag-table/drag-table.tsx"],"sourcesContent":["import { DragOutlined } from '@ant-design/icons';\nimport { DndContext, PointerSensor, useSensor, useSensors, type DragEndEvent } from '@dnd-kit/core';\nimport { restrictToVerticalAxis } from '@dnd-kit/modifiers';\nimport { arrayMove, SortableContext, useSortable, verticalListSortingStrategy } from '@dnd-kit/sortable';\nimport { CSS } from '@dnd-kit/utilities';\nimport { IconWrapper } from '@flatbiz/antd';\nimport { noop, type TAny, type TPlainObject } from '@flatbiz/utils';\nimport { Table, type RowProps, type TableProps } from 'antd';\nimport React, { isValidElement, useEffect, useMemo, useState, type ReactElement } from 'react';\n\ntype DragTableProps = Omit<TableProps<TPlainObject>, 'dataSource'> & {\n dragIcon?: boolean | ReactElement;\n /** 表格数据唯一值字段Key */\n uidFieldKey: string;\n dataSource?: TPlainObject[];\n /**\n * 拖拽结束事件\n * ```\n * dataSource: 拖拽完成后的数据源\n * dragData\n * 1. activeId 拖拽ID\n * 2. activeIndex 拖拽起始表格数组索引值\n * 3. overIndex 拖拽结束表格数组索引值\n * ```\n */\n onDragChange?: (\n dataSource: TPlainObject[],\n dragData: { activeId: string | number; activeIndex: number; overIndex: number },\n ) => void;\n};\n\n/**\n * 可拖拽表格\n * ```\n * 1. 必须设置唯一值字段 uidFieldKey\n * 2. 如果拖拽显示异常,请检查 uidFieldKey 是否正确\n * ```\n */\nexport const DragTable = (props: DragTableProps) => {\n const { dragIcon, uidFieldKey, columns, dataSource, onDragChange, ...otherProps } = props;\n const [dataList, setDataList] = useState<TAny[]>([]);\n\n useEffect(() => {\n setDataList(dataSource || []);\n }, [dataSource]);\n\n const onDragEnd = ({ active, over }: DragEndEvent) => {\n if (active.id !== over?.id) {\n const activeIndex = dataList.findIndex((i) => i[uidFieldKey] === active.id);\n const overIndex = dataList.findIndex((i) => i[uidFieldKey] === over?.id);\n const dataListNew = arrayMove(dataList, activeIndex, overIndex);\n setDataList([...dataListNew]);\n onDragChange?.(dataListNew, { activeId: active.id, activeIndex, overIndex });\n }\n };\n\n const TableBodyRow = (innerProps) => {\n const { listeners, setNodeRef, transform, transition, isDragging } = useSortable({\n id: innerProps['data-row-key'],\n });\n\n const style: React.CSSProperties = {\n ...innerProps.style,\n transform: CSS.Transform.toString(transform && { ...transform, scaleY: 1 }),\n transition,\n cursor: dragIcon === false ? 'move' : undefined,\n ...(isDragging\n ? { position: 'relative', zIndex: 9999, boxShadow: ' 0px 0px 12px 4px rgba(34, 33, 81, 0.1)' }\n : {}),\n };\n\n return <tr {...innerProps} ref={setNodeRef} style={style} {...listeners} />;\n };\n\n const TableBodyRowByIcon = ({ children, ...innerProps }: RowProps) => {\n const { setActivatorNodeRef, listeners, setNodeRef, transform, transition, isDragging } = useSortable({\n id: innerProps['data-row-key'],\n });\n\n const style: React.CSSProperties = {\n ...innerProps.style,\n transform: CSS.Transform.toString(transform && { ...transform, scaleY: 1 }),\n transition,\n cursor: dragIcon === false ? 'move' : undefined,\n ...(isDragging\n ? {\n position: 'relative',\n zIndex: 9999,\n boxShadow: ' 0px 0px 12px 4px rgba(34, 33, 81, 0.1)',\n backgroundColor: '#fff',\n }\n : {}),\n };\n const iconElement = isValidElement(dragIcon) ? dragIcon : <DragOutlined />;\n return (\n <tr {...innerProps} ref={setNodeRef} style={style}>\n {React.Children.map(children, (child) => {\n if ((child as React.ReactElement).key === 'sort') {\n return React.cloneElement(child as React.ReactElement, {\n children: (\n <span\n ref={setActivatorNodeRef}\n style={{ touchAction: 'none', cursor: 'move' }}\n {...listeners}\n >\n <IconWrapper\n style={{ display: 'inline-flex', touchAction: 'none', cursor: 'move' }}\n icon={iconElement}\n onClick={noop}\n />\n </span>\n ),\n });\n }\n return child;\n })}\n </tr>\n );\n };\n\n const columnsList = useMemo(() => {\n if (dragIcon === false) return columns;\n return [\n {\n key: 'sort',\n dataIndex: 'sort',\n align: 'center',\n width: 50,\n } as TAny,\n ].concat(columns || []);\n }, [columns, dragIcon]);\n\n const sensors = useSensors(\n useSensor(PointerSensor, {\n activationConstraint: {\n // 当拖拽触发区域有其他点击事件时,需要延迟触发拖拽动作\n delay: dragIcon === false ? 150 : 0,\n tolerance: 0,\n },\n }),\n );\n\n return (\n <DndContext sensors={sensors} modifiers={[restrictToVerticalAxis]} onDragEnd={onDragEnd}>\n <SortableContext items={dataList.map((i) => i[uidFieldKey])} strategy={verticalListSortingStrategy}>\n <Table\n pagination={false}\n rowKey={uidFieldKey}\n bordered\n {...otherProps}\n dataSource={dataList}\n columns={columnsList}\n components={{\n body: {\n row: props.dragIcon === false ? TableBodyRow : TableBodyRowByIcon,\n },\n }}\n />\n </SortableContext>\n </DndContext>\n );\n};\n"],"names":["DragTable","props","dragIcon","uidFieldKey","columns","dataSource","onDragChange","otherProps","_objectWithoutPropertiesLoose","_excluded","_useState","useState","dataList","setDataList","useEffect","onDragEnd","_ref","active","over","id","activeIndex","findIndex","i","overIndex","dataListNew","arrayMove","concat","activeId","TableBodyRow","innerProps","_useSortable","useSortable","listeners","setNodeRef","transform","transition","isDragging","style","_extends","CSS","Transform","toString","scaleY","cursor","undefined","position","zIndex","boxShadow","_jsx","ref","TableBodyRowByIcon","_ref2","children","_excluded2","_useSortable2","setActivatorNodeRef","backgroundColor","iconElement","isValidElement","_DragOutlined","React","Children","map","child","key","cloneElement","touchAction","IconWrapper","display","icon","onClick","noop","columnsList","useMemo","dataIndex","align","width","sensors","useSensors","useSensor","PointerSensor","activationConstraint","delay","tolerance","DndContext","modifiers","restrictToVerticalAxis","SortableContext","items","strategy","verticalListSortingStrategy","Table","pagination","rowKey","bordered","components","body","row"],"mappings":";uvBAsCaA,EAAY,SAAZA,EAAaC,GACxB,IAAQC,EAA4ED,EAA5EC,SAAUC,EAAkEF,EAAlEE,YAAaC,EAAqDH,EAArDG,QAASC,EAA4CJ,EAA5CI,WAAYC,EAAgCL,EAAhCK,aAAiBC,EAAUC,EAAKP,EAAKQ,GACzF,IAAAC,EAAgCC,EAAiB,IAA1CC,EAAQF,EAAA,GAAEG,EAAWH,EAAA,GAE5BI,GAAU,WACRD,EAAYR,GAAc,GAC5B,GAAG,CAACA,IAEJ,IAAMU,EAAY,SAAZA,EAASC,GAAuC,IAAjCC,EAAMD,EAANC,OAAQC,EAAIF,EAAJE,KAC3B,GAAID,EAAOE,MAAOD,GAAAA,UAAAA,EAAAA,EAAMC,IAAI,CAC1B,IAAMC,EAAcR,EAASS,WAAU,SAACC,GAAC,OAAKA,EAAEnB,KAAiBc,EAAOE,MACxE,IAAMI,EAAYX,EAASS,WAAU,SAACC,GAAC,OAAKA,EAAEnB,MAAiBe,GAAI,UAAA,EAAJA,EAAMC,OACrE,IAAMK,EAAcC,EAAUb,EAAUQ,EAAaG,GACrDV,EAAWa,GAAAA,OAAKF,IAChBlB,GAAAA,UAAAA,EAAAA,EAAekB,EAAa,CAAEG,SAAUV,EAAOE,GAAIC,YAAAA,EAAaG,UAAAA,GAClE,GAGF,IAAMK,EAAe,SAAfA,EAAgBC,GACpB,IAAAC,EAAqEC,EAAY,CAC/EZ,GAAIU,EAAW,kBADTG,EAASF,EAATE,UAAWC,EAAUH,EAAVG,WAAYC,EAASJ,EAATI,UAAWC,EAAUL,EAAVK,WAAYC,EAAUN,EAAVM,WAItD,IAAMC,EAA0BC,EAC3BT,GAAAA,EAAWQ,MAAK,CACnBH,UAAWK,EAAIC,UAAUC,SAASP,GAASI,EAAA,CAAA,EAASJ,EAAS,CAAEQ,OAAQ,KACvEP,WAAAA,EACAQ,OAAQzC,IAAa,MAAQ,OAAS0C,WAClCR,EACA,CAAES,SAAU,WAAYC,OAAQ,KAAMC,UAAW,2CACjD,CAAE,GAGR,OAAOC,EAAA,KAAAV,EAAA,CAAA,EAAQT,EAAU,CAAEoB,IAAKhB,EAAYI,MAAOA,GAAWL,KAGhE,IAAMkB,EAAqB,SAArBA,EAAkBC,GAA8C,IAAxCC,EAAQD,EAARC,SAAavB,EAAUrB,EAAA2C,EAAAE,GACnD,IAAAC,EAA0FvB,EAAY,CACpGZ,GAAIU,EAAW,kBADT0B,EAAmBD,EAAnBC,oBAAqBvB,EAASsB,EAATtB,UAAWC,EAAUqB,EAAVrB,WAAYC,EAASoB,EAATpB,UAAWC,EAAUmB,EAAVnB,WAAYC,EAAUkB,EAAVlB,WAI3E,IAAMC,EAA0BC,EAC3BT,GAAAA,EAAWQ,MAAK,CACnBH,UAAWK,EAAIC,UAAUC,SAASP,GAASI,EAAA,CAAA,EAASJ,EAAS,CAAEQ,OAAQ,KACvEP,WAAAA,EACAQ,OAAQzC,IAAa,MAAQ,OAAS0C,WAClCR,EACA,CACES,SAAU,WACVC,OAAQ,KACRC,UAAW,0CACXS,gBAAiB,QAEnB,CAAE,GAER,IAAMC,EAAcC,EAAexD,GAAYA,EAAW8C,EAAAW,MAC1D,OACEX,EAAA,KAAAV,EAAA,CAAA,EAAQT,EAAU,CAAEoB,IAAKhB,EAAYI,MAAOA,EAAMe,SAC/CQ,EAAMC,SAASC,IAAIV,GAAU,SAACW,GAC7B,GAAKA,EAA6BC,MAAQ,OAAQ,CAChD,OAAOJ,EAAMK,aAAaF,EAA6B,CACrDX,SACEJ,EAAA,OAAAV,EAAA,CACEW,IAAKM,EACLlB,MAAO,CAAE6B,YAAa,OAAQvB,OAAQ,SAClCX,EAAS,CAAAoB,SAEbJ,EAACmB,EAAW,CACV9B,MAAO,CAAE+B,QAAS,cAAeF,YAAa,OAAQvB,OAAQ,QAC9D0B,KAAMZ,EACNa,QAASC,QAKnB,CACA,OAAOR,SAMf,IAAMS,EAAcC,GAAQ,WAC1B,GAAIvE,IAAa,MAAO,OAAOE,EAC/B,MAAO,CACL,CACE4D,IAAK,OACLU,UAAW,OACXC,MAAO,SACPC,MAAO,KAETlD,OAAOtB,GAAW,GACtB,GAAG,CAACA,EAASF,IAEb,IAAM2E,EAAUC,EACdC,EAAUC,EAAe,CACvBC,qBAAsB,CAEpBC,MAAOhF,IAAa,MAAQ,IAAM,EAClCiF,UAAW,MAKjB,OACEnC,EAACoC,EAAU,CAACP,QAASA,EAASQ,UAAW,CAACC,GAAyBvE,UAAWA,EAAUqC,SACtFJ,EAACuC,EAAe,CAACC,MAAO5E,EAASkD,KAAI,SAACxC,GAAC,OAAKA,EAAEnB,MAAesF,SAAUC,EAA4BtC,SACjGJ,EAAC2C,EAAKrD,EAAA,CACJsD,WAAY,MACZC,OAAQ1F,EACR2F,SAAQ,MACJvF,EAAU,CACdF,WAAYO,EACZR,QAASoE,EACTuB,WAAY,CACVC,KAAM,CACJC,IAAKhG,EAAMC,WAAa,MAAQ0B,EAAesB,UAO7D"}
|
package/esm/easy-table/index.js
CHANGED
|
@@ -11,5 +11,5 @@ import './../table-title-tooltip/index.css';
|
|
|
11
11
|
import './../tips-wrapper/index.css';
|
|
12
12
|
import './index.css';
|
|
13
13
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
14
|
-
import{fbaUtils as e}from"../fba-utils/index.js";import{classNames as t}from"@dimjs/utils/cjs/class-names";import{isUndefined as i}from"@dimjs/lang/cjs/is-undefined";import{isArray as r}from"@dimjs/lang/cjs/is-array";import{_ as n,a}from"../_rollupPluginBabelHelpers-fc015ef2.js";import{hooks as o}from"@wove/react/cjs/hooks";import{cloneState as l}from"@dimjs/model";import{Form as s,message as u,Table as p}from"antd";import{createContext as c,forwardRef as d,useState as f,useMemo as m,useRef as g,useImperativeHandle as v,useContext as y,Children as h}from"react";import{P as C,S}from"../index-e98b9352.js";import{noop as b,isUndefinedOrNull as j,getUuid as F,isMacEnv as q}from"@flatbiz/utils";import{Model as z}from"@dimjs/model-react";import{jsx as R,jsxs as N}from"react/jsx-runtime";import x from"@ant-design/icons/es/icons/DownOutlined";import P from"@ant-design/icons/es/icons/UpOutlined";import{isFragment as w}from"react-is";import{ButtonWrapper as k}from"../button-wrapper/index.js";import{FormGrid as T}from"../form-grid/index.js";import{SimpleLayout as D}from"../simple-layout/index.js";import{fbaHooks as K}from"../fba-hooks/index.js";import{TableScrollbar as L}from"../table-scrollbar/index.js";import{TableTitleTooltip as V}from"../table-title-tooltip/index.js";import{TipsWrapper as E}from"../tips-wrapper/index.js";import"@ant-design/icons/es/icons/LoadingOutlined";import"@dimjs/lang/cjs/is-promise";import"../config-provider-wrapper/index.js";import"antd/es/locale/en_US";import"antd/es/locale/zh_CN";import"dayjs";import"dayjs/locale/en";import"dayjs/locale/zh-cn";import"dayjs/plugin/advancedFormat";import"dayjs/plugin/customParseFormat";import"dayjs/plugin/localeData";import"dayjs/plugin/utc";import"dayjs/plugin/weekday";import"dayjs/plugin/weekOfYear";import"dayjs/plugin/weekYear";import"../use-responsive-point-21b8c601.js";import"@dimjs/utils/cjs/extend";import"@dimjs/utils/cjs/get";import"ahooks";import"@ant-design/icons/es/icons/QuestionCircleOutlined";var A=c({onRequest:b,tableList:[],getEasyTableRef:function e(){}});var O={queryCondition:{},isInit:true};var I={actions:{updateFilterCondition:function e(t){return function(e){e.queryCondition=n({},e.queryCondition,t)}},resetFilterCondition:function e(t){return function(e){e.queryCondition=n({},O.queryCondition,t)}},updateInitStatus:function e(){return function(e){e.isInit=false}}},state:O};var B={};var W=function e(t){if(!B[t]){B[t]=z(I)}return B[t]};var _=d((function(e,a){var p;var c=f([]),d=c[0],y=c[1];var h=f(0),S=h[0],b=h[1];var j=f(false),F=j[0],q=j[1];var z=o.useId(undefined,"easy-table-key");var x=m((function(){return e.cacheSwitch?location.pathname:z}),[z,e.cacheSwitch]);var P=W(x).useStore(),w=P[0],k=P[1];var T=e.pageSize||((p=e.initialPaginationParams)==null?void 0:p.pageSize)||10;var D=e.initRequest===undefined?true:e.initRequest;var K=f(false),L=K[0],V=K[1];var E=g();var O=n({list:"list",total:"total",pageNo:"pageNo",pageSize:"pageSize"},e.fieldNames);var I=s.useForm(e.form),B=I[0];var _=o.useCallbackRef((function(t){return new Promise((function(i,n){var a,o,s,p,c,d,f,m,g,v;var h=function(){try{return i()}catch(e){return n(e)}};var C=function(t){try{q(false);if(e.onRequestErrorHandle){e.onRequestErrorHandle(t)}else{void u.error(t.message)}return h()}catch(e){return n(e)}};try{q(true);return Promise.resolve(k.updateFilterCondition(t)).then((function(t){try{a=t;o=l(a.queryCondition||{});s=e.serviceConfig,p=s.requestParamsAdapter,c=s.onRequest,d=s.requestResultAdapter;f=p?p(o):o;return Promise.resolve(c(f)).then((function(t){try{m=t||{};E.current=m;e.onDataSourceChange==null?void 0:e.onDataSourceChange(m);g=d?d(m):m;v=g[O.list];y(r(v)?v:[]);b(g[O.total]);q(false);return h()}catch(e){return C(e)}}),C)}catch(e){return C(e)}}),C)}catch(e){C(e)}}))}));var H=o.useCallbackRef((function(e){return new Promise((function(t,i){return Promise.resolve(k.resetFilterCondition()).then((function(r){try{B.resetFields();if(e){void k.updateFilterCondition(e);B.setFieldsValue(e)}return t()}catch(e){return i(e)}}),i)}))}));var U=function e(t,i){if(L){var r;return r={},r[O.pageNo]=t,r[O.pageSize]=i||T,r}else{return{}}};var Q=o.useCallbackRef((function(t){return new Promise((function(i,r){var a;a=n({},U(1,w.queryCondition[O.pageSize]),e.initialValues,t);return Promise.resolve(k.resetFilterCondition(a)).then((function(e){try{B.resetFields();if(t){B.setFieldsValue(t)}void _(a);return i()}catch(e){return r(e)}}),r)}))}));var Y=o.useCallbackRef((function(){return n({},w.queryCondition,B.getFieldsValue())}));var G=function t(){return{onRequest:_,clearQueryCondition:H,getRequestParams:Y,onResetRequest:Q,form:B,getDataSource:function e(){return E.current},onFilterDataSource:function e(t){y(t)},onClearDataSource:function e(){b(0);y([])},onUpdateDataSource:function t(i){y(i);E.current=i;e.onDataSourceChange==null?void 0:e.onDataSourceChange(i)}}};v(a,(function(){return G()}));var $=function e(t){V(t)};var J=function t(){var i=B.getFieldsValue();if(e.onFormFinish){e.onFormFinish(n({},i,U(1,w.queryCondition[O.pageSize])))}else{void _(n({},i,U(1,w.queryCondition[O.pageSize])))}};var M=i(e.isFull)?true:e.isFull;var X=t("fba-easy-table",{"fba-easy-table-full":M,"fba-easy-table-filter-fixed":e.filterFixed,"fba-easy-table-pagination-fixed":e.paginationFixed},e.className);var Z=m((function(){return n({showSizeChanger:true,current:w.queryCondition[O.pageNo]||1,pageSize:w.queryCondition[O.pageSize]||T,total:S,showTotal:function e(t){return"共 "+t+" 条记录"}},e.pagination)}),[O.pageNo,O.pageSize,T,e.pagination,w.queryCondition,S]);var ee=o.useCallbackRef((function(t,i){var r,n;void _((r={},r[O.pageSize]=i,r[O.pageNo]=t,r));(n=e.pagination)==null||n.onChange==null?void 0:n.onChange(t,i)}));var te=t("fba-easy-table-wrapper",{"fba-easy-table-wrapper-inline":e.isInline},e.className);var ie=typeof e.children==="function"?e.children(E.current):e.children;return R(A.Provider,{value:{getEasyTableRef:G,modelKey:x,onRequest:_,tableList:d,tableTotal:S,loading:F,fieldNames:O,pageSize:T,initRequest:D,initialValues:e.initialValues||{},onSetPaginationStatus:$,paginationStatus:L,onFormFinish:J,form:B,paginationFixed:e.paginationFixed||false,foldKeys:e.foldKeys||[]},children:e.paginationFixed?N("div",{className:te,style:e.style,children:[R("div",{className:X,children:ie}),S>0&&R("div",{className:"fba-easy-table-pagination",children:R(C,n({size:"small"},Z,{onChange:ee}))})]}):R("div",{className:X,style:e.style,children:ie})})}));var H=function e(r){var a=y(A);var l=r.queryButtonProps,u=r.resetButtonProps,p=r.filterOperate,c=r.formClassName,d=r.defaultResetButtonTriggerRequest,g=r.filterWrapperStyle,v=r.filterWrapperClassName,C=r.rightOperateAreaAppendType;var S=a.modelKey,b=a.foldKeys,j=a.fieldNames,F=a.onRequest,q=a.pageSize,z=a.paginationStatus,K=a.initialValues,L=a.form,V=a.onFormFinish;var E=typeof r.children==="function"?r.children(L):r.children;var O=C||"cover";var I=m((function(){if(w(E)){return h.toArray(E.props.children)}else{return h.toArray(E)}}),[E]);var B=f(false),_=B[0],H=B[1];var U=W(S).useStore(),Q=U[0],Y=U[1];var G=o.useCallbackRef((function(){return new Promise((function(e,t){var r;return Promise.resolve(Y.resetFilterCondition()).then((function(a){try{L.resetFields();if(i(d)||d){if(z){F(n((r={},r[j.pageNo]=1,r[j.pageSize]=q,r),K))}else{F(K)}}return e()}catch(e){return t(e)}}),t)}))}));var $=m((function(){var e=[R(k,n({type:"primary",htmlType:"submit"},l,{children:(l==null?void 0:l.text)||"查询"}),"1"),R(k,n({onClick:G},u,{children:(u==null?void 0:u.text)||"重置"}),"2")].filter(Boolean);var t=p==null?void 0:p(L);var i=t==null?void 0:t.rightList;var r=(t==null?void 0:t.leftList)||[];var a=e;if(i){if(O==="afterAppend"){a=[].concat(e,i)}else if(O==="beforeAppend"){a=[].concat(i,e)}else{a=i}}if(b.length>0){var o=R(k,{type:"link",style:{padding:"0"},onClick:function e(){H(!_)},children:_?N("span",{children:["收起",R(P,{style:{marginLeft:3,fontSize:12}})]}):N("span",{children:["展开",R(x,{style:{marginLeft:3,fontSize:12}})]})},"fold-trigger");if(a.length>0||r.length===0){a.push(o)}else if((r==null?void 0:r.length)>0){r.push(o)}}return I.map((function(e,t){if(!_&&b.find((function(t){return".$"+t===e.key})))return null;if(e.props["hidden"])return null;if(e.type["domTypeName"]==="FormCol")return e;return R(T.Col,{children:e},t)})).filter(Boolean).concat(R(T.OperateCol,n({},t,{leftList:r,rightList:a}),999))}),[I,p,b,L,G,_,l,u,O]);return R(D,{className:t("easy-table-filter",v),style:g,children:R(s,{form:L,autoComplete:"off",onFinish:V,initialValues:n({},K,Q.queryCondition),className:c,children:r.isPure?E:R(T.Row,{gutter:[15,0],gridSize:r.formGridSize,children:$})})})};var U=function e(){var t=y(A);return t.getEasyTableRef()};var Q=function e(){var t=y(A);return{current:t.getEasyTableRef()}};var Y=["children","rowKey","pagination"],G=["tooltip","tipsWrapperProps","title"];var $=function e(i){var r=y(A);var o=i.children,l=i.rowKey,s=i.pagination,u=a(i,Y);var c=r.modelKey,d=r.fieldNames,f=r.onRequest,g=r.tableList,v=r.initRequest,h=r.pageSize,C=r.tableTotal,b=r.loading,z=r.initialValues,x=r.paginationFixed,P=r.onSetPaginationStatus;var w=W(c).useStore(),k=w[0],T=w[1];var O=m((function(){if(x||s===false)return false;return n({showSizeChanger:true,current:k.queryCondition[d.pageNo]||1,pageSize:k.queryCondition[d.pageSize]||h,total:C,showTotal:function e(t){return"共 "+t+" 条记录"}},i.pagination,{selectComponentClass:S})}),[d.pageNo,d.pageSize,h,s,x,i.pagination,k.queryCondition,C]);var I=function e(t,r,n,a){if(a.action==="paginate"&&O){var o;f((o={},o[d.pageSize]=t.pageSize,o[d.pageNo]=t.current,o))}else{i.onChange==null?void 0:i.onChange(t,r,n,a)}};var B=m((function(){if(g.length===0){return[]}if(typeof l==="string"&&j(g[0][l])){return g.map((function(e){e[l]=F();return e}))}return g}),[g,l]);K.useEffectCustom((function(){var e=x||O!==false;P(e);if(v!==false||!k.isInit){if(e){var t;void f(n((t={},t[d.pageNo]=1,t[d.pageSize]=h,t),z,k.queryCondition))}else{void f(z)}}else{void T.updateFilterCondition(z)}void T.updateInitStatus()}),[]);var _=m((function(){return i.columns.map((function(e){var t=e.tooltip,i=e.tipsWrapperProps,r=e.title,o=a(e,G);if(typeof r==="string"&&i){if(typeof i==="string"){return n({},o,{title:R(E,{tipType:"popover",popoverProps:{content:i},children:r})})}return n({},o,{title:R(E,n({},i,{children:r}))})}if(typeof r==="string"&&!!t){return n({},o,{title:R(V,{tooltip:t,title:r})})}return e}))}),[i.columns]);return N(D,{className:t("easy-table-table",i.tableWrapperClassName),style:i.tableWrapperStyle,children:[o,q()?R(p,n({size:"small",scroll:{x:"max-content"},bordered:true},u,{columns:_,pagination:O,rowKey:l,onChange:I,loading:b,dataSource:B})):R(L,{children:R(p,n({size:"small",scroll:{x:"max-content"},bordered:true},u,{columns:_,pagination:O,rowKey:l,onChange:I,loading:b,dataSource:B}))})]})};var J=e.attachPropertiesToComponent(_,{Filter:H,Table:$,useEasyTablRef:Q,useEasyTable:U});export{J as EasyTable};
|
|
14
|
+
import{fbaUtils as e}from"../fba-utils/index.js";import{classNames as t}from"@dimjs/utils/cjs/class-names";import{isUndefined as i}from"@dimjs/lang/cjs/is-undefined";import{isArray as r}from"@dimjs/lang/cjs/is-array";import{_ as n,a}from"../_rollupPluginBabelHelpers-fc015ef2.js";import{hooks as o}from"@wove/react/cjs/hooks";import{cloneState as l}from"@dimjs/model";import{Form as s,message as u,Table as p}from"antd";import{createContext as c,forwardRef as d,useState as f,useMemo as m,useRef as g,useImperativeHandle as v,useContext as y,Children as h}from"react";import{P as C,S}from"../index-e98b9352.js";import{noop as b,isUndefinedOrNull as j,getUuid as F,isMacEnv as q}from"@flatbiz/utils";import{Model as z}from"@dimjs/model-react";import{jsx as R,jsxs as N}from"react/jsx-runtime";import x from"@ant-design/icons/es/icons/DownOutlined";import P from"@ant-design/icons/es/icons/UpOutlined";import{isFragment as w}from"react-is";import{ButtonWrapper as k}from"../button-wrapper/index.js";import{FormGrid as T}from"../form-grid/index.js";import{SimpleLayout as D}from"../simple-layout/index.js";import{fbaHooks as K}from"../fba-hooks/index.js";import{TableScrollbar as L}from"../table-scrollbar/index.js";import{TableTitleTooltip as V}from"../table-title-tooltip/index.js";import{TipsWrapper as E}from"../tips-wrapper/index.js";import"@ant-design/icons/es/icons/LoadingOutlined";import"@dimjs/lang/cjs/is-promise";import"../config-provider-wrapper/index.js";import"antd/es/locale/en_US";import"antd/es/locale/zh_CN";import"dayjs";import"dayjs/locale/en";import"dayjs/locale/zh-cn";import"dayjs/plugin/advancedFormat";import"dayjs/plugin/customParseFormat";import"dayjs/plugin/localeData";import"dayjs/plugin/utc";import"dayjs/plugin/weekday";import"dayjs/plugin/weekOfYear";import"dayjs/plugin/weekYear";import"../use-responsive-point-21b8c601.js";import"@dimjs/utils/cjs/extend";import"@dimjs/utils/cjs/get";import"ahooks";import"@ant-design/icons/es/icons/QuestionCircleOutlined";var A=c({onRequest:b,tableList:[],getEasyTableRef:function e(){}});var O={queryCondition:{},isInit:true};var I={actions:{updateFilterCondition:function e(t){return function(e){e.queryCondition=n({},e.queryCondition,t)}},resetFilterCondition:function e(t){return function(e){e.queryCondition=n({},O.queryCondition,t)}},updateInitStatus:function e(){return function(e){e.isInit=false}}},state:O};var B={};var W=function e(t){if(!B[t]){B[t]=z(I)}return B[t]};var _=d((function(e,a){var p;var c=f([]),d=c[0],y=c[1];var h=f(0),S=h[0],b=h[1];var j=f(false),F=j[0],q=j[1];var z=o.useId(undefined,"easy-table-key");var x=m((function(){return e.cacheSwitch?location.pathname:z}),[z,e.cacheSwitch]);var P=W(x).useStore(),w=P[0],k=P[1];var T=e.pageSize||((p=e.initialPaginationParams)==null?void 0:p.pageSize)||10;var D=e.initRequest===undefined?true:e.initRequest;var K=f(false),L=K[0],V=K[1];var E=g();var O=n({list:"list",total:"total",pageNo:"pageNo",pageSize:"pageSize"},e.fieldNames);var I=s.useForm(e.form),B=I[0];var _=o.useCallbackRef((function(t){return new Promise((function(i,n){var a,o,s,p,c,d,f,m,g,v;var h=function(){try{return i()}catch(e){return n(e)}};var C=function(t){try{q(false);if(e.onRequestErrorHandle){e.onRequestErrorHandle(t)}else{void u.error(t.message)}return h()}catch(e){return n(e)}};try{q(true);return Promise.resolve(k.updateFilterCondition(t)).then((function(t){try{a=t;o=l(a.queryCondition||{});s=e.serviceConfig,p=s.requestParamsAdapter,c=s.onRequest,d=s.requestResultAdapter;f=p?p(o):o;return Promise.resolve(c(f)).then((function(t){try{m=t||{};E.current=m;e.onDataSourceChange==null?void 0:e.onDataSourceChange(m);g=d?d(m):m;v=g[O.list];y(r(v)?v:[]);b(g[O.total]);q(false);return h()}catch(e){return C(e)}}),C)}catch(e){return C(e)}}),C)}catch(e){C(e)}}))}));var H=o.useCallbackRef((function(e){return new Promise((function(t,i){return Promise.resolve(k.resetFilterCondition()).then((function(r){try{B.resetFields();if(e){void k.updateFilterCondition(e);B.setFieldsValue(e)}return t()}catch(e){return i(e)}}),i)}))}));var U=function e(t,i){if(L){var r;return r={},r[O.pageNo]=t,r[O.pageSize]=i||T,r}else{return{}}};var Q=o.useCallbackRef((function(t){return new Promise((function(i,r){var a;a=n({},U(1,w.queryCondition[O.pageSize]),e.initialValues,t);return Promise.resolve(k.resetFilterCondition(a)).then((function(e){try{B.resetFields();if(t){B.setFieldsValue(t)}void _(a);return i()}catch(e){return r(e)}}),r)}))}));var Y=o.useCallbackRef((function(){return n({},w.queryCondition,B.getFieldsValue())}));var G=function t(){return{onRequest:_,clearQueryCondition:H,getRequestParams:Y,onResetRequest:Q,form:B,getDataSource:function e(){return E.current},onFilterDataSource:function e(t){y(t)},onClearDataSource:function e(){b(0);y([])},onUpdateDataSource:function t(i){y(i);E.current=i;e.onDataSourceChange==null?void 0:e.onDataSourceChange(i)}}};v(a,(function(){return G()}));var $=function e(t){V(t)};var J=function t(){var i=B.getFieldsValue();if(e.onFormFinish){e.onFormFinish(n({},i,U(1,w.queryCondition[O.pageSize])))}else{void _(n({},i,U(1,w.queryCondition[O.pageSize])))}};var M=i(e.isFull)?true:e.isFull;var X=t("fba-easy-table",{"fba-easy-table-full":M,"fba-easy-table-filter-fixed":e.filterFixed,"fba-easy-table-pagination-fixed":e.paginationFixed},e.className);var Z=m((function(){return n({showSizeChanger:true,current:w.queryCondition[O.pageNo]||1,pageSize:w.queryCondition[O.pageSize]||T,total:S,showTotal:function e(t){return"共 "+t+" 条记录"}},e.pagination)}),[O.pageNo,O.pageSize,T,e.pagination,w.queryCondition,S]);var ee=o.useCallbackRef((function(t,i){var r,n;void _((r={},r[O.pageSize]=i,r[O.pageNo]=t,r));(n=e.pagination)==null||n.onChange==null?void 0:n.onChange(t,i)}));var te=t("fba-easy-table-wrapper",{"fba-easy-table-wrapper-inline":e.isInline},e.className);var ie=typeof e.children==="function"?e.children(E.current):e.children;return R(A.Provider,{value:{getEasyTableRef:G,modelKey:x,onRequest:_,tableList:d,tableTotal:S,loading:F,fieldNames:O,pageSize:T,initRequest:D,initialValues:e.initialValues||{},onSetPaginationStatus:$,paginationStatus:L,onFormFinish:J,form:B,paginationFixed:e.paginationFixed||false,foldKeys:e.foldKeys||[]},children:e.paginationFixed?N("div",{className:te,style:e.style,children:[R("div",{className:X,children:ie}),S>0&&R("div",{className:"fba-easy-table-pagination",children:R(C,n({size:"small"},Z,{onChange:ee}))})]}):R("div",{className:X,style:e.style,children:ie})})}));var H=function e(r){var a=y(A);var l=r.queryButtonProps,u=r.resetButtonProps,p=r.filterOperate,c=r.formClassName,d=r.defaultResetButtonTriggerRequest,g=r.filterWrapperStyle,v=r.filterWrapperClassName,C=r.rightOperateAreaAppendType;var S=a.modelKey,b=a.foldKeys,j=a.fieldNames,F=a.onRequest,q=a.pageSize,z=a.paginationStatus,K=a.initialValues,L=a.form,V=a.onFormFinish;var E=typeof r.children==="function"?r.children(L):r.children;var O=C||"cover";var I=m((function(){if(w(E)){return h.toArray(E.props.children)}else{return h.toArray(E)}}),[E]);var B=f(false),_=B[0],H=B[1];var U=W(S).useStore(),Q=U[0],Y=U[1];var G=o.useCallbackRef((function(){return new Promise((function(e,t){var r;return Promise.resolve(Y.resetFilterCondition()).then((function(a){try{L.resetFields();if(i(d)||d){if(z){F(n((r={},r[j.pageNo]=1,r[j.pageSize]=q,r),K))}else{F(K)}}return e()}catch(e){return t(e)}}),t)}))}));var $=m((function(){var e=[R(k,n({type:"primary",htmlType:"submit"},l,{children:(l==null?void 0:l.text)||"查询"}),"1"),R(k,n({onClick:G},u,{children:(u==null?void 0:u.text)||"重置"}),"2")].filter(Boolean);var t=p==null?void 0:p(L);var i=t==null?void 0:t.rightList;var r=(t==null?void 0:t.leftList)||[];var a=e;if(i){if(O==="afterAppend"){a=[].concat(e,i)}else if(O==="beforeAppend"){a=[].concat(i,e)}else{a=i}}if(b.length>0){var o=R(k,{type:"link",style:{padding:"0"},onClick:function e(){H(!_)},children:_?N("span",{children:["收起",R(P,{style:{marginLeft:3,fontSize:12}})]}):N("span",{children:["展开",R(x,{style:{marginLeft:3,fontSize:12}})]})},"fold-trigger");if(a.length>0||r.length===0){a.push(o)}else if((r==null?void 0:r.length)>0){r.push(o)}}return I.map((function(e,t){if(!_&&b.find((function(t){return".$"+t===e.key})))return null;if(e.props["hidden"])return null;if(e.type["domTypeName"]==="FormCol")return e;return R(T.Col,{children:e},t)})).filter(Boolean).concat(R(T.OperateCol,n({},t,{leftList:r,rightList:a}),999))}),[I,p,b,L,G,_,l,u,O]);return R(D,{className:t("easy-table-filter",v),style:g,children:R(s,{form:L,autoComplete:"off",onFinish:V,initialValues:n({},K,Q.queryCondition),className:c,style:r.formStyle,children:r.isPure?E:R(T.Row,{gutter:[15,0],gridSize:r.formGridSize,children:$})})})};var U=function e(){var t=y(A);return t.getEasyTableRef()};var Q=function e(){var t=y(A);return{current:t.getEasyTableRef()}};var Y=["children","rowKey","pagination"],G=["tooltip","tipsWrapperProps","title"];var $=function e(i){var r=y(A);var o=i.children,l=i.rowKey,s=i.pagination,u=a(i,Y);var c=r.modelKey,d=r.fieldNames,f=r.onRequest,g=r.tableList,v=r.initRequest,h=r.pageSize,C=r.tableTotal,b=r.loading,z=r.initialValues,x=r.paginationFixed,P=r.onSetPaginationStatus;var w=W(c).useStore(),k=w[0],T=w[1];var O=m((function(){if(x||s===false)return false;return n({showSizeChanger:true,current:k.queryCondition[d.pageNo]||1,pageSize:k.queryCondition[d.pageSize]||h,total:C,showTotal:function e(t){return"共 "+t+" 条记录"}},i.pagination,{selectComponentClass:S})}),[d.pageNo,d.pageSize,h,s,x,i.pagination,k.queryCondition,C]);var I=function e(t,r,n,a){if(a.action==="paginate"&&O){var o;f((o={},o[d.pageSize]=t.pageSize,o[d.pageNo]=t.current,o))}else{i.onChange==null?void 0:i.onChange(t,r,n,a)}};var B=m((function(){if(g.length===0){return[]}if(typeof l==="string"&&j(g[0][l])){return g.map((function(e){e[l]=F();return e}))}return g}),[g,l]);K.useEffectCustom((function(){var e=x||O!==false;P(e);if(v!==false||!k.isInit){if(e){var t;void f(n((t={},t[d.pageNo]=1,t[d.pageSize]=h,t),z,k.queryCondition))}else{void f(z)}}else{void T.updateFilterCondition(z)}void T.updateInitStatus()}),[]);var _=m((function(){return i.columns.map((function(e){var t=e.tooltip,i=e.tipsWrapperProps,r=e.title,o=a(e,G);if(typeof r==="string"&&i){if(typeof i==="string"){return n({},o,{title:R(E,{tipType:"popover",popoverProps:{content:i},children:r})})}return n({},o,{title:R(E,n({},i,{children:r}))})}if(typeof r==="string"&&!!t){return n({},o,{title:R(V,{tooltip:t,title:r})})}return e}))}),[i.columns]);return N(D,{className:t("easy-table-table",i.tableWrapperClassName),style:i.tableWrapperStyle,children:[o,q()?R(p,n({size:"small",scroll:{x:"max-content"},bordered:true},u,{columns:_,pagination:O,rowKey:l,onChange:I,loading:b,dataSource:B})):R(L,{children:R(p,n({size:"small",scroll:{x:"max-content"},bordered:true},u,{columns:_,pagination:O,rowKey:l,onChange:I,loading:b,dataSource:B}))})]})};var J=e.attachPropertiesToComponent(_,{Filter:H,Table:$,useEasyTablRef:Q,useEasyTable:U});export{J as EasyTable};
|
|
15
15
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/easy-table/context.ts","@flatbiz/antd/src/easy-table/model.ts","@flatbiz/antd/src/easy-table/easy-table.tsx","@flatbiz/antd/src/easy-table/filter.tsx","@flatbiz/antd/src/easy-table/hooks.ts","@flatbiz/antd/src/easy-table/table.tsx","@flatbiz/antd/src/easy-table/index.ts"],"sourcesContent":["import { noop, TPlainObject } from '@flatbiz/utils';\nimport { FormInstance } from 'antd';\nimport { createContext } from 'react';\nimport { EasyTableRefApi } from './type';\n\n// export const [useEasyTableCtx, EasyTableCtxProvider] = createCtx<{\n// modelKey: string;\n// onRequest: (params?: TPlainObject) => void;\n// tableList: TPlainObject[];\n// tableTotal: number;\n// loading?: boolean;\n// fieldNames: TPlainObject;\n// pageSize: number;\n// initRequest: boolean;\n// initialValues: TPlainObject;\n// onSetPaginationStatus: (status: boolean) => void;\n// paginationStatus: boolean;\n// onFormFinish?: (values?: TPlainObject) => void;\n// form: FormInstance;\n// getEasyTableRef: () => EasyTableRefApi;\n// paginationFixed: boolean;\n// foldKeys: string[];\n// }>();\n\nexport type EditableFieldContextContextApi = {\n modelKey: string;\n onRequest: (params?: TPlainObject) => void;\n tableList: TPlainObject[];\n tableTotal: number;\n loading?: boolean;\n fieldNames: TPlainObject;\n pageSize: number;\n initRequest: boolean;\n initialValues: TPlainObject;\n onSetPaginationStatus: (status: boolean) => void;\n paginationStatus: boolean;\n onFormFinish?: (values?: TPlainObject) => void;\n form: FormInstance;\n getEasyTableRef: () => EasyTableRefApi;\n paginationFixed: boolean;\n foldKeys: string[];\n};\n\nexport const EasyTableContext = createContext<EditableFieldContextContextApi>({\n onRequest: noop,\n tableList: [],\n getEasyTableRef: () => {\n //\n },\n} as unknown as EditableFieldContextContextApi);\n","import { API, ModelType } from '@dimjs/model';\nimport { Model } from '@dimjs/model-react';\nimport { TAny, TPlainObject } from '@flatbiz/utils';\n\nexport type ModelState = {\n queryCondition: TPlainObject;\n isInit: boolean;\n};\n\ntype ModelActionParams = {\n updateFilterCondition?: Partial<ModelState['queryCondition']>;\n resetFilterCondition?: TPlainObject;\n updateInitStatus: void;\n};\n\nconst defaultState: ModelState = {\n queryCondition: {},\n isInit: true,\n};\n\nconst _EasyTableModel: ModelType<ModelState, ModelActionParams> = {\n actions: {\n updateFilterCondition: (params) => {\n return (state) => {\n state.queryCondition = {\n ...state.queryCondition,\n ...params,\n };\n };\n },\n resetFilterCondition: (params) => {\n return (state) => {\n state.queryCondition = {\n ...defaultState.queryCondition,\n ...params,\n };\n };\n },\n updateInitStatus: () => {\n return (state) => {\n state.isInit = false;\n };\n },\n },\n state: defaultState,\n};\n\nconst easyTableModels: Record<string, API<ModelType<ModelState, ModelActionParams, TAny>>> = {};\n\n/**\n * ```\n * 使用方式\n * const [state, actions] = selectorWrapperModel('key值').useStore();\n * ```\n */\nexport const easyTableModel = (key: string) => {\n if (!easyTableModels[key]) {\n easyTableModels[key] = Model(_EasyTableModel);\n }\n return easyTableModels[key];\n};\n","import { isArray, isUndefined } from '@dimjs/lang';\nimport { cloneState } from '@dimjs/model';\nimport { classNames } from '@dimjs/utils';\nimport { TAny, TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Form, FormInstance, message, PaginationProps } from 'antd';\nimport {\n CSSProperties,\n forwardRef,\n ReactElement,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { PaginationWrapper } from '../pagination-wrapper';\nimport { EasyTableContext } from './context';\nimport { easyTableModel } from './model';\nimport './style.less';\nimport { EasyTableRefApi } from './type';\n\ntype EasyTableServiceConfig = {\n /** 接口配置 */\n onRequest: (params?: TPlainObject) => Promise<TPlainObject | TPlainObject[]>;\n /** 请求参数处理 */\n requestParamsAdapter?: (params: TPlainObject) => TPlainObject;\n /**\n * 接口相应数据处理\n * @param params\n * ```\n * 返回数据为对象,包含两个字段\n * 1. 表格列表数据 - Array\n * 2. 表格条数总数 - Number\n * 其中 字段key 命名会通过 fieldNames 进行转义\n * ```\n */\n requestResultAdapter?: (params: TAny) => TPlainObject;\n};\n\nexport type EasyTableProps = {\n className?: string;\n style?: CSSProperties;\n children: ReactElement | ReactElement[] | ((dataSource?: TAny) => ReactElement);\n /**\n * EasyTable唯一值,可用于缓存查询条件\n * @deprecated 已过时,如果需要缓存数据请设置 cacheSwitch 参数\n */\n modelKey?: string;\n /**\n * 缓存查询条件开关,默认false\n * ```\n * 是否缓存表格查询条件,在路由跳转回来时,不会丢失\n * ```\n */\n cacheSwitch?: boolean;\n /** 接口数据配置 */\n serviceConfig: EasyTableServiceConfig;\n /**\n * 1. 查询条件Form initialValues\n * 2. 接口其他参数,例如常量类型\n */\n initialValues?: TPlainObject;\n /**\n * 分页初始化参数,默认值: pageSize = 10\n * @deprecated 已过时 4.3.0版本移除,使用 pageSize 赋值\n */\n initialPaginationParams?: { pageSize?: number };\n /** 分页单页条数,默认值:10 */\n pageSize?: number;\n /** 字段映射 */\n fieldNames?: { list?: string; total?: string; pageNo?: string; pageSize?: string; uid?: string };\n /** 初始化是否请求,默认值:true */\n initRequest?: boolean;\n onDataSourceChange?: (dataSource: TAny) => void;\n /** 如果自定义查询按钮,可设置 Form onFinish */\n onFormFinish?: (values?: TPlainObject) => void;\n /** 在父节点高度下,上下铺满;默认值:true */\n isFull?: boolean;\n /** 查询条件固定,不随滚动条滚动 */\n filterFixed?: boolean;\n /** 分页区域固定,不随滚动条滚动 */\n paginationFixed?: boolean;\n /**\n * 1. 配合paginationFixed=true一起使用有效果\n * 2. 当使用Table内的pagination时,在EasyTable.Table中配置分页属性\n */\n pagination?: PaginationProps;\n /**\n * 查询条件展开、收起,被收起key数组;数组内容为EasyTable.Filter 子节点key值\n */\n foldKeys?: string[];\n /**\n * 自定义处理服务异常\n * @param error\n * @returns\n */\n onRequestErrorHandle?: (error) => void;\n /**\n * 是否inline模式\n * ```\n * 1. 缩短 EasyTable.Filter 与 EasyTable.Table 之间的距离\n * ```\n */\n isInline?: boolean;\n /** Form 实例 */\n form?: FormInstance;\n};\n\nexport const EasyTable = forwardRef<EasyTableRefApi, EasyTableProps>((props, ref) => {\n const [dataSource, setDataSource] = useState<TPlainObject[]>([]);\n const [total, setTotal] = useState<number>(0);\n const [loading, setLoading] = useState<boolean>(false);\n const easyTableId = hooks.useId(undefined, 'easy-table-key');\n\n const modelKey = useMemo(() => {\n return props.cacheSwitch ? location.pathname : easyTableId;\n }, [easyTableId, props.cacheSwitch]);\n\n const [state, actions] = easyTableModel(modelKey).useStore();\n const pageSize = props.pageSize || props.initialPaginationParams?.pageSize || 10;\n const initRequest = props.initRequest === undefined ? true : props.initRequest;\n const [paginationStatus, setPaginationStatus] = useState(false);\n const respOriginalDataRef = useRef<TAny>();\n\n const fieldNames = {\n list: 'list',\n total: 'total',\n pageNo: 'pageNo',\n pageSize: 'pageSize',\n ...props.fieldNames,\n };\n\n const [form] = Form.useForm(props.form);\n\n const onInnerRequest = hooks.useCallbackRef(async (params) => {\n try {\n setLoading(true);\n const allState = await actions.updateFilterCondition(params);\n const queryCondition = cloneState(allState.queryCondition || {});\n const { requestParamsAdapter, onRequest, requestResultAdapter } = props.serviceConfig;\n const paramsNew = requestParamsAdapter ? requestParamsAdapter(queryCondition) : queryCondition;\n const respData = (await onRequest(paramsNew)) || {};\n respOriginalDataRef.current = respData;\n props.onDataSourceChange?.(respData);\n const respDataNew = requestResultAdapter ? requestResultAdapter(respData) : respData;\n const respList = respDataNew[fieldNames.list];\n setDataSource(isArray(respList) ? respList : []);\n setTotal(respDataNew[fieldNames.total]);\n setLoading(false);\n } catch (error) {\n setLoading(false);\n if (props.onRequestErrorHandle) {\n props.onRequestErrorHandle(error);\n } else {\n void message.error(error.message);\n }\n }\n });\n\n const clearQueryCondition = hooks.useCallbackRef(async (values?: TPlainObject) => {\n await actions.resetFilterCondition();\n form.resetFields();\n if (values) {\n void actions.updateFilterCondition(values);\n form.setFieldsValue(values);\n }\n });\n\n const getPaginationData = (pageNo: number, _pageSize: number) => {\n if (paginationStatus) {\n return {\n [fieldNames.pageNo]: pageNo,\n [fieldNames.pageSize]: _pageSize || pageSize,\n };\n } else {\n return {};\n }\n };\n\n const onResetRequest = hooks.useCallbackRef(async (values?: TPlainObject) => {\n const params = {\n ...getPaginationData(1, state.queryCondition[fieldNames.pageSize]),\n ...props.initialValues,\n ...values,\n };\n await actions.resetFilterCondition(params);\n form.resetFields();\n if (values) {\n form.setFieldsValue(values);\n }\n void onInnerRequest(params);\n });\n\n const getRequestParams = hooks.useCallbackRef(() => {\n return {\n ...state.queryCondition,\n ...form.getFieldsValue(),\n };\n });\n\n const getEasyTableRef = () => {\n return {\n /**\n * 参数\n * 1. 不用添加已存在的搜索条件\n * 2. 此处可重新\n */\n onRequest: onInnerRequest,\n clearQueryCondition,\n getRequestParams,\n onResetRequest,\n form,\n getDataSource: () => {\n return respOriginalDataRef.current;\n },\n onFilterDataSource: (filterDataSource) => {\n setDataSource(filterDataSource);\n },\n onClearDataSource: () => {\n setTotal(0);\n setDataSource([]);\n },\n onUpdateDataSource: (dataList) => {\n setDataSource(dataList);\n respOriginalDataRef.current = dataList;\n props.onDataSourceChange?.(dataList);\n },\n };\n };\n\n useImperativeHandle(ref, () => {\n return getEasyTableRef();\n });\n\n const onSetPaginationStatus = (status: boolean) => {\n setPaginationStatus(status);\n };\n\n const onFormFinish = () => {\n const values = form.getFieldsValue();\n if (props.onFormFinish) {\n props.onFormFinish({ ...values, ...getPaginationData(1, state.queryCondition[fieldNames.pageSize]) });\n } else {\n void onInnerRequest({\n ...values,\n ...getPaginationData(1, state.queryCondition[fieldNames.pageSize]),\n });\n }\n };\n const isFull = isUndefined(props.isFull) ? true : props.isFull;\n const className = classNames(\n 'fba-easy-table',\n {\n 'fba-easy-table-full': isFull,\n 'fba-easy-table-filter-fixed': props.filterFixed,\n 'fba-easy-table-pagination-fixed': props.paginationFixed,\n },\n props.className,\n );\n\n const paginationData = useMemo(() => {\n return {\n showSizeChanger: true,\n current: state.queryCondition[fieldNames.pageNo] || 1,\n pageSize: state.queryCondition[fieldNames.pageSize] || pageSize,\n total: total,\n showTotal: (total) => `共 ${total} 条记录`,\n ...props.pagination,\n };\n }, [fieldNames.pageNo, fieldNames.pageSize, pageSize, props.pagination, state.queryCondition, total]);\n\n const onChange = hooks.useCallbackRef((page: number, pageSize: number) => {\n void onInnerRequest({ [fieldNames.pageSize]: pageSize, [fieldNames.pageNo]: page });\n props.pagination?.onChange?.(page, pageSize);\n });\n\n const wrapperClassName = classNames(\n 'fba-easy-table-wrapper',\n {\n 'fba-easy-table-wrapper-inline': props.isInline,\n },\n props.className,\n );\n\n const children =\n typeof props.children === 'function' ? props.children(respOriginalDataRef.current) : props.children;\n\n return (\n <EasyTableContext.Provider\n value={{\n getEasyTableRef,\n modelKey,\n onRequest: onInnerRequest,\n tableList: dataSource,\n tableTotal: total,\n loading,\n fieldNames,\n pageSize,\n initRequest,\n initialValues: props.initialValues || {},\n onSetPaginationStatus,\n paginationStatus,\n onFormFinish,\n form,\n paginationFixed: props.paginationFixed || false,\n foldKeys: props.foldKeys || [],\n }}\n >\n {props.paginationFixed ? (\n <div className={wrapperClassName} style={props.style}>\n <div className={className}>{children}</div>\n {total > 0 && (\n <div className=\"fba-easy-table-pagination\">\n <PaginationWrapper size=\"small\" {...paginationData} onChange={onChange} />\n </div>\n )}\n </div>\n ) : (\n <div className={className} style={props.style}>\n {children}\n </div>\n )}\n </EasyTableContext.Provider>\n );\n});\n","import { DownOutlined, UpOutlined } from '@ant-design/icons';\nimport { isUndefined } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\nimport { TAny } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Form, FormInstance } from 'antd';\nimport { Children, CSSProperties, ReactElement, useContext, useMemo, useState } from 'react';\nimport { isFragment } from 'react-is';\nimport { ButtonWrapper, ButtonWrapperProps } from '../button-wrapper';\nimport { FormGrid } from '../form-grid';\nimport { FormOperateColProps } from '../form-grid/form-operate-col';\nimport { FormRowProps } from '../form-grid/form-row';\nimport { SimpleLayout } from '../simple-layout';\nimport { EasyTableContext } from './context';\nimport { easyTableModel } from './model';\n\nexport type EasyTableFilterProps = {\n children: ReactElement | ReactElement[] | ((form: FormInstance) => ReactElement);\n /** isPure = true时无效 */\n filterOperate?: (form: FormInstance) => FormOperateColProps;\n /** 是否为纯净模式(查询条件布局是否自定义), */\n isPure?: boolean;\n /** 查询按钮配置 */\n queryButtonProps?: Omit<ButtonWrapperProps, 'onClick'> & { text?: string };\n /** 重置按钮配置 */\n resetButtonProps?: Omit<ButtonWrapperProps, 'onClick'> & { text?: string };\n /**\n * 网格布局设置\n * default = { xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 };\n * small = { xs: 24, sm: 8, md: 8, lg: 6, xl: 6, xxl: 6 };\n */\n formGridSize?: FormRowProps['gridSize'];\n\n formClassName?: string;\n /** 默认重启按钮触发请求,默认值:true */\n defaultResetButtonTriggerRequest?: boolean;\n /** filter Form 外层 SimpleLayout style */\n filterWrapperStyle?: CSSProperties;\n /** filter Form 外层 SimpleLayout className */\n filterWrapperClassName?: string;\n /**\n * 自定义 filterOperate.rightList 后 默认【查询、重置】按钮处理逻辑\n * 1. cover:覆盖内部查询重置按钮(默认值)\n * 2. beforeAppend:添加到【查询重置】按钮前面\n * 3. afterAppend:添加到【查询重置】按钮后面\n *\n * 如果想隐藏【查询、重置】按钮中的某一个,可设置 queryButtonProps.hidden、resetButtonProps.hidden\n */\n rightOperateAreaAppendType?: 'cover' | 'beforeAppend' | 'afterAppend';\n};\n\n/**\n * 过滤条件\n * @param props\n * @returns\n *\n *```\n *1. 用法1\n * -- 默认网格布局 规则:{ xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 }\n * <EasyTableFilter>\n * <Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item>\n * </EasyTableFilter>\n *\n * -- 自定义网格布局 使用 FormCol组件包装 Form.Item\n * <EasyTableFilter>\n * <FormCol span={12}><Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item></FormCol>\n * </EasyTableFilter>\n *\n * -- children 可为 function\n * <EasyTableFilter>\n * {(form) => {\n * return <Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item>\n * }}\n * </EasyTableFilter>\n *2. 用户2(自定义布局)\n * EasyTableFilter设置 isPure = true,FormItem无布局规则\n *3. EasyTableFilter中内置了 Form 标签,当children为函数时,可获取form实例\n *4. 默认布局下,可通过设置 filterOperate 设置操作按钮\n *5. Filter 子节点包含 hidden = true 会被忽略\n *6. 如果想隐藏【查询、重置】按钮中的某一个,可设置 queryButtonProps.hidden、resetButtonProps.hidden\n *```\n */\nexport const EasyTableFilter = (props: EasyTableFilterProps) => {\n const ctx = useContext(EasyTableContext);\n const {\n queryButtonProps,\n resetButtonProps,\n filterOperate,\n formClassName,\n defaultResetButtonTriggerRequest,\n filterWrapperStyle,\n filterWrapperClassName,\n rightOperateAreaAppendType,\n } = props;\n const {\n modelKey,\n foldKeys,\n fieldNames,\n onRequest,\n pageSize,\n paginationStatus,\n initialValues,\n form,\n onFormFinish,\n } = ctx;\n const children = typeof props.children === 'function' ? props.children(form) : props.children;\n\n const rightOperateAreaAppendTypeFt = rightOperateAreaAppendType || 'cover';\n const childrens = useMemo(() => {\n if (isFragment(children)) {\n return Children.toArray((children as ReactElement).props.children) as ReactElement[];\n } else {\n return Children.toArray(children) as ReactElement[];\n }\n }, [children]);\n\n const [openFold, setOpenFold] = useState(false);\n\n const [state, actions] = easyTableModel(modelKey).useStore();\n\n const onReset = hooks.useCallbackRef(async () => {\n await actions.resetFilterCondition();\n form.resetFields();\n if (isUndefined(defaultResetButtonTriggerRequest) || defaultResetButtonTriggerRequest) {\n if (paginationStatus) {\n onRequest({\n [fieldNames.pageNo]: 1,\n [fieldNames.pageSize]: pageSize,\n ...initialValues,\n });\n } else {\n onRequest(initialValues);\n }\n }\n });\n\n const formRowChildren = useMemo(() => {\n const defaultRightList = [\n <ButtonWrapper key=\"1\" type=\"primary\" htmlType=\"submit\" {...queryButtonProps}>\n {queryButtonProps?.text || '查询'}\n </ButtonWrapper>,\n <ButtonWrapper key=\"2\" onClick={onReset} {...resetButtonProps}>\n {resetButtonProps?.text || '重置'}\n </ButtonWrapper>,\n ].filter(Boolean);\n const customFormOperateCol = filterOperate?.(form);\n const customRightList = customFormOperateCol?.rightList;\n const leftList: TAny[] = customFormOperateCol?.leftList || [];\n\n let rightList: TAny[] = defaultRightList;\n if (customRightList) {\n if (rightOperateAreaAppendTypeFt === 'afterAppend') {\n rightList = [...defaultRightList, ...customRightList];\n } else if (rightOperateAreaAppendTypeFt === 'beforeAppend') {\n rightList = [...customRightList, ...defaultRightList];\n } else {\n rightList = customRightList;\n }\n }\n\n if (foldKeys.length > 0) {\n const changeFolditem = (\n <ButtonWrapper\n type=\"link\"\n key=\"fold-trigger\"\n style={{ padding: '0' }}\n onClick={() => {\n setOpenFold(!openFold);\n }}\n >\n {openFold ? (\n <span>\n 收起\n <UpOutlined style={{ marginLeft: 3, fontSize: 12 }} />\n </span>\n ) : (\n <span>\n 展开\n <DownOutlined style={{ marginLeft: 3, fontSize: 12 }} />\n </span>\n )}\n </ButtonWrapper>\n );\n\n if (rightList.length > 0 || leftList.length === 0) {\n rightList.push(changeFolditem);\n } else if (leftList?.length > 0) {\n leftList.push(changeFolditem);\n }\n }\n\n return childrens\n .map((item, index) => {\n if (!openFold && foldKeys.find((keyItem) => `.$${keyItem}` === item.key)) return null;\n if (item.props['hidden']) return null;\n if (item.type['domTypeName'] === 'FormCol') return item;\n return <FormGrid.Col key={index}>{item}</FormGrid.Col>;\n })\n .filter(Boolean)\n .concat(\n <FormGrid.OperateCol key={999} {...customFormOperateCol} leftList={leftList} rightList={rightList} />,\n );\n }, [\n childrens,\n filterOperate,\n foldKeys,\n form,\n onReset,\n openFold,\n queryButtonProps,\n resetButtonProps,\n rightOperateAreaAppendTypeFt,\n ]);\n\n return (\n <SimpleLayout\n className={classNames('easy-table-filter', filterWrapperClassName)}\n style={filterWrapperStyle}\n >\n <Form\n form={form}\n autoComplete=\"off\"\n onFinish={onFormFinish}\n initialValues={{\n ...initialValues,\n ...state.queryCondition,\n }}\n className={formClassName}\n >\n {props.isPure ? (\n children\n ) : (\n <FormGrid.Row gutter={[15, 0]} gridSize={props.formGridSize}>\n {formRowChildren}\n </FormGrid.Row>\n )}\n </Form>\n </SimpleLayout>\n );\n};\n","import { useContext } from 'react';\nimport { EasyTableContext } from './context';\n\n/**\n * 在 EasyTable子组件内才可使用\n * @returns\n */\nexport const useEasyTable = () => {\n const ctx = useContext(EasyTableContext);\n return ctx.getEasyTableRef();\n};\n\n/**\n *\n * @deprecated 已过时 @4.3.0版本移除,请使用 useEasyTable\n * @returns\n */\nexport const useEasyTablRef = () => {\n const ctx = useContext(EasyTableContext);\n return {\n current: ctx.getEasyTableRef(),\n };\n};\n","import { classNames } from '@dimjs/utils';\nimport { getUuid, isMacEnv, isUndefinedOrNull, TAny, TPlainObject } from '@flatbiz/utils';\nimport { Table, TableProps } from 'antd';\nimport { ColumnsType } from 'antd/lib/table';\nimport { CSSProperties, ReactElement, useContext, useMemo } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport { SmallSelect } from '../pagination-wrapper/select';\nimport { SimpleLayout } from '../simple-layout';\nimport { TableScrollbar } from '../table-scrollbar';\nimport { TableTitleTooltip } from '../table-title-tooltip';\nimport { TipsWrapper } from '../tips-wrapper';\nimport { TipsWrapperProps } from '../tips-wrapper/tips-wrapper';\nimport { EasyTableContext } from './context';\nimport { easyTableModel } from './model';\n\nexport type TEasyTableTableColumn<T> = ColumnsType<T>[0] & {\n /**\n * @description 请使用 tipsWrapperProps 属性配置\n * ```\n * 会在 title 之后展示一个 icon,hover 之后提示一些信息\n * 1. title为string类型有效\n * 2. hoverArea 默认值:icon\n * ```\n */\n tooltip?: string | { content: string; icon?: ReactElement; hoverArea?: 'icon' | 'all' };\n dataIndex?: keyof T | (string & {});\n /**\n * 会在 title 之后展示一个 icon\n * ```\n * 1. title为string类型有效\n * 2. 可为icon添加提示效果\n * 3. 可为icon添加点击事件\n * ```\n */\n tipsWrapperProps?: string | TipsWrapperProps;\n};\n\nexport type EasyTableTableProps<T> = Omit<\n TableProps<TAny>,\n 'dataSource' | 'loading' | 'rowKey' | 'columns'\n> & {\n children?: ReactElement | ReactElement[];\n /**\n * 表格行 key 的取值,\n * ```\n * 如果 rowKey 为string类型\n * 1. 组件会判断表格列表数据第一条是否存在当前rowKey对象的数据,如果没有组件内部会动态添加唯一值\n * 2. 基于上一条的逻辑,如果表格数据没有唯一值,可指定 rowKey 值为table数据中不存在的字段名,例如:rowKey=\"_uid\"\n * 3. 如果触发上述逻辑,表格数据中会多出rowKey对应的键值对数据\n * ```\n */\n rowKey: TableProps<TAny>['rowKey'];\n /** table Form 外层 SimpleLayout className */\n tableWrapperStyle?: CSSProperties;\n /** table Form 外层 SimpleLayout className */\n tableWrapperClassName?: string;\n columns: TEasyTableTableColumn<T>[];\n};\n\n/**\n * 表格渲染\n * @param props\n * ```\n * 1. 继承了 TableProps 可设置antd table功能\n * 2. 分页功能已内置处理,不调用 onChange\n * ```\n */\nexport const EasyTableTable = <T extends TPlainObject>(props: EasyTableTableProps<T>) => {\n const ctx = useContext(EasyTableContext);\n const { children, rowKey, pagination, ...otherProps } = props;\n\n const {\n modelKey,\n fieldNames,\n onRequest,\n tableList,\n initRequest,\n pageSize,\n tableTotal,\n loading,\n initialValues,\n paginationFixed,\n onSetPaginationStatus,\n } = ctx;\n const [state, actions] = easyTableModel(modelKey).useStore();\n\n const tablePaginationData = useMemo(() => {\n if (paginationFixed || pagination === false) return false;\n return {\n showSizeChanger: true,\n current: state.queryCondition[fieldNames.pageNo] || 1,\n pageSize: state.queryCondition[fieldNames.pageSize] || pageSize,\n total: tableTotal,\n showTotal: (total) => `共 ${total} 条记录`,\n ...props.pagination,\n selectComponentClass: SmallSelect,\n };\n }, [\n fieldNames.pageNo,\n fieldNames.pageSize,\n pageSize,\n pagination,\n paginationFixed,\n props.pagination,\n state.queryCondition,\n tableTotal,\n ]);\n\n const onChangePage: TableProps<TAny>['onChange'] = (pagination, filters, sorter, extra) => {\n if (extra.action === 'paginate' && tablePaginationData) {\n onRequest({ [fieldNames.pageSize]: pagination.pageSize, [fieldNames.pageNo]: pagination.current });\n } else {\n props.onChange?.(pagination, filters, sorter, extra);\n }\n };\n\n const dataSource = useMemo(() => {\n if (tableList.length === 0) {\n return [];\n }\n if (typeof rowKey === 'string' && isUndefinedOrNull(tableList[0][rowKey])) {\n return tableList.map((item) => {\n item[rowKey] = getUuid();\n return item;\n });\n }\n return tableList;\n }, [tableList, rowKey]);\n\n fbaHooks.useEffectCustom(() => {\n const hasPagination = paginationFixed || tablePaginationData !== false;\n onSetPaginationStatus(hasPagination);\n if (initRequest !== false || !state.isInit) {\n if (hasPagination) {\n void onRequest({\n [fieldNames.pageNo]: 1,\n [fieldNames.pageSize]: pageSize,\n ...initialValues,\n ...state.queryCondition,\n });\n } else {\n void onRequest(initialValues);\n }\n } else {\n void actions.updateFilterCondition(initialValues);\n }\n void actions.updateInitStatus();\n }, []);\n\n const columns = useMemo(() => {\n return props.columns.map((item) => {\n const { tooltip, tipsWrapperProps, title, ...otherProps } = item;\n if (typeof title === 'string' && tipsWrapperProps) {\n if (typeof tipsWrapperProps === 'string') {\n return {\n ...otherProps,\n title: (\n <TipsWrapper tipType=\"popover\" popoverProps={{ content: tipsWrapperProps }}>\n {title}\n </TipsWrapper>\n ),\n };\n }\n return {\n ...otherProps,\n title: <TipsWrapper {...tipsWrapperProps}>{title}</TipsWrapper>,\n };\n }\n if (typeof title === 'string' && !!tooltip) {\n return {\n ...otherProps,\n title: <TableTitleTooltip tooltip={tooltip} title={title}></TableTitleTooltip>,\n };\n }\n return item;\n });\n }, [props.columns]);\n\n return (\n <SimpleLayout\n className={classNames('easy-table-table', props.tableWrapperClassName)}\n style={props.tableWrapperStyle}\n >\n {children}\n {isMacEnv() ? (\n <Table\n size=\"small\"\n scroll={{ x: 'max-content' }}\n bordered\n {...otherProps}\n columns={columns}\n pagination={tablePaginationData}\n rowKey={rowKey}\n onChange={onChangePage}\n loading={loading}\n dataSource={dataSource}\n />\n ) : (\n <TableScrollbar>\n <Table\n size=\"small\"\n scroll={{ x: 'max-content' }}\n bordered\n {...otherProps}\n columns={columns}\n pagination={tablePaginationData}\n rowKey={rowKey}\n onChange={onChangePage}\n loading={loading}\n dataSource={dataSource}\n />\n </TableScrollbar>\n )}\n </SimpleLayout>\n );\n};\n","import { fbaUtils } from '../fba-utils';\nimport { EasyTable as EasyTableInner } from './easy-table';\nimport { EasyTableFilter } from './filter';\nimport { useEasyTable, useEasyTablRef } from './hooks';\nimport { EasyTableTable } from './table';\n\n/**\n * 对 查询条件+表格数据 进行深度封装,内置数据交互处理\n * ```\n * 1. 废弃modelKey参数\n * 2. 如果需要在路由跳转回退中缓存查询条件,设置cacheSwitch=true\n * 3. 需要获取查询条件、主动发起请求等可通过ref、useEasyTable操作\n * 4. 可通过属性 initRequest 设置初始化是否请求数据\n * 5. 可通过属性 fieldNames 来设置自定义变量,默认值为:list、total、pageNo、pageSize\n * 6. isFull=true,设置【在父节点高度下,上下铺满】(默认值:true)\n * 7. filterFixed=true,设置查询条件固定,不随滚动条滚动\n * 8. paginationFixed=true,可设置分页条件在底部固定,不随滚动条滚动\n * 9. foldKeys=string[],查询条件展开、收起,被收起数组内容为EasyTable.Filter 子节点key值\n * 10. windows环境下,会在EasyTable.Table外部包装一下 TableScrollbar,提示高windows下table左右滚动体验\n *\n * Demo https://fex.qa.tcshuke.com/docs/admin/main/crud/easy-table\n * ```\n */\nexport const EasyTable = fbaUtils.attachPropertiesToComponent(EasyTableInner, {\n /**\n * 过滤条件\n * @param props\n * @returns\n *\n *```\n *1. 用法1\n * -- 默认网格布局 规则:{ xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 }\n * <EasyTable.Filter>\n * <Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item>\n * </EasyTable.Filter>\n *\n * -- 自定义网格布局 使用 FormCol组件包装 Form.Item\n * <EasyTable.Filter>\n * <FormCol span={12}><Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item></FormCol>\n * </EasyTable.Filter>\n *\n * -- children 可为 function\n * <EasyTable.Filter>\n * {(form) => {\n * return <Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item>\n * }}\n * </EasyTable.Filter>\n *2. 用户2(自定义布局)\n * EasyTable.Filter设置 isPure = true,FormItem无布局规则\n *3. EasyTable.Filter中内置了 Form 标签,当children为函数时,可获取form实例\n *4. 默认布局下,可通过设置 filterOperate 设置操作按钮\n *5. Filter 子节点包含 hidden = true 会被忽略\n *6. 如果想隐藏【查询、重置】按钮中的某一个,可设置 queryButtonProps.hidden、resetButtonProps.hidden\n *```\n */\n Filter: EasyTableFilter,\n /**\n * 表格渲染\n * @param props\n * ```\n * 1. 继承了 TableProps 可设置antd table功能\n * 2. 分页功能已内置处理,不调用 onChange\n * ```\n */\n Table: EasyTableTable,\n\n /**\n * @deprecated 已过时 4.3.0版本移除,请使用 useEasyTable\n */\n useEasyTablRef: useEasyTablRef,\n\n /** 在 EasyTable子组件内才可使用 */\n useEasyTable: useEasyTable,\n});\n"],"names":["EasyTableContext","createContext","onRequest","noop","tableList","getEasyTableRef","defaultState","queryCondition","isInit","_EasyTableModel","actions","updateFilterCondition","params","state","_extends","resetFilterCondition","updateInitStatus","easyTableModels","easyTableModel","key","Model","EasyTable","forwardRef","props","ref","_props$initialPaginat","_useState","useState","dataSource","setDataSource","_useState2","total","setTotal","_useState3","loading","setLoading","easyTableId","_hooks","useId","undefined","modelKey","useMemo","cacheSwitch","location","pathname","_easyTableModel$useSt","useStore","pageSize","initialPaginationParams","initRequest","_useState4","paginationStatus","setPaginationStatus","respOriginalDataRef","useRef","fieldNames","list","pageNo","_Form$useForm","Form","useForm","form","onInnerRequest","useCallbackRef","Promise","$return","$error","allState","_props$serviceConfig","requestParamsAdapter","requestResultAdapter","paramsNew","respData","respDataNew","respList","$Try_1_Post","$boundEx","$Try_1_Catch","error","onRequestErrorHandle","message","resolve","then","$await_2","cloneState","serviceConfig","$await_3","current","onDataSourceChange","_isArray","clearQueryCondition","values","$await_4","resetFields","setFieldsValue","getPaginationData","_pageSize","_ref","onResetRequest","initialValues","$await_5","getRequestParams","getFieldsValue","getDataSource","onFilterDataSource","filterDataSource","onClearDataSource","onUpdateDataSource","dataList","useImperativeHandle","onSetPaginationStatus","status","onFormFinish","isFull","_isUndefined","className","_classNames","filterFixed","paginationFixed","paginationData","showSizeChanger","showTotal","pagination","onChange","page","_onInnerRequest","_props$pagination","wrapperClassName","isInline","children","_jsx","Provider","value","tableTotal","foldKeys","_jsxs","style","PaginationWrapper","size","EasyTableFilter","ctx","useContext","queryButtonProps","resetButtonProps","filterOperate","formClassName","defaultResetButtonTriggerRequest","filterWrapperStyle","filterWrapperClassName","rightOperateAreaAppendType","rightOperateAreaAppendTypeFt","childrens","isFragment","Children","toArray","openFold","setOpenFold","onReset","_extends2","$await_1","formRowChildren","defaultRightList","ButtonWrapper","type","htmlType","text","onClick","filter","Boolean","customFormOperateCol","customRightList","rightList","leftList","concat","length","changeFolditem","padding","_UpOutlined","marginLeft","fontSize","_DownOutlined","push","map","item","index","find","keyItem","FormGrid","Col","OperateCol","SimpleLayout","autoComplete","onFinish","isPure","Row","gutter","gridSize","formGridSize","useEasyTable","useEasyTablRef","EasyTableTable","rowKey","otherProps","_objectWithoutPropertiesLoose","_excluded","tablePaginationData","selectComponentClass","SmallSelect","onChangePage","filters","sorter","extra","action","_onRequest","isUndefinedOrNull","getUuid","fbaHooks","useEffectCustom","hasPagination","columns","tooltip","tipsWrapperProps","title","_excluded2","TipsWrapper","tipType","popoverProps","content","TableTitleTooltip","tableWrapperClassName","tableWrapperStyle","isMacEnv","Table","scroll","x","bordered","TableScrollbar","fbaUtils","attachPropertiesToComponent","EasyTableInner","Filter"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/easy-table/context.ts","@flatbiz/antd/src/easy-table/model.ts","@flatbiz/antd/src/easy-table/easy-table.tsx","@flatbiz/antd/src/easy-table/filter.tsx","@flatbiz/antd/src/easy-table/hooks.ts","@flatbiz/antd/src/easy-table/table.tsx","@flatbiz/antd/src/easy-table/index.ts"],"sourcesContent":["import { noop, TPlainObject } from '@flatbiz/utils';\nimport { FormInstance } from 'antd';\nimport { createContext } from 'react';\nimport { EasyTableRefApi } from './type';\n\n// export const [useEasyTableCtx, EasyTableCtxProvider] = createCtx<{\n// modelKey: string;\n// onRequest: (params?: TPlainObject) => void;\n// tableList: TPlainObject[];\n// tableTotal: number;\n// loading?: boolean;\n// fieldNames: TPlainObject;\n// pageSize: number;\n// initRequest: boolean;\n// initialValues: TPlainObject;\n// onSetPaginationStatus: (status: boolean) => void;\n// paginationStatus: boolean;\n// onFormFinish?: (values?: TPlainObject) => void;\n// form: FormInstance;\n// getEasyTableRef: () => EasyTableRefApi;\n// paginationFixed: boolean;\n// foldKeys: string[];\n// }>();\n\nexport type EditableFieldContextContextApi = {\n modelKey: string;\n onRequest: (params?: TPlainObject) => void;\n tableList: TPlainObject[];\n tableTotal: number;\n loading?: boolean;\n fieldNames: TPlainObject;\n pageSize: number;\n initRequest: boolean;\n initialValues: TPlainObject;\n onSetPaginationStatus: (status: boolean) => void;\n paginationStatus: boolean;\n onFormFinish?: (values?: TPlainObject) => void;\n form: FormInstance;\n getEasyTableRef: () => EasyTableRefApi;\n paginationFixed: boolean;\n foldKeys: string[];\n};\n\nexport const EasyTableContext = createContext<EditableFieldContextContextApi>({\n onRequest: noop,\n tableList: [],\n getEasyTableRef: () => {\n //\n },\n} as unknown as EditableFieldContextContextApi);\n","import { API, ModelType } from '@dimjs/model';\nimport { Model } from '@dimjs/model-react';\nimport { TAny, TPlainObject } from '@flatbiz/utils';\n\nexport type ModelState = {\n queryCondition: TPlainObject;\n isInit: boolean;\n};\n\ntype ModelActionParams = {\n updateFilterCondition?: Partial<ModelState['queryCondition']>;\n resetFilterCondition?: TPlainObject;\n updateInitStatus: void;\n};\n\nconst defaultState: ModelState = {\n queryCondition: {},\n isInit: true,\n};\n\nconst _EasyTableModel: ModelType<ModelState, ModelActionParams> = {\n actions: {\n updateFilterCondition: (params) => {\n return (state) => {\n state.queryCondition = {\n ...state.queryCondition,\n ...params,\n };\n };\n },\n resetFilterCondition: (params) => {\n return (state) => {\n state.queryCondition = {\n ...defaultState.queryCondition,\n ...params,\n };\n };\n },\n updateInitStatus: () => {\n return (state) => {\n state.isInit = false;\n };\n },\n },\n state: defaultState,\n};\n\nconst easyTableModels: Record<string, API<ModelType<ModelState, ModelActionParams, TAny>>> = {};\n\n/**\n * ```\n * 使用方式\n * const [state, actions] = selectorWrapperModel('key值').useStore();\n * ```\n */\nexport const easyTableModel = (key: string) => {\n if (!easyTableModels[key]) {\n easyTableModels[key] = Model(_EasyTableModel);\n }\n return easyTableModels[key];\n};\n","import { isArray, isUndefined } from '@dimjs/lang';\nimport { cloneState } from '@dimjs/model';\nimport { classNames } from '@dimjs/utils';\nimport { TAny, TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Form, FormInstance, message, PaginationProps } from 'antd';\nimport {\n CSSProperties,\n forwardRef,\n ReactElement,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { PaginationWrapper } from '../pagination-wrapper';\nimport { EasyTableContext } from './context';\nimport { easyTableModel } from './model';\nimport './style.less';\nimport { EasyTableRefApi } from './type';\n\ntype EasyTableServiceConfig = {\n /** 接口配置 */\n onRequest: (params?: TPlainObject) => Promise<TPlainObject | TPlainObject[]>;\n /** 请求参数处理 */\n requestParamsAdapter?: (params: TPlainObject) => TPlainObject;\n /**\n * 接口相应数据处理\n * @param params\n * ```\n * 返回数据为对象,包含两个字段\n * 1. 表格列表数据 - Array\n * 2. 表格条数总数 - Number\n * 其中 字段key 命名会通过 fieldNames 进行转义\n * ```\n */\n requestResultAdapter?: (params: TAny) => TPlainObject;\n};\n\nexport type EasyTableProps = {\n className?: string;\n style?: CSSProperties;\n children: ReactElement | ReactElement[] | ((dataSource?: TAny) => ReactElement);\n /**\n * EasyTable唯一值,可用于缓存查询条件\n * @deprecated 已过时,如果需要缓存数据请设置 cacheSwitch 参数\n */\n modelKey?: string;\n /**\n * 缓存查询条件开关,默认false\n * ```\n * 是否缓存表格查询条件,在路由跳转回来时,不会丢失\n * ```\n */\n cacheSwitch?: boolean;\n /** 接口数据配置 */\n serviceConfig: EasyTableServiceConfig;\n /**\n * 1. 查询条件Form initialValues\n * 2. 接口其他参数,例如常量类型\n */\n initialValues?: TPlainObject;\n /**\n * 分页初始化参数,默认值: pageSize = 10\n * @deprecated 已过时 4.3.0版本移除,使用 pageSize 赋值\n */\n initialPaginationParams?: { pageSize?: number };\n /** 分页单页条数,默认值:10 */\n pageSize?: number;\n /** 字段映射 */\n fieldNames?: { list?: string; total?: string; pageNo?: string; pageSize?: string; uid?: string };\n /** 初始化是否请求,默认值:true */\n initRequest?: boolean;\n onDataSourceChange?: (dataSource: TAny) => void;\n /** 如果自定义查询按钮,可设置 Form onFinish */\n onFormFinish?: (values?: TPlainObject) => void;\n /** 在父节点高度下,上下铺满;默认值:true */\n isFull?: boolean;\n /** 查询条件固定,不随滚动条滚动 */\n filterFixed?: boolean;\n /** 分页区域固定,不随滚动条滚动 */\n paginationFixed?: boolean;\n /**\n * 1. 配合paginationFixed=true一起使用有效果\n * 2. 当使用Table内的pagination时,在EasyTable.Table中配置分页属性\n */\n pagination?: PaginationProps;\n /**\n * 查询条件展开、收起,被收起key数组;数组内容为EasyTable.Filter 子节点key值\n */\n foldKeys?: string[];\n /**\n * 自定义处理服务异常\n * @param error\n * @returns\n */\n onRequestErrorHandle?: (error) => void;\n /**\n * 是否inline模式\n * ```\n * 1. 缩短 EasyTable.Filter 与 EasyTable.Table 之间的距离\n * ```\n */\n isInline?: boolean;\n /** Form 实例 */\n form?: FormInstance;\n};\n\nexport const EasyTable = forwardRef<EasyTableRefApi, EasyTableProps>((props, ref) => {\n const [dataSource, setDataSource] = useState<TPlainObject[]>([]);\n const [total, setTotal] = useState<number>(0);\n const [loading, setLoading] = useState<boolean>(false);\n const easyTableId = hooks.useId(undefined, 'easy-table-key');\n\n const modelKey = useMemo(() => {\n return props.cacheSwitch ? location.pathname : easyTableId;\n }, [easyTableId, props.cacheSwitch]);\n\n const [state, actions] = easyTableModel(modelKey).useStore();\n const pageSize = props.pageSize || props.initialPaginationParams?.pageSize || 10;\n const initRequest = props.initRequest === undefined ? true : props.initRequest;\n const [paginationStatus, setPaginationStatus] = useState(false);\n const respOriginalDataRef = useRef<TAny>();\n\n const fieldNames = {\n list: 'list',\n total: 'total',\n pageNo: 'pageNo',\n pageSize: 'pageSize',\n ...props.fieldNames,\n };\n\n const [form] = Form.useForm(props.form);\n\n const onInnerRequest = hooks.useCallbackRef(async (params) => {\n try {\n setLoading(true);\n const allState = await actions.updateFilterCondition(params);\n const queryCondition = cloneState(allState.queryCondition || {});\n const { requestParamsAdapter, onRequest, requestResultAdapter } = props.serviceConfig;\n const paramsNew = requestParamsAdapter ? requestParamsAdapter(queryCondition) : queryCondition;\n const respData = (await onRequest(paramsNew)) || {};\n respOriginalDataRef.current = respData;\n props.onDataSourceChange?.(respData);\n const respDataNew = requestResultAdapter ? requestResultAdapter(respData) : respData;\n const respList = respDataNew[fieldNames.list];\n setDataSource(isArray(respList) ? respList : []);\n setTotal(respDataNew[fieldNames.total]);\n setLoading(false);\n } catch (error) {\n setLoading(false);\n if (props.onRequestErrorHandle) {\n props.onRequestErrorHandle(error);\n } else {\n void message.error(error.message);\n }\n }\n });\n\n const clearQueryCondition = hooks.useCallbackRef(async (values?: TPlainObject) => {\n await actions.resetFilterCondition();\n form.resetFields();\n if (values) {\n void actions.updateFilterCondition(values);\n form.setFieldsValue(values);\n }\n });\n\n const getPaginationData = (pageNo: number, _pageSize: number) => {\n if (paginationStatus) {\n return {\n [fieldNames.pageNo]: pageNo,\n [fieldNames.pageSize]: _pageSize || pageSize,\n };\n } else {\n return {};\n }\n };\n\n const onResetRequest = hooks.useCallbackRef(async (values?: TPlainObject) => {\n const params = {\n ...getPaginationData(1, state.queryCondition[fieldNames.pageSize]),\n ...props.initialValues,\n ...values,\n };\n await actions.resetFilterCondition(params);\n form.resetFields();\n if (values) {\n form.setFieldsValue(values);\n }\n void onInnerRequest(params);\n });\n\n const getRequestParams = hooks.useCallbackRef(() => {\n return {\n ...state.queryCondition,\n ...form.getFieldsValue(),\n };\n });\n\n const getEasyTableRef = () => {\n return {\n /**\n * 参数\n * 1. 不用添加已存在的搜索条件\n * 2. 此处可重新\n */\n onRequest: onInnerRequest,\n clearQueryCondition,\n getRequestParams,\n onResetRequest,\n form,\n getDataSource: () => {\n return respOriginalDataRef.current;\n },\n onFilterDataSource: (filterDataSource) => {\n setDataSource(filterDataSource);\n },\n onClearDataSource: () => {\n setTotal(0);\n setDataSource([]);\n },\n onUpdateDataSource: (dataList) => {\n setDataSource(dataList);\n respOriginalDataRef.current = dataList;\n props.onDataSourceChange?.(dataList);\n },\n };\n };\n\n useImperativeHandle(ref, () => {\n return getEasyTableRef();\n });\n\n const onSetPaginationStatus = (status: boolean) => {\n setPaginationStatus(status);\n };\n\n const onFormFinish = () => {\n const values = form.getFieldsValue();\n if (props.onFormFinish) {\n props.onFormFinish({ ...values, ...getPaginationData(1, state.queryCondition[fieldNames.pageSize]) });\n } else {\n void onInnerRequest({\n ...values,\n ...getPaginationData(1, state.queryCondition[fieldNames.pageSize]),\n });\n }\n };\n const isFull = isUndefined(props.isFull) ? true : props.isFull;\n const className = classNames(\n 'fba-easy-table',\n {\n 'fba-easy-table-full': isFull,\n 'fba-easy-table-filter-fixed': props.filterFixed,\n 'fba-easy-table-pagination-fixed': props.paginationFixed,\n },\n props.className,\n );\n\n const paginationData = useMemo(() => {\n return {\n showSizeChanger: true,\n current: state.queryCondition[fieldNames.pageNo] || 1,\n pageSize: state.queryCondition[fieldNames.pageSize] || pageSize,\n total: total,\n showTotal: (total) => `共 ${total} 条记录`,\n ...props.pagination,\n };\n }, [fieldNames.pageNo, fieldNames.pageSize, pageSize, props.pagination, state.queryCondition, total]);\n\n const onChange = hooks.useCallbackRef((page: number, pageSize: number) => {\n void onInnerRequest({ [fieldNames.pageSize]: pageSize, [fieldNames.pageNo]: page });\n props.pagination?.onChange?.(page, pageSize);\n });\n\n const wrapperClassName = classNames(\n 'fba-easy-table-wrapper',\n {\n 'fba-easy-table-wrapper-inline': props.isInline,\n },\n props.className,\n );\n\n const children =\n typeof props.children === 'function' ? props.children(respOriginalDataRef.current) : props.children;\n\n return (\n <EasyTableContext.Provider\n value={{\n getEasyTableRef,\n modelKey,\n onRequest: onInnerRequest,\n tableList: dataSource,\n tableTotal: total,\n loading,\n fieldNames,\n pageSize,\n initRequest,\n initialValues: props.initialValues || {},\n onSetPaginationStatus,\n paginationStatus,\n onFormFinish,\n form,\n paginationFixed: props.paginationFixed || false,\n foldKeys: props.foldKeys || [],\n }}\n >\n {props.paginationFixed ? (\n <div className={wrapperClassName} style={props.style}>\n <div className={className}>{children}</div>\n {total > 0 && (\n <div className=\"fba-easy-table-pagination\">\n <PaginationWrapper size=\"small\" {...paginationData} onChange={onChange} />\n </div>\n )}\n </div>\n ) : (\n <div className={className} style={props.style}>\n {children}\n </div>\n )}\n </EasyTableContext.Provider>\n );\n});\n","import { DownOutlined, UpOutlined } from '@ant-design/icons';\nimport { isUndefined } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\nimport { TAny } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Form, FormInstance } from 'antd';\nimport { Children, CSSProperties, ReactElement, useContext, useMemo, useState } from 'react';\nimport { isFragment } from 'react-is';\nimport { ButtonWrapper, ButtonWrapperProps } from '../button-wrapper';\nimport { FormGrid } from '../form-grid';\nimport { FormOperateColProps } from '../form-grid/form-operate-col';\nimport { FormRowProps } from '../form-grid/form-row';\nimport { SimpleLayout } from '../simple-layout';\nimport { EasyTableContext } from './context';\nimport { easyTableModel } from './model';\n\nexport type EasyTableFilterProps = {\n children: ReactElement | ReactElement[] | ((form: FormInstance) => ReactElement);\n /** isPure = true时无效 */\n filterOperate?: (form: FormInstance) => FormOperateColProps;\n /** 是否为纯净模式(查询条件布局是否自定义), */\n isPure?: boolean;\n /** 查询按钮配置 */\n queryButtonProps?: Omit<ButtonWrapperProps, 'onClick'> & { text?: string };\n /** 重置按钮配置 */\n resetButtonProps?: Omit<ButtonWrapperProps, 'onClick'> & { text?: string };\n /**\n * 网格布局设置\n * default = { xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 };\n * small = { xs: 24, sm: 8, md: 8, lg: 6, xl: 6, xxl: 6 };\n */\n formGridSize?: FormRowProps['gridSize'];\n formClassName?: string;\n formStyle?: CSSProperties;\n /** filter Form 外层 SimpleLayout style */\n filterWrapperStyle?: CSSProperties;\n /** filter Form 外层 SimpleLayout className */\n filterWrapperClassName?: string;\n /**\n * 自定义 filterOperate.rightList 后 默认【查询、重置】按钮处理逻辑\n * 1. cover:覆盖内部查询重置按钮(默认值)\n * 2. beforeAppend:添加到【查询重置】按钮前面\n * 3. afterAppend:添加到【查询重置】按钮后面\n *\n * 如果想隐藏【查询、重置】按钮中的某一个,可设置 queryButtonProps.hidden、resetButtonProps.hidden\n */\n rightOperateAreaAppendType?: 'cover' | 'beforeAppend' | 'afterAppend';\n /** 默认重启按钮触发请求,默认值:true */\n defaultResetButtonTriggerRequest?: boolean;\n};\n\n/**\n * 过滤条件\n *\n *```\n * 1. 用法1\n * -- 默认网格布局 规则:{ xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 }\n * <EasyTableFilter>\n * <Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item>\n * </EasyTableFilter>\n *\n * -- 自定义网格布局 使用 FormCol组件包装 Form.Item\n * <EasyTableFilter>\n * <FormCol span={12}><Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item></FormCol>\n * </EasyTableFilter>\n *\n * -- children 可为 function\n * <EasyTableFilter>\n * {(form) => {\n * return <Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item>\n * }}\n * </EasyTableFilter>\n *\n * 2. 用户2(自定义布局)\n * EasyTableFilter设置 isPure = true,FormItem无布局规则\n * 3. EasyTableFilter中内置了 Form 标签,当children为函数时,可获取form实例\n * 4. 默认布局下,可通过设置 filterOperate 设置操作按钮\n * 5. Filter 子节点包含 hidden = true 会被忽略\n * 6. 如果想隐藏【查询、重置】按钮中的某一个,可设置 queryButtonProps.hidden、resetButtonProps.hidden\n * 7. 通过设置 defaultResetButtonTriggerRequest,可在右侧按钮区域新增自定义按钮\n *```\n */\nexport const EasyTableFilter = (props: EasyTableFilterProps) => {\n const ctx = useContext(EasyTableContext);\n const {\n queryButtonProps,\n resetButtonProps,\n filterOperate,\n formClassName,\n defaultResetButtonTriggerRequest,\n filterWrapperStyle,\n filterWrapperClassName,\n rightOperateAreaAppendType,\n } = props;\n const {\n modelKey,\n foldKeys,\n fieldNames,\n onRequest,\n pageSize,\n paginationStatus,\n initialValues,\n form,\n onFormFinish,\n } = ctx;\n const children = typeof props.children === 'function' ? props.children(form) : props.children;\n\n const rightOperateAreaAppendTypeFt = rightOperateAreaAppendType || 'cover';\n const childrens = useMemo(() => {\n if (isFragment(children)) {\n return Children.toArray((children as ReactElement).props.children) as ReactElement[];\n } else {\n return Children.toArray(children) as ReactElement[];\n }\n }, [children]);\n\n const [openFold, setOpenFold] = useState(false);\n\n const [state, actions] = easyTableModel(modelKey).useStore();\n\n const onReset = hooks.useCallbackRef(async () => {\n await actions.resetFilterCondition();\n form.resetFields();\n if (isUndefined(defaultResetButtonTriggerRequest) || defaultResetButtonTriggerRequest) {\n if (paginationStatus) {\n onRequest({\n [fieldNames.pageNo]: 1,\n [fieldNames.pageSize]: pageSize,\n ...initialValues,\n });\n } else {\n onRequest(initialValues);\n }\n }\n });\n\n const formRowChildren = useMemo(() => {\n const defaultRightList = [\n <ButtonWrapper key=\"1\" type=\"primary\" htmlType=\"submit\" {...queryButtonProps}>\n {queryButtonProps?.text || '查询'}\n </ButtonWrapper>,\n <ButtonWrapper key=\"2\" onClick={onReset} {...resetButtonProps}>\n {resetButtonProps?.text || '重置'}\n </ButtonWrapper>,\n ].filter(Boolean);\n const customFormOperateCol = filterOperate?.(form);\n const customRightList = customFormOperateCol?.rightList;\n const leftList: TAny[] = customFormOperateCol?.leftList || [];\n\n let rightList: TAny[] = defaultRightList;\n if (customRightList) {\n if (rightOperateAreaAppendTypeFt === 'afterAppend') {\n rightList = [...defaultRightList, ...customRightList];\n } else if (rightOperateAreaAppendTypeFt === 'beforeAppend') {\n rightList = [...customRightList, ...defaultRightList];\n } else {\n rightList = customRightList;\n }\n }\n\n if (foldKeys.length > 0) {\n const changeFolditem = (\n <ButtonWrapper\n type=\"link\"\n key=\"fold-trigger\"\n style={{ padding: '0' }}\n onClick={() => {\n setOpenFold(!openFold);\n }}\n >\n {openFold ? (\n <span>\n 收起\n <UpOutlined style={{ marginLeft: 3, fontSize: 12 }} />\n </span>\n ) : (\n <span>\n 展开\n <DownOutlined style={{ marginLeft: 3, fontSize: 12 }} />\n </span>\n )}\n </ButtonWrapper>\n );\n\n if (rightList.length > 0 || leftList.length === 0) {\n rightList.push(changeFolditem);\n } else if (leftList?.length > 0) {\n leftList.push(changeFolditem);\n }\n }\n\n return childrens\n .map((item, index) => {\n if (!openFold && foldKeys.find((keyItem) => `.$${keyItem}` === item.key)) return null;\n if (item.props['hidden']) return null;\n if (item.type['domTypeName'] === 'FormCol') return item;\n return <FormGrid.Col key={index}>{item}</FormGrid.Col>;\n })\n .filter(Boolean)\n .concat(\n <FormGrid.OperateCol key={999} {...customFormOperateCol} leftList={leftList} rightList={rightList} />,\n );\n }, [\n childrens,\n filterOperate,\n foldKeys,\n form,\n onReset,\n openFold,\n queryButtonProps,\n resetButtonProps,\n rightOperateAreaAppendTypeFt,\n ]);\n\n return (\n <SimpleLayout\n className={classNames('easy-table-filter', filterWrapperClassName)}\n style={filterWrapperStyle}\n >\n <Form\n form={form}\n autoComplete=\"off\"\n onFinish={onFormFinish}\n initialValues={{\n ...initialValues,\n ...state.queryCondition,\n }}\n className={formClassName}\n style={props.formStyle}\n >\n {props.isPure ? (\n children\n ) : (\n <FormGrid.Row gutter={[15, 0]} gridSize={props.formGridSize}>\n {formRowChildren}\n </FormGrid.Row>\n )}\n </Form>\n </SimpleLayout>\n );\n};\n","import { useContext } from 'react';\nimport { EasyTableContext } from './context';\n\n/**\n * 在 EasyTable子组件内才可使用\n * @returns\n */\nexport const useEasyTable = () => {\n const ctx = useContext(EasyTableContext);\n return ctx.getEasyTableRef();\n};\n\n/**\n *\n * @deprecated 已过时 @4.3.0版本移除,请使用 useEasyTable\n * @returns\n */\nexport const useEasyTablRef = () => {\n const ctx = useContext(EasyTableContext);\n return {\n current: ctx.getEasyTableRef(),\n };\n};\n","import { classNames } from '@dimjs/utils';\nimport { getUuid, isMacEnv, isUndefinedOrNull, TAny, TPlainObject } from '@flatbiz/utils';\nimport { Table, TableProps } from 'antd';\nimport { ColumnsType } from 'antd/lib/table';\nimport { CSSProperties, ReactElement, useContext, useMemo } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport { SmallSelect } from '../pagination-wrapper/select';\nimport { SimpleLayout } from '../simple-layout';\nimport { TableScrollbar } from '../table-scrollbar';\nimport { TableTitleTooltip } from '../table-title-tooltip';\nimport { TipsWrapper } from '../tips-wrapper';\nimport { TipsWrapperProps } from '../tips-wrapper/tips-wrapper';\nimport { EasyTableContext } from './context';\nimport { easyTableModel } from './model';\n\nexport type TEasyTableTableColumn<T> = ColumnsType<T>[0] & {\n /**\n * @description 请使用 tipsWrapperProps 属性配置\n * ```\n * 会在 title 之后展示一个 icon,hover 之后提示一些信息\n * 1. title为string类型有效\n * 2. hoverArea 默认值:icon\n * ```\n */\n tooltip?: string | { content: string; icon?: ReactElement; hoverArea?: 'icon' | 'all' };\n dataIndex?: keyof T | (string & {});\n /**\n * 会在 title 之后展示一个 icon\n * ```\n * 1. title为string类型有效\n * 2. 可为icon添加提示效果\n * 3. 可为icon添加点击事件\n * ```\n */\n tipsWrapperProps?: string | TipsWrapperProps;\n};\n\nexport type EasyTableTableProps<T> = Omit<\n TableProps<TAny>,\n 'dataSource' | 'loading' | 'rowKey' | 'columns'\n> & {\n children?: ReactElement | ReactElement[];\n /**\n * 表格行 key 的取值,\n * ```\n * 如果 rowKey 为string类型\n * 1. 组件会判断表格列表数据第一条是否存在当前rowKey对象的数据,如果没有组件内部会动态添加唯一值\n * 2. 基于上一条的逻辑,如果表格数据没有唯一值,可指定 rowKey 值为table数据中不存在的字段名,例如:rowKey=\"_uid\"\n * 3. 如果触发上述逻辑,表格数据中会多出rowKey对应的键值对数据\n * ```\n */\n rowKey: TableProps<TAny>['rowKey'];\n /** table Form 外层 SimpleLayout className */\n tableWrapperStyle?: CSSProperties;\n /** table Form 外层 SimpleLayout className */\n tableWrapperClassName?: string;\n columns: TEasyTableTableColumn<T>[];\n};\n\n/**\n * 表格渲染\n * @param props\n * ```\n * 1. 继承了 TableProps 可设置antd table功能\n * 2. 分页功能已内置处理,不调用 onChange\n * ```\n */\nexport const EasyTableTable = <T extends TPlainObject>(props: EasyTableTableProps<T>) => {\n const ctx = useContext(EasyTableContext);\n const { children, rowKey, pagination, ...otherProps } = props;\n\n const {\n modelKey,\n fieldNames,\n onRequest,\n tableList,\n initRequest,\n pageSize,\n tableTotal,\n loading,\n initialValues,\n paginationFixed,\n onSetPaginationStatus,\n } = ctx;\n const [state, actions] = easyTableModel(modelKey).useStore();\n\n const tablePaginationData = useMemo(() => {\n if (paginationFixed || pagination === false) return false;\n return {\n showSizeChanger: true,\n current: state.queryCondition[fieldNames.pageNo] || 1,\n pageSize: state.queryCondition[fieldNames.pageSize] || pageSize,\n total: tableTotal,\n showTotal: (total) => `共 ${total} 条记录`,\n ...props.pagination,\n selectComponentClass: SmallSelect,\n };\n }, [\n fieldNames.pageNo,\n fieldNames.pageSize,\n pageSize,\n pagination,\n paginationFixed,\n props.pagination,\n state.queryCondition,\n tableTotal,\n ]);\n\n const onChangePage: TableProps<TAny>['onChange'] = (pagination, filters, sorter, extra) => {\n if (extra.action === 'paginate' && tablePaginationData) {\n onRequest({ [fieldNames.pageSize]: pagination.pageSize, [fieldNames.pageNo]: pagination.current });\n } else {\n props.onChange?.(pagination, filters, sorter, extra);\n }\n };\n\n const dataSource = useMemo(() => {\n if (tableList.length === 0) {\n return [];\n }\n if (typeof rowKey === 'string' && isUndefinedOrNull(tableList[0][rowKey])) {\n return tableList.map((item) => {\n item[rowKey] = getUuid();\n return item;\n });\n }\n return tableList;\n }, [tableList, rowKey]);\n\n fbaHooks.useEffectCustom(() => {\n const hasPagination = paginationFixed || tablePaginationData !== false;\n onSetPaginationStatus(hasPagination);\n if (initRequest !== false || !state.isInit) {\n if (hasPagination) {\n void onRequest({\n [fieldNames.pageNo]: 1,\n [fieldNames.pageSize]: pageSize,\n ...initialValues,\n ...state.queryCondition,\n });\n } else {\n void onRequest(initialValues);\n }\n } else {\n void actions.updateFilterCondition(initialValues);\n }\n void actions.updateInitStatus();\n }, []);\n\n const columns = useMemo(() => {\n return props.columns.map((item) => {\n const { tooltip, tipsWrapperProps, title, ...otherProps } = item;\n if (typeof title === 'string' && tipsWrapperProps) {\n if (typeof tipsWrapperProps === 'string') {\n return {\n ...otherProps,\n title: (\n <TipsWrapper tipType=\"popover\" popoverProps={{ content: tipsWrapperProps }}>\n {title}\n </TipsWrapper>\n ),\n };\n }\n return {\n ...otherProps,\n title: <TipsWrapper {...tipsWrapperProps}>{title}</TipsWrapper>,\n };\n }\n if (typeof title === 'string' && !!tooltip) {\n return {\n ...otherProps,\n title: <TableTitleTooltip tooltip={tooltip} title={title}></TableTitleTooltip>,\n };\n }\n return item;\n });\n }, [props.columns]);\n\n return (\n <SimpleLayout\n className={classNames('easy-table-table', props.tableWrapperClassName)}\n style={props.tableWrapperStyle}\n >\n {children}\n {isMacEnv() ? (\n <Table\n size=\"small\"\n scroll={{ x: 'max-content' }}\n bordered\n {...otherProps}\n columns={columns}\n pagination={tablePaginationData}\n rowKey={rowKey}\n onChange={onChangePage}\n loading={loading}\n dataSource={dataSource}\n />\n ) : (\n <TableScrollbar>\n <Table\n size=\"small\"\n scroll={{ x: 'max-content' }}\n bordered\n {...otherProps}\n columns={columns}\n pagination={tablePaginationData}\n rowKey={rowKey}\n onChange={onChangePage}\n loading={loading}\n dataSource={dataSource}\n />\n </TableScrollbar>\n )}\n </SimpleLayout>\n );\n};\n","import { fbaUtils } from '../fba-utils';\nimport { EasyTable as EasyTableInner } from './easy-table';\nimport { EasyTableFilter } from './filter';\nimport { useEasyTable, useEasyTablRef } from './hooks';\nimport { EasyTableTable } from './table';\n\n/**\n * 对 查询条件+表格数据 进行深度封装,内置数据交互处理\n * ```\n * 1. 废弃modelKey参数\n * 2. 如果需要在路由跳转回退中缓存查询条件,设置cacheSwitch=true\n * 3. 需要获取查询条件、主动发起请求等可通过ref、useEasyTable操作\n * 4. 可通过属性 initRequest 设置初始化是否请求数据\n * 5. 可通过属性 fieldNames 来设置自定义变量,默认值为:list、total、pageNo、pageSize\n * 6. isFull=true,设置【在父节点高度下,上下铺满】(默认值:true)\n * 7. filterFixed=true,设置查询条件固定,不随滚动条滚动\n * 8. paginationFixed=true,可设置分页条件在底部固定,不随滚动条滚动\n * 9. foldKeys=string[],查询条件展开、收起,被收起数组内容为EasyTable.Filter 子节点key值\n * 10. windows环境下,会在EasyTable.Table外部包装一下 TableScrollbar,提示高windows下table左右滚动体验\n *\n * Demo https://fex.qa.tcshuke.com/docs/admin/main/crud/easy-table\n * ```\n */\nexport const EasyTable = fbaUtils.attachPropertiesToComponent(EasyTableInner, {\n /**\n * 过滤条件\n * @param props\n * @returns\n *\n *```\n *1. 用法1\n * -- 默认网格布局 规则:{ xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 }\n * <EasyTable.Filter>\n * <Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item>\n * </EasyTable.Filter>\n *\n * -- 自定义网格布局 使用 FormCol组件包装 Form.Item\n * <EasyTable.Filter>\n * <FormCol span={12}><Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item></FormCol>\n * </EasyTable.Filter>\n *\n * -- children 可为 function\n * <EasyTable.Filter>\n * {(form) => {\n * return <Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item>\n * }}\n * </EasyTable.Filter>\n *2. 用户2(自定义布局)\n * EasyTable.Filter设置 isPure = true,FormItem无布局规则\n *3. EasyTable.Filter中内置了 Form 标签,当children为函数时,可获取form实例\n *4. 默认布局下,可通过设置 filterOperate 设置操作按钮\n *5. Filter 子节点包含 hidden = true 会被忽略\n *6. 如果想隐藏【查询、重置】按钮中的某一个,可设置 queryButtonProps.hidden、resetButtonProps.hidden\n *```\n */\n Filter: EasyTableFilter,\n /**\n * 表格渲染\n * @param props\n * ```\n * 1. 继承了 TableProps 可设置antd table功能\n * 2. 分页功能已内置处理,不调用 onChange\n * ```\n */\n Table: EasyTableTable,\n\n /**\n * @deprecated 已过时 4.3.0版本移除,请使用 useEasyTable\n */\n useEasyTablRef: useEasyTablRef,\n\n /** 在 EasyTable子组件内才可使用 */\n useEasyTable: useEasyTable,\n});\n"],"names":["EasyTableContext","createContext","onRequest","noop","tableList","getEasyTableRef","defaultState","queryCondition","isInit","_EasyTableModel","actions","updateFilterCondition","params","state","_extends","resetFilterCondition","updateInitStatus","easyTableModels","easyTableModel","key","Model","EasyTable","forwardRef","props","ref","_props$initialPaginat","_useState","useState","dataSource","setDataSource","_useState2","total","setTotal","_useState3","loading","setLoading","easyTableId","_hooks","useId","undefined","modelKey","useMemo","cacheSwitch","location","pathname","_easyTableModel$useSt","useStore","pageSize","initialPaginationParams","initRequest","_useState4","paginationStatus","setPaginationStatus","respOriginalDataRef","useRef","fieldNames","list","pageNo","_Form$useForm","Form","useForm","form","onInnerRequest","useCallbackRef","Promise","$return","$error","allState","_props$serviceConfig","requestParamsAdapter","requestResultAdapter","paramsNew","respData","respDataNew","respList","$Try_1_Post","$boundEx","$Try_1_Catch","error","onRequestErrorHandle","message","resolve","then","$await_2","cloneState","serviceConfig","$await_3","current","onDataSourceChange","_isArray","clearQueryCondition","values","$await_4","resetFields","setFieldsValue","getPaginationData","_pageSize","_ref","onResetRequest","initialValues","$await_5","getRequestParams","getFieldsValue","getDataSource","onFilterDataSource","filterDataSource","onClearDataSource","onUpdateDataSource","dataList","useImperativeHandle","onSetPaginationStatus","status","onFormFinish","isFull","_isUndefined","className","_classNames","filterFixed","paginationFixed","paginationData","showSizeChanger","showTotal","pagination","onChange","page","_onInnerRequest","_props$pagination","wrapperClassName","isInline","children","_jsx","Provider","value","tableTotal","foldKeys","_jsxs","style","PaginationWrapper","size","EasyTableFilter","ctx","useContext","queryButtonProps","resetButtonProps","filterOperate","formClassName","defaultResetButtonTriggerRequest","filterWrapperStyle","filterWrapperClassName","rightOperateAreaAppendType","rightOperateAreaAppendTypeFt","childrens","isFragment","Children","toArray","openFold","setOpenFold","onReset","_extends2","$await_1","formRowChildren","defaultRightList","ButtonWrapper","type","htmlType","text","onClick","filter","Boolean","customFormOperateCol","customRightList","rightList","leftList","concat","length","changeFolditem","padding","_UpOutlined","marginLeft","fontSize","_DownOutlined","push","map","item","index","find","keyItem","FormGrid","Col","OperateCol","SimpleLayout","autoComplete","onFinish","formStyle","isPure","Row","gutter","gridSize","formGridSize","useEasyTable","useEasyTablRef","EasyTableTable","rowKey","otherProps","_objectWithoutPropertiesLoose","_excluded","tablePaginationData","selectComponentClass","SmallSelect","onChangePage","filters","sorter","extra","action","_onRequest","isUndefinedOrNull","getUuid","fbaHooks","useEffectCustom","hasPagination","columns","tooltip","tipsWrapperProps","title","_excluded2","TipsWrapper","tipType","popoverProps","content","TableTitleTooltip","tableWrapperClassName","tableWrapperStyle","isMacEnv","Table","scroll","x","bordered","TableScrollbar","fbaUtils","attachPropertiesToComponent","EasyTableInner","Filter"],"mappings":"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"}
|
package/esm/flex-layout/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* eslint-disable */
|
|
2
2
|
import './index.css';
|
|
3
3
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
4
|
-
import{_ as r}from"../_rollupPluginBabelHelpers-fc015ef2.js";import{classNames as l}from"@dimjs/utils/cjs/class-names";import{toArray as e}from"@flatbiz/utils";import{Children as i,cloneElement as t}from"react";import{jsx as a}from"react/jsx-runtime";var o=function o(
|
|
4
|
+
import{_ as r}from"../_rollupPluginBabelHelpers-fc015ef2.js";import{classNames as l}from"@dimjs/utils/cjs/class-names";import{toArray as e}from"@flatbiz/utils";import{Children as i,cloneElement as t}from"react";import{jsx as a}from"react/jsx-runtime";var o=function o(n){var s=i.toArray(n.children);var m=n.direction||"vertical";var c=n.gap?n.gap:0;var f=e(n.fullIndex);return a("div",{className:l("v-flex-layout","v-flex-"+m,n.className),style:n.style,onClick:n.onClick,children:s.map((function(l,e){var i;var a=((i=l.props)==null?void 0:i.style)||{};var o=f.includes(e)?r({flex:1},a):r({flexShrink:0},a);if(e<s.length-1&&c>0){if(m==="horizontal"){o.marginRight=c}else{o.marginBottom=c}}return t(l,{style:o,key:e})}))})};export{o as FlexLayout};
|
|
5
5
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/flex-layout/flex-layout.tsx"],"sourcesContent":["import { classNames } from '@dimjs/utils';\nimport { toArray } from '@flatbiz/utils';\nimport { Children, cloneElement, CSSProperties, ReactElement, ReactNode } from 'react';\nimport './style.less';\n\nexport type FlexLayoutProps = {\n className?: string;\n fullIndex?: number | number[];\n direction?: 'vertical' | 'horizontal';\n onClick?: () => void;\n style?: CSSProperties;\n gap?: number;\n children?: ReactNode | null | Array<ReactNode | null>;\n};\n/**\n * flex布局\n * 1. direction:默认值vertical\n * 2. gap间隙距离\n * 3. fullIndex:指定children数组索引值对象flex=1\n * 4. 为children添加key属性\n * @param props\n * @returns\n */\nexport const FlexLayout = (props: FlexLayoutProps) => {\n const childrens = Children.toArray(props.children) as ReactElement[];\n const direction = props.direction || 'vertical';\n const gap = props.gap ? props.gap : 0;\n const fullIndexList = toArray<number>(props.fullIndex);\n return (\n <div\n className={classNames('v-flex-layout', `v-flex-${direction}`, props.className)}\n style={props.style}\n onClick={props.onClick}\n >\n {childrens.map((children, index) => {\n const childrenStyle = children.props?.style || {};\n const style = fullIndexList.includes(index)
|
|
1
|
+
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/flex-layout/flex-layout.tsx"],"sourcesContent":["import { classNames } from '@dimjs/utils';\nimport { toArray } from '@flatbiz/utils';\nimport { Children, cloneElement, CSSProperties, ReactElement, ReactNode } from 'react';\nimport './style.less';\n\nexport type FlexLayoutProps = {\n className?: string;\n fullIndex?: number | number[];\n direction?: 'vertical' | 'horizontal';\n onClick?: () => void;\n style?: CSSProperties;\n gap?: number;\n children?: ReactNode | null | Array<ReactNode | null>;\n};\n/**\n * flex布局\n * 1. direction:默认值vertical\n * 2. gap间隙距离\n * 3. fullIndex:指定children数组索引值对象flex=1\n * 4. 为children添加key属性\n * @param props\n * @returns\n */\nexport const FlexLayout = (props: FlexLayoutProps) => {\n const childrens = Children.toArray(props.children) as ReactElement[];\n const direction = props.direction || 'vertical';\n const gap = props.gap ? props.gap : 0;\n const fullIndexList = toArray<number>(props.fullIndex);\n\n return (\n <div\n className={classNames('v-flex-layout', `v-flex-${direction}`, props.className)}\n style={props.style}\n onClick={props.onClick}\n >\n {childrens.map((children, index) => {\n const childrenStyle = children.props?.style || {};\n const style = fullIndexList.includes(index)\n ? { flex: 1, ...childrenStyle }\n : { flexShrink: 0, ...childrenStyle };\n if (index < childrens.length - 1 && gap > 0) {\n if (direction === 'horizontal') {\n style.marginRight = gap;\n } else {\n style.marginBottom = gap;\n }\n }\n return cloneElement(children, { style, key: index });\n })}\n </div>\n );\n};\n"],"names":["FlexLayout","props","childrens","Children","toArray","children","direction","gap","fullIndexList","fullIndex","_jsx","className","_classNames","style","onClick","map","index","_children$props","childrenStyle","includes","_extends","flex","flexShrink","length","marginRight","marginBottom","cloneElement","key"],"mappings":";+PAuBaA,EAAa,SAAbA,EAAcC,GACzB,IAAMC,EAAYC,EAASC,QAAQH,EAAMI,UACzC,IAAMC,EAAYL,EAAMK,WAAa,WACrC,IAAMC,EAAMN,EAAMM,IAAMN,EAAMM,IAAM,EACpC,IAAMC,EAAgBJ,EAAgBH,EAAMQ,WAE5C,OACEC,EAAA,MAAA,CACEC,UAAWC,EAAW,gBAAe,UAAYN,EAAaL,EAAMU,WACpEE,MAAOZ,EAAMY,MACbC,QAASb,EAAMa,QAAQT,SAEtBH,EAAUa,KAAI,SAACV,EAAUW,GAAU,IAAAC,EAClC,IAAMC,IAAgBD,EAAAZ,EAASJ,QAAK,UAAA,EAAdgB,EAAgBJ,QAAS,CAAA,EAC/C,IAAMA,EAAQL,EAAcW,SAASH,GAAMI,EAAA,CACrCC,KAAM,GAAMH,GAAaE,EAAA,CACzBE,WAAY,GAAMJ,GACxB,GAAIF,EAAQd,EAAUqB,OAAS,GAAKhB,EAAM,EAAG,CAC3C,GAAID,IAAc,aAAc,CAC9BO,EAAMW,YAAcjB,CACtB,KAAO,CACLM,EAAMY,aAAelB,CACvB,CACF,CACA,OAAOmB,EAAarB,EAAU,CAAEQ,MAAAA,EAAOc,IAAKX,QAIpD"}
|
package/esm/index.js
CHANGED
|
@@ -32,6 +32,7 @@ import './dialog-loading/index.css';
|
|
|
32
32
|
import './drag-collapse/index.css';
|
|
33
33
|
import './drag-collapse-form-list/index.css';
|
|
34
34
|
import './drag-form-list/index.css';
|
|
35
|
+
import './drag-table/index.css';
|
|
35
36
|
import './drawer-wrapper/index.css';
|
|
36
37
|
import './dynamic-node/index.css';
|
|
37
38
|
import './easy-table/index.css';
|
|
@@ -95,5 +96,5 @@ import './tree-selector-wrapper/index.css';
|
|
|
95
96
|
import './tree-wrapper/index.css';
|
|
96
97
|
import './index.css';
|
|
97
98
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
98
|
-
export{AmountFenInput}from"./amount-fen-input/index.js";export{AmountFenInputFormItem}from"./amount-fen-input-form-item/index.js";export{AnchorSteps}from"./anchor-steps/index.js";export{ButtonOperate,ButtonOperateItemContent}from"./button-operate/index.js";export{ButtonWrapper}from"./button-wrapper/index.js";export{CascaderWrapper}from"./cascader-wrapper/index.js";export{CheckList}from"./check-list/index.js";export{CheckboxWrapper}from"./checkbox-wrapper/index.js";export{ColorPickerWrapper}from"./color-picker-wrapper/index.js";export{ConfigProviderWrapper}from"./config-provider-wrapper/index.js";export{createDrawerWrapperModel}from"./create-drawer-wrapper-model/index.js";export{createModalWrapperModel}from"./create-modal-wrapper-model/index.js";export{CssNodeHover}from"./css-node-hover/index.js";export{DataRender}from"./data-render/index.js";export{DatePickerWrapper}from"./date-picker-wrapper/index.js";export{DateRangePickerWrapper}from"./date-range-picker-wrapper/index.js";export{DateRangePickerWrapperFormItem}from"./date-range-picker-wrapper-form-item/index.js";export{dialogAlert}from"./dialog-alert/index.js";export{dialogConfirm}from"./dialog-confirm/index.js";export{dialogDrawer}from"./dialog-drawer/index.js";export{DialogDrawerContent}from"./dialog-drawer-content/index.js";export{dialogLoading}from"./dialog-loading/index.js";export{dialogModal}from"./dialog-modal/index.js";export{DragCollapse}from"./drag-collapse/index.js";export{DragCollapseFormList}from"./drag-collapse-form-list/index.js";export{DragFormList}from"./drag-form-list/index.js";export{DrawerWrapper}from"./drawer-wrapper/index.js";export{DropdownMenuWrapper}from"./dropdown-menu-wrapper/index.js";export{dynamicNode}from"./dynamic-node/index.js";export{EasyTable}from"./easy-table/index.js";export{EditableField}from"./editable-field/index.js";export{EditableFieldProvider}from"./editable-field-provider/index.js";export{EditableTable}from"./editable-table/index.js";export{EditorWrapper}from"./editor-wrapper/index.js";export{FbaApp}from"./fba-app/index.js";export{fbaHooks}from"./fba-hooks/index.js";export{fbaUtils}from"./fba-utils/index.js";export{FileImport}from"./file-import/index.js";export{FileSelect}from"./file-select/index.js";export{FlexLayout}from"./flex-layout/index.js";export{FormGrid}from"./form-grid/index.js";export{FormItemGroup}from"./form-item-group/index.js";export{FormItemHidden}from"./form-item-hidden/index.js";export{FormItemWrapper}from"./form-item-wrapper/index.js";export{FormListWrapper}from"./form-list-wrapper/index.js";export{Gap}from"./gap/index.js";export{IconWrapper}from"./icon-wrapper/index.js";export{InputSearchWrapper}from"./input-search-wrapper/index.js";export{InputTextAreaWrapper}from"./input-text-area-wrapper/index.js";export{InputWrapper}from"./input-wrapper/index.js";export{LabelValueLayout}from"./label-value-layout/index.js";export{LocalLoading}from"./local-loading/index.js";export{ModalAction}from"./modal-action/index.js";export{ModalWrapper}from"./modal-wrapper/index.js";export{PageFixedFooter}from"./page-fixed-footer/index.js";export{Page404}from"./page404/index.js";export{P as PaginationWrapper}from"./index-e98b9352.js";export{Permission}from"./permission/index.js";export{preDefinedClassName}from"./pre-defined-class-name/index.js";export{RadioGroupWrapper}from"./radio-group-wrapper/index.js";export{RelationTree}from"./relation-tree/index.js";export{RequestStatus}from"./request-status/index.js";export{RichTextEditor}from"./rich-text-editor/index.js";export{RichTextViewer}from"./rich-text-viewer/index.js";export{RollLocationCenter}from"./roll-location-center/index.js";export{RollLocationInView}from"./roll-location-in-view/index.js";export{RuleDescribe}from"./rule-describe/index.js";export{SearchMenu}from"./search-menu/index.js";export{SelectorWrapper}from"./selector-wrapper/index.js";export{SelectorWrapperSearch}from"./selector-wrapper-search/index.js";export{SelectorWrapperSimple}from"./selector-wrapper-simple/index.js";export{SimpleLayout}from"./simple-layout/index.js";export{SmsCountDown}from"./sms-count-down/index.js";export{styles}from"./styles/index.js";export{SwitchConfirmWrapper}from"./switch-confirm-wrapper/index.js";export{SwitchWrapper}from"./switch-wrapper/index.js";export{tableCellRender}from"./table-cell-render/index.js";export{TableScrollbar}from"./table-scrollbar/index.js";export{TableTitleTooltip}from"./table-title-tooltip/index.js";export{TabsWrapper}from"./tabs-wrapper/index.js";export{TagGroup}from"./tag-group/index.js";export{TagListSelect}from"./tag-list-select/index.js";export{TagWrapper}from"./tag-wrapper/index.js";export{TextCssEllipsis}from"./text-css-ellipsis/index.js";export{TextOverflowRender}from"./text-overflow-render/index.js";export{TimePickerWrapper}from"./time-picker-wrapper/index.js";export{TimeRangePickerWrapper}from"./time-range-picker-wrapper/index.js";export{TimeRangePickerWrapperFormItem}from"./time-range-picker-wrapper-form-item/index.js";export{TipsTitle}from"./tips-title/index.js";export{TipsWrapper}from"./tips-wrapper/index.js";export{TreeSelectorWrapper}from"./tree-selector-wrapper/index.js";export{TreeWrapper}from"./tree-wrapper/index.js";export{UploadWrapper}from"./upload-wrapper/index.js";import"./_rollupPluginBabelHelpers-fc015ef2.js";import"@flatbiz/utils";import"antd";import"react/jsx-runtime";import"@dimjs/utils/cjs/class-names";import"react";import"@ant-design/icons/es/icons/MoreOutlined";import"@dimjs/lang/cjs/is-undefined";import"@dimjs/lang/cjs/is-plain-object";import"@dimjs/lang/cjs/is-string";import"@dimjs/lang/cjs/is-promise";import"@wove/react/cjs/hooks";import"@ant-design/icons/es/icons/LoadingOutlined";import"@ant-design/icons/es/icons/RedoOutlined";import"@dimjs/utils/cjs/extend";import"@dimjs/model";import"@dimjs/model-react";import"@wove/react/cjs/create-ctx";import"@ant-design/icons/es/icons/CloseCircleOutlined";import"@flatbiz/antd";import"antd/es/locale/en_US";import"antd/es/locale/zh_CN";import"dayjs";import"dayjs/locale/en";import"dayjs/locale/zh-cn";import"dayjs/plugin/advancedFormat";import"dayjs/plugin/customParseFormat";import"dayjs/plugin/localeData";import"dayjs/plugin/utc";import"dayjs/plugin/weekday";import"dayjs/plugin/weekOfYear";import"dayjs/plugin/weekYear";import"./time-53b3f55f.js";import"@dimjs/lang/cjs/is-array";import"react-dom/client";import"./dom-4d04aa64.js";import"./context-1f2093c6.js";import"ahooks";import"@dimjs/utils/cjs/array";import"@dnd-kit/core";import"@dnd-kit/sortable";import"@ant-design/icons/es/icons/DragOutlined";import"@dnd-kit/utilities";import"@ant-design/icons/es/icons/SaveOutlined";import"@ant-design/icons/es/icons/ExclamationCircleFilled";import"@ant-design/icons/es/icons/DownOutlined";import"@ant-design/icons/es/icons/UpOutlined";import"react-is";import"@ant-design/icons/es/icons/CloseOutlined";import"@ant-design/icons/es/icons/CheckOutlined";import"@dimjs/lang/cjs/is-number";import"@ant-design/icons/es/icons/EditOutlined";import"./context-25d0b686.js";import"@ant-design/icons/es/icons/PlusOutlined";import"@dimjs/lang/cjs/is-boolean";import"@ant-design/icons/es/icons/DeleteOutlined";import"@wove/react/cjs/editor";import"./use-responsive-point-21b8c601.js";import"@dimjs/lang/cjs/is-deep-equal";import"@tinymce/tinymce-react";import"@ant-design/icons/es/icons/PlusCircleOutlined";import"@ant-design/icons/es/icons/FullscreenOutlined";import"@dimjs/utils/cjs/get";import"@dimjs/utils/cjs/json";import"pubsub-js";import"@dimjs/lang/cjs/is-object";import"@dimjs/lang/cjs/is-empty";import"@ant-design/icons/es/icons/QuestionCircleOutlined";import"dayjs/plugin/isSameOrAfter";import"dayjs/plugin/isSameOrBefore";import"@ant-design/icons/es/icons/CaretDownFilled";import"dequal";import"@dimjs/utils/cjs/tree";import"react-dom";
|
|
99
|
+
export{AmountFenInput}from"./amount-fen-input/index.js";export{AmountFenInputFormItem}from"./amount-fen-input-form-item/index.js";export{AnchorSteps}from"./anchor-steps/index.js";export{ButtonOperate,ButtonOperateItemContent}from"./button-operate/index.js";export{ButtonWrapper}from"./button-wrapper/index.js";export{CascaderWrapper}from"./cascader-wrapper/index.js";export{CheckList}from"./check-list/index.js";export{CheckboxWrapper}from"./checkbox-wrapper/index.js";export{ColorPickerWrapper}from"./color-picker-wrapper/index.js";export{ConfigProviderWrapper}from"./config-provider-wrapper/index.js";export{createDrawerWrapperModel}from"./create-drawer-wrapper-model/index.js";export{createModalWrapperModel}from"./create-modal-wrapper-model/index.js";export{CssNodeHover}from"./css-node-hover/index.js";export{DataRender}from"./data-render/index.js";export{DatePickerWrapper}from"./date-picker-wrapper/index.js";export{DateRangePickerWrapper}from"./date-range-picker-wrapper/index.js";export{DateRangePickerWrapperFormItem}from"./date-range-picker-wrapper-form-item/index.js";export{dialogAlert}from"./dialog-alert/index.js";export{dialogConfirm}from"./dialog-confirm/index.js";export{dialogDrawer}from"./dialog-drawer/index.js";export{DialogDrawerContent}from"./dialog-drawer-content/index.js";export{dialogLoading}from"./dialog-loading/index.js";export{dialogModal}from"./dialog-modal/index.js";export{DragCollapse}from"./drag-collapse/index.js";export{DragCollapseFormList}from"./drag-collapse-form-list/index.js";export{DragFormList}from"./drag-form-list/index.js";export{DragTable}from"./drag-table/index.js";export{DrawerWrapper}from"./drawer-wrapper/index.js";export{DropdownMenuWrapper}from"./dropdown-menu-wrapper/index.js";export{dynamicNode}from"./dynamic-node/index.js";export{EasyTable}from"./easy-table/index.js";export{EditableField}from"./editable-field/index.js";export{EditableFieldProvider}from"./editable-field-provider/index.js";export{EditableTable}from"./editable-table/index.js";export{EditorWrapper}from"./editor-wrapper/index.js";export{FbaApp}from"./fba-app/index.js";export{fbaHooks}from"./fba-hooks/index.js";export{fbaUtils}from"./fba-utils/index.js";export{FileImport}from"./file-import/index.js";export{FileSelect}from"./file-select/index.js";export{FlexLayout}from"./flex-layout/index.js";export{FormGrid}from"./form-grid/index.js";export{FormItemGroup}from"./form-item-group/index.js";export{FormItemHidden}from"./form-item-hidden/index.js";export{FormItemWrapper}from"./form-item-wrapper/index.js";export{FormListWrapper}from"./form-list-wrapper/index.js";export{Gap}from"./gap/index.js";export{IconWrapper}from"./icon-wrapper/index.js";export{InputSearchWrapper}from"./input-search-wrapper/index.js";export{InputTextAreaWrapper}from"./input-text-area-wrapper/index.js";export{InputWrapper}from"./input-wrapper/index.js";export{LabelValueLayout}from"./label-value-layout/index.js";export{LocalLoading}from"./local-loading/index.js";export{ModalAction}from"./modal-action/index.js";export{ModalWrapper}from"./modal-wrapper/index.js";export{PageFixedFooter}from"./page-fixed-footer/index.js";export{Page404}from"./page404/index.js";export{P as PaginationWrapper}from"./index-e98b9352.js";export{Permission}from"./permission/index.js";export{preDefinedClassName}from"./pre-defined-class-name/index.js";export{RadioGroupWrapper}from"./radio-group-wrapper/index.js";export{RelationTree}from"./relation-tree/index.js";export{RequestStatus}from"./request-status/index.js";export{RichTextEditor}from"./rich-text-editor/index.js";export{RichTextViewer}from"./rich-text-viewer/index.js";export{RollLocationCenter}from"./roll-location-center/index.js";export{RollLocationInView}from"./roll-location-in-view/index.js";export{RuleDescribe}from"./rule-describe/index.js";export{SearchMenu}from"./search-menu/index.js";export{SelectorWrapper}from"./selector-wrapper/index.js";export{SelectorWrapperSearch}from"./selector-wrapper-search/index.js";export{SelectorWrapperSimple}from"./selector-wrapper-simple/index.js";export{SimpleLayout}from"./simple-layout/index.js";export{SmsCountDown}from"./sms-count-down/index.js";export{styles}from"./styles/index.js";export{SwitchConfirmWrapper}from"./switch-confirm-wrapper/index.js";export{SwitchWrapper}from"./switch-wrapper/index.js";export{tableCellRender}from"./table-cell-render/index.js";export{TableScrollbar}from"./table-scrollbar/index.js";export{TableTitleTooltip}from"./table-title-tooltip/index.js";export{TabsWrapper}from"./tabs-wrapper/index.js";export{TagGroup}from"./tag-group/index.js";export{TagListSelect}from"./tag-list-select/index.js";export{TagWrapper}from"./tag-wrapper/index.js";export{TextCssEllipsis}from"./text-css-ellipsis/index.js";export{TextOverflowRender}from"./text-overflow-render/index.js";export{TimePickerWrapper}from"./time-picker-wrapper/index.js";export{TimeRangePickerWrapper}from"./time-range-picker-wrapper/index.js";export{TimeRangePickerWrapperFormItem}from"./time-range-picker-wrapper-form-item/index.js";export{TipsTitle}from"./tips-title/index.js";export{TipsWrapper}from"./tips-wrapper/index.js";export{TreeSelectorWrapper}from"./tree-selector-wrapper/index.js";export{TreeWrapper}from"./tree-wrapper/index.js";export{UploadWrapper}from"./upload-wrapper/index.js";import"./_rollupPluginBabelHelpers-fc015ef2.js";import"@flatbiz/utils";import"antd";import"react/jsx-runtime";import"@dimjs/utils/cjs/class-names";import"react";import"@ant-design/icons/es/icons/MoreOutlined";import"@dimjs/lang/cjs/is-undefined";import"@dimjs/lang/cjs/is-plain-object";import"@dimjs/lang/cjs/is-string";import"@dimjs/lang/cjs/is-promise";import"@wove/react/cjs/hooks";import"@ant-design/icons/es/icons/LoadingOutlined";import"@ant-design/icons/es/icons/RedoOutlined";import"@dimjs/utils/cjs/extend";import"@dimjs/model";import"@dimjs/model-react";import"@wove/react/cjs/create-ctx";import"@ant-design/icons/es/icons/CloseCircleOutlined";import"@flatbiz/antd";import"antd/es/locale/en_US";import"antd/es/locale/zh_CN";import"dayjs";import"dayjs/locale/en";import"dayjs/locale/zh-cn";import"dayjs/plugin/advancedFormat";import"dayjs/plugin/customParseFormat";import"dayjs/plugin/localeData";import"dayjs/plugin/utc";import"dayjs/plugin/weekday";import"dayjs/plugin/weekOfYear";import"dayjs/plugin/weekYear";import"./time-53b3f55f.js";import"@dimjs/lang/cjs/is-array";import"react-dom/client";import"./dom-4d04aa64.js";import"./context-1f2093c6.js";import"ahooks";import"@dimjs/utils/cjs/array";import"@dnd-kit/core";import"@dnd-kit/sortable";import"@ant-design/icons/es/icons/DragOutlined";import"@dnd-kit/utilities";import"@dnd-kit/modifiers";import"@ant-design/icons/es/icons/SaveOutlined";import"@ant-design/icons/es/icons/ExclamationCircleFilled";import"@ant-design/icons/es/icons/DownOutlined";import"@ant-design/icons/es/icons/UpOutlined";import"react-is";import"@ant-design/icons/es/icons/CloseOutlined";import"@ant-design/icons/es/icons/CheckOutlined";import"@dimjs/lang/cjs/is-number";import"@ant-design/icons/es/icons/EditOutlined";import"./context-25d0b686.js";import"@ant-design/icons/es/icons/PlusOutlined";import"@dimjs/lang/cjs/is-boolean";import"@ant-design/icons/es/icons/DeleteOutlined";import"@wove/react/cjs/editor";import"./use-responsive-point-21b8c601.js";import"@dimjs/lang/cjs/is-deep-equal";import"@tinymce/tinymce-react";import"@ant-design/icons/es/icons/PlusCircleOutlined";import"@ant-design/icons/es/icons/FullscreenOutlined";import"@dimjs/utils/cjs/get";import"@dimjs/utils/cjs/json";import"pubsub-js";import"@dimjs/lang/cjs/is-object";import"@dimjs/lang/cjs/is-empty";import"@ant-design/icons/es/icons/QuestionCircleOutlined";import"dayjs/plugin/isSameOrAfter";import"dayjs/plugin/isSameOrBefore";import"@ant-design/icons/es/icons/CaretDownFilled";import"dequal";import"@dimjs/utils/cjs/tree";import"react-dom";
|
|
99
100
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.simple-layout{background-color:#fff;border-radius:6px;padding:15px}.simple-layout>.ant-form{margin-bottom:-15px}.simple-layout>.ant-form .ant-form-item{margin:0 0 15px}.simple-layout>.ant-form .ant-form-item-label{width:82px}.simple-layout>.ant-form .ant-form-item-label.ant-col-auto{width:auto}.simple-layout .ant-table-thead>tr>th{background:#f6f6f6}.simple-layout .ant-descriptions-item{padding-bottom:10px}.simple-layout .ant-descriptions-item-label{color:#999}.simple-layout .ant-table-pagination.ant-pagination{margin:16px 0 0}.simple-layout .simple-layout-content{position:relative}.simple-layout .simple-layout-content>.ant-row:last-child{margin-bottom:0}.simple-layout .simple-layout-content>.ant-row:last-child .ant-upload-list{padding-bottom:15px}.simple-layout .simple-layout-content>.ant-descriptions:not(.ant-descriptions-bordered):last-child{margin-bottom:-10px}.simple-layout .v-tree-wrapper-tree{padding:5px 0 0}.simple-layout-title-sign{padding-left:10px;position:relative}.simple-layout-title-sign:before{background:var(--simple-layout-colorPrimary);border-radius:3px;content:"";height:14px;left:0;margin-top:-7px;position:absolute;top:50%;width:3px}.simple-layout-title{color:rgba(0,0,0,.85);font-size:16px;font-weight:500;overflow:hidden;position:relative;text-overflow:ellipsis;white-space:nowrap}.simple-layout-title+.simple-layout-content,.simple-layout-title-sign+.simple-layout-content{margin-top:10px}.simple-layout-desc{color:rgba(0,0,0,.55);font-size:12px}.simple-layout+.simple-layout,.simple-layout-desc+.simple-layout-content{margin-top:10px}.simple-layout+.ant-divider{margin:0 0 15px}.simple-layout-formlabel-left .ant-form-item-label{text-align:left}.simple-layout-tight.simple-layout{margin-top:0;padding:0}.simple-layout-title-extra-space{justify-content:space-between;width:100%}.simple-layout-title-fixed{display:flex;flex-direction:column;height:100%;overflow:hidden}.simple-layout-title-fixed>.simple-layout-content{flex:1;overflow-y:auto}.simple-layout-small.simple-layout{padding:8px 15px}.simple-layout-small.simple-layout>.ant-form{margin-bottom:-8px}.simple-layout-small.simple-layout>.ant-form .ant-form-item{margin:0 0 8px}
|
|
1
|
+
.simple-layout{background-color:#fff;border-radius:6px;padding:15px}.simple-layout>.simple-layout-content>.ant-form{margin-bottom:-15px}.simple-layout>.simple-layout-content>.ant-form .ant-form-item{margin:0 0 15px}.simple-layout>.simple-layout-content>.ant-form .ant-form-item-label{width:82px}.simple-layout>.simple-layout-content>.ant-form .ant-form-item-label.ant-col-auto{width:auto}.simple-layout .ant-table-thead>tr>th{background:#f6f6f6}.simple-layout .ant-descriptions-item{padding-bottom:10px}.simple-layout .ant-descriptions-item-label{color:#999}.simple-layout .ant-table-pagination.ant-pagination{margin:16px 0 0}.simple-layout .simple-layout-content{position:relative}.simple-layout .simple-layout-content>.ant-row:last-child{margin-bottom:0}.simple-layout .simple-layout-content>.ant-row:last-child .ant-upload-list{padding-bottom:15px}.simple-layout .simple-layout-content>.ant-descriptions:not(.ant-descriptions-bordered):last-child{margin-bottom:-10px}.simple-layout .v-tree-wrapper-tree{padding:5px 0 0}.simple-layout-title-sign{padding-left:10px;position:relative}.simple-layout-title-sign:before{background:var(--simple-layout-colorPrimary);border-radius:3px;content:"";height:14px;left:0;margin-top:-7px;position:absolute;top:50%;width:3px}.simple-layout-title{color:rgba(0,0,0,.85);font-size:16px;font-weight:500;overflow:hidden;position:relative;text-overflow:ellipsis;white-space:nowrap}.simple-layout-title+.simple-layout-content,.simple-layout-title-sign+.simple-layout-content{margin-top:10px}.simple-layout-desc{color:rgba(0,0,0,.55);font-size:12px}.simple-layout+.simple-layout,.simple-layout-desc+.simple-layout-content{margin-top:10px}.simple-layout+.ant-divider{margin:0 0 15px}.simple-layout-formlabel-left .ant-form-item-label{text-align:left}.simple-layout-tight.simple-layout{margin-top:0;padding:0}.simple-layout-title-extra-space{justify-content:space-between;width:100%}.simple-layout-title-fixed{display:flex;flex-direction:column;height:100%;overflow:hidden}.simple-layout-title-fixed>.simple-layout-content{flex:1;overflow-y:auto}.simple-layout-small.simple-layout{padding:8px 15px}.simple-layout-small.simple-layout>.simple-layout-content>.ant-form{margin-bottom:-8px}.simple-layout-small.simple-layout>.simple-layout-content>.ant-form .ant-form-item{margin:0 0 8px}
|
|
@@ -12,5 +12,5 @@ import './../flex-layout/index.css';
|
|
|
12
12
|
import './../input-search-wrapper/index.css';
|
|
13
13
|
import './index.css';
|
|
14
14
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
15
|
-
import{treeToArray as e,treeToTiledArray as r,treeLeafParentsArray as t,isUndefinedOrNull as n,treeFilter as a,attachPropertiesToComponent as i}from"@flatbiz/utils";import{isArray as l}from"@dimjs/lang/cjs/is-array";import{Model as s}from"@dimjs/model-react";import o from"@ant-design/icons/es/icons/CaretDownFilled";import u from"@ant-design/icons/es/icons/MoreOutlined";import{classNames as c}from"@dimjs/utils/cjs/class-names";import{extend as d}from"@dimjs/utils/cjs/extend";import{hooks as v}from"@wove/react/cjs/hooks";import{a as f,_ as p}from"../_rollupPluginBabelHelpers-fc015ef2.js";import{cloneState as m}from"@dimjs/model";import{Spin as h,Tree as g,Button as b,message as y}from"antd";import{forwardRef as L,useState as j,useMemo as w,useRef as C,useImperativeHandle as N,Fragment as R,isValidElement as q}from"react";import{ButtonOperate as k}from"../button-operate/index.js";import{DropdownMenuWrapper as x}from"../dropdown-menu-wrapper/index.js";import{fbaHooks as S}from"../fba-hooks/index.js";import{InputSearchWrapper as T}from"../input-search-wrapper/index.js";import{RequestStatus as P}from"../request-status/index.js";import{tree as D}from"@dimjs/utils/cjs/tree";import{isObject as E}from"@dimjs/lang/cjs/is-object";import"dequal";import{jsxs as A,jsx as _}from"react/jsx-runtime";import"@dimjs/lang/cjs/is-undefined";import"@dimjs/lang/cjs/is-plain-object";import"@dimjs/lang/cjs/is-string";import"@dimjs/lang/cjs/is-promise";import"../button-wrapper/index.js";import"@ant-design/icons/es/icons/LoadingOutlined";import"../config-provider-wrapper/index.js";import"antd/es/locale/en_US";import"antd/es/locale/zh_CN";import"dayjs";import"dayjs/locale/en";import"dayjs/locale/zh-cn";import"dayjs/plugin/advancedFormat";import"dayjs/plugin/customParseFormat";import"dayjs/plugin/localeData";import"dayjs/plugin/utc";import"dayjs/plugin/weekday";import"dayjs/plugin/weekOfYear";import"dayjs/plugin/weekYear";import"../fba-utils/index.js";import"@ant-design/icons/es/icons/ExclamationCircleFilled";import"../dialog-confirm/index.js";import"../dialog-modal/index.js";import"ahooks";import"react-dom/client";import"../flex-layout/index.js";import"../use-responsive-point-21b8c601.js";var I={treeList:[],treeTiledArray:[],queryIsEmpty:false};var O={actions:{setTreeList:function r(t){return function(r){r.treeList=t.treeList||[];r.treeTiledArray=e(r.treeList,t.childrenName);r.requestStatus="request-success"}},resetTreeList:function e(){return function(e){e.treeList=[]}},changeRequestStatus:function e(r){return function(e){e.requestStatus=r;if(r==="request-error"){e.treeList=[]}}},treeListAppendChildren:function r(t){return function(r){var n=e(r.treeList,t.childrenName);var a=n.find((function(e){return e[t.valueName]===t.value}));if(a){if(l(t.appendList)&&t.appendList.length>0){a[t.childrenName]=t.appendList}else{a.isLeaf=true}}r.treeTiledArray=e(r.treeList,t.childrenName)}}},state:I};var V={};var F=function e(r){if(!V[r]){V[r]=s(O)}return V[r]};var K=function e(r){var t=F(r).getState();return t.treeList};var M=function e(n,a,i){var l=r(a,i);return t(n,l,true,{value:"value",parentValue:"parentValue"})};var U=function e(r,t){var a=n(r)?[]:r;a=l(a)?a:[a];a=a.map((function(e){if(E(e))return e[t.value];return e}));return a};var z=function e(r,t,n){var a=n.node.key;var i=n.dragNode.key;var l=n.node.pos.split("-");var s=n.dropPosition-Number(l[l.length-1]);var o=t.value;var u=t.children;var c=function e(r,t,n){for(var a=0;a<r.length;a++){if(r[a][o]===t){return n(r[a],a,r)}if(r[a][u]){e(r[a][u],t,n)}}};var d=m(r);var v;c(d,i,(function(e,r,t){t.splice(r,1);v=e}));if(!n.dropToGap){c(d,a,(function(e){e[u]=e[u]||[];e[u].unshift(v)}))}else if((n.node.props.children||[]).length>0&&n.node.props.expanded&&s===1){c(d,a,(function(e){e[u]=e[u]||[];e[u].unshift(v)}))}else{var f=[];var p;c(d,a,(function(e,r,t){f=t;p=r}));if(s===-1){f.splice(p,0,v)}else{f.splice(p+1,0,v)}}return{dataList:d,dragNodeData:B(i,d,t)}};var B=function r(t,n,a){var i;var l=a.value;var s=a.children;D.walkThroughTree((i={},i[l]=undefined,i[s]=n,i),(function(e,r,t){e["__index"]=r;e["__parentId"]=t==null?void 0:t[l]}),s);var o=e(n,s);var u=o.find((function(e){return e[l]===t}));return{parentId:u==null?void 0:u["__parentId"],id:u==null?void 0:u[l],index:u==null?void 0:u["__index"]}};var H=["style","serviceConfig","effectDependencyList","selectorTreeList","value","onChange","modelKey","checkableResponseParentNode","checkable","onSelectorTreeListChange","onRequestResponseChange","treeItemDataAdapter","searchValue","showSearch","searchPlaceholder","requestMessageConfig","labelInValueFieldNames","labelInValue","disabledCanUse","menuLayoutType","menuTriggerType","initRootExpand","searchResultType","onDropNodeHandle","onDropPrev","labelRender","searchStyle","className","defaultExpandAll","menus"];var Y=L((function(t,i){var s=t.style,L=t.serviceConfig,D=t.effectDependencyList,E=t.selectorTreeList,I=t.value,O=t.onChange,V=t.modelKey,K=t.checkableResponseParentNode,B=K===void 0?true:K,Y=t.checkable,G=t.onSelectorTreeListChange,W=t.onRequestResponseChange,J=t.treeItemDataAdapter,Q=t.searchValue,X=t.showSearch,Z=t.searchPlaceholder,$=t.requestMessageConfig,ee=t.labelInValueFieldNames,re=t.labelInValue,te=t.disabledCanUse,ne=t.menuLayoutType,ae=t.menuTriggerType,ie=t.initRootExpand,le=t.searchResultType,se=t.onDropNodeHandle,oe=t.onDropPrev,ue=t.labelRender,ce=t.searchStyle,de=t.className,ve=t.defaultExpandAll,fe=t.menus,pe=f(t,H);var me=t.hasOwnProperty("selectorTreeList");var he=L||{};var ge=D||[];var be=j([]),ye=be[0],Le=be[1];var je=F(V).useStore(),we=je[0],Ce=je[1];var Ne=S.useSafeState(false),Re=Ne[0],qe=Ne[1];var ke="request-progress-"+t.modelKey;var xe=w((function(){return p({label:"label",value:"value",children:"children"},t.fieldNames)}),[t.fieldNames]);var Se=ne===undefined?"fold":ne;var Te=ae===undefined?"click":ae;var Pe=C(true);var De=w((function(){return p({label:"label",value:"value"},ee)}),[ee]);var Ee=j(),Ae=Ee[0],_e=Ee[1];var Ie=C();var Oe=w((function(){var e=U(I,De);return e}),[De,I]);S.useEffectCustom((function(){if(we.treeList.length>0){if(Pe.current){Pe.current=false;if(ve){var r=e(we.treeList,xe.children).map((function(e){return e[xe.value]}));Le(r);return}else if(ie&&we.treeList.length){Le([we.treeList[0][xe.value]]);return}}if(!n(I)){var t=Ue(Oe,true);Le(Array.from(new Set(ye==null?void 0:ye.concat(t))))}}}),[I,we.treeList,Oe]);var Ve=function e(r){return r===""||n(r)};var Fe=function e(r){var t=he.onRequestResultAdapter?he.onRequestResultAdapter(r):r;return t};S.useEffectCustom((function(){_e(Q)}),[Q]);var Ke=v.useCallbackRef((function(){return new Promise((function(e,r){var t,n,a,i,l,s;var o=function(){try{return e()}catch(e){return r(e)}};var u=function(e){try{Pe.current=false;qe(false);void y.error(e.message||"数据查询异常...");return o()}catch(e){return r(e)}};try{if(!he.onRequest){throw new Error("onRequest 调用接口服务不能为空")}t=he.requiredParamsKeys;n=d({},he.params);if(t){a=t.find((function(e){return Ve(n[e])}));if(a){console.warn("TreeWrapper组件:参数:"+t.join("、")+"不能为空");return e()}}var c=function(){try{return o()}catch(e){return u(e)}};var v=function(e){try{window[ke]=false;qe(false);void Ce.changeRequestStatus("request-error");return c()}catch(e){return u(e)}};try{qe(true);return Promise.resolve(Ce.changeRequestStatus("request-progress")).then((function(e){try{window[ke]=true;return Promise.resolve(he.onRequest==null?void 0:he.onRequest(n)).then((function(e){try{i=e;W==null?void 0:W(i);l=Fe(i);s=l||[];if(s.length===0){Pe.current=false}Me(s);qe(false);window[ke]=false;return c()}catch(e){return v(e)}}),v)}catch(e){return v(e)}}),v)}catch(e){v(e)}}catch(e){u(e)}}))}));S.useEffectCustom((function(){if(me)return;if(Boolean(ge.length)){void Ke();return}var e=F(V).getState();if(e.requestStatus==="request-success"){G==null?void 0:G(e.treeList);return}if(!window[ke]){void Ke()}else{G==null?void 0:G(e.treeList)}}),ge);S.useEffectCustom((function(){if(me){Me(E||[])}}),[E]);var Me=v.useCallbackRef((function(e){if((e==null?void 0:e.length)===0&&we.treeList.length===0){void Ce.changeRequestStatus("request-success");return}void Ce.setTreeList({treeList:e||[],childrenName:xe.children});G==null?void 0:G(e)}));var Ue=function e(r,t){var n=[];r.forEach((function(e){if(!t&&ye!=null&&ye.includes(e))return;var r=M(e,we.treeList,xe);n=n.concat(r.map((function(e){return e.value})))}));return n};v.useUpdateEffect((function(){if(Ae){var e=r(we.treeList||[],xe);var t=e.filter((function(e){var r;return(r=e.label)==null?void 0:r.includes(Ae||"")}));Le((function(e){var r=Ue(t.map((function(e){return e.value}))).concat(e||[]);return Array.from(new Set(r))}))}else{Le([])}}),[Ae]);N(i,(function(){return{onClearSelectorList:function e(){void Ce.resetTreeList()},getTreeDataList:function e(){return we.treeList},onChangeExpandedKeys:function e(r){Le(r)}}}));var ze=v.useCallbackRef((function(e){Le(e)}));var Be=v.useCallbackRef((function(e,r,t,a){Ie.current=e;var i=n(r)?[]:l(r)?r:[r];if(n(e)){O==null?void 0:O(e,r,t);return}if(re){var s=De.label;var o=De.value;var u=i.map((function(e){var r;return r={},r[s]=e[xe.label],r[o]=e[xe.value],r}));if(l(e)){O==null?void 0:O(u,i,t,a)}else{O==null?void 0:O(u[0],i[0],t,a)}}else{if(l(e)){O==null?void 0:O(e,i,t,a)}else{O==null?void 0:O(e,i[0],t,a)}}}));var He=v.useCallbackRef((function(e,r){var a=n(e)?[]:e;a=t.checkStrictly?e.checked:e;a=l(a)?a:[a];var i=[];var s=[];var o=[];var u=[];a.forEach((function(e){var r=we.treeTiledArray.find((function(r){return r[xe.value]===e}));if(!r)return;var t=r==null?void 0:r[xe.children];if(!l(t)||t.length===0){i.push(r);s.push(r[xe.value])}o.push(r);u.push(r[xe.value])}));if(Y){Le((function(e){var r=Ue(s).concat(e||[]);return Array.from(new Set(r))}));if(!B&&!t.checkStrictly){Be(s,i,o,r)}else{Be(u,o,o,r)}}else{if(a[0]){var c=o.find((function(e){return e[xe.value]===a[0]}));Be(a[0],c,[c],r)}else{var d=r.node[xe.value];var v=we.treeTiledArray.find((function(e){return e[xe.value]===d}));Be(undefined,v,[v],r)}}}));var Ye=v.useCallbackRef((function(e){return J==null?void 0:J(e)}));var Ge=w((function(){var e=m(we.treeList||[]);if(Ae&&le!=="highlight"){return a(m(we.treeList||[]),(function(e){var r;var t=(r=e[xe.label])==null?void 0:r.toLowerCase();return t.indexOf(Ae.toLowerCase())>=0}),{childrenName:xe.children})}return e}),[xe.children,xe.label,le,we.treeList,Ae]);var We=w((function(){var e=function e(r){return r==null?void 0:r.map((function(r){var t;var n=(Ye==null?void 0:Ye(r))||r;var a=te?undefined:n.disabled;var i=n[xe.label];var s;if(Ae){var o=i.indexOf(Ae);var u=i.substring(0,o);var d=i.slice(o+Ae.length);s=o>-1?A("span",{className:c({"v-tree-item-disabled":n.disabled}),children:[u,_("span",{className:"site-tree-search-value",children:Ae}),d]}):null}if(!s&&n.disabled){s=_("span",{className:c({"v-tree-item-disabled":n.disabled}),children:i})}var v=n[xe.children];return p({},n,(t={disabled:a},t[xe.label]=s||i,t._treeItemName=i,t._disabled=n.disabled,t[xe.children]=l(v)&&v.length>0?e(v):undefined,t))}))};return e(Ge)}),[Ge,Ye,te,xe.label,xe.children,Ae]);var Je=v.useCallbackRef((function(e){return new Promise((function(r,n){return new Promise((function(a,i){var l,s,o,u;if(e[xe.children]){r();return a()}var c=function(){try{return a()}catch(e){return i(e)}};var d=function(e){try{void y.error(e.message||"数据加载异常...");n();return c()}catch(e){return i(e)}};try{return Promise.resolve((l=t.loadDataServiceConfig)==null||l.onRequest==null?void 0:l.onRequest((s=t.loadDataServiceConfig)==null||s.getParams==null?void 0:s.getParams(e))).then((function(t){try{o=t;u=he.onRequestResultAdapter?he.onRequestResultAdapter(o):o;void Ce.treeListAppendChildren({value:e[xe.value],appendList:u,childrenName:xe.children,valueName:xe.value}).then((function(e){Me(e.treeList);r()}));return c()}catch(e){return d(e)}}),d)}catch(e){d(e)}}))}))}));var Qe=v.useCallbackRef((function(e){var r=e==null?void 0:e[xe.children];var n=t.loadDataFlag;var a=n?!e.isLeaf:false;var i=r&&r.length>0||a;return!i}));var Xe=v.useCallbackRef((function(e){var r,n,a;var i=e._treeItemName||e[xe.label];var l=fe==null?void 0:fe(p({},e,(r={},r[xe.label]=i,r)));if(l){return A(R,{children:[_("span",{className:"tree-item-title",children:(ue==null?void 0:ue(e))||(e==null?void 0:e[xe.label])}),_(k,p({gap:5},l,{dropdownMenuProps:p({placement:"bottomRight",isFixed:true},l==null?void 0:l.dropdownMenuProps),className:c("tree-item-title-operate",l.className)}))]})}if(Se==="fold"){var s;var o=[];if((s=t.menuOptions)!=null&&s.fold){var d,v,f;o=((d=t.menuOptions)==null||(v=d[Se])==null?void 0:v.call(d,p({},e,(f={},f[xe.label]=i,f))))||[]}else{var m;o=(t.getMenuOptions==null?void 0:t.getMenuOptions(p({},e,(m={},m[xe.label]=i,m))))||[]}return A(R,{children:[_("span",{className:"tree-item-title",children:(ue==null?void 0:ue(e))||(e==null?void 0:e[xe.label])}),o.length>0&&_(x,{menuList:o,placement:"bottomRight",children:_(u,{})})]})}var h=(n=t.menuOptions)==null||n.tile==null?void 0:n.tile(p({},e,(a={},a[xe.label]=i,a)));return A(R,{children:[_("span",{className:"tree-item-title",children:(ue==null?void 0:ue(e))||(e==null?void 0:e[xe.label])}),h?_(k,p({gap:5},h,{className:c("tree-item-title-operate",h.className)})):null]})}));var Ze=v.useDebounceCallback((function(e){_e(e);t.onSearchValueChange==null?void 0:t.onSearchValueChange(e)}),300);var $e=v.useCallbackRef((function(e){Ze(e.target.value)}));var er=v.useCallbackRef((function(e){if(!t.icon)return null;if(q(t.icon))return t.icon;var r=Qe(e.data);return t.icon(p({},e,{isParent:!r,isLeaf:r}))}));var rr=w((function(){return{title:xe.label,key:xe.value,children:xe.children}}),[xe]);var tr=We.length>0&&we.requestStatus!=="request-error";var nr=p({showLine:{showLeafIcon:false},titleRender:Xe,blockNode:true,switcherIcon:_(o,{}),onDrop:function e(r){if(oe){var t=oe(r);if(!t)return}var n=z(Ge,xe,r),a=n.dataList,i=n.dragNodeData;se==null?void 0:se(i);Me(a)},expandedKeys:ye},pe,{fieldNames:rr,treeData:We,onExpand:ze,loadData:t.loadDataFlag?Je:undefined,style:{width:"100%"},icon:er});var ar={onCheck:He,checkable:Y,checkedKeys:Oe};var ir={onSelect:He,multiple:false,selectedKeys:Oe};var lr=Y?ar:ir;var sr=c("v-tree-wrapper","v-tree-wrapper-menu-"+Te,de);var or=we.treeList.length>0&&!tr&&Ae;return A("div",{className:sr,style:s,children:[!!X&&A("div",{className:"v-tree-wrapper-search-area",style:ce,children:[_(T,{className:"v-tree-wrapper-search",placeholder:Z,onChange:$e,value:Q,allowClear:true}),!!t.searchExtraElement&&_("span",{className:"v-tree-wrapper-search-extra",children:t.searchExtraElement})]}),tr?A("div",{className:"v-tree-wrapper-tree-wrapper",children:[_(h,{spinning:we.requestStatus==="request-progress"}),_(g,p({},lr,nr,{className:"v-tree-wrapper-tree"}))]}):_(P,{status:we.requestStatus,loading:Re,messageConfig:p({"request-success":or?"搜索结果为空":"暂无数据"},$),errorButton:_(b,{type:"primary",onClick:Ke,children:"重新获取数据"})})]})}));Y.defaultProps={disabledCanUse:true};var G=i(Y,{getTreeDataList:K});export{G as TreeWrapper};
|
|
15
|
+
import{treeToArray as e,treeToTiledArray as r,treeLeafParentsArray as t,isUndefinedOrNull as n,treeFilter as a,attachPropertiesToComponent as i}from"@flatbiz/utils";import{isArray as l}from"@dimjs/lang/cjs/is-array";import{Model as s}from"@dimjs/model-react";import o from"@ant-design/icons/es/icons/CaretDownFilled";import u from"@ant-design/icons/es/icons/MoreOutlined";import{classNames as c}from"@dimjs/utils/cjs/class-names";import{extend as d}from"@dimjs/utils/cjs/extend";import{hooks as v}from"@wove/react/cjs/hooks";import{a as f,_ as p}from"../_rollupPluginBabelHelpers-fc015ef2.js";import{cloneState as m}from"@dimjs/model";import{Spin as h,Tree as g,Button as b,message as y}from"antd";import{forwardRef as L,useState as w,useMemo as C,useRef as j,useImperativeHandle as N,Fragment as R,isValidElement as q}from"react";import{ButtonOperate as k}from"../button-operate/index.js";import{DropdownMenuWrapper as x}from"../dropdown-menu-wrapper/index.js";import{fbaHooks as S}from"../fba-hooks/index.js";import{InputSearchWrapper as T}from"../input-search-wrapper/index.js";import{RequestStatus as P}from"../request-status/index.js";import{tree as D}from"@dimjs/utils/cjs/tree";import{isObject as E}from"@dimjs/lang/cjs/is-object";import"dequal";import{jsxs as A,jsx as _}from"react/jsx-runtime";import"@dimjs/lang/cjs/is-undefined";import"@dimjs/lang/cjs/is-plain-object";import"@dimjs/lang/cjs/is-string";import"@dimjs/lang/cjs/is-promise";import"../button-wrapper/index.js";import"@ant-design/icons/es/icons/LoadingOutlined";import"../config-provider-wrapper/index.js";import"antd/es/locale/en_US";import"antd/es/locale/zh_CN";import"dayjs";import"dayjs/locale/en";import"dayjs/locale/zh-cn";import"dayjs/plugin/advancedFormat";import"dayjs/plugin/customParseFormat";import"dayjs/plugin/localeData";import"dayjs/plugin/utc";import"dayjs/plugin/weekday";import"dayjs/plugin/weekOfYear";import"dayjs/plugin/weekYear";import"../fba-utils/index.js";import"@ant-design/icons/es/icons/ExclamationCircleFilled";import"../dialog-confirm/index.js";import"../dialog-modal/index.js";import"ahooks";import"react-dom/client";import"../flex-layout/index.js";import"../use-responsive-point-21b8c601.js";var I={treeList:[],treeTiledArray:[],queryIsEmpty:false};var O={actions:{setTreeList:function r(t){return function(r){r.treeList=t.treeList||[];r.treeTiledArray=e(r.treeList,t.childrenName);r.requestStatus="request-success"}},resetTreeList:function e(){return function(e){e.treeList=[]}},changeRequestStatus:function e(r){return function(e){e.requestStatus=r;if(r==="request-error"){e.treeList=[]}}},treeListAppendChildren:function r(t){return function(r){var n=e(r.treeList,t.childrenName);var a=n.find((function(e){return e[t.valueName]===t.value}));if(a){if(l(t.appendList)&&t.appendList.length>0){a[t.childrenName]=t.appendList}else{a.isLeaf=true}}r.treeTiledArray=e(r.treeList,t.childrenName)}}},state:I};var V={};var F=function e(r){if(!V[r]){V[r]=s(O)}return V[r]};var K=function e(r){var t=F(r).getState();return t.treeList};var M=function e(n,a,i){var l=r(a,i);return t(n,l,true,{value:"value",parentValue:"parentValue"})};var U=function e(r,t){var a=n(r)?[]:r;a=l(a)?a:[a];a=a.map((function(e){if(E(e))return e[t.value];return e}));return a};var z=function e(r,t,n){var a=n.node.key;var i=n.dragNode.key;var l=n.node.pos.split("-");var s=n.dropPosition-Number(l[l.length-1]);var o=t.value;var u=t.children;var c=function e(r,t,n){for(var a=0;a<r.length;a++){if(r[a][o]===t){return n(r[a],a,r)}if(r[a][u]){e(r[a][u],t,n)}}};var d=m(r);var v;c(d,i,(function(e,r,t){t.splice(r,1);v=e}));if(!n.dropToGap){c(d,a,(function(e){e[u]=e[u]||[];e[u].unshift(v)}))}else if((n.node.props.children||[]).length>0&&n.node.props.expanded&&s===1){c(d,a,(function(e){e[u]=e[u]||[];e[u].unshift(v)}))}else{var f=[];var p;c(d,a,(function(e,r,t){f=t;p=r}));if(s===-1){f.splice(p,0,v)}else{f.splice(p+1,0,v)}}return{dataList:d,dragNodeData:B(i,d,t)}};var B=function r(t,n,a){var i;var l=a.value;var s=a.children;D.walkThroughTree((i={},i[l]=undefined,i[s]=n,i),(function(e,r,t){e["__index"]=r;e["__parentId"]=t==null?void 0:t[l]}),s);var o=e(n,s);var u=o.find((function(e){return e[l]===t}));return{parentId:u==null?void 0:u["__parentId"],id:u==null?void 0:u[l],index:u==null?void 0:u["__index"]}};var H=["style","serviceConfig","effectDependencyList","selectorTreeList","value","onChange","modelKey","checkableResponseParentNode","checkable","onSelectorTreeListChange","onRequestResponseChange","treeItemDataAdapter","searchValue","showSearch","searchPlaceholder","requestMessageConfig","labelInValueFieldNames","labelInValue","disabledCanUse","menuLayoutType","menuTriggerType","initRootExpand","searchResultType","onDropNodeHandle","onDropPrev","labelRender","searchStyle","className","defaultExpandAll","menus"];var Y=L((function(t,i){var s=t.style,L=t.serviceConfig,D=t.effectDependencyList,E=t.selectorTreeList,I=t.value,O=t.onChange,V=t.modelKey,K=t.checkableResponseParentNode,B=K===void 0?true:K,Y=t.checkable,G=t.onSelectorTreeListChange,W=t.onRequestResponseChange,J=t.treeItemDataAdapter,Q=t.searchValue,X=t.showSearch,Z=t.searchPlaceholder,$=t.requestMessageConfig,ee=t.labelInValueFieldNames,re=t.labelInValue,te=t.disabledCanUse,ne=t.menuLayoutType,ae=t.menuTriggerType,ie=t.initRootExpand,le=t.searchResultType,se=t.onDropNodeHandle,oe=t.onDropPrev,ue=t.labelRender,ce=t.searchStyle,de=t.className,ve=t.defaultExpandAll,fe=t.menus,pe=f(t,H);var me=t.hasOwnProperty("selectorTreeList");var he=L||{};var ge=D||[];var be=w([]),ye=be[0],Le=be[1];var we=F(V).useStore(),Ce=we[0],je=we[1];var Ne=S.useSafeState(false),Re=Ne[0],qe=Ne[1];var ke="request-progress-"+t.modelKey;var xe=C((function(){return p({label:"label",value:"value",children:"children"},t.fieldNames)}),[t.fieldNames]);var Se=ne===undefined?"fold":ne;var Te=ae===undefined?"click":ae;var Pe=j(true);var De=C((function(){return p({label:"label",value:"value"},ee)}),[ee]);var Ee=w(),Ae=Ee[0],_e=Ee[1];var Ie=j();var Oe=C((function(){var e=U(I,De);return e}),[De,I]);S.useEffectCustom((function(){if(Ce.treeList.length>0){if(Pe.current){Pe.current=false;if(ve){var r=e(Ce.treeList,xe.children).map((function(e){return e[xe.value]}));Le(r);return}else if(ie&&Ce.treeList.length){Le([Ce.treeList[0][xe.value]]);return}}if(!n(I)){var t=Ue(Oe,true);Le(Array.from(new Set(ye==null?void 0:ye.concat(t))))}}}),[I,Ce.treeList,Oe]);var Ve=function e(r){return r===""||n(r)};var Fe=function e(r){var t=he.onRequestResultAdapter?he.onRequestResultAdapter(r):r;return t};S.useEffectCustom((function(){_e(Q)}),[Q]);var Ke=v.useCallbackRef((function(){return new Promise((function(e,r){var t,n,a,i,l,s;var o=function(){try{return e()}catch(e){return r(e)}};var u=function(e){try{Pe.current=false;qe(false);void y.error(e.message||"数据查询异常...");return o()}catch(e){return r(e)}};try{if(!he.onRequest){throw new Error("onRequest 调用接口服务不能为空")}t=he.requiredParamsKeys;n=d({},he.params);if(t){a=t.find((function(e){return Ve(n[e])}));if(a){console.warn("TreeWrapper组件:参数:"+t.join("、")+"不能为空");return e()}}var c=function(){try{return o()}catch(e){return u(e)}};var v=function(e){try{window[ke]=false;qe(false);void je.changeRequestStatus("request-error");return c()}catch(e){return u(e)}};try{qe(true);return Promise.resolve(je.changeRequestStatus("request-progress")).then((function(e){try{window[ke]=true;return Promise.resolve(he.onRequest==null?void 0:he.onRequest(n)).then((function(e){try{i=e;W==null?void 0:W(i);l=Fe(i);s=l||[];if(s.length===0){Pe.current=false}Me(s);qe(false);window[ke]=false;return c()}catch(e){return v(e)}}),v)}catch(e){return v(e)}}),v)}catch(e){v(e)}}catch(e){u(e)}}))}));S.useEffectCustom((function(){if(me)return;if(Boolean(ge.length)){void Ke();return}var e=F(V).getState();if(e.requestStatus==="request-success"){G==null?void 0:G(e.treeList);return}if(!window[ke]){void Ke()}else{G==null?void 0:G(e.treeList)}}),ge);S.useEffectCustom((function(){if(me){Me(E||[])}}),[E]);var Me=v.useCallbackRef((function(e){if((e==null?void 0:e.length)===0&&Ce.treeList.length===0){void je.changeRequestStatus("request-success");return}void je.setTreeList({treeList:e||[],childrenName:xe.children});G==null?void 0:G(e)}));var Ue=function e(r,t){var n=[];r.forEach((function(e){if(!t&&ye!=null&&ye.includes(e))return;var r=M(e,Ce.treeList,xe);n=n.concat(r.map((function(e){return e.value})))}));return n};v.useUpdateEffect((function(){if(Ae){var e=r(Ce.treeList||[],xe);var t=e.filter((function(e){var r;return(r=e.label)==null?void 0:r.includes(Ae||"")}));Le((function(e){var r=Ue(t.map((function(e){return e.value}))).concat(e||[]);return Array.from(new Set(r))}))}else{Le([])}}),[Ae]);N(i,(function(){return{onClearSelectorList:function e(){void je.resetTreeList()},getTreeDataList:function e(){return Ce.treeList},onChangeExpandedKeys:function e(r){Le(r)}}}));var ze=v.useCallbackRef((function(e){Le(e)}));var Be=v.useCallbackRef((function(e,r,t,a){Ie.current=e;var i=n(r)?[]:l(r)?r:[r];if(n(e)){O==null?void 0:O(e,r,t);return}if(re){var s=De.label;var o=De.value;var u=i.map((function(e){var r;return r={},r[s]=e[xe.label],r[o]=e[xe.value],r}));if(l(e)){O==null?void 0:O(u,i,t,a)}else{O==null?void 0:O(u[0],i[0],t,a)}}else{if(l(e)){O==null?void 0:O(e,i,t,a)}else{O==null?void 0:O(e,i[0],t,a)}}}));var He=v.useCallbackRef((function(e,r){var a=n(e)?[]:e;a=t.checkStrictly?e.checked:e;a=l(a)?a:[a];var i=[];var s=[];var o=[];var u=[];a.forEach((function(e){var r=Ce.treeTiledArray.find((function(r){return r[xe.value]===e}));if(!r)return;var t=r==null?void 0:r[xe.children];if(!l(t)||t.length===0){i.push(r);s.push(r[xe.value])}o.push(r);u.push(r[xe.value])}));if(Y){Le((function(e){var r=Ue(s).concat(e||[]);return Array.from(new Set(r))}));if(!B&&!t.checkStrictly){Be(s,i,o,r)}else{Be(u,o,o,r)}}else{if(a[0]){var c=o.find((function(e){return e[xe.value]===a[0]}));Be(a[0],c,[c],r)}else{var d=r.node[xe.value];var v=Ce.treeTiledArray.find((function(e){return e[xe.value]===d}));Be(undefined,v,[v],r)}}}));var Ye=v.useCallbackRef((function(e){return J==null?void 0:J(e)}));var Ge=C((function(){var e=m(Ce.treeList||[]);if(Ae&&le!=="highlight"){return a(m(Ce.treeList||[]),(function(e){var r;var t=(r=e[xe.label])==null?void 0:r.toLowerCase();return t.indexOf(Ae.toLowerCase())>=0}),{childrenName:xe.children})}return e}),[xe.children,xe.label,le,Ce.treeList,Ae]);var We=C((function(){var e=function e(r){return r==null?void 0:r.map((function(r){var t;var n=(Ye==null?void 0:Ye(r))||r;var a=te?undefined:n.disabled;var i=n[xe.label].toLocaleLowerCase();var s;if(Ae){var o=i.indexOf(Ae.toLocaleLowerCase());var u=i.substring(0,o);var d=i.slice(o+Ae.length);var v=i.slice(o,o+Ae.length);s=o>-1?A("span",{className:c({"v-tree-item-disabled":n.disabled}),children:[u,_("span",{className:"site-tree-search-value",children:v}),d]}):null}if(!s&&n.disabled){s=_("span",{className:c({"v-tree-item-disabled":n.disabled}),children:i})}var f=n[xe.children];return p({},n,(t={disabled:a},t[xe.label]=s||i,t._treeItemName=i,t._disabled=n.disabled,t[xe.children]=l(f)&&f.length>0?e(f):undefined,t))}))};return e(Ge)}),[Ge,Ye,te,xe.label,xe.children,Ae]);var Je=v.useCallbackRef((function(e){return new Promise((function(r,n){return new Promise((function(a,i){var l,s,o,u;if(e[xe.children]){r();return a()}var c=function(){try{return a()}catch(e){return i(e)}};var d=function(e){try{void y.error(e.message||"数据加载异常...");n();return c()}catch(e){return i(e)}};try{return Promise.resolve((l=t.loadDataServiceConfig)==null||l.onRequest==null?void 0:l.onRequest(((s=t.loadDataServiceConfig)==null||s.getParams==null?void 0:s.getParams(e))||{})).then((function(t){try{o=t;u=he.onRequestResultAdapter?he.onRequestResultAdapter(o):o;void je.treeListAppendChildren({value:e[xe.value],appendList:u,childrenName:xe.children,valueName:xe.value}).then((function(e){Me(e.treeList);r()}));return c()}catch(e){return d(e)}}),d)}catch(e){d(e)}}))}))}));var Qe=v.useCallbackRef((function(e){var r=e==null?void 0:e[xe.children];var n=t.loadDataFlag;var a=n?!e.isLeaf:false;var i=r&&r.length>0||a;return!i}));var Xe=v.useCallbackRef((function(e){var r,n,a;var i=e._treeItemName||e[xe.label];var l=fe==null?void 0:fe(p({},e,(r={},r[xe.label]=i,r)));if(l){return A(R,{children:[_("span",{className:"tree-item-title",children:(ue==null?void 0:ue(e))||(e==null?void 0:e[xe.label])}),_(k,p({gap:5},l,{dropdownMenuProps:p({placement:"bottomRight",isFixed:true},l==null?void 0:l.dropdownMenuProps),className:c("tree-item-title-operate",l.className)}))]})}if(Se==="fold"){var s;var o=[];if((s=t.menuOptions)!=null&&s.fold){var d,v,f;o=((d=t.menuOptions)==null||(v=d[Se])==null?void 0:v.call(d,p({},e,(f={},f[xe.label]=i,f))))||[]}else{var m;o=(t.getMenuOptions==null?void 0:t.getMenuOptions(p({},e,(m={},m[xe.label]=i,m))))||[]}return A(R,{children:[_("span",{className:"tree-item-title",children:(ue==null?void 0:ue(e))||(e==null?void 0:e[xe.label])}),o.length>0&&_(x,{menuList:o,placement:"bottomRight",children:_(u,{})})]})}var h=(n=t.menuOptions)==null||n.tile==null?void 0:n.tile(p({},e,(a={},a[xe.label]=i,a)));return A(R,{children:[_("span",{className:"tree-item-title",children:(ue==null?void 0:ue(e))||(e==null?void 0:e[xe.label])}),h?_(k,p({gap:5},h,{className:c("tree-item-title-operate",h.className)})):null]})}));var Ze=v.useDebounceCallback((function(e){_e(e);t.onSearchValueChange==null?void 0:t.onSearchValueChange(e)}),300);var $e=v.useCallbackRef((function(e){Ze(e.target.value)}));var er=v.useCallbackRef((function(e){if(!t.icon)return null;if(q(t.icon))return t.icon;var r=Qe(e.data);return t.icon(p({},e,{isParent:!r,isLeaf:r}))}));var rr=C((function(){return{title:xe.label,key:xe.value,children:xe.children}}),[xe]);var tr=We.length>0&&Ce.requestStatus!=="request-error";var nr=p({showLine:{showLeafIcon:false},titleRender:Xe,blockNode:true,switcherIcon:_(o,{}),onDrop:function e(r){if(oe){var t=oe(r);if(!t)return}var n=z(Ge,xe,r),a=n.dataList,i=n.dragNodeData;se==null?void 0:se(i);Me(a)},expandedKeys:ye},pe,{fieldNames:rr,treeData:We,onExpand:ze,loadData:t.loadDataFlag?Je:undefined,style:{width:"100%"},icon:er});var ar={onCheck:He,checkable:Y,checkedKeys:Oe};var ir={onSelect:He,multiple:false,selectedKeys:Oe};var lr=Y?ar:ir;var sr=c("v-tree-wrapper","v-tree-wrapper-menu-"+Te,de);var or=Ce.treeList.length>0&&!tr&&Ae;return A("div",{className:sr,style:s,children:[!!X&&A("div",{className:"v-tree-wrapper-search-area",style:ce,children:[_(T,{className:"v-tree-wrapper-search",placeholder:Z,onChange:$e,value:Q,allowClear:true}),!!t.searchExtraElement&&_("span",{className:"v-tree-wrapper-search-extra",children:t.searchExtraElement})]}),tr?A("div",{className:"v-tree-wrapper-tree-wrapper",children:[_(h,{spinning:Ce.requestStatus==="request-progress"}),_(g,p({},lr,nr,{className:"v-tree-wrapper-tree"}))]}):_(P,{status:Ce.requestStatus,loading:Re,messageConfig:p({"request-success":or?"搜索结果为空":"暂无数据"},$),errorButton:_(b,{type:"primary",onClick:Ke,children:"重新获取数据"})})]})}));Y.defaultProps={disabledCanUse:true};var G=i(Y,{getTreeDataList:K});export{G as TreeWrapper};
|
|
16
16
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/tree-wrapper/model.ts","@flatbiz/antd/src/tree-wrapper/hooks.ts","@flatbiz/antd/src/tree-wrapper/utils.ts","@flatbiz/antd/src/tree-wrapper/tree-wrapper.tsx","@flatbiz/antd/src/tree-wrapper/index.ts"],"sourcesContent":["import { isArray } from '@dimjs/lang';\nimport { API, ModelType } from '@dimjs/model';\nimport { Model } from '@dimjs/model-react';\nimport { TPlainObject, treeToArray, TSetDefaultDefined } from '@flatbiz/utils';\nimport { TreeProps } from 'antd';\nimport { TRequestStatus } from '../request-status';\n\nexport type ModelState = {\n treeList: TSetDefaultDefined<TreeProps['treeData'], []>;\n treeTiledArray: TPlainObject[];\n queryIsEmpty: boolean;\n requestStatus?: TRequestStatus;\n};\n\ntype ModelActionParams = {\n setTreeList: {\n treeList: ModelState['treeList'];\n childrenName: string;\n };\n resetTreeList: void;\n changeRequestStatus: TRequestStatus;\n treeListAppendChildren: {\n value: string | number;\n appendList: TPlainObject[];\n childrenName: string;\n valueName: string;\n };\n};\n\nconst defaultState: ModelState = {\n treeList: [],\n treeTiledArray: [],\n queryIsEmpty: false,\n};\n\nconst TreeWrapperModel: ModelType<ModelState, ModelActionParams> = {\n actions: {\n setTreeList: (params) => {\n return (state) => {\n state.treeList = params.treeList || [];\n state.treeTiledArray = treeToArray(state.treeList, params.childrenName);\n state.requestStatus = 'request-success';\n };\n },\n resetTreeList: () => {\n return (state) => {\n state.treeList = [];\n };\n },\n changeRequestStatus: (params) => {\n return (state) => {\n state.requestStatus = params;\n if (params === 'request-error') {\n state.treeList = [];\n }\n };\n },\n treeListAppendChildren: (params) => {\n return (state) => {\n const array = treeToArray(state.treeList, params.childrenName);\n const target = array.find((item) => item[params.valueName] === params.value);\n if (target) {\n if (isArray(params.appendList) && params.appendList.length > 0) {\n target[params.childrenName] = params.appendList;\n } else {\n target.isLeaf = true;\n }\n }\n state.treeTiledArray = treeToArray(state.treeList, params.childrenName);\n };\n },\n },\n state: defaultState,\n};\n\nconst treeWrapperModels: Record<string, API<ModelType<ModelState, ModelActionParams, any>>> = {};\n\n/**\n * ```\n * 使用方式\n * const [state, actions] = useTreeWrapperModel('key值').useStore();\n * ```\n */\nexport const treeWrapperModel = (key: string) => {\n if (!treeWrapperModels[key]) {\n treeWrapperModels[key] = Model(TreeWrapperModel);\n }\n return treeWrapperModels[key];\n};\n","import { TPlainObject } from '@flatbiz/utils';\nimport { treeWrapperModel } from './model';\n\nexport const getTreeDataList = (modelKey: string) => {\n const state = treeWrapperModel(modelKey).getState();\n return state.treeList as TPlainObject[];\n};\n","import { TAny, TPlainObject, treeLeafParentsArray, treeToTiledArray } from '@flatbiz/utils';\n\nexport const getExpandedKeys = (\n value: string | number,\n treeList: TPlainObject[],\n fieldNames?: { label?: string; value?: string; children?: string },\n) => {\n const tiledArray = treeToTiledArray(treeList, fieldNames);\n return treeLeafParentsArray(value, tiledArray, true, { value: 'value', parentValue: 'parentValue' });\n};\n\nimport { isArray, isObject } from '@dimjs/lang';\nimport { cloneState } from '@dimjs/model';\nimport { tree } from '@dimjs/utils';\nimport { isUndefinedOrNull, LabelValueItem, treeToArray } from '@flatbiz/utils';\nimport { DataNode } from 'antd/es/tree';\nimport { dequal } from 'dequal';\n\nexport const getVauleList = (data, labelInValueFieldNames: LabelValueItem<string | number>) => {\n let tempList = isUndefinedOrNull(data) ? [] : data;\n tempList = isArray(tempList) ? tempList : [tempList];\n tempList = tempList.map((item) => {\n if (isObject(item)) return item[labelInValueFieldNames.value];\n return item;\n });\n return tempList as Array<string | number>;\n};\n\nexport const array2map = (data, labelInValueFieldNames: LabelValueItem<string | number>) => {\n const list = getVauleList(data, labelInValueFieldNames);\n const map = {};\n list.forEach((item) => {\n map[item] = true;\n });\n return map;\n};\n\n/**\n * value的类型包括\n * string、number、\n * Array<string | number>、{ label: string, value: string | nuber }、\n * Array<{ label: string, value: string | nuber }>\n * 将数组转成对象,深度比较时不用考虑顺序问题\n * @param value1\n * @param value2\n * @returns\n */\nexport const treeWrapperValueDeepEqual = (\n value1: TAny,\n value2: TAny,\n labelInValueFieldNames: LabelValueItem<string | number>,\n) => {\n if (isUndefinedOrNull(value1) && isUndefinedOrNull(value2)) return true;\n const object1 = array2map(value1, labelInValueFieldNames);\n const object2 = array2map(value2, labelInValueFieldNames);\n const diff = dequal(object1, object2);\n return diff;\n};\n\ntype OnTreeDropMethod = (\n dataList: TPlainObject[],\n fieldNames: { value: string; children: string },\n info: TAny,\n) => {\n dataList: TPlainObject[];\n dragNodeData: {\n parentId?: string | number;\n id: string | number;\n index: number;\n };\n};\n\nexport const onTreeDrop: OnTreeDropMethod = (dataList, fieldNames, info) => {\n const dropKey = info.node.key;\n const dragKey = info.dragNode.key;\n const dropPos = info.node.pos.split('-');\n const dropPosition = info.dropPosition - Number(dropPos[dropPos.length - 1]);\n const treeKeyName = fieldNames.value;\n const treeChildrenName = fieldNames.children;\n\n const loop = (\n data: DataNode[],\n key: React.Key,\n callback: (node: DataNode, i: number, data: DataNode[]) => void,\n ) => {\n for (let i = 0; i < data.length; i++) {\n if (data[i][treeKeyName] === key) {\n return callback(data[i], i, data);\n }\n if (data[i][treeChildrenName]) {\n loop(data[i][treeChildrenName]!, key, callback);\n }\n }\n };\n const data = cloneState(dataList) as DataNode[];\n\n // Find dragObject\n let dragObj: DataNode;\n loop(data, dragKey, (item, index, arr) => {\n arr.splice(index, 1);\n dragObj = item;\n });\n\n if (!info.dropToGap) {\n // Drop on the content\n loop(data, dropKey, (item) => {\n item[treeChildrenName] = item[treeChildrenName] || [];\n // where to insert 示例添加到头部,可以是随意位置\n item[treeChildrenName].unshift(dragObj);\n });\n } else if (\n (info.node.props.children || []).length > 0 && // Has children\n info.node.props.expanded && // Is expanded\n dropPosition === 1 // On the bottom gap\n ) {\n loop(data, dropKey, (item) => {\n item[treeChildrenName] = item[treeChildrenName] || [];\n // where to insert 示例添加到头部,可以是随意位置\n item[treeChildrenName].unshift(dragObj);\n // in previous version, we use item.children.push(dragObj) to insert the\n // item to the tail of the children\n });\n } else {\n let ar: DataNode[] = [];\n let i: number;\n loop(data, dropKey, (_item, index, arr) => {\n ar = arr;\n i = index;\n });\n if (dropPosition === -1) {\n ar.splice(i!, 0, dragObj!);\n } else {\n ar.splice(i! + 1, 0, dragObj!);\n }\n }\n return {\n dataList: data,\n dragNodeData: dragNodeData(dragKey, data, fieldNames),\n };\n};\n\nexport const dragNodeData = (\n dorpNodeId: TAny,\n dataList: TAny[],\n fieldNames: { value: string; children: string },\n) => {\n const id = fieldNames.value;\n const children = fieldNames.children;\n tree.walkThroughTree<TPlainObject, TAny>(\n { [id]: undefined, [children]: dataList } as TAny,\n (node, index, _parent) => {\n node['__index'] = index;\n node['__parentId'] = _parent?.[id];\n },\n children,\n );\n const tileList = treeToArray(dataList, children);\n const target = tileList.find((item) => item[id] === dorpNodeId);\n return {\n parentId: target?.['__parentId'],\n id: target?.[id],\n index: target?.['__index'],\n };\n};\n","import { CaretDownFilled, MoreOutlined } from '@ant-design/icons';\nimport { isArray } from '@dimjs/lang';\nimport { cloneState } from '@dimjs/model';\nimport { classNames, extend } from '@dimjs/utils';\n\nimport { hooks } from '@wove/react';\nimport { Button, message, Spin, Tree, TreeProps } from 'antd';\nimport {\n CSSProperties,\n DependencyList,\n forwardRef,\n Fragment,\n isValidElement,\n ReactElement,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react';\n\nimport {\n isUndefinedOrNull,\n TAny,\n TPlainObject,\n treeFilter,\n treeToArray,\n treeToTiledArray,\n} from '@flatbiz/utils';\n\nimport { treeWrapperModel } from './model';\n\nimport { ButtonOperate, ButtonOperateItem, ButtonOperateProps } from '../button-operate';\nimport { DropdownMenuItem, DropdownMenuWrapper } from '../dropdown-menu-wrapper';\nimport { fbaHooks } from '../fba-hooks';\nimport { InputSearchWrapper } from '../input-search-wrapper';\nimport { RequestStatus, TRequestStatusProps } from '../request-status';\nimport './style.less';\nimport { getExpandedKeys, getVauleList, onTreeDrop } from './utils';\n\ntype TreeWrapperValue =\n | string\n | number\n | Array<string | number>\n | TPlainObject<string | number>\n | Array<TPlainObject<string | number>>;\n\ntype TreeServiceConfig = {\n params?: TPlainObject;\n requiredParamsKeys?: string[];\n onRequest?: (params?: TAny) => TAny;\n /**\n * 响应数据适配器\n */\n onRequestResultAdapter?: (respData: TAny) => TPlainObject[];\n};\ntype TreeLoadDataServiceConfig = {\n getParams: (dataItem: TPlainObject) => TPlainObject;\n onRequest: (params: TPlainObject) => TAny;\n /**\n * 响应数据适配器\n */\n onRequestResultAdapter?: (respData: TAny) => TPlainObject[];\n};\n\nexport type TreeWrapperMenuItem = {\n title: string;\n onClick: (dataItem: TPlainObject, event) => void;\n icon?: ReactElement;\n};\n\nexport type TreeWrapperProps = Omit<\n TreeProps,\n | 'treeData'\n | 'onExpand'\n | 'selectedKeys'\n | 'checkedKeys'\n | 'onCheck'\n | 'onSelect'\n | 'fieldNames'\n | 'multiple'\n | 'loadData'\n | 'icon'\n | 'defaultCheckedKeys'\n | 'defaultExpandParent'\n | 'defaultSelectedKeys'\n> & {\n modelKey: string;\n /**\n * useEffect依赖项数组,用于重新发起获取接口数据\n */\n effectDependencyList?: DependencyList;\n /**\n * 请求服务需求的数据,当设置`selectorTreeList`后无效果\n */\n serviceConfig?: TreeServiceConfig;\n loadDataServiceConfig?: TreeLoadDataServiceConfig;\n /**\n * 当设置selectorTreeList后,serviceConfig将失效\n * ```\n * 1. 不支持异步数据,异步使用serviceConfig方式\n * ```\n */\n selectorTreeList?: TPlainObject[];\n /**\n * 通过服务获取数据后回调,当设置`selectorList`后无效果\n * ```\n * 相同modelKey,同时发起多个渲染时,只有第一个会执行 onSelectorTreeListChange 回调\n * ```\n */\n onSelectorTreeListChange?: (dataList: TPlainObject[]) => void;\n onRequestResponseChange?: (data: TAny) => void;\n onChange?: (\n selectedKey?: TreeWrapperValue,\n operateNodeData?: TPlainObject[] | TPlainObject,\n operateAllNodeDataList?: TPlainObject[],\n extraData?: TPlainObject,\n ) => void;\n fieldNames?: { label?: string; value?: string; children?: string };\n /**\n * 搜索关键字,打开tree折叠过滤关键字\n */\n searchValue?: string;\n /**\n * checkable模式下,onChange是否返回父节点,默认值true\n * 1. checkStrictly = true,模式下失效\n */\n checkableResponseParentNode?: boolean;\n loadDataFlag?: boolean;\n /**\n * 菜单结构类型 tile/平铺 fold/折叠;默认:fold\n * @deprecated 已过期 4.3.0版本移除,请使用 menus\n * ```\n * 自定义设置 titleRender 后失效\n * ```\n */\n menuLayoutType?: 'tile' | 'fold';\n /**\n * 获取菜单类别\n * @param dataItem\n * @deprecated 已过期 4.3.0版本移除,请使用 menus\n * @returns\n * ```\n * 1. menuLayoutType = tile 无效\n * 2. 自定义设置 titleRender 后失效\n * ```\n */\n getMenuOptions?: (dataItem: TPlainObject) => DropdownMenuItem[] | ButtonOperateItem[];\n /**\n * 根据 menuLayoutType 类型赋值\n * @deprecated 已过期 4.3.0版本移除,请使用 menuOptions\n */\n menuOptions?: {\n tile?: (dataItem: TPlainObject) => ButtonOperateProps;\n fold?: (dataItem: TPlainObject) => DropdownMenuItem[];\n };\n /**\n * 菜单触发类型,默认:click\n * ```\n * 自定义设置 titleRender 后失效\n * ```\n */\n menuTriggerType?: 'click' | 'hover';\n menus?: (dataItem) => ButtonOperateProps;\n\n showSearch?: boolean;\n onSearchValueChange?: (searchValue?: string) => void;\n searchPlaceholder?: string;\n searchStyle?: CSSProperties;\n icon?: (data: { isParent: boolean; isLeaf: boolean }) => ReactElement;\n /**\n * 是否必选,最后一个不能取消\n */\n // required?: boolean;\n requestMessageConfig?: TRequestStatusProps['messageConfig'];\n /**\n * value格式\n *```\n * 1. string 、number\n * 2. Array<string | number>\n * 3. lableInValue = true,根据labelInValueFieldNames配置格式\n * 4. lableInValue = true,Array<labelInValueFieldNames配置>\n * ```\n */\n value?: TreeWrapperValue;\n labelInValue?: boolean;\n /**\n * ```\n * lableInValue = true,onChange输出数据字段名称,默认:{ label: string; value: string|number }\n * ```\n */\n labelInValueFieldNames?: { label: string; value: string };\n /**\n * 禁用状态是否可选,默认值true\n * 当dateItem中包含 disabled 则数据为禁用状态\n */\n disabledCanUse?: boolean;\n\n /** treeItem数据适配器 */\n treeItemDataAdapter?: (dataItem: TPlainObject) => TPlainObject;\n /** 搜索位置额外元素 */\n searchExtraElement?: ReactElement;\n /** 有唯一跟节点时,初始化是否展开,默认值:false */\n initRootExpand?: boolean;\n /** 搜素过滤方式,高亮 | 过滤;默认:filter */\n searchResultType?: 'highlight' | 'filter';\n /**\n * 拖拽节点处理,自定义onDrop事件后,失效\n * ```\n * 参数\n * 1. parentId 当前拖拽节点的父节点ID\n * 2. id 当前拖拽节点ID\n * 3. index 当前拖拽节点所在数组下标\n * ```\n */\n onDropNodeHandle?: (result: { parentId?: string | number; id: string | number; index: number }) => void;\n /**\n * 拖拽排序前判断,如果返回 true,可排序,其他不可排序\n * ```\n * 可用于需要权限控制判断\n * ```\n */\n onDropPrev?: (info) => boolean;\n /**\n * 标签渲染\n * ```\n * 1. 自定义设置 titleRender 后失效\n * 2. 与titleRender的区别\n * a. 设置 labelRender 后,menuLayout有效\n * b. 设置 titleRender 后,menuLayout失效\n * ```\n */\n labelRender?: (nodeData: TPlainObject) => ReactElement;\n};\n\nexport type TreeWrapperRefApi = {\n onClearSelectorList: () => void;\n getTreeDataList: () => TreeProps['treeData'];\n onChangeExpandedKeys: (expandedKeys: Array<string | number>) => void;\n};\n\n/**\n * Tree包装组件,默认返回父节点,可配置不返回\n * @param props\n * @returns\n * ```\n * 1. treeNode内置字段说明(如需要相关功能,可在接口中添加固定字段)\n * a. disabled 禁掉响应\n * b. isLeaf 设置为叶子节点 (设置了 loadData 时有效)。为 false 时会强制将其作为父节点\n * c. disableCheckbox checkable模式下,treeNode复选框是否可选\n * 2. 当设置selectorTreeList属性后,serviceConfig将失效\n * 3. checkable=true,为多选模式\n * 4. 设置value后,组件显示受控\n * 5. 设置loadDataFlag=true,会动态获取children,当treeNode中包含isLeaf=true字段,表示为叶子节点,没有children了\n * 6. 内置 onDrop 事件已处理数组排序,通过 onDropNodeHandle 事件可获取操作节点排序数据;自定义onDrop后,内置onDrop失效\n * ```\n */\nexport const TreeWrapper = forwardRef<TreeWrapperRefApi, TreeWrapperProps>((props, ref) => {\n const {\n style,\n serviceConfig,\n effectDependencyList,\n selectorTreeList,\n value,\n onChange,\n modelKey,\n checkableResponseParentNode = true,\n checkable,\n onSelectorTreeListChange,\n onRequestResponseChange,\n treeItemDataAdapter,\n searchValue,\n showSearch,\n searchPlaceholder,\n requestMessageConfig,\n labelInValueFieldNames,\n labelInValue,\n disabledCanUse,\n menuLayoutType,\n menuTriggerType,\n initRootExpand,\n searchResultType,\n onDropNodeHandle,\n onDropPrev,\n labelRender,\n searchStyle,\n className,\n defaultExpandAll,\n menus,\n ...otherProps\n } = props;\n const hasSelectorTreeList = props.hasOwnProperty('selectorTreeList');\n const newServiceConfig = serviceConfig || {};\n const newEffectDependencyList = effectDependencyList || [];\n const [treeExpandedKeys, setTreeExpandedKeys] = useState<React.Key[]>([]);\n const [state, actions] = treeWrapperModel(modelKey).useStore();\n const [loading, setLoading] = fbaHooks.useSafeState(false);\n const requestPreKey = `request-progress-${props.modelKey}`;\n const fieldNames = useMemo(() => {\n return { label: 'label', value: 'value', children: 'children', ...props.fieldNames };\n }, [props.fieldNames]);\n const menuLayoutTypeNew = menuLayoutType === undefined ? 'fold' : menuLayoutType;\n const menuTriggerTypeNew = menuTriggerType === undefined ? 'click' : menuTriggerType;\n const responseFirstRef = useRef(true);\n\n const labelInValueFieldNamesMerge = useMemo(() => {\n return { label: 'label', value: 'value', ...labelInValueFieldNames };\n }, [labelInValueFieldNames]);\n // tree 搜索值\n const [treeSearchValue, setTreeSearchValue] = useState<string>();\n\n const innerOperateValueRef = useRef<Array<string | number> | string | number>();\n\n const valueList = useMemo(() => {\n const tempList = getVauleList(value, labelInValueFieldNamesMerge);\n return tempList;\n }, [labelInValueFieldNamesMerge, value]);\n\n fbaHooks.useEffectCustom(() => {\n if (state.treeList.length > 0) {\n if (responseFirstRef.current) {\n responseFirstRef.current = false;\n if (defaultExpandAll) {\n const allValues = treeToArray(state.treeList, fieldNames.children).map((item) => {\n return item[fieldNames.value];\n });\n setTreeExpandedKeys(allValues);\n return;\n } else if (initRootExpand && state.treeList.length) {\n setTreeExpandedKeys([state.treeList[0][fieldNames.value]]);\n return;\n }\n }\n if (!isUndefinedOrNull(value)) {\n const expandedKeys = getTreeExpandedKeys(valueList, true);\n setTreeExpandedKeys(Array.from(new Set(treeExpandedKeys?.concat(expandedKeys))));\n }\n }\n }, [value, state.treeList, valueList]);\n\n const valueIsEmpty = (data: string | number) => {\n return data === '' || isUndefinedOrNull(data);\n };\n\n const serviceResponseHandle = (respData) => {\n const respDataList = (\n newServiceConfig.onRequestResultAdapter\n ? newServiceConfig.onRequestResultAdapter(respData as unknown as TPlainObject)\n : respData\n ) as TPlainObject[];\n return respDataList;\n };\n\n fbaHooks.useEffectCustom(() => {\n setTreeSearchValue(searchValue);\n }, [searchValue]);\n\n const startDataSourceRequest = hooks.useCallbackRef(async () => {\n try {\n if (!newServiceConfig.onRequest) {\n throw new Error('onRequest 调用接口服务不能为空');\n }\n const requiredParamsKeys = newServiceConfig.requiredParamsKeys;\n const params = extend({}, newServiceConfig.params);\n if (requiredParamsKeys) {\n const isEmpty = requiredParamsKeys.find((key) => {\n return valueIsEmpty(params[key] as string | number);\n });\n if (isEmpty) {\n console.warn(`TreeWrapper组件:参数:${requiredParamsKeys.join('、')}不能为空`);\n return;\n }\n }\n try {\n setLoading(true);\n await actions.changeRequestStatus('request-progress');\n window[requestPreKey] = true;\n const _respData = await newServiceConfig.onRequest?.(params);\n onRequestResponseChange?.(_respData);\n const respData = serviceResponseHandle(_respData) as TreeProps['treeData'];\n const respDataListNew = respData || [];\n if (respDataListNew.length === 0) {\n responseFirstRef.current = false;\n }\n onChangeSelectorList(respDataListNew);\n setLoading(false);\n\n window[requestPreKey] = false;\n } catch (error) {\n window[requestPreKey] = false;\n setLoading(false);\n void actions.changeRequestStatus('request-error');\n }\n } catch (error: TAny) {\n responseFirstRef.current = false;\n setLoading(false);\n void message.error((error.message as string) || '数据查询异常...');\n }\n });\n\n fbaHooks.useEffectCustom(() => {\n if (hasSelectorTreeList) return;\n // 当无依赖项时,如果存在缓存数据,就不在调用接口\n if (Boolean(newEffectDependencyList.length)) {\n void startDataSourceRequest();\n return;\n }\n const allState = treeWrapperModel(modelKey).getState();\n if (allState.requestStatus === 'request-success') {\n onSelectorTreeListChange?.(allState.treeList);\n return;\n }\n // 判断相同的modelKey是否已经在请求数据中,避免重复请求\n if (!window[requestPreKey]) {\n void startDataSourceRequest();\n } else {\n onSelectorTreeListChange?.(allState.treeList);\n }\n }, newEffectDependencyList);\n\n fbaHooks.useEffectCustom(() => {\n if (hasSelectorTreeList) {\n onChangeSelectorList(selectorTreeList || []);\n }\n }, [selectorTreeList]);\n\n const onChangeSelectorList = hooks.useCallbackRef((dataList: TAny[]) => {\n if (dataList?.length === 0 && state.treeList.length === 0) {\n void actions.changeRequestStatus('request-success');\n return;\n }\n void actions.setTreeList({\n treeList: dataList || [],\n childrenName: fieldNames.children,\n });\n onSelectorTreeListChange?.(dataList);\n });\n\n const getTreeExpandedKeys = (valueList: Array<string | number>, refresh?: boolean) => {\n let newTreeExpandedKeys = [] as Array<string | number>;\n valueList.forEach((value) => {\n if (!refresh && treeExpandedKeys?.includes(value)) return;\n const targetList = getExpandedKeys(value, state.treeList, fieldNames);\n newTreeExpandedKeys = newTreeExpandedKeys.concat(targetList.map((item) => item.value));\n });\n return newTreeExpandedKeys;\n };\n\n hooks.useUpdateEffect(() => {\n if (treeSearchValue) {\n const tiledArray = treeToTiledArray(state.treeList || [], fieldNames);\n const targetList = tiledArray.filter((item) => item.label?.includes(treeSearchValue || ''));\n setTreeExpandedKeys((prev) => {\n const mergeList = getTreeExpandedKeys(targetList.map((item) => item.value)).concat(prev || []);\n return Array.from(new Set(mergeList));\n });\n } else {\n setTreeExpandedKeys([]);\n }\n }, [treeSearchValue]);\n\n useImperativeHandle(ref, () => {\n return {\n onClearSelectorList: () => {\n void actions.resetTreeList();\n },\n getTreeDataList: () => {\n return state.treeList;\n },\n onChangeExpandedKeys: (dataList) => {\n setTreeExpandedKeys(dataList);\n },\n };\n });\n\n const onExpand = hooks.useCallbackRef((expandedKeys) => {\n setTreeExpandedKeys(expandedKeys as string[]);\n });\n\n const onRespChange = hooks.useCallbackRef((selectedKey, selectInfo?, selectAllList?, operateInfo?) => {\n innerOperateValueRef.current = selectedKey;\n const selectList = isUndefinedOrNull(selectInfo) ? [] : isArray(selectInfo) ? selectInfo : [selectInfo];\n if (isUndefinedOrNull(selectedKey)) {\n onChange?.(selectedKey, selectInfo, selectAllList);\n return;\n }\n if (labelInValue) {\n const lvLabel = labelInValueFieldNamesMerge.label;\n const lvValue = labelInValueFieldNamesMerge.value;\n const labelInValueList = selectList.map((item) => {\n return {\n [lvLabel]: item[fieldNames.label],\n [lvValue]: item[fieldNames.value],\n };\n });\n if (isArray(selectedKey)) {\n onChange?.(labelInValueList, selectList, selectAllList, operateInfo);\n } else {\n onChange?.(labelInValueList[0], selectList[0], selectAllList, operateInfo);\n }\n } else {\n if (isArray(selectedKey)) {\n onChange?.(selectedKey, selectList, selectAllList, operateInfo);\n } else {\n onChange?.(selectedKey, selectList[0], selectAllList, operateInfo);\n }\n }\n });\n\n const onTreeChangeHandle = hooks.useCallbackRef((checkedData, operateInfo) => {\n let checkedValueList = isUndefinedOrNull(checkedData) ? [] : checkedData;\n checkedValueList = props.checkStrictly ? checkedData.checked : checkedData;\n\n checkedValueList = isArray(checkedValueList) ? checkedValueList : [checkedValueList];\n\n const selectedLeafList = [] as TPlainObject[];\n const selectedLeafValueList = [] as Array<string | number>;\n const selectedAllList = [] as TPlainObject[];\n const selectedAllValueList = [] as Array<string | number>;\n checkedValueList.forEach((item) => {\n const target = state.treeTiledArray.find((temp) => temp[fieldNames.value] === item);\n if (!target) return;\n const children = target?.[fieldNames.children];\n if (!isArray(children) || children.length === 0) {\n selectedLeafList.push(target);\n selectedLeafValueList.push(target[fieldNames.value]);\n }\n selectedAllList.push(target);\n selectedAllValueList.push(target[fieldNames.value]);\n });\n\n if (checkable) {\n setTreeExpandedKeys((prev) => {\n const mergeList = getTreeExpandedKeys(selectedLeafValueList).concat(prev || []);\n return Array.from(new Set(mergeList));\n });\n if (!checkableResponseParentNode && !props.checkStrictly) {\n onRespChange(selectedLeafValueList, selectedLeafList, selectedAllList, operateInfo);\n } else {\n onRespChange(selectedAllValueList, selectedAllList, selectedAllList, operateInfo);\n }\n } else {\n if (checkedValueList[0]) {\n const currentNode = selectedAllList.find((item) => item[fieldNames.value] === checkedValueList[0]);\n onRespChange(checkedValueList[0], currentNode, [currentNode], operateInfo);\n } else {\n const nodeValue = operateInfo.node[fieldNames.value];\n const target = state.treeTiledArray.find((temp) => temp[fieldNames.value] === nodeValue);\n onRespChange(undefined, target, [target], operateInfo);\n }\n }\n });\n\n const treeItemDataAdapterHandle = hooks.useCallbackRef((dataItem) => {\n return treeItemDataAdapter?.(dataItem);\n });\n\n const originalDataList = useMemo(() => {\n const list = cloneState(state.treeList || []);\n if (treeSearchValue && searchResultType !== 'highlight') {\n return treeFilter(\n cloneState(state.treeList || []),\n (node) => {\n const value = node[fieldNames.label]?.toLowerCase();\n return value.indexOf(treeSearchValue.toLowerCase()) >= 0;\n },\n { childrenName: fieldNames.children },\n );\n }\n return list;\n }, [fieldNames.children, fieldNames.label, searchResultType, state.treeList, treeSearchValue]);\n\n const treeData = useMemo(() => {\n const loop = (data: TAny[]): TAny[] =>\n data?.map((item) => {\n const adapterItem = treeItemDataAdapterHandle?.(item) || item;\n const disabled = disabledCanUse ? undefined : adapterItem.disabled;\n const strTitle = adapterItem[fieldNames.label] as string;\n let titleDom;\n if (treeSearchValue) {\n const index = strTitle.indexOf(treeSearchValue);\n const beforeStr = strTitle.substring(0, index);\n const afterStr = strTitle.slice(index + treeSearchValue.length);\n titleDom =\n index > -1 ? (\n <span className={classNames({ 'v-tree-item-disabled': adapterItem.disabled })}>\n {beforeStr}\n <span className=\"site-tree-search-value\">{treeSearchValue}</span>\n {afterStr}\n </span>\n ) : null;\n }\n if (!titleDom && adapterItem.disabled) {\n titleDom = (\n <span className={classNames({ 'v-tree-item-disabled': adapterItem.disabled })}>{strTitle}</span>\n );\n }\n const children = adapterItem[fieldNames.children];\n return {\n ...adapterItem,\n disabled,\n [fieldNames.label]: titleDom || strTitle,\n _treeItemName: strTitle,\n _disabled: adapterItem.disabled,\n [fieldNames.children]: isArray(children) && children.length > 0 ? loop(children) : undefined,\n };\n });\n return loop(originalDataList);\n }, [\n originalDataList,\n treeItemDataAdapterHandle,\n disabledCanUse,\n fieldNames.label,\n fieldNames.children,\n treeSearchValue,\n ]);\n\n const loadData = hooks.useCallbackRef((dataItem: TPlainObject) => {\n return new Promise<void>(async (resolve, reject) => {\n if (dataItem[fieldNames.children]) {\n resolve();\n return;\n }\n try {\n const respData = await props.loadDataServiceConfig?.onRequest?.(\n props.loadDataServiceConfig?.getParams?.(dataItem),\n );\n const respDataList = (\n newServiceConfig.onRequestResultAdapter\n ? newServiceConfig.onRequestResultAdapter(respData as unknown as TPlainObject)\n : respData\n ) as TPlainObject[];\n void actions\n .treeListAppendChildren({\n value: dataItem[fieldNames.value],\n appendList: respDataList,\n childrenName: fieldNames.children,\n valueName: fieldNames.value,\n })\n .then((allState) => {\n onChangeSelectorList(allState.treeList as TPlainObject[]);\n resolve();\n });\n } catch (error: TAny) {\n void message.error(error.message || '数据加载异常...');\n // 此处失败后,会重试“loadData”请求多次\n reject();\n }\n });\n });\n\n const isLeafNode = hooks.useCallbackRef((nodeData) => {\n const children = nodeData?.[fieldNames.children];\n // 当loadDataFlag=true,考虑叶子节点显示问题\n const loadDataFlag = props.loadDataFlag;\n const loadHasChildren = loadDataFlag ? !nodeData.isLeaf : false;\n const hasChildren = (children && children.length > 0) || loadHasChildren;\n return !hasChildren;\n });\n\n const titleRender = hooks.useCallbackRef((nodeData) => {\n const stringLabel = nodeData._treeItemName || nodeData[fieldNames.label];\n const buttonOperateConfig = menus?.({\n ...nodeData,\n [fieldNames.label]: stringLabel,\n });\n if (buttonOperateConfig) {\n return (\n <Fragment>\n <span className=\"tree-item-title\">{labelRender?.(nodeData) || nodeData?.[fieldNames.label]}</span>\n <ButtonOperate\n gap={5}\n {...buttonOperateConfig}\n dropdownMenuProps={{\n placement: 'bottomRight',\n isFixed: true,\n ...buttonOperateConfig?.dropdownMenuProps,\n }}\n className={classNames('tree-item-title-operate', buttonOperateConfig.className)}\n />\n </Fragment>\n );\n }\n\n if (menuLayoutTypeNew === 'fold') {\n let menuOptions: TAny[] = [];\n if (props.menuOptions?.fold) {\n menuOptions =\n props.menuOptions?.[menuLayoutTypeNew]?.({\n ...nodeData,\n [fieldNames.label]: stringLabel,\n }) || [];\n } else {\n menuOptions =\n props.getMenuOptions?.({\n ...nodeData,\n [fieldNames.label]: stringLabel,\n }) || [];\n }\n return (\n <Fragment>\n <span className=\"tree-item-title\">{labelRender?.(nodeData) || nodeData?.[fieldNames.label]}</span>\n {menuOptions.length > 0 && (\n <DropdownMenuWrapper menuList={menuOptions} placement=\"bottomRight\">\n <MoreOutlined />\n </DropdownMenuWrapper>\n )}\n </Fragment>\n );\n }\n const menuOptions = props.menuOptions?.tile?.({\n ...nodeData,\n [fieldNames.label]: stringLabel,\n });\n\n return (\n <Fragment>\n <span className=\"tree-item-title\">{labelRender?.(nodeData) || nodeData?.[fieldNames.label]}</span>\n {menuOptions ? (\n <ButtonOperate\n gap={5}\n {...menuOptions}\n className={classNames('tree-item-title-operate', menuOptions.className)}\n />\n ) : null}\n </Fragment>\n );\n });\n\n const onChangeDebounce = hooks.useDebounceCallback((value: string) => {\n setTreeSearchValue(value);\n props.onSearchValueChange?.(value);\n }, 300);\n\n const onSearchChange = hooks.useCallbackRef((e: React.ChangeEvent<HTMLInputElement>) => {\n onChangeDebounce(e.target.value);\n });\n\n const iconHandle = hooks.useCallbackRef((treeData) => {\n if (!props.icon) return null;\n if (isValidElement(props.icon)) return props.icon;\n const isLeafFlag = isLeafNode(treeData.data);\n return props.icon({\n ...treeData,\n isParent: !isLeafFlag,\n isLeaf: isLeafFlag,\n });\n });\n\n const treeFieldNames = useMemo(() => {\n return { title: fieldNames.label, key: fieldNames.value, children: fieldNames.children };\n }, [fieldNames]);\n const showTree = treeData.length > 0 && state.requestStatus !== 'request-error';\n const commonProps = {\n showLine: { showLeafIcon: false },\n titleRender,\n blockNode: true,\n switcherIcon: <CaretDownFilled />,\n onDrop: (info) => {\n if (onDropPrev) {\n const boo = onDropPrev(info);\n if (!boo) return;\n }\n const { dataList, dragNodeData } = onTreeDrop(originalDataList as TPlainObject[], fieldNames, info);\n onDropNodeHandle?.(dragNodeData);\n onChangeSelectorList(dataList);\n },\n expandedKeys: treeExpandedKeys,\n ...otherProps,\n fieldNames: treeFieldNames,\n treeData,\n onExpand,\n loadData: props.loadDataFlag ? loadData : undefined,\n style: { width: '100%' },\n icon: iconHandle,\n };\n\n const checkedProps = {\n onCheck: onTreeChangeHandle,\n checkable,\n checkedKeys: valueList,\n };\n\n const selectedProps = {\n onSelect: onTreeChangeHandle,\n multiple: false,\n selectedKeys: valueList,\n };\n const sceneProps = checkable ? checkedProps : selectedProps;\n const cName = classNames('v-tree-wrapper', `v-tree-wrapper-menu-${menuTriggerTypeNew}`, className);\n const isSearchEmpty = state.treeList.length > 0 && !showTree && treeSearchValue;\n return (\n <div className={cName} style={style}>\n {!!showSearch && (\n <div className=\"v-tree-wrapper-search-area\" style={searchStyle}>\n <InputSearchWrapper\n className=\"v-tree-wrapper-search\"\n placeholder={searchPlaceholder}\n onChange={onSearchChange}\n value={searchValue}\n allowClear\n />\n {!!props.searchExtraElement && (\n <span className=\"v-tree-wrapper-search-extra\">{props.searchExtraElement}</span>\n )}\n </div>\n )}\n\n {showTree ? (\n <div className=\"v-tree-wrapper-tree-wrapper\">\n <Spin spinning={state.requestStatus === 'request-progress'} />\n <Tree {...sceneProps} {...commonProps} className=\"v-tree-wrapper-tree\"></Tree>\n </div>\n ) : (\n <RequestStatus\n status={state.requestStatus}\n loading={loading}\n messageConfig={{\n 'request-success': isSearchEmpty ? '搜索结果为空' : '暂无数据',\n ...requestMessageConfig,\n }}\n errorButton={\n <Button type=\"primary\" onClick={startDataSourceRequest}>\n 重新获取数据\n </Button>\n }\n />\n )}\n </div>\n );\n});\n\nTreeWrapper.defaultProps = {\n disabledCanUse: true,\n};\n","import { attachPropertiesToComponent } from '@flatbiz/utils';\nimport { getTreeDataList } from './hooks';\nimport { TreeWrapper as TreeWrapperInner } from './tree-wrapper';\nexport type * from './tree-wrapper';\n/**\n * Tree包装组件,默认返回父节点,可配置不返回\n * @param props\n * @returns\n * ```\n * 1. treeNode内置字段说明(如需要相关功能,可在接口中添加固定字段)\n * a. disabled 禁掉响应\n * b. isLeaf 设置为叶子节点 (设置了 loadData 时有效)。为 false 时会强制将其作为父节点\n * c. disableCheckbox checkable模式下,treeNode复选框是否可选\n * 2. 当设置selectorTreeList属性后,serviceConfig将失效\n * 3. checkable=true,为多选模式\n * 4. 设置value后,组件显示受控\n * 5. 设置loadDataFlag=true,会动态获取children,当treeNode中包含isLeaf=true字段,表示为叶子节点,没有children了\n * 6. 内置 onDrop 事件已处理数组排序,通过 onDropNodeHandle 事件可获取操作节点排序数据;自定义onDrop后,内置onDrop失效\n * ```\n */\nexport const TreeWrapper = attachPropertiesToComponent(TreeWrapperInner, {\n /**\n * 获取树形原数据\n * ```\n * 参数 modelKey 与 TreeWrapper属性 modelKey相同,才能获取数据\n * ```\n */\n getTreeDataList: getTreeDataList,\n});\n"],"names":["defaultState","treeList","treeTiledArray","queryIsEmpty","TreeWrapperModel","actions","setTreeList","params","state","treeToArray","childrenName","requestStatus","resetTreeList","changeRequestStatus","treeListAppendChildren","array","target","find","item","valueName","value","_isArray","appendList","length","isLeaf","treeWrapperModels","treeWrapperModel","key","Model","getTreeDataList","modelKey","getState","getExpandedKeys","fieldNames","tiledArray","treeToTiledArray","treeLeafParentsArray","parentValue","getVauleList","data","labelInValueFieldNames","tempList","isUndefinedOrNull","map","_isObject","onTreeDrop","dataList","info","dropKey","node","dragKey","dragNode","dropPos","pos","split","dropPosition","Number","treeKeyName","treeChildrenName","children","loop","callback","i","cloneState","dragObj","index","arr","splice","dropToGap","unshift","props","expanded","ar","_item","dragNodeData","dorpNodeId","_tree$walkThroughTree","id","_tree","walkThroughTree","undefined","_parent","tileList","parentId","TreeWrapper","forwardRef","ref","style","serviceConfig","effectDependencyList","selectorTreeList","onChange","_props$checkableRespo","checkableResponseParentNode","checkable","onSelectorTreeListChange","onRequestResponseChange","treeItemDataAdapter","searchValue","showSearch","searchPlaceholder","requestMessageConfig","labelInValue","disabledCanUse","menuLayoutType","menuTriggerType","initRootExpand","searchResultType","onDropNodeHandle","onDropPrev","labelRender","searchStyle","className","defaultExpandAll","menus","otherProps","_objectWithoutPropertiesLoose","_excluded","hasSelectorTreeList","hasOwnProperty","newServiceConfig","newEffectDependencyList","_useState","useState","treeExpandedKeys","setTreeExpandedKeys","_treeWrapperModel$use","useStore","_fbaHooks$useSafeStat","fbaHooks","useSafeState","loading","setLoading","requestPreKey","useMemo","_extends","label","menuLayoutTypeNew","menuTriggerTypeNew","responseFirstRef","useRef","labelInValueFieldNamesMerge","_useState2","treeSearchValue","setTreeSearchValue","innerOperateValueRef","valueList","useEffectCustom","current","allValues","expandedKeys","getTreeExpandedKeys","Array","from","Set","concat","valueIsEmpty","serviceResponseHandle","respData","respDataList","onRequestResultAdapter","startDataSourceRequest","_hooks","useCallbackRef","Promise","$return","$error","requiredParamsKeys","_params","isEmpty","_respData","_respData2","respDataListNew","$Try_1_Post","$boundEx","$Try_1_Catch","error","message","onRequest","Error","_extend","console","warn","join","$Try_2_Post","$Try_2_Catch","window","resolve","then","$await_4","$await_5","onChangeSelectorList","Boolean","allState","refresh","newTreeExpandedKeys","forEach","includes","targetList","useUpdateEffect","filter","_item$label","prev","mergeList","useImperativeHandle","onClearSelectorList","onChangeExpandedKeys","onExpand","onRespChange","selectedKey","selectInfo","selectAllList","operateInfo","selectList","lvLabel","lvValue","labelInValueList","_ref","onTreeChangeHandle","checkedData","checkedValueList","checkStrictly","checked","selectedLeafList","selectedLeafValueList","selectedAllList","selectedAllValueList","temp","push","currentNode","nodeValue","treeItemDataAdapterHandle","dataItem","originalDataList","list","treeFilter","_node$fieldNames$labe","toLowerCase","indexOf","treeData","_extends2","adapterItem","disabled","strTitle","titleDom","beforeStr","substring","afterStr","slice","_jsxs","_classNames","_jsx","_treeItemName","_disabled","loadData","reject","_props$loadDataServic","_props$loadDataServic2","_respData3","$Try_3_Post","$Try_3_Catch","loadDataServiceConfig","getParams","$await_6","isLeafNode","nodeData","loadDataFlag","loadHasChildren","hasChildren","titleRender","_extends3","_props$menuOptions3","_extends6","stringLabel","buttonOperateConfig","Fragment","ButtonOperate","gap","dropdownMenuProps","placement","isFixed","_props$menuOptions","menuOptions","fold","_props$menuOptions2","_props$menuOptions2$m","_extends4","call","_extends5","getMenuOptions","DropdownMenuWrapper","menuList","_MoreOutlined","tile","onChangeDebounce","useDebounceCallback","onSearchValueChange","onSearchChange","e","iconHandle","icon","isValidElement","isLeafFlag","isParent","treeFieldNames","title","showTree","commonProps","showLine","showLeafIcon","blockNode","switcherIcon","_CaretDownFilled","onDrop","boo","_onTreeDrop","width","checkedProps","onCheck","checkedKeys","selectedProps","onSelect","multiple","selectedKeys","sceneProps","cName","isSearchEmpty","InputSearchWrapper","placeholder","allowClear","searchExtraElement","Spin","spinning","Tree","RequestStatus","status","messageConfig","errorButton","Button","type","onClick","defaultProps","attachPropertiesToComponent","TreeWrapperInner"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/tree-wrapper/model.ts","@flatbiz/antd/src/tree-wrapper/hooks.ts","@flatbiz/antd/src/tree-wrapper/utils.ts","@flatbiz/antd/src/tree-wrapper/tree-wrapper.tsx","@flatbiz/antd/src/tree-wrapper/index.ts"],"sourcesContent":["import { isArray } from '@dimjs/lang';\nimport { API, ModelType } from '@dimjs/model';\nimport { Model } from '@dimjs/model-react';\nimport { TPlainObject, treeToArray, TSetDefaultDefined } from '@flatbiz/utils';\nimport { TreeProps } from 'antd';\nimport { TRequestStatus } from '../request-status';\n\nexport type ModelState = {\n treeList: TSetDefaultDefined<TreeProps['treeData'], []>;\n treeTiledArray: TPlainObject[];\n queryIsEmpty: boolean;\n requestStatus?: TRequestStatus;\n};\n\ntype ModelActionParams = {\n setTreeList: {\n treeList: ModelState['treeList'];\n childrenName: string;\n };\n resetTreeList: void;\n changeRequestStatus: TRequestStatus;\n treeListAppendChildren: {\n value: string | number;\n appendList: TPlainObject[];\n childrenName: string;\n valueName: string;\n };\n};\n\nconst defaultState: ModelState = {\n treeList: [],\n treeTiledArray: [],\n queryIsEmpty: false,\n};\n\nconst TreeWrapperModel: ModelType<ModelState, ModelActionParams> = {\n actions: {\n setTreeList: (params) => {\n return (state) => {\n state.treeList = params.treeList || [];\n state.treeTiledArray = treeToArray(state.treeList, params.childrenName);\n state.requestStatus = 'request-success';\n };\n },\n resetTreeList: () => {\n return (state) => {\n state.treeList = [];\n };\n },\n changeRequestStatus: (params) => {\n return (state) => {\n state.requestStatus = params;\n if (params === 'request-error') {\n state.treeList = [];\n }\n };\n },\n treeListAppendChildren: (params) => {\n return (state) => {\n const array = treeToArray(state.treeList, params.childrenName);\n const target = array.find((item) => item[params.valueName] === params.value);\n if (target) {\n if (isArray(params.appendList) && params.appendList.length > 0) {\n target[params.childrenName] = params.appendList;\n } else {\n target.isLeaf = true;\n }\n }\n state.treeTiledArray = treeToArray(state.treeList, params.childrenName);\n };\n },\n },\n state: defaultState,\n};\n\nconst treeWrapperModels: Record<string, API<ModelType<ModelState, ModelActionParams, any>>> = {};\n\n/**\n * ```\n * 使用方式\n * const [state, actions] = useTreeWrapperModel('key值').useStore();\n * ```\n */\nexport const treeWrapperModel = (key: string) => {\n if (!treeWrapperModels[key]) {\n treeWrapperModels[key] = Model(TreeWrapperModel);\n }\n return treeWrapperModels[key];\n};\n","import { TPlainObject } from '@flatbiz/utils';\nimport { treeWrapperModel } from './model';\n\nexport const getTreeDataList = (modelKey: string) => {\n const state = treeWrapperModel(modelKey).getState();\n return state.treeList as TPlainObject[];\n};\n","import { TAny, TPlainObject, treeLeafParentsArray, treeToTiledArray } from '@flatbiz/utils';\n\nexport const getExpandedKeys = (\n value: string | number,\n treeList: TPlainObject[],\n fieldNames?: { label?: string; value?: string; children?: string },\n) => {\n const tiledArray = treeToTiledArray(treeList, fieldNames);\n return treeLeafParentsArray(value, tiledArray, true, { value: 'value', parentValue: 'parentValue' });\n};\n\nimport { isArray, isObject } from '@dimjs/lang';\nimport { cloneState } from '@dimjs/model';\nimport { tree } from '@dimjs/utils';\nimport { isUndefinedOrNull, LabelValueItem, treeToArray } from '@flatbiz/utils';\nimport { DataNode } from 'antd/es/tree';\nimport { dequal } from 'dequal';\n\nexport const getVauleList = (data, labelInValueFieldNames: LabelValueItem<string | number>) => {\n let tempList = isUndefinedOrNull(data) ? [] : data;\n tempList = isArray(tempList) ? tempList : [tempList];\n tempList = tempList.map((item) => {\n if (isObject(item)) return item[labelInValueFieldNames.value];\n return item;\n });\n return tempList as Array<string | number>;\n};\n\nexport const array2map = (data, labelInValueFieldNames: LabelValueItem<string | number>) => {\n const list = getVauleList(data, labelInValueFieldNames);\n const map = {};\n list.forEach((item) => {\n map[item] = true;\n });\n return map;\n};\n\n/**\n * value的类型包括\n * string、number、\n * Array<string | number>、{ label: string, value: string | nuber }、\n * Array<{ label: string, value: string | nuber }>\n * 将数组转成对象,深度比较时不用考虑顺序问题\n * @param value1\n * @param value2\n * @returns\n */\nexport const treeWrapperValueDeepEqual = (\n value1: TAny,\n value2: TAny,\n labelInValueFieldNames: LabelValueItem<string | number>,\n) => {\n if (isUndefinedOrNull(value1) && isUndefinedOrNull(value2)) return true;\n const object1 = array2map(value1, labelInValueFieldNames);\n const object2 = array2map(value2, labelInValueFieldNames);\n const diff = dequal(object1, object2);\n return diff;\n};\n\ntype OnTreeDropMethod = (\n dataList: TPlainObject[],\n fieldNames: { value: string; children: string },\n info: TAny,\n) => {\n dataList: TPlainObject[];\n dragNodeData: {\n parentId?: string | number;\n id: string | number;\n index: number;\n };\n};\n\nexport const onTreeDrop: OnTreeDropMethod = (dataList, fieldNames, info) => {\n const dropKey = info.node.key;\n const dragKey = info.dragNode.key;\n const dropPos = info.node.pos.split('-');\n const dropPosition = info.dropPosition - Number(dropPos[dropPos.length - 1]);\n const treeKeyName = fieldNames.value;\n const treeChildrenName = fieldNames.children;\n\n const loop = (\n data: DataNode[],\n key: React.Key,\n callback: (node: DataNode, i: number, data: DataNode[]) => void,\n ) => {\n for (let i = 0; i < data.length; i++) {\n if (data[i][treeKeyName] === key) {\n return callback(data[i], i, data);\n }\n if (data[i][treeChildrenName]) {\n loop(data[i][treeChildrenName]!, key, callback);\n }\n }\n };\n const data = cloneState(dataList) as DataNode[];\n\n // Find dragObject\n let dragObj: DataNode;\n loop(data, dragKey, (item, index, arr) => {\n arr.splice(index, 1);\n dragObj = item;\n });\n\n if (!info.dropToGap) {\n // Drop on the content\n loop(data, dropKey, (item) => {\n item[treeChildrenName] = item[treeChildrenName] || [];\n // where to insert 示例添加到头部,可以是随意位置\n item[treeChildrenName].unshift(dragObj);\n });\n } else if (\n (info.node.props.children || []).length > 0 && // Has children\n info.node.props.expanded && // Is expanded\n dropPosition === 1 // On the bottom gap\n ) {\n loop(data, dropKey, (item) => {\n item[treeChildrenName] = item[treeChildrenName] || [];\n // where to insert 示例添加到头部,可以是随意位置\n item[treeChildrenName].unshift(dragObj);\n // in previous version, we use item.children.push(dragObj) to insert the\n // item to the tail of the children\n });\n } else {\n let ar: DataNode[] = [];\n let i: number;\n loop(data, dropKey, (_item, index, arr) => {\n ar = arr;\n i = index;\n });\n if (dropPosition === -1) {\n ar.splice(i!, 0, dragObj!);\n } else {\n ar.splice(i! + 1, 0, dragObj!);\n }\n }\n return {\n dataList: data,\n dragNodeData: dragNodeData(dragKey, data, fieldNames),\n };\n};\n\nexport const dragNodeData = (\n dorpNodeId: TAny,\n dataList: TAny[],\n fieldNames: { value: string; children: string },\n) => {\n const id = fieldNames.value;\n const children = fieldNames.children;\n tree.walkThroughTree<TPlainObject, TAny>(\n { [id]: undefined, [children]: dataList } as TAny,\n (node, index, _parent) => {\n node['__index'] = index;\n node['__parentId'] = _parent?.[id];\n },\n children,\n );\n const tileList = treeToArray(dataList, children);\n const target = tileList.find((item) => item[id] === dorpNodeId);\n return {\n parentId: target?.['__parentId'],\n id: target?.[id],\n index: target?.['__index'],\n };\n};\n","import { CaretDownFilled, MoreOutlined } from '@ant-design/icons';\nimport { isArray } from '@dimjs/lang';\nimport { cloneState } from '@dimjs/model';\nimport { classNames, extend } from '@dimjs/utils';\n\nimport { hooks } from '@wove/react';\nimport { Button, message, Spin, Tree, TreeProps } from 'antd';\nimport {\n CSSProperties,\n DependencyList,\n forwardRef,\n Fragment,\n isValidElement,\n ReactElement,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react';\n\nimport {\n isUndefinedOrNull,\n TAny,\n TPlainObject,\n treeFilter,\n treeToArray,\n treeToTiledArray,\n} from '@flatbiz/utils';\n\nimport { treeWrapperModel } from './model';\n\nimport { ButtonOperate, ButtonOperateItem, ButtonOperateProps } from '../button-operate';\nimport { DropdownMenuItem, DropdownMenuWrapper } from '../dropdown-menu-wrapper';\nimport { fbaHooks } from '../fba-hooks';\nimport { InputSearchWrapper } from '../input-search-wrapper';\nimport { RequestStatus, TRequestStatusProps } from '../request-status';\nimport './style.less';\nimport { getExpandedKeys, getVauleList, onTreeDrop } from './utils';\n\ntype TreeWrapperValue =\n | string\n | number\n | Array<string | number>\n | TPlainObject<string | number>\n | Array<TPlainObject<string | number>>;\n\ntype TreeServiceConfig = {\n params?: TPlainObject;\n requiredParamsKeys?: string[];\n onRequest?: (params?: TAny) => TAny;\n /**\n * 响应数据适配器\n */\n onRequestResultAdapter?: (respData: TAny) => TPlainObject[];\n};\ntype TreeLoadDataServiceConfig = {\n getParams?: (dataItem: TPlainObject) => TPlainObject;\n onRequest: (params: TPlainObject) => TAny;\n /**\n * 响应数据适配器\n */\n onRequestResultAdapter?: (respData: TAny) => TPlainObject[];\n};\n\nexport type TreeWrapperMenuItem = {\n title: string;\n onClick: (dataItem: TPlainObject, event) => void;\n icon?: ReactElement;\n};\n\nexport type TreeWrapperProps = Omit<\n TreeProps,\n | 'treeData'\n | 'onExpand'\n | 'selectedKeys'\n | 'checkedKeys'\n | 'onCheck'\n | 'onSelect'\n | 'fieldNames'\n | 'multiple'\n | 'loadData'\n | 'icon'\n | 'defaultCheckedKeys'\n | 'defaultExpandParent'\n | 'defaultSelectedKeys'\n> & {\n modelKey: string;\n\n fieldNames?: { label?: string; value?: string; children?: string };\n /**\n * useEffect依赖项数组,用于重新发起获取接口数据\n */\n effectDependencyList?: DependencyList;\n /**\n * 请求服务需求的数据,当设置`selectorTreeList`后无效果\n */\n serviceConfig?: TreeServiceConfig;\n /**\n * 是否开启异步加载\n */\n loadDataFlag?: boolean;\n /** 异步加载数据配置 */\n loadDataServiceConfig?: TreeLoadDataServiceConfig;\n /**\n * 当设置selectorTreeList后,serviceConfig将失效\n * ```\n * 1. 不支持异步数据,异步使用serviceConfig方式\n * ```\n */\n selectorTreeList?: TPlainObject[];\n /**\n * 通过服务获取数据后回调,当设置`selectorList`后无效果\n * ```\n * 相同modelKey,同时发起多个渲染时,只有第一个会执行 onSelectorTreeListChange 回调\n * ```\n */\n onSelectorTreeListChange?: (dataList: TPlainObject[]) => void;\n /** 接口响应数据变更 */\n onRequestResponseChange?: (data: TAny) => void;\n onChange?: (\n selectedKey?: TreeWrapperValue,\n operateNodeData?: TPlainObject[] | TPlainObject,\n operateAllNodeDataList?: TPlainObject[],\n extraData?: TPlainObject,\n ) => void;\n\n /**\n * 搜索关键字,打开tree折叠过滤关键字\n */\n searchValue?: string;\n /**\n * checkable模式下,onChange是否返回父节点,默认值true\n * 1. checkStrictly = true,模式下失效\n */\n checkableResponseParentNode?: boolean;\n\n /**\n * 菜单结构类型 tile/平铺 fold/折叠;默认:fold\n * @deprecated 已过期 4.3.0版本移除,请使用 menus\n * ```\n * 自定义设置 titleRender 后失效\n * ```\n */\n menuLayoutType?: 'tile' | 'fold';\n /**\n * 获取菜单类别\n * @param dataItem\n * @deprecated 已过期 4.3.0版本移除,请使用 menus\n * @returns\n * ```\n * 1. menuLayoutType = tile 无效\n * 2. 自定义设置 titleRender 后失效\n * ```\n */\n getMenuOptions?: (dataItem: TPlainObject) => DropdownMenuItem[] | ButtonOperateItem[];\n /**\n * 根据 menuLayoutType 类型赋值\n * @deprecated 已过期 4.3.0版本移除,请使用 menuOptions\n */\n menuOptions?: {\n tile?: (dataItem: TPlainObject) => ButtonOperateProps;\n fold?: (dataItem: TPlainObject) => DropdownMenuItem[];\n };\n /**\n * 菜单触发类型,默认:click\n * ```\n * 自定义设置 titleRender 后失效\n * ```\n */\n menuTriggerType?: 'click' | 'hover';\n menus?: (dataItem) => ButtonOperateProps;\n\n showSearch?: boolean;\n onSearchValueChange?: (searchValue?: string) => void;\n searchPlaceholder?: string;\n searchStyle?: CSSProperties;\n icon?: (data: { isParent: boolean; isLeaf: boolean }) => ReactElement;\n /**\n * 是否必选,最后一个不能取消\n */\n // required?: boolean;\n requestMessageConfig?: TRequestStatusProps['messageConfig'];\n /**\n * value格式\n *```\n * 1. string 、number\n * 2. Array<string | number>\n * 3. lableInValue = true,根据labelInValueFieldNames配置格式\n * 4. lableInValue = true,Array<labelInValueFieldNames配置>\n * ```\n */\n value?: TreeWrapperValue;\n labelInValue?: boolean;\n /**\n * ```\n * lableInValue = true,onChange输出数据字段名称,默认:{ label: string; value: string|number }\n * ```\n */\n labelInValueFieldNames?: { label: string; value: string };\n /**\n * 禁用状态是否可选,默认值true\n * 当dateItem中包含 disabled 则数据为禁用状态\n */\n disabledCanUse?: boolean;\n\n /** treeItem数据适配器 */\n treeItemDataAdapter?: (dataItem: TPlainObject) => TPlainObject;\n /** 搜索位置额外元素 */\n searchExtraElement?: ReactElement;\n /** 有唯一跟节点时,初始化是否展开,默认值:false */\n initRootExpand?: boolean;\n /** 搜素过滤方式,高亮 | 过滤;默认:filter */\n searchResultType?: 'highlight' | 'filter';\n /**\n * 拖拽节点处理,自定义onDrop事件后,失效\n * ```\n * 参数\n * 1. parentId 拖拽结束位置父节点ID\n * 2. id 当前拖拽节点ID\n * 3. index 拖拽结束位置所在数组下标\n * ```\n */\n onDropNodeHandle?: (result: { parentId?: string | number; id: string | number; index: number }) => void;\n /**\n * 拖拽排序前判断,如果返回 true,可排序,其他不可排序\n * ```\n * 可用于需要权限控制判断\n * ```\n */\n onDropPrev?: (info) => boolean;\n /**\n * 标签渲染\n * ```\n * 1. 自定义设置 titleRender 后失效\n * 2. 与titleRender的区别\n * a. 设置 labelRender 后,menuLayout有效\n * b. 设置 titleRender 后,menuLayout失效\n * ```\n */\n labelRender?: (nodeData: TPlainObject) => ReactElement;\n};\n\nexport type TreeWrapperRefApi = {\n onClearSelectorList: () => void;\n getTreeDataList: () => TreeProps['treeData'];\n onChangeExpandedKeys: (expandedKeys: Array<string | number>) => void;\n};\n\n/**\n * Tree包装组件,默认返回父节点,可配置不返回\n * @param props\n * @returns\n * ```\n * 1. treeNode内置字段说明(如需要相关功能,可在接口中添加固定字段)\n * a. disabled 禁掉响应\n * b. isLeaf 设置为叶子节点 (设置了 loadData 时有效)。为 false 时会强制将其作为父节点\n * c. disableCheckbox checkable模式下,treeNode复选框是否可选\n * 2. 当设置selectorTreeList属性后,serviceConfig将失效\n * 3. checkable=true,为多选模式\n * 4. 设置value后,组件显示受控\n * 5. 设置loadDataFlag=true,会动态获取children,当treeNode中包含isLeaf=true字段,表示为叶子节点,没有children了\n * 6. 内置 onDrop 事件已处理数组排序,通过 onDropNodeHandle 事件可获取操作节点排序数据;自定义onDrop后,内置onDrop失效\n * ```\n */\nexport const TreeWrapper = forwardRef<TreeWrapperRefApi, TreeWrapperProps>((props, ref) => {\n const {\n style,\n serviceConfig,\n effectDependencyList,\n selectorTreeList,\n value,\n onChange,\n modelKey,\n checkableResponseParentNode = true,\n checkable,\n onSelectorTreeListChange,\n onRequestResponseChange,\n treeItemDataAdapter,\n searchValue,\n showSearch,\n searchPlaceholder,\n requestMessageConfig,\n labelInValueFieldNames,\n labelInValue,\n disabledCanUse,\n menuLayoutType,\n menuTriggerType,\n initRootExpand,\n searchResultType,\n onDropNodeHandle,\n onDropPrev,\n labelRender,\n searchStyle,\n className,\n defaultExpandAll,\n menus,\n ...otherProps\n } = props;\n const hasSelectorTreeList = props.hasOwnProperty('selectorTreeList');\n const newServiceConfig = serviceConfig || {};\n const newEffectDependencyList = effectDependencyList || [];\n const [treeExpandedKeys, setTreeExpandedKeys] = useState<React.Key[]>([]);\n const [state, actions] = treeWrapperModel(modelKey).useStore();\n const [loading, setLoading] = fbaHooks.useSafeState(false);\n const requestPreKey = `request-progress-${props.modelKey}`;\n const fieldNames = useMemo(() => {\n return { label: 'label', value: 'value', children: 'children', ...props.fieldNames };\n }, [props.fieldNames]);\n const menuLayoutTypeNew = menuLayoutType === undefined ? 'fold' : menuLayoutType;\n const menuTriggerTypeNew = menuTriggerType === undefined ? 'click' : menuTriggerType;\n const responseFirstRef = useRef(true);\n\n const labelInValueFieldNamesMerge = useMemo(() => {\n return { label: 'label', value: 'value', ...labelInValueFieldNames };\n }, [labelInValueFieldNames]);\n // tree 搜索值\n const [treeSearchValue, setTreeSearchValue] = useState<string>();\n\n const innerOperateValueRef = useRef<Array<string | number> | string | number>();\n\n const valueList = useMemo(() => {\n const tempList = getVauleList(value, labelInValueFieldNamesMerge);\n return tempList;\n }, [labelInValueFieldNamesMerge, value]);\n\n fbaHooks.useEffectCustom(() => {\n if (state.treeList.length > 0) {\n if (responseFirstRef.current) {\n responseFirstRef.current = false;\n if (defaultExpandAll) {\n const allValues = treeToArray(state.treeList, fieldNames.children).map((item) => {\n return item[fieldNames.value];\n });\n setTreeExpandedKeys(allValues);\n return;\n } else if (initRootExpand && state.treeList.length) {\n setTreeExpandedKeys([state.treeList[0][fieldNames.value]]);\n return;\n }\n }\n if (!isUndefinedOrNull(value)) {\n const expandedKeys = getTreeExpandedKeys(valueList, true);\n setTreeExpandedKeys(Array.from(new Set(treeExpandedKeys?.concat(expandedKeys))));\n }\n }\n }, [value, state.treeList, valueList]);\n\n const valueIsEmpty = (data: string | number) => {\n return data === '' || isUndefinedOrNull(data);\n };\n\n const serviceResponseHandle = (respData) => {\n const respDataList = (\n newServiceConfig.onRequestResultAdapter\n ? newServiceConfig.onRequestResultAdapter(respData as unknown as TPlainObject)\n : respData\n ) as TPlainObject[];\n return respDataList;\n };\n\n fbaHooks.useEffectCustom(() => {\n setTreeSearchValue(searchValue);\n }, [searchValue]);\n\n const startDataSourceRequest = hooks.useCallbackRef(async () => {\n try {\n if (!newServiceConfig.onRequest) {\n throw new Error('onRequest 调用接口服务不能为空');\n }\n const requiredParamsKeys = newServiceConfig.requiredParamsKeys;\n const params = extend({}, newServiceConfig.params);\n if (requiredParamsKeys) {\n const isEmpty = requiredParamsKeys.find((key) => {\n return valueIsEmpty(params[key] as string | number);\n });\n if (isEmpty) {\n console.warn(`TreeWrapper组件:参数:${requiredParamsKeys.join('、')}不能为空`);\n return;\n }\n }\n try {\n setLoading(true);\n await actions.changeRequestStatus('request-progress');\n window[requestPreKey] = true;\n const _respData = await newServiceConfig.onRequest?.(params);\n onRequestResponseChange?.(_respData);\n const respData = serviceResponseHandle(_respData) as TreeProps['treeData'];\n const respDataListNew = respData || [];\n if (respDataListNew.length === 0) {\n responseFirstRef.current = false;\n }\n onChangeSelectorList(respDataListNew);\n setLoading(false);\n\n window[requestPreKey] = false;\n } catch (error) {\n window[requestPreKey] = false;\n setLoading(false);\n void actions.changeRequestStatus('request-error');\n }\n } catch (error: TAny) {\n responseFirstRef.current = false;\n setLoading(false);\n void message.error((error.message as string) || '数据查询异常...');\n }\n });\n\n fbaHooks.useEffectCustom(() => {\n if (hasSelectorTreeList) return;\n // 当无依赖项时,如果存在缓存数据,就不在调用接口\n if (Boolean(newEffectDependencyList.length)) {\n void startDataSourceRequest();\n return;\n }\n const allState = treeWrapperModel(modelKey).getState();\n if (allState.requestStatus === 'request-success') {\n onSelectorTreeListChange?.(allState.treeList);\n return;\n }\n // 判断相同的modelKey是否已经在请求数据中,避免重复请求\n if (!window[requestPreKey]) {\n void startDataSourceRequest();\n } else {\n onSelectorTreeListChange?.(allState.treeList);\n }\n }, newEffectDependencyList);\n\n fbaHooks.useEffectCustom(() => {\n if (hasSelectorTreeList) {\n onChangeSelectorList(selectorTreeList || []);\n }\n }, [selectorTreeList]);\n\n const onChangeSelectorList = hooks.useCallbackRef((dataList: TAny[]) => {\n if (dataList?.length === 0 && state.treeList.length === 0) {\n void actions.changeRequestStatus('request-success');\n return;\n }\n void actions.setTreeList({\n treeList: dataList || [],\n childrenName: fieldNames.children,\n });\n onSelectorTreeListChange?.(dataList);\n });\n\n const getTreeExpandedKeys = (valueList: Array<string | number>, refresh?: boolean) => {\n let newTreeExpandedKeys = [] as Array<string | number>;\n valueList.forEach((value) => {\n if (!refresh && treeExpandedKeys?.includes(value)) return;\n const targetList = getExpandedKeys(value, state.treeList, fieldNames);\n newTreeExpandedKeys = newTreeExpandedKeys.concat(targetList.map((item) => item.value));\n });\n return newTreeExpandedKeys;\n };\n\n hooks.useUpdateEffect(() => {\n if (treeSearchValue) {\n const tiledArray = treeToTiledArray(state.treeList || [], fieldNames);\n const targetList = tiledArray.filter((item) => item.label?.includes(treeSearchValue || ''));\n setTreeExpandedKeys((prev) => {\n const mergeList = getTreeExpandedKeys(targetList.map((item) => item.value)).concat(prev || []);\n return Array.from(new Set(mergeList));\n });\n } else {\n setTreeExpandedKeys([]);\n }\n }, [treeSearchValue]);\n\n useImperativeHandle(ref, () => {\n return {\n onClearSelectorList: () => {\n void actions.resetTreeList();\n },\n getTreeDataList: () => {\n return state.treeList;\n },\n onChangeExpandedKeys: (dataList) => {\n setTreeExpandedKeys(dataList);\n },\n };\n });\n\n const onExpand = hooks.useCallbackRef((expandedKeys) => {\n setTreeExpandedKeys(expandedKeys as string[]);\n });\n\n const onRespChange = hooks.useCallbackRef((selectedKey, selectInfo?, selectAllList?, operateInfo?) => {\n innerOperateValueRef.current = selectedKey;\n const selectList = isUndefinedOrNull(selectInfo) ? [] : isArray(selectInfo) ? selectInfo : [selectInfo];\n if (isUndefinedOrNull(selectedKey)) {\n onChange?.(selectedKey, selectInfo, selectAllList);\n return;\n }\n if (labelInValue) {\n const lvLabel = labelInValueFieldNamesMerge.label;\n const lvValue = labelInValueFieldNamesMerge.value;\n const labelInValueList = selectList.map((item) => {\n return {\n [lvLabel]: item[fieldNames.label],\n [lvValue]: item[fieldNames.value],\n };\n });\n if (isArray(selectedKey)) {\n onChange?.(labelInValueList, selectList, selectAllList, operateInfo);\n } else {\n onChange?.(labelInValueList[0], selectList[0], selectAllList, operateInfo);\n }\n } else {\n if (isArray(selectedKey)) {\n onChange?.(selectedKey, selectList, selectAllList, operateInfo);\n } else {\n onChange?.(selectedKey, selectList[0], selectAllList, operateInfo);\n }\n }\n });\n\n const onTreeChangeHandle = hooks.useCallbackRef((checkedData, operateInfo) => {\n let checkedValueList = isUndefinedOrNull(checkedData) ? [] : checkedData;\n checkedValueList = props.checkStrictly ? checkedData.checked : checkedData;\n\n checkedValueList = isArray(checkedValueList) ? checkedValueList : [checkedValueList];\n\n const selectedLeafList = [] as TPlainObject[];\n const selectedLeafValueList = [] as Array<string | number>;\n const selectedAllList = [] as TPlainObject[];\n const selectedAllValueList = [] as Array<string | number>;\n checkedValueList.forEach((item) => {\n const target = state.treeTiledArray.find((temp) => temp[fieldNames.value] === item);\n if (!target) return;\n const children = target?.[fieldNames.children];\n if (!isArray(children) || children.length === 0) {\n selectedLeafList.push(target);\n selectedLeafValueList.push(target[fieldNames.value]);\n }\n selectedAllList.push(target);\n selectedAllValueList.push(target[fieldNames.value]);\n });\n\n if (checkable) {\n setTreeExpandedKeys((prev) => {\n const mergeList = getTreeExpandedKeys(selectedLeafValueList).concat(prev || []);\n return Array.from(new Set(mergeList));\n });\n if (!checkableResponseParentNode && !props.checkStrictly) {\n onRespChange(selectedLeafValueList, selectedLeafList, selectedAllList, operateInfo);\n } else {\n onRespChange(selectedAllValueList, selectedAllList, selectedAllList, operateInfo);\n }\n } else {\n if (checkedValueList[0]) {\n const currentNode = selectedAllList.find((item) => item[fieldNames.value] === checkedValueList[0]);\n onRespChange(checkedValueList[0], currentNode, [currentNode], operateInfo);\n } else {\n const nodeValue = operateInfo.node[fieldNames.value];\n const target = state.treeTiledArray.find((temp) => temp[fieldNames.value] === nodeValue);\n onRespChange(undefined, target, [target], operateInfo);\n }\n }\n });\n\n const treeItemDataAdapterHandle = hooks.useCallbackRef((dataItem) => {\n return treeItemDataAdapter?.(dataItem);\n });\n\n const originalDataList = useMemo(() => {\n const list = cloneState(state.treeList || []);\n if (treeSearchValue && searchResultType !== 'highlight') {\n return treeFilter(\n cloneState(state.treeList || []),\n (node) => {\n const value = node[fieldNames.label]?.toLowerCase();\n return value.indexOf(treeSearchValue.toLowerCase()) >= 0;\n },\n { childrenName: fieldNames.children },\n );\n }\n return list;\n }, [fieldNames.children, fieldNames.label, searchResultType, state.treeList, treeSearchValue]);\n\n const treeData = useMemo(() => {\n const loop = (data: TAny[]): TAny[] =>\n data?.map((item) => {\n const adapterItem = treeItemDataAdapterHandle?.(item) || item;\n const disabled = disabledCanUse ? undefined : adapterItem.disabled;\n const strTitle = (adapterItem[fieldNames.label] as string).toLocaleLowerCase();\n let titleDom;\n if (treeSearchValue) {\n const index = strTitle.indexOf(treeSearchValue.toLocaleLowerCase());\n const beforeStr = strTitle.substring(0, index);\n const afterStr = strTitle.slice(index + treeSearchValue.length);\n const centerStr = strTitle.slice(index, index + treeSearchValue.length);\n titleDom =\n index > -1 ? (\n <span className={classNames({ 'v-tree-item-disabled': adapterItem.disabled })}>\n {beforeStr}\n <span className=\"site-tree-search-value\">{centerStr}</span>\n {afterStr}\n </span>\n ) : null;\n }\n if (!titleDom && adapterItem.disabled) {\n titleDom = (\n <span className={classNames({ 'v-tree-item-disabled': adapterItem.disabled })}>{strTitle}</span>\n );\n }\n const children = adapterItem[fieldNames.children];\n return {\n ...adapterItem,\n disabled,\n [fieldNames.label]: titleDom || strTitle,\n _treeItemName: strTitle,\n _disabled: adapterItem.disabled,\n [fieldNames.children]: isArray(children) && children.length > 0 ? loop(children) : undefined,\n };\n });\n return loop(originalDataList);\n }, [\n originalDataList,\n treeItemDataAdapterHandle,\n disabledCanUse,\n fieldNames.label,\n fieldNames.children,\n treeSearchValue,\n ]);\n\n const loadData = hooks.useCallbackRef((dataItem: TPlainObject) => {\n return new Promise<void>(async (resolve, reject) => {\n if (dataItem[fieldNames.children]) {\n resolve();\n return;\n }\n try {\n const respData = await props.loadDataServiceConfig?.onRequest?.(\n props.loadDataServiceConfig?.getParams?.(dataItem) || {},\n );\n const respDataList = (\n newServiceConfig.onRequestResultAdapter\n ? newServiceConfig.onRequestResultAdapter(respData as unknown as TPlainObject)\n : respData\n ) as TPlainObject[];\n void actions\n .treeListAppendChildren({\n value: dataItem[fieldNames.value],\n appendList: respDataList,\n childrenName: fieldNames.children,\n valueName: fieldNames.value,\n })\n .then((allState) => {\n onChangeSelectorList(allState.treeList as TPlainObject[]);\n resolve();\n });\n } catch (error: TAny) {\n void message.error(error.message || '数据加载异常...');\n // 此处失败后,会重试“loadData”请求多次\n reject();\n }\n });\n });\n\n const isLeafNode = hooks.useCallbackRef((nodeData) => {\n const children = nodeData?.[fieldNames.children];\n // 当loadDataFlag=true,考虑叶子节点显示问题\n const loadDataFlag = props.loadDataFlag;\n const loadHasChildren = loadDataFlag ? !nodeData.isLeaf : false;\n const hasChildren = (children && children.length > 0) || loadHasChildren;\n return !hasChildren;\n });\n\n const titleRender = hooks.useCallbackRef((nodeData) => {\n const stringLabel = nodeData._treeItemName || nodeData[fieldNames.label];\n const buttonOperateConfig = menus?.({\n ...nodeData,\n [fieldNames.label]: stringLabel,\n });\n if (buttonOperateConfig) {\n return (\n <Fragment>\n <span className=\"tree-item-title\">{labelRender?.(nodeData) || nodeData?.[fieldNames.label]}</span>\n <ButtonOperate\n gap={5}\n {...buttonOperateConfig}\n dropdownMenuProps={{\n placement: 'bottomRight',\n isFixed: true,\n ...buttonOperateConfig?.dropdownMenuProps,\n }}\n className={classNames('tree-item-title-operate', buttonOperateConfig.className)}\n />\n </Fragment>\n );\n }\n\n if (menuLayoutTypeNew === 'fold') {\n let menuOptions: TAny[] = [];\n if (props.menuOptions?.fold) {\n menuOptions =\n props.menuOptions?.[menuLayoutTypeNew]?.({\n ...nodeData,\n [fieldNames.label]: stringLabel,\n }) || [];\n } else {\n menuOptions =\n props.getMenuOptions?.({\n ...nodeData,\n [fieldNames.label]: stringLabel,\n }) || [];\n }\n return (\n <Fragment>\n <span className=\"tree-item-title\">{labelRender?.(nodeData) || nodeData?.[fieldNames.label]}</span>\n {menuOptions.length > 0 && (\n <DropdownMenuWrapper menuList={menuOptions} placement=\"bottomRight\">\n <MoreOutlined />\n </DropdownMenuWrapper>\n )}\n </Fragment>\n );\n }\n const menuOptions = props.menuOptions?.tile?.({\n ...nodeData,\n [fieldNames.label]: stringLabel,\n });\n\n return (\n <Fragment>\n <span className=\"tree-item-title\">{labelRender?.(nodeData) || nodeData?.[fieldNames.label]}</span>\n {menuOptions ? (\n <ButtonOperate\n gap={5}\n {...menuOptions}\n className={classNames('tree-item-title-operate', menuOptions.className)}\n />\n ) : null}\n </Fragment>\n );\n });\n\n const onChangeDebounce = hooks.useDebounceCallback((value: string) => {\n setTreeSearchValue(value);\n props.onSearchValueChange?.(value);\n }, 300);\n\n const onSearchChange = hooks.useCallbackRef((e: React.ChangeEvent<HTMLInputElement>) => {\n onChangeDebounce(e.target.value);\n });\n\n const iconHandle = hooks.useCallbackRef((treeData) => {\n if (!props.icon) return null;\n if (isValidElement(props.icon)) return props.icon;\n const isLeafFlag = isLeafNode(treeData.data);\n return props.icon({\n ...treeData,\n isParent: !isLeafFlag,\n isLeaf: isLeafFlag,\n });\n });\n\n const treeFieldNames = useMemo(() => {\n return { title: fieldNames.label, key: fieldNames.value, children: fieldNames.children };\n }, [fieldNames]);\n const showTree = treeData.length > 0 && state.requestStatus !== 'request-error';\n const commonProps = {\n showLine: { showLeafIcon: false },\n titleRender,\n blockNode: true,\n switcherIcon: <CaretDownFilled />,\n onDrop: (info) => {\n if (onDropPrev) {\n const boo = onDropPrev(info);\n if (!boo) return;\n }\n const { dataList, dragNodeData } = onTreeDrop(originalDataList as TPlainObject[], fieldNames, info);\n onDropNodeHandle?.(dragNodeData);\n onChangeSelectorList(dataList);\n },\n expandedKeys: treeExpandedKeys,\n ...otherProps,\n fieldNames: treeFieldNames,\n treeData,\n onExpand,\n loadData: props.loadDataFlag ? loadData : undefined,\n style: { width: '100%' },\n icon: iconHandle,\n };\n\n const checkedProps = {\n onCheck: onTreeChangeHandle,\n checkable,\n checkedKeys: valueList,\n };\n\n const selectedProps = {\n onSelect: onTreeChangeHandle,\n multiple: false,\n selectedKeys: valueList,\n };\n const sceneProps = checkable ? checkedProps : selectedProps;\n const cName = classNames('v-tree-wrapper', `v-tree-wrapper-menu-${menuTriggerTypeNew}`, className);\n const isSearchEmpty = state.treeList.length > 0 && !showTree && treeSearchValue;\n return (\n <div className={cName} style={style}>\n {!!showSearch && (\n <div className=\"v-tree-wrapper-search-area\" style={searchStyle}>\n <InputSearchWrapper\n className=\"v-tree-wrapper-search\"\n placeholder={searchPlaceholder}\n onChange={onSearchChange}\n value={searchValue}\n allowClear\n />\n {!!props.searchExtraElement && (\n <span className=\"v-tree-wrapper-search-extra\">{props.searchExtraElement}</span>\n )}\n </div>\n )}\n\n {showTree ? (\n <div className=\"v-tree-wrapper-tree-wrapper\">\n <Spin spinning={state.requestStatus === 'request-progress'} />\n <Tree {...sceneProps} {...commonProps} className=\"v-tree-wrapper-tree\"></Tree>\n </div>\n ) : (\n <RequestStatus\n status={state.requestStatus}\n loading={loading}\n messageConfig={{\n 'request-success': isSearchEmpty ? '搜索结果为空' : '暂无数据',\n ...requestMessageConfig,\n }}\n errorButton={\n <Button type=\"primary\" onClick={startDataSourceRequest}>\n 重新获取数据\n </Button>\n }\n />\n )}\n </div>\n );\n});\n\nTreeWrapper.defaultProps = {\n disabledCanUse: true,\n};\n","import { attachPropertiesToComponent } from '@flatbiz/utils';\nimport { getTreeDataList } from './hooks';\nimport { TreeWrapper as TreeWrapperInner } from './tree-wrapper';\nexport type * from './tree-wrapper';\n/**\n * Tree包装组件,默认返回父节点,可配置不返回\n * @param props\n * @returns\n * ```\n * 1. treeNode内置字段说明(如需要相关功能,可在接口中添加固定字段)\n * a. disabled 禁掉响应\n * b. isLeaf 设置为叶子节点 (设置了 loadData 时有效)。为 false 时会强制将其作为父节点\n * c. disableCheckbox checkable模式下,treeNode复选框是否可选\n * 2. 当设置selectorTreeList属性后,serviceConfig将失效\n * 3. checkable=true,为多选模式\n * 4. 设置value后,组件显示受控\n * 5. 设置loadDataFlag=true,会动态获取children,当treeNode中包含isLeaf=true字段,表示为叶子节点,没有children了\n * 6. 内置 onDrop 事件已处理数组排序,通过 onDropNodeHandle 事件可获取操作节点排序数据;自定义onDrop后,内置onDrop失效\n * ```\n */\nexport const TreeWrapper = attachPropertiesToComponent(TreeWrapperInner, {\n /**\n * 获取树形原数据\n * ```\n * 参数 modelKey 与 TreeWrapper属性 modelKey相同,才能获取数据\n * ```\n */\n getTreeDataList: getTreeDataList,\n});\n"],"names":["defaultState","treeList","treeTiledArray","queryIsEmpty","TreeWrapperModel","actions","setTreeList","params","state","treeToArray","childrenName","requestStatus","resetTreeList","changeRequestStatus","treeListAppendChildren","array","target","find","item","valueName","value","_isArray","appendList","length","isLeaf","treeWrapperModels","treeWrapperModel","key","Model","getTreeDataList","modelKey","getState","getExpandedKeys","fieldNames","tiledArray","treeToTiledArray","treeLeafParentsArray","parentValue","getVauleList","data","labelInValueFieldNames","tempList","isUndefinedOrNull","map","_isObject","onTreeDrop","dataList","info","dropKey","node","dragKey","dragNode","dropPos","pos","split","dropPosition","Number","treeKeyName","treeChildrenName","children","loop","callback","i","cloneState","dragObj","index","arr","splice","dropToGap","unshift","props","expanded","ar","_item","dragNodeData","dorpNodeId","_tree$walkThroughTree","id","_tree","walkThroughTree","undefined","_parent","tileList","parentId","TreeWrapper","forwardRef","ref","style","serviceConfig","effectDependencyList","selectorTreeList","onChange","_props$checkableRespo","checkableResponseParentNode","checkable","onSelectorTreeListChange","onRequestResponseChange","treeItemDataAdapter","searchValue","showSearch","searchPlaceholder","requestMessageConfig","labelInValue","disabledCanUse","menuLayoutType","menuTriggerType","initRootExpand","searchResultType","onDropNodeHandle","onDropPrev","labelRender","searchStyle","className","defaultExpandAll","menus","otherProps","_objectWithoutPropertiesLoose","_excluded","hasSelectorTreeList","hasOwnProperty","newServiceConfig","newEffectDependencyList","_useState","useState","treeExpandedKeys","setTreeExpandedKeys","_treeWrapperModel$use","useStore","_fbaHooks$useSafeStat","fbaHooks","useSafeState","loading","setLoading","requestPreKey","useMemo","_extends","label","menuLayoutTypeNew","menuTriggerTypeNew","responseFirstRef","useRef","labelInValueFieldNamesMerge","_useState2","treeSearchValue","setTreeSearchValue","innerOperateValueRef","valueList","useEffectCustom","current","allValues","expandedKeys","getTreeExpandedKeys","Array","from","Set","concat","valueIsEmpty","serviceResponseHandle","respData","respDataList","onRequestResultAdapter","startDataSourceRequest","_hooks","useCallbackRef","Promise","$return","$error","requiredParamsKeys","_params","isEmpty","_respData","_respData2","respDataListNew","$Try_1_Post","$boundEx","$Try_1_Catch","error","message","onRequest","Error","_extend","console","warn","join","$Try_2_Post","$Try_2_Catch","window","resolve","then","$await_4","$await_5","onChangeSelectorList","Boolean","allState","refresh","newTreeExpandedKeys","forEach","includes","targetList","useUpdateEffect","filter","_item$label","prev","mergeList","useImperativeHandle","onClearSelectorList","onChangeExpandedKeys","onExpand","onRespChange","selectedKey","selectInfo","selectAllList","operateInfo","selectList","lvLabel","lvValue","labelInValueList","_ref","onTreeChangeHandle","checkedData","checkedValueList","checkStrictly","checked","selectedLeafList","selectedLeafValueList","selectedAllList","selectedAllValueList","temp","push","currentNode","nodeValue","treeItemDataAdapterHandle","dataItem","originalDataList","list","treeFilter","_node$fieldNames$labe","toLowerCase","indexOf","treeData","_extends2","adapterItem","disabled","strTitle","toLocaleLowerCase","titleDom","beforeStr","substring","afterStr","slice","centerStr","_jsxs","_classNames","_jsx","_treeItemName","_disabled","loadData","reject","_props$loadDataServic","_props$loadDataServic2","_respData3","$Try_3_Post","$Try_3_Catch","loadDataServiceConfig","getParams","$await_6","isLeafNode","nodeData","loadDataFlag","loadHasChildren","hasChildren","titleRender","_extends3","_props$menuOptions3","_extends6","stringLabel","buttonOperateConfig","Fragment","ButtonOperate","gap","dropdownMenuProps","placement","isFixed","_props$menuOptions","menuOptions","fold","_props$menuOptions2","_props$menuOptions2$m","_extends4","call","_extends5","getMenuOptions","DropdownMenuWrapper","menuList","_MoreOutlined","tile","onChangeDebounce","useDebounceCallback","onSearchValueChange","onSearchChange","e","iconHandle","icon","isValidElement","isLeafFlag","isParent","treeFieldNames","title","showTree","commonProps","showLine","showLeafIcon","blockNode","switcherIcon","_CaretDownFilled","onDrop","boo","_onTreeDrop","width","checkedProps","onCheck","checkedKeys","selectedProps","onSelect","multiple","selectedKeys","sceneProps","cName","isSearchEmpty","InputSearchWrapper","placeholder","allowClear","searchExtraElement","Spin","spinning","Tree","RequestStatus","status","messageConfig","errorButton","Button","type","onClick","defaultProps","attachPropertiesToComponent","TreeWrapperInner"],"mappings":"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"}
|
package/index.d.ts
CHANGED
|
@@ -814,6 +814,35 @@ export type DragFormListProps = {
|
|
|
814
814
|
* ```
|
|
815
815
|
*/
|
|
816
816
|
export declare const DragFormList: (props: DragFormListProps) => import("react/jsx-runtime").JSX.Element;
|
|
817
|
+
export type DragTableProps = Omit<TableProps<TPlainObject>, "dataSource"> & {
|
|
818
|
+
dragIcon?: boolean | ReactElement;
|
|
819
|
+
/** 表格数据唯一值字段Key */
|
|
820
|
+
uidFieldKey: string;
|
|
821
|
+
dataSource?: TPlainObject[];
|
|
822
|
+
/**
|
|
823
|
+
* 拖拽结束事件
|
|
824
|
+
* ```
|
|
825
|
+
* dataSource: 拖拽完成后的数据源
|
|
826
|
+
* dragData
|
|
827
|
+
* 1. activeId 拖拽ID
|
|
828
|
+
* 2. activeIndex 拖拽起始表格数组索引值
|
|
829
|
+
* 3. overIndex 拖拽结束表格数组索引值
|
|
830
|
+
* ```
|
|
831
|
+
*/
|
|
832
|
+
onDragChange?: (dataSource: TPlainObject[], dragData: {
|
|
833
|
+
activeId: string | number;
|
|
834
|
+
activeIndex: number;
|
|
835
|
+
overIndex: number;
|
|
836
|
+
}) => void;
|
|
837
|
+
};
|
|
838
|
+
/**
|
|
839
|
+
* 可拖拽表格
|
|
840
|
+
* ```
|
|
841
|
+
* 1. 必须设置唯一值字段 uidFieldKey
|
|
842
|
+
* 2. 如果拖拽显示异常,请检查 uidFieldKey 是否正确
|
|
843
|
+
* ```
|
|
844
|
+
*/
|
|
845
|
+
export declare const DragTable: (props: DragTableProps) => import("react/jsx-runtime").JSX.Element;
|
|
817
846
|
export interface DrawerOperationProps {
|
|
818
847
|
loading?: boolean;
|
|
819
848
|
okText?: string;
|
|
@@ -1027,9 +1056,8 @@ export type EasyTableFilterProps = {
|
|
|
1027
1056
|
*/
|
|
1028
1057
|
formGridSize?: FormRowProps["gridSize"];
|
|
1029
1058
|
formClassName?: string;
|
|
1030
|
-
|
|
1031
|
-
|
|
1032
|
-
/** filter Form 外层 SimpleLayout style */
|
|
1059
|
+
formStyle?: CSSProperties;
|
|
1060
|
+
/** filter Form 外层 SimpleLayout style */
|
|
1033
1061
|
filterWrapperStyle?: CSSProperties;
|
|
1034
1062
|
/** filter Form 外层 SimpleLayout className */
|
|
1035
1063
|
filterWrapperClassName?: string;
|
|
@@ -1042,6 +1070,8 @@ export type EasyTableFilterProps = {
|
|
|
1042
1070
|
* 如果想隐藏【查询、重置】按钮中的某一个,可设置 queryButtonProps.hidden、resetButtonProps.hidden
|
|
1043
1071
|
*/
|
|
1044
1072
|
rightOperateAreaAppendType?: "cover" | "beforeAppend" | "afterAppend";
|
|
1073
|
+
/** 默认重启按钮触发请求,默认值:true */
|
|
1074
|
+
defaultResetButtonTriggerRequest?: boolean;
|
|
1045
1075
|
};
|
|
1046
1076
|
export type TipsWrapperProps = {
|
|
1047
1077
|
gap?: number;
|
|
@@ -3287,7 +3317,7 @@ export type TreeServiceConfig = {
|
|
|
3287
3317
|
onRequestResultAdapter?: (respData: TAny) => TPlainObject[];
|
|
3288
3318
|
};
|
|
3289
3319
|
export type TreeLoadDataServiceConfig = {
|
|
3290
|
-
getParams
|
|
3320
|
+
getParams?: (dataItem: TPlainObject) => TPlainObject;
|
|
3291
3321
|
onRequest: (params: TPlainObject) => TAny;
|
|
3292
3322
|
/**
|
|
3293
3323
|
* 响应数据适配器
|
|
@@ -3301,6 +3331,11 @@ export type TreeWrapperMenuItem = {
|
|
|
3301
3331
|
};
|
|
3302
3332
|
export type TreeWrapperProps = Omit<TreeProps, "treeData" | "onExpand" | "selectedKeys" | "checkedKeys" | "onCheck" | "onSelect" | "fieldNames" | "multiple" | "loadData" | "icon" | "defaultCheckedKeys" | "defaultExpandParent" | "defaultSelectedKeys"> & {
|
|
3303
3333
|
modelKey: string;
|
|
3334
|
+
fieldNames?: {
|
|
3335
|
+
label?: string;
|
|
3336
|
+
value?: string;
|
|
3337
|
+
children?: string;
|
|
3338
|
+
};
|
|
3304
3339
|
/**
|
|
3305
3340
|
* useEffect依赖项数组,用于重新发起获取接口数据
|
|
3306
3341
|
*/
|
|
@@ -3309,6 +3344,11 @@ export type TreeWrapperProps = Omit<TreeProps, "treeData" | "onExpand" | "select
|
|
|
3309
3344
|
* 请求服务需求的数据,当设置`selectorTreeList`后无效果
|
|
3310
3345
|
*/
|
|
3311
3346
|
serviceConfig?: TreeServiceConfig;
|
|
3347
|
+
/**
|
|
3348
|
+
* 是否开启异步加载
|
|
3349
|
+
*/
|
|
3350
|
+
loadDataFlag?: boolean;
|
|
3351
|
+
/** 异步加载数据配置 */
|
|
3312
3352
|
loadDataServiceConfig?: TreeLoadDataServiceConfig;
|
|
3313
3353
|
/**
|
|
3314
3354
|
* 当设置selectorTreeList后,serviceConfig将失效
|
|
@@ -3324,13 +3364,9 @@ export type TreeWrapperProps = Omit<TreeProps, "treeData" | "onExpand" | "select
|
|
|
3324
3364
|
* ```
|
|
3325
3365
|
*/
|
|
3326
3366
|
onSelectorTreeListChange?: (dataList: TPlainObject[]) => void;
|
|
3367
|
+
/** 接口响应数据变更 */
|
|
3327
3368
|
onRequestResponseChange?: (data: TAny) => void;
|
|
3328
3369
|
onChange?: (selectedKey?: TreeWrapperValue, operateNodeData?: TPlainObject[] | TPlainObject, operateAllNodeDataList?: TPlainObject[], extraData?: TPlainObject) => void;
|
|
3329
|
-
fieldNames?: {
|
|
3330
|
-
label?: string;
|
|
3331
|
-
value?: string;
|
|
3332
|
-
children?: string;
|
|
3333
|
-
};
|
|
3334
3370
|
/**
|
|
3335
3371
|
* 搜索关键字,打开tree折叠过滤关键字
|
|
3336
3372
|
*/
|
|
@@ -3340,7 +3376,6 @@ export type TreeWrapperProps = Omit<TreeProps, "treeData" | "onExpand" | "select
|
|
|
3340
3376
|
* 1. checkStrictly = true,模式下失效
|
|
3341
3377
|
*/
|
|
3342
3378
|
checkableResponseParentNode?: boolean;
|
|
3343
|
-
loadDataFlag?: boolean;
|
|
3344
3379
|
/**
|
|
3345
3380
|
* 菜单结构类型 tile/平铺 fold/折叠;默认:fold
|
|
3346
3381
|
* @deprecated 已过期 4.3.0版本移除,请使用 menus
|
|
@@ -3425,9 +3460,9 @@ export type TreeWrapperProps = Omit<TreeProps, "treeData" | "onExpand" | "select
|
|
|
3425
3460
|
* 拖拽节点处理,自定义onDrop事件后,失效
|
|
3426
3461
|
* ```
|
|
3427
3462
|
* 参数
|
|
3428
|
-
* 1. parentId
|
|
3463
|
+
* 1. parentId 拖拽结束位置父节点ID
|
|
3429
3464
|
* 2. id 当前拖拽节点ID
|
|
3430
|
-
* 3. index
|
|
3465
|
+
* 3. index 拖拽结束位置所在数组下标
|
|
3431
3466
|
* ```
|
|
3432
3467
|
*/
|
|
3433
3468
|
onDropNodeHandle?: (result: {
|
|
@@ -3476,6 +3511,11 @@ export type TreeWrapperRefApi = {
|
|
|
3476
3511
|
*/
|
|
3477
3512
|
export declare const TreeWrapper: import("react").ForwardRefExoticComponent<Omit<import("antd").TreeProps<import("antd").TreeDataNode>, "multiple" | "icon" | "onSelect" | "onExpand" | "checkedKeys" | "fieldNames" | "defaultSelectedKeys" | "selectedKeys" | "loadData" | "treeData" | "defaultExpandParent" | "defaultCheckedKeys" | "onCheck"> & {
|
|
3478
3513
|
modelKey: string;
|
|
3514
|
+
fieldNames?: {
|
|
3515
|
+
label?: string | undefined;
|
|
3516
|
+
value?: string | undefined;
|
|
3517
|
+
children?: string | undefined;
|
|
3518
|
+
} | undefined;
|
|
3479
3519
|
effectDependencyList?: import("react").DependencyList | undefined;
|
|
3480
3520
|
serviceConfig?: {
|
|
3481
3521
|
params?: import("@flatbiz/utils").TPlainObject | undefined;
|
|
@@ -3483,8 +3523,9 @@ export declare const TreeWrapper: import("react").ForwardRefExoticComponent<Omit
|
|
|
3483
3523
|
onRequest?: ((params?: any) => any) | undefined;
|
|
3484
3524
|
onRequestResultAdapter?: ((respData: any) => import("@flatbiz/utils").TPlainObject[]) | undefined;
|
|
3485
3525
|
} | undefined;
|
|
3526
|
+
loadDataFlag?: boolean | undefined;
|
|
3486
3527
|
loadDataServiceConfig?: {
|
|
3487
|
-
getParams
|
|
3528
|
+
getParams?: ((dataItem: import("@flatbiz/utils").TPlainObject) => import("@flatbiz/utils").TPlainObject) | undefined;
|
|
3488
3529
|
onRequest: (params: import("@flatbiz/utils").TPlainObject) => any;
|
|
3489
3530
|
onRequestResultAdapter?: ((respData: any) => import("@flatbiz/utils").TPlainObject[]) | undefined;
|
|
3490
3531
|
} | undefined;
|
|
@@ -3492,14 +3533,8 @@ export declare const TreeWrapper: import("react").ForwardRefExoticComponent<Omit
|
|
|
3492
3533
|
onSelectorTreeListChange?: ((dataList: import("@flatbiz/utils").TPlainObject[]) => void) | undefined;
|
|
3493
3534
|
onRequestResponseChange?: ((data: any) => void) | undefined;
|
|
3494
3535
|
onChange?: ((selectedKey?: (string | number | (string | number)[] | import("@flatbiz/utils").TPlainObject<string | number> | import("@flatbiz/utils").TPlainObject<string | number>[]) | undefined, operateNodeData?: import("@flatbiz/utils").TPlainObject | import("@flatbiz/utils").TPlainObject[] | undefined, operateAllNodeDataList?: import("@flatbiz/utils").TPlainObject[] | undefined, extraData?: import("@flatbiz/utils").TPlainObject | undefined) => void) | undefined;
|
|
3495
|
-
fieldNames?: {
|
|
3496
|
-
label?: string | undefined;
|
|
3497
|
-
value?: string | undefined;
|
|
3498
|
-
children?: string | undefined;
|
|
3499
|
-
} | undefined;
|
|
3500
3536
|
searchValue?: string | undefined;
|
|
3501
3537
|
checkableResponseParentNode?: boolean | undefined;
|
|
3502
|
-
loadDataFlag?: boolean | undefined;
|
|
3503
3538
|
menuLayoutType?: "tile" | "fold" | undefined;
|
|
3504
3539
|
getMenuOptions?: ((dataItem: import("@flatbiz/utils").TPlainObject) => DropdownMenuItem[] | ButtonOperateItem[]) | undefined;
|
|
3505
3540
|
menuOptions?: {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@flatbiz/antd",
|
|
3
|
-
"version": "4.2.
|
|
3
|
+
"version": "4.2.84",
|
|
4
4
|
"description": "flat-biz ui components",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"typings": "index.d.ts",
|
|
@@ -28,10 +28,10 @@
|
|
|
28
28
|
"peerDependencies": {
|
|
29
29
|
"@ant-design/icons": ">=5.0.1",
|
|
30
30
|
"@dimjs/lang": ">=1.2.44",
|
|
31
|
-
"@dimjs/model": ">=1.1
|
|
32
|
-
"@dimjs/model-react": ">=1.1
|
|
33
|
-
"@dimjs/utils": ">=1.
|
|
34
|
-
"@flatbiz/utils": ">=4.0.
|
|
31
|
+
"@dimjs/model": ">=1.2.1",
|
|
32
|
+
"@dimjs/model-react": ">=1.2.1",
|
|
33
|
+
"@dimjs/utils": ">=1.4.4",
|
|
34
|
+
"@flatbiz/utils": ">=4.0.16",
|
|
35
35
|
"@wove/react": ">=1.2.23",
|
|
36
36
|
"antd": ">=5.5.1",
|
|
37
37
|
"dayjs": ">=1.11.9",
|
|
@@ -40,13 +40,13 @@
|
|
|
40
40
|
"ahooks": "^3.7.5"
|
|
41
41
|
},
|
|
42
42
|
"devDependencies": {
|
|
43
|
-
"@dimjs/lang": "^1.2.44",
|
|
44
|
-
"@dimjs/utils": "^1.3.2",
|
|
45
|
-
"@dimjs/model": "^1.1.8",
|
|
46
|
-
"@dimjs/model-react": "^1.1.8",
|
|
47
43
|
"@ant-design/icons": "^4.8.0",
|
|
48
|
-
"@
|
|
49
|
-
"@
|
|
44
|
+
"@dimjs/lang": "^1.2.44",
|
|
45
|
+
"@dimjs/model": "^1.2.1",
|
|
46
|
+
"@dimjs/model-react": "^1.2.1",
|
|
47
|
+
"@dimjs/utils": "^1.4.4",
|
|
48
|
+
"@flatbiz/utils": "^4.0.16",
|
|
49
|
+
"@wove/react": "^1.2.23",
|
|
50
50
|
"antd": "5.5.1",
|
|
51
51
|
"dayjs": "1.11.9",
|
|
52
52
|
"dequal": "^2.0.3",
|