villianjs-pro 1.0.19 → 1.0.21

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.
@@ -1,5 +1,5 @@
1
1
  import { type FC } from "react";
2
- import type { ImportRecord, ImportErrorItem, QueryImportErrors, ImportDetailContentRender } from "../types";
2
+ import type { ImportRecord, ImportErrorItem, QueryImportErrors, ImportDetailContentRender, QueryImportProgress } from "../types";
3
3
  import type { ProColumns } from "@ant-design/pro-components";
4
4
  interface ImportDetailDialogProps {
5
5
  open: boolean;
@@ -13,6 +13,10 @@ interface ImportDetailDialogProps {
13
13
  errorTableProps?: Record<string, any>;
14
14
  /** 自定义详情内容渲染(优先级高于 Context 配置) */
15
15
  contentRender?: ImportDetailContentRender;
16
+ /** 查询导入进度接口(优先级高于 Context 配置) */
17
+ queryProgress?: QueryImportProgress;
18
+ /** 进度轮询间隔(毫秒),默认 2000ms */
19
+ pollInterval?: number;
16
20
  }
17
21
  export declare const ImportDetailDialog: FC<ImportDetailDialogProps>;
18
22
  export {};
@@ -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 _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{useMemo}from"react";import React from"react";import{Badge,Row,Col,Card,Alert,theme,Descriptions}from"antd";import{ProTable}from"../../ProTable";import{Modal}from"../../Modal";import{CheckCircleOutlined,CloseCircleOutlined,ExclamationCircleOutlined}from"@ant-design/icons";import{formatDate}from"../utils/date";import{getContainerStyle,getStatCardStyle,getStatNumberStyle,getStatLabelStyle,getRowNumberStyle}from"../utils/styles";import{useLocale}from"../../locale";var useToken=theme.useToken;export var ImportDetailDialog=function(param){var open=param.open,onOpenChange=param.onOpenChange,record=param.record,errorColumns=param.errorColumns,queryImportErrors=param.queryImportErrors,errorTableProps=param.errorTableProps,contentRender=param.contentRender;var token=useToken().token;var messages=useLocale().messages;var currentStatus=record.status;var formattedCreatedAt=useMemo(function(){if(!record.createdAt)return"";try{var date=new Date(record.createdAt);if(isNaN(date.getTime())){return record.createdAt}return formatDate(date,"YYYY-MM-DD HH:mm:ss")}catch(e){return record.createdAt}},[record.createdAt]);var containerStyle=useMemo(function(){return getContainerStyle()},[]);var statCardStyle=useMemo(function(){return getStatCardStyle()},[]);var statNumberStyle=useMemo(function(){return getStatNumberStyle()},[]);var statLabelStyle=useMemo(function(){return getStatLabelStyle(token)},[token]);var defaultErrorColumns=useMemo(function(){return[{title:messages.imports.detail.errorColumns.rowNumber,dataIndex:"row_number",key:"row_number",width:120,valueType:"digit",render:function(_,recordItem){return React.createElement("span",{style:getRowNumberStyle()},messages.imports.detail.rowNumberText.replace("{rowNumber}",String(recordItem.row_number)))}},{title:messages.imports.detail.errorColumns.errorType,dataIndex:"error_type",key:"error_type",width:160,valueType:"text"},{title:messages.imports.detail.errorColumns.errorMessage,dataIndex:"error_message",key:"error_message",valueType:"text",ellipsis:true},{title:messages.imports.detail.errorColumns.errorId,dataIndex:"id",key:"id",width:220,valueType:"text",copyable:true}]},[messages]);var finalErrorColumns=useMemo(function(){if(errorColumns&&errorColumns.length>0){return errorColumns}return defaultErrorColumns},[errorColumns,defaultErrorColumns]);var errorRequest=useMemo(function(){if(!queryImportErrors){return function(){return _async_to_generator(function(){return _ts_generator(this,function(_state){return[2,{data:[],success:true,total:0}]})})()}}return function(params){return _async_to_generator(function(){var result,error;return _ts_generator(this,function(_state){switch(_state.label){case 0:_state.trys.push([0,2,,3]);return[4,queryImportErrors(_object_spread({importId:record.id},params))];case 1:result=_state.sent();return[2,{data:result.list||[],success:true,total:result.total||0}];case 2:error=_state.sent();console.error(messages.imports.detail.queryFailed,error);return[2,{data:[],success:false,total:0}];case 3:return[2]}})})()}},[queryImportErrors,record.id]);var headerNode=React.createElement(React.Fragment,null,React.createElement(Descriptions,{column:3,size:"small",labelStyle:{fontSize:12,color:token.colorTextSecondary},contentStyle:{fontSize:12,color:token.colorText}},React.createElement(Descriptions.Item,{label:messages.imports.detail.labels.importId,span:3},React.createElement("span",{style:{fontFamily:"monospace",fontWeight:500}},record.id)),React.createElement(Descriptions.Item,{label:messages.imports.detail.labels.currentStatus,span:1},React.createElement("div",null,currentStatus==="completed"&&React.createElement(Badge,{status:"success",text:messages.imports.detail.status.completed}),currentStatus==="failed"&&React.createElement(Badge,{status:"error",text:messages.imports.detail.status.failed}),currentStatus==="processing"&&React.createElement(Badge,{status:"processing",text:messages.imports.detail.status.processing}))),React.createElement(Descriptions.Item,{label:messages.imports.detail.labels.importTime,span:2},React.createElement("span",{style:{fontWeight:500}},formattedCreatedAt))),React.createElement(Row,{gutter:16,style:{marginInline:0}},React.createElement(Col,{span:8},React.createElement(Card,{variant:"outlined",styles:{body:_object_spread_props(_object_spread({},statCardStyle),{background:token.colorBgContainer})}},React.createElement("p",{style:_object_spread_props(_object_spread({},statNumberStyle),{color:token.colorText})},record.total),React.createElement("p",{style:statLabelStyle},messages.imports.detail.stats.total))),React.createElement(Col,{span:8},React.createElement(Card,{variant:"outlined",styles:{body:_object_spread_props(_object_spread({},statCardStyle),{background:token.colorSuccessBg,borderColor:token.colorSuccessBorder})}},React.createElement("p",{style:_object_spread_props(_object_spread({},statNumberStyle),{color:token.colorSuccess})},record.success),React.createElement("p",{style:_object_spread_props(_object_spread({},statLabelStyle),{color:token.colorSuccessText})},messages.imports.detail.stats.success))),React.createElement(Col,{span:8},React.createElement(Card,{variant:"outlined",styles:{body:_object_spread_props(_object_spread({},statCardStyle),{background:token.colorErrorBg,borderColor:token.colorErrorBorder})}},React.createElement("p",{style:_object_spread_props(_object_spread({},statNumberStyle),{color:token.colorError})},record.failed),React.createElement("p",{style:_object_spread_props(_object_spread({},statLabelStyle),{color:token.colorErrorText})},messages.imports.detail.stats.failed)))));var failedTableNode=record.failed>0&&queryImportErrors?React.createElement("div",null,React.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,marginBottom:12}},React.createElement(ExclamationCircleOutlined,{style:{color:token.colorError}}),React.createElement("h3",{style:{fontSize:14,fontWeight:600,color:token.colorText,margin:0}},messages.imports.detail.failedDataTitle)),React.createElement(ProTable,_object_spread({rowKey:"id",columns:finalErrorColumns,request:errorRequest,search:false,pagination:{defaultPageSize:10,showSizeChanger:true,showQuickJumper:true},size:"small",showCreateBtn:false,showBatchRemoveBtn:false,showViewBtn:false,showUpdateBtn:false,showRemoveBtn:false,rowButtonItems:[],scroll:{x:800}},errorTableProps))):null;var bodyContent=contentRender?contentRender({record:record,defaultHeader:headerNode,defaultFailedTable:failedTableNode}):React.createElement(React.Fragment,null,headerNode,failedTableNode,currentStatus==="completed"&&record.failed===0&&React.createElement(Alert,{message:messages.imports.detail.successAlert,type:"success",icon:React.createElement(CheckCircleOutlined,null)}),currentStatus==="failed"&&React.createElement(Alert,{message:messages.imports.detail.failedAlert.message,description:messages.imports.detail.failedAlert.description,type:"error",icon:React.createElement(CloseCircleOutlined,null)}));return React.createElement(Modal,{title:messages.imports.detail.title,open:open,onCancel:function(){return onOpenChange(false)},footer:null,width:1e3,centered:false,destroyOnHidden:true,styles:{body:{maxHeight:"90vh",overflowY:"auto"}}},React.createElement("div",{style:containerStyle},bodyContent))};
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 _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{useMemo,useEffect,useState,useRef,useCallback}from"react";import React from"react";import{Tag,Row,Col,Card,Alert,theme,Descriptions,Progress,Spin}from"antd";import{ProTable}from"../../ProTable";import{Modal}from"../../Modal";import{CheckCircleOutlined,CloseCircleOutlined,ExclamationCircleOutlined,LoadingOutlined}from"@ant-design/icons";import{formatDate}from"../utils/date";import{getContainerStyle,getStatCardStyle,getStatNumberStyle,getStatLabelStyle,getRowNumberStyle}from"../utils/styles";import{useLocale}from"../../locale";import{useImportContextOptional}from"../context/import-context";var useToken=theme.useToken;export var ImportDetailDialog=function(param){var open=param.open,onOpenChange=param.onOpenChange,record=param.record,errorColumns=param.errorColumns,queryImportErrors=param.queryImportErrors,errorTableProps=param.errorTableProps,contentRender=param.contentRender,propsQueryProgress=param.queryProgress,propsPollInterval=param.pollInterval;var _messages_imports_detail_processingDescription;var token=useToken().token;var messages=useLocale().messages;var context=useImportContextOptional();var queryProgress=propsQueryProgress!==null&&propsQueryProgress!==void 0?propsQueryProgress:context===null||context===void 0?void 0:context.queryProgress;var _ref;var pollInterval=(_ref=propsPollInterval!==null&&propsPollInterval!==void 0?propsPollInterval:context===null||context===void 0?void 0:context.pollInterval)!==null&&_ref!==void 0?_ref:2e3;var _useState=_sliced_to_array(useState(null),2),currentProgress=_useState[0],setCurrentProgress=_useState[1];var _useState1=_sliced_to_array(useState(record.status),2),currentStatus=_useState1[0],setCurrentStatus=_useState1[1];var _useState2=_sliced_to_array(useState(record),2),currentRecord=_useState2[0],setCurrentRecord=_useState2[1];var pollingRef=useRef(null);var isUnmountedRef=useRef(false);useEffect(function(){setCurrentRecord(record);setCurrentStatus(record.status)},[record]);var queryProgressRef=useRef(queryProgress);var recordIdRef=useRef(record.id);var currentStatusRef=useRef(currentStatus);useEffect(function(){queryProgressRef.current=queryProgress;recordIdRef.current=record.id;currentStatusRef.current=currentStatus},[queryProgress,record.id,currentStatus]);var fetchProgress=useCallback(function(){return _async_to_generator(function(){var progress,error;return _ts_generator(this,function(_state){switch(_state.label){case 0:if(isUnmountedRef.current||!queryProgressRef.current||currentStatusRef.current!=="processing"){return[2]}_state.label=1;case 1:_state.trys.push([1,3,,4]);return[4,queryProgressRef.current(recordIdRef.current)];case 2:progress=_state.sent();if(isUnmountedRef.current)return[2];setCurrentProgress(progress);if(progress.status!==currentStatusRef.current){setCurrentStatus(progress.status);setCurrentRecord(function(prev){var _progress_success,_progress_failed,_progress_total;return _object_spread_props(_object_spread({},prev),{status:progress.status,success:(_progress_success=progress.success)!==null&&_progress_success!==void 0?_progress_success:prev.success,failed:(_progress_failed=progress.failed)!==null&&_progress_failed!==void 0?_progress_failed:prev.failed,total:(_progress_total=progress.total)!==null&&_progress_total!==void 0?_progress_total:prev.total})})}else{setCurrentRecord(function(prev){var _progress_success,_progress_failed,_progress_total;return _object_spread_props(_object_spread({},prev),{success:(_progress_success=progress.success)!==null&&_progress_success!==void 0?_progress_success:prev.success,failed:(_progress_failed=progress.failed)!==null&&_progress_failed!==void 0?_progress_failed:prev.failed,total:(_progress_total=progress.total)!==null&&_progress_total!==void 0?_progress_total:prev.total})})}if(progress.status==="completed"||progress.status==="failed"){if(pollingRef.current){clearInterval(pollingRef.current);pollingRef.current=null}}return[3,4];case 3:error=_state.sent();console.error("查询导入进度失败:",error);return[3,4];case 4:return[2]}})})()},[]);useEffect(function(){if(!open){if(pollingRef.current){clearInterval(pollingRef.current);pollingRef.current=null}isUnmountedRef.current=true;return}isUnmountedRef.current=false;if(currentStatus==="processing"&&queryProgress){fetchProgress();pollingRef.current=setInterval(function(){fetchProgress()},pollInterval)}return function(){if(pollingRef.current){clearInterval(pollingRef.current);pollingRef.current=null}isUnmountedRef.current=true}},[open,currentStatus,queryProgress,pollInterval,fetchProgress]);var formattedCreatedAt=useMemo(function(){if(!record.createdAt)return"";try{var date=new Date(record.createdAt);if(isNaN(date.getTime())){return record.createdAt}return formatDate(date,"YYYY-MM-DD HH:mm:ss")}catch(e){return record.createdAt}},[record.createdAt]);var containerStyle=useMemo(function(){return getContainerStyle(token)},[token]);var statCardStyle=useMemo(function(){return getStatCardStyle(token)},[token]);var statNumberStyle=useMemo(function(){return getStatNumberStyle(token)},[token]);var statLabelStyle=useMemo(function(){return getStatLabelStyle(token)},[token]);var successRate=useMemo(function(){if(currentRecord.total===0)return"0.0";return(currentRecord.success/currentRecord.total*100).toFixed(1)},[currentRecord.success,currentRecord.total]);var defaultErrorColumns=useMemo(function(){return[{title:messages.imports.detail.errorColumns.rowNumber,dataIndex:"row_number",key:"row_number",width:120,valueType:"digit",render:function(_,recordItem){return React.createElement("span",{style:getRowNumberStyle(token)},messages.imports.detail.rowNumberText.replace("{rowNumber}",String(recordItem.row_number)))}},{title:messages.imports.detail.errorColumns.errorType,dataIndex:"error_type",key:"error_type",width:160,valueType:"text"},{title:messages.imports.detail.errorColumns.errorMessage,dataIndex:"error_message",key:"error_message",valueType:"text",ellipsis:true},{title:messages.imports.detail.errorColumns.errorId,dataIndex:"id",key:"id",width:220,valueType:"text",copyable:true}]},[messages]);var finalErrorColumns=useMemo(function(){if(errorColumns&&errorColumns.length>0){return errorColumns}return defaultErrorColumns},[errorColumns,defaultErrorColumns]);var errorRequest=useMemo(function(){if(!queryImportErrors){return function(){return _async_to_generator(function(){return _ts_generator(this,function(_state){return[2,{data:[],success:true,total:0}]})})()}}return function(params){return _async_to_generator(function(){var result,error;return _ts_generator(this,function(_state){switch(_state.label){case 0:_state.trys.push([0,2,,3]);return[4,queryImportErrors(_object_spread({importId:currentRecord.id},params))];case 1:result=_state.sent();return[2,{data:result.list||[],success:true,total:result.total||0}];case 2:error=_state.sent();console.error(messages.imports.detail.queryFailed,error);return[2,{data:[],success:false,total:0}];case 3:return[2]}})})()}},[queryImportErrors,currentRecord.id,messages]);var progressPercent=useMemo(function(){if(currentProgress){return Math.round(currentProgress.progress||0)}if(currentRecord.total>0){return Math.round((currentRecord.success+currentRecord.failed)/currentRecord.total*100)}return 0},[currentProgress,currentRecord]);var headerNode=React.createElement(React.Fragment,null,React.createElement(Descriptions,{column:3,size:"small",labelStyle:{fontSize:token.fontSizeSM,color:token.colorTextSecondary},contentStyle:{fontSize:token.fontSizeSM,color:token.colorText}},React.createElement(Descriptions.Item,{label:messages.imports.detail.labels.importId,span:3},React.createElement("span",{style:{fontFamily:"monospace",fontWeight:token.fontWeightStrong}},currentRecord.id)),React.createElement(Descriptions.Item,{label:messages.imports.detail.labels.currentStatus,span:1},React.createElement("div",null,currentStatus==="completed"&&React.createElement(Tag,{color:"success"},messages.imports.detail.status.completed),currentStatus==="failed"&&React.createElement(Tag,{color:"error"},messages.imports.detail.status.failed),currentStatus==="processing"&&React.createElement(Tag,{color:"processing"},messages.imports.detail.status.processing))),React.createElement(Descriptions.Item,{label:messages.imports.detail.labels.importTime,span:2},React.createElement("span",{style:{fontWeight:token.fontWeightStrong}},formattedCreatedAt))),currentStatus==="processing"&&React.createElement("div",{style:{padding:token.padding,background:token.colorInfoBg,borderRadius:token.borderRadius,marginBottom:token.margin,border:"1px solid ".concat(token.colorInfoBorder)}},React.createElement("div",{style:{display:"flex",alignItems:"center",gap:token.marginSM,marginBottom:token.marginSM}},React.createElement(Spin,{indicator:React.createElement(LoadingOutlined,{style:{fontSize:token.fontSizeLG,color:token.colorInfo},spin:true})}),React.createElement("div",{style:{flex:1}},React.createElement("div",{style:{fontSize:token.fontSize,fontWeight:token.fontWeightStrong,color:token.colorText,marginBottom:token.marginXXS}},messages.imports.detail.processingTitle||"正在处理导入任务..."),React.createElement("div",{style:{fontSize:token.fontSizeSM,color:token.colorTextSecondary}},((_messages_imports_detail_processingDescription=messages.imports.detail.processingDescription)===null||_messages_imports_detail_processingDescription===void 0?void 0:_messages_imports_detail_processingDescription.replace("{current}",String(currentRecord.success+currentRecord.failed)).replace("{total}",String(currentRecord.total)))||"已处理 ".concat(currentRecord.success+currentRecord.failed," / ").concat(currentRecord.total," 条数据")))),React.createElement(Progress,{percent:progressPercent,strokeColor:token.colorInfo,showInfo:true})),React.createElement(Row,{gutter:token.margin,style:{marginInline:0}},React.createElement(Col,{span:6},React.createElement(Card,{variant:"outlined",styles:{body:_object_spread_props(_object_spread({},statCardStyle),{background:token.colorBgContainer})}},React.createElement("p",{style:_object_spread_props(_object_spread({},statNumberStyle),{color:token.colorText})},currentRecord.total),React.createElement("p",{style:statLabelStyle},messages.imports.detail.stats.total))),React.createElement(Col,{span:6},React.createElement(Card,{variant:"outlined",styles:{body:_object_spread_props(_object_spread({},statCardStyle),{background:token.colorSuccessBg,borderColor:token.colorSuccessBorder})}},React.createElement("p",{style:_object_spread_props(_object_spread({},statNumberStyle),{color:token.colorSuccess})},currentRecord.success),React.createElement("p",{style:_object_spread_props(_object_spread({},statLabelStyle),{color:token.colorSuccessText})},messages.imports.detail.stats.success))),React.createElement(Col,{span:6},React.createElement(Card,{variant:"outlined",styles:{body:_object_spread_props(_object_spread({},statCardStyle),{background:token.colorErrorBg,borderColor:token.colorErrorBorder})}},React.createElement("p",{style:_object_spread_props(_object_spread({},statNumberStyle),{color:token.colorError})},currentRecord.failed),React.createElement("p",{style:_object_spread_props(_object_spread({},statLabelStyle),{color:token.colorErrorText})},messages.imports.detail.stats.failed))),React.createElement(Col,{span:6},React.createElement(Card,{variant:"outlined",styles:{body:_object_spread_props(_object_spread({},statCardStyle),{background:token.colorInfoBg,borderColor:token.colorInfoBorder})}},React.createElement("p",{style:_object_spread_props(_object_spread({},statNumberStyle),{color:token.colorInfo})},successRate,"%"),React.createElement("p",{style:_object_spread_props(_object_spread({},statLabelStyle),{color:token.colorInfoText})},messages.imports.importResult.successRate||"成功率")))));var failedTableNode=currentRecord.failed>0&&queryImportErrors&&currentStatus!=="processing"?React.createElement("div",null,React.createElement(ProTable,_object_spread({rowKey:"id",columns:finalErrorColumns,request:errorRequest,search:false,pagination:{defaultPageSize:10,showSizeChanger:true,showQuickJumper:true},size:"small",showCreateBtn:false,showBatchRemoveBtn:false,showViewBtn:false,showUpdateBtn:false,showRemoveBtn:false,rowButtonItems:[],headerButtonItems:[{key:"title",label:messages.imports.detail.failedDataTitle,icon:React.createElement(ExclamationCircleOutlined,{style:{color:token.colorError}}),isCustom:true,component:React.createElement("div",{style:{display:"flex",alignItems:"center",gap:8}},React.createElement(ExclamationCircleOutlined,{style:{color:token.colorError}}),React.createElement("h3",{style:{fontSize:14,fontWeight:600,color:token.colorText,margin:0}},messages.imports.detail.failedDataTitle))}],scroll:{x:800}},errorTableProps))):null;var bodyContent=contentRender?contentRender({record:currentRecord,defaultHeader:headerNode,defaultFailedTable:failedTableNode}):React.createElement(React.Fragment,null,headerNode,failedTableNode,currentStatus==="completed"&&currentRecord.failed===0&&React.createElement(Alert,{message:messages.imports.detail.successAlert,type:"success",icon:React.createElement(CheckCircleOutlined,null)}),currentStatus==="failed"&&React.createElement(Alert,{message:messages.imports.detail.failedAlert.message,description:messages.imports.detail.failedAlert.description,type:"error",icon:React.createElement(CloseCircleOutlined,null)}));return React.createElement(Modal,{title:messages.imports.detail.title,open:open,onCancel:function(){return onOpenChange(false)},footer:null,width:1e3,centered:false,destroyOnHidden:true,styles:{body:{maxHeight:"90vh",overflowY:"auto"}}},React.createElement("div",{style:containerStyle},bodyContent))};
@@ -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 _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{useState,useMemo,useCallback}from"react";import{Button,theme}from"antd";import{ProTable}from"../../ProTable";import{Modal}from"../../Modal";import React from"react";import{EyeOutlined}from"@ant-design/icons";import{ImportDetailDialog}from"./import-detail-dialog";import{useImportContextOptional}from"../context/import-context";import{useRef}from"react";import{useLocale}from"../../locale";var useToken=theme.useToken;export var ImportHistoryDialog=function(param){var open=param.open,onOpenChange=param.onOpenChange,customColumns=param.columns,customQueryImportRecords=param.queryImportRecords,tableProps=param.tableProps;var token=useToken().token;var messages=useLocale().messages;var context=useImportContextOptional();var _useState=_sliced_to_array(useState(null),2),selectedRecord=_useState[0],setSelectedRecord=_useState[1];var _useState1=_sliced_to_array(useState(false),2),detailDialogOpen=_useState1[0],setDetailDialogOpen=_useState1[1];var tableRef=useRef(null);var handleViewDetail=useCallback(function(record){setSelectedRecord(record);setDetailDialogOpen(true)},[]);var finalQueryImportRecords=customQueryImportRecords!==null&&customQueryImportRecords!==void 0?customQueryImportRecords:context===null||context===void 0?void 0:context.queryImportRecords;var finalQueryImportErrors=context===null||context===void 0?void 0:context.queryImportErrors;var finalImportErrorColumns=context===null||context===void 0?void 0:context.importErrorColumns;var finalImportErrorTableProps=context===null||context===void 0?void 0:context.importErrorTableProps;var finalImportDetailContentRender=context===null||context===void 0?void 0:context.importDetailContentRender;var defaultColumns=useMemo(function(){return[{title:messages.imports.history.columns.importId,dataIndex:"id",key:"id",hideInSearch:true},{title:messages.imports.history.columns.status,dataIndex:"status",key:"status",hideInSearch:false,valueType:"select",width:150,valueEnum:{completed:{text:messages.imports.history.statusEnum.completed,status:"Success"},failed:{text:messages.imports.history.statusEnum.failed,status:"Error"},processing:{text:messages.imports.history.statusEnum.processing,status:"Processing"},cancelled:{text:messages.imports.history.statusEnum.cancelled,status:"Cancelled"}}},{title:messages.imports.history.columns.total,dataIndex:"total",key:"total",hideInSearch:true,valueType:"digit",width:150},{title:messages.imports.history.columns.success,dataIndex:"success",key:"success",hideInSearch:true,valueType:"digit",width:150},{title:messages.imports.history.columns.failed,dataIndex:"failed",key:"failed",hideInSearch:true,valueType:"digit",width:150},{title:messages.imports.history.columns.importTime,dataIndex:"createdAt",key:"createdAt",hideInSearch:false,valueType:"dateTime",width:200},{title:messages.imports.history.columns.operation,key:"action",hideInSearch:true,width:100,fixed:"right",render:function(_,record){return React.createElement(Button,{variant:"link",color:"primary",size:"small",icon:React.createElement(EyeOutlined,null),onClick:function(){return handleViewDetail(record)}},messages.imports.history.view)}}]},[handleViewDetail,messages]);var finalColumns=useMemo(function(){if(customColumns){return customColumns}return defaultColumns},[customColumns,defaultColumns]);var handleRequest=useMemo(function(){if(!finalQueryImportRecords){return function(){return _async_to_generator(function(){return _ts_generator(this,function(_state){return[2,{data:[],success:true,total:0}]})})()}}return function(params){return _async_to_generator(function(){var result,error;return _ts_generator(this,function(_state){switch(_state.label){case 0:_state.trys.push([0,2,,3]);return[4,finalQueryImportRecords(params)];case 1:result=_state.sent();return[2,{data:result.list||[],success:true,total:result.total||0}];case 2:error=_state.sent();console.error(messages.imports.history.queryFailed,error);return[2,{data:[],success:false,total:0}];case 3:return[2]}})})()}},[finalQueryImportRecords]);return React.createElement(React.Fragment,null,React.createElement(Modal,{title:messages.imports.history.title,open:open,onCancel:function(){return onOpenChange(false)},footer:null,width:1e3,centered:false,destroyOnHidden:true,styles:{body:{padding:"0"}},maskClosable:false},React.createElement(ProTable,_object_spread_props(_object_spread({columns:finalColumns,request:handleRequest,rowKey:"id",ref:tableRef,search:{labelWidth:"auto",defaultCollapsed:false},pagination:{defaultPageSize:10,showSizeChanger:true,showQuickJumper:true},size:"small",showCreateBtn:false,showBatchRemoveBtn:false,showViewBtn:false,showUpdateBtn:false,showRemoveBtn:false,rowButtonItems:[],scroll:{x:1e3}},tableProps),{style:{padding:"".concat(token.paddingSM,"px 0")}}))),selectedRecord&&React.createElement(ImportDetailDialog,{open:detailDialogOpen,onOpenChange:setDetailDialogOpen,record:selectedRecord,errorColumns:finalImportErrorColumns,queryImportErrors:finalQueryImportErrors,errorTableProps:finalImportErrorTableProps,contentRender:finalImportDetailContentRender}))};
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 _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{useState,useMemo,useCallback}from"react";import{Button,theme}from"antd";import{ProTable}from"../../ProTable";import{Modal}from"../../Modal";import React from"react";import{EyeOutlined}from"@ant-design/icons";import{ImportDetailDialog}from"./import-detail-dialog";import{useImportContextOptional}from"../context/import-context";import{useRef}from"react";import{useLocale}from"../../locale";var useToken=theme.useToken;export var ImportHistoryDialog=function(param){var open=param.open,onOpenChange=param.onOpenChange,customColumns=param.columns,customQueryImportRecords=param.queryImportRecords,tableProps=param.tableProps;var token=useToken().token;var messages=useLocale().messages;var context=useImportContextOptional();var _useState=_sliced_to_array(useState(null),2),selectedRecord=_useState[0],setSelectedRecord=_useState[1];var _useState1=_sliced_to_array(useState(false),2),detailDialogOpen=_useState1[0],setDetailDialogOpen=_useState1[1];var tableRef=useRef(null);var handleViewDetail=useCallback(function(record){setSelectedRecord(record);setDetailDialogOpen(true)},[]);var finalQueryImportRecords=customQueryImportRecords!==null&&customQueryImportRecords!==void 0?customQueryImportRecords:context===null||context===void 0?void 0:context.queryImportRecords;var finalQueryImportErrors=context===null||context===void 0?void 0:context.queryImportErrors;var finalImportErrorColumns=context===null||context===void 0?void 0:context.importErrorColumns;var finalImportErrorTableProps=context===null||context===void 0?void 0:context.importErrorTableProps;var finalImportDetailContentRender=context===null||context===void 0?void 0:context.importDetailContentRender;var defaultColumns=useMemo(function(){return[{title:messages.imports.history.columns.importId,dataIndex:"id",key:"id",hideInSearch:true},{title:messages.imports.history.columns.status,dataIndex:"status",key:"status",hideInSearch:false,valueType:"select",width:150,valueEnum:{completed:{text:messages.imports.history.statusEnum.completed,status:"Success"},failed:{text:messages.imports.history.statusEnum.failed,status:"Error"},processing:{text:messages.imports.history.statusEnum.processing,status:"Processing"},cancelled:{text:messages.imports.history.statusEnum.cancelled,status:"Cancelled"}}},{title:messages.imports.history.columns.total,dataIndex:"total",key:"total",hideInSearch:true,valueType:"digit",width:150},{title:messages.imports.history.columns.success,dataIndex:"success",key:"success",hideInSearch:true,valueType:"digit",width:150},{title:messages.imports.history.columns.failed,dataIndex:"failed",key:"failed",hideInSearch:true,valueType:"digit",width:150},{title:messages.imports.history.columns.importTime,dataIndex:"createdAt",key:"createdAt",hideInSearch:false,valueType:"dateTime",width:200},{title:messages.imports.history.columns.operation,key:"action",hideInSearch:true,width:100,fixed:"right",render:function(_,record){return React.createElement(Button,{variant:"link",color:"primary",size:"small",icon:React.createElement(EyeOutlined,null),onClick:function(){return handleViewDetail(record)}},messages.imports.history.view)}}]},[handleViewDetail,messages]);var finalColumns=useMemo(function(){if(customColumns){return customColumns}return defaultColumns},[customColumns,defaultColumns]);var handleRequest=useMemo(function(){if(!finalQueryImportRecords){return function(){return _async_to_generator(function(){return _ts_generator(this,function(_state){return[2,{data:[],success:true,total:0}]})})()}}return function(params){return _async_to_generator(function(){var result,error;return _ts_generator(this,function(_state){switch(_state.label){case 0:_state.trys.push([0,2,,3]);return[4,finalQueryImportRecords(params)];case 1:result=_state.sent();return[2,{data:result.list||[],success:true,total:result.total||0}];case 2:error=_state.sent();console.error(messages.imports.history.queryFailed,error);return[2,{data:[],success:false,total:0}];case 3:return[2]}})})()}},[finalQueryImportRecords]);return React.createElement(React.Fragment,null,React.createElement(Modal,{title:messages.imports.history.title,open:open,onCancel:function(){return onOpenChange(false)},footer:null,width:1e3,centered:false,destroyOnHidden:true,styles:{body:{padding:"0"}},maskClosable:false},React.createElement(ProTable,_object_spread_props(_object_spread({columns:finalColumns,request:handleRequest,rowKey:"id",ref:tableRef,search:{labelWidth:"auto",defaultCollapsed:false},pagination:{defaultPageSize:10,showSizeChanger:true,showQuickJumper:true},size:"small",showCreateBtn:false,showBatchRemoveBtn:false,showViewBtn:false,showUpdateBtn:false,showRemoveBtn:false,rowButtonItems:[],scroll:{x:1e3}},tableProps),{style:{padding:"".concat(token.paddingSM,"px 0")}}))),selectedRecord&&React.createElement(ImportDetailDialog,{open:detailDialogOpen,onOpenChange:setDetailDialogOpen,record:selectedRecord,errorColumns:finalImportErrorColumns,queryImportErrors:finalQueryImportErrors,errorTableProps:finalImportErrorTableProps,contentRender:finalImportDetailContentRender,queryProgress:context===null||context===void 0?void 0:context.queryProgress,pollInterval:context===null||context===void 0?void 0:context.pollInterval}))};
@@ -1,6 +1,6 @@
1
1
  import { type FC } from "react";
