villianjs-pro 1.0.0 → 1.0.3
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/dist/{ProTable3 → Beyond}/index.d.ts +1 -1
- package/dist/Beyond/index.js +1 -0
- package/dist/Beyond/list.d.ts +5 -0
- package/dist/Beyond/list.js +1 -0
- package/dist/Beyond/styles/index.d.ts +8 -0
- package/dist/Beyond/styles/index.js +1 -0
- package/dist/Beyond/types.d.ts +26 -0
- package/dist/Button/types.d.ts +1 -1
- package/dist/ButtonGroup/styles.js +1 -1
- package/dist/Exports/exports.d.ts +3 -0
- package/dist/Exports/exports.js +1 -0
- package/dist/Exports/index.d.ts +2 -0
- package/dist/Exports/index.js +1 -0
- package/dist/Exports/types.d.ts +61 -0
- package/dist/List/index.d.ts +8 -0
- package/dist/List/index.js +1 -0
- package/dist/List/list-container.d.ts +37 -0
- package/dist/List/list-container.js +1 -0
- package/dist/ProTable/components/Container.d.ts +27 -0
- package/dist/ProTable/components/Container.js +1 -0
- package/dist/ProTable/components/form-content.d.ts +34 -0
- package/dist/ProTable/{update/update.js → components/form-content.js} +1 -1
- package/dist/ProTable/components/form-footer.d.ts +32 -0
- package/dist/ProTable/components/form-footer.js +1 -0
- package/dist/ProTable/components/grid-card.d.ts +27 -0
- package/dist/ProTable/components/grid-card.js +1 -0
- package/dist/ProTable/components/grid-view.d.ts +52 -0
- package/dist/ProTable/components/grid-view.js +1 -0
- package/dist/ProTable/components/header-buttons-wrapper.d.ts +10 -0
- package/dist/ProTable/components/header-buttons-wrapper.js +1 -0
- package/dist/ProTable/components/list/index.d.ts +19 -0
- package/dist/ProTable/components/list/index.js +1 -0
- package/dist/ProTable/components/operation-container.d.ts +39 -0
- package/dist/ProTable/components/operation-container.js +1 -0
- package/dist/ProTable/components/operation-content-router.d.ts +37 -0
- package/dist/ProTable/components/operation-content-router.js +1 -0
- package/dist/ProTable/components/operation-content.d.ts +35 -0
- package/dist/ProTable/components/operation-content.js +1 -0
- package/dist/ProTable/components/row-actions-router.d.ts +8 -0
- package/dist/{ProTable3/hooks/utils.js → ProTable/components/row-actions-router.js} +1 -1
- package/dist/ProTable/components/row-actions.d.ts +59 -0
- package/dist/ProTable/components/row-actions.js +1 -0
- package/dist/ProTable/components/search.d.ts +3 -0
- package/dist/{ProTable2 → ProTable}/components/search.js +1 -1
- package/dist/ProTable/context.d.ts +20 -58
- package/dist/ProTable/context.js +1 -1
- package/dist/ProTable/hooks/usePagination.js +1 -0
- package/dist/ProTable/hooks/useRouterNavigation.d.ts +10 -0
- package/dist/ProTable/hooks/useRouterNavigation.js +1 -0
- package/dist/ProTable/index.d.ts +3 -2
- package/dist/ProTable/index.js +1 -1
- package/dist/ProTable/styles.d.ts +1 -0
- package/dist/ProTable/styles.js +1 -1
- package/dist/ProTable/table.d.ts +2 -3
- package/dist/ProTable/table.js +1 -1
- package/dist/ProTable/types.d.ts +389 -90
- package/dist/ProTable/utils.d.ts +83 -0
- package/dist/ProTable/utils.js +1 -0
- package/dist/TabSelector/TabSelector.d.ts +3 -0
- package/dist/TabSelector/TabSelector.js +1 -0
- package/dist/TabSelector/index.d.ts +2 -0
- package/dist/TabSelector/index.js +1 -0
- package/dist/TabSelector/modal.d.ts +16 -0
- package/dist/TabSelector/modal.js +1 -0
- package/dist/TabSelector/selected-items-display.d.ts +11 -0
- package/dist/TabSelector/selected-items-display.js +1 -0
- package/dist/TabSelector/styles.d.ts +2 -0
- package/dist/TabSelector/styles.js +1 -0
- package/dist/TabSelector/types.d.ts +24 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +1 -1
- package/dist/locale/langs/zh-cn/index.js +1 -1
- package/package.json +30 -17
- package/dist/ProTable/form-footer.d.ts +0 -26
- package/dist/ProTable/form-footer.js +0 -1
- package/dist/ProTable/list.d.ts +0 -5
- package/dist/ProTable/list.js +0 -1
- package/dist/ProTable/update/index.d.ts +0 -1
- package/dist/ProTable/update/index.js +0 -1
- package/dist/ProTable/update/update.d.ts +0 -3
- package/dist/ProTable2/components/search.d.ts +0 -2
- package/dist/ProTable2/index.d.ts +0 -2
- package/dist/ProTable2/index.js +0 -1
- package/dist/ProTable2/styles.d.ts +0 -7
- package/dist/ProTable2/styles.js +0 -1
- package/dist/ProTable2/table.d.ts +0 -2
- package/dist/ProTable2/table.js +0 -1
- package/dist/ProTable2/types.d.ts +0 -23
- package/dist/ProTable3/components/index.d.ts +0 -2
- package/dist/ProTable3/components/index.js +0 -1
- package/dist/ProTable3/components/list/index.d.ts +0 -19
- package/dist/ProTable3/components/list/index.js +0 -1
- package/dist/ProTable3/components/search/index.d.ts +0 -2
- package/dist/ProTable3/components/search/index.js +0 -1
- package/dist/ProTable3/container.d.ts +0 -3
- package/dist/ProTable3/container.js +0 -1
- package/dist/ProTable3/context.d.ts +0 -13
- package/dist/ProTable3/context.js +0 -1
- package/dist/ProTable3/hooks/types.d.ts +0 -72
- package/dist/ProTable3/hooks/useBatchRemoveButton.d.ts +0 -38
- package/dist/ProTable3/hooks/useBatchRemoveButton.js +0 -1
- package/dist/ProTable3/hooks/useCreateButton.d.ts +0 -34
- package/dist/ProTable3/hooks/useCreateButton.js +0 -1
- package/dist/ProTable3/hooks/useExtraButtons.d.ts +0 -26
- package/dist/ProTable3/hooks/useExtraButtons.js +0 -1
- package/dist/ProTable3/hooks/useOptionRender.d.ts +0 -30
- package/dist/ProTable3/hooks/useOptionRender.js +0 -1
- package/dist/ProTable3/hooks/usePagination.js +0 -1
- package/dist/ProTable3/hooks/utils.d.ts +0 -12
- package/dist/ProTable3/index.js +0 -1
- package/dist/ProTable3/styles.d.ts +0 -7
- package/dist/ProTable3/styles.js +0 -1
- package/dist/ProTable3/table.d.ts +0 -2
- package/dist/ProTable3/table.js +0 -1
- package/dist/ProTable3/types.d.ts +0 -106
- /package/dist/{ProTable2 → Beyond}/types.js +0 -0
- /package/dist/{ProTable3/hooks → Exports}/types.js +0 -0
- /package/dist/{ProTable3 → ProTable}/hooks/usePagination.d.ts +0 -0
- /package/dist/{ProTable3 → TabSelector}/types.js +0 -0
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import type { VlianTableMode, OperationType } from "../types";
|
|
3
|
+
import type { DrawerProps } from "antd";
|
|
4
|
+
import type { ModalProps } from "../../Modal/components/antd";
|
|
5
|
+
export interface OperationContainerProps {
|
|
6
|
+
/**
|
|
7
|
+
* 操作模式
|
|
8
|
+
*/
|
|
9
|
+
mode: VlianTableMode;
|
|
10
|
+
/**
|
|
11
|
+
* 操作类型
|
|
12
|
+
*/
|
|
13
|
+
operationType: OperationType;
|
|
14
|
+
/**
|
|
15
|
+
* 是否显示
|
|
16
|
+
*/
|
|
17
|
+
visible: boolean;
|
|
18
|
+
/**
|
|
19
|
+
* 关闭回调
|
|
20
|
+
*/
|
|
21
|
+
onClose: () => void;
|
|
22
|
+
/**
|
|
23
|
+
* 子组件
|
|
24
|
+
*/
|
|
25
|
+
children: React.ReactNode;
|
|
26
|
+
/**
|
|
27
|
+
* Modal 配置
|
|
28
|
+
*/
|
|
29
|
+
modalProps?: Omit<ModalProps, 'open' | 'onCancel' | 'children'>;
|
|
30
|
+
/**
|
|
31
|
+
* Drawer 配置
|
|
32
|
+
*/
|
|
33
|
+
drawerProps?: Omit<DrawerProps, 'open' | 'onClose' | 'children'>;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* 操作容器组件
|
|
37
|
+
* 根据 mode 渲染不同的容器(Modal/Drawer)
|
|
38
|
+
*/
|
|
39
|
+
export declare const OperationContainer: React.FC<OperationContainerProps>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function _define_property(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}function _object_spread(target){for(var i=1;i<arguments.length;i++){var source=arguments[i]!=null?arguments[i]:{};var ownKeys=Object.keys(source);if(typeof Object.getOwnPropertySymbols==="function"){ownKeys=ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym){return Object.getOwnPropertyDescriptor(source,sym).enumerable}))}ownKeys.forEach(function(key){_define_property(target,key,source[key])})}return target}import React from"react";import{Drawer}from"antd";import{Modal}from"../../Modal/components/antd";import{useLocale}from"../../locale";export var OperationContainer=function(props){var mode=props.mode,operationType=props.operationType,visible=props.visible,onClose=props.onClose,children=props.children,modalProps=props.modalProps,drawerProps=props.drawerProps;var messages=useLocale().messages;var getTitle=function(){switch(operationType){case"create":return messages.table.createTitle||"新增";case"update":return messages.table.updateTitle||"编辑";case"view":return messages.table.viewTitle||"查看";default:return""}};if(mode==="modal"){return React.createElement(Modal,_object_spread({title:getTitle(),open:visible,onCancel:onClose,footer:null,width:800,maxHeight:"80vh"},modalProps),children)}if(mode==="drawer"){return React.createElement(Drawer,_object_spread({title:getTitle(),open:visible,onClose:onClose,width:720},drawerProps),children)}return React.createElement(React.Fragment,null,children)};
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { OperationType, OperationContentRender, FormConfig } from '../types';
|
|
2
|
+
import type { ProColumns } from "@ant-design/pro-components";
|
|
3
|
+
export interface OperationContentRouterProps<T = any, ValueType extends string = 'text'> {
|
|
4
|
+
/**
|
|
5
|
+
* 操作类型
|
|
6
|
+
*/
|
|
7
|
+
type: OperationType;
|
|
8
|
+
/**
|
|
9
|
+
* 当前记录
|
|
10
|
+
*/
|
|
11
|
+
currentRecord: T | null;
|
|
12
|
+
/**
|
|
13
|
+
* 操作内容渲染函数
|
|
14
|
+
*/
|
|
15
|
+
operationContent?: OperationContentRender<T>;
|
|
16
|
+
/**
|
|
17
|
+
* 关闭回调
|
|
18
|
+
*/
|
|
19
|
+
onClose: () => void;
|
|
20
|
+
/**
|
|
21
|
+
* 成功回调
|
|
22
|
+
*/
|
|
23
|
+
onSuccess: () => void;
|
|
24
|
+
/**
|
|
25
|
+
* 表格列配置(用于自动生成表单)
|
|
26
|
+
*/
|
|
27
|
+
tableColumns?: ProColumns<T, ValueType>[];
|
|
28
|
+
/**
|
|
29
|
+
* 表单配置
|
|
30
|
+
*/
|
|
31
|
+
formConfig?: FormConfig<T, ValueType>;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Router 模式下的操作内容包装器
|
|
35
|
+
* 在关闭或成功时自动导航回列表页
|
|
36
|
+
*/
|
|
37
|
+
export declare const OperationContentRouter: <T extends Record<string, any> = Record<string, any>, ValueType extends string = "text">(props: OperationContentRouterProps<T, ValueType>) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import React from"react";import{useNavigate}from"react-router-dom";import{OperationContent}from"./operation-content";export var OperationContentRouter=function(props){var type=props.type,currentRecord=props.currentRecord,operationContent=props.operationContent,onClose=props.onClose,onSuccess=props.onSuccess,tableColumns=props.tableColumns,formConfig=props.formConfig;var navigate=useNavigate();var handleClose=React.useCallback(function(){onClose();navigate("/")},[onClose,navigate]);var handleSuccess=React.useCallback(function(){onSuccess();navigate("/")},[onSuccess,navigate]);if(operationContent){return React.createElement(React.Fragment,null,operationContent({type:type,record:currentRecord||undefined,onClose:handleClose,onSuccess:handleSuccess}))}return React.createElement(OperationContent,{type:type,record:currentRecord||undefined,onClose:handleClose,onSuccess:handleSuccess,tableColumns:tableColumns,formConfig:formConfig})};
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { OperationType, FormConfig } from "../types";
|
|
2
|
+
import type { ProColumns } from "@ant-design/pro-components";
|
|
3
|
+
export interface OperationContentProps<T = any, ValueType extends string = 'text'> {
|
|
4
|
+
/**
|
|
5
|
+
* 操作类型
|
|
6
|
+
*/
|
|
7
|
+
type: OperationType;
|
|
8
|
+
/**
|
|
9
|
+
* 当前记录(编辑和查看时使用)
|
|
10
|
+
*/
|
|
11
|
+
record?: T;
|
|
12
|
+
/**
|
|
13
|
+
* 关闭回调
|
|
14
|
+
*/
|
|
15
|
+
onClose: () => void;
|
|
16
|
+
/**
|
|
17
|
+
* 成功回调(用于刷新列表)
|
|
18
|
+
*/
|
|
19
|
+
onSuccess?: () => void;
|
|
20
|
+
/**
|
|
21
|
+
* 表格列配置(用于自动生成表单)
|
|
22
|
+
*/
|
|
23
|
+
tableColumns?: ProColumns<T, ValueType>[];
|
|
24
|
+
/**
|
|
25
|
+
* 表单配置
|
|
26
|
+
*/
|
|
27
|
+
formConfig?: FormConfig<T, ValueType>;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* 操作内容组件
|
|
31
|
+
* 用于显示具体的操作内容(新增/编辑/查看)
|
|
32
|
+
*
|
|
33
|
+
* 支持内置表单和自定义内容
|
|
34
|
+
*/
|
|
35
|
+
export declare const OperationContent: <T extends Record<string, any> = Record<string, any>, ValueType extends string = "text">(props: OperationContentProps<T, ValueType>) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function _array_like_to_array(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i<len;i++)arr2[i]=arr[i];return arr2}function _array_with_holes(arr){if(Array.isArray(arr))return arr}function asyncGeneratorStep(gen,resolve,reject,_next,_throw,key,arg){try{var info=gen[key](arg);var value=info.value}catch(error){reject(error);return}if(info.done){resolve(value)}else{Promise.resolve(value).then(_next,_throw)}}function _async_to_generator(fn){return function(){var self=this,args=arguments;return new Promise(function(resolve,reject){var gen=fn.apply(self,args);function _next(value){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"next",value)}function _throw(err){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"throw",err)}_next(undefined)})}}function _iterable_to_array_limit(arr,i){var _i=arr==null?null:typeof Symbol!=="undefined"&&arr[Symbol.iterator]||arr["@@iterator"];if(_i==null)return;var _arr=[];var _n=true;var _d=false;var _s,_e;try{for(_i=_i.call(arr);!(_n=(_s=_i.next()).done);_n=true){_arr.push(_s.value);if(i&&_arr.length===i)break}}catch(err){_d=true;_e=err}finally{try{if(!_n&&_i["return"]!=null)_i["return"]()}finally{if(_d)throw _e}}return _arr}function _non_iterable_rest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _sliced_to_array(arr,i){return _array_with_holes(arr)||_iterable_to_array_limit(arr,i)||_unsupported_iterable_to_array(arr,i)||_non_iterable_rest()}function _unsupported_iterable_to_array(o,minLen){if(!o)return;if(typeof o==="string")return _array_like_to_array(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(n);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _array_like_to_array(o,minLen)}function _ts_generator(thisArg,body){var f,y,t,_={label:0,sent:function(){if(t[0]&1)throw t[1];return t[1]},trys:[],ops:[]},g=Object.create((typeof Iterator==="function"?Iterator:Object).prototype);return g.next=verb(0),g["throw"]=verb(1),g["return"]=verb(2),typeof Symbol==="function"&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return step([n,v])}}function step(op){if(f)throw new TypeError("Generator is already executing.");while(g&&(g=0,op[0]&&(_=0)),_)try{if(f=1,y&&(t=op[0]&2?y["return"]:op[0]?y["throw"]||((t=y["return"])&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;if(y=0,t)op=[op[0]&2,t.value];switch(op[0]){case 0:case 1:t=op;break;case 4:_.label++;return{value:op[1],done:false};case 5:_.label++;y=op[1];op=[0];continue;case 7:op=_.ops.pop();_.trys.pop();continue;default:if(!(t=_.trys,t=t.length>0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(op[0]===6&&_.label<t[1]){_.label=t[1];t=op;break}if(t&&_.label<t[2]){_.label=t[2];_.ops.push(op);break}if(t[2])_.ops.pop();_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e];y=0}finally{f=t=0}if(op[0]&5)throw op[1];return{value:op[0]?op[1]:void 0,done:true}}}import React from"react";import{FormContent}from"./form-content";import{FormFooter}from"./form-footer";import{message}from"antd";import useStyle from"../styles";export var OperationContent=function(props){var type=props.type,record=props.record,onClose=props.onClose,onSuccess=props.onSuccess,_props_tableColumns=props.tableColumns,tableColumns=_props_tableColumns===void 0?[]:_props_tableColumns,formConfig=props.formConfig;var formRef=React.useRef(null);var _React_useState=_sliced_to_array(React.useState(false),2),loading=_React_useState[0],setLoading=_React_useState[1];var _useStyle=_sliced_to_array(useStyle("VlianTable"),2),wrapSSR=_useStyle[0],hashId=_useStyle[1];if(!formConfig||formConfig.enabled===false){return wrapSSR(React.createElement("div",{className:"VlianTable-operation-placeholder ".concat(hashId)},React.createElement("div",null,"当前操作类型: ",type),React.createElement("div",null,"请通过 operationContent 属性自定义渲染内容,或配置 formConfig 使用内置表单")))}var handleSubmit=function(){return _async_to_generator(function(){var form,values,result,successMsg,error;return _ts_generator(this,function(_state){switch(_state.label){case 0:_state.trys.push([0,4,5,6]);form=formRef.current;if(!form)return[2];setLoading(true);return[4,form.validateFields()];case 1:values=_state.sent();if(!formConfig.onSubmit)return[3,3];return[4,formConfig.onSubmit(values,type,record)];case 2:result=_state.sent();if(result===false){return[2]}_state.label=3;case 3:successMsg=type==="create"?"创建成功":type==="update"?"更新成功":"提交成功";message.success(successMsg);onSuccess===null||onSuccess===void 0?void 0:onSuccess();onClose();return[3,6];case 4:error=_state.sent();console.error("表单提交失败:",error);if(error===null||error===void 0?void 0:error.errorFields){message.error("请检查表单字段")}else{message.error((error===null||error===void 0?void 0:error.message)||"提交失败")}return[3,6];case 5:setLoading(false);return[7];case 6:return[2]}})})()};var renderFooter=function(){if(formConfig.footerRender!==undefined){if(formConfig.footerRender===false){return null}return formConfig.footerRender({type:type,record:record,form:formRef.current,onSubmit:handleSubmit,onCancel:onClose,loading:loading})}return React.createElement(FormFooter,{type:type,submitText:type==="create"?formConfig.createSubmitText:formConfig.updateSubmitText,cancelText:formConfig.cancelText,loading:loading,onSubmit:handleSubmit,onCancel:onClose})};return React.createElement(React.Fragment,null,React.createElement(FormContent,{type:type,record:record,tableColumns:tableColumns,formConfig:formConfig,formRef:formRef}),renderFooter())};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type RowActionsProps } from './row-actions';
|
|
2
|
+
/**
|
|
3
|
+
* Router 模式下的行操作按钮组件
|
|
4
|
+
* 在 Router 模式下,点击操作按钮会导航到对应的路由
|
|
5
|
+
*/
|
|
6
|
+
export declare const RowActionsRouter: <T extends Record<string, any> = Record<string, any>>(props: RowActionsProps<T> & {
|
|
7
|
+
rowKey?: string | ((record: T) => string | number);
|
|
8
|
+
}) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function asyncGeneratorStep(gen,resolve,reject,_next,_throw,key,arg){try{var info=gen[key](arg);var value=info.value}catch(error){reject(error);return}if(info.done){resolve(value)}else{Promise.resolve(value).then(_next,_throw)}}function _async_to_generator(fn){return function(){var self=this,args=arguments;return new Promise(function(resolve,reject){var gen=fn.apply(self,args);function _next(value){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"next",value)}function _throw(err){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"throw",err)}_next(undefined)})}}function _define_property(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}function _object_spread(target){for(var i=1;i<arguments.length;i++){var source=arguments[i]!=null?arguments[i]:{};var ownKeys=Object.keys(source);if(typeof Object.getOwnPropertySymbols==="function"){ownKeys=ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym){return Object.getOwnPropertyDescriptor(source,sym).enumerable}))}ownKeys.forEach(function(key){_define_property(target,key,source[key])})}return target}function ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);if(enumerableOnly){symbols=symbols.filter(function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable})}keys.push.apply(keys,symbols)}return keys}function _object_spread_props(target,source){source=source!=null?source:{};if(Object.getOwnPropertyDescriptors){Object.defineProperties(target,Object.getOwnPropertyDescriptors(source))}else{ownKeys(Object(source)).forEach(function(key){Object.defineProperty(target,key,Object.getOwnPropertyDescriptor(source,key))})}return target}function _object_without_properties(source,excluded){if(source==null)return{};var target=_object_without_properties_loose(source,excluded);var key,i;if(Object.getOwnPropertySymbols){var sourceSymbolKeys=Object.getOwnPropertySymbols(source);for(i=0;i<sourceSymbolKeys.length;i++){key=sourceSymbolKeys[i];if(excluded.indexOf(key)>=0)continue;if(!Object.prototype.propertyIsEnumerable.call(source,key))continue;target[key]=source[key]}}return target}function _object_without_properties_loose(source,excluded){if(source==null)return{};var target={};var sourceKeys=Object.keys(source);var key,i;for(i=0;i<sourceKeys.length;i++){key=sourceKeys[i];if(excluded.indexOf(key)>=0)continue;target[key]=source[key]}return target}function _ts_generator(thisArg,body){var f,y,t,_={label:0,sent:function(){if(t[0]&1)throw t[1];return t[1]},trys:[],ops:[]},g=Object.create((typeof Iterator==="function"?Iterator:Object).prototype);return g.next=verb(0),g["throw"]=verb(1),g["return"]=verb(2),typeof Symbol==="function"&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return step([n,v])}}function step(op){if(f)throw new TypeError("Generator is already executing.");while(g&&(g=0,op[0]&&(_=0)),_)try{if(f=1,y&&(t=op[0]&2?y["return"]:op[0]?y["throw"]||((t=y["return"])&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;if(y=0,t)op=[op[0]&2,t.value];switch(op[0]){case 0:case 1:t=op;break;case 4:_.label++;return{value:op[1],done:false};case 5:_.label++;y=op[1];op=[0];continue;case 7:op=_.ops.pop();_.trys.pop();continue;default:if(!(t=_.trys,t=t.length>0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(op[0]===6&&_.label<t[1]){_.label=t[1];t=op;break}if(t&&_.label<t[2]){_.label=t[2];_.ops.push(op);break}if(t[2])_.ops.pop();_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e];y=0}finally{f=t=0}if(op[0]&5)throw op[1];return{value:op[0]?op[1]:void 0,done:true}}}
|
|
1
|
+
function asyncGeneratorStep(gen,resolve,reject,_next,_throw,key,arg){try{var info=gen[key](arg);var value=info.value}catch(error){reject(error);return}if(info.done){resolve(value)}else{Promise.resolve(value).then(_next,_throw)}}function _async_to_generator(fn){return function(){var self=this,args=arguments;return new Promise(function(resolve,reject){var gen=fn.apply(self,args);function _next(value){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"next",value)}function _throw(err){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"throw",err)}_next(undefined)})}}function _define_property(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}function _object_spread(target){for(var i=1;i<arguments.length;i++){var source=arguments[i]!=null?arguments[i]:{};var ownKeys=Object.keys(source);if(typeof Object.getOwnPropertySymbols==="function"){ownKeys=ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym){return Object.getOwnPropertyDescriptor(source,sym).enumerable}))}ownKeys.forEach(function(key){_define_property(target,key,source[key])})}return target}function ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);if(enumerableOnly){symbols=symbols.filter(function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable})}keys.push.apply(keys,symbols)}return keys}function _object_spread_props(target,source){source=source!=null?source:{};if(Object.getOwnPropertyDescriptors){Object.defineProperties(target,Object.getOwnPropertyDescriptors(source))}else{ownKeys(Object(source)).forEach(function(key){Object.defineProperty(target,key,Object.getOwnPropertyDescriptor(source,key))})}return target}function _object_without_properties(source,excluded){if(source==null)return{};var target=_object_without_properties_loose(source,excluded);var key,i;if(Object.getOwnPropertySymbols){var sourceSymbolKeys=Object.getOwnPropertySymbols(source);for(i=0;i<sourceSymbolKeys.length;i++){key=sourceSymbolKeys[i];if(excluded.indexOf(key)>=0)continue;if(!Object.prototype.propertyIsEnumerable.call(source,key))continue;target[key]=source[key]}}return target}function _object_without_properties_loose(source,excluded){if(source==null)return{};var target={};var sourceKeys=Object.keys(source);var key,i;for(i=0;i<sourceKeys.length;i++){key=sourceKeys[i];if(excluded.indexOf(key)>=0)continue;target[key]=source[key]}return target}function _ts_generator(thisArg,body){var f,y,t,_={label:0,sent:function(){if(t[0]&1)throw t[1];return t[1]},trys:[],ops:[]},g=Object.create((typeof Iterator==="function"?Iterator:Object).prototype);return g.next=verb(0),g["throw"]=verb(1),g["return"]=verb(2),typeof Symbol==="function"&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return step([n,v])}}function step(op){if(f)throw new TypeError("Generator is already executing.");while(g&&(g=0,op[0]&&(_=0)),_)try{if(f=1,y&&(t=op[0]&2?y["return"]:op[0]?y["throw"]||((t=y["return"])&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;if(y=0,t)op=[op[0]&2,t.value];switch(op[0]){case 0:case 1:t=op;break;case 4:_.label++;return{value:op[1],done:false};case 5:_.label++;y=op[1];op=[0];continue;case 7:op=_.ops.pop();_.trys.pop();continue;default:if(!(t=_.trys,t=t.length>0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(op[0]===6&&_.label<t[1]){_.label=t[1];t=op;break}if(t&&_.label<t[2]){_.label=t[2];_.ops.push(op);break}if(t[2])_.ops.pop();_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e];y=0}finally{f=t=0}if(op[0]&5)throw op[1];return{value:op[0]?op[1]:void 0,done:true}}}import React from"react";import{useNavigate}from"react-router-dom";import{RowActions}from"./row-actions";export var RowActionsRouter=function(props){var navigate=useNavigate();var record=props.record,onView=props.onView,onUpdate=props.onUpdate,_props_rowKey=props.rowKey,rowKey=_props_rowKey===void 0?"id":_props_rowKey,restProps=_object_without_properties(props,["record","onView","onUpdate","rowKey"]);var getRecordId=function(){if(typeof rowKey==="function"){return rowKey(record)}return record[rowKey]};var handleView=function(record,index){return _async_to_generator(function(){var id;return _ts_generator(this,function(_state){switch(_state.label){case 0:if(!onView)return[3,2];return[4,onView(record,index)];case 1:_state.sent();_state.label=2;case 2:id=getRecordId();navigate("/view/".concat(id));return[2]}})})()};var handleUpdate=function(record,index){return _async_to_generator(function(){var id;return _ts_generator(this,function(_state){switch(_state.label){case 0:if(!onUpdate)return[3,2];return[4,onUpdate(record,index)];case 1:_state.sent();_state.label=2;case 2:id=getRecordId();navigate("/update/".concat(id));return[2]}})})()};return React.createElement(RowActions,_object_spread_props(_object_spread({},restProps),{record:record,onView:handleView,onUpdate:handleUpdate}))};
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import type { RowButtonItem } from "../types";
|
|
2
|
+
export interface RowActionsProps<T = any> {
|
|
3
|
+
/**
|
|
4
|
+
* 当前记录
|
|
5
|
+
*/
|
|
6
|
+
record: T;
|
|
7
|
+
/**
|
|
8
|
+
* 当前索引
|
|
9
|
+
*/
|
|
10
|
+
index: number;
|
|
11
|
+
/**
|
|
12
|
+
* 是否显示查看按钮
|
|
13
|
+
*/
|
|
14
|
+
showViewBtn?: boolean;
|
|
15
|
+
/**
|
|
16
|
+
* 查看按钮配置
|
|
17
|
+
*/
|
|
18
|
+
viewBtnProps?: RowButtonItem<T> | false;
|
|
19
|
+
/**
|
|
20
|
+
* 查看按钮点击
|
|
21
|
+
*/
|
|
22
|
+
onView?: (record: T, index: number) => void | Promise<void>;
|
|
23
|
+
/**
|
|
24
|
+
* 是否显示编辑按钮
|
|
25
|
+
*/
|
|
26
|
+
showUpdateBtn?: boolean;
|
|
27
|
+
/**
|
|
28
|
+
* 编辑按钮配置
|
|
29
|
+
*/
|
|
30
|
+
updateBtnProps?: RowButtonItem<T> | false;
|
|
31
|
+
/**
|
|
32
|
+
* 编辑按钮点击
|
|
33
|
+
*/
|
|
34
|
+
onUpdate?: (record: T, index: number) => void | Promise<void>;
|
|
35
|
+
/**
|
|
36
|
+
* 是否显示删除按钮
|
|
37
|
+
*/
|
|
38
|
+
showRemoveBtn?: boolean;
|
|
39
|
+
/**
|
|
40
|
+
* 删除按钮配置
|
|
41
|
+
*/
|
|
42
|
+
removeBtnProps?: RowButtonItem<T> | false;
|
|
43
|
+
/**
|
|
44
|
+
* 删除按钮点击
|
|
45
|
+
*/
|
|
46
|
+
onRemove?: (record: T, index: number) => void | Promise<void>;
|
|
47
|
+
/**
|
|
48
|
+
* 自定义行操作按钮列表
|
|
49
|
+
*/
|
|
50
|
+
rowButtonItems?: RowButtonItem<T>[];
|
|
51
|
+
/**
|
|
52
|
+
* 行操作按钮最大显示数量
|
|
53
|
+
*/
|
|
54
|
+
maxCount?: number;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* 行操作按钮组件
|
|
58
|
+
*/
|
|
59
|
+
export declare const RowActions: <T extends Record<string, any> = Record<string, any>>(props: RowActionsProps<T>) => import("react/jsx-runtime").JSX.Element | null;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function asyncGeneratorStep(gen,resolve,reject,_next,_throw,key,arg){try{var info=gen[key](arg);var value=info.value}catch(error){reject(error);return}if(info.done){resolve(value)}else{Promise.resolve(value).then(_next,_throw)}}function _async_to_generator(fn){return function(){var self=this,args=arguments;return new Promise(function(resolve,reject){var gen=fn.apply(self,args);function _next(value){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"next",value)}function _throw(err){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"throw",err)}_next(undefined)})}}function _ts_generator(thisArg,body){var f,y,t,_={label:0,sent:function(){if(t[0]&1)throw t[1];return t[1]},trys:[],ops:[]},g=Object.create((typeof Iterator==="function"?Iterator:Object).prototype);return g.next=verb(0),g["throw"]=verb(1),g["return"]=verb(2),typeof Symbol==="function"&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return step([n,v])}}function step(op){if(f)throw new TypeError("Generator is already executing.");while(g&&(g=0,op[0]&&(_=0)),_)try{if(f=1,y&&(t=op[0]&2?y["return"]:op[0]?y["throw"]||((t=y["return"])&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;if(y=0,t)op=[op[0]&2,t.value];switch(op[0]){case 0:case 1:t=op;break;case 4:_.label++;return{value:op[1],done:false};case 5:_.label++;y=op[1];op=[0];continue;case 7:op=_.ops.pop();_.trys.pop();continue;default:if(!(t=_.trys,t=t.length>0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(op[0]===6&&_.label<t[1]){_.label=t[1];t=op;break}if(t&&_.label<t[2]){_.label=t[2];_.ops.push(op);break}if(t[2])_.ops.pop();_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e];y=0}finally{f=t=0}if(op[0]&5)throw op[1];return{value:op[0]?op[1]:void 0,done:true}}}import React from"react";import{ButtonGroup}from"../../ButtonGroup";import{EyeOutlined,EditOutlined,DeleteOutlined}from"@ant-design/icons";import{useLocale}from"../../locale";import ConfirmButton from"../../ConfirmButton/ConfirmButton";import{convertRowButtonToGroupItem}from"../utils";export var RowActions=function(props){var record=props.record,index=props.index,_props_showViewBtn=props.showViewBtn,showViewBtn=_props_showViewBtn===void 0?true:_props_showViewBtn,viewBtnProps=props.viewBtnProps,onView=props.onView,_props_showUpdateBtn=props.showUpdateBtn,showUpdateBtn=_props_showUpdateBtn===void 0?true:_props_showUpdateBtn,updateBtnProps=props.updateBtnProps,onUpdate=props.onUpdate,_props_showRemoveBtn=props.showRemoveBtn,showRemoveBtn=_props_showRemoveBtn===void 0?true:_props_showRemoveBtn,removeBtnProps=props.removeBtnProps,onRemove=props.onRemove,_props_rowButtonItems=props.rowButtonItems,rowButtonItems=_props_rowButtonItems===void 0?[]:_props_rowButtonItems,_props_maxCount=props.maxCount,maxCount=_props_maxCount===void 0?3:_props_maxCount;var messages=useLocale().messages;var convertToButtonItem=React.useCallback(function(config,defaultKey,defaultHandler){return convertRowButtonToGroupItem(config,defaultKey,record,index,defaultHandler)},[record,index]);var handleRemoveConfirm=function(){return _async_to_generator(function(){return _ts_generator(this,function(_state){switch(_state.label){case 0:if(!onRemove)return[3,2];return[4,onRemove(record,index)];case 1:_state.sent();_state.label=2;case 2:return[2,true]}})})()};var items=[];if(showViewBtn&&viewBtnProps!==false){var viewBtn=convertToButtonItem(viewBtnProps,"$view",onView);if(viewBtn){if(!viewBtn.icon){viewBtn.icon=React.createElement(EyeOutlined,null)}if(viewBtn.order===undefined){viewBtn.order=1}if(!viewBtn.label){viewBtn.label=messages.table.viewBtnText||"查看"}if(!viewBtn.type){viewBtn.type="link"}items.push(viewBtn)}}if(showUpdateBtn&&updateBtnProps!==false){var updateBtn=convertToButtonItem(updateBtnProps,"$update",onUpdate);if(updateBtn){if(!updateBtn.icon){updateBtn.icon=React.createElement(EditOutlined,null)}if(updateBtn.order===undefined){updateBtn.order=2}if(!updateBtn.label){updateBtn.label=messages.table.updateBtnText||"编辑"}if(!updateBtn.type){updateBtn.type="link"}items.push(updateBtn)}}if(showRemoveBtn&&removeBtnProps!==false){var config=removeBtnProps||{};var visible=typeof config.visible==="function"?config.visible(record,index):config.visible!==false;if(visible){var disabled=typeof config.disabled==="function"?config.disabled(record,index):config.disabled||false;var customOnRemove=config.onClick?function(){return _async_to_generator(function(){return _ts_generator(this,function(_state){switch(_state.label){case 0:return[4,config.onClick(record,index)];case 1:_state.sent();return[2,true]}})})()}:handleRemoveConfirm;var removeBtnLabel=config.label||messages.table.removeBtnText||"删除";var removeBtnIcon=config.icon||React.createElement(DeleteOutlined,null);var _config_order;items.push({key:config.key||"$remove",label:removeBtnLabel,order:(_config_order=config.order)!==null&&_config_order!==void 0?_config_order:3,isCustom:true,component:React.createElement(ConfirmButton,{key:config.key||"$remove",mode:"popconfirm",title:messages.table.removeTip||"警告",content:messages.table.removeConfirm||"确定要删除这条记录吗?",onConfirm:customOnRemove,triggerBtnProps:{type:config.type||"link",color:config.color||"danger",disabled:disabled,icon:removeBtnIcon,size:config.size,style:config.style,className:config.className}},removeBtnLabel)})}}rowButtonItems.forEach(function(item,idx){var button=convertToButtonItem(item,item.key||"$custom-".concat(idx));if(button){items.push(button)}});if(items.length===0){return null}return React.createElement(ButtonGroup,{items:items,maxCount:maxCount})};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function _array_like_to_array(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i<len;i++)arr2[i]=arr[i];return arr2}function _array_without_holes(arr){if(Array.isArray(arr))return _array_like_to_array(arr)}function _define_property(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}function _iterable_to_array(iter){if(typeof Symbol!=="undefined"&&iter[Symbol.iterator]!=null||iter["@@iterator"]!=null)return Array.from(iter)}function _non_iterable_spread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _object_spread(target){for(var i=1;i<arguments.length;i++){var source=arguments[i]!=null?arguments[i]:{};var ownKeys=Object.keys(source);if(typeof Object.getOwnPropertySymbols==="function"){ownKeys=ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym){return Object.getOwnPropertyDescriptor(source,sym).enumerable}))}ownKeys.forEach(function(key){_define_property(target,key,source[key])})}return target}function ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);if(enumerableOnly){symbols=symbols.filter(function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable})}keys.push.apply(keys,symbols)}return keys}function _object_spread_props(target,source){source=source!=null?source:{};if(Object.getOwnPropertyDescriptors){Object.defineProperties(target,Object.getOwnPropertyDescriptors(source))}else{ownKeys(Object(source)).forEach(function(key){Object.defineProperty(target,key,Object.getOwnPropertyDescriptor(source,key))})}return target}function _object_without_properties(source,excluded){if(source==null)return{};var target=_object_without_properties_loose(source,excluded);var key,i;if(Object.getOwnPropertySymbols){var sourceSymbolKeys=Object.getOwnPropertySymbols(source);for(i=0;i<sourceSymbolKeys.length;i++){key=sourceSymbolKeys[i];if(excluded.indexOf(key)>=0)continue;if(!Object.prototype.propertyIsEnumerable.call(source,key))continue;target[key]=source[key]}}return target}function _object_without_properties_loose(source,excluded){if(source==null)return{};var target={};var sourceKeys=Object.keys(source);var key,i;for(i=0;i<sourceKeys.length;i++){key=sourceKeys[i];if(excluded.indexOf(key)>=0)continue;target[key]=source[key]}return target}function _to_consumable_array(arr){return _array_without_holes(arr)||_iterable_to_array(arr)||_unsupported_iterable_to_array(arr)||_non_iterable_spread()}function _unsupported_iterable_to_array(o,minLen){if(!o)return;if(typeof o==="string")return _array_like_to_array(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(n);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _array_like_to_array(o,minLen)}import*as React from"react";import{useLocale}from"../../locale";import{ProForm}from"../../Form";var ProTableSearch=function(props){var _props_layoutType=props.layoutType,layoutType=_props_layoutType===void 0?"Form":_props_layoutType,_props_columns=props.columns,columns=_props_columns===void 0?[]:_props_columns,_props_labelWidth=props.labelWidth,labelWidth=_props_labelWidth===void 0?"auto":_props_labelWidth,labelCol=props.labelCol,submitter=props.submitter,
|
|
1
|
+
function _array_like_to_array(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i<len;i++)arr2[i]=arr[i];return arr2}function _array_without_holes(arr){if(Array.isArray(arr))return _array_like_to_array(arr)}function _define_property(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}function _iterable_to_array(iter){if(typeof Symbol!=="undefined"&&iter[Symbol.iterator]!=null||iter["@@iterator"]!=null)return Array.from(iter)}function _non_iterable_spread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _object_spread(target){for(var i=1;i<arguments.length;i++){var source=arguments[i]!=null?arguments[i]:{};var ownKeys=Object.keys(source);if(typeof Object.getOwnPropertySymbols==="function"){ownKeys=ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym){return Object.getOwnPropertyDescriptor(source,sym).enumerable}))}ownKeys.forEach(function(key){_define_property(target,key,source[key])})}return target}function ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);if(enumerableOnly){symbols=symbols.filter(function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable})}keys.push.apply(keys,symbols)}return keys}function _object_spread_props(target,source){source=source!=null?source:{};if(Object.getOwnPropertyDescriptors){Object.defineProperties(target,Object.getOwnPropertyDescriptors(source))}else{ownKeys(Object(source)).forEach(function(key){Object.defineProperty(target,key,Object.getOwnPropertyDescriptor(source,key))})}return target}function _object_without_properties(source,excluded){if(source==null)return{};var target=_object_without_properties_loose(source,excluded);var key,i;if(Object.getOwnPropertySymbols){var sourceSymbolKeys=Object.getOwnPropertySymbols(source);for(i=0;i<sourceSymbolKeys.length;i++){key=sourceSymbolKeys[i];if(excluded.indexOf(key)>=0)continue;if(!Object.prototype.propertyIsEnumerable.call(source,key))continue;target[key]=source[key]}}return target}function _object_without_properties_loose(source,excluded){if(source==null)return{};var target={};var sourceKeys=Object.keys(source);var key,i;for(i=0;i<sourceKeys.length;i++){key=sourceKeys[i];if(excluded.indexOf(key)>=0)continue;target[key]=source[key]}return target}function _to_consumable_array(arr){return _array_without_holes(arr)||_iterable_to_array(arr)||_unsupported_iterable_to_array(arr)||_non_iterable_spread()}function _unsupported_iterable_to_array(o,minLen){if(!o)return;if(typeof o==="string")return _array_like_to_array(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(n);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _array_like_to_array(o,minLen)}import*as React from"react";import{useLocale}from"../../locale";import{ProForm}from"../../Form";var ProTableSearch=function(props){var _props_layoutType=props.layoutType,layoutType=_props_layoutType===void 0?"Form":_props_layoutType,_props_layout=props.layout,layout=_props_layout===void 0?"inline":_props_layout,_props_columns=props.columns,columns=_props_columns===void 0?[]:_props_columns,_props_labelWidth=props.labelWidth,labelWidth=_props_labelWidth===void 0?"auto":_props_labelWidth,labelCol=props.labelCol,submitter=props.submitter,restProps=_object_without_properties(props,["layoutType","layout","columns","labelWidth","labelCol","submitter"]);var messages=useLocale().messages;var currentSubmitter=React.useMemo(function(){if(submitter===false){return submitter}var _ref=submitter!==null&&submitter!==void 0?submitter:{},render=_ref.render,searchConfig=_ref.searchConfig,rest=_object_without_properties(_ref,["render","searchConfig"]);return _object_spread_props(_object_spread({},rest),{searchConfig:{submitText:(searchConfig===null||searchConfig===void 0?void 0:searchConfig.submitText)?searchConfig===null||searchConfig===void 0?void 0:searchConfig.submitText:messages.form.query,resetText:(searchConfig===null||searchConfig===void 0?void 0:searchConfig.resetText)?searchConfig===null||searchConfig===void 0?void 0:searchConfig.resetText:messages.form.reset},render:render===false?false:function(props,doms){var dom=_to_consumable_array(doms.reverse());return render?render(props,dom):dom}})},[submitter,messages.form.query,messages.form.reset]);var currentLabelCol=React.useMemo(function(){if(layoutType==="QueryFilter"){return{labelWidth:labelWidth}}return _object_spread({flex:"0 0 ".concat(labelWidth)},labelCol)},[layoutType,labelWidth,labelCol]);var currentStyle=React.useMemo(function(){if(layoutType==="Form"){return _object_spread({gap:"8px 0"},restProps.style)}return restProps.style},[layoutType,restProps.style]);if(columns.length===0){return null}return React.createElement(ProForm,_object_spread_props(_object_spread({layout:layout,layoutType:layoutType,columns:columns,submitter:currentSubmitter},currentLabelCol,restProps),{style:currentStyle}))};export default ProTableSearch;
|
|
@@ -1,59 +1,21 @@
|
|
|
1
|
-
import { type
|
|
2
|
-
import type {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* @description 是否显示搜索
|
|
14
|
-
*/
|
|
15
|
-
visibleSearch: boolean;
|
|
16
|
-
/**
|
|
17
|
-
* @description 设置是否显示搜索
|
|
18
|
-
*/
|
|
19
|
-
setVisibleSearch: Dispatch<SetStateAction<boolean>>;
|
|
20
|
-
/**
|
|
21
|
-
* @description 当前操作
|
|
22
|
-
*/
|
|
23
|
-
operateType: OperateType;
|
|
24
|
-
/**
|
|
25
|
-
* @description 设置当前操作
|
|
26
|
-
*/
|
|
27
|
-
setOperateType: Dispatch<SetStateAction<OperateType>>;
|
|
28
|
-
/**
|
|
29
|
-
* @description 当前记录
|
|
30
|
-
*/
|
|
31
|
-
currentRecord?: any;
|
|
32
|
-
/**
|
|
33
|
-
* @description 设置当前记录
|
|
34
|
-
*/
|
|
35
|
-
setCurrentRecord: Dispatch<SetStateAction<any>>;
|
|
36
|
-
removeMode: ConfirmMode;
|
|
1
|
+
import { type Key } from "react";
|
|
2
|
+
import type { OperationType, ViewMode } from "./types";
|
|
3
|
+
export type ProTableContextType = {
|
|
4
|
+
selectedRowKeys: Key[];
|
|
5
|
+
setSelectedRowKeys: (keys: Key[]) => void;
|
|
6
|
+
selectedRows: Record<string, any>[];
|
|
7
|
+
setSelectedRows: (rows: Record<string, any>[]) => void;
|
|
8
|
+
operationType: OperationType;
|
|
9
|
+
setOperationType: (type: OperationType) => void;
|
|
10
|
+
currentRecord: Record<string, any> | null;
|
|
11
|
+
setCurrentRecord: (record: Record<string, any> | null) => void;
|
|
37
12
|
currentIndex: number;
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
* @description 判断权限
|
|
48
|
-
*/
|
|
49
|
-
hasPermission?: HasPermissionFn;
|
|
50
|
-
/**
|
|
51
|
-
* 设置当前信息
|
|
52
|
-
* @param type
|
|
53
|
-
* @param record
|
|
54
|
-
* @param index
|
|
55
|
-
*/
|
|
56
|
-
setCurrentInfo: (type: OperateType, record: any, index: number) => Promise<void>;
|
|
57
|
-
closePopup: () => Promise<void>;
|
|
58
|
-
}
|
|
59
|
-
export declare const VlianTableContext: import("react").Context<VlianTableContextType | undefined>;
|
|
13
|
+
setCurrentIndex: (index: number) => void;
|
|
14
|
+
viewMode: ViewMode;
|
|
15
|
+
setViewMode: (mode: ViewMode) => void;
|
|
16
|
+
dataSource: Record<string, any>[];
|
|
17
|
+
setDataSource: (data: Record<string, any>[]) => void;
|
|
18
|
+
loading: boolean;
|
|
19
|
+
setLoading: (loading: boolean) => void;
|
|
20
|
+
};
|
|
21
|
+
export declare const ProTableContext: import("react").Context<ProTableContextType>;
|
package/dist/ProTable/context.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{createContext}from"react";export var
|
|
1
|
+
import{createContext}from"react";export var ProTableContext=createContext({selectedRowKeys:[],setSelectedRowKeys:function(keys){void keys},selectedRows:[],setSelectedRows:function(rows){void rows},operationType:"list",setOperationType:function(type){void type},currentRecord:null,setCurrentRecord:function(record){void record},currentIndex:-1,setCurrentIndex:function(index){void index},viewMode:"table",setViewMode:function(mode){void mode},dataSource:[],setDataSource:function(data){void data},loading:false,setLoading:function(loading){void loading}});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function _array_like_to_array(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i<len;i++)arr2[i]=arr[i];return arr2}function _array_with_holes(arr){if(Array.isArray(arr))return arr}function _array_without_holes(arr){if(Array.isArray(arr))return _array_like_to_array(arr)}function _define_property(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}function _extends(){_extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source){if(Object.prototype.hasOwnProperty.call(source,key)){target[key]=source[key]}}}return target};return _extends.apply(this,arguments)}function _iterable_to_array(iter){if(typeof Symbol!=="undefined"&&iter[Symbol.iterator]!=null||iter["@@iterator"]!=null)return Array.from(iter)}function _iterable_to_array_limit(arr,i){var _i=arr==null?null:typeof Symbol!=="undefined"&&arr[Symbol.iterator]||arr["@@iterator"];if(_i==null)return;var _arr=[];var _n=true;var _d=false;var _s,_e;try{for(_i=_i.call(arr);!(_n=(_s=_i.next()).done);_n=true){_arr.push(_s.value);if(i&&_arr.length===i)break}}catch(err){_d=true;_e=err}finally{try{if(!_n&&_i["return"]!=null)_i["return"]()}finally{if(_d)throw _e}}return _arr}function _non_iterable_rest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _non_iterable_spread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _object_destructuring_empty(o){if(o===null||o===void 0)throw new TypeError("Cannot destructure "+o);return o}function _object_spread(target){for(var i=1;i<arguments.length;i++){var source=arguments[i]!=null?arguments[i]:{};var ownKeys=Object.keys(source);if(typeof Object.getOwnPropertySymbols==="function"){ownKeys=ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym){return Object.getOwnPropertyDescriptor(source,sym).enumerable}))}ownKeys.forEach(function(key){_define_property(target,key,source[key])})}return target}function ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);if(enumerableOnly){symbols=symbols.filter(function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable})}keys.push.apply(keys,symbols)}return keys}function _object_spread_props(target,source){source=source!=null?source:{};if(Object.getOwnPropertyDescriptors){Object.defineProperties(target,Object.getOwnPropertyDescriptors(source))}else{ownKeys(Object(source)).forEach(function(key){Object.defineProperty(target,key,Object.getOwnPropertyDescriptor(source,key))})}return target}function _sliced_to_array(arr,i){return _array_with_holes(arr)||_iterable_to_array_limit(arr,i)||_unsupported_iterable_to_array(arr,i)||_non_iterable_rest()}function _to_consumable_array(arr){return _array_without_holes(arr)||_iterable_to_array(arr)||_unsupported_iterable_to_array(arr)||_non_iterable_spread()}function _unsupported_iterable_to_array(o,minLen){if(!o)return;if(typeof o==="string")return _array_like_to_array(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(n);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _array_like_to_array(o,minLen)}import{useState,useMemo,useRef,useCallback}from"react";import{Button,Divider,Flex,Input}from"antd";import{DeleteOutlined}from"@ant-design/icons";import{useLocale}from"../../locale";import{Typography}from"../../Text";import useStyle from"../styles";import{StorageHelper}from"../utils";var DEFAULT_PAGE_SIZES=[10,15,20,25,30,50,80,100];export var usePagination=function(){var props=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};var messages=useLocale().messages;var _useStyle=_sliced_to_array(useStyle("VlianTable"),2),hashId=_useStyle[1];var _props_openPageSizeCache=props.openPageSizeCache,openPageSizeCache=_props_openPageSizeCache===void 0?false:_props_openPageSizeCache,_props_tableProps=props.tableProps,tableProps=_props_tableProps===void 0?{}:_props_tableProps,_props_defaultPageSize=props.defaultPageSize,defaultPageSize=_props_defaultPageSize===void 0?10:_props_defaultPageSize,tableKey=props.tableKey;var pagination=tableProps.pagination;var inputRef=useRef(null);var pageCacheKey=tableKey?"table-page-size-list-".concat(tableKey):"table-page-size-list";var pageSizeCacheKey=tableKey?"table-page-size-".concat(tableKey):"table-page-size";var getInitialPageSize=useCallback(function(){if(openPageSizeCache&&pageSizeCacheKey){return StorageHelper.getNumber(pageSizeCacheKey,defaultPageSize)}return defaultPageSize},[openPageSizeCache,pageSizeCacheKey,defaultPageSize]);var getInitialPageSizeOptions=useCallback(function(){if(!openPageSizeCache){return _to_consumable_array(DEFAULT_PAGE_SIZES)}return StorageHelper.getJSON(pageCacheKey,_to_consumable_array(DEFAULT_PAGE_SIZES))},[openPageSizeCache,pageCacheKey]);var _useState=_sliced_to_array(useState(""),2),name=_useState[0],setName=_useState[1];var _useState1=_sliced_to_array(useState(getInitialPageSize),2),pageSize=_useState1[0],setPageSize=_useState1[1];var _useState2=_sliced_to_array(useState(getInitialPageSizeOptions),2),items=_useState2[0],setItems=_useState2[1];var onNameChange=useCallback(function(event){setName(event.target.value)},[]);var addItem=useCallback(function(e){e.preventDefault();if(!openPageSizeCache||!name)return;var newSize=Number(name);if(isNaN(newSize)||newSize<=0)return;setItems(function(prev){var newList=_to_consumable_array(new Set(_to_consumable_array(prev).concat([newSize])));newList.sort(function(a,b){return a-b});StorageHelper.setJSON(pageCacheKey,newList);return newList});setName("");setTimeout(function(){var _inputRef_current;(_inputRef_current=inputRef.current)===null||_inputRef_current===void 0?void 0:_inputRef_current.focus()},0)},[openPageSizeCache,name,pageCacheKey]);var removeItem=useCallback(function(e,val){e.preventDefault();e.stopPropagation();if(!openPageSizeCache)return;setItems(function(prev){var newList=prev.filter(function(v){return v!==val});newList.sort(function(a,b){return a-b});StorageHelper.setJSON(pageCacheKey,newList);if(val===pageSize){var newPageSize=newList[0]||defaultPageSize;setPageSize(newPageSize);StorageHelper.setNumber(pageSizeCacheKey,newPageSize)}return newList})},[openPageSizeCache,pageSize,defaultPageSize,pageCacheKey,pageSizeCacheKey]);var currentPagination=useMemo(function(){if(pagination===false){return false}var otherPageInfo=_extends({},_object_destructuring_empty(pagination||{}));var selectProps={popupRender:function(menu){return React.createElement(React.Fragment,null,menu,React.createElement(Divider,{className:"VlianTable-pagination-divider ".concat(hashId)}),React.createElement(Flex,{className:"VlianTable-pagination-input-container ".concat(hashId),align:"center",gap:10},React.createElement(Input,{placeholder:messages.table.pagePt,ref:inputRef,value:name,type:"number",onChange:onNameChange,onKeyDown:function(e){return e.stopPropagation()},className:"VlianTable-pagination-input ".concat(hashId)}),React.createElement(Button,{className:"VlianTable-pagination-button ".concat(hashId),type:"text",size:"small",onClick:addItem},messages.table.pageAddText)))},optionRender:function(option){return React.createElement(Flex,{align:"center",gap:10},React.createElement(Typography.Text,{className:"VlianTable-pagination-option-text ".concat(hashId)},option.label),React.createElement(Button,{className:"VlianTable-pagination-button ".concat(hashId),type:"text",size:"small",onClick:function(e){removeItem(e,option.value)},icon:React.createElement(DeleteOutlined,null)}))}};return _object_spread_props(_object_spread({pageSize:pageSize,showSizeChanger:openPageSizeCache?selectProps:true,pageSizeOptions:items},otherPageInfo),{onShowSizeChange:function(current,size){var _otherPageInfo_onShowSizeChange;setPageSize(size);if(openPageSizeCache&&pageSizeCacheKey){StorageHelper.setNumber(pageSizeCacheKey,size)}otherPageInfo===null||otherPageInfo===void 0?void 0:(_otherPageInfo_onShowSizeChange=otherPageInfo.onShowSizeChange)===null||_otherPageInfo_onShowSizeChange===void 0?void 0:_otherPageInfo_onShowSizeChange.call(otherPageInfo,current,size)}})},[pagination,openPageSizeCache,removeItem,items,defaultPageSize,addItem,pageSize,name,messages,pageSizeCacheKey]);return{currentPagination:currentPagination}};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Router 模式下的导航 Hook
|
|
3
|
+
*/
|
|
4
|
+
export declare const useRouterNavigation: () => {
|
|
5
|
+
operationType: import("..").OperationType;
|
|
6
|
+
navigateToCreate: () => void;
|
|
7
|
+
navigateToUpdate: (id: string | number) => void;
|
|
8
|
+
navigateToView: (id: string | number) => void;
|
|
9
|
+
navigateToList: () => void;
|
|
10
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{useNavigate,useLocation}from"react-router-dom";import{useContext,useEffect}from"react";import{ProTableContext}from"../context";export var useRouterNavigation=function(){var navigate=useNavigate();var location=useLocation();var _useContext=useContext(ProTableContext),operationType=_useContext.operationType,setOperationType=_useContext.setOperationType;useEffect(function(){var path=location.pathname;if(path==="/"||path===""){setOperationType("list")}else if(path==="/create"){setOperationType("create")}else if(path.includes("/update/")||path.includes("/edit/")){setOperationType("update")}else if(path.includes("/view/")||path.includes("/detail/")){setOperationType("view")}},[location.pathname,setOperationType]);var navigateToCreate=function(){navigate("/create")};var navigateToUpdate=function(id){navigate("/update/".concat(id))};var navigateToView=function(id){navigate("/view/".concat(id))};var navigateToList=function(){navigate("/")};return{operationType:operationType,navigateToCreate:navigateToCreate,navigateToUpdate:navigateToUpdate,navigateToView:navigateToView,navigateToList:navigateToList}};
|
package/dist/ProTable/index.d.ts
CHANGED
|
@@ -1,2 +1,3 @@
|
|
|
1
|
-
export
|
|
2
|
-
export
|
|
1
|
+
export * from "./types";
|
|
2
|
+
export * from "./table";
|
|
3
|
+
export * from "./utils";
|
package/dist/ProTable/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export
|
|
1
|
+
export*from"./types";export*from"./table";export*from"./utils";
|
|
@@ -2,6 +2,7 @@ import type { FullToken, GenerateStyle, GetDefaultToken } from 'antd/es/theme/in
|
|
|
2
2
|
type VlianTableToken = FullToken<'VlianTable'> & {};
|
|
3
3
|
export declare const genBaseStyle: GenerateStyle<VlianTableToken>;
|
|
4
4
|
export declare const genListStyle: GenerateStyle<VlianTableToken>;
|
|
5
|
+
export declare const genGridStyle: GenerateStyle<VlianTableToken>;
|
|
5
6
|
export declare const prepareComponentToken: GetDefaultToken<'VlianTable'>;
|
|
6
7
|
declare const _default: (prefixCls: string, rootCls?: string) => readonly [(node: React.ReactElement) => React.ReactElement, string, string];
|
|
7
8
|
export default _default;
|
package/dist/ProTable/styles.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
function _define_property(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}import{genStyleHooks}from"antd/es/theme/internal";export var genBaseStyle=function(token){var componentCls=token.componentCls;return _define_property({},componentCls,{backgroundColor:token.colorBgContainer,padding:token.
|
|
1
|
+
function _define_property(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}import{genStyleHooks}from"antd/es/theme/internal";export var genBaseStyle=function(token){var componentCls=token.componentCls;return _define_property({},componentCls,{backgroundColor:token.colorBgContainer,"&&":{padding:token.paddingSM},".ant-pro-query-filter.ant-pro-query-filter":{padding:0}})};export var genListStyle=function(token){var componentCls=token.componentCls;var _obj;return _obj={},_define_property(_obj,"".concat(componentCls,"-list"),{position:"relative"}),_define_property(_obj,"".concat(componentCls,"-form-footer"),{textAlign:"right",padding:"".concat(token.padding,"px 0")}),_define_property(_obj,"".concat(componentCls,"-operation-placeholder"),{padding:token.paddingLG}),_define_property(_obj,"".concat(componentCls,"-pagination-divider"),{margin:"".concat(token.marginXS,"px 0")}),_define_property(_obj,"".concat(componentCls,"-pagination-input-container"),{padding:"0 ".concat(token.paddingXS,"px ").concat(token.paddingXXS,"px"),width:"200px"}),_define_property(_obj,"".concat(componentCls,"-pagination-input"),{flexGrow:1,width:0}),_define_property(_obj,"".concat(componentCls,"-pagination-button"),{flexShrink:0}),_define_property(_obj,"".concat(componentCls,"-pagination-option-text"),{width:0,flexGrow:1}),_obj};export var genGridStyle=function(token){var componentCls=token.componentCls;var _obj;return _obj={},_define_property(_obj,"".concat(componentCls,"-grid-card"),{height:"100%",minHeight:"180px","&-title":{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontSize:token.fontSize},"&-title-label":{color:token.colorTextSecondary,fontWeight:"normal"},"&-title-value":{fontWeight:600},"&-fields-row":{marginBottom:"10px","&-no-actions":{marginBottom:0}},"&-field-col":{minWidth:0},"&-field-container":{display:"flex",alignItems:"center",fontSize:token.fontSize-1,gap:token.marginXS,minWidth:0},"&-field-label":{color:token.colorTextSecondary,fontSize:token.fontSize,flexShrink:0,whiteSpace:"nowrap"},"&-field-value":{fontWeight:500,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",color:token.colorText,flex:1,minWidth:0,fontSize:token.fontSize},"&-actions":{borderTop:"1px solid ".concat(token.colorBorder),paddingTop:token.paddingXXS,display:"flex",justifyContent:"flex-end","&-with-gap":{marginTop:0},"&-no-gap":{marginTop:token.marginSM}}}),_define_property(_obj,"".concat(componentCls,"-grid-view"),{"&-empty":{textAlign:"center",padding:"40px 0",color:token.colorTextSecondary},"&-pagination":{marginTop:token.margin,display:"flex",justifyContent:"flex-end"}}),_define_property(_obj,"".concat(componentCls,"-view-switch"),{cursor:"pointer",fontSize:token.fontSizeLG,display:"flex",alignItems:"center",justifyContent:"center",color:"inherit",transition:"color 0.3s","&:hover":{color:token.colorPrimary}}),_define_property(_obj,"".concat(componentCls,"-grid-mode"),{".ant-table-wrapper, .ant-table-pagination":{display:"none !important"}}),_obj};export var prepareComponentToken=function(){return{}};export default genStyleHooks("VlianTable",function(token){return[genBaseStyle(token),genListStyle(token),genGridStyle(token)]},prepareComponentToken);
|
package/dist/ProTable/table.d.ts
CHANGED
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
export declare const VlianTable: <DataSource extends ParamsType = ParamsType, U extends ParamsType = ParamsType, FormValue extends ParamsType = ParamsType, ValueType = any>(props: VlianTableProps<DataSource, U, ValueType>) => React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
|
|
1
|
+
import type { ProTableProps } from "./types";
|
|
2
|
+
export declare const ProTable: <DataSource extends Record<string, any> = Record<string, any>, ParamsType extends Record<string, any> = Record<string, any>, ValueType = "text">(props: ProTableProps<DataSource, ParamsType, ValueType>) => any;
|
package/dist/ProTable/table.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
function _array_like_to_array(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i<len;i++)arr2[i]=arr[i];return arr2}function _array_with_holes(arr){if(Array.isArray(arr))return arr}function asyncGeneratorStep(gen,resolve,reject,_next,_throw,key,arg){try{var info=gen[key](arg);var value=info.value}catch(error){reject(error);return}if(info.done){resolve(value)}else{Promise.resolve(value).then(_next,_throw)}}function _async_to_generator(fn){return function(){var self=this,args=arguments;return new Promise(function(resolve,reject){var gen=fn.apply(self,args);function _next(value){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"next",value)}function _throw(err){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"throw",err)}_next(undefined)})}}function _define_property(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}function _iterable_to_array_limit(arr,i){var _i=arr==null?null:typeof Symbol!=="undefined"&&arr[Symbol.iterator]||arr["@@iterator"];if(_i==null)return;var _arr=[];var _n=true;var _d=false;var _s,_e;try{for(_i=_i.call(arr);!(_n=(_s=_i.next()).done);_n=true){_arr.push(_s.value);if(i&&_arr.length===i)break}}catch(err){_d=true;_e=err}finally{try{if(!_n&&_i["return"]!=null)_i["return"]()}finally{if(_d)throw _e}}return _arr}function _non_iterable_rest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _object_spread(target){for(var i=1;i<arguments.length;i++){var source=arguments[i]!=null?arguments[i]:{};var ownKeys=Object.keys(source);if(typeof Object.getOwnPropertySymbols==="function"){ownKeys=ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym){return Object.getOwnPropertyDescriptor(source,sym).enumerable}))}ownKeys.forEach(function(key){_define_property(target,key,source[key])})}return target}function ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);if(enumerableOnly){symbols=symbols.filter(function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable})}keys.push.apply(keys,symbols)}return keys}function _object_spread_props(target,source){source=source!=null?source:{};if(Object.getOwnPropertyDescriptors){Object.defineProperties(target,Object.getOwnPropertyDescriptors(source))}else{ownKeys(Object(source)).forEach(function(key){Object.defineProperty(target,key,Object.getOwnPropertyDescriptor(source,key))})}return target}function _object_without_properties(source,excluded){if(source==null)return{};var target=_object_without_properties_loose(source,excluded);var key,i;if(Object.getOwnPropertySymbols){var sourceSymbolKeys=Object.getOwnPropertySymbols(source);for(i=0;i<sourceSymbolKeys.length;i++){key=sourceSymbolKeys[i];if(excluded.indexOf(key)>=0)continue;if(!Object.prototype.propertyIsEnumerable.call(source,key))continue;target[key]=source[key]}}return target}function _object_without_properties_loose(source,excluded){if(source==null)return{};var target={};var sourceKeys=Object.keys(source);var key,i;for(i=0;i<sourceKeys.length;i++){key=sourceKeys[i];if(excluded.indexOf(key)>=0)continue;target[key]=source[key]}return target}function _sliced_to_array(arr,i){return _array_with_holes(arr)||_iterable_to_array_limit(arr,i)||_unsupported_iterable_to_array(arr,i)||_non_iterable_rest()}function _unsupported_iterable_to_array(o,minLen){if(!o)return;if(typeof o==="string")return _array_like_to_array(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(n);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _array_like_to_array(o,minLen)}function _ts_generator(thisArg,body){var f,y,t,_={label:0,sent:function(){if(t[0]&1)throw t[1];return t[1]},trys:[],ops:[]},g=Object.create((typeof Iterator==="function"?Iterator:Object).prototype);return g.next=verb(0),g["throw"]=verb(1),g["return"]=verb(2),typeof Symbol==="function"&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return step([n,v])}}function step(op){if(f)throw new TypeError("Generator is already executing.");while(g&&(g=0,op[0]&&(_=0)),_)try{if(f=1,y&&(t=op[0]&2?y["return"]:op[0]?y["throw"]||((t=y["return"])&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;if(y=0,t)op=[op[0]&2,t.value];switch(op[0]){case 0:case 1:t=op;break;case 4:_.label++;return{value:op[1],done:false};case 5:_.label++;y=op[1];op=[0];continue;case 7:op=_.ops.pop();_.trys.pop();continue;default:if(!(t=_.trys,t=t.length>0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(op[0]===6&&_.label<t[1]){_.label=t[1];t=op;break}if(t&&_.label<t[2]){_.label=t[2];_.ops.push(op);break}if(t[2])_.ops.pop();_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e];y=0}finally{f=t=0}if(op[0]&5)throw op[1];return{value:op[0]?op[1]:void 0,done:true}}}import React,{useRef}from"react";import useStyle from"./styles";import{useComponentConfig}from"antd/es/config-provider/context";import classNames from"classnames";import{VlianTableContext}from"./context";import{MemoryRouter,Routes,Route}from"react-router-dom";import{VlianListTable}from"./list";import{Modal}from"../Modal";import{Drawer}from"antd";import{nanoid}from"nanoid";import{UpdateView}from"./update";import{FormFooter}from"./form-footer";export var VlianTable=function(props){var customizePrefixCls=props.prefixCls,className=props.className,style=props.style,size=props.size,_props_mode=props.mode,mode=_props_mode===void 0?"router":_props_mode,list=props.list,_props_removeMode=props.removeMode,removeMode=_props_removeMode===void 0?"popconfirm":_props_removeMode,permissionKey=props.permissionKey,_props_basicUrl=props.basicUrl,basicUrl=_props_basicUrl===void 0?"":_props_basicUrl,permission=props.permission,hasPermission=props.hasPermission,tmp=props.formProps,_ref=tmp===void 0?{}:tmp,formRef=_ref.formRef,tmp1=_ref.submitter,submitterPosition=(tmp1===void 0?{}:tmp1).submitterPosition,submitterProps=_object_without_properties(props.formProps.submitter,["submitterPosition"]),restFormProps=_object_without_properties(props.formProps,["formRef","submitter"]);var tableId=permissionKey?permissionKey:nanoid();var _ref1=list||{},_ref_columns=_ref1.columns,columns=_ref_columns===void 0?[]:_ref_columns,listProps=_object_without_properties(_ref1,["columns"]);var getPrefixCls=useComponentConfig("vlian-table").getPrefixCls;var prefixCls=getPrefixCls("vlian-table",customizePrefixCls);var _useStyle=_sliced_to_array(useStyle(prefixCls),3),wrapCSS=_useStyle[0],hashId=_useStyle[1],cssVarCls=_useStyle[2];var _React_useState=_sliced_to_array(React.useState(true),2),visibleSearch=_React_useState[0],setVisibleSearch=_React_useState[1];var _React_useState1=_sliced_to_array(React.useState(""),2),operateType=_React_useState1[0],setOperateType=_React_useState1[1];var _React_useState2=_sliced_to_array(React.useState({}),2),currentRecord=_React_useState2[0],setCurrentRecord=_React_useState2[1];var _React_useState3=_sliced_to_array(React.useState(-1),2),currentIndex=_React_useState3[0],setCurrentIndex=_React_useState3[1];var _React_useState4=_sliced_to_array(React.useState(false),2),visibleModal=_React_useState4[0],setVisibleModal=_React_useState4[1];var _React_useState5=_sliced_to_array(React.useState(false),2),visibleDrawer=_React_useState5[0],setVisibleDrawer=_React_useState5[1];var internalRef=useRef(null);var refToUse=formRef||internalRef;var _React_useState6=_sliced_to_array(React.useState(false),2),submitLoading=_React_useState6[0],setSubmitLoading=_React_useState6[1];var onViewClick=function(record,index,action){return _async_to_generator(function(){return _ts_generator(this,function(_state){console.info(record,index,action);return[2]})})()};var handleOpenOperate=function(){if(mode==="modal"){setVisibleModal(true)}if(mode==="drawer"){setVisibleDrawer(true)}return};var onUpdateClick=function(record,index){return _async_to_generator(function(){return _ts_generator(this,function(_state){setOperateType("update");setCurrentRecord(record);setCurrentIndex(index);return[2,true]})})()};var onRemoveClick=function(record,index,action){return _async_to_generator(function(){return _ts_generator(this,function(_state){console.info(record,index,action);return[2]})})()};var handleOpenPopup=function(){return _async_to_generator(function(){return _ts_generator(this,function(_state){handleOpenOperate();return[2]})})()};var closePopup=function(){return _async_to_generator(function(){return _ts_generator(this,function(_state){setVisibleDrawer(false);setVisibleModal(false);setTimeout(function(){setOperateType("");setCurrentRecord({});setCurrentIndex(-1)},100);return[2]})})()};var setCurrentInfo=function(type,record,index){return _async_to_generator(function(){return _ts_generator(this,function(_state){setOperateType(type);setCurrentRecord(record);setCurrentIndex(index);return[2]})})()};var showUpdate=React.useCallback(function(record){if(hasPermission){var _permission_update;return hasPermission((_permission_update=permission===null||permission===void 0?void 0:permission.update)!==null&&_permission_update!==void 0?_permission_update:"".concat(tableId,":update"),record)}return true},[hasPermission,permission===null||permission===void 0?void 0:permission.update,tableId]);var handleRest=function(){var _refToUse_current;(_refToUse_current=refToUse.current)===null||_refToUse_current===void 0?void 0:_refToUse_current.resetFields()};var handleSubmit=function(){var _refToUse_current;(_refToUse_current=refToUse.current)===null||_refToUse_current===void 0?void 0:_refToUse_current.submit()};var renderUpdate=React.useCallback(function(record){var isRouter=arguments.length>1&&arguments[1]!==void 0?arguments[1]:true;var _ref=restFormProps||{},children=_ref.children,footer=_ref.footer,width=_ref.width,rest=_object_without_properties(_ref,["children","footer","width"]);void footer;if(!showUpdate(record))return null;var content=React.createElement(UpdateView,_object_spread_props(_object_spread({onLoadingChange:setSubmitLoading,width:width,formRef:refToUse},rest),{footer:mode==="router"?React.createElement(FormFooter,_object_spread({submitLoading:submitLoading,onReset:handleRest,onSubmit:handleSubmit,submitterPosition:submitterPosition!==null&&submitterPosition!==void 0?submitterPosition:"center"},submitterProps)):false}),children===null||children===void 0?void 0:children(refToUse,record));if(mode==="router"){return isRouter?React.createElement(Route,{path:"edit",element:content}):null}var popupMap={modal:React.createElement(Modal,{open:visibleModal,width:width,onCancel:closePopup,footer:React.createElement(FormFooter,_object_spread({submitLoading:submitLoading,onReset:handleRest,onSubmit:handleSubmit,submitterPosition:submitterPosition!==null&&submitterPosition!==void 0?submitterPosition:"flex-end"},submitterProps))},content),drawer:React.createElement(Drawer,{open:visibleDrawer},content)};var _popupMap_mode;return isRouter?null:(_popupMap_mode=popupMap[mode])!==null&&_popupMap_mode!==void 0?_popupMap_mode:null},[mode,visibleModal,visibleDrawer,showUpdate,restFormProps,refToUse,submitLoading]);return wrapCSS(React.createElement(VlianTableContext.Provider,{value:{baseUrl:basicUrl,mode:mode,visibleSearch:visibleSearch,setVisibleSearch:setVisibleSearch,operateType:operateType,setOperateType:setOperateType,removeMode:removeMode,onViewClick:onViewClick,onUpdateClick:onUpdateClick,onRemoveClick:onRemoveClick,currentRecord:currentRecord,setCurrentRecord:setCurrentRecord,handleOpenPopup:handleOpenPopup,currentIndex:currentIndex,permission:permission,hasPermission:hasPermission,setCurrentInfo:setCurrentInfo,size:size,closePopup:closePopup}},React.createElement("div",{className:classNames("".concat(prefixCls),className,cssVarCls,hashId),style:style},React.createElement(MemoryRouter,{basename:basicUrl,initialEntries:["/"]},React.createElement(Routes,null,React.createElement(Route,{path:"",element:React.createElement(VlianListTable,_object_spread({tableId:tableId,size:size,columns:columns||[]},listProps))}),renderUpdate(currentRecord,true)),renderUpdate(currentRecord,false)))))};
|
|
1
|
+
function _array_like_to_array(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i<len;i++)arr2[i]=arr[i];return arr2}function _array_with_holes(arr){if(Array.isArray(arr))return arr}function _array_without_holes(arr){if(Array.isArray(arr))return _array_like_to_array(arr)}function asyncGeneratorStep(gen,resolve,reject,_next,_throw,key,arg){try{var info=gen[key](arg);var value=info.value}catch(error){reject(error);return}if(info.done){resolve(value)}else{Promise.resolve(value).then(_next,_throw)}}function _async_to_generator(fn){return function(){var self=this,args=arguments;return new Promise(function(resolve,reject){var gen=fn.apply(self,args);function _next(value){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"next",value)}function _throw(err){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"throw",err)}_next(undefined)})}}function _define_property(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}function _iterable_to_array(iter){if(typeof Symbol!=="undefined"&&iter[Symbol.iterator]!=null||iter["@@iterator"]!=null)return Array.from(iter)}function _iterable_to_array_limit(arr,i){var _i=arr==null?null:typeof Symbol!=="undefined"&&arr[Symbol.iterator]||arr["@@iterator"];if(_i==null)return;var _arr=[];var _n=true;var _d=false;var _s,_e;try{for(_i=_i.call(arr);!(_n=(_s=_i.next()).done);_n=true){_arr.push(_s.value);if(i&&_arr.length===i)break}}catch(err){_d=true;_e=err}finally{try{if(!_n&&_i["return"]!=null)_i["return"]()}finally{if(_d)throw _e}}return _arr}function _non_iterable_rest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _non_iterable_spread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _object_spread(target){for(var i=1;i<arguments.length;i++){var source=arguments[i]!=null?arguments[i]:{};var ownKeys=Object.keys(source);if(typeof Object.getOwnPropertySymbols==="function"){ownKeys=ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym){return Object.getOwnPropertyDescriptor(source,sym).enumerable}))}ownKeys.forEach(function(key){_define_property(target,key,source[key])})}return target}function ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);if(enumerableOnly){symbols=symbols.filter(function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable})}keys.push.apply(keys,symbols)}return keys}function _object_spread_props(target,source){source=source!=null?source:{};if(Object.getOwnPropertyDescriptors){Object.defineProperties(target,Object.getOwnPropertyDescriptors(source))}else{ownKeys(Object(source)).forEach(function(key){Object.defineProperty(target,key,Object.getOwnPropertyDescriptor(source,key))})}return target}function _object_without_properties(source,excluded){if(source==null)return{};var target=_object_without_properties_loose(source,excluded);var key,i;if(Object.getOwnPropertySymbols){var sourceSymbolKeys=Object.getOwnPropertySymbols(source);for(i=0;i<sourceSymbolKeys.length;i++){key=sourceSymbolKeys[i];if(excluded.indexOf(key)>=0)continue;if(!Object.prototype.propertyIsEnumerable.call(source,key))continue;target[key]=source[key]}}return target}function _object_without_properties_loose(source,excluded){if(source==null)return{};var target={};var sourceKeys=Object.keys(source);var key,i;for(i=0;i<sourceKeys.length;i++){key=sourceKeys[i];if(excluded.indexOf(key)>=0)continue;target[key]=source[key]}return target}function _sliced_to_array(arr,i){return _array_with_holes(arr)||_iterable_to_array_limit(arr,i)||_unsupported_iterable_to_array(arr,i)||_non_iterable_rest()}function _to_consumable_array(arr){return _array_without_holes(arr)||_iterable_to_array(arr)||_unsupported_iterable_to_array(arr)||_non_iterable_spread()}function _type_of(obj){"@swc/helpers - typeof";return obj&&typeof Symbol!=="undefined"&&obj.constructor===Symbol?"symbol":typeof obj}function _unsupported_iterable_to_array(o,minLen){if(!o)return;if(typeof o==="string")return _array_like_to_array(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(n);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _array_like_to_array(o,minLen)}function _ts_generator(thisArg,body){var f,y,t,_={label:0,sent:function(){if(t[0]&1)throw t[1];return t[1]},trys:[],ops:[]},g=Object.create((typeof Iterator==="function"?Iterator:Object).prototype);return g.next=verb(0),g["throw"]=verb(1),g["return"]=verb(2),typeof Symbol==="function"&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return step([n,v])}}function step(op){if(f)throw new TypeError("Generator is already executing.");while(g&&(g=0,op[0]&&(_=0)),_)try{if(f=1,y&&(t=op[0]&2?y["return"]:op[0]?y["throw"]||((t=y["return"])&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;if(y=0,t)op=[op[0]&2,t.value];switch(op[0]){case 0:case 1:t=op;break;case 4:_.label++;return{value:op[1],done:false};case 5:_.label++;y=op[1];op=[0];continue;case 7:op=_.ops.pop();_.trys.pop();continue;default:if(!(t=_.trys,t=t.length>0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(op[0]===6&&_.label<t[1]){_.label=t[1];t=op;break}if(t&&_.label<t[2]){_.label=t[2];_.ops.push(op);break}if(t[2])_.ops.pop();_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e];y=0}finally{f=t=0}if(op[0]&5)throw op[1];return{value:op[0]?op[1]:void 0,done:true}}}import React from"react";import{useCommonStyles}from"../hooks";import useStyle from"./styles";import{ButtonGroup}from"../ButtonGroup";import{PlusOutlined,DeleteOutlined}from"@ant-design/icons";import{useLocale}from"../locale";import{usePagination}from"./hooks/usePagination";import{ProTableContext}from"./context";import{Container}from"./components/Container";import{OperationContainer}from"./components/operation-container";import{OperationContent}from"./components/operation-content";import{OperationContentRouter}from"./components/operation-content-router";import{RowActions}from"./components/row-actions";import{RowActionsRouter}from"./components/row-actions-router";import{HeaderButtonsWrapper}from"./components/header-buttons-wrapper";import{MemoryRouter,Routes,Route}from"react-router-dom";import classNames from"classnames";import ConfirmButton from"../ConfirmButton/ConfirmButton";import{convertHeaderButtonToGroupItem,createOperationHandler,ColumnHelper}from"./utils";export var ProTable=function(props){var _props_columns=props.columns,columns=_props_columns===void 0?[]:_props_columns,search=props.search,searchType=props.searchType,_props_showCreateBtn=props.showCreateBtn,showCreateBtn=_props_showCreateBtn===void 0?true:_props_showCreateBtn,createBtnProps=props.createBtnProps,onCreate=props.onCreate,_props_showBatchRemoveBtn=props.showBatchRemoveBtn,showBatchRemoveBtn=_props_showBatchRemoveBtn===void 0?true:_props_showBatchRemoveBtn,batchRemoveBtnProps=props.batchRemoveBtnProps,onBatchRemove=props.onBatchRemove,_props_headerButtonItems=props.headerButtonItems,headerButtonItems=_props_headerButtonItems===void 0?[]:_props_headerButtonItems,_props_headerButtonMaxCount=props.headerButtonMaxCount,headerButtonMaxCount=_props_headerButtonMaxCount===void 0?3:_props_headerButtonMaxCount,rowSelection=props.rowSelection,_props_openPageSizeCache=props.openPageSizeCache,openPageSizeCache=_props_openPageSizeCache===void 0?false:_props_openPageSizeCache,_props_defaultPageSize=props.defaultPageSize,defaultPageSize=_props_defaultPageSize===void 0?10:_props_defaultPageSize,_props_mode=props.mode,mode=_props_mode===void 0?"modal":_props_mode,_props_showViewBtn=props.showViewBtn,showViewBtn=_props_showViewBtn===void 0?true:_props_showViewBtn,viewBtnProps=props.viewBtnProps,_props_showUpdateBtn=props.showUpdateBtn,showUpdateBtn=_props_showUpdateBtn===void 0?true:_props_showUpdateBtn,updateBtnProps=props.updateBtnProps,_props_showRemoveBtn=props.showRemoveBtn,showRemoveBtn=_props_showRemoveBtn===void 0?true:_props_showRemoveBtn,removeBtnProps=props.removeBtnProps,_props_rowButtonItems=props.rowButtonItems,rowButtonItems=_props_rowButtonItems===void 0?[]:_props_rowButtonItems,_props_rowButtonMaxCount=props.rowButtonMaxCount,rowButtonMaxCount=_props_rowButtonMaxCount===void 0?3:_props_rowButtonMaxCount,modalProps=props.modalProps,drawerProps=props.drawerProps,_props_routerBasePath=props.routerBasePath,routerBasePath=_props_routerBasePath===void 0?"/table":_props_routerBasePath,operationContent=props.operationContent,onGetDetail=props.onGetDetail,onRemove=props.onRemove,actionRef=props.actionRef,formConfig=props.formConfig,_props_defaultViewMode=props.defaultViewMode,defaultViewMode=_props_defaultViewMode===void 0?"table":_props_defaultViewMode,gridCardRender=props.gridCardRender,gridColumns=props.gridColumns,_props_gridCardFieldsPerRow=props.gridCardFieldsPerRow,gridCardFieldsPerRow=_props_gridCardFieldsPerRow===void 0?3:_props_gridCardFieldsPerRow,restProps=_object_without_properties(props,["columns","search","searchType","showCreateBtn","createBtnProps","onCreate","showBatchRemoveBtn","batchRemoveBtnProps","onBatchRemove","headerButtonItems","headerButtonMaxCount","rowSelection","openPageSizeCache","defaultPageSize","mode","showViewBtn","viewBtnProps","showUpdateBtn","updateBtnProps","showRemoveBtn","removeBtnProps","rowButtonItems","rowButtonMaxCount","modalProps","drawerProps","routerBasePath","operationContent","onGetDetail","onRemove","actionRef","formConfig","defaultViewMode","gridCardRender","gridColumns","gridCardFieldsPerRow"]);var _useCommonStyles=useCommonStyles("pro-table",props,useStyle),prefixCls=_useCommonStyles.prefixCls,cssVarCls=_useCommonStyles.cssVarCls,wrapCSS=_useCommonStyles.wrapCSS;var messages=useLocale().messages;var internalActionRef=React.useRef(undefined);var currentActionRef=React.useMemo(function(){if(!actionRef)return internalActionRef;if((typeof actionRef==="undefined"?"undefined":_type_of(actionRef))==="object"&&"current"in actionRef)return actionRef;return internalActionRef},[actionRef]);var currentPagination=usePagination({openPageSizeCache:openPageSizeCache,defaultPageSize:defaultPageSize,tableKey:restProps.tableKey,tableProps:restProps}).currentPagination;var _React_useState=_sliced_to_array(React.useState([]),2),selectedRowKeys=_React_useState[0],setSelectedRowKeys=_React_useState[1];var _React_useState1=_sliced_to_array(React.useState([]),2),selectedRows=_React_useState1[0],setSelectedRows=_React_useState1[1];var _React_useState2=_sliced_to_array(React.useState("list"),2),operationType=_React_useState2[0],setOperationType=_React_useState2[1];var _React_useState3=_sliced_to_array(React.useState(null),2),currentRecord=_React_useState3[0],setCurrentRecord=_React_useState3[1];var _React_useState4=_sliced_to_array(React.useState(-1),2),currentIndex=_React_useState4[0],setCurrentIndex=_React_useState4[1];var _React_useState5=_sliced_to_array(React.useState(false),2),operationVisible=_React_useState5[0],setOperationVisible=_React_useState5[1];var _React_useState6=_sliced_to_array(React.useState(defaultViewMode),2),viewMode=_React_useState6[0],setViewMode=_React_useState6[1];var _React_useState7=_sliced_to_array(React.useState([]),2),dataSource=_React_useState7[0],setDataSource=_React_useState7[1];var _React_useState8=_sliced_to_array(React.useState(false),2),loading=_React_useState8[0],setLoading=_React_useState8[1];var searchColumns=React.useMemo(function(){return columns.filter(function(column){var _column_hideInSearch=column.hideInSearch,hideInSearch=_column_hideInSearch===void 0?true:_column_hideInSearch;return!hideInSearch})},[columns]);var searchConfig=React.useMemo(function(){if(search===false){return null}var layoutType=(search===null||search===void 0?void 0:search.layoutType)||searchType||"Form";var layout=(search===null||search===void 0?void 0:search.layout)||"inline";var searchProps=(search===null||search===void 0?void 0:search.searchProps)||{};return _object_spread_props(_object_spread({layoutType:layoutType,layout:layout},searchProps),{onFinish:function(values){return _async_to_generator(function(){var _searchProps_onFinish,_currentActionRef_current_reload,_currentActionRef_current;return _ts_generator(this,function(_state){switch(_state.label){case 0:return[4,searchProps===null||searchProps===void 0?void 0:(_searchProps_onFinish=searchProps.onFinish)===null||_searchProps_onFinish===void 0?void 0:_searchProps_onFinish.call(searchProps,values)];case 1:_state.sent();if(!(currentActionRef===null||currentActionRef===void 0?void 0:currentActionRef.current))return[3,3];return[4,(_currentActionRef_current_reload=(_currentActionRef_current=currentActionRef.current).reload)===null||_currentActionRef_current_reload===void 0?void 0:_currentActionRef_current_reload.call(_currentActionRef_current,true)];case 2:_state.sent();_state.label=3;case 3:return[2]}})})()},onReset:function(values){return _async_to_generator(function(){var _searchProps_onReset,_currentActionRef_current_reloadAndRest,_currentActionRef_current;return _ts_generator(this,function(_state){switch(_state.label){case 0:searchProps===null||searchProps===void 0?void 0:(_searchProps_onReset=searchProps.onReset)===null||_searchProps_onReset===void 0?void 0:_searchProps_onReset.call(searchProps,values);if(!(currentActionRef===null||currentActionRef===void 0?void 0:currentActionRef.current))return[3,2];return[4,(_currentActionRef_current_reloadAndRest=(_currentActionRef_current=currentActionRef.current).reloadAndRest)===null||_currentActionRef_current_reloadAndRest===void 0?void 0:_currentActionRef_current_reloadAndRest.call(_currentActionRef_current)];case 1:_state.sent();_state.label=2;case 2:return[2]}})})()}})},[search,searchType,currentActionRef]);var handleCreateClick=React.useCallback(function(){return _async_to_generator(function(){return _ts_generator(this,function(_state){switch(_state.label){case 0:if(!onCreate)return[3,2];return[4,onCreate(selectedRowKeys)];case 1:_state.sent();return[3,3];case 2:setOperationType("create");setCurrentRecord(null);setCurrentIndex(-1);if(mode!=="router"){setOperationVisible(true)}_state.label=3;case 3:return[2]}})})()},[onCreate,selectedRowKeys,mode]);var handleViewClick=React.useCallback(createOperationHandler("view",setOperationType,setCurrentIndex,setCurrentRecord,setOperationVisible,onGetDetail,mode),[onGetDetail,mode]);var handleUpdateClick=React.useCallback(createOperationHandler("update",setOperationType,setCurrentIndex,setCurrentRecord,setOperationVisible,onGetDetail,mode),[onGetDetail,mode]);var handleRemoveClick=React.useCallback(function(record,index){return _async_to_generator(function(){var result,_currentActionRef_current_reload,_currentActionRef_current,error;return _ts_generator(this,function(_state){switch(_state.label){case 0:if(!onRemove)return[3,6];_state.label=1;case 1:_state.trys.push([1,5,,6]);return[4,onRemove(record,index)];case 2:result=_state.sent();if(result===false){return[2]}if(!(currentActionRef===null||currentActionRef===void 0?void 0:currentActionRef.current))return[3,4];return[4,(_currentActionRef_current_reload=(_currentActionRef_current=currentActionRef.current).reload)===null||_currentActionRef_current_reload===void 0?void 0:_currentActionRef_current_reload.call(_currentActionRef_current,true)];case 3:_state.sent();_state.label=4;case 4:setSelectedRowKeys([]);setSelectedRows([]);return[3,6];case 5:error=_state.sent();console.error("删除失败:",error);return[2];case 6:return[2]}})})()},[onRemove,currentActionRef]);var handleOperationClose=React.useCallback(function(){setOperationVisible(false);setOperationType("list");setCurrentRecord(null);setCurrentIndex(-1)},[]);var handleOperationSuccess=React.useCallback(function(){var shouldRefresh=arguments.length>0&&arguments[0]!==void 0?arguments[0]:true;return _async_to_generator(function(){var _currentActionRef_current_reload,_currentActionRef_current;return _ts_generator(this,function(_state){switch(_state.label){case 0:if(shouldRefresh===false){return[2]}handleOperationClose();if(!(currentActionRef===null||currentActionRef===void 0?void 0:currentActionRef.current))return[3,2];return[4,(_currentActionRef_current_reload=(_currentActionRef_current=currentActionRef.current).reload)===null||_currentActionRef_current_reload===void 0?void 0:_currentActionRef_current_reload.call(_currentActionRef_current,false)];case 1:_state.sent();_state.label=2;case 2:return[2]}})})()},[handleOperationClose,currentActionRef]);var handleBatchRemoveConfirm=React.useCallback(function(){return _async_to_generator(function(){var result,_currentActionRef_current_reload,_currentActionRef_current,error;return _ts_generator(this,function(_state){switch(_state.label){case 0:if(!onBatchRemove||selectedRowKeys.length===0){return[2,false]}_state.label=1;case 1:_state.trys.push([1,5,,6]);return[4,onBatchRemove(selectedRowKeys)];case 2:result=_state.sent();if(result===false){return[2,false]}if(!(currentActionRef===null||currentActionRef===void 0?void 0:currentActionRef.current))return[3,4];return[4,(_currentActionRef_current_reload=(_currentActionRef_current=currentActionRef.current).reload)===null||_currentActionRef_current_reload===void 0?void 0:_currentActionRef_current_reload.call(_currentActionRef_current,true)];case 3:_state.sent();_state.label=4;case 4:setSelectedRowKeys([]);setSelectedRows([]);return[2,true];case 5:error=_state.sent();console.error("批量删除失败:",error);return[2,false];case 6:return[2]}})})()},[onBatchRemove,selectedRowKeys,currentActionRef]);var convertToButtonItem=React.useCallback(function(config,defaultKey,defaultHandler){return convertHeaderButtonToGroupItem(config,defaultKey,selectedRowKeys,defaultHandler)},[selectedRowKeys]);var headerTitle=React.useMemo(function(){var items=[];if(showCreateBtn&&createBtnProps!==false){var createBtn=convertToButtonItem(createBtnProps,"$create",handleCreateClick);if(createBtn){if(!createBtn.icon){createBtn.icon=React.createElement(PlusOutlined,null)}if(createBtn.order===undefined){createBtn.order=1}if(!createBtn.label){createBtn.label=messages.table.createBtnText}if(!createBtn.type){createBtn.type="primary"}items.push(createBtn)}}if(showBatchRemoveBtn&&batchRemoveBtnProps!==false){var config=batchRemoveBtnProps||{};var visible=typeof(config===null||config===void 0?void 0:config.visible)==="function"?config.visible(selectedRowKeys):(config===null||config===void 0?void 0:config.visible)!==false;if(visible){var disabled=typeof(config===null||config===void 0?void 0:config.disabled)==="function"?config.disabled(selectedRowKeys):(config===null||config===void 0?void 0:config.disabled)||false;var batchRemoveBtnLabel=config.label||messages.table.batchRemoveBtnText;var batchRemoveBtnIcon=config.icon||React.createElement(DeleteOutlined,null);var _config_order;items.push({key:config.key||"$batchRemove",label:batchRemoveBtnLabel,order:(_config_order=config.order)!==null&&_config_order!==void 0?_config_order:2,isCustom:true,component:React.createElement(ConfirmButton,{key:config.key||"$batchRemove",mode:"modal",title:messages.table.batchRemoveModalTitle,content:messages.table.batchRemoveModalContent.replace("{count}",String(selectedRowKeys.length)),onConfirm:handleBatchRemoveConfirm,okText:"确定",cancelText:"取消",triggerBtnProps:{type:config.type,variant:config.variant||"outlined",color:config.color||"danger",disabled:selectedRowKeys.length===0||disabled,icon:batchRemoveBtnIcon,size:config.size,style:config.style,className:config.className}},batchRemoveBtnLabel)})}}headerButtonItems.forEach(function(item,index){var button=convertToButtonItem(item,item.key||"$custom-".concat(index));if(button){items.push(button)}});if(items.length===0){return null}return React.createElement(ButtonGroup,{items:items,maxCount:headerButtonMaxCount})},[showCreateBtn,createBtnProps,handleCreateClick,showBatchRemoveBtn,batchRemoveBtnProps,handleBatchRemoveConfirm,headerButtonItems,headerButtonMaxCount,selectedRowKeys,convertToButtonItem,messages]);var mergedRowSelection=React.useMemo(function(){if(rowSelection===false){return false}if(!rowSelection&&!showBatchRemoveBtn){return undefined}return _object_spread({},rowSelection)},[rowSelection,showBatchRemoveBtn]);var mergedColumns=React.useMemo(function(){var hasActions=showViewBtn||showUpdateBtn||showRemoveBtn||rowButtonItems.length>0;var columnsWithDefaults=ColumnHelper.addDefaultConfig(columns);if(!hasActions){return columnsWithDefaults}if(ColumnHelper.hasActionColumn(columns)){return columnsWithDefaults}var ActionComponent=mode==="router"?RowActionsRouter:RowActions;return _to_consumable_array(columnsWithDefaults).concat([{title:messages.table.operateColumnTitle||"操作",key:"actions",dataIndex:"actions",valueType:"option",fixed:"right",width:260,render:function(_,record,index){return React.createElement(ActionComponent,{record:record,index:index,showViewBtn:showViewBtn,viewBtnProps:viewBtnProps,onView:handleViewClick,showUpdateBtn:showUpdateBtn,updateBtnProps:updateBtnProps,onUpdate:handleUpdateClick,showRemoveBtn:showRemoveBtn,removeBtnProps:removeBtnProps,onRemove:handleRemoveClick,rowButtonItems:rowButtonItems,maxCount:rowButtonMaxCount,rowKey:restProps.rowKey})}}])},[columns,mode,showViewBtn,viewBtnProps,handleViewClick,showUpdateBtn,updateBtnProps,handleUpdateClick,showRemoveBtn,removeBtnProps,handleRemoveClick,rowButtonItems,rowButtonMaxCount,messages,restProps.rowKey]);var tableProps=React.useMemo(function(){var _prefixCls=restProps.prefixCls,_className=restProps.className,_style=restProps.style,_size=restProps.size,_tableKey=restProps.tableKey,_pagination=restProps.pagination,userOnLoadingChange=restProps.onLoadingChange,antdTableProps=_object_without_properties(restProps,["prefixCls","className","style","size","tableKey","pagination","onLoadingChange"]);return _object_spread_props(_object_spread({},antdTableProps),{onLoadingChange:function(newLoading){var loadingState=typeof newLoading==="boolean"?newLoading:!!newLoading;setLoading(loadingState);userOnLoadingChange===null||userOnLoadingChange===void 0?void 0:userOnLoadingChange(newLoading)}})},[restProps]);var contextValue=React.useMemo(function(){return{selectedRowKeys:selectedRowKeys,setSelectedRowKeys:setSelectedRowKeys,selectedRows:selectedRows,setSelectedRows:setSelectedRows,operationType:operationType,setOperationType:function(type){return setOperationType(type)},currentRecord:currentRecord,setCurrentRecord:function(record){return setCurrentRecord(record)},currentIndex:currentIndex,setCurrentIndex:function(index){return setCurrentIndex(index)},viewMode:viewMode,setViewMode:setViewMode,dataSource:dataSource,setDataSource:setDataSource,loading:loading,setLoading:setLoading}},[selectedRowKeys,selectedRows,operationType,currentRecord,currentIndex,viewMode,dataSource,loading]);var renderOperationContent=function(){if(operationContent){return operationContent({type:operationType,record:currentRecord||undefined,onClose:handleOperationClose,onSuccess:handleOperationSuccess})}return React.createElement(OperationContent,{type:operationType,record:currentRecord||undefined,onClose:handleOperationClose,onSuccess:handleOperationSuccess,tableColumns:columns,formConfig:formConfig})};var listContent=React.useMemo(function(){var content=React.createElement(Container,{prefixCls:prefixCls,cssVarCls:cssVarCls,className:restProps.className,style:restProps.style,searchConfig:searchConfig,searchColumns:searchColumns,columns:mergedColumns,headerTitle:mode==="router"?React.createElement(HeaderButtonsWrapper,{mode:mode,operationType:operationType},headerTitle):headerTitle,rowSelection:mergedRowSelection,pagination:currentPagination,tableProps:tableProps,actionRef:currentActionRef,wrapCSS:wrapCSS,gridCardRender:gridCardRender,gridColumns:gridColumns,gridCardFieldsPerRow:gridCardFieldsPerRow});return content},[prefixCls,cssVarCls,restProps.className,restProps.style,searchConfig,searchColumns,mergedColumns,headerTitle,mergedRowSelection,currentPagination,tableProps,currentActionRef,wrapCSS,mode,operationType,gridCardRender,gridColumns,gridCardFieldsPerRow]);var renderOperationRoute=function(type){return React.createElement(OperationContentRouter,{type:type,currentRecord:currentRecord,operationContent:operationContent,onClose:handleOperationClose,onSuccess:handleOperationSuccess,tableColumns:columns,formConfig:formConfig})};if(mode==="router"){return wrapCSS(React.createElement(ProTableContext.Provider,{value:contextValue},React.createElement("div",{className:classNames(prefixCls,cssVarCls,restProps.className),style:restProps.style},React.createElement(MemoryRouter,{basename:routerBasePath,initialEntries:[routerBasePath]},React.createElement(Routes,null,React.createElement(Route,{path:"/",element:listContent}),React.createElement(Route,{path:"/create",element:renderOperationRoute("create")}),React.createElement(Route,{path:"/update/:id",element:renderOperationRoute("update")}),React.createElement(Route,{path:"/edit/:id",element:renderOperationRoute("update")}),React.createElement(Route,{path:"/view/:id",element:renderOperationRoute("view")}),React.createElement(Route,{path:"/detail/:id",element:renderOperationRoute("view")}))))))}return wrapCSS(React.createElement(ProTableContext.Provider,{value:contextValue},listContent,operationType!=="list"&&React.createElement(OperationContainer,{mode:mode,operationType:operationType,visible:operationVisible,onClose:handleOperationClose,modalProps:modalProps,drawerProps:drawerProps},renderOperationContent())))};
|