qidian-shared 1.0.48 → 1.0.50
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/hooks/useService/pagination.mjs +7 -5
- package/dist/hooks/useService/pagination.mjs.map +1 -1
- package/dist/index.mjs +1 -2
- package/dist/utils/file.d.ts +0 -1
- package/dist/utils/file.mjs +0 -13
- package/dist/utils/file.mjs.map +1 -1
- package/dist/utils/validator.d.ts +1 -0
- package/dist/utils/validator.mjs +2 -1
- package/dist/utils/validator.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ref,
|
|
1
|
+
import { ref, unref, onActivated, onDeactivated, onBeforeUnmount } from "vue";
|
|
2
2
|
import { usePagination } from "../../node_modules/.pnpm/vue-request@2.0.4_vue@3.5.26_typescript@5.9.3_/node_modules/vue-request/dist/index.es.mjs";
|
|
3
3
|
import { isEmpty, easyCopy } from "../../utils/common.mjs";
|
|
4
4
|
import { suspectedWrapperPromise, to } from "../../utils/promise.mjs";
|
|
@@ -19,6 +19,7 @@ function useServicePagination({
|
|
|
19
19
|
const firstLoad = ref(false);
|
|
20
20
|
const manualTriggerLoad = ref(false);
|
|
21
21
|
const dataList = ref([]);
|
|
22
|
+
const paginationV = unref(pagination);
|
|
22
23
|
const {
|
|
23
24
|
data,
|
|
24
25
|
loading,
|
|
@@ -40,10 +41,10 @@ function useServicePagination({
|
|
|
40
41
|
} = usePagination(
|
|
41
42
|
async (params2) => {
|
|
42
43
|
const res = { list: [], page: 1, total: 0 };
|
|
43
|
-
const
|
|
44
|
-
const currentParams =
|
|
44
|
+
const currentPagV = unref(pagination);
|
|
45
|
+
const currentParams = currentPagV !== false ? {
|
|
45
46
|
pageNum: params2?.page ?? 1,
|
|
46
|
-
pageSize: params2?.size ??
|
|
47
|
+
pageSize: params2?.size ?? 10
|
|
47
48
|
} : void 0;
|
|
48
49
|
if (currentParams?.pageNum === 1 || isEmpty(currentParams?.pageNum)) firstLoad.value = true;
|
|
49
50
|
let tParams;
|
|
@@ -68,7 +69,7 @@ function useServicePagination({
|
|
|
68
69
|
}
|
|
69
70
|
if (!temp.records) temp.records = [];
|
|
70
71
|
if (isEmpty(temp.total)) temp.total = temp.records.length;
|
|
71
|
-
if (!
|
|
72
|
+
if (!currentPagV || currentParams?.pageNum === 1) {
|
|
72
73
|
res.list = temp.records;
|
|
73
74
|
} else {
|
|
74
75
|
res.list = res.list.concat(temp.records);
|
|
@@ -85,6 +86,7 @@ function useServicePagination({
|
|
|
85
86
|
cacheKey,
|
|
86
87
|
cacheTime,
|
|
87
88
|
pollingInterval,
|
|
89
|
+
defaultParams: paginationV !== false ? [{ size: paginationV?.pageSize ?? 10 }] : void 0,
|
|
88
90
|
pagination: {
|
|
89
91
|
currentKey: "page",
|
|
90
92
|
pageSizeKey: "size",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pagination.mjs","sources":["../../../src/hooks/useService/pagination.ts"],"sourcesContent":["import type {\n ServicePaginationOptions,\n ServicePageParams,\n ServicePagination,\n ServicePageDataType,\n ServicePageRes,\n UseServicePaginationResult,\n ServiceMaybePageParams\n} from './types'\nimport { onActivated, onBeforeUnmount, onDeactivated, ref, unref } from 'vue'\nimport { usePagination } from 'vue-request'\nimport { easyCopy, isEmpty, suspectedWrapperPromise, to } from '../../utils'\n\nexport function useServicePagination<\n D = unknown,\n R = unknown,\n P = ServicePageParams,\n TP = P,\n Pag extends ServicePagination = ServicePagination\n>({\n service,\n manual,\n cacheKey,\n cacheTime,\n pollingInterval,\n transformParams,\n transformRes,\n pagination,\n onBefore,\n onAfter,\n onSuccess,\n onError\n}: ServicePaginationOptions<D, R, P, TP, Pag> & {}) {\n const firstLoad = ref(false)\n const manualTriggerLoad = ref(false)\n const dataList = ref<D[]>([])\n\n const {\n data,\n loading,\n error,\n params,\n current,\n pageSize,\n total,\n totalPage,\n changeCurrent,\n changePageSize,\n changePagination,\n runAsync,\n run,\n cancel,\n refresh,\n refreshAsync,\n mutate\n } = usePagination<ServicePageDataType<D>>(\n async (params?: { page?: number; size?: number }) => {\n const res: ServicePageDataType<D> = { list: [], page: 1, total: 0 }\n const
|
|
1
|
+
{"version":3,"file":"pagination.mjs","sources":["../../../src/hooks/useService/pagination.ts"],"sourcesContent":["import type {\n ServicePaginationOptions,\n ServicePageParams,\n ServicePagination,\n ServicePageDataType,\n ServicePageRes,\n UseServicePaginationResult,\n ServiceMaybePageParams\n} from './types'\nimport { onActivated, onBeforeUnmount, onDeactivated, ref, unref } from 'vue'\nimport { usePagination } from 'vue-request'\nimport { easyCopy, isEmpty, suspectedWrapperPromise, to } from '../../utils'\n\nexport function useServicePagination<\n D = unknown,\n R = unknown,\n P = ServicePageParams,\n TP = P,\n Pag extends ServicePagination = ServicePagination\n>({\n service,\n manual,\n cacheKey,\n cacheTime,\n pollingInterval,\n transformParams,\n transformRes,\n pagination,\n onBefore,\n onAfter,\n onSuccess,\n onError\n}: ServicePaginationOptions<D, R, P, TP, Pag> & {}) {\n const firstLoad = ref(false)\n const manualTriggerLoad = ref(false)\n const dataList = ref<D[]>([])\n const paginationV = unref(pagination)\n\n const {\n data,\n loading,\n error,\n params,\n current,\n pageSize,\n total,\n totalPage,\n changeCurrent,\n changePageSize,\n changePagination,\n runAsync,\n run,\n cancel,\n refresh,\n refreshAsync,\n mutate\n } = usePagination<ServicePageDataType<D>>(\n async (params?: { page?: number; size?: number }) => {\n const res: ServicePageDataType<D> = { list: [], page: 1, total: 0 }\n const currentPagV = unref(pagination)\n\n const currentParams =\n currentPagV !== false\n ? {\n pageNum: params?.page ?? 1,\n pageSize: params?.size ?? 10\n }\n : undefined\n\n if (currentParams?.pageNum === 1 || isEmpty(currentParams?.pageNum)) firstLoad.value = true\n\n let tParams: TP | undefined\n if (transformParams) {\n const [tpErr, tpRes] = await suspectedWrapperPromise(\n transformParams(\n (currentParams ? easyCopy(currentParams) : currentParams) as ServiceMaybePageParams<Pag>\n )\n )\n if (tpErr) throw tpErr\n\n tParams = tpRes\n }\n\n const [serviceErr, serviceRes] = await to(service(tParams || (currentParams as TP)))\n if (serviceErr) throw serviceErr\n\n let temp: ServicePageRes<D> | undefined\n if (transformRes) {\n const [trErr, trRes] = await suspectedWrapperPromise(transformRes(serviceRes))\n if (trErr) throw trErr\n\n temp = trRes\n } else {\n temp = serviceRes as ServicePageRes<D>\n }\n\n if (!temp.records) temp.records = []\n if (isEmpty(temp.total)) temp.total = temp.records.length\n\n if (!currentPagV || currentParams?.pageNum === 1) {\n res.list = temp.records\n } else {\n res.list = res.list.concat(temp.records)\n }\n\n if (currentParams) {\n res.page = currentParams?.pageNum\n res.size = currentParams?.pageSize\n }\n res.total = temp.total\n\n return res\n },\n {\n manual,\n cacheKey,\n cacheTime,\n pollingInterval,\n defaultParams: paginationV !== false ? [{ size: paginationV?.pageSize ?? 10 }] : undefined,\n pagination: {\n currentKey: 'page',\n pageSizeKey: 'size',\n totalKey: 'total'\n },\n onBefore,\n onAfter: () => {\n firstLoad.value = false\n manualTriggerLoad.value = false\n onAfter?.()\n },\n onSuccess: (res) => {\n dataList.value = res.list\n onSuccess?.(res)\n },\n onError\n }\n )\n\n function reChangeCurrent(current: number) {\n manualTriggerLoad.value = true\n changeCurrent(current)\n }\n\n function reChangePageSize(pageSize: number) {\n manualTriggerLoad.value = true\n changePageSize(pageSize)\n }\n\n function reChangePagination(current: number, pageSize: number) {\n manualTriggerLoad.value = true\n changePagination(current, pageSize)\n }\n\n function reRefresh() {\n manualTriggerLoad.value = true\n refresh()\n }\n\n function reRefreshAsync() {\n manualTriggerLoad.value = true\n refreshAsync()\n }\n\n onActivated(() => {\n if (!manual && !isEmpty(unref(pollingInterval))) reRefresh()\n })\n\n onDeactivated(() => {\n if (!isEmpty(unref(pollingInterval))) cancel()\n })\n\n onBeforeUnmount(() => {\n if (!isEmpty(unref(pollingInterval))) cancel()\n })\n\n return {\n data,\n dataList,\n firstLoad,\n manualTriggerLoad,\n loading,\n error,\n params,\n current,\n pageSize,\n total,\n totalPage,\n changeCurrent: reChangeCurrent,\n changePageSize: reChangePageSize,\n changePagination: reChangePagination,\n runAsync,\n run,\n cancel,\n refresh: reRefresh,\n refreshAsync: reRefreshAsync,\n mutate\n } as UseServicePaginationResult\n}\n"],"names":["params","current","pageSize"],"mappings":"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"}
|
package/dist/index.mjs
CHANGED
|
@@ -13,7 +13,7 @@ import { checkSameObject, createEnum, easyCopy, extractSlotsWithPrefix, extractS
|
|
|
13
13
|
import { buildTree, toArr } from "./utils/conversion.mjs";
|
|
14
14
|
import { MD5, decryptBase64, encryptBase64, encryptWithAes, generateAesKey, generateRandomString } from "./utils/crypto.mjs";
|
|
15
15
|
import { easyDownload } from "./utils/download.mjs";
|
|
16
|
-
import { b2mb, cutFileSuffix, cutFilename,
|
|
16
|
+
import { b2mb, cutFileSuffix, cutFilename, isTypeByName } from "./utils/file.mjs";
|
|
17
17
|
import { formatGlob } from "./utils/glob.mjs";
|
|
18
18
|
import { decrypt, encrypt } from "./utils/jsencrypt.mjs";
|
|
19
19
|
import { parseRelaxedJSON } from "./utils/json.mjs";
|
|
@@ -49,7 +49,6 @@ export {
|
|
|
49
49
|
generateRandomString,
|
|
50
50
|
getUrlParam,
|
|
51
51
|
getUrlParams,
|
|
52
|
-
handleGlob,
|
|
53
52
|
hasOwn,
|
|
54
53
|
identifyType,
|
|
55
54
|
initialConversion,
|
package/dist/utils/file.d.ts
CHANGED
|
@@ -2,4 +2,3 @@ export declare function cutFilename(name: string | undefined, num: number): stri
|
|
|
2
2
|
export declare function cutFileSuffix(name?: string): string;
|
|
3
3
|
export declare function isTypeByName(name: string | undefined, suffixs: string[]): boolean;
|
|
4
4
|
export declare function b2mb(size?: number): number;
|
|
5
|
-
export declare function handleGlob<T = any>(data: Record<string, T>, removeSuffix?: boolean): Record<string, T>;
|
package/dist/utils/file.mjs
CHANGED
|
@@ -16,23 +16,10 @@ function isTypeByName(name, suffixs) {
|
|
|
16
16
|
function b2mb(size = 0) {
|
|
17
17
|
return size / 1024 / 1024;
|
|
18
18
|
}
|
|
19
|
-
function handleGlob(data, removeSuffix) {
|
|
20
|
-
const map = {};
|
|
21
|
-
for (const key in data) {
|
|
22
|
-
const keySplit = key.split("/");
|
|
23
|
-
let name = keySplit[keySplit.length - 1];
|
|
24
|
-
if (removeSuffix) {
|
|
25
|
-
name = name.slice(0, name.lastIndexOf("."));
|
|
26
|
-
}
|
|
27
|
-
map[name] = data[key];
|
|
28
|
-
}
|
|
29
|
-
return map;
|
|
30
|
-
}
|
|
31
19
|
export {
|
|
32
20
|
b2mb,
|
|
33
21
|
cutFileSuffix,
|
|
34
22
|
cutFilename,
|
|
35
|
-
handleGlob,
|
|
36
23
|
isTypeByName
|
|
37
24
|
};
|
|
38
25
|
//# sourceMappingURL=file.mjs.map
|
package/dist/utils/file.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file.mjs","sources":["../../src/utils/file.ts"],"sourcesContent":["/**\n * 截取文件名\n * @param name 文件名称\n * @param num 开始位置\n * @returns\n */\nexport function cutFilename(name: string | undefined, num: number) {\n if (!name) return ''\n\n const lastIndex = name.lastIndexOf('.')\n const suffix = lastIndex === -1 ? '' : name.substring(lastIndex + 1)\n return `${name.substring(0, num - suffix.length - 1)}.${suffix}`\n}\n\n/**\n * 截取文件后缀名\n * @param name 文件名称\n * @returns\n */\nexport function cutFileSuffix(name?: string) {\n if (!name) return ''\n\n const nameSplit = name.split('.')\n return nameSplit[nameSplit.length - 1]\n}\n\n/**\n * 是否为该类型文件\n * @param name 文件名称\n * @param suffixs 后缀\n * @returns\n */\nexport function isTypeByName(name: string | undefined, suffixs: string[]) {\n if (!name) return false\n\n return suffixs.some((suffix) => `.${cutFileSuffix(name)}`.toLowerCase() === suffix.toLowerCase())\n}\n\n/**\n * 字节转MB\n * @param size 字节\n * @returns mb\n */\nexport function b2mb(size = 0) {\n return size / 1024 / 1024\n}\n
|
|
1
|
+
{"version":3,"file":"file.mjs","sources":["../../src/utils/file.ts"],"sourcesContent":["/**\n * 截取文件名\n * @param name 文件名称\n * @param num 开始位置\n * @returns\n */\nexport function cutFilename(name: string | undefined, num: number) {\n if (!name) return ''\n\n const lastIndex = name.lastIndexOf('.')\n const suffix = lastIndex === -1 ? '' : name.substring(lastIndex + 1)\n return `${name.substring(0, num - suffix.length - 1)}.${suffix}`\n}\n\n/**\n * 截取文件后缀名\n * @param name 文件名称\n * @returns\n */\nexport function cutFileSuffix(name?: string) {\n if (!name) return ''\n\n const nameSplit = name.split('.')\n return nameSplit[nameSplit.length - 1]\n}\n\n/**\n * 是否为该类型文件\n * @param name 文件名称\n * @param suffixs 后缀\n * @returns\n */\nexport function isTypeByName(name: string | undefined, suffixs: string[]) {\n if (!name) return false\n\n return suffixs.some((suffix) => `.${cutFileSuffix(name)}`.toLowerCase() === suffix.toLowerCase())\n}\n\n/**\n * 字节转MB\n * @param size 字节\n * @returns mb\n */\nexport function b2mb(size = 0) {\n return size / 1024 / 1024\n}\n"],"names":[],"mappings":"AAMO,SAAS,YAAY,MAA0B,KAAa;AACjE,MAAI,CAAC,KAAM,QAAO;AAElB,QAAM,YAAY,KAAK,YAAY,GAAG;AACtC,QAAM,SAAS,cAAc,KAAK,KAAK,KAAK,UAAU,YAAY,CAAC;AACnE,SAAO,GAAG,KAAK,UAAU,GAAG,MAAM,OAAO,SAAS,CAAC,CAAC,IAAI,MAAM;AAChE;AAOO,SAAS,cAAc,MAAe;AAC3C,MAAI,CAAC,KAAM,QAAO;AAElB,QAAM,YAAY,KAAK,MAAM,GAAG;AAChC,SAAO,UAAU,UAAU,SAAS,CAAC;AACvC;AAQO,SAAS,aAAa,MAA0B,SAAmB;AACxE,MAAI,CAAC,KAAM,QAAO;AAElB,SAAO,QAAQ,KAAK,CAAC,WAAW,IAAI,cAAc,IAAI,CAAC,GAAG,YAAA,MAAkB,OAAO,aAAa;AAClG;AAOO,SAAS,KAAK,OAAO,GAAG;AAC7B,SAAO,OAAO,OAAO;AACvB;"}
|
|
@@ -2,5 +2,6 @@ export declare const validatorRegs: {
|
|
|
2
2
|
cellPhone: RegExp;
|
|
3
3
|
telephone: RegExp;
|
|
4
4
|
url: RegExp;
|
|
5
|
+
email: RegExp;
|
|
5
6
|
};
|
|
6
7
|
export declare function validator(value: string | number | undefined | null, type: keyof typeof validatorRegs | 'empty', required?: boolean): boolean | null;
|
package/dist/utils/validator.mjs
CHANGED
|
@@ -2,7 +2,8 @@ import { isEmpty } from "./common.mjs";
|
|
|
2
2
|
const validatorRegs = {
|
|
3
3
|
cellPhone: /^1[3-9]\d{9}$/,
|
|
4
4
|
telephone: /^\d{7,8}$/,
|
|
5
|
-
url: /^((blob:)*(https|http|ftp|rtsp|mms|wss)?:\/\/)[-A-Za-z0-9+&@#/%?=~_|!:,.;]+[-A-Za-z0-9+&@#/%=~_|]
|
|
5
|
+
url: /^((blob:)*(https|http|ftp|rtsp|mms|wss)?:\/\/)[-A-Za-z0-9+&@#/%?=~_|!:,.;]+[-A-Za-z0-9+&@#/%=~_|]/,
|
|
6
|
+
email: /^([A-Za-z0-9_\\-\\.\\u4e00-\\u9fa5])+@([A-Za-z0-9_\\-\\.])+\.([A-Za-z]{2,8})$/
|
|
6
7
|
};
|
|
7
8
|
function validator(value, type, required = false) {
|
|
8
9
|
if (type === "empty") return isEmpty(value);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validator.mjs","sources":["../../src/utils/validator.ts"],"sourcesContent":["import { isEmpty } from './common'\n\nexport const validatorRegs = {\n cellPhone: /^1[3-9]\\d{9}$/,\n telephone: /^\\d{7,8}$/,\n url: /^((blob:)*(https|http|ftp|rtsp|mms|wss)?:\\/\\/)[-A-Za-z0-9+&@#/%?=~_|!:,.;]+[-A-Za-z0-9+&@#/%=~_|]
|
|
1
|
+
{"version":3,"file":"validator.mjs","sources":["../../src/utils/validator.ts"],"sourcesContent":["import { isEmpty } from './common'\n\nexport const validatorRegs = {\n cellPhone: /^1[3-9]\\d{9}$/,\n telephone: /^\\d{7,8}$/,\n url: /^((blob:)*(https|http|ftp|rtsp|mms|wss)?:\\/\\/)[-A-Za-z0-9+&@#/%?=~_|!:,.;]+[-A-Za-z0-9+&@#/%=~_|]/,\n email: /^([A-Za-z0-9_\\\\-\\\\.\\\\u4e00-\\\\u9fa5])+@([A-Za-z0-9_\\\\-\\\\.])+\\.([A-Za-z]{2,8})$/,\n}\n\n/**\n * 验证器函数 - 检查输入值是否符合指定规则\n * @param value 要验证的字符串值\n * @param type 验证类型\n * @param required 是否必填,必填时空值返回 null\n * @returns 验证结果:通过返回 true,失败返回 false,必填为空返回 null\n * @throws Error 当传入不支持的验证类型时抛出异常\n */\nexport function validator(\n value: string | number | undefined | null,\n type: keyof typeof validatorRegs | 'empty',\n required = false\n) {\n if (type === 'empty') return isEmpty(value)\n\n const reg = validatorRegs[type]\n if (!reg) throw new Error(`[validator] 没有 ${type} 类型`)\n if (required && isEmpty(value)) return null\n\n return isEmpty(value) ? false : reg.test(value + '')\n}\n"],"names":[],"mappings":";AAEO,MAAM,gBAAgB;AAAA,EAC3B,WAAW;AAAA,EACX,WAAW;AAAA,EACX,KAAK;AAAA,EACL,OAAO;AACT;AAUO,SAAS,UACd,OACA,MACA,WAAW,OACX;AACA,MAAI,SAAS,QAAS,QAAO,QAAQ,KAAK;AAE1C,QAAM,MAAM,cAAc,IAAI;AAC9B,MAAI,CAAC,IAAK,OAAM,IAAI,MAAM,kBAAkB,IAAI,KAAK;AACrD,MAAI,YAAY,QAAQ,KAAK,EAAG,QAAO;AAEvC,SAAO,QAAQ,KAAK,IAAI,QAAQ,IAAI,KAAK,QAAQ,EAAE;AACrD;"}
|