2
2
  import { type ModalProps } from "../../Modal";
3
- import type { UploadConfig, UploadResult, QueryImportProgress, ImportProgressStepRender, UploadStepConfig } from "../types";
3
+ import type { UploadConfig, UploadResult, QueryImportProgress, ImportProgressStepRender, UploadStepConfig, CancelImport } from "../types";
4
4
  export type CustomModalProps = Omit<ModalProps, "open" | "onOpenChange" | "footer" | "onCancel">;
5
5
  export interface ImportModalProps {
6
6
  title: string;
@@ -10,6 +10,7 @@ export interface ImportModalProps {
10
10
  onFileSelect?: (file: File, config?: UploadConfig) => Promise<UploadResult> | UploadResult;
11
11
  onDownloadTemplate?: () => Promise<void> | void;
12
12
  queryProgress?: QueryImportProgress;
13
+ cancelImport?: CancelImport;
13
14
  pollInterval?: number;
14
15
  modalProps?: CustomModalProps;
15
16
  importProgressStepRender?: ImportProgressStepRender;
@@ -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 _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{useState,useMemo,useEffect,useCallback,memo}from"react";import{message}from"antd";import React from"react";import{Modal}from"../../Modal";import{UploadStep}from"./upload-step";import{UploadProgressStep}from"./upload-progress-step";import{ImportProgressStep}from"./import-progress-step";import{ImportResultStep}from"./import-result-step";import{handleImportError,validateUploadResult}from"../utils/error-handler";import{useImportContextOptional}from"../context/import-context";import{useLocale}from"../../locale";export var ImportModal=memo(function(param){var title=param.title,open=param.open,onClose=param.onClose,propsOnFileSelect=param.onFileSelect,propsOnDownloadTemplate=param.onDownloadTemplate,propsQueryProgress=param.queryProgress,propsPollInterval=param.pollInterval,modalProps=param.modalProps,propsTaskKey=param.taskKey,propsImportProgressStepRender=param.importProgressStepRender,propsTips=param.tips,propsUploadStepConfig=param.uploadStepConfig;var context=useImportContextOptional();var _ref;var taskKey=(_ref=propsTaskKey!==null&&propsTaskKey!==void 0?propsTaskKey:context===null||context===void 0?void 0:context.taskKey)!==null&&_ref!==void 0?_ref:"id";var queryProgress=propsQueryProgress!==null&&propsQueryProgress!==void 0?propsQueryProgress:context===null||context===void 0?void 0:context.queryProgress;var importProgressStepRender=propsImportProgressStepRender!==null&&propsImportProgressStepRender!==void 0?propsImportProgressStepRender:context===null||context===void 0?void 0:context.importProgressStepRender;var onDownloadTemplate=propsOnDownloadTemplate!==null&&propsOnDownloadTemplate!==void 0?propsOnDownloadTemplate:context===null||context===void 0?void 0:context.onDownloadTemplate;var onFileSelect=propsOnFileSelect!==null&&propsOnFileSelect!==void 0?propsOnFileSelect:context===null||context===void 0?void 0:context.onFileSelect;var tips=propsTips!==null&&propsTips!==void 0?propsTips:context===null||context===void 0?void 0:context.tips;var uploadStepConfig=propsUploadStepConfig!==null&&propsUploadStepConfig!==void 0?propsUploadStepConfig:context===null||context===void 0?void 0:context.uploadStepConfig;var pollInterval=propsPollInterval!==null&&propsPollInterval!==void 0?propsPollInterval:context===null||context===void 0?void 0:context.pollInterval;var _useState=_sliced_to_array(useState("upload"),2),step=_useState[0],setStep=_useState[1];var _useState1=_sliced_to_array(useState(null),2),importId=_useState1[0],setImportId=_useState1[1];var _useState2=_sliced_to_array(useState(null),2),uploadResult=_useState2[0],setUploadResult=_useState2[1];var _useState3=_sliced_to_array(useState(0),2),uploadProgress=_useState3[0],setUploadProgress=_useState3[1];var _useState4=_sliced_to_array(useState(null),2),importResult=_useState4[0],setImportResult=_useState4[1];var messages=useLocale().messages;useEffect(function(){if(!open){var timer=setTimeout(function(){setStep("upload");setUploadProgress(0);setImportId(null);setUploadResult(null);setImportResult(null)},300);return function(){return clearTimeout(timer)}}return undefined},[open]);var handleFileSelect=useCallback(function(file){return _async_to_generator(function(){var uploadConfig,result,error,errorMessage;return _ts_generator(this,function(_state){switch(_state.label){case 0:if(!onFileSelect){throw new Error(messages.imports.errors.uploadMethodNotSet)}_state.label=1;case 1:_state.trys.push([1,3,,4]);setStep("uploading");setUploadProgress(0);uploadConfig={headers:{"Content-Type":"multipart/form-data"},onUploadProgress:function(event){if(event.total){var percent=Math.round(event.loaded/event.total*100);setUploadProgress(percent)}}};return[4,onFileSelect(file,uploadConfig)];case 2:result=_state.sent();if(validateUploadResult(result,taskKey)){setImportId(result[taskKey]);setUploadResult(result);setStep("importing")}else{throw new Error(messages.imports.errors.uploadFailed)}return[3,4];case 3:error=_state.sent();setStep("upload");setUploadProgress(0);errorMessage=handleImportError(error,messages.imports.errors.uploadError);message.error(errorMessage);throw error;case 4:return[2]}})})()},[onFileSelect,taskKey]);var handleImportComplete=useCallback(function(result){setImportResult(result);setStep("result")},[]);var handleClose=useCallback(function(){onClose()},[onClose]);var handleOpenChange=useCallback(function(visible){if(!visible){handleClose()}},[handleClose]);var stepTitleMap={upload:messages.imports.stepTitles.upload,uploading:messages.imports.stepTitles.uploading,importing:messages.imports.stepTitles.importing,result:messages.imports.stepTitles.result};var currentTitle=useMemo(function(){return stepTitleMap[step]||title},[step,title]);return React.createElement(Modal.CustomModal,_object_spread({title:currentTitle,open:open,onOpenChange:handleOpenChange,footer:false,onCancel:handleClose,maskClosable:false,width:600},modalProps),step==="upload"&&React.createElement(UploadStep,{onFileSelect:handleFileSelect,onDownloadTemplate:onDownloadTemplate,tips:tips,config:uploadStepConfig}),step==="uploading"&&React.createElement(UploadProgressStep,{progress:uploadProgress}),step==="importing"&&importId&&React.createElement(ImportProgressStep,{importId:importId,uploadResult:uploadResult||undefined,onComplete:handleImportComplete,onClose:handleClose,queryProgress:queryProgress,pollInterval:pollInterval,importProgressStepRender:importProgressStepRender}),step==="result"&&importResult&&React.createElement(ImportResultStep,{result:importResult,onClose:handleClose}))});ImportModal.displayName="ImportModal";
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 _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{useState,useMemo,useEffect,useCallback,memo,useRef}from"react";import{message}from"antd";import React from"react";import{Modal}from"../../Modal";import{UploadStep}from"./upload-step";import{UploadProgressStep}from"./upload-progress-step";import{ImportProgressStep}from"./import-progress-step";import{ImportResultStep}from"./import-result-step";import{handleImportError,validateUploadResult}from"../utils/error-handler";import{useImportContextOptional}from"../context/import-context";import{useLocale}from"../../locale";export var ImportModal=memo(function(param){var title=param.title,open=param.open,onClose=param.onClose,propsOnFileSelect=param.onFileSelect,propsOnDownloadTemplate=param.onDownloadTemplate,propsQueryProgress=param.queryProgress,propsCancelImport=param.cancelImport,propsPollInterval=param.pollInterval,modalProps=param.modalProps,propsTaskKey=param.taskKey,propsImportProgressStepRender=param.importProgressStepRender,propsTips=param.tips,propsUploadStepConfig=param.uploadStepConfig;var context=useImportContextOptional();var _ref;var taskKey=(_ref=propsTaskKey!==null&&propsTaskKey!==void 0?propsTaskKey:context===null||context===void 0?void 0:context.taskKey)!==null&&_ref!==void 0?_ref:"id";var queryProgress=propsQueryProgress!==null&&propsQueryProgress!==void 0?propsQueryProgress:context===null||context===void 0?void 0:context.queryProgress;var cancelImport=propsCancelImport!==null&&propsCancelImport!==void 0?propsCancelImport:context===null||context===void 0?void 0:context.cancelImport;var importProgressStepRender=propsImportProgressStepRender!==null&&propsImportProgressStepRender!==void 0?propsImportProgressStepRender:context===null||context===void 0?void 0:context.importProgressStepRender;var onDownloadTemplate=propsOnDownloadTemplate!==null&&propsOnDownloadTemplate!==void 0?propsOnDownloadTemplate:context===null||context===void 0?void 0:context.onDownloadTemplate;var onFileSelect=propsOnFileSelect!==null&&propsOnFileSelect!==void 0?propsOnFileSelect:context===null||context===void 0?void 0:context.onFileSelect;var tips=propsTips!==null&&propsTips!==void 0?propsTips:context===null||context===void 0?void 0:context.tips;var uploadStepConfig=propsUploadStepConfig!==null&&propsUploadStepConfig!==void 0?propsUploadStepConfig:context===null||context===void 0?void 0:context.uploadStepConfig;var pollInterval=propsPollInterval!==null&&propsPollInterval!==void 0?propsPollInterval:context===null||context===void 0?void 0:context.pollInterval;var _useState=_sliced_to_array(useState("upload"),2),step=_useState[0],setStep=_useState[1];var _useState1=_sliced_to_array(useState(null),2),importId=_useState1[0],setImportId=_useState1[1];var _useState2=_sliced_to_array(useState(null),2),uploadResult=_useState2[0],setUploadResult=_useState2[1];var _useState3=_sliced_to_array(useState(0),2),uploadProgress=_useState3[0],setUploadProgress=_useState3[1];var _useState4=_sliced_to_array(useState(null),2),importResult=_useState4[0],setImportResult=_useState4[1];var uploadAbortControllerRef=useRef(null);var messages=useLocale().messages;useEffect(function(){if(!open){var timer=setTimeout(function(){setStep("upload");setUploadProgress(0);setImportId(null);setUploadResult(null);setImportResult(null);if(uploadAbortControllerRef.current){uploadAbortControllerRef.current.abort();uploadAbortControllerRef.current=null}},300);return function(){return clearTimeout(timer)}}return undefined},[open]);var handleFileSelect=useCallback(function(file){return _async_to_generator(function(){var abortController,uploadConfig,result,error,_uploadAbortControllerRef_current,errorMessage;return _ts_generator(this,function(_state){switch(_state.label){case 0:if(!onFileSelect){throw new Error(messages.imports.errors.uploadMethodNotSet)}_state.label=1;case 1:_state.trys.push([1,3,,4]);setStep("uploading");setUploadProgress(0);abortController=new AbortController;uploadAbortControllerRef.current=abortController;uploadConfig={headers:{"Content-Type":"multipart/form-data"},abortController:abortController,onUploadProgress:function(event){if(event.total){var percent=Math.round(event.loaded/event.total*100);setUploadProgress(percent)}}};return[4,onFileSelect(file,uploadConfig)];case 2:result=_state.sent();if(abortController.signal.aborted){setStep("upload");setUploadProgress(0);uploadAbortControllerRef.current=null;return[2]}if(validateUploadResult(result,taskKey)){setImportId(result[taskKey]);setUploadResult(result);uploadAbortControllerRef.current=null;setStep("importing")}else{throw new Error(messages.imports.errors.uploadFailed)}return[3,4];case 3:error=_state.sent();if((error===null||error===void 0?void 0:error.name)==="AbortError"||((_uploadAbortControllerRef_current=uploadAbortControllerRef.current)===null||_uploadAbortControllerRef_current===void 0?void 0:_uploadAbortControllerRef_current.signal.aborted)){setStep("upload");setUploadProgress(0);uploadAbortControllerRef.current=null;return[2]}setStep("upload");setUploadProgress(0);uploadAbortControllerRef.current=null;errorMessage=handleImportError(error,messages.imports.errors.uploadError);message.error(errorMessage);throw error;case 4:return[2]}})})()},[onFileSelect,taskKey,messages]);var handleCancelUpload=useCallback(function(){if(uploadAbortControllerRef.current){uploadAbortControllerRef.current.abort();uploadAbortControllerRef.current=null}setStep("upload");setUploadProgress(0)},[]);var handleImportComplete=useCallback(function(result){setImportResult(result);setStep("result")},[]);var handleClose=useCallback(function(){onClose()},[onClose]);var handleOpenChange=useCallback(function(visible){if(!visible){handleClose()}},[handleClose]);var stepTitleMap={upload:messages.imports.stepTitles.upload,uploading:messages.imports.stepTitles.uploading,importing:messages.imports.stepTitles.importing,result:messages.imports.stepTitles.result};var currentTitle=useMemo(function(){return stepTitleMap[step]||title},[step,title]);return React.createElement(Modal.CustomModal,_object_spread({title:currentTitle,open:open,onOpenChange:handleOpenChange,footer:false,onCancel:handleClose,maskClosable:false,width:600},modalProps),step==="upload"&&React.createElement(UploadStep,{onFileSelect:handleFileSelect,onDownloadTemplate:onDownloadTemplate,tips:tips,config:uploadStepConfig}),step==="uploading"&&React.createElement(UploadProgressStep,{progress:uploadProgress,onCancel:handleCancelUpload}),step==="importing"&&importId&&React.createElement(ImportProgressStep,{importId:importId,uploadResult:uploadResult||undefined,onComplete:handleImportComplete,onClose:handleClose,queryProgress:queryProgress,cancelImport:cancelImport,pollInterval:pollInterval,importProgressStepRender:importProgressStepRender}),step==="result"&&importResult&&React.createElement(ImportResultStep,{result:importResult,onClose:handleClose}))});ImportModal.displayName="ImportModal";
@@ -1,11 +1,13 @@
1
1
  import { type FC } from "react";
2
- import type { ImportResult, UploadResult, QueryImportProgress, ImportProgressStepRender } from "../types";
2
+ import type { ImportResult, UploadResult, QueryImportProgress, ImportProgressStepRender, CancelImport } from "../types";
3
3
  interface ImportProgressStepProps {
4
4
  importId: string;
5
5
  uploadResult?: UploadResult;
6
6
  onComplete: (result: ImportResult) => void;
7
7
  onClose?: () => void;
8
+ onCancel?: () => void;
8
9
  queryProgress?: QueryImportProgress;
10
+ cancelImport?: CancelImport;
9
11
  pollInterval?: number;
10
12
  importProgressStepRender?: ImportProgressStepRender;
11
13
  }
@@ -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 _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{useEffect,useState,useRef,useCallback,memo,useMemo}from"react";import{Spin,Button,theme,message}from"antd";import React from"react";import{LoadingOutlined,HistoryOutlined}from"@ant-design/icons";import{ImportHistoryDialog}from"./import-history-dialog";import{handleImportError}from"../utils/error-handler";import{getContainerStyle,getCenterContentStyle,getTextCenterStyle,getTitleStyle,getButtonGroupStyle}from"../utils/styles";import{useImportContextOptional}from"../context/import-context";import{useLocale}from"../../locale";var useToken=theme.useToken;export var ImportProgressStep=memo(function(param){var importId=param.importId,uploadResult=param.uploadResult,onComplete=param.onComplete,onClose=param.onClose,propsQueryProgress=param.queryProgress,propsPollInterval=param.pollInterval,propsImportProgressStepRender=param.importProgressStepRender;var context=useImportContextOptional();var queryProgress=propsQueryProgress!==null&&propsQueryProgress!==void 0?propsQueryProgress:context===null||context===void 0?void 0:context.queryProgress;var _ref;var pollInterval=(_ref=propsPollInterval!==null&&propsPollInterval!==void 0?propsPollInterval:context===null||context===void 0?void 0:context.pollInterval)!==null&&_ref!==void 0?_ref:2e3;var importProgressStepRender=propsImportProgressStepRender!==null&&propsImportProgressStepRender!==void 0?propsImportProgressStepRender:context===null||context===void 0?void 0:context.importProgressStepRender;var messages=useLocale().messages;var token=useToken().token;var _useState=_sliced_to_array(useState(null),2),progressInfo=_useState[0],setProgressInfo=_useState[1];var _useState1=_sliced_to_array(useState(false),2),historyDialogOpen=_useState1[0],setHistoryDialogOpen=_useState1[1];var pollingRef=useRef(null);var isUnmountedRef=useRef(false);var isCompletedRef=useRef(false);var hasShownErrorRef=useRef(false);var queryProgressRef=useRef(queryProgress);var importIdRef=useRef(importId);var uploadResultRef=useRef(uploadResult);var onCompleteRef=useRef(onComplete);useEffect(function(){queryProgressRef.current=queryProgress;importIdRef.current=importId;uploadResultRef.current=uploadResult;onCompleteRef.current=onComplete},[queryProgress,importId,uploadResult,onComplete]);var stopPolling=useCallback(function(){if(pollingRef.current){clearInterval(pollingRef.current);pollingRef.current=null}},[]);var handleComplete=useCallback(function(progress){if(isCompletedRef.current)return;isCompletedRef.current=true;stopPolling();var result={importId:progress.importId,total:progress.total||0,success:progress.success||0,failed:progress.failed||0,message:progress.message||(progress.status==="completed"?messages.imports.importProgress.importCompleted:messages.imports.importProgress.importFailed)};onCompleteRef.current(result)},[stopPolling]);var fetchProgress=useCallback(function(){return _async_to_generator(function(){var currentQueryProgress,result,error,errorMessage;return _ts_generator(this,function(_state){switch(_state.label){case 0:if(isUnmountedRef.current||isCompletedRef.current)return[2];currentQueryProgress=queryProgressRef.current;if(!currentQueryProgress){stopPolling();return[2]}_state.label=1;case 1:_state.trys.push([1,3,,4]);return[4,currentQueryProgress(importIdRef.current,uploadResultRef.current)];case 2:result=_state.sent();if(isUnmountedRef.current)return[2];setProgressInfo(result);if(result.status==="completed"||result.status==="failed"){handleComplete(result)}return[3,4];case 3:error=_state.sent();if(isUnmountedRef.current)return[2];errorMessage=handleImportError(error,messages.imports.importProgress.queryProgressFailed);if(!hasShownErrorRef.current){hasShownErrorRef.current=true;message.error(errorMessage)}return[3,4];case 4:return[2]}})})()},[handleComplete,stopPolling]);useEffect(function(){isUnmountedRef.current=false;isCompletedRef.current=false;hasShownErrorRef.current=false;if(!queryProgress){var errorMsg=messages.imports.importProgress.queryProgressNotConfigured;var errorProgress={importId:importId,progress:0,status:"failed",total:0,success:0,failed:0,message:errorMsg};handleComplete(errorProgress);return function(){isUnmountedRef.current=true}}fetchProgress();pollingRef.current=setInterval(function(){fetchProgress()},pollInterval);return function(){isUnmountedRef.current=true;stopPolling()}},[pollInterval,queryProgress]);var containerStyle=useMemo(function(){return getContainerStyle()},[]);var centerContentStyle=useMemo(function(){return getCenterContentStyle()},[]);var textCenterStyle=useMemo(function(){return getTextCenterStyle()},[]);var titleStyle=useMemo(function(){return getTitleStyle(token,"small")},[token]);var buttonGroupStyle=useMemo(function(){return getButtonGroupStyle()},[]);var renderDefaultProgress=useCallback(function(){return React.createElement("div",{style:centerContentStyle},React.createElement(Spin,{indicator:React.createElement(LoadingOutlined,{style:{fontSize:32,color:token.colorPrimary},spin:true})}),React.createElement("div",{style:textCenterStyle},React.createElement("div",{style:titleStyle},messages.imports.importProgress.title)))},[token.colorPrimary,centerContentStyle,textCenterStyle,titleStyle]);var handleOpenHistory=useCallback(function(){setHistoryDialogOpen(true)},[]);return React.createElement(React.Fragment,null,React.createElement("div",{style:containerStyle},importProgressStepRender?importProgressStepRender(progressInfo||{},uploadResult||{}):renderDefaultProgress(),React.createElement("div",{style:buttonGroupStyle},onClose&&React.createElement(Button,{onClick:onClose,block:true,style:{background:"transparent"}},messages.imports.importProgress.closeWindow),React.createElement(Button,{type:"primary",icon:React.createElement(HistoryOutlined,null),block:true,onClick:handleOpenHistory},messages.imports.importProgress.viewHistory))),React.createElement(ImportHistoryDialog,{open:historyDialogOpen,onOpenChange:setHistoryDialogOpen}))});ImportProgressStep.displayName="ImportProgressStep";
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{useEffect,useState,useRef,useCallback,memo,useMemo}from"react";import{Spin,Button,theme,message}from"antd";import React from"react";import{LoadingOutlined,HistoryOutlined,CloseOutlined}from"@ant-design/icons";import{ImportHistoryDialog}from"./import-history-dialog";import{handleImportError}from"../utils/error-handler";import{getContainerStyle,getCenterContentStyle,getTextCenterStyle,getTitleStyle,getButtonGroupStyle}from"../utils/styles";import{useImportContextOptional}from"../context/import-context";import{useLocale}from"../../locale";var useToken=theme.useToken;export var ImportProgressStep=memo(function(param){var importId=param.importId,uploadResult=param.uploadResult,onComplete=param.onComplete,onClose=param.onClose,propsOnCancel=param.onCancel,propsQueryProgress=param.queryProgress,propsCancelImport=param.cancelImport,propsPollInterval=param.pollInterval,propsImportProgressStepRender=param.importProgressStepRender;var context=useImportContextOptional();var queryProgress=propsQueryProgress!==null&&propsQueryProgress!==void 0?propsQueryProgress:context===null||context===void 0?void 0:context.queryProgress;var cancelImport=propsCancelImport!==null&&propsCancelImport!==void 0?propsCancelImport:context===null||context===void 0?void 0:context.cancelImport;var _ref;var pollInterval=(_ref=propsPollInterval!==null&&propsPollInterval!==void 0?propsPollInterval:context===null||context===void 0?void 0:context.pollInterval)!==null&&_ref!==void 0?_ref:2e3;var importProgressStepRender=propsImportProgressStepRender!==null&&propsImportProgressStepRender!==void 0?propsImportProgressStepRender:context===null||context===void 0?void 0:context.importProgressStepRender;var messages=useLocale().messages;var token=useToken().token;var _useState=_sliced_to_array(useState(null),2),progressInfo=_useState[0],setProgressInfo=_useState[1];var _useState1=_sliced_to_array(useState(false),2),historyDialogOpen=_useState1[0],setHistoryDialogOpen=_useState1[1];var _useState2=_sliced_to_array(useState(false),2),isCancelling=_useState2[0],setIsCancelling=_useState2[1];var pollingRef=useRef(null);var isUnmountedRef=useRef(false);var isCompletedRef=useRef(false);var hasShownErrorRef=useRef(false);var queryProgressRef=useRef(queryProgress);var cancelImportRef=useRef(cancelImport);var importIdRef=useRef(importId);var uploadResultRef=useRef(uploadResult);var onCompleteRef=useRef(onComplete);var onCancelRef=useRef(propsOnCancel);useEffect(function(){queryProgressRef.current=queryProgress;cancelImportRef.current=cancelImport;importIdRef.current=importId;uploadResultRef.current=uploadResult;onCompleteRef.current=onComplete;onCancelRef.current=propsOnCancel},[queryProgress,cancelImport,importId,uploadResult,onComplete,propsOnCancel]);var stopPolling=useCallback(function(){if(pollingRef.current){clearInterval(pollingRef.current);pollingRef.current=null}},[]);var handleComplete=useCallback(function(progress){if(isCompletedRef.current)return;isCompletedRef.current=true;stopPolling();var result={importId:progress.importId,total:progress.total||0,success:progress.success||0,failed:progress.failed||0,message:progress.message||(progress.status==="completed"?messages.imports.importProgress.importCompleted:messages.imports.importProgress.importFailed)};onCompleteRef.current(result)},[stopPolling]);var fetchProgress=useCallback(function(){return _async_to_generator(function(){var currentQueryProgress,result,error,errorMessage;return _ts_generator(this,function(_state){switch(_state.label){case 0:if(isUnmountedRef.current||isCompletedRef.current)return[2];currentQueryProgress=queryProgressRef.current;if(!currentQueryProgress){stopPolling();return[2]}_state.label=1;case 1:_state.trys.push([1,3,,4]);return[4,currentQueryProgress(importIdRef.current,uploadResultRef.current)];case 2:result=_state.sent();if(isUnmountedRef.current)return[2];setProgressInfo(result);if(result.status==="completed"||result.status==="failed"){handleComplete(result)}return[3,4];case 3:error=_state.sent();if(isUnmountedRef.current)return[2];errorMessage=handleImportError(error,messages.imports.importProgress.queryProgressFailed);if(!hasShownErrorRef.current){hasShownErrorRef.current=true;message.error(errorMessage)}return[3,4];case 4:return[2]}})})()},[handleComplete,stopPolling]);useEffect(function(){isUnmountedRef.current=false;isCompletedRef.current=false;hasShownErrorRef.current=false;if(!queryProgress){var errorMsg=messages.imports.importProgress.queryProgressNotConfigured;var errorProgress={importId:importId,progress:0,status:"failed",total:0,success:0,failed:0,message:errorMsg};handleComplete(errorProgress);return function(){isUnmountedRef.current=true}}fetchProgress();pollingRef.current=setInterval(function(){fetchProgress()},pollInterval);return function(){isUnmountedRef.current=true;stopPolling()}},[pollInterval,queryProgress]);var containerStyle=useMemo(function(){return getContainerStyle(token)},[token]);var centerContentStyle=useMemo(function(){return getCenterContentStyle(token)},[token]);var textCenterStyle=useMemo(function(){return getTextCenterStyle()},[]);var titleStyle=useMemo(function(){return getTitleStyle(token,"small")},[token]);var buttonGroupStyle=useMemo(function(){return getButtonGroupStyle(token)},[token]);var renderDefaultProgress=useCallback(function(){return React.createElement("div",{style:centerContentStyle},React.createElement(Spin,{indicator:React.createElement(LoadingOutlined,{style:{fontSize:token.fontSizeXL*1.5,color:token.colorPrimary},spin:true})}),React.createElement("div",{style:textCenterStyle},React.createElement("div",{style:titleStyle},messages.imports.importProgress.title)))},[token.colorPrimary,centerContentStyle,textCenterStyle,titleStyle]);var handleOpenHistory=useCallback(function(){setHistoryDialogOpen(true)},[]);var handleCancel=useCallback(function(){return _async_to_generator(function(){var cancelResult,error,errorMessage;return _ts_generator(this,function(_state){switch(_state.label){case 0:if(isCancelling||isCompletedRef.current)return[2];setIsCancelling(true);stopPolling();_state.label=1;case 1:_state.trys.push([1,4,,5]);if(!cancelImportRef.current)return[3,3];return[4,cancelImportRef.current(importIdRef.current,uploadResultRef.current)];case 2:_state.sent();_state.label=3;case 3:cancelResult={importId:importIdRef.current,success:(progressInfo===null||progressInfo===void 0?void 0:progressInfo.success)||0,failed:(progressInfo===null||progressInfo===void 0?void 0:progressInfo.failed)||0,total:(progressInfo===null||progressInfo===void 0?void 0:progressInfo.total)||0,message:messages.imports.importProgress.importCancelled||"导入已取消"};onCompleteRef.current(cancelResult);return[3,5];case 4:error=_state.sent();errorMessage=handleImportError(error,messages.imports.importProgress.cancelFailed||"取消导入失败");message.error(errorMessage);setIsCancelling(false);if(queryProgressRef.current){pollingRef.current=setInterval(function(){fetchProgress()},pollInterval)}return[3,5];case 5:return[2]}})})()},[isCancelling,stopPolling,progressInfo,pollInterval,fetchProgress,messages]);return React.createElement(React.Fragment,null,React.createElement("div",{style:containerStyle},importProgressStepRender?importProgressStepRender(progressInfo||{},uploadResult||{}):renderDefaultProgress(),React.createElement("div",{style:buttonGroupStyle},onClose&&React.createElement(Button,{onClick:onClose,style:{background:"transparent"}},messages.imports.importProgress.closeWindow),React.createElement(Button,{type:"primary",icon:React.createElement(HistoryOutlined,null),onClick:handleOpenHistory},messages.imports.importProgress.viewHistory),(cancelImport||propsOnCancel)&&!isCancelling&&(!progressInfo||progressInfo.status==="processing")&&React.createElement(Button,{danger:true,icon:React.createElement(CloseOutlined,null),onClick:propsOnCancel||handleCancel},messages.imports.importProgress.cancelImport||"取消导入")),isCancelling&&React.createElement("div",{style:{padding:token.paddingSM,background:token.colorWarningBg,borderRadius:token.borderRadius,textAlign:"center",color:token.colorWarningText,fontSize:token.fontSizeSM}},messages.imports.importProgress.cancelling||"正在取消导入任务,请稍候...")),React.createElement(ImportHistoryDialog,{open:historyDialogOpen,onOpenChange:setHistoryDialogOpen}))});ImportProgressStep.displayName="ImportProgressStep";
@@ -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 _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 _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)}import{useState,useMemo,memo,useCallback}from"react";import React from"react";import{Card,Button,Row,Col,theme,Alert}from"antd";import{CheckCircleOutlined,CloseCircleOutlined,HistoryOutlined}from"@ant-design/icons";import{ImportHistoryDialog}from"./import-history-dialog";import{StatCard}from"./stat-card";import{getContainerStyle,getCenterContentStyle,getTextCenterStyle,getTitleStyle,getSubtitleStyle,getSummaryCardStyle,getSummaryTitleStyle,getSummaryItemStyle,getButtonGroupStyle,getIconContainerStyle,getIconSmallStyle}from"../utils/styles";import{useLocale}from"../../locale";var useToken=theme.useToken;export var ImportResultStep=memo(function(param){var result=param.result,onClose=param.onClose;var token=useToken().token;var messages=useLocale().messages;var _useState=_sliced_to_array(useState(false),2),historyDialogOpen=_useState[0],setHistoryDialogOpen=_useState[1];var successRate=useMemo(function(){if(result.total===0)return"0.0";return(result.success/result.total*100).toFixed(1)},[result.success,result.total]);var isError=useMemo(function(){return result.total===0&&result.success===0&&result.failed===0},[result.total,result.success,result.failed]);var containerStyle=useMemo(function(){return getContainerStyle()},[]);var centerContentStyle=useMemo(function(){return getCenterContentStyle(true)},[]);var textCenterStyle=useMemo(function(){return getTextCenterStyle()},[]);var titleStyle=useMemo(function(){return getTitleStyle(token,"medium")},[token]);var subtitleStyle=useMemo(function(){return getSubtitleStyle(token)},[token]);var summaryCardStyle=useMemo(function(){return getSummaryCardStyle(token)},[token]);var summaryTitleStyle=useMemo(function(){return getSummaryTitleStyle(token)},[token]);var summaryItemStyle=useMemo(function(){return getSummaryItemStyle()},[]);var buttonGroupStyle=useMemo(function(){return getButtonGroupStyle()},[]);var iconContainerStyle=useMemo(function(){return getIconContainerStyle()},[]);var iconSmallStyle=useMemo(function(){return getIconSmallStyle()},[]);var handleOpenHistory=useCallback(function(){setHistoryDialogOpen(true)},[]);return React.createElement(React.Fragment,null,React.createElement("div",{style:containerStyle},React.createElement("div",{style:centerContentStyle},isError?React.createElement(CloseCircleOutlined,{style:{fontSize:64,color:token.colorError}}):result.failed===0?React.createElement(CheckCircleOutlined,{style:{fontSize:64,color:token.colorSuccess}}):React.createElement("div",{style:iconContainerStyle},React.createElement(CheckCircleOutlined,{style:{fontSize:64,color:token.colorSuccess}}),React.createElement(CloseCircleOutlined,{style:_object_spread({fontSize:32,color:token.colorError},iconSmallStyle)})),React.createElement("div",{style:textCenterStyle},React.createElement("p",{style:titleStyle},isError?messages.imports.importResult.importFailed:result.failed===0?messages.imports.importResult.importSuccess:messages.imports.importResult.importCompleted),result.importId&&React.createElement("p",{style:subtitleStyle},messages.imports.importResult.importIdLabel.replace("{id}",result.importId)))),!isError&&React.createElement(Row,{gutter:16},React.createElement(Col,{span:8},React.createElement(StatCard,{value:result.total,label:messages.imports.importResult.total,type:"total"})),React.createElement(Col,{span:8},React.createElement(StatCard,{value:result.success,label:messages.imports.importResult.success,type:"success"})),React.createElement(Col,{span:8},React.createElement(StatCard,{value:result.failed,label:messages.imports.importResult.failed,type:"failed"}))),React.createElement(Card,{variant:"outlined",styles:{body:summaryCardStyle}},React.createElement("h4",{style:summaryTitleStyle},isError?messages.imports.importResult.errorTitle:messages.imports.importResult.summaryTitle),React.createElement("div",null,isError?React.createElement(Alert,{message:result.message||messages.imports.importResult.importFailed,type:"error",showIcon:true}):React.createElement(React.Fragment,null,React.createElement("div",{style:summaryItemStyle},React.createElement("span",{style:{color:token.colorTextSecondary}},messages.imports.importResult.successRate),React.createElement("span",{style:{fontWeight:500,color:token.colorText}},successRate,"%")),React.createElement("div",{style:summaryItemStyle},React.createElement("span",{style:{color:token.colorTextSecondary}},messages.imports.importResult.status),React.createElement("span",{style:{fontWeight:500,color:token.colorText}},result.message)),result.failed>0&&React.createElement(Alert,{message:messages.imports.importResult.failedAlert.replace("{count}",String(result.failed)),type:"error",style:{marginTop:12}})))),React.createElement("div",{style:buttonGroupStyle},onClose&&React.createElement(Button,{onClick:onClose,block:true,style:{background:"transparent"}},messages.imports.importResult.close),React.createElement(Button,{type:"primary",icon:React.createElement(HistoryOutlined,null),block:true,onClick:handleOpenHistory},messages.imports.importResult.viewHistory))),React.createElement(ImportHistoryDialog,{open:historyDialogOpen,onOpenChange:setHistoryDialogOpen}))});ImportResultStep.displayName="ImportResultStep";
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 _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 _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)}import{useState,useMemo,memo,useCallback}from"react";import React from"react";import{Card,Button,Row,Col,theme,Alert}from"antd";import{CheckCircleOutlined,CloseCircleOutlined,HistoryOutlined}from"@ant-design/icons";import{ImportHistoryDialog}from"./import-history-dialog";import{StatCard}from"./stat-card";import{getContainerStyle,getCenterContentStyle,getTextCenterStyle,getTitleStyle,getSubtitleStyle,getSummaryCardStyle,getSummaryTitleStyle,getSummaryItemStyle,getButtonGroupStyle,getIconContainerStyle,getIconSmallStyle}from"../utils/styles";import{useLocale}from"../../locale";var useToken=theme.useToken;export var ImportResultStep=memo(function(param){var result=param.result,onClose=param.onClose;var token=useToken().token;var messages=useLocale().messages;var _useState=_sliced_to_array(useState(false),2),historyDialogOpen=_useState[0],setHistoryDialogOpen=_useState[1];var successRate=useMemo(function(){if(result.total===0)return"0.0";return(result.success/result.total*100).toFixed(1)},[result.success,result.total]);var isError=useMemo(function(){return result.total===0&&result.success===0&&result.failed===0},[result.total,result.success,result.failed]);var containerStyle=useMemo(function(){return getContainerStyle(token)},[token]);var centerContentStyle=useMemo(function(){return getCenterContentStyle(token,true)},[token]);var textCenterStyle=useMemo(function(){return getTextCenterStyle()},[]);var titleStyle=useMemo(function(){return getTitleStyle(token,"medium")},[token]);var subtitleStyle=useMemo(function(){return getSubtitleStyle(token)},[token]);var summaryCardStyle=useMemo(function(){return getSummaryCardStyle(token)},[token]);var summaryTitleStyle=useMemo(function(){return getSummaryTitleStyle(token)},[token]);var summaryItemStyle=useMemo(function(){return getSummaryItemStyle(token)},[token]);var buttonGroupStyle=useMemo(function(){return getButtonGroupStyle(token)},[token]);var iconContainerStyle=useMemo(function(){return getIconContainerStyle()},[]);var iconSmallStyle=useMemo(function(){return getIconSmallStyle(token)},[token]);var handleOpenHistory=useCallback(function(){setHistoryDialogOpen(true)},[]);return React.createElement(React.Fragment,null,React.createElement("div",{style:containerStyle},React.createElement("div",{style:centerContentStyle},isError?React.createElement(CloseCircleOutlined,{style:{fontSize:token.fontSizeXL*3,color:token.colorError}}):result.failed===0?React.createElement(CheckCircleOutlined,{style:{fontSize:token.fontSizeXL*3,color:token.colorSuccess}}):React.createElement("div",{style:iconContainerStyle},React.createElement(CheckCircleOutlined,{style:{fontSize:token.fontSizeXL*3,color:token.colorSuccess}}),React.createElement(CloseCircleOutlined,{style:_object_spread({fontSize:token.fontSizeXL*1.5,color:token.colorError},iconSmallStyle)})),React.createElement("div",{style:textCenterStyle},React.createElement("p",{style:titleStyle},isError?messages.imports.importResult.importFailed:result.failed===0?messages.imports.importResult.importSuccess:messages.imports.importResult.importCompleted),result.importId&&React.createElement("p",{style:subtitleStyle},messages.imports.importResult.importIdLabel.replace("{id}",result.importId)))),!isError&&React.createElement(Row,{gutter:16},React.createElement(Col,{span:8},React.createElement(StatCard,{value:result.total,label:messages.imports.importResult.total,type:"total"})),React.createElement(Col,{span:8},React.createElement(StatCard,{value:result.success,label:messages.imports.importResult.success,type:"success"})),React.createElement(Col,{span:8},React.createElement(StatCard,{value:result.failed,label:messages.imports.importResult.failed,type:"failed"}))),React.createElement(Card,{variant:"outlined",styles:{body:summaryCardStyle},style:{marginTop:token.marginSM}},React.createElement("h4",{style:summaryTitleStyle},isError?messages.imports.importResult.errorTitle:messages.imports.importResult.summaryTitle),React.createElement("div",null,isError?React.createElement(Alert,{message:result.message||messages.imports.importResult.importFailed,type:"error",showIcon:true}):React.createElement(React.Fragment,null,React.createElement("div",{style:summaryItemStyle},React.createElement("span",{style:{color:token.colorTextSecondary}},messages.imports.importResult.successRate),React.createElement("span",{style:{fontWeight:token.fontWeightStrong,color:token.colorText}},successRate,"%")),React.createElement("div",{style:summaryItemStyle},React.createElement("span",{style:{color:token.colorTextSecondary}},messages.imports.importResult.status),React.createElement("span",{style:{fontWeight:token.fontWeightStrong,color:token.colorText}},result.message)),result.failed>0&&React.createElement(Alert,{message:messages.imports.importResult.failedAlert.replace("{count}",String(result.failed)),type:"error",style:{marginTop:token.marginSM}})))),React.createElement("div",{style:buttonGroupStyle},onClose&&React.createElement(Button,{onClick:onClose,style:{background:"transparent"}},messages.imports.importResult.close),React.createElement(Button,{type:"primary",icon:React.createElement(HistoryOutlined,null),onClick:handleOpenHistory},messages.imports.importResult.viewHistory))),React.createElement(ImportHistoryDialog,{open:historyDialogOpen,onOpenChange:setHistoryDialogOpen}))});ImportResultStep.displayName="ImportResultStep";
@@ -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}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}import{useMemo,memo}from"react";import React from"react";import{CheckCircleOutlined,LoadingOutlined,ClockCircleOutlined,CloseCircleOutlined}from"@ant-design/icons";import{theme}from"antd";var useToken=theme.useToken;export var ProgressSteps=memo(function(param){var steps=param.steps,currentStepKey=param.currentStepKey;var token=useToken().token;var stepItemStyle=useMemo(function(){return{display:"flex",alignItems:"flex-start",gap:12,marginBottom:16,fontSize:12}},[]);var stepIconStyle=useMemo(function(){return{fontSize:16,marginTop:2,flexShrink:0}},[]);var stepContentStyle=useMemo(function(){return{flex:1}},[]);var stepLabelStyle=useMemo(function(){return{fontWeight:500,color:token.colorText,marginBottom:4}},[token.colorText]);var stepDescriptionStyle=useMemo(function(){return{color:token.colorTextSecondary,fontSize:11}},[token.colorTextSecondary]);var getStepIcon=function(step){var iconStyle=_object_spread({},stepIconStyle);switch(step.status){case"completed":return React.createElement(CheckCircleOutlined,{style:_object_spread_props(_object_spread({},iconStyle),{color:token.colorSuccess})});case"processing":return React.createElement(LoadingOutlined,{style:_object_spread_props(_object_spread({},iconStyle),{color:token.colorPrimary}),spin:true});case"failed":return React.createElement(CloseCircleOutlined,{style:_object_spread_props(_object_spread({},iconStyle),{color:token.colorError})});case"pending":default:return React.createElement(ClockCircleOutlined,{style:_object_spread_props(_object_spread({},iconStyle),{color:token.colorTextDisabled})})}};var getStepTextColor=function(step){switch(step.status){case"completed":return token.colorSuccess;case"processing":return token.colorPrimary;case"failed":return token.colorError;case"pending":default:return token.colorTextDisabled}};return React.createElement("div",null,steps.map(function(step){var isCurrent=currentStepKey===step.key;var textColor=getStepTextColor(step);return React.createElement("div",{key:step.key,style:stepItemStyle},getStepIcon(step),React.createElement("div",{style:stepContentStyle},React.createElement("div",{style:_object_spread_props(_object_spread({},stepLabelStyle),{color:textColor})},step.label,step.progress!==undefined&&step.status==="processing"&&React.createElement("span",{style:{marginLeft:8,color:token.colorTextSecondary}},"(",step.progress,"%)")),step.description&&React.createElement("div",{style:stepDescriptionStyle},step.description)))}))});ProgressSteps.displayName="ProgressSteps";
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}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}import{useMemo,memo}from"react";import React from"react";import{CheckCircleOutlined,LoadingOutlined,ClockCircleOutlined,CloseCircleOutlined}from"@ant-design/icons";import{theme}from"antd";var useToken=theme.useToken;export var ProgressSteps=memo(function(param){var steps=param.steps,currentStepKey=param.currentStepKey;var token=useToken().token;var stepItemStyle=useMemo(function(){return{display:"flex",alignItems:"flex-start",gap:token.marginSM,marginBottom:token.margin,fontSize:token.fontSizeSM}},[token]);var stepIconStyle=useMemo(function(){return{fontSize:token.fontSizeLG,marginTop:token.marginXXS,flexShrink:0}},[token]);var stepContentStyle=useMemo(function(){return{flex:1}},[]);var stepLabelStyle=useMemo(function(){return{fontWeight:token.fontWeightStrong,color:token.colorText,marginBottom:token.marginXXS}},[token]);var stepDescriptionStyle=useMemo(function(){return{color:token.colorTextSecondary,fontSize:token.fontSizeSM*.9}},[token]);var getStepIcon=function(step){var iconStyle=_object_spread({},stepIconStyle);switch(step.status){case"completed":return React.createElement(CheckCircleOutlined,{style:_object_spread_props(_object_spread({},iconStyle),{color:token.colorSuccess})});case"processing":return React.createElement(LoadingOutlined,{style:_object_spread_props(_object_spread({},iconStyle),{color:token.colorPrimary}),spin:true});case"failed":return React.createElement(CloseCircleOutlined,{style:_object_spread_props(_object_spread({},iconStyle),{color:token.colorError})});case"pending":default:return React.createElement(ClockCircleOutlined,{style:_object_spread_props(_object_spread({},iconStyle),{color:token.colorTextDisabled})})}};var getStepTextColor=function(step){switch(step.status){case"completed":return token.colorSuccess;case"processing":return token.colorPrimary;case"failed":return token.colorError;case"pending":default:return token.colorTextDisabled}};return React.createElement("div",null,steps.map(function(step){var isCurrent=currentStepKey===step.key;var textColor=getStepTextColor(step);return React.createElement("div",{key:step.key,style:stepItemStyle},getStepIcon(step),React.createElement("div",{style:stepContentStyle},React.createElement("div",{style:_object_spread_props(_object_spread({},stepLabelStyle),{color:textColor})},step.label,step.progress!==undefined&&step.status==="processing"&&React.createElement("span",{style:{marginLeft:token.marginXS,color:token.colorTextSecondary}},"(",step.progress,"%)")),step.description&&React.createElement("div",{style:stepDescriptionStyle},step.description)))}))});ProgressSteps.displayName="ProgressSteps";
@@ -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}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}import{memo,useMemo}from"react";import React from"react";import{Card,theme}from"antd";export var StatCard=memo(function(param){var value=param.value,label=param.label,type=param.type;var token=theme.useToken().token;var cardBodyStyle=useMemo(function(){var baseStyle={borderRadius:8,padding:16,textAlign:"center"};switch(type){case"success":return _object_spread_props(_object_spread({},baseStyle),{background:token.colorSuccessBg,borderColor:token.colorSuccessBorder});case"failed":return _object_spread_props(_object_spread({},baseStyle),{background:token.colorErrorBg,borderColor:token.colorErrorBorder});default:return _object_spread_props(_object_spread({},baseStyle),{background:token.colorBgContainer})}},[type,token]);var getTextColor=function(){switch(type){case"success":return token.colorSuccess;case"failed":return token.colorError;default:return token.colorText}};var getLabelColor=function(){switch(type){case"success":return token.colorSuccessText;case"failed":return token.colorErrorText;default:return token.colorTextSecondary}};var numberStyle=useMemo(function(){return{fontSize:24,fontWeight:700,margin:0,color:getTextColor()}},[type,token]);var labelStyle=useMemo(function(){return{fontSize:12,color:getLabelColor(),marginTop:8}},[type,token]);return React.createElement(Card,{variant:"outlined",styles:{body:cardBodyStyle}},React.createElement("p",{style:numberStyle},value),React.createElement("p",{style:labelStyle},label))});StatCard.displayName="StatCard";
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}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}import{memo,useMemo}from"react";import React from"react";import{Card,theme}from"antd";export var StatCard=memo(function(param){var value=param.value,label=param.label,type=param.type;var token=theme.useToken().token;var cardBodyStyle=useMemo(function(){var baseStyle={borderRadius:token.borderRadius,padding:token.padding,textAlign:"center"};switch(type){case"success":return _object_spread_props(_object_spread({},baseStyle),{background:token.colorSuccessBg,borderColor:token.colorSuccessBorder});case"failed":return _object_spread_props(_object_spread({},baseStyle),{background:token.colorErrorBg,borderColor:token.colorErrorBorder});default:return _object_spread_props(_object_spread({},baseStyle),{background:token.colorBgContainer})}},[type,token]);var getTextColor=function(){switch(type){case"success":return token.colorSuccess;case"failed":return token.colorError;default:return token.colorText}};var getLabelColor=function(){switch(type){case"success":return token.colorSuccessText;case"failed":return token.colorErrorText;default:return token.colorTextSecondary}};var numberStyle=useMemo(function(){return{fontSize:token.fontSizeXL*1.2,fontWeight:token.fontWeightStrong,margin:0,color:getTextColor()}},[type,token]);var labelStyle=useMemo(function(){return{fontSize:token.fontSizeSM,color:getLabelColor(),marginTop:token.marginXS}},[type,token]);return React.createElement(Card,{variant:"outlined",styles:{body:cardBodyStyle}},React.createElement("p",{style:numberStyle},value),React.createElement("p",{style:labelStyle},label))});StatCard.displayName="StatCard";
@@ -1,6 +1,7 @@
1
1
  import { type FC } from "react";
