zy-react-library 1.3.17 → 1.3.19

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.
@@ -21,7 +21,7 @@ export interface FormBuilderProps<Values = any> extends Omit<FormProps, "form" |
21
21
  /** 栅格间距,默认 24 */
22
22
  gutter?: Gutter | [Gutter, Gutter];
23
23
  /** 占据栅格列数,默认 12 */
24
- span?: number | string;
24
+ span?: number;
25
25
  /** 自动生成必填规则,默认 true */
26
26
  useAutoGenerateRequired?: boolean;
27
27
  /** 是否显示操作按钮区域,默认 true */
@@ -104,7 +104,7 @@ export interface FormOptionBase<
104
104
  /** 表单项标签 */
105
105
  label?: ReactNode;
106
106
  /** 占据栅格列数,默认 12 */
107
- span?: WhenTrue<IsOnlyForLabel, number | string>;
107
+ span?: WhenTrue<IsOnlyForLabel, number>;
108
108
  /** 是否必填,默认 true,支持函数动态计算 */
109
109
  required?: FormOptionProperty<IsOnlyForLabel, IsCustomizeRender, boolean | ((formValues: AllValues) => boolean)>;
110
110
  /** 验证规则 */
@@ -209,33 +209,46 @@ export type FormOptionCustomRender<
209
209
  formListUniqueProps?: never;
210
210
  };
211
211
 
212
+ /**
213
+ * 根据 render 类型映射生成表单项联合类型
214
+ */
215
+ export type FormOptionByRenderUnion<
216
+ Values = any,
217
+ AllValues = Values,
218
+ IsOnlyForLabel extends boolean = false,
219
+ IsCustomizeRender extends boolean = false,
220
+ Name = NamePath<Values>,
221
+ Dependencies = NamePath<Values>,
222
+ > = { [K in keyof FORM_ITEM_RENDER_TYPE_MAP]: FormOptionByRender<K, Values, AllValues, IsOnlyForLabel, IsCustomizeRender, Name, Dependencies> }[keyof FORM_ITEM_RENDER_TYPE_MAP];
223
+
224
+ /**
225
+ * 表单配置项联合类型组合
226
+ */
227
+ export type FormOptionGroup<
228
+ Values = any,
229
+ AllValues = Values,
230
+ Name = NamePath<Values>,
231
+ Dependencies = NamePath<Values>,
232
+ >
233
+ = | FormOptionDefault<Values, AllValues, false, false, Name, Dependencies>
234
+ | FormOptionDefault<Values, AllValues, false, true, Name, Dependencies>
235
+ | FormOptionDefault<Values, AllValues, true, false, Name, Dependencies>
236
+ | FormOptionByRenderUnion<Values, AllValues, false, false, Name, Dependencies>
237
+ | FormOptionByRenderUnion<Values, AllValues, false, true, Name, Dependencies>
238
+ | FormOptionByRenderUnion<Values, AllValues, true, false, Name, Dependencies>
239
+ | FormOptionCustomRender<Values, AllValues, false, false, Name, Dependencies>
240
+ | FormOptionCustomRender<Values, AllValues, false, true, Name, Dependencies>
241
+ | FormOptionCustomRender<Values, AllValues, true, false, Name, Dependencies>;
242
+
212
243
  /**
213
244
  * 普通表单配置项
214
245
  */
215
- export type FormOption<Values = any, AllValues = Values>
216
- = | FormOptionDefault<Values, AllValues, false, false>
217
- | FormOptionDefault<Values, AllValues, false, true>
218
- | FormOptionDefault<Values, AllValues, true, false>
219
- | { [K in keyof FORM_ITEM_RENDER_TYPE_MAP]: FormOptionByRender<K, Values, AllValues, false, false> }[keyof FORM_ITEM_RENDER_TYPE_MAP]
220
- | { [K in keyof FORM_ITEM_RENDER_TYPE_MAP]: FormOptionByRender<K, Values, AllValues, false, true> }[keyof FORM_ITEM_RENDER_TYPE_MAP]
221
- | { [K in keyof FORM_ITEM_RENDER_TYPE_MAP]: FormOptionByRender<K, Values, AllValues, true, false> }[keyof FORM_ITEM_RENDER_TYPE_MAP]
222
- | FormOptionCustomRender<Values, AllValues, false, false>
223
- | FormOptionCustomRender<Values, AllValues, false, true>
224
- | FormOptionCustomRender<Values, AllValues, true, false>;
246
+ export type FormOption<Values = any, AllValues = Values> = FormOptionGroup<Values, AllValues>;
225
247
 
226
248
  /**
227
249
  * Form.List 子项表单配置项
228
250
  */
229
- export type FormListOption<Values = any, AllValues = Values>
230
- = | FormOptionDefault<Values, AllValues, false, false, FormListOptionName<Values>, FormListOptionDependencies<AllValues>>
231
- | FormOptionDefault<Values, AllValues, false, true, FormListOptionName<Values>, FormListOptionDependencies<AllValues>>
232
- | FormOptionDefault<Values, AllValues, true, false, FormListOptionName<Values>, FormListOptionDependencies<AllValues>>
233
- | { [K in keyof FORM_ITEM_RENDER_TYPE_MAP]: FormOptionByRender<K, Values, AllValues, false, false, FormListOptionName<Values>, FormListOptionDependencies<AllValues>> }[keyof FORM_ITEM_RENDER_TYPE_MAP]
234
- | { [K in keyof FORM_ITEM_RENDER_TYPE_MAP]: FormOptionByRender<K, Values, AllValues, false, true, FormListOptionName<Values>, FormListOptionDependencies<AllValues>> }[keyof FORM_ITEM_RENDER_TYPE_MAP]
235
- | { [K in keyof FORM_ITEM_RENDER_TYPE_MAP]: FormOptionByRender<K, Values, AllValues, true, false, FormListOptionName<Values>, FormListOptionDependencies<AllValues>> }[keyof FORM_ITEM_RENDER_TYPE_MAP]
236
- | FormOptionCustomRender<Values, AllValues, false, false, FormListOptionName<Values>, FormListOptionDependencies<AllValues>>
237
- | FormOptionCustomRender<Values, AllValues, false, true, FormListOptionName<Values>, FormListOptionDependencies<AllValues>>
238
- | FormOptionCustomRender<Values, AllValues, true, false, FormListOptionName<Values>, FormListOptionDependencies<AllValues>>;
251
+ export type FormListOption<Values = any, AllValues = Values> = FormOptionGroup<Values, AllValues, FormListOptionName<Values>, FormListOptionDependencies<AllValues>>;
239
252
 
