villianjs-pro 1.0.6 → 1.0.8
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 +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 React from"react";import{Flex}from"antd";import classNames from"classnames";import ProTableSearch from"./search";import{ProTableList}from"./list/index";export var Container=function(props){var prefixCls=props.prefixCls,cssVarCls=props.cssVarCls,className=props.className,style=props.style,searchConfig=props.searchConfig,searchColumns=props.searchColumns,columns=props.columns,headerTitle=props.headerTitle,rowSelection=props.rowSelection,pagination=props.pagination,tableProps=props.tableProps,actionRef=props.actionRef,wrapCSS=props.wrapCSS,gridCardRender=props.gridCardRender,gridColumns=props.gridColumns,gridCardFieldsPerRow=props.gridCardFieldsPerRow;return wrapCSS(React.createElement(Flex,{vertical:true,gap:8,className:classNames(prefixCls,cssVarCls,className),style:style},
|
|
1
|
+
function _array_like_to_array(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i<len;i++)arr2[i]=arr[i];return arr2}function _array_with_holes(arr){if(Array.isArray(arr))return arr}function _array_without_holes(arr){if(Array.isArray(arr))return _array_like_to_array(arr)}function asyncGeneratorStep(gen,resolve,reject,_next,_throw,key,arg){try{var info=gen[key](arg);var value=info.value}catch(error){reject(error);return}if(info.done){resolve(value)}else{Promise.resolve(value).then(_next,_throw)}}function _async_to_generator(fn){return function(){var self=this,args=arguments;return new Promise(function(resolve,reject){var gen=fn.apply(self,args);function _next(value){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"next",value)}function _throw(err){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"throw",err)}_next(undefined)})}}function _define_property(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}function _iterable_to_array(iter){if(typeof Symbol!=="undefined"&&iter[Symbol.iterator]!=null||iter["@@iterator"]!=null)return Array.from(iter)}function _iterable_to_array_limit(arr,i){var _i=arr==null?null:typeof Symbol!=="undefined"&&arr[Symbol.iterator]||arr["@@iterator"];if(_i==null)return;var _arr=[];var _n=true;var _d=false;var _s,_e;try{for(_i=_i.call(arr);!(_n=(_s=_i.next()).done);_n=true){_arr.push(_s.value);if(i&&_arr.length===i)break}}catch(err){_d=true;_e=err}finally{try{if(!_n&&_i["return"]!=null)_i["return"]()}finally{if(_d)throw _e}}return _arr}function _non_iterable_rest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _non_iterable_spread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _object_spread(target){for(var i=1;i<arguments.length;i++){var source=arguments[i]!=null?arguments[i]:{};var ownKeys=Object.keys(source);if(typeof Object.getOwnPropertySymbols==="function"){ownKeys=ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym){return Object.getOwnPropertyDescriptor(source,sym).enumerable}))}ownKeys.forEach(function(key){_define_property(target,key,source[key])})}return target}function ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);if(enumerableOnly){symbols=symbols.filter(function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable})}keys.push.apply(keys,symbols)}return keys}function _object_spread_props(target,source){source=source!=null?source:{};if(Object.getOwnPropertyDescriptors){Object.defineProperties(target,Object.getOwnPropertyDescriptors(source))}else{ownKeys(Object(source)).forEach(function(key){Object.defineProperty(target,key,Object.getOwnPropertyDescriptor(source,key))})}return target}function _sliced_to_array(arr,i){return _array_with_holes(arr)||_iterable_to_array_limit(arr,i)||_unsupported_iterable_to_array(arr,i)||_non_iterable_rest()}function _to_consumable_array(arr){return _array_without_holes(arr)||_iterable_to_array(arr)||_unsupported_iterable_to_array(arr)||_non_iterable_spread()}function _unsupported_iterable_to_array(o,minLen){if(!o)return;if(typeof o==="string")return _array_like_to_array(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(n);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _array_like_to_array(o,minLen)}function _ts_generator(thisArg,body){var f,y,t,_={label:0,sent:function(){if(t[0]&1)throw t[1];return t[1]},trys:[],ops:[]},g=Object.create((typeof Iterator==="function"?Iterator:Object).prototype);return g.next=verb(0),g["throw"]=verb(1),g["return"]=verb(2),typeof Symbol==="function"&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return step([n,v])}}function step(op){if(f)throw new TypeError("Generator is already executing.");while(g&&(g=0,op[0]&&(_=0)),_)try{if(f=1,y&&(t=op[0]&2?y["return"]:op[0]?y["throw"]||((t=y["return"])&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;if(y=0,t)op=[op[0]&2,t.value];switch(op[0]){case 0:case 1:t=op;break;case 4:_.label++;return{value:op[1],done:false};case 5:_.label++;y=op[1];op=[0];continue;case 7:op=_.ops.pop();_.trys.pop();continue;default:if(!(t=_.trys,t=t.length>0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(op[0]===6&&_.label<t[1]){_.label=t[1];t=op;break}if(t&&_.label<t[2]){_.label=t[2];_.ops.push(op);break}if(t[2])_.ops.pop();_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e];y=0}finally{f=t=0}if(op[0]&5)throw op[1];return{value:op[0]?op[1]:void 0,done:true}}}import React from"react";import{Flex}from"antd";import classNames from"classnames";import ProTableSearch from"./search";import{ProTableList}from"./list/index";export var Container=function(props){var prefixCls=props.prefixCls,cssVarCls=props.cssVarCls,className=props.className,style=props.style,searchConfig=props.searchConfig,searchColumns=props.searchColumns,columns=props.columns,headerTitle=props.headerTitle,rowSelection=props.rowSelection,pagination=props.pagination,tableProps=props.tableProps,actionRef=props.actionRef,wrapCSS=props.wrapCSS,gridCardRender=props.gridCardRender,gridColumns=props.gridColumns,gridCardFieldsPerRow=props.gridCardFieldsPerRow;var _React_useState=_sliced_to_array(React.useState(function(){return(searchConfig===null||searchConfig===void 0?void 0:searchConfig.initialValues)||{}}),2),searchFormValues=_React_useState[0],setSearchFormValues=_React_useState[1];var handleSearchFinish=React.useCallback(function(values){for(var _len=arguments.length,args=new Array(_len>1?_len-1:0),_key=1;_key<_len;_key++){args[_key-1]=arguments[_key]}return _async_to_generator(function(){var _actionRef_current_setPageInfo,_actionRef_current,_searchConfig;return _ts_generator(this,function(_state){switch(_state.label){case 0:setSearchFormValues(values||{});actionRef===null||actionRef===void 0?void 0:(_actionRef_current=actionRef.current)===null||_actionRef_current===void 0?void 0:(_actionRef_current_setPageInfo=_actionRef_current.setPageInfo)===null||_actionRef_current_setPageInfo===void 0?void 0:_actionRef_current_setPageInfo.call(_actionRef_current,{current:1});if(!(searchConfig===null||searchConfig===void 0?void 0:searchConfig.onFinish))return[3,2];return[4,(_searchConfig=searchConfig).onFinish.apply(_searchConfig,[values].concat(_to_consumable_array(args)))];case 1:_state.sent();_state.label=2;case 2:return[2]}})})()},[searchConfig,actionRef]);var handleSearchReset=React.useCallback(function(){for(var _len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++){args[_key]=arguments[_key]}return _async_to_generator(function(){var _actionRef_current_reset,_actionRef_current,_searchConfig;return _ts_generator(this,function(_state){switch(_state.label){case 0:setSearchFormValues({});if(!(searchConfig===null||searchConfig===void 0?void 0:searchConfig.onReset))return[3,2];return[4,(_searchConfig=searchConfig).onReset.apply(_searchConfig,_to_consumable_array(args))];case 1:_state.sent();_state.label=2;case 2:actionRef===null||actionRef===void 0?void 0:(_actionRef_current=actionRef.current)===null||_actionRef_current===void 0?void 0:(_actionRef_current_reset=_actionRef_current.reset)===null||_actionRef_current_reset===void 0?void 0:_actionRef_current_reset.call(_actionRef_current);return[2]}})})()},[searchConfig,actionRef]);var mergedSearchConfig=React.useMemo(function(){if(!searchConfig){return null}return _object_spread_props(_object_spread({},searchConfig),{onFinish:handleSearchFinish,onReset:handleSearchReset})},[searchConfig,handleSearchFinish,handleSearchReset]);var mergedTableProps=React.useMemo(function(){return _object_spread_props(_object_spread({},tableProps),{params:_object_spread({},tableProps.params||{},searchFormValues),gridCardFieldsPerRow:gridCardFieldsPerRow})},[tableProps,searchFormValues,gridCardFieldsPerRow]);return wrapCSS(React.createElement(Flex,{vertical:true,gap:8,className:classNames(prefixCls,cssVarCls,className),style:style},mergedSearchConfig&&React.createElement(ProTableSearch,_object_spread({columns:searchColumns},mergedSearchConfig)),React.createElement(ProTableList,{columns:columns,headerTitle:headerTitle,rowSelection:rowSelection,pagination:pagination,tableProps:mergedTableProps,actionRef:actionRef,gridCardRender:gridCardRender,gridColumns:gridColumns})))};
|
|
@@ -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 React from"react";import{FormContent}from"./form-content";import{FormFooter}from"./form-footer";import{message}from"antd";import useStyle from"../styles";export var OperationContent=function(props){var type=props.type,record=props.record,onClose=props.onClose,onSuccess=props.onSuccess,_props_tableColumns=props.tableColumns,tableColumns=_props_tableColumns===void 0?[]:_props_tableColumns,formConfig=props.formConfig;var formRef=React.useRef(null);var _React_useState=_sliced_to_array(React.useState(false),2),loading=_React_useState[0],setLoading=_React_useState[1];var _useStyle=_sliced_to_array(useStyle("VlianTable"),2),wrapSSR=_useStyle[0],hashId=_useStyle[1];if(!formConfig||formConfig.enabled===false){return wrapSSR(React.createElement("div",{className:"VlianTable-operation-placeholder ".concat(hashId)},React.createElement("div",null,"当前操作类型: ",type),React.createElement("div",null,"请通过 operationContent 属性自定义渲染内容,或配置 formConfig 使用内置表单")))}var handleSubmit=function(){return _async_to_generator(function(){var form,values,result,successMsg,error;return _ts_generator(this,function(_state){switch(_state.label){case 0:
|
|
1
|
+
function _array_like_to_array(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i<len;i++)arr2[i]=arr[i];return arr2}function _array_with_holes(arr){if(Array.isArray(arr))return arr}function asyncGeneratorStep(gen,resolve,reject,_next,_throw,key,arg){try{var info=gen[key](arg);var value=info.value}catch(error){reject(error);return}if(info.done){resolve(value)}else{Promise.resolve(value).then(_next,_throw)}}function _async_to_generator(fn){return function(){var self=this,args=arguments;return new Promise(function(resolve,reject){var gen=fn.apply(self,args);function _next(value){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"next",value)}function _throw(err){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"throw",err)}_next(undefined)})}}function _iterable_to_array_limit(arr,i){var _i=arr==null?null:typeof Symbol!=="undefined"&&arr[Symbol.iterator]||arr["@@iterator"];if(_i==null)return;var _arr=[];var _n=true;var _d=false;var _s,_e;try{for(_i=_i.call(arr);!(_n=(_s=_i.next()).done);_n=true){_arr.push(_s.value);if(i&&_arr.length===i)break}}catch(err){_d=true;_e=err}finally{try{if(!_n&&_i["return"]!=null)_i["return"]()}finally{if(_d)throw _e}}return _arr}function _non_iterable_rest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _sliced_to_array(arr,i){return _array_with_holes(arr)||_iterable_to_array_limit(arr,i)||_unsupported_iterable_to_array(arr,i)||_non_iterable_rest()}function _unsupported_iterable_to_array(o,minLen){if(!o)return;if(typeof o==="string")return _array_like_to_array(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(n);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _array_like_to_array(o,minLen)}function _ts_generator(thisArg,body){var f,y,t,_={label:0,sent:function(){if(t[0]&1)throw t[1];return t[1]},trys:[],ops:[]},g=Object.create((typeof Iterator==="function"?Iterator:Object).prototype);return g.next=verb(0),g["throw"]=verb(1),g["return"]=verb(2),typeof Symbol==="function"&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return step([n,v])}}function step(op){if(f)throw new TypeError("Generator is already executing.");while(g&&(g=0,op[0]&&(_=0)),_)try{if(f=1,y&&(t=op[0]&2?y["return"]:op[0]?y["throw"]||((t=y["return"])&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;if(y=0,t)op=[op[0]&2,t.value];switch(op[0]){case 0:case 1:t=op;break;case 4:_.label++;return{value:op[1],done:false};case 5:_.label++;y=op[1];op=[0];continue;case 7:op=_.ops.pop();_.trys.pop();continue;default:if(!(t=_.trys,t=t.length>0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(op[0]===6&&_.label<t[1]){_.label=t[1];t=op;break}if(t&&_.label<t[2]){_.label=t[2];_.ops.push(op);break}if(t[2])_.ops.pop();_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e];y=0}finally{f=t=0}if(op[0]&5)throw op[1];return{value:op[0]?op[1]:void 0,done:true}}}import React from"react";import{FormContent}from"./form-content";import{FormFooter}from"./form-footer";import{message}from"antd";import useStyle from"../styles";export var OperationContent=function(props){var type=props.type,record=props.record,onClose=props.onClose,onSuccess=props.onSuccess,_props_tableColumns=props.tableColumns,tableColumns=_props_tableColumns===void 0?[]:_props_tableColumns,formConfig=props.formConfig;var formRef=React.useRef(null);var _React_useState=_sliced_to_array(React.useState(false),2),loading=_React_useState[0],setLoading=_React_useState[1];var _useStyle=_sliced_to_array(useStyle("VlianTable"),2),wrapSSR=_useStyle[0],hashId=_useStyle[1];if(!formConfig||formConfig.enabled===false){return wrapSSR(React.createElement("div",{className:"VlianTable-operation-placeholder ".concat(hashId)},React.createElement("div",null,"当前操作类型: ",type),React.createElement("div",null,"请通过 operationContent 属性自定义渲染内容,或配置 formConfig 使用内置表单")))}var handleSubmit=function(){return _async_to_generator(function(){var form,values,result,successMsg,error;return _ts_generator(this,function(_state){switch(_state.label){case 0:form=formRef.current;if(!form)return[2];setLoading(true);_state.label=1;case 1:_state.trys.push([1,5,6,7]);return[4,form.validateFields()];case 2:values=_state.sent();if(!formConfig.onSubmit)return[3,4];return[4,formConfig.onSubmit(values,type,record)];case 3:result=_state.sent();if(result===false){return[2]}_state.label=4;case 4:if(formConfig.showMessage){successMsg=type==="create"?"创建成功":type==="update"?"更新成功":"提交成功";message.success(successMsg)}onSuccess===null||onSuccess===void 0?void 0:onSuccess(result);onClose();return[3,7];case 5:error=_state.sent();console.error("表单提交失败:",error);if(formConfig.showMessage){if(error===null||error===void 0?void 0:error.errorFields){message.error("请检查表单字段")}else{message.error((error===null||error===void 0?void 0:error.message)||"提交失败")}}return[3,7];case 6:setLoading(false);return[7];case 7:return[2]}})})()};var renderFooter=function(){if(formConfig.footerRender!==undefined){if(formConfig.footerRender===false){return null}return formConfig.footerRender({type:type,record:record,form:formRef.current,onSubmit:handleSubmit,onCancel:onClose,loading:loading})}return React.createElement(FormFooter,{type:type,submitText:type==="create"?formConfig.createSubmitText:formConfig.updateSubmitText,cancelText:formConfig.cancelText,loading:loading,onSubmit:handleSubmit,onCancel:onClose})};return React.createElement(React.Fragment,null,React.createElement(FormContent,{type:type,record:record,tableColumns:tableColumns,formConfig:formConfig,formRef:formRef}),renderFooter())};
|
package/dist/ProTable/types.d.ts
CHANGED
|
@@ -250,6 +250,11 @@ export interface FormConfig<T = any, ValueType extends string = 'text'> {
|
|
|
250
250
|
* @description 控件宽度
|
|
251
251
|
*/
|
|
252
252
|
wrapperCol?: any;
|
|
253
|
+
/**
|
|
254
|
+
* @description 是否显示消息提醒(成功/失败提示)
|
|
255
|
+
* @default false
|
|
256
|
+
*/
|
|
257
|
+
showMessage?: boolean;
|
|
253
258
|
}
|
|
254
259
|
/**
|
|
255
260
|
* 公共属性
|