2
2
  interface UploadProgressStepProps {
3
3
  progress: number;
4
+ onCancel?: () => void;
4
5
  }
5
6
  export declare const UploadProgressStep: FC<UploadProgressStepProps>;
6
7
  export {};
@@ -1 +1 @@
1
- import{memo,useMemo}from"react";import React from"react";import{Progress,Spin,Alert,theme}from"antd";import{LoadingOutlined,ExclamationCircleOutlined}from"@ant-design/icons";import{getContainerStyle,getCenterContentStyle,getTextCenterStyle,getTitleStyle,getProgressTextStyle,getAlertStyle}from"../utils/styles";import{useLocale}from"../../locale";var useToken=theme.useToken;export var UploadProgressStep=memo(function(param){var progress=param.progress;var token=useToken().token;var messages=useLocale().messages;var progressPercent=useMemo(function(){return Math.round(progress)},[progress]);var containerStyle=useMemo(function(){return getContainerStyle()},[]);var centerContentStyle=useMemo(function(){return getCenterContentStyle()},[]);var textCenterStyle=useMemo(function(){return getTextCenterStyle()},[]);var titleStyle=useMemo(function(){return getTitleStyle(token,"small")},[token]);var progressTextStyle=useMemo(function(){return getProgressTextStyle(token)},[token]);var alertStyle=useMemo(function(){return getAlertStyle(token)},[token]);return React.createElement("div",{style:containerStyle},React.createElement("div",{style:centerContentStyle},React.createElement(Spin,{indicator:React.createElement(LoadingOutlined,{style:{fontSize:48,color:token.colorPrimary},spin:true})}),React.createElement("div",{style:textCenterStyle},React.createElement("p",{style:titleStyle},messages.imports.uploadProgress.title),React.createElement("p",{style:progressTextStyle},messages.imports.uploadProgress.progressText.replace("{percent}",String(progressPercent))))),React.createElement(Progress,{percent:progressPercent,strokeColor:token.colorPrimary}),React.createElement(Alert,{message:messages.imports.uploadProgress.alertMessage,description:messages.imports.uploadProgress.alertDescription,type:"warning",icon:React.createElement(ExclamationCircleOutlined,null),style:alertStyle}))});UploadProgressStep.displayName="UploadProgressStep";
1
+ import{memo,useMemo}from"react";import React from"react";import{Progress,Spin,Alert,theme,Button}from"antd";import{LoadingOutlined,ExclamationCircleOutlined,CloseOutlined}from"@ant-design/icons";import{getContainerStyle,getCenterContentStyle,getTextCenterStyle,getTitleStyle,getProgressTextStyle,getAlertStyle,getButtonGroupStyle}from"../utils/styles";import{useLocale}from"../../locale";var useToken=theme.useToken;export var UploadProgressStep=memo(function(param){var progress=param.progress,onCancel=param.onCancel;var token=useToken().token;var messages=useLocale().messages;var progressPercent=useMemo(function(){return Math.round(progress)},[progress]);var containerStyle=useMemo(function(){return getContainerStyle(token)},[token]);var centerContentStyle=useMemo(function(){return getCenterContentStyle(token)},[token]);var textCenterStyle=useMemo(function(){return getTextCenterStyle()},[]);var titleStyle=useMemo(function(){return getTitleStyle(token,"small")},[token]);var progressTextStyle=useMemo(function(){return getProgressTextStyle(token)},[token]);var alertStyle=useMemo(function(){return getAlertStyle(token)},[token]);var buttonGroupStyle=useMemo(function(){return getButtonGroupStyle(token)},[token]);return React.createElement("div",{style:containerStyle},React.createElement("div",{style:centerContentStyle},React.createElement(Spin,{indicator:React.createElement(LoadingOutlined,{style:{fontSize:token.fontSizeXL*2,color:token.colorPrimary},spin:true})}),React.createElement("div",{style:textCenterStyle},React.createElement("p",{style:titleStyle},messages.imports.uploadProgress.title),React.createElement("p",{style:progressTextStyle},messages.imports.uploadProgress.progressText.replace("{percent}",String(progressPercent))))),React.createElement(Progress,{percent:progressPercent,strokeColor:token.colorPrimary}),React.createElement(Alert,{message:messages.imports.uploadProgress.alertMessage,description:messages.imports.uploadProgress.alertDescription,type:"warning",icon:React.createElement(ExclamationCircleOutlined,null),style:alertStyle}),onCancel&&React.createElement("div",{style:buttonGroupStyle},React.createElement(Button,{danger:true,icon:React.createElement(CloseOutlined,null),onClick:onCancel},messages.imports.uploadProgress.cancelUpload||"取消上传")))});UploadProgressStep.displayName="UploadProgressStep";
@@ -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 _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{useRef,useMemo,memo,useCallback}from"react";import React from"react";import{Card,Typography,theme}from"antd";import{DownloadOutlined,UploadOutlined}from"@ant-design/icons";import{Button}from"../../Button";import{getContainerStyle,getCardBodyStyle,getTipCardStyle,getTipTitleStyle,getTipListStyle,getTipItemStyle,getHiddenInputStyle,getDescriptionStyle}from"../utils/styles";import{useImportContextOptional}from"../context/import-context";import{useLocale}from"../../locale";var Text=Typography.Text;export var UploadStep=memo(function(param){var propsOnFileSelect=param.onFileSelect,propsOnDownloadTemplate=param.onDownloadTemplate,propsTips=param.tips,propsConfig=param.config;var context=useImportContextOptional();var messages=useLocale().messages;var onFileSelect=propsOnFileSelect!==null&&propsOnFileSelect!==void 0?propsOnFileSelect:context===null||context===void 0?void 0:context.onFileSelect;var onDownloadTemplate=propsOnDownloadTemplate!==null&&propsOnDownloadTemplate!==void 0?propsOnDownloadTemplate:context===null||context===void 0?void 0:context.onDownloadTemplate;var tips=propsTips!==null&&propsTips!==void 0?propsTips:context===null||context===void 0?void 0:context.tips;var config=propsConfig!==null&&propsConfig!==void 0?propsConfig:context===null||context===void 0?void 0:context.uploadStepConfig;var token=theme.useToken().token;var fileInputRef=useRef(null);var DEFAULT_TIPS=[messages.imports.uploadStep.defaultTip];var DEFAULT_CONFIG=useMemo(function(){return{downloadTitle:messages.imports.uploadStep.downloadTitle,downloadDescription:messages.imports.uploadStep.downloadDescription,downloadButtonText:messages.imports.uploadStep.downloadButtonText,uploadTitle:messages.imports.uploadStep.uploadTitle,uploadDescription:messages.imports.uploadStep.uploadDescription,uploadButtonText:messages.imports.uploadStep.uploadButtonText}},[messages]);var containerStyle=useMemo(function(){return getContainerStyle(true)},[]);var cardBodyStyle=useMemo(function(){return getCardBodyStyle(token)},[token]);var tipCardStyle=useMemo(function(){return getTipCardStyle(token)},[token]);var tipTitleStyle=useMemo(function(){return getTipTitleStyle()},[]);var tipListStyle=useMemo(function(){return getTipListStyle()},[]);var tipItemStyle=useMemo(function(){return getTipItemStyle()},[]);var hiddenInputStyle=useMemo(function(){return getHiddenInputStyle()},[]);var descriptionStyle=useMemo(function(){return getDescriptionStyle()},[]);var displayTips=useMemo(function(){return tips&&tips.length>0?tips:DEFAULT_TIPS},[tips,DEFAULT_TIPS]);var stepConfig=useMemo(function(){return _object_spread({},DEFAULT_CONFIG,config)},[config,DEFAULT_CONFIG]);var handleDownloadTemplate=useCallback(function(){return _async_to_generator(function(){return _ts_generator(this,function(_state){switch(_state.label){case 0:if(!onDownloadTemplate)return[3,2];return[4,onDownloadTemplate()];case 1:return[2,_state.sent()];case 2:return[2]}})})()},[onDownloadTemplate]);var handleFileChange=useCallback(function(e){var _e_target_files;var file=(_e_target_files=e.target.files)===null||_e_target_files===void 0?void 0:_e_target_files[0];if(file&&onFileSelect){onFileSelect(file)}if(fileInputRef.current){fileInputRef.current.value=""}},[onFileSelect]);var handleUploadClick=useCallback(function(){var _fileInputRef_current;(_fileInputRef_current=fileInputRef.current)===null||_fileInputRef_current===void 0?void 0:_fileInputRef_current.click()},[]);return React.createElement("div",{style:containerStyle},React.createElement(Card,{title:stepConfig.downloadTitle,variant:"outlined",styles:{body:cardBodyStyle}},React.createElement(Text,{type:"secondary",style:descriptionStyle},stepConfig.downloadDescription),React.createElement(Button,{onClick:handleDownloadTemplate,icon:React.createElement(DownloadOutlined,null),block:true,style:{background:"transparent"}},stepConfig.downloadButtonText)),React.createElement(Card,{title:stepConfig.uploadTitle,variant:"outlined",styles:{body:cardBodyStyle}},React.createElement(Text,{type:"secondary",style:descriptionStyle},stepConfig.uploadDescription),React.createElement("input",{ref:fileInputRef,type:"file",accept:".csv,.xlsx,.xls",onChange:handleFileChange,style:hiddenInputStyle}),React.createElement(Button,{type:"primary",icon:React.createElement(UploadOutlined,null),block:true,onClick:handleUploadClick},stepConfig.uploadButtonText)),React.createElement("div",{style:tipCardStyle},React.createElement("p",{style:tipTitleStyle},messages.imports.uploadStep.tipsTitle),React.createElement("ul",{style:tipListStyle},displayTips.map(function(tip,index){return React.createElement("li",{key:index,style:tipItemStyle},tip)}))))});UploadStep.displayName="UploadStep";
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 _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{useRef,useMemo,memo,useCallback,useState}from"react";import React from"react";import{Card,Typography,theme}from"antd";import{DownloadOutlined,InboxOutlined}from"@ant-design/icons";import{Button}from"../../Button";import{getContainerStyle,getCardBodyStyle,getTipCardStyle,getTipTitleStyle,getTipListStyle,getTipItemStyle,getHiddenInputStyle,getDescriptionStyle}from"../utils/styles";import{useImportContextOptional}from"../context/import-context";import{useLocale}from"../../locale";var Text=Typography.Text;export var UploadStep=memo(function(param){var propsOnFileSelect=param.onFileSelect,propsOnDownloadTemplate=param.onDownloadTemplate,propsTips=param.tips,propsConfig=param.config;var context=useImportContextOptional();var messages=useLocale().messages;var onFileSelect=propsOnFileSelect!==null&&propsOnFileSelect!==void 0?propsOnFileSelect:context===null||context===void 0?void 0:context.onFileSelect;var onDownloadTemplate=propsOnDownloadTemplate!==null&&propsOnDownloadTemplate!==void 0?propsOnDownloadTemplate:context===null||context===void 0?void 0:context.onDownloadTemplate;var tips=propsTips!==null&&propsTips!==void 0?propsTips:context===null||context===void 0?void 0:context.tips;var config=propsConfig!==null&&propsConfig!==void 0?propsConfig:context===null||context===void 0?void 0:context.uploadStepConfig;var token=theme.useToken().token;var fileInputRef=useRef(null);var _useState=_sliced_to_array(useState(false),2),isDragging=_useState[0],setIsDragging=_useState[1];var DEFAULT_TIPS=[messages.imports.uploadStep.defaultTip];var DEFAULT_CONFIG=useMemo(function(){return{downloadTitle:messages.imports.uploadStep.downloadTitle,downloadDescription:messages.imports.uploadStep.downloadDescription,downloadButtonText:messages.imports.uploadStep.downloadButtonText,uploadTitle:messages.imports.uploadStep.uploadTitle,uploadDescription:messages.imports.uploadStep.uploadDescription,uploadButtonText:messages.imports.uploadStep.uploadButtonText,accept:".csv,.xlsx,.xls",dragText:messages.imports.uploadStep.dragText}},[messages]);var containerStyle=useMemo(function(){return getContainerStyle(token,true)},[token]);var cardBodyStyle=useMemo(function(){return getCardBodyStyle(token)},[token]);var tipCardStyle=useMemo(function(){return getTipCardStyle(token)},[token]);var tipTitleStyle=useMemo(function(){return getTipTitleStyle(token)},[token]);var tipListStyle=useMemo(function(){return getTipListStyle(token)},[token]);var tipItemStyle=useMemo(function(){return getTipItemStyle(token)},[token]);var hiddenInputStyle=useMemo(function(){return getHiddenInputStyle()},[]);var descriptionStyle=useMemo(function(){return getDescriptionStyle(token)},[token]);var displayTips=useMemo(function(){return tips&&tips.length>0?tips:DEFAULT_TIPS},[tips,DEFAULT_TIPS]);var stepConfig=useMemo(function(){return _object_spread({},DEFAULT_CONFIG,config)},[config,DEFAULT_CONFIG]);var handleDownloadTemplate=useCallback(function(){return _async_to_generator(function(){return _ts_generator(this,function(_state){switch(_state.label){case 0:if(!onDownloadTemplate)return[3,2];return[4,onDownloadTemplate()];case 1:return[2,_state.sent()];case 2:return[2]}})})()},[onDownloadTemplate]);var handleFileChange=useCallback(function(e){var _e_target_files;var file=(_e_target_files=e.target.files)===null||_e_target_files===void 0?void 0:_e_target_files[0];if(file&&onFileSelect){onFileSelect(file)}if(fileInputRef.current){fileInputRef.current.value=""}},[onFileSelect]);var handleUploadClick=useCallback(function(){var _fileInputRef_current;(_fileInputRef_current=fileInputRef.current)===null||_fileInputRef_current===void 0?void 0:_fileInputRef_current.click()},[]);var handleDragOver=useCallback(function(e){e.preventDefault();e.stopPropagation();setIsDragging(true)},[]);var handleDragLeave=useCallback(function(e){e.preventDefault();e.stopPropagation();setIsDragging(false)},[]);var handleDrop=useCallback(function(e){return _async_to_generator(function(){var files,_file_name_split_pop,file,acceptValue,acceptTypes,fileExtension;return _ts_generator(this,function(_state){switch(_state.label){case 0:e.preventDefault();e.stopPropagation();setIsDragging(false);files=e.dataTransfer.files;if(!(files.length>0))return[3,2];file=files[0];acceptValue=stepConfig.accept||".csv,.xlsx,.xls";acceptTypes=acceptValue.split(",").map(function(type){return type.trim().toLowerCase()});fileExtension="."+((_file_name_split_pop=file.name.split(".").pop())===null||_file_name_split_pop===void 0?void 0:_file_name_split_pop.toLowerCase());if(!(acceptTypes.includes(fileExtension)&&onFileSelect))return[3,2];return[4,onFileSelect(file)];case 1:_state.sent();_state.label=2;case 2:return[2]}})})()},[onFileSelect,stepConfig.accept]);return React.createElement("div",{style:containerStyle},React.createElement(Card,{variant:"outlined",styles:{body:_object_spread_props(_object_spread({},cardBodyStyle),{textAlign:"center",padding:"".concat(token.paddingLG,"px ").concat(token.padding,"px"),transition:"all 0.3s ease"})}},React.createElement(Typography.Title,{level:5,style:{marginTop:0}},stepConfig.downloadTitle),React.createElement(Text,{type:"secondary",style:descriptionStyle},stepConfig.downloadDescription),React.createElement(Button,{onClick:handleDownloadTemplate,icon:React.createElement(DownloadOutlined,null),style:{background:"transparent"}},stepConfig.downloadButtonText)),React.createElement(Card,{variant:"outlined",styles:{body:_object_spread_props(_object_spread({},cardBodyStyle),{border:isDragging?"2px dashed ".concat(token.colorPrimary):undefined,backgroundColor:isDragging?token.colorPrimaryBg:cardBodyStyle.background,transition:"all 0.3s ease",cursor:"pointer",textAlign:"center",padding:"".concat(token.paddingLG,"px ").concat(token.padding,"px")})},onDragOver:handleDragOver,onDragLeave:handleDragLeave,onDrop:handleDrop,onClick:handleUploadClick},React.createElement(Typography.Title,{level:5,style:{marginTop:0}},stepConfig.uploadTitle),React.createElement(Text,{type:"secondary",style:descriptionStyle},stepConfig.uploadDescription),React.createElement("input",{ref:fileInputRef,type:"file",accept:stepConfig.accept||".csv,.xlsx,.xls",onChange:handleFileChange,style:hiddenInputStyle}),React.createElement("div",{style:{marginTop:0,marginBottom:token.marginXS}},stepConfig.dragIcon?React.createElement("div",{style:{color:token.colorTextSecondary}},stepConfig.dragIcon):React.createElement(InboxOutlined,{style:{fontSize:token.fontSizeXL*2,color:token.colorTextSecondary}})),React.createElement(Text,{type:"secondary",style:{fontSize:token.fontSize}},stepConfig.dragText)),React.createElement("div",{style:tipCardStyle},React.createElement("p",{style:tipTitleStyle},messages.imports.uploadStep.tipsTitle),React.createElement("ul",{style:tipListStyle},displayTips.map(function(tip,index){return React.createElement("li",{key:index,style:tipItemStyle},tip)}))))});UploadStep.displayName="UploadStep";
@@ -1,5 +1,5 @@
1
1
  import type { FC, ReactNode } from 'react';