240
253
  /**
241
254
  * FormItemsRenderer 组件属性
@@ -250,7 +263,7 @@ export interface FormItemsRendererProps<Values = any> {
250
263
  /** 自动生成必填规则,默认 true */
251
264
  useAutoGenerateRequired?: boolean;
252
265
  /** 初始值,用于在表单未初始化时提供默认值 */
253
- initialValues?: Values;
266
+ initialValues?: DeepPartial<Values>;
254
267
  /** 栅格间距,继承自 FormBuilder */
255
268
  gutter?: Gutter | [Gutter, Gutter];
256
269
  /** label 栅格配置,继承自 FormBuilder */
@@ -1 +1 @@
1
- import{request as e}from"@cqsjjb/jjb-common-lib/http.js";import{useState as t,useEffect as r}from"react";import{executeWithCache as n}from"../../../../utils/index.js";import i from"../../Basic/index.js";import{jsx as a}from"react/jsx-runtime";function p(p){const{params:s={},searchType:o="current",...l}=p,[d,m]=t([]);return r(()=>{(async()=>{let t="";const r={...s,time:(new Date).getTime()};"current"===o&&(t="/basicInfo/department/listTree",delete r.inType,delete r.enterpriseType),"all"===o&&(t="/basicInfo/department/listAllTree",delete r.inType,delete r.enterpriseType,delete r.eqCorpinfoId,delete r.eqParentId),"inType"===o&&(t="/basicInfo/department/listAllTreeByCorpType",delete r.eqCorpinfoId,delete r.eqParentId,r.enterpriseType&&!Array.isArray(r.enterpriseType)&&(r.enterpriseType=[r.enterpriseType]));const i={searchType:o,params:s};await n(i,async()=>{const{data:n}=await e(t,"post",r);return n},m)})()},[]),a(i,{treeData:d,childrenKey:"childrenList",...l})}p.displayName="DepartmentLeftTree";export{p as default};
1
+ import{request as e}from"@cqsjjb/jjb-common-lib/http.js";import{useState as t,useEffect as r}from"react";import{executeWithCache as n,getBaseGateway as p}from"../../../../utils/index.js";import i from"../../Basic/index.js";import{jsx as a}from"react/jsx-runtime";function s(s){const{params:l={},searchType:o="current",...d}=s,[m,y]=t([]);return r(()=>{(async()=>{let t="";const r={...l,time:(new Date).getTime()};"current"===o&&(t=`/${p()}/department/listTree`,delete r.inType,delete r.enterpriseType),"all"===o&&(t=`/${p()}/department/listAllTree`,delete r.inType,delete r.enterpriseType,delete r.eqCorpinfoId,delete r.eqParentId),"inType"===o&&(t=`/${p()}/department/listAllTreeByCorpType`,delete r.eqCorpinfoId,delete r.eqParentId,r.enterpriseType&&!Array.isArray(r.enterpriseType)&&(r.enterpriseType=[r.enterpriseType]));const i={searchType:o,params:l};await n(i,async()=>{const{data:n}=await e(t,"post",r);return n},y)})()},[]),a(i,{treeData:m,childrenKey:"childrenList",...d})}s.displayName="DepartmentLeftTree";export{s as default};
@@ -1 +1 @@
1
- import{request as e}from"@cqsjjb/jjb-common-lib/http.js";import{useState as t,useEffect as r}from"react";import{executeWithCache as o}from"../../../../utils/index.js";import n from"../../Basic/index.js";import{jsx as i}from"react/jsx-runtime";function a(a){const{params:s={},placeholder:m="人员",isNeedCorpInfoId:p=!1,isNeedDepartmentId:d=!0,isNeedPostId:f=!1,extraParams:c={},...l}=a,u={noMain:"",eqEmploymentFlag:1},[I,y]=t([]);return r(()=>{(async()=>{if(!p&&!d&&!f)return void console.error("【PersonnelSelect】 请至少传入一个参数");if(p&&(!s.corpinfoId||"string"!=typeof s.corpinfoId))return;if(d&&(!s.departmentId||"string"!=typeof s.departmentId))return;if(f&&(!s.postId||"string"!=typeof s.postId))return;const t={...u,...c},r={params:s,extraParams:t};await o(r,async()=>{const{data:r}=await e("/basicInfo/user/listAll","get",{...s,...t,time:(new Date).getTime()});return r},y)})()},[JSON.stringify(s),p,d,f,JSON.stringify(c)]),i(n,{data:I,placeholder:m,...l})}a.displayName="PersonnelSelect";export{a as default};
1
+ import{request as e}from"@cqsjjb/jjb-common-lib/http.js";import{useState as t,useEffect as r}from"react";import{executeWithCache as o,getBaseGateway as n}from"../../../../utils/index.js";import i from"../../Basic/index.js";import{jsx as a}from"react/jsx-runtime";function s(s){const{params:m={},placeholder:p="人员",isNeedCorpInfoId:d=!1,isNeedDepartmentId:f=!0,isNeedPostId:c=!1,extraParams:l={},...u}=s,I={noMain:"",eqEmploymentFlag:1},[y,g]=t([]);return r(()=>{(async()=>{if(!d&&!f&&!c)return void console.error("【PersonnelSelect】 请至少传入一个参数");if(d&&(!m.corpinfoId||"string"!=typeof m.corpinfoId))return;if(f&&(!m.departmentId||"string"!=typeof m.departmentId))return;if(c&&(!m.postId||"string"!=typeof m.postId))return;const t={...I,...l},r={params:m,extraParams:t};await o(r,async()=>{const{data:r}=await e(`/${n()}/user/listAll`,"get",{...m,...t,time:(new Date).getTime()});return r},g)})()},[JSON.stringify(m),d,f,c,JSON.stringify(l)]),a(i,{data:y,placeholder:p,...u})}s.displayName="PersonnelSelect";export{s as default};
@@ -1 +1 @@
1
- import{request as e}from"@cqsjjb/jjb-common-lib/http.js";import{useState as r,useEffect as t}from"react";import{executeWithCache as n}from"../../../../utils/index.js";import i from"../../Basic/index.js";import{jsx as a}from"react/jsx-runtime";function p(p){const{params:s={},placeholder:o="部门",isNeedCorpInfoId:d=!1,isNeedParentId:l=!1,searchType:c="current",...m}=p,[y,f]=r([]);return t(()=>{(async()=>{if("current"===c){if(d&&!s.eqCorpinfoId)return;if(l&&!s.eqParentId)return}let r="";const t={...s,time:(new Date).getTime()};"current"===c&&(r="/basicInfo/department/listTree",delete t.inType,delete t.enterpriseType),"all"===c&&(r="/basicInfo/department/listAllTree",delete t.inType,delete t.enterpriseType,delete t.eqCorpinfoId,delete t.eqParentId),"inType"===c&&(r="/basicInfo/department/listAllTreeByCorpType",delete t.eqCorpinfoId,delete t.eqParentId,t.enterpriseType&&!Array.isArray(t.enterpriseType)&&(t.enterpriseType=[t.enterpriseType]));const i={searchType:c,params:s};await n(i,async()=>{const{data:n}=await e(r,"post",t);return n},f)})()},[JSON.stringify(s),d,l,c]),a(i,{treeData:y,placeholder:o,childrenKey:"childrenList",...m})}p.displayName="DepartmentSelectTree";export{p as default};
1
+ import{request as e}from"@cqsjjb/jjb-common-lib/http.js";import{useState as r,useEffect as t}from"react";import{executeWithCache as n,getBaseGateway as i}from"../../../../utils/index.js";import p from"../../Basic/index.js";import{jsx as a}from"react/jsx-runtime";function s(s){const{params:d={},placeholder:o="部门",isNeedCorpInfoId:l=!1,isNeedParentId:c=!1,searchType:m="current",...y}=s,[T,f]=r([]);return t(()=>{(async()=>{if("current"===m){if(l&&!d.eqCorpinfoId)return;if(c&&!d.eqParentId)return}let r="";const t={...d,time:(new Date).getTime()};"current"===m&&(r=`/${i()}/department/listTree`,delete t.inType,delete t.enterpriseType),"all"===m&&(r=`/${i()}/department/listAllTree`,delete t.inType,delete t.enterpriseType,delete t.eqCorpinfoId,delete t.eqParentId),"inType"===m&&(r=`/${i()}/department/listAllTreeByCorpType`,delete t.eqCorpinfoId,delete t.eqParentId,t.enterpriseType&&!Array.isArray(t.enterpriseType)&&(t.enterpriseType=[t.enterpriseType]));const p={searchType:m,params:d};await n(p,async()=>{const{data:n}=await e(r,"post",t);return n},f)})()},[JSON.stringify(d),l,c,m]),a(p,{treeData:T,placeholder:o,childrenKey:"childrenList",...y})}s.displayName="DepartmentSelectTree";export{s as default};
@@ -1,5 +1,5 @@
1
1
  import type { CheckboxProps } from "antd/es/checkbox";
