liyu-pc-base 1.0.407 → 1.0.409
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.
|
@@ -40,7 +40,7 @@ var l = {
|
|
|
40
40
|
let t = e.data, n = e.columns, r = e.success, i = e.total;
|
|
41
41
|
if (r !== !1) {
|
|
42
42
|
let r = p ? p(t) : t;
|
|
43
|
-
m && h && n && h(m(t, n)), _.dataSource = [].concat(r), _.total = i, _.current = e.current, _.tableHead = e.table_head ? e.table_head : null, f?.onLoad && f?.onLoad(r);
|
|
43
|
+
m && h && n && h(m(t, n)), _.dataSource = [].concat(r), _.total = i, _.current = e.current, _.tableHead = e.table_head ? e.table_head : null, _.sum_data = e.sum_data ?? null, f?.onLoad && f?.onLoad(r);
|
|
44
44
|
}
|
|
45
45
|
}).finally(() => {
|
|
46
46
|
_.loading = !1;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useFetchData.js","names":[],"sources":["../../../src/utils/hooks/useFetchData.ts"],"sourcesContent":["import type { MaybeRef, UnwrapRef } from 'vue';\nimport { isReactive, isRef, onMounted, reactive, ref, unref, watch } from 'vue';\nimport type { ColumnType } from 'ant-design-vue/lib/table';\nimport { filterNullAndEmptyKeys } from '../function';\nimport { getApiData } from '../../api/api-model';\n\nexport interface PageInfo {\n current: number;\n pageSize: number;\n total: number;\n\n [key: string]: any;\n}\n\nexport interface ReponseData<T> {\n data: T[];\n success?: boolean;\n total?: number;\n\n [key: string]: any;\n}\n\nexport type RequestParams =\n | {\n pageSize: number;\n current: number;\n [key: string]: any;\n }\n | undefined;\n\nexport interface UseFetchDataAction<T extends ReponseData<any>> {\n stripe: (record: any, index: number) => string | undefined;\n cancel: () => void;\n reload: (auto_refresh?: boolean) => Promise<void>;\n resetPageIndex: () => void;\n reset: () => void;\n context: Context<T>;\n setPageInfo: (pageInfo: Partial<PageInfo>) => void;\n}\n\nexport interface Context<T extends ReponseData<any>> {\n current: number;\n pageSize: number;\n dataSource: T['data'];\n loading: boolean;\n total: number;\n requestParams?: MaybeRef<{\n [key: string]: any;\n }>;\n\n [key: string]: any;\n}\n\nexport const defaultContext: Context<any> = {\n stripe: false,\n loading: false,\n current: 1,\n pageSize: 50,\n total: 0,\n dataSource: [],\n};\n\n// 如果请求数据中,没有分页,仅单列表数据,可以使用该方法进行包装,免去重复写请求方法\nexport const wrap = (req: () => Promise<any[]>): (() => Promise<ReponseData<any>>) => {\n return () =>\n req().then(res => {\n const data = res;\n return {\n data,\n total: data.length,\n success: true,\n };\n });\n};\n\nexport const useFetchData = <T extends ReponseData<any>>(\n getData: MaybeRef<string>,\n context: MaybeRef<{\n stripe?: boolean;\n current?: number;\n pageSize?: number;\n dataSource?: T['data'];\n loading?: boolean;\n requestParams?: MaybeRef<{\n [key: string]: any;\n }>;\n [key: string]: any;\n }> = reactive({ ...defaultContext }),\n options?: {\n current?: number;\n pageSize?: number;\n onLoad?: (dataSource: T['data']) => void;\n onRequestError?: (e: Error) => void;\n pagination?: boolean;\n },\n processData?: (raw_data_list: T[]) => T[],\n processColumn?: (data_list: T[], raw_data_list: T[]) => ColumnType[],\n replace_column?: (tmp_columns: ColumnType[]) => void,\n callback?: () => void,\n): UseFetchDataAction<T> => {\n const state = reactive({ ...defaultContext } as Context<T>);\n const mergeContext = isReactive(context) || isRef(context) ? context : ref(context);\n watch(\n mergeContext,\n () => {\n Object.assign(state, unref(context));\n },\n { immediate: true },\n );\n\n const fetchList = async (auto_refresh: boolean = false) => {\n // 请求中禁止重复请求\n if (state.loading || state.init_request === false) {\n state.init_request = true;\n return;\n }\n const url = unref(getData);\n if (!url) {\n return;\n }\n state.loading = true;\n const { pageSize = 50, current = 1 } = state;\n try {\n const params: RequestParams =\n options?.pagination !== false\n ? {\n current,\n pageSize,\n ...state.requestParams,\n // ...filterNoValidValue(unref(mergeContext).requestParams),\n }\n : undefined;\n if (!auto_refresh) {\n state.dataSource = [] as UnwrapRef<T['data']>;\n }\n await getApiData(params, url.replace('__tree', ''), url.includes('__tree'))\n .then(res => {\n const data = res.data;\n const column_data = res.columns;\n const success = res.success as boolean;\n const dataTotal = res.total as number;\n // const { data = [], success, total: dataTotal = 0 } = await\n if (success !== false) {\n const processed_data = processData ? processData(data) : data;\n if (processColumn && replace_column && column_data) {\n replace_column(processColumn(data, column_data));\n }\n state.dataSource = [].concat(processed_data) as UnwrapRef<T['data']>;\n state.total = dataTotal;\n state.current = res.current as number;\n state.tableHead = res.table_head ? res.table_head : null;\n if (options?.onLoad) {\n options?.onLoad(processed_data);\n }\n }\n })\n .finally(() => {\n state.loading = false;\n });\n } catch (e: any) {\n state.loading = false;\n // 如果没有传递这个方法的话,需要把错误抛出去,以免吞掉错误\n if (options?.onRequestError === undefined) {\n throw new Error(e);\n } else {\n options.onRequestError(e);\n }\n }\n };\n\n const cancel = () => {};\n\n const reset = () => {};\n\n const reload = (auto_refresh: boolean = false): Promise<void> => {\n return new Promise(resolve => {\n resolve(fetchList(auto_refresh));\n });\n };\n\n const setPageInfo = (pageInfo: Partial<PageInfo>) => {\n pageInfo.current && (state.current = pageInfo.current);\n pageInfo.pageSize && (state.pageSize = pageInfo.pageSize);\n state.requestParams = filterNullAndEmptyKeys(pageInfo);\n };\n\n const resetPageIndex = (): void => {\n state.current = 1;\n };\n // watch(\n // [() => state.current, () => state.pageSize, () => ({ ...state.requestParams })],\n // (nextValue, preValue) => {\n // if (!isEqual(nextValue, preValue)) {\n // fetchList().catch(e => {\n // throw new Error(e);\n // }).finally(() => {\n // if (callback) {\n // callback();\n // }\n // });\n // }\n // },\n // { immediate: true, deep: true },\n // );\n\n const stripe = (_: any, index: number) =>\n index % 2 === 1 && state.stripe && 'ant-pro-table-row-striped';\n\n onMounted(() => {\n // if (state.init_request === false) {\n // return;\n // }\n // fetchList()\n // .catch(e => {\n // throw new Error(e);\n // })\n // .finally(() => {\n // if (callback) {\n // callback();\n // }\n // });\n });\n\n return {\n stripe,\n cancel,\n reset,\n reload,\n resetPageIndex,\n setPageInfo: info => {\n setPageInfo({\n current: state.current,\n pageSize: state.pageSize,\n ...info,\n });\n },\n context: state,\n };\n};\n"],"mappings":";;;;AAqDA,IAAa,IAA+B;CAC1C,QAAQ;CACR,SAAS;CACT,SAAS;CACT,UAAU;CACV,OAAO;CACP,YAAY,EAAE;CACf,EAGY,KAAQ,YAEjB,GAAK,CAAC,MAAK,MAAO;CAChB,IAAM,IAAO;AACb,QAAO;EACL;EACA,OAAO,EAAK;EACZ,SAAS;EACV;EACD,EAGO,KACX,GACA,IAUK,EAAS,EAAE,GAAG,GAAgB,CAAC,EACpC,GAOA,GACA,GACA,GACA,MAC0B;CAC1B,IAAM,IAAQ,EAAS,EAAE,GAAG,GAAgB,CAAe;AAE3D,GADqB,EAAW,EAAQ,IAAI,EAAM,EAAQ,GAAG,IAAU,EAAI,EAAQ,QAG3E;AACJ,SAAO,OAAO,GAAO,EAAM,EAAQ,CAAC;IAEtC,EAAE,WAAW,IAAM,CACpB;CAED,IAAM,IAAY,OAAO,IAAwB,OAAU;AAEzD,MAAI,EAAM,WAAW,EAAM,iBAAiB,IAAO;AACjD,KAAM,eAAe;AACrB;;EAEF,IAAM,IAAM,EAAM,EAAQ;AAC1B,MAAI,CAAC,EACH;AAEF,IAAM,UAAU;EAChB,IAAM,EAAE,cAAW,IAAI,aAAU,MAAM;AACvC,MAAI;GACF,IAAM,IACJ,GAAS,eAAe,KAOpB,KAAA,IANA;IACE;IACA;IACA,GAAG,EAAM;IAEV;AAKP,GAHK,MACH,EAAM,aAAa,EAAE,GAEvB,MAAM,EAAW,GAAQ,EAAI,QAAQ,UAAU,GAAG,EAAE,EAAI,SAAS,SAAS,CAAC,CACxE,MAAK,MAAO;IACX,IAAM,IAAO,EAAI,MACX,IAAc,EAAI,SAClB,IAAU,EAAI,SACd,IAAY,EAAI;AAEtB,QAAI,MAAY,IAAO;KACrB,IAAM,IAAiB,IAAc,EAAY,EAAK,GAAG;
|
|
1
|
+
{"version":3,"file":"useFetchData.js","names":[],"sources":["../../../src/utils/hooks/useFetchData.ts"],"sourcesContent":["import type { MaybeRef, UnwrapRef } from 'vue';\nimport { isReactive, isRef, onMounted, reactive, ref, unref, watch } from 'vue';\nimport type { ColumnType } from 'ant-design-vue/lib/table';\nimport { filterNullAndEmptyKeys } from '../function';\nimport { getApiData } from '../../api/api-model';\n\nexport interface PageInfo {\n current: number;\n pageSize: number;\n total: number;\n\n [key: string]: any;\n}\n\nexport interface ReponseData<T> {\n data: T[];\n success?: boolean;\n total?: number;\n\n [key: string]: any;\n}\n\nexport type RequestParams =\n | {\n pageSize: number;\n current: number;\n [key: string]: any;\n }\n | undefined;\n\nexport interface UseFetchDataAction<T extends ReponseData<any>> {\n stripe: (record: any, index: number) => string | undefined;\n cancel: () => void;\n reload: (auto_refresh?: boolean) => Promise<void>;\n resetPageIndex: () => void;\n reset: () => void;\n context: Context<T>;\n setPageInfo: (pageInfo: Partial<PageInfo>) => void;\n}\n\nexport interface Context<T extends ReponseData<any>> {\n current: number;\n pageSize: number;\n dataSource: T['data'];\n loading: boolean;\n total: number;\n requestParams?: MaybeRef<{\n [key: string]: any;\n }>;\n\n [key: string]: any;\n}\n\nexport const defaultContext: Context<any> = {\n stripe: false,\n loading: false,\n current: 1,\n pageSize: 50,\n total: 0,\n dataSource: [],\n};\n\n// 如果请求数据中,没有分页,仅单列表数据,可以使用该方法进行包装,免去重复写请求方法\nexport const wrap = (req: () => Promise<any[]>): (() => Promise<ReponseData<any>>) => {\n return () =>\n req().then(res => {\n const data = res;\n return {\n data,\n total: data.length,\n success: true,\n };\n });\n};\n\nexport const useFetchData = <T extends ReponseData<any>>(\n getData: MaybeRef<string>,\n context: MaybeRef<{\n stripe?: boolean;\n current?: number;\n pageSize?: number;\n dataSource?: T['data'];\n loading?: boolean;\n requestParams?: MaybeRef<{\n [key: string]: any;\n }>;\n [key: string]: any;\n }> = reactive({ ...defaultContext }),\n options?: {\n current?: number;\n pageSize?: number;\n onLoad?: (dataSource: T['data']) => void;\n onRequestError?: (e: Error) => void;\n pagination?: boolean;\n },\n processData?: (raw_data_list: T[]) => T[],\n processColumn?: (data_list: T[], raw_data_list: T[]) => ColumnType[],\n replace_column?: (tmp_columns: ColumnType[]) => void,\n callback?: () => void,\n): UseFetchDataAction<T> => {\n const state = reactive({ ...defaultContext } as Context<T>);\n const mergeContext = isReactive(context) || isRef(context) ? context : ref(context);\n watch(\n mergeContext,\n () => {\n Object.assign(state, unref(context));\n },\n { immediate: true },\n );\n\n const fetchList = async (auto_refresh: boolean = false) => {\n // 请求中禁止重复请求\n if (state.loading || state.init_request === false) {\n state.init_request = true;\n return;\n }\n const url = unref(getData);\n if (!url) {\n return;\n }\n state.loading = true;\n const { pageSize = 50, current = 1 } = state;\n try {\n const params: RequestParams =\n options?.pagination !== false\n ? {\n current,\n pageSize,\n ...state.requestParams,\n // ...filterNoValidValue(unref(mergeContext).requestParams),\n }\n : undefined;\n if (!auto_refresh) {\n state.dataSource = [] as UnwrapRef<T['data']>;\n }\n await getApiData(params, url.replace('__tree', ''), url.includes('__tree'))\n .then(res => {\n const data = res.data;\n const column_data = res.columns;\n const success = res.success as boolean;\n const dataTotal = res.total as number;\n // const { data = [], success, total: dataTotal = 0 } = await\n if (success !== false) {\n const processed_data = processData ? processData(data) : data;\n if (processColumn && replace_column && column_data) {\n replace_column(processColumn(data, column_data));\n }\n state.dataSource = [].concat(processed_data) as UnwrapRef<T['data']>;\n state.total = dataTotal;\n state.current = res.current as number;\n state.tableHead = res.table_head ? res.table_head : null;\n state.sum_data = res.sum_data ?? null;\n if (options?.onLoad) {\n options?.onLoad(processed_data);\n }\n }\n })\n .finally(() => {\n state.loading = false;\n });\n } catch (e: any) {\n state.loading = false;\n // 如果没有传递这个方法的话,需要把错误抛出去,以免吞掉错误\n if (options?.onRequestError === undefined) {\n throw new Error(e);\n } else {\n options.onRequestError(e);\n }\n }\n };\n\n const cancel = () => {};\n\n const reset = () => {};\n\n const reload = (auto_refresh: boolean = false): Promise<void> => {\n return new Promise(resolve => {\n resolve(fetchList(auto_refresh));\n });\n };\n\n const setPageInfo = (pageInfo: Partial<PageInfo>) => {\n pageInfo.current && (state.current = pageInfo.current);\n pageInfo.pageSize && (state.pageSize = pageInfo.pageSize);\n state.requestParams = filterNullAndEmptyKeys(pageInfo);\n };\n\n const resetPageIndex = (): void => {\n state.current = 1;\n };\n // watch(\n // [() => state.current, () => state.pageSize, () => ({ ...state.requestParams })],\n // (nextValue, preValue) => {\n // if (!isEqual(nextValue, preValue)) {\n // fetchList().catch(e => {\n // throw new Error(e);\n // }).finally(() => {\n // if (callback) {\n // callback();\n // }\n // });\n // }\n // },\n // { immediate: true, deep: true },\n // );\n\n const stripe = (_: any, index: number) =>\n index % 2 === 1 && state.stripe && 'ant-pro-table-row-striped';\n\n onMounted(() => {\n // if (state.init_request === false) {\n // return;\n // }\n // fetchList()\n // .catch(e => {\n // throw new Error(e);\n // })\n // .finally(() => {\n // if (callback) {\n // callback();\n // }\n // });\n });\n\n return {\n stripe,\n cancel,\n reset,\n reload,\n resetPageIndex,\n setPageInfo: info => {\n setPageInfo({\n current: state.current,\n pageSize: state.pageSize,\n ...info,\n });\n },\n context: state,\n };\n};\n"],"mappings":";;;;AAqDA,IAAa,IAA+B;CAC1C,QAAQ;CACR,SAAS;CACT,SAAS;CACT,UAAU;CACV,OAAO;CACP,YAAY,EAAE;CACf,EAGY,KAAQ,YAEjB,GAAK,CAAC,MAAK,MAAO;CAChB,IAAM,IAAO;AACb,QAAO;EACL;EACA,OAAO,EAAK;EACZ,SAAS;EACV;EACD,EAGO,KACX,GACA,IAUK,EAAS,EAAE,GAAG,GAAgB,CAAC,EACpC,GAOA,GACA,GACA,GACA,MAC0B;CAC1B,IAAM,IAAQ,EAAS,EAAE,GAAG,GAAgB,CAAe;AAE3D,GADqB,EAAW,EAAQ,IAAI,EAAM,EAAQ,GAAG,IAAU,EAAI,EAAQ,QAG3E;AACJ,SAAO,OAAO,GAAO,EAAM,EAAQ,CAAC;IAEtC,EAAE,WAAW,IAAM,CACpB;CAED,IAAM,IAAY,OAAO,IAAwB,OAAU;AAEzD,MAAI,EAAM,WAAW,EAAM,iBAAiB,IAAO;AACjD,KAAM,eAAe;AACrB;;EAEF,IAAM,IAAM,EAAM,EAAQ;AAC1B,MAAI,CAAC,EACH;AAEF,IAAM,UAAU;EAChB,IAAM,EAAE,cAAW,IAAI,aAAU,MAAM;AACvC,MAAI;GACF,IAAM,IACJ,GAAS,eAAe,KAOpB,KAAA,IANA;IACE;IACA;IACA,GAAG,EAAM;IAEV;AAKP,GAHK,MACH,EAAM,aAAa,EAAE,GAEvB,MAAM,EAAW,GAAQ,EAAI,QAAQ,UAAU,GAAG,EAAE,EAAI,SAAS,SAAS,CAAC,CACxE,MAAK,MAAO;IACX,IAAM,IAAO,EAAI,MACX,IAAc,EAAI,SAClB,IAAU,EAAI,SACd,IAAY,EAAI;AAEtB,QAAI,MAAY,IAAO;KACrB,IAAM,IAAiB,IAAc,EAAY,EAAK,GAAG;AASzD,KARI,KAAiB,KAAkB,KACrC,EAAe,EAAc,GAAM,EAAY,CAAC,EAElD,EAAM,aAAa,EAAE,CAAC,OAAO,EAAe,EAC5C,EAAM,QAAQ,GACd,EAAM,UAAU,EAAI,SACpB,EAAM,YAAY,EAAI,aAAa,EAAI,aAAa,MACpD,EAAM,WAAW,EAAI,YAAY,MAC7B,GAAS,UACX,GAAS,OAAO,EAAe;;KAGnC,CACD,cAAc;AACb,MAAM,UAAU;KAChB;WACG,GAAQ;AAGf,OAFA,EAAM,UAAU,IAEZ,GAAS,mBAAmB,KAAA,EAC9B,OAAU,MAAM,EAAE;AAElB,KAAQ,eAAe,EAAE;;IAKzB,UAAe,IAEf,UAAc,IAEd,KAAU,IAAwB,OAC/B,IAAI,SAAQ,MAAW;AAC5B,IAAQ,EAAU,EAAa,CAAC;GAChC,EAGE,KAAe,MAAgC;AAGnD,EAFA,EAAS,YAAY,EAAM,UAAU,EAAS,UAC9C,EAAS,aAAa,EAAM,WAAW,EAAS,WAChD,EAAM,gBAAgB,EAAuB,EAAS;;AAwCxD,QAfA,QAAgB,GAad,EAEK;EACL,SAnBc,GAAQ,MACtB,IAAQ,KAAM,KAAK,EAAM,UAAU;EAmBnC;EACA;EACA;EACA,sBA1CiC;AACjC,KAAM,UAAU;;EA0ChB,cAAa,MAAQ;AACnB,KAAY;IACV,SAAS,EAAM;IACf,UAAU,EAAM;IAChB,GAAG;IACJ,CAAC;;EAEJ,SAAS;EACV"}
|