2
- import type { QueryImportProgress, ImportProgressStepRender, UploadStepConfig, UploadConfig, UploadResult, QueryImportRecords, ImportRecord } from '../types';
2
+ import type { QueryImportProgress, ImportProgressStepRender, UploadStepConfig, UploadConfig, UploadResult, QueryImportRecords, ImportRecord, CancelImport } from '../types';
3
3
  import type { ProFormColumnsType } from '../../Form/types';
4
4
  import type { ProColumns } from '@ant-design/pro-components';
5
5
  import type { ImportErrorItem, QueryImportErrors, ImportDetailContentRender } from '../types';
@@ -11,6 +11,8 @@ export interface ImportContextValue {
11
11
  taskKey: string;
12
12
  /** 查询导入进度接口 */
13
13
  queryProgress?: QueryImportProgress;
14
+ /** 取消导入接口 */
15
+ cancelImport?: CancelImport;
14
16
  /** 自定义进度步骤渲染函数 */
15
17
  importProgressStepRender?: ImportProgressStepRender;
16
18
  /** 下载模板回调 */
@@ -1 +1 @@
1
- import{createContext,useContext,useMemo}from"react";import React from"react";var ImportContext=createContext(null);export var ImportContextProvider=function(param){var value=param.value,children=param.children;var contextValue=useMemo(function(){return value},[value.taskKey,value.queryProgress,value.importProgressStepRender,value.onDownloadTemplate,value.onFileSelect,value.queryImportRecords,value.importRecordColumns,value.importRecordTableProps,value.queryImportErrors,value.importErrorColumns,value.importErrorTableProps,value.importDetailContentRender,value.tips,value.uploadStepConfig,value.pollInterval]);return React.createElement(ImportContext.Provider,{value:contextValue},children)};export var useImportContext=function(){var context=useContext(ImportContext);if(!context){throw new Error("useImportContext must be used within ImportContextProvider")}return context};export var useImportContextOptional=function(){return useContext(ImportContext)};
1
+ import{createContext,useContext,useMemo}from"react";import React from"react";var ImportContext=createContext(null);export var ImportContextProvider=function(param){var value=param.value,children=param.children;var contextValue=useMemo(function(){return value},[value.taskKey,value.queryProgress,value.cancelImport,value.importProgressStepRender,value.onDownloadTemplate,value.onFileSelect,value.queryImportRecords,value.importRecordColumns,value.importRecordTableProps,value.queryImportErrors,value.importErrorColumns,value.importErrorTableProps,value.importDetailContentRender,value.tips,value.uploadStepConfig,value.pollInterval]);return React.createElement(ImportContext.Provider,{value:contextValue},children)};export var useImportContext=function(){var context=useContext(ImportContext);if(!context){throw new Error("useImportContext must be used within ImportContextProvider")}return context};export var useImportContextOptional=function(){return useContext(ImportContext)};
@@ -1,7 +1,7 @@
1
1
  import { type FC } from "react";
2
2
  import type { ButtonProps } from "../Button";
3
3
  import { type CustomModalProps } from "./components/import-modal";
4
- import type { ImportProgressStepRender, UploadConfig, UploadResult, QueryImportProgress, UploadStepConfig } from "./types";
4
+ import type { ImportProgressStepRender, UploadConfig, UploadResult, QueryImportProgress, UploadStepConfig, CancelImport } from "./types";
5
5
  export interface ImportsProps {
6
6
  primaryText?: string;
7
7
  secondaryText?: string;
@@ -9,6 +9,7 @@ export interface ImportsProps {
9
9
  secondaryButtonProps?: ButtonProps;
10
10
  modalProps?: CustomModalProps;
11
11
  queryProgress?: QueryImportProgress;
12
+ cancelImport?: CancelImport;
12
13
  onModalClose?: () => void;
13
14
  taskKey?: string;
14
15
  importProgressStepRender?: ImportProgressStepRender;
@@ -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 _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 _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)}import{useState,useMemo,memo}from"react";import React from"react";import{Flex}from"antd";import{Button}from"../Button";import{CloudDownloadOutlined,HistoryOutlined}from"@ant-design/icons";import{ImportModal}from"./components/import-modal";import{ImportHistoryDialog}from"./components/import-history-dialog";import{ImportContextProvider,useImportContextOptional}from"./context/import-context";import{useLocale}from"../locale";var ImportsInner=memo(function(param){var primaryText=param.primaryText,secondaryText=param.secondaryText,primaryButtonProps=param.primaryButtonProps,secondaryButtonProps=param.secondaryButtonProps,modalProps=param.modalProps,onModalClose=param.onModalClose,taskKey=param.taskKey,importProgressStepRender=param.importProgressStepRender,onDownloadTemplate=param.onDownloadTemplate,onFileSelect=param.onFileSelect,queryProgress=param.queryProgress,tips=param.tips,uploadStepConfig=param.uploadStepConfig;var messages=useLocale().messages;var _useState=_sliced_to_array(useState(false),2),isModalOpen=_useState[0],setIsModalOpen=_useState[1];var _useState1=_sliced_to_array(useState(false),2),isHistoryDialogOpen=_useState1[0],setIsHistoryDialogOpen=_useState1[1];var context=useImportContextOptional();var finalPrimaryText=primaryText!==null&&primaryText!==void 0?primaryText:messages.imports.primaryText;var finalSecondaryText=secondaryText!==null&&secondaryText!==void 0?secondaryText:messages.imports.secondaryText;var handleCloseModal=function(){setIsModalOpen(false);onModalClose===null||onModalClose===void 0?void 0:onModalClose()};var handleOpenHistoryDialog=function(){setIsHistoryDialogOpen(true)};var handleCloseHistoryDialog=function(){setIsHistoryDialogOpen(false)};var _ref;var finalTaskKey=(_ref=taskKey!==null&&taskKey!==void 0?taskKey:context===null||context===void 0?void 0:context.taskKey)!==null&&_ref!==void 0?_ref:"id";var finalQueryProgress=queryProgress!==null&&queryProgress!==void 0?queryProgress:context===null||context===void 0?void 0:context.queryProgress;var finalImportProgressStepRender=importProgressStepRender!==null&&importProgressStepRender!==void 0?importProgressStepRender:context===null||context===void 0?void 0:context.importProgressStepRender;var finalOnDownloadTemplate=onDownloadTemplate!==null&&onDownloadTemplate!==void 0?onDownloadTemplate:context===null||context===void 0?void 0:context.onDownloadTemplate;var finalOnFileSelect=onFileSelect!==null&&onFileSelect!==void 0?onFileSelect:context===null||context===void 0?void 0:context.onFileSelect;var finalTips=tips!==null&&tips!==void 0?tips:context===null||context===void 0?void 0:context.tips;var finalUploadStepConfig=uploadStepConfig!==null&&uploadStepConfig!==void 0?uploadStepConfig:context===null||context===void 0?void 0:context.uploadStepConfig;var finalPollInterval=context===null||context===void 0?void 0:context.pollInterval;var finalQueryImportRecords=context===null||context===void 0?void 0:context.queryImportRecords;var finalImportRecordColumns=context===null||context===void 0?void 0:context.importRecordColumns;var finalImportRecordTableProps=context===null||context===void 0?void 0:context.importRecordTableProps;return React.createElement(Flex,{justify:"start",align:"center",gap:10},React.createElement(Button,_object_spread_props(_object_spread({key:"import-opt",type:"primary",icon:React.createElement(CloudDownloadOutlined,null)},primaryButtonProps),{onClick:function(){setIsModalOpen(true)}}),finalPrimaryText),React.createElement(Button,_object_spread_props(_object_spread({key:"import-record",icon:React.createElement(HistoryOutlined,null)},secondaryButtonProps),{onClick:handleOpenHistoryDialog}),finalSecondaryText),React.createElement(ImportModal,{title:finalPrimaryText,open:isModalOpen,onClose:handleCloseModal,modalProps:modalProps,taskKey:finalTaskKey,queryProgress:finalQueryProgress,importProgressStepRender:finalImportProgressStepRender,onDownloadTemplate:finalOnDownloadTemplate,onFileSelect:finalOnFileSelect,tips:finalTips,uploadStepConfig:finalUploadStepConfig,pollInterval:finalPollInterval}),React.createElement(ImportHistoryDialog,{open:isHistoryDialogOpen,onOpenChange:handleCloseHistoryDialog,columns:finalImportRecordColumns,queryImportRecords:finalQueryImportRecords,tableProps:finalImportRecordTableProps}))});ImportsInner.displayName="ImportsInner";export var Imports=function(props){var context=useImportContextOptional();if(context){return React.createElement(ImportsInner,props)}var contextValue=useMemo(function(){var _props_taskKey;return{taskKey:(_props_taskKey=props.taskKey)!==null&&_props_taskKey!==void 0?_props_taskKey:"id",queryProgress:props.queryProgress,importProgressStepRender:props.importProgressStepRender,onDownloadTemplate:props.onDownloadTemplate,onFileSelect:props.onFileSelect,tips:props.tips,uploadStepConfig:props.uploadStepConfig,pollInterval:props.pollInterval}},[props.taskKey,props.queryProgress,props.importProgressStepRender,props.onDownloadTemplate,props.onFileSelect,props.tips,props.uploadStepConfig,props.pollInterval]);return React.createElement(ImportContextProvider,{value:contextValue},React.createElement(ImportsInner,props))};
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 _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 _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)}import{useState,useMemo,memo}from"react";import React from"react";import{Flex}from"antd";import{Button}from"../Button";import{CloudDownloadOutlined,HistoryOutlined}from"@ant-design/icons";import{ImportModal}from"./components/import-modal";import{ImportHistoryDialog}from"./components/import-history-dialog";import{ImportContextProvider,useImportContextOptional}from"./context/import-context";import{useLocale}from"../locale";var ImportsInner=memo(function(param){var primaryText=param.primaryText,secondaryText=param.secondaryText,primaryButtonProps=param.primaryButtonProps,secondaryButtonProps=param.secondaryButtonProps,modalProps=param.modalProps,onModalClose=param.onModalClose,taskKey=param.taskKey,importProgressStepRender=param.importProgressStepRender,onDownloadTemplate=param.onDownloadTemplate,onFileSelect=param.onFileSelect,queryProgress=param.queryProgress,cancelImport=param.cancelImport,tips=param.tips,uploadStepConfig=param.uploadStepConfig;var messages=useLocale().messages;var _useState=_sliced_to_array(useState(false),2),isModalOpen=_useState[0],setIsModalOpen=_useState[1];var _useState1=_sliced_to_array(useState(false),2),isHistoryDialogOpen=_useState1[0],setIsHistoryDialogOpen=_useState1[1];var context=useImportContextOptional();var finalPrimaryText=primaryText!==null&&primaryText!==void 0?primaryText:messages.imports.primaryText;var finalSecondaryText=secondaryText!==null&&secondaryText!==void 0?secondaryText:messages.imports.secondaryText;var handleCloseModal=function(){setIsModalOpen(false);onModalClose===null||onModalClose===void 0?void 0:onModalClose()};var handleOpenHistoryDialog=function(){setIsHistoryDialogOpen(true)};var handleCloseHistoryDialog=function(){setIsHistoryDialogOpen(false)};var _ref;var finalTaskKey=(_ref=taskKey!==null&&taskKey!==void 0?taskKey:context===null||context===void 0?void 0:context.taskKey)!==null&&_ref!==void 0?_ref:"id";var finalQueryProgress=queryProgress!==null&&queryProgress!==void 0?queryProgress:context===null||context===void 0?void 0:context.queryProgress;var finalCancelImport=cancelImport!==null&&cancelImport!==void 0?cancelImport:context===null||context===void 0?void 0:context.cancelImport;var finalImportProgressStepRender=importProgressStepRender!==null&&importProgressStepRender!==void 0?importProgressStepRender:context===null||context===void 0?void 0:context.importProgressStepRender;var finalOnDownloadTemplate=onDownloadTemplate!==null&&onDownloadTemplate!==void 0?onDownloadTemplate:context===null||context===void 0?void 0:context.onDownloadTemplate;var finalOnFileSelect=onFileSelect!==null&&onFileSelect!==void 0?onFileSelect:context===null||context===void 0?void 0:context.onFileSelect;var finalTips=tips!==null&&tips!==void 0?tips:context===null||context===void 0?void 0:context.tips;var finalUploadStepConfig=uploadStepConfig!==null&&uploadStepConfig!==void 0?uploadStepConfig:context===null||context===void 0?void 0:context.uploadStepConfig;var finalPollInterval=context===null||context===void 0?void 0:context.pollInterval;var finalQueryImportRecords=context===null||context===void 0?void 0:context.queryImportRecords;var finalImportRecordColumns=context===null||context===void 0?void 0:context.importRecordColumns;var finalImportRecordTableProps=context===null||context===void 0?void 0:context.importRecordTableProps;return React.createElement(Flex,{justify:"start",align:"center",gap:10},React.createElement(Button,_object_spread_props(_object_spread({key:"import-opt",type:"primary",icon:React.createElement(CloudDownloadOutlined,null)},primaryButtonProps),{onClick:function(){setIsModalOpen(true)}}),finalPrimaryText),React.createElement(Button,_object_spread_props(_object_spread({key:"import-record",icon:React.createElement(HistoryOutlined,null)},secondaryButtonProps),{onClick:handleOpenHistoryDialog}),finalSecondaryText),React.createElement(ImportModal,{title:finalPrimaryText,open:isModalOpen,onClose:handleCloseModal,modalProps:modalProps,taskKey:finalTaskKey,queryProgress:finalQueryProgress,cancelImport:finalCancelImport,importProgressStepRender:finalImportProgressStepRender,onDownloadTemplate:finalOnDownloadTemplate,onFileSelect:finalOnFileSelect,tips:finalTips,uploadStepConfig:finalUploadStepConfig,pollInterval:finalPollInterval}),React.createElement(ImportHistoryDialog,{open:isHistoryDialogOpen,onOpenChange:handleCloseHistoryDialog,columns:finalImportRecordColumns,queryImportRecords:finalQueryImportRecords,tableProps:finalImportRecordTableProps}))});ImportsInner.displayName="ImportsInner";export var Imports=function(props){var context=useImportContextOptional();if(context){return React.createElement(ImportsInner,props)}var contextValue=useMemo(function(){var _props_taskKey;return{taskKey:(_props_taskKey=props.taskKey)!==null&&_props_taskKey!==void 0?_props_taskKey:"id",queryProgress:props.queryProgress,cancelImport:props.cancelImport,importProgressStepRender:props.importProgressStepRender,onDownloadTemplate:props.onDownloadTemplate,onFileSelect:props.onFileSelect,tips:props.tips,uploadStepConfig:props.uploadStepConfig,pollInterval:props.pollInterval}},[props.taskKey,props.queryProgress,props.cancelImport,props.importProgressStepRender,props.onDownloadTemplate,props.onFileSelect,props.tips,props.uploadStepConfig,props.pollInterval]);return React.createElement(ImportContextProvider,{value:contextValue},React.createElement(ImportsInner,props))};
@@ -30,6 +30,8 @@ export interface UploadProgressEvent {
30
30
  export interface UploadConfig {
31
31
  headers?: Record<string, string>;
32
32
  onUploadProgress?: (event: UploadProgressEvent) => void;
33
+ /** 取消上传的 AbortController */
34
+ abortController?: AbortController;
33
35
  }
34
36
  /**
35
37
  * 上传结果
@@ -72,6 +74,10 @@ export interface ImportProgressStep {
72
74
  * 查询导入进度的函数类型
73
75
  */
74
76
  export type QueryImportProgress = (importId: string, uploadResult?: UploadResult) => Promise<ImportProgress>;
77
+ /**
78
+ * 取消导入的函数类型
79
+ */
80
+ export type CancelImport = (importId: string, uploadResult?: UploadResult) => Promise<void>;
75
81
  export type ImportProgressStepRender = (progress: ImportProgress, uploadResult: UploadResult) => ReactNode;
76
82
  /**
77
83
  * 上传步骤配置
@@ -89,6 +95,12 @@ export interface UploadStepConfig {
89
95
  uploadDescription?: string;
90
96
  /** 第二步:上传文件的按钮文字 */
91
97
  uploadButtonText?: string;
98
+ /** 接受的文件类型,默认为 ".csv,.xlsx,.xls" */
99
+ accept?: string;
100
+ /** 拖拽提示文字 */
101
+ dragText?: string;
102
+ /** 拖拽图标,支持外部传递自定义图标 */
103
+ dragIcon?: ReactNode;
92
104
  }