2
- import type { DatePickerProps } from "antd/es/date-picker";
2
+ import type { DatePickerProps, MonthPickerProps, RangePickerProps, WeekPickerProps } from "antd/es/date-picker";
3
3
  import type { DividerProps } from "antd/es/divider";
4
4
  import type { FormListProps } from "antd/es/form";
5
5
  import type { InputProps, TextAreaProps } from "antd/es/input";
@@ -57,12 +57,12 @@ export interface FORM_ITEM_RENDER_TYPE_MAP {
57
57
  radio: RadioProps;
58
58
  checkbox: CheckboxProps;
59
59
  date: DatePickerProps;
60
- dateMonth: DatePickerProps;
60
+ dateMonth: MonthPickerProps;
61
61
  dateYear: DatePickerProps;
62
- dateWeek: DatePickerProps;
63
- dateRange: DatePickerProps;
62
+ dateWeek: WeekPickerProps;
63
+ dateRange: RangePickerProps;
64
64
  datetime: DatePickerProps;
65
- datetimeRange: DatePickerProps;
65
+ datetimeRange: RangePickerProps;
66
66
  divider: DividerProps;
67
67
  formList: FormListProps;
68
68
  }
@@ -1 +1 @@
1
- const e={INPUT:"input",TEXTAREA:"textarea",INPUT_NUMBER:"inputNumber",NUMBER:"number",INTEGER:"number",SELECT:"select",RADIO:"radio",CHECKBOX:"checkbox",DATE:"date",DATE_MONTH:"dateMonth",DATE_YEAR:"dateYear",DATE_WEEK:"dateWeek",DATE_RANGE:"dateRange",DATETIME:"datetime",DATETIME_RANGE:"datetimeRange",DIVIDER:"divider",FORM_LIST:"formList"};export{e as FORM_ITEM_RENDER_ENUM};
1
+ const e={INPUT:"input",TEXTAREA:"textarea",INPUT_NUMBER:"inputNumber",NUMBER:"number",INTEGER:"integer",SELECT:"select",RADIO:"radio",CHECKBOX:"checkbox",DATE:"date",DATE_MONTH:"dateMonth",DATE_YEAR:"dateYear",DATE_WEEK:"dateWeek",DATE_RANGE:"dateRange",DATETIME:"datetime",DATETIME_RANGE:"datetimeRange",DIVIDER:"divider",FORM_LIST:"formList"};export{e as FORM_ITEM_RENDER_ENUM};
@@ -1 +1 @@
1
- import{request as e}from"@cqsjjb/jjb-common-lib/http.js";import{useState as i}from"react";function l(l="object"){const[t,r]=i(!1);let o=0;const s=i=>{if(i)return o++,o>0&&r(!0),new Promise((l,t)=>{const{files:s=[],single:n=!0}=i;if(s)if(Array.isArray(s)){if(0===s.length)return o--,o<=0&&r(!1),void l();if(n){if(!s[0].filePath)return o--,o<=0&&r(!1),void l()}else if(0===s.filter(e=>e.id).length)return o--,o<=0&&r(!1),void l();e(n?`/basicInfo/imgFiles/delete?filePath=${s[0].filePath}`:`/basicInfo/imgFiles/ids?ids=${s.filter(e=>e.id).map(e=>e.id)}`,"delete").then(e=>{l(e.data)}).catch(e=>{t(e)}).finally(()=>{o--,o<=0&&r(!1)})}else console.error("【deleteFile】 的 files 需要是一个数组");else console.error("【deleteFile】 缺少 files 参数")});console.error("【deleteFile】 缺少 options 参数")};return"array"===l?[t,s]:{loading:t,deleteFile:s}}export{l as default};
1
+ import{request as e}from"@cqsjjb/jjb-common-lib/http.js";import{useState as i}from"react";import{getBaseGateway as t}from"../../utils/index.js";function l(l="object"){const[r,o]=i(!1);let s=0;const n=i=>{if(i)return s++,s>0&&o(!0),new Promise((l,r)=>{const{files:n=[],single:f=!0}=i;if(n)if(Array.isArray(n)){if(0===n.length)return s--,s<=0&&o(!1),void l();if(f){if(!n[0].filePath)return s--,s<=0&&o(!1),void l()}else if(0===n.filter(e=>e.id).length)return s--,s<=0&&o(!1),void l();e(f?`/${t()}/imgFiles/delete?filePath=${n[0].filePath}`:`/${t()}/imgFiles/ids?ids=${n.filter(e=>e.id).map(e=>e.id)}`,"delete").then(e=>{l(e.data)}).catch(e=>{r(e)}).finally(()=>{s--,s<=0&&o(!1)})}else console.error("【deleteFile】 的 files 需要是一个数组");else console.error("【deleteFile】 缺少 files 参数")});console.error("【deleteFile】 缺少 options 参数")};return"array"===l?[r,n]:{loading:r,deleteFile:n}}export{l as default};
@@ -1 +1 @@
1
- import{request as e}from"@cqsjjb/jjb-common-lib/http.js";import{useState as o}from"react";import{UPLOAD_FILE_TYPE_ENUM as r}from"../../enum/uploadFile/gwj/index.js";import{addingPrefixToFile as i}from"../../utils/index.js";function n(n="object"){const[t,l]=o(!1);let s=0;const a=o=>{if(o)return s++,s>0&&l(!0),new Promise((n,t)=>{const{eqType:a,eqForeignKey:c,single:p=!0,foreignKey:f,dataSource:g}=o;if(!a)return void console.error("【getFile】 缺少 options.eqType 参数");if(!Object.values(r).includes(a))return void console.error(`【getFile】 传入的 eqType 不在 UPLOAD_FILE_TYPE_ENUM 中,当前传入的 eqType 是 ${a}`);if(p){if(null==c||""===c)return void console.error("【getFile】 缺少 options.eqForeignKey 参数")}else{if(null==f||""===f)return void console.error("【getFile】 缺少 options.foreignKey 参数");if(null==g||""===g)return void console.error("【getFile】 缺少 options.dataSource 参数");if(0===g.length)return l(!1),void n(g)}const u=p?{eqType:a,eqForeignKey:c}:{eqType:a,inForeignKey:g.map(e=>e[f]).join(",")};e("/basicInfo/imgFiles/listAll","get",u).then(e=>{if(p)n(i(e.data).map(e=>({...e,type:void 0})));else{const o=new Map;e.data.forEach(e=>{o.has(e.foreignKey)||o.set(e.foreignKey,[]),o.get(e.foreignKey).push({...e,type:void 0})});const r=g.map(e=>{const r=e[f],n=o.has(r)?i(o.get(r)):[];return{...e,files:n}});n(r)}}).catch(e=>{t(e)}).finally(()=>{s--,s<=0&&l(!1)})});console.error("【getFile】 缺少 options 参数")};return"array"===n?[t,a]:{loading:t,getFile:a}}export{n as default};
1
+ import{request as e}from"@cqsjjb/jjb-common-lib/http.js";import{useState as o}from"react";import{UPLOAD_FILE_TYPE_ENUM as r}from"../../enum/uploadFile/gwj/index.js";import{getBaseGateway as i,addingPrefixToFile as t}from"../../utils/index.js";function n(n="object"){const[l,s]=o(!1);let a=0;const c=o=>{if(o)return a++,a>0&&s(!0),new Promise((n,l)=>{const{eqType:c,eqForeignKey:p,single:g=!0,foreignKey:f,dataSource:u}=o;if(!c)return void console.error("【getFile】 缺少 options.eqType 参数");if(!Object.values(r).includes(c))return void console.error(`【getFile】 传入的 eqType 不在 UPLOAD_FILE_TYPE_ENUM 中,当前传入的 eqType 是 ${c}`);if(g){if(null==p||""===p)return void console.error("【getFile】 缺少 options.eqForeignKey 参数")}else{if(null==f||""===f)return void console.error("【getFile】 缺少 options.foreignKey 参数");if(null==u||""===u)return void console.error("【getFile】 缺少 options.dataSource 参数");if(0===u.length)return s(!1),void n(u)}const y=g?{eqType:c,eqForeignKey:p}:{eqType:c,inForeignKey:u.map(e=>e[f]).join(",")};e(`/${i()}/imgFiles/listAll`,"get",y).then(e=>{if(g)n(t(e.data).map(e=>({...e,type:void 0})));else{const o=new Map;e.data.forEach(e=>{o.has(e.foreignKey)||o.set(e.foreignKey,[]),o.get(e.foreignKey).push({...e,type:void 0})});const r=u.map(e=>{const r=e[f],i=o.has(r)?t(o.get(r)):[];return{...e,files:i}});n(r)}}).catch(e=>{l(e)}).finally(()=>{a--,a<=0&&s(!1)})});console.error("【getFile】 缺少 options 参数")};return"array"===n?[l,c]:{loading:l,getFile:c}}export{n as default};
@@ -1 +1 @@
1
- import{request as t}from"@cqsjjb/jjb-common-lib/http.js";import{useState as o}from"react";function e(e="object"){const[n,r]=o(!1);let a=0;const c=()=>(a++,a>0&&r(!0),new Promise((o,e)=>{t("/basicInfo/user/getInfo","get",{}).then(t=>{o(t.data)}).catch(t=>{e(t)}).finally(()=>{a--,a<=0&&r(!1)})}));return"array"===e?[n,c]:{loading:n,getUserInfo:c}}export{e as default};
1
+ import{request as t}from"@cqsjjb/jjb-common-lib/http.js";import{useState as o}from"react";import{getBaseGateway as e}from"../../utils/index.js";function r(r="object"){const[n,a]=o(!1);let i=0;const s=()=>(i++,i>0&&a(!0),new Promise((o,r)=>{t(`/${e()}/user/getInfo`,"get",{}).then(t=>{o(t.data)}).catch(t=>{r(t)}).finally(()=>{i--,i<=0&&a(!1)})}));return"array"===r?[n,s]:{loading:n,getUserInfo:s}}export{r as default};
@@ -1 +1 @@
1
- import{request as e}from"@cqsjjb/jjb-common-lib/http.js";import{useState as o}from"react";import{UPLOAD_FILE_TYPE_ENUM as i,UPLOAD_FILE_PATH_ENUM as r}from"../../enum/uploadFile/gwj/index.js";function t(t="object"){const[n,l]=o(!1);let a=0;const s=o=>{if(o)return a++,a>0&&l(!0),new Promise((t,n)=>{const{files:s=[],single:p=!0,params:f}=o;if(!s)return void console.error("【uploadFile】 缺少 files 参数");if(!Array.isArray(s))return void console.error("【uploadFile】 的 files 需要是一个数组");if(!f)return void console.error("【uploadFile】 缺少 options.params 参数");if(!f.type)return void console.error("【uploadFile】 缺少 options.params.type 参数");if(!Object.values(i).includes(f.type))return void console.error(`【uploadFile】 传入的 type 不在 UPLOAD_FILE_TYPE_ENUM 中,当前传入的 type 是 ${f.type}`);const d=r[f.type];if(!d)return void console.error(`【uploadFile】未找到 type ${f.type} 对应的 path `);if(!p){if(!f.hasOwnProperty("foreignKey"))return void console.error("【uploadFile】 的 single 是 false,缺少 options.params.foreignKey 参数");void 0!==f.foreignKey&&null!==f.foreignKey||(f.foreignKey="")}if(0===s.length)return a--,a<=0&&l(!1),void t(p?{filePath:""}:{id:f.foreignKey});const c=new FormData;if(s.forEach(e=>{e.originFileObj&&c.append("files",e.originFileObj)}),Object.keys(f).forEach(e=>{c.append(e,f[e])}),c.append("path",d),0===c.getAll("files").length)return a--,a<=0&&l(!1),void t(p?{filePath:s[0].filePath}:{id:f.foreignKey});e(p?"/basicInfo/imgFiles/save":"/basicInfo/imgFiles/batchSave","post",c,{"Content-Type":"multipart/form-data"}).then(e=>{t(p?{filePath:e.data.filePath}:{id:e.data.foreignKey})}).catch(e=>{n(e)}).finally(()=>{a--,a<=0&&l(!1)})});console.error("【uploadFile】 缺少 options 参数")};return"array"===t?[n,s]:{loading:n,uploadFile:s}}export{t as default};
1
+ import{request as e}from"@cqsjjb/jjb-common-lib/http.js";import{useState as o}from"react";import{UPLOAD_FILE_TYPE_ENUM as r,UPLOAD_FILE_PATH_ENUM as i}from"../../enum/uploadFile/gwj/index.js";import{getBaseGateway as t}from"../../utils/index.js";function l(l="object"){const[n,a]=o(!1);let p=0;const s=o=>{if(o)return p++,p>0&&a(!0),new Promise((l,n)=>{const{files:s=[],single:f=!0,params:d}=o;if(!s)return void console.error("【uploadFile】 缺少 files 参数");if(!Array.isArray(s))return void console.error("【uploadFile】 的 files 需要是一个数组");if(!d)return void console.error("【uploadFile】 缺少 options.params 参数");if(!d.type)return void console.error("【uploadFile】 缺少 options.params.type 参数");if(!Object.values(r).includes(d.type))return void console.error(`【uploadFile】 传入的 type 不在 UPLOAD_FILE_TYPE_ENUM 中,当前传入的 type 是 ${d.type}`);const u=i[d.type];if(!u)return void console.error(`【uploadFile】未找到 type ${d.type} 对应的 path `);if(!f){if(!d.hasOwnProperty("foreignKey"))return void console.error("【uploadFile】 的 single 是 false,缺少 options.params.foreignKey 参数");void 0!==d.foreignKey&&null!==d.foreignKey||(d.foreignKey="")}if(0===s.length)return p--,p<=0&&a(!1),void l(f?{filePath:""}:{id:d.foreignKey});const c=new FormData;if(s.forEach(e=>{e.originFileObj&&c.append("files",e.originFileObj)}),Object.keys(d).forEach(e=>{c.append(e,d[e])}),c.append("path",u),0===c.getAll("files").length)return p--,p<=0&&a(!1),void l(f?{filePath:s[0].filePath}:{id:d.foreignKey});e(f?`/${t()}/imgFiles/save`:`/${t()}/imgFiles/batchSave`,"post",c,{"Content-Type":"multipart/form-data"}).then(e=>{l(f?{filePath:e.data.filePath}:{id:e.data.foreignKey})}).catch(e=>{n(e)}).finally(()=>{p--,p<=0&&a(!1)})});console.error("【uploadFile】 缺少 options 参数")};return"array"===l?[n,s]:{loading:n,uploadFile:s}}export{l as default};
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "zy-react-library",
3
3
  "private": false,