93
105
  /**
94
106
  * 查询导入记录列表的函数类型
@@ -4,34 +4,34 @@ type TokenType = ReturnType<typeof theme.useToken>['token'];
4
4
  /**
5
5
  * 公共样式工具函数
6
6
  */
7
- export declare const getContainerStyle: (compact?: boolean) => CSSProperties;
8
- export declare const getCenterContentStyle: (compact?: boolean) => CSSProperties;
7
+ export declare const getContainerStyle: (token: TokenType, compact?: boolean) => CSSProperties;
8
+ export declare const getCenterContentStyle: (token: TokenType, compact?: boolean) => CSSProperties;
9
9
  export declare const getTextCenterStyle: () => CSSProperties;
10
- export declare const getButtonGroupStyle: () => CSSProperties;
10
+ export declare const getButtonGroupStyle: (token: TokenType) => CSSProperties;
11
11
  export declare const getCardBodyStyle: (token: TokenType) => CSSProperties;
12
12
  export declare const getTipCardStyle: (token: TokenType) => CSSProperties;
13
- export declare const getTipTitleStyle: () => CSSProperties;
14
- export declare const getTipListStyle: () => CSSProperties;
15
- export declare const getTipItemStyle: () => CSSProperties;
13
+ export declare const getTipTitleStyle: (token: TokenType) => CSSProperties;
14
+ export declare const getTipListStyle: (token: TokenType) => CSSProperties;
15
+ export declare const getTipItemStyle: (token: TokenType) => CSSProperties;
16
16
  export declare const getHiddenInputStyle: () => CSSProperties;
17
- export declare const getDescriptionStyle: () => CSSProperties;
17
+ export declare const getDescriptionStyle: (token: TokenType) => CSSProperties;
18
18
  export declare const getTitleStyle: (token: TokenType, size?: "small" | "medium" | "large") => CSSProperties;
19
19
  export declare const getSubtitleStyle: (token: TokenType) => CSSProperties;
20
20
  export declare const getProgressTextStyle: (token: TokenType) => CSSProperties;
21
21
  export declare const getAlertStyle: (token: TokenType) => CSSProperties;
22
22
  export declare const getSummaryCardStyle: (token: TokenType) => CSSProperties;
23
23
  export declare const getSummaryTitleStyle: (token: TokenType) => CSSProperties;
24
- export declare const getSummaryItemStyle: () => CSSProperties;
24
+ export declare const getSummaryItemStyle: (token: TokenType) => CSSProperties;
25
25
  export declare const getIconContainerStyle: () => CSSProperties;
26
- export declare const getIconSmallStyle: () => CSSProperties;
26
+ export declare const getIconSmallStyle: (token: TokenType) => CSSProperties;
27
27
  /**
28
28
  * 统计卡片样式
29
29
  */
30
- export declare const getStatCardStyle: () => CSSProperties;
30
+ export declare const getStatCardStyle: (token: TokenType) => CSSProperties;
31
31
  /**
32
32
  * 统计数字样式
33
33
  */