4
- "version": "1.3.17",
4
+ "version": "1.3.19",
5
5
  "type": "module",
6
6
  "description": "",
7
7
  "author": "LiuJiaNan",
package/utils/index.d.ts CHANGED
@@ -273,6 +273,12 @@ export function getIndexColumn(pagination: false | BasePaginationConfig): {
273
273
  * 获取文件url
274
274
  */
275
275
  export function getFileUrl(): string;
276
+
277
+ /**
278
+ * 获取基础接口放在哪个gateway服务下
279
+ */
280
+ export function getBaseGateway(): string;
281
+
276
282
  /**
277
283
  * 从服务器获取文件url
278
284
  */
package/utils/index.js CHANGED
@@ -1 +1 @@
1
- import{request}from"@cqsjjb/jjb-common-lib/http.js";import dayjs from"dayjs";import{ID_NUMBER}from"../regular/index.js";function serialNumber(e,t){return(e.current-1)*e.pageSize+(t+1)}function toArrayString(value){return value?eval(value).map(String):[]}function interceptTheSuffix(e,t){return e.substring(e.lastIndexOf("."),e.length).toLowerCase()===t.toLowerCase()}function image2Base64(e){return new Promise(t=>{const n=new Image;n.src=e,n.crossOrigin="Anonymous",n.onload=function(){const e=document.createElement("canvas");e.width=n.width,e.height=n.height,e.getContext("2d").drawImage(n,0,0,n.width,n.height);const r=n.src.substring(n.src.lastIndexOf(".")+1).toLowerCase();t(e.toDataURL(`image/${r}`))}})}function image2Base642(e){return new Promise((t,n)=>{const r=new FileReader;r.readAsDataURL(e),r.onload=e=>{t(e.target.result)},r.onerror=e=>{n(e)}})}function base642File(e,t="file"){const n=e.split(","),r=n[0].match(/:(.*?);/)[1],a=r.split("/")[1],i=atob(n[1]);let s=i.length;const o=new Uint8Array(s);for(;s--;)o[s]=i.charCodeAt(s);return new File([o],`${t}.${a}`,{type:r})}function checkImgExists(e){return new Promise((t,n)=>{const r=new Image;r.src=e,r.onload=function(e){t(e)},r.onerror=function(e){n(e)}})}function getDataType(e){return Object.prototype.toString.call(e).slice(8,-1)}function ArrayDeduplication(e){return[...new Set(e)]}function arrayObjectDeduplication(e,t){const n={};return e.reduce((e,r)=>(n[r[t]]||(n[r[t]]=!0,e.push(r)),e),[])}function findCharIndex(e){const{str:t,char:n,num:r}=e;let a=t.indexOf(n);if(-1===a)return-1;for(let e=0;e<r-1;e++)if(a=t.indexOf(n,a+1),-1===a)return-1;return a}function randoms(e,t){return Math.random()*(t-e+1)+e}function numFormat(e){if(e){const t=e.toString().split("."),n=t[0].split("").reverse();let r=[];for(let e=0;e<n.length;e++)e%3==0&&0!==e&&r.push(","),r.push(n[e]);return r.reverse(),r=t[1]?r.join("").concat(`.${t[1]}`):r.join(""),r}}function isEmpty(e){return null==e||"object"==typeof e&&0===Object.keys(e).length||"string"==typeof e&&0===e.trim().length}function getUrlParam(e){const t=new RegExp(`(^|&)${e}=([^&]*)(&|$)`),n=window.location.search.substr(1).match(t);return null!=n?decodeURI(n[2]):""}function paging(e){const{list:t,currentPage:n,pageSize:r}=e;return t.filter((e,t)=>t<+n*+r&&t>=(+n-1)*+r)}function getFileSuffix(e){return e.substring(e.lastIndexOf(".")+1)}function getFileName(e){return e?e.substring(e.lastIndexOf("/")+1):""}function readTxtDocument(e){return new Promise(t=>{const n=getFileUrl()+e,r=new XMLHttpRequest;r.open("get",n,!0),r.responseType="blob",r.onload=function(e){const n=new FileReader;n.readAsText(e.target.response,"GB2312"),n.onload=function(){t(n.result)}},r.send()})}function secondConversion(e){if(!e)return 0;const t=Number.parseInt((e/60/60).toString(),10),n=Number.parseInt((e/60%60).toString(),10),r=Number.parseInt((e%60).toString(),10);return t?`${t}小时${n}分钟${r}秒`:n?`${n}分钟${r}秒`:`${r}秒`}function addingPrefixToFile(e,t={}){if(!e)return[];const{pathKey:n="filePath",nameKey:r="fileName",idKey:a="id"}=t,i=getFileUrl();return e.filter(e=>e[n]).map(e=>({url:i+e[n],name:e[r]||getFileName(e[n]),id:e[a],...e}))}function getLabelName(e){const{status:t,list:n,idKey:r="bianma",nameKey:a="name"}=e;return(n.find(e=>e[r]?.toString()===t?.toString())||{[a]:""})[a]}function calculateFileSize(e){return e>1024?`${(""+e/1024).substring(0,(""+e/1024).lastIndexOf(".")+3)}MB`:`${e}KB`}function idCardGetDateAndGender(e){let t="",n="";if(ID_NUMBER.test(e)){const r=e.substring(6,14),a=e.substring(16,17),i=`${r.substring(0,4)}-${r.substring(4,6)}-${r.substring(6,8)}`,s=new Date(i.replace(/-/g,"/")),o=s.getMonth()+1;let c;const l=s.getDate();let u;c=o<10?`0${o}`:o,u=l<10?`0${l}`:l,t=a%2==1?"1":"0",n=`${s.getFullYear()}-${c}-${u}`}return{sex:t,date:n}}function getMatchedItems(e){const{list:t,value:n,idKey:r="bianma"}=e;return t.filter(e=>n.includes(e[r]))}function getUnmatchedItems(e){const{list:t,value:n,idKey:r="bianma"}=e;return t.filter(e=>!n.includes(e[r]))}function listTransTree(e){const{json:t,idKey:n,parentIdKey:r,childrenKey:a}=e,i=[],s={};let o=0,c=0;const l=t.length;for(;o<l;o++)s[t[o][n]]=t[o];for(;c<l;c++){const e=t[c],n=s[e[r]];n?(!n[a]&&(n[a]=[]),n[a].push(e)):i.push(e)}return i}function isEmptyToWhether(e,t={}){const{yesText:n="是",noText:r="否",yesValue:a="1"}=t;return isEmpty(e)?"":e.toString()===a.toString()?n:r}function createGuid(e=32){let t="";for(let n=0;n<e;n++)t+="abcdefghijklmnopqrstuvwxyz0123456789".charAt(Math.floor(36*Math.random()));return t}function getIndexColumn(e){return{title:"序号",key:"index",width:70,render:(t,n,r)=>!1===e?r+1:serialNumber(e,r)}}function getTreeNodePaths(e){const{data:t,targetId:n,idKey:r,childrenKey:a,path:i=[],isIncludeOneself:s}=e;for(let e=0;e<t.length;e++){const o=t[e],c=[...i,o];if(o[r]===n)return s?c:i;if(o[a]&&o[a].length>0){const e=getTreeNodePaths({data:o[a],targetId:n,idKey:r,childrenKey:a,path:c,isIncludeOneself:s});if(e)return e}}return null}function processTreeDataByLevel(e){const{data:t,level:n,childrenKey:r,currentLevel:a=1}=e;return t.map(e=>{const t={...e};return n&&a>=n?(t.isLeaf=!0,delete t[r]):e[r]&&e[r].length>0?t[r]=processTreeDataByLevel({data:e[r],currentLevel:a+1,level:n,childrenKey:r}):t.isLeaf=!0,t})}function processTreeDataForOnlyLastLevel(e){const{data:t,childrenKey:n,onlyLastLevel:r=!1}=e;return r?t.map(e=>{const t=e[n]&&e[n].length>0,a={...e,selectable:!t};return t&&(a[n]=processTreeDataForOnlyLastLevel({data:e[n],childrenKey:n,onlyLastLevel:r})),a}):t}function validatorEndTime(e){let{startTime:t,message:n="结束时间不能早于开始时间",type:r=""}=e||{};return{validator:(e,a)=>{if(!a||!t)return Promise.resolve();if(!r){const e=/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$/;/^\d{4}-\d{2}-\d{2}$/.test(t)?r="date":e.test(t)&&(r="datetime")}return(dayjs.isDayjs(a)?a:dayjs(a)).isBefore(dayjs(t),"date"===r?"day":"seconds")?Promise.reject(n):Promise.resolve()}}}function validatorTimeGTCurrentDay(e){const{message:t="需要大于当前时间",type:n="date"}=e||{};return{validator:(e,r)=>{if(!r)return Promise.resolve();const a=dayjs.isDayjs(r)?r:dayjs(r),i=dayjs();return("date"===n?a.isAfter(i,"day"):a.isAfter(i,"seconds"))?Promise.resolve():Promise.reject(t)}}}function validatorTimeGECurrentDay(e){const{message:t="需要大于等于当前时间",type:n="date"}=e||{};return{validator:(e,r)=>{if(!r)return Promise.resolve();const a=dayjs.isDayjs(r)?r:dayjs(r),i=dayjs();return("date"===n?a.isBefore(i,"day"):a.isBefore(i,"seconds"))?Promise.reject(t):Promise.resolve()}}}function dynamicLoadJs(e){return new Promise((t,n)=>{const r=document.createElement("script");r.type="text/javascript",r.src=e,r.onload=t,r.onerror=n,document.body.appendChild(r)})}function dynamicLoadCss(e){return new Promise((t,n)=>{const r=document.createElement("link");r.rel="stylesheet",r.type="text/css",r.href=e,r.onload=t,r.onerror=n,document.head.appendChild(r)})}function normalizeEmptyHtml(e){if(!e)return"";const t=e.replace(/\s+/g,"").toLowerCase();return"<p><br></p>"===t||"<p></p>"===t||""===t?"":e}function getFileUrl(){return window.fileUrl||process.env.app.fileUrl}async function getFileUrlFromServer(){if(window.fileUrl)return;const{data:e}=await request("/basicInfo/imgFiles/getImagePath","get");window.fileUrl=e}const requestCacheMap=new Map;async function executeWithCache(e,t,n){n([]);const r="string"==typeof e?e:JSON.stringify(e);if(requestCacheMap.has(r))return n(requestCacheMap.get(r)),requestCacheMap.get(r);const a=await t();return requestCacheMap.set(r,a),n(a),a}export{ArrayDeduplication,addingPrefixToFile,arrayObjectDeduplication,base642File,calculateFileSize,checkImgExists,createGuid,dynamicLoadCss,dynamicLoadJs,executeWithCache,findCharIndex,getDataType,getFileName,getFileSuffix,getFileUrl,getFileUrlFromServer,getIndexColumn,getLabelName,getMatchedItems,getTreeNodePaths,getUnmatchedItems,getUrlParam,idCardGetDateAndGender,image2Base64,image2Base642,interceptTheSuffix,isEmpty,isEmptyToWhether,listTransTree,normalizeEmptyHtml,numFormat,paging,processTreeDataByLevel,processTreeDataForOnlyLastLevel,randoms,readTxtDocument,secondConversion,serialNumber,toArrayString,validatorEndTime,validatorTimeGECurrentDay,validatorTimeGTCurrentDay};
1
+ import{request}from"@cqsjjb/jjb-common-lib/http.js";import dayjs from"dayjs";import{ID_NUMBER}from"../regular/index.js";function serialNumber(e,t){return(e.current-1)*e.pageSize+(t+1)}function toArrayString(value){return value?eval(value).map(String):[]}function interceptTheSuffix(e,t){return e.substring(e.lastIndexOf("."),e.length).toLowerCase()===t.toLowerCase()}function image2Base64(e){return new Promise(t=>{const n=new Image;n.src=e,n.crossOrigin="Anonymous",n.onload=function(){const e=document.createElement("canvas");e.width=n.width,e.height=n.height,e.getContext("2d").drawImage(n,0,0,n.width,n.height);const r=n.src.substring(n.src.lastIndexOf(".")+1).toLowerCase();t(e.toDataURL(`image/${r}`))}})}function image2Base642(e){return new Promise((t,n)=>{const r=new FileReader;r.readAsDataURL(e),r.onload=e=>{t(e.target.result)},r.onerror=e=>{n(e)}})}function base642File(e,t="file"){const n=e.split(","),r=n[0].match(/:(.*?);/)[1],a=r.split("/")[1],i=atob(n[1]);let s=i.length;const o=new Uint8Array(s);for(;s--;)o[s]=i.charCodeAt(s);return new File([o],`${t}.${a}`,{type:r})}function checkImgExists(e){return new Promise((t,n)=>{const r=new Image;r.src=e,r.onload=function(e){t(e)},r.onerror=function(e){n(e)}})}function getDataType(e){return Object.prototype.toString.call(e).slice(8,-1)}function ArrayDeduplication(e){return[...new Set(e)]}function arrayObjectDeduplication(e,t){const n={};return e.reduce((e,r)=>(n[r[t]]||(n[r[t]]=!0,e.push(r)),e),[])}function findCharIndex(e){const{str:t,char:n,num:r}=e;let a=t.indexOf(n);if(-1===a)return-1;for(let e=0;e<r-1;e++)if(a=t.indexOf(n,a+1),-1===a)return-1;return a}function randoms(e,t){return Math.random()*(t-e+1)+e}function numFormat(e){if(e){const t=e.toString().split("."),n=t[0].split("").reverse();let r=[];for(let e=0;e<n.length;e++)e%3==0&&0!==e&&r.push(","),r.push(n[e]);return r.reverse(),r=t[1]?r.join("").concat(`.${t[1]}`):r.join(""),r}}function isEmpty(e){return null==e||"object"==typeof e&&0===Object.keys(e).length||"string"==typeof e&&0===e.trim().length}function getUrlParam(e){const t=new RegExp(`(^|&)${e}=([^&]*)(&|$)`),n=window.location.search.substr(1).match(t);return null!=n?decodeURI(n[2]):""}function paging(e){const{list:t,currentPage:n,pageSize:r}=e;return t.filter((e,t)=>t<+n*+r&&t>=(+n-1)*+r)}function getFileSuffix(e){return e.substring(e.lastIndexOf(".")+1)}function getFileName(e){return e?e.substring(e.lastIndexOf("/")+1):""}function readTxtDocument(e){return new Promise(t=>{const n=getFileUrl()+e,r=new XMLHttpRequest;r.open("get",n,!0),r.responseType="blob",r.onload=function(e){const n=new FileReader;n.readAsText(e.target.response,"GB2312"),n.onload=function(){t(n.result)}},r.send()})}function secondConversion(e){if(!e)return 0;const t=Number.parseInt((e/60/60).toString(),10),n=Number.parseInt((e/60%60).toString(),10),r=Number.parseInt((e%60).toString(),10);return t?`${t}小时${n}分钟${r}秒`:n?`${n}分钟${r}秒`:`${r}秒`}function addingPrefixToFile(e,t={}){if(!e)return[];const{pathKey:n="filePath",nameKey:r="fileName",idKey:a="id"}=t,i=getFileUrl();return e.filter(e=>e[n]).map(e=>({url:i+e[n],name:e[r]||getFileName(e[n]),id:e[a],...e}))}function getLabelName(e){const{status:t,list:n,idKey:r="bianma",nameKey:a="name"}=e;return(n.find(e=>e[r]?.toString()===t?.toString())||{[a]:""})[a]}function calculateFileSize(e){return e>1024?`${(""+e/1024).substring(0,(""+e/1024).lastIndexOf(".")+3)}MB`:`${e}KB`}function idCardGetDateAndGender(e){let t="",n="";if(ID_NUMBER.test(e)){const r=e.substring(6,14),a=e.substring(16,17),i=`${r.substring(0,4)}-${r.substring(4,6)}-${r.substring(6,8)}`,s=new Date(i.replace(/-/g,"/")),o=s.getMonth()+1;let c;const l=s.getDate();let u;c=o<10?`0${o}`:o,u=l<10?`0${l}`:l,t=a%2==1?"1":"0",n=`${s.getFullYear()}-${c}-${u}`}return{sex:t,date:n}}function getMatchedItems(e){const{list:t,value:n,idKey:r="bianma"}=e;return t.filter(e=>n.includes(e[r]))}function getUnmatchedItems(e){const{list:t,value:n,idKey:r="bianma"}=e;return t.filter(e=>!n.includes(e[r]))}function listTransTree(e){const{json:t,idKey:n,parentIdKey:r,childrenKey:a}=e,i=[],s={};let o=0,c=0;const l=t.length;for(;o<l;o++)s[t[o][n]]=t[o];for(;c<l;c++){const e=t[c],n=s[e[r]];n?(!n[a]&&(n[a]=[]),n[a].push(e)):i.push(e)}return i}function isEmptyToWhether(e,t={}){const{yesText:n="是",noText:r="否",yesValue:a="1"}=t;return isEmpty(e)?"":e.toString()===a.toString()?n:r}function createGuid(e=32){let t="";for(let n=0;n<e;n++)t+="abcdefghijklmnopqrstuvwxyz0123456789".charAt(Math.floor(36*Math.random()));return t}function getIndexColumn(e){return{title:"序号",key:"index",width:70,render:(t,n,r)=>!1===e?r+1:serialNumber(e,r)}}function getTreeNodePaths(e){const{data:t,targetId:n,idKey:r,childrenKey:a,path:i=[],isIncludeOneself:s}=e;for(let e=0;e<t.length;e++){const o=t[e],c=[...i,o];if(o[r]===n)return s?c:i;if(o[a]&&o[a].length>0){const e=getTreeNodePaths({data:o[a],targetId:n,idKey:r,childrenKey:a,path:c,isIncludeOneself:s});if(e)return e}}return null}function processTreeDataByLevel(e){const{data:t,level:n,childrenKey:r,currentLevel:a=1}=e;return t.map(e=>{const t={...e};return n&&a>=n?(t.isLeaf=!0,delete t[r]):e[r]&&e[r].length>0?t[r]=processTreeDataByLevel({data:e[r],currentLevel:a+1,level:n,childrenKey:r}):t.isLeaf=!0,t})}function processTreeDataForOnlyLastLevel(e){const{data:t,childrenKey:n,onlyLastLevel:r=!1}=e;return r?t.map(e=>{const t=e[n]&&e[n].length>0,a={...e,selectable:!t};return t&&(a[n]=processTreeDataForOnlyLastLevel({data:e[n],childrenKey:n,onlyLastLevel:r})),a}):t}function validatorEndTime(e){let{startTime:t,message:n="结束时间不能早于开始时间",type:r=""}=e||{};return{validator:(e,a)=>{if(!a||!t)return Promise.resolve();if(!r){const e=/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$/;/^\d{4}-\d{2}-\d{2}$/.test(t)?r="date":e.test(t)&&(r="datetime")}return(dayjs.isDayjs(a)?a:dayjs(a)).isBefore(dayjs(t),"date"===r?"day":"seconds")?Promise.reject(n):Promise.resolve()}}}function validatorTimeGTCurrentDay(e){const{message:t="需要大于当前时间",type:n="date"}=e||{};return{validator:(e,r)=>{if(!r)return Promise.resolve();const a=dayjs.isDayjs(r)?r:dayjs(r),i=dayjs();return("date"===n?a.isAfter(i,"day"):a.isAfter(i,"seconds"))?Promise.resolve():Promise.reject(t)}}}function validatorTimeGECurrentDay(e){const{message:t="需要大于等于当前时间",type:n="date"}=e||{};return{validator:(e,r)=>{if(!r)return Promise.resolve();const a=dayjs.isDayjs(r)?r:dayjs(r),i=dayjs();return("date"===n?a.isBefore(i,"day"):a.isBefore(i,"seconds"))?Promise.reject(t):Promise.resolve()}}}function dynamicLoadJs(e){return new Promise((t,n)=>{const r=document.createElement("script");r.type="text/javascript",r.src=e,r.onload=t,r.onerror=n,document.body.appendChild(r)})}function dynamicLoadCss(e){return new Promise((t,n)=>{const r=document.createElement("link");r.rel="stylesheet",r.type="text/css",r.href=e,r.onload=t,r.onerror=n,document.head.appendChild(r)})}function normalizeEmptyHtml(e){if(!e)return"";const t=e.replace(/\s+/g,"").toLowerCase();return"<p><br></p>"===t||"<p></p>"===t||""===t?"":e}function getFileUrl(){return window.fileUrl||process.env.app.fileUrl}function getBaseGateway(){return window.baseGateway||"basicInfo"}async function getFileUrlFromServer(){if(window.fileUrl)return;const{data:e}=await request(`/${getBaseGateway()}/imgFiles/getImagePath`,"get");window.fileUrl=e}const requestCacheMap=new Map;async function executeWithCache(e,t,n){n([]);const r="string"==typeof e?e:JSON.stringify(e);if(requestCacheMap.has(r))return n(requestCacheMap.get(r)),requestCacheMap.get(r);const a=await t();return requestCacheMap.set(r,a),n(a),a}export{ArrayDeduplication,addingPrefixToFile,arrayObjectDeduplication,base642File,calculateFileSize,checkImgExists,createGuid,dynamicLoadCss,dynamicLoadJs,executeWithCache,findCharIndex,getBaseGateway,getDataType,getFileName,getFileSuffix,getFileUrl,getFileUrlFromServer,getIndexColumn,getLabelName,getMatchedItems,getTreeNodePaths,getUnmatchedItems,getUrlParam,idCardGetDateAndGender,image2Base64,image2Base642,interceptTheSuffix,isEmpty,isEmptyToWhether,listTransTree,normalizeEmptyHtml,numFormat,paging,processTreeDataByLevel,processTreeDataForOnlyLastLevel,randoms,readTxtDocument,secondConversion,serialNumber,toArrayString,validatorEndTime,validatorTimeGECurrentDay,validatorTimeGTCurrentDay};