34
- export declare const getStatNumberStyle: () => CSSProperties;
34
+ export declare const getStatNumberStyle: (token: TokenType) => CSSProperties;
35
35
  /**
36
36
  * 统计标签样式
37
37
  */
@@ -39,5 +39,5 @@ export declare const getStatLabelStyle: (token: TokenType) => CSSProperties;
39
39
  /**
40
40
  * 行号显示样式(等宽字体)
41
41
  */
42
- export declare const getRowNumberStyle: () => CSSProperties;
42
+ export declare const getRowNumberStyle: (token: TokenType) => CSSProperties;
43
43
  export {};
@@ -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}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}export var getContainerStyle=function(){var compact=arguments.length>0&&arguments[0]!==void 0?arguments[0]:false;return{display:"flex",flexDirection:"column",gap:24,padding:compact?"16px 0":"24px 0"}};export var getCenterContentStyle=function(){var compact=arguments.length>0&&arguments[0]!==void 0?arguments[0]:false;return{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:compact?12:16}};export var getTextCenterStyle=function(){return{textAlign:"center"}};export var getButtonGroupStyle=function(){return{display:"flex",gap:12}};export var getCardBodyStyle=function(token){return{background:token.colorFillTertiary}};export var getTipCardStyle=function(token){return{borderRadius:8,background:token.colorInfoBg,padding:16,fontSize:12,color:token.colorInfoText}};export var getTipTitleStyle=function(){return{margin:"0 0 8px 0",fontWeight:500}};export var getTipListStyle=function(){return{margin:0,paddingLeft:20,listStyle:"disc"}};export var getTipItemStyle=function(){return{marginBottom:4}};export var getHiddenInputStyle=function(){return{display:"none"}};export var getDescriptionStyle=function(){return{fontSize:12,display:"block",marginBottom:16}};export var getTitleStyle=function(token){var size=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"medium";var sizes={small:{fontSize:16,fontWeight:500},medium:{fontSize:20,fontWeight:600},large:{fontSize:24,fontWeight:700}};return _object_spread_props(_object_spread({},sizes[size]),{color:token.colorText,margin:0})};export var getSubtitleStyle=function(token){return{fontSize:12,color:token.colorTextSecondary,marginTop:4}};export var getProgressTextStyle=function(token){return{fontSize:12,color:token.colorTextSecondary,marginTop:4}};export var getAlertStyle=function(token){return{borderRadius:8,background:token.colorWarningBg,border:"1px solid ".concat(token.colorWarningBorder),padding:16}};export var getSummaryCardStyle=function(token){return{borderRadius:8,background:token.colorFillTertiary,border:"1px solid ".concat(token.colorBorder),padding:16}};export var getSummaryTitleStyle=function(token){return{fontSize:14,fontWeight:500,color:token.colorText,marginBottom:12}};export var getSummaryItemStyle=function(){return{display:"flex",justifyContent:"space-between",fontSize:12,marginBottom:8}};export var getIconContainerStyle=function(){return{position:"relative"}};export var getIconSmallStyle=function(){return{position:"absolute",right:-8,top:-8}};export var getStatCardStyle=function(){return{borderRadius:8,padding:16,textAlign:"center"}};export var getStatNumberStyle=function(){return{fontSize:24,fontWeight:700,margin:0}};export var getStatLabelStyle=function(token){return{fontSize:12,color:token.colorTextSecondary,marginTop:8}};export var getRowNumberStyle=function(){return{fontFamily:"monospace",fontSize:12}};
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}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}export var getContainerStyle=function(token){var compact=arguments.length>1&&arguments[1]!==void 0?arguments[1]:false;return{display:"flex",flexDirection:"column",gap:token.marginMD,padding:compact?"".concat(token.paddingSM,"px 0"):"".concat(token.padding,"px 0")}};export var getCenterContentStyle=function(token){var compact=arguments.length>1&&arguments[1]!==void 0?arguments[1]:false;return{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:compact?token.marginSM:token.margin}};export var getTextCenterStyle=function(){return{textAlign:"center"}};export var getButtonGroupStyle=function(token){return{display:"flex",gap:token.marginSM,justifyContent:"center"}};export var getCardBodyStyle=function(token){return{background:token.colorFillTertiary}};export var getTipCardStyle=function(token){return{borderRadius:token.borderRadius,background:token.colorInfoBg,padding:token.padding,fontSize:token.fontSizeSM,color:token.colorInfoText}};export var getTipTitleStyle=function(token){return{margin:"0 0 ".concat(token.marginXS,"px 0"),fontWeight:token.fontWeightStrong}};export var getTipListStyle=function(token){return{margin:0,paddingLeft:token.paddingLG,listStyle:"disc"}};export var getTipItemStyle=function(token){return{marginBottom:token.marginXXS}};export var getHiddenInputStyle=function(){return{display:"none"}};export var getDescriptionStyle=function(token){return{fontSize:token.fontSizeSM,display:"block",marginBottom:token.marginSM}};export var getTitleStyle=function(token){var size=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"medium";var sizes={small:{fontSize:token.fontSizeLG,fontWeight:token.fontWeightStrong},medium:{fontSize:token.fontSizeXL,fontWeight:token.fontWeightStrong},large:{fontSize:token.fontSizeXL*1.2,fontWeight:token.fontWeightStrong}};return _object_spread_props(_object_spread({},sizes[size]),{color:token.colorText,margin:0})};export var getSubtitleStyle=function(token){return{fontSize:token.fontSizeSM,color:token.colorTextSecondary,marginTop:token.marginXXS}};export var getProgressTextStyle=function(token){return{fontSize:token.fontSizeSM,color:token.colorTextSecondary,marginTop:token.marginXXS}};export var getAlertStyle=function(token){return{borderRadius:token.borderRadius,background:token.colorWarningBg,border:"1px solid ".concat(token.colorWarningBorder),padding:token.padding}};export var getSummaryCardStyle=function(token){return{borderRadius:token.borderRadius,background:token.colorFillTertiary,border:"1px solid ".concat(token.colorBorder),padding:token.padding}};export var getSummaryTitleStyle=function(token){return{fontSize:token.fontSize,fontWeight:token.fontWeightStrong,color:token.colorText,marginBottom:token.marginSM,marginTop:0}};export var getSummaryItemStyle=function(token){return{display:"flex",justifyContent:"space-between",fontSize:token.fontSizeSM,marginBottom:token.marginXS}};export var getIconContainerStyle=function(){return{position:"relative"}};export var getIconSmallStyle=function(token){return{position:"absolute",right:-token.marginXS,top:-token.marginXS}};export var getStatCardStyle=function(token){return{borderRadius:token.borderRadius,padding:token.padding,textAlign:"center"}};export var getStatNumberStyle=function(token){return{fontSize:token.fontSizeXL*1.2,fontWeight:token.fontWeightStrong,margin:0}};export var getStatLabelStyle=function(token){return{fontSize:token.fontSizeSM,color:token.colorTextSecondary,marginTop:token.marginXS}};export var getRowNumberStyle=function(token){return{fontFamily:"monospace",fontSize:token.fontSizeSM}};
@@ -1 +1 @@
1
- var local={imports:{primaryText:"Import",secondaryText:"Import History",stepTitles:{upload:"Import Data",uploading:"Upload File",importing:"Import Progress",result:"Import Result"},uploadStep:{defaultTip:"Please ensure the data format matches the template",downloadTitle:"Step 1: Download Template",downloadDescription:"Download the standard template file and fill in the data according to the format",downloadButtonText:"Download Import Template",uploadTitle:"Step 2: Upload File",uploadDescription:"Select the filled data file to upload (supports CSV, Excel formats)",uploadButtonText:"Select File to Upload",tipsTitle:"Tips:"},uploadProgress:{title:"Uploading file...",progressText:"Upload progress {percent}%",alertMessage:"Do not refresh or close the page",alertDescription:"Closing the page during file upload will cause the upload to fail, please wait patiently"},importProgress:{title:"Importing...",closeWindow:"Close Window",viewHistory:"View Import History",queryProgressFailed:"Failed to query import progress",queryProgressNotConfigured:"Import progress query interface not configured",importCompleted:"Import completed",importFailed:"Import failed"},importResult:{importSuccess:"Import successful!",importCompleted:"Import completed",importFailed:"Import failed",importIdLabel:"Import ID: {id}",total:"Total",success:"Success",failed:"Failed",summaryTitle:"Import Summary",errorTitle:"Error Information",successRate:"Success Rate",status:"Status",failedAlert:"{count} records failed to import, please check details in import history",close:"Close",viewHistory:"View Import History"},history:{title:"Import History",columns:{importId:"Import ID",status:"Status",total:"Total",success:"Success",failed:"Failed",importTime:"Import Time",operation:"Operation"},statusEnum:{completed:"Completed",failed:"Failed",processing:"Processing",cancelled:"Cancelled"},view:"View",queryFailed:"Failed to query import records:"},detail:{title:"Import Details",labels:{importId:"Import ID",currentStatus:"Current Status",importTime:"Import Time"},status:{completed:"Completed",failed:"Failed",processing:"Processing"},stats:{total:"Total",success:"Success",failed:"Failed"},errorColumns:{rowNumber:"Row Number",errorType:"Error Type",errorMessage:"Error Message",errorId:"Error ID"},rowNumberText:"Row {rowNumber}",failedDataTitle:"Failed Data Details",successAlert:"All data imported successfully, no failed records",failedAlert:{message:"Import task failed",description:"Please check if the data format is correct, or contact technical support"},queryFailed:"Failed to query import error records:"},errors:{uploadMethodNotSet:"File upload method not set",uploadFailed:"Upload failed: Import ID not returned",uploadError:"File upload failed, please try again"}},tabSelector:{placeholder:"Click to select items...",confirmSelect:"Confirm Selection ({count})",searchPlaceholder:"Please enter keywords"},beyond:{more:"More"},list:{emptyText:"No data",totalText:"Total {total} items"}};export default local;
1
+ var local={imports:{primaryText:"Import",secondaryText:"Import History",stepTitles:{upload:"Import Data",uploading:"Upload File",importing:"Import Progress",result:"Import Result"},uploadStep:{defaultTip:"Please ensure the data format matches the template",downloadTitle:"Step 1: Download Template",downloadDescription:"Download the standard template file and fill in the data according to the format",downloadButtonText:"Download Import Template",uploadTitle:"Step 2: Upload File",uploadDescription:"Select the filled data file to upload (supports CSV, Excel formats)",uploadButtonText:"Select File to Upload",dragText:"Drag file here or click to upload",tipsTitle:"Tips:"},uploadProgress:{title:"Uploading file...",progressText:"Upload progress {percent}%",alertMessage:"Do not refresh or close the page",alertDescription:"Closing the page during file upload will cause the upload to fail, please wait patiently"},importProgress:{title:"Importing...",closeWindow:"Close Window",viewHistory:"View Import History",queryProgressFailed:"Failed to query import progress",queryProgressNotConfigured:"Import progress query interface not configured",importCompleted:"Import completed",importFailed:"Import failed"},importResult:{importSuccess:"Import successful!",importCompleted:"Import completed",importFailed:"Import failed",importIdLabel:"Import ID: {id}",total:"Total",success:"Success",failed:"Failed",summaryTitle:"Import Summary",errorTitle:"Error Information",successRate:"Success Rate",status:"Status",failedAlert:"{count} records failed to import, please check details in import history",close:"Close",viewHistory:"View Import History"},history:{title:"Import History",columns:{importId:"Import ID",status:"Status",total:"Total",success:"Success",failed:"Failed",importTime:"Import Time",operation:"Operation"},statusEnum:{completed:"Completed",failed:"Failed",processing:"Processing",cancelled:"Cancelled"},view:"View",queryFailed:"Failed to query import records:"},detail:{title:"Import Details",labels:{importId:"Import ID",currentStatus:"Current Status",importTime:"Import Time"},status:{completed:"Completed",failed:"Failed",processing:"Processing"},stats:{total:"Total",success:"Success",failed:"Failed"},errorColumns:{rowNumber:"Row Number",errorType:"Error Type",errorMessage:"Error Message",errorId:"Error ID"},rowNumberText:"Row {rowNumber}",failedDataTitle:"Failed Data Details",successAlert:"All data imported successfully, no failed records",failedAlert:{message:"Import task failed",description:"Please check if the data format is correct, or contact technical support"},queryFailed:"Failed to query import error records:"},errors:{uploadMethodNotSet:"File upload method not set",uploadFailed:"Upload failed: Import ID not returned",uploadError:"File upload failed, please try again"}},tabSelector:{placeholder:"Click to select items...",confirmSelect:"Confirm Selection ({count})",searchPlaceholder:"Please enter keywords"},beyond:{more:"More"},list:{emptyText:"No data",totalText:"Total {total} items"}};export default local;
@@ -1 +1 @@
1
- var local={switch:{activeText:"启用",inactiveText:"禁用"},form:{text:"请输入",select:"请选择",start:"开始",ended:"结束",reset:"重置",submit:"提交",query:"查询"},table:{createBtnText:"新增",batchRemoveBtnText:"批量删除",batchRemoveModalTitle:"警告",batchRemoveModalContent:"即将删除{count}项数据,删除后无法恢复,是否继续?",createTitle:"新增",updateTitle:"更新",viewTitle:"详情",operateColumnTitle:"操作",viewBtnText:"查看",updateBtnText:"编辑",removeBtnText:"删除",moreBtnText:"更多",removeConfirm:"确定要删除这项吗?",removeTip:"警告?",backText:"返回",pagePt:"请输入添加项",pageAddText:"保存",createSubmitText:"创建",updateSubmitText:"保存",submitText:"提交",cancelText:"取消",closeText:"关闭"},upload:{btnText:"上传",limitSize:"文件大小不能超过 {limit}MB!",uploadFail:"上传失败"},adminTransfer:{unSelectText:"取消选择",selectText:"选择",selectedOption:"已选{length}项",clear:"清空",removeBtnText:"删除"},treeTable:{triggerText:"选择",selectedOption:"已选{length}项",clear:"清空",removeBtnText:"删除",waitSelectListText:"待选列表",selectedListText:"已选列表",searchTextPt:"请输入关键字",selectedText:"已选",unselectedText:"未选",treeTitle:"树型列表"},exports:{text:"导出",progressResText:"正在导出",successResText:"导出成功",errorResText:"导出失败",cancelBtnText:"取消",exportTitle:"导出",retryText:"重试"},treePanel:{selectedText:"已选",clearText:"清空",rootText:"全部",limitText:"最多选择${maxCount}项。",searchPlaceholder:"请输入关键字"},imports:{primaryText:"导入",secondaryText:"导入记录",stepTitles:{upload:"导入数据",uploading:"上传文件",importing:"导入进度",result:"导入结果"},uploadStep:{defaultTip:"请确保数据格式与模板一致",downloadTitle:"第一步:下载模板",downloadDescription:"下载标准模板文件,按照格式填写数据",downloadButtonText:"下载导入模板",uploadTitle:"第二步:上传文件",uploadDescription:"选择填写好的数据文件进行上传(支持 CSV、Excel 格式)",uploadButtonText:"选择文件上传",tipsTitle:"温馨提示:"},uploadProgress:{title:"正在上传文件...",progressText:"上传进度 {percent}%",alertMessage:"请勿刷新或关闭页面",alertDescription:"文件上传过程中关闭页面会导致上传失败,请耐心等待"},importProgress:{title:"正在导入中...",closeWindow:"关闭窗口",viewHistory:"查看导入记录",queryProgressFailed:"查询导入进度失败",queryProgressNotConfigured:"查询导入进度接口未配置",importCompleted:"导入完成",importFailed:"导入失败"},importResult:{importSuccess:"导入成功!",importCompleted:"导入完成",importFailed:"导入失败",importIdLabel:"导入 ID: {id}",total:"总计",success:"成功",failed:"失败",summaryTitle:"导入摘要",errorTitle:"错误信息",successRate:"成功率",status:"状态",failedAlert:"{count} 条数据导入失败,请在导入记录中查看详情",close:"关闭",viewHistory:"查看导入记录"},history:{title:"导入记录",columns:{importId:"导入 ID",status:"状态",total:"总计",success:"成功",failed:"失败",importTime:"导入时间",operation:"操作"},statusEnum:{completed:"已完成",failed:"失败",processing:"处理中",cancelled:"已取消"},view:"查看",queryFailed:"查询导入记录失败:"},detail:{title:"导入详情",labels:{importId:"导入 ID",currentStatus:"当前状态",importTime:"导入时间"},status:{completed:"已完成",failed:"失败",processing:"处理中"},stats:{total:"总计",success:"成功",failed:"失败"},errorColumns:{rowNumber:"行号",errorType:"错误类型",errorMessage:"错误信息",errorId:"错误 ID"},rowNumberText:"第 {rowNumber} 行",failedDataTitle:"失败数据详情",successAlert:"所有数据已成功导入,无失败记录",failedAlert:{message:"导入任务失败",description:"请检查数据格式是否正确,或联系技术支持"},queryFailed:"查询导入失败记录失败:"},errors:{uploadMethodNotSet:"文件上传方法未设置",uploadFailed:"上传失败:未返回导入 ID",uploadError:"文件上传失败,请重试"}},tabSelector:{placeholder:"点击选择项目...",confirmSelect:"确认选择 ({count})",searchPlaceholder:"请输入关键字"},beyond:{more:"更多"},list:{emptyText:"暂无数据",totalText:"共 {total} 条"}};export default local;
1
+ var local={switch:{activeText:"启用",inactiveText:"禁用"},form:{text:"请输入",select:"请选择",start:"开始",ended:"结束",reset:"重置",submit:"提交",query:"查询"},table:{createBtnText:"新增",batchRemoveBtnText:"批量删除",batchRemoveModalTitle:"警告",batchRemoveModalContent:"即将删除{count}项数据,删除后无法恢复,是否继续?",createTitle:"新增",updateTitle:"更新",viewTitle:"详情",operateColumnTitle:"操作",viewBtnText:"查看",updateBtnText:"编辑",removeBtnText:"删除",moreBtnText:"更多",removeConfirm:"确定要删除这项吗?",removeTip:"警告?",backText:"返回",pagePt:"请输入添加项",pageAddText:"保存",createSubmitText:"创建",updateSubmitText:"保存",submitText:"提交",cancelText:"取消",closeText:"关闭"},upload:{btnText:"上传",limitSize:"文件大小不能超过 {limit}MB!",uploadFail:"上传失败"},adminTransfer:{unSelectText:"取消选择",selectText:"选择",selectedOption:"已选{length}项",clear:"清空",removeBtnText:"删除"},treeTable:{triggerText:"选择",selectedOption:"已选{length}项",clear:"清空",removeBtnText:"删除",waitSelectListText:"待选列表",selectedListText:"已选列表",searchTextPt:"请输入关键字",selectedText:"已选",unselectedText:"未选",treeTitle:"树型列表"},exports:{text:"导出",progressResText:"正在导出",successResText:"导出成功",errorResText:"导出失败",cancelBtnText:"取消",exportTitle:"导出",retryText:"重试"},treePanel:{selectedText:"已选",clearText:"清空",rootText:"全部",limitText:"最多选择${maxCount}项。",searchPlaceholder:"请输入关键字"},imports:{primaryText:"导入",secondaryText:"导入记录",stepTitles:{upload:"导入数据",uploading:"上传文件",importing:"导入进度",result:"导入结果"},uploadStep:{defaultTip:"请确保数据格式与模板一致",downloadTitle:"第一步:下载模板",downloadDescription:"下载标准模板文件,按照格式填写数据",downloadButtonText:"下载导入模板",uploadTitle:"第二步:上传文件",uploadDescription:"选择填写好的数据文件进行上传(支持 CSV、Excel 格式)",uploadButtonText:"选择文件上传",dragText:"拖拽文件到此处,或点击上传",tipsTitle:"温馨提示:"},uploadProgress:{title:"正在上传文件...",progressText:"上传进度 {percent}%",alertMessage:"请勿刷新或关闭页面",alertDescription:"文件上传过程中关闭页面会导致上传失败,请耐心等待"},importProgress:{title:"正在导入中...",closeWindow:"关闭窗口",viewHistory:"查看导入记录",queryProgressFailed:"查询导入进度失败",queryProgressNotConfigured:"查询导入进度接口未配置",importCompleted:"导入完成",importFailed:"导入失败"},importResult:{importSuccess:"导入成功!",importCompleted:"导入完成",importFailed:"导入失败",importIdLabel:"导入 ID: {id}",total:"总计",success:"成功",failed:"失败",summaryTitle:"导入摘要",errorTitle:"错误信息",successRate:"成功率",status:"状态",failedAlert:"{count} 条数据导入失败,请在导入记录中查看详情",close:"关闭",viewHistory:"查看导入记录"},history:{title:"导入记录",columns:{importId:"导入 ID",status:"状态",total:"总计",success:"成功",failed:"失败",importTime:"导入时间",operation:"操作"},statusEnum:{completed:"已完成",failed:"失败",processing:"处理中",cancelled:"已取消"},view:"查看",queryFailed:"查询导入记录失败:"},detail:{title:"导入详情",labels:{importId:"导入 ID",currentStatus:"当前状态",importTime:"导入时间"},status:{completed:"已完成",failed:"失败",processing:"处理中"},stats:{total:"总计",success:"成功",failed:"失败"},errorColumns:{rowNumber:"行号",errorType:"错误类型",errorMessage:"错误信息",errorId:"错误 ID"},rowNumberText:"第 {rowNumber} 行",failedDataTitle:"失败数据详情",successAlert:"所有数据已成功导入,无失败记录",failedAlert:{message:"导入任务失败",description:"请检查数据格式是否正确,或联系技术支持"},queryFailed:"查询导入失败记录失败:"},errors:{uploadMethodNotSet:"文件上传方法未设置",uploadFailed:"上传失败:未返回导入 ID",uploadError:"文件上传失败,请重试"}},tabSelector:{placeholder:"点击选择项目...",confirmSelect:"确认选择 ({count})",searchPlaceholder:"请输入关键字"},beyond:{more:"更多"},list:{emptyText:"暂无数据",totalText:"共 {total} 条"}};export default local;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "villianjs-pro",
3
- "version": "1.0.19",
3
+ "version": "1.0.21",
4
4
  "type": "module",
5
5
  "module": "dist/index.js",
6
6
  "types": "dist/index.d.ts",