@owocow/saber-ui 0.0.2 → 0.0.4
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/README.md +206 -11
- package/dist/BadgeStatus.types.d.ts +1 -1
- package/dist/BadgeStatus.vue.d.ts +1 -1
- package/dist/SaberConfirmModal.vue_vue_type_script_setup_true_lang-Cqp9krYl.js +86 -0
- package/dist/SaberConfirmProvider.vue_vue_type_script_setup_true_lang-DUJ6ftNJ.js +30 -0
- package/dist/SaberDictCheckbox.vue_vue_type_script_setup_true_lang-DUbzy_C6.js +34 -0
- package/dist/SaberDictRadio.vue_vue_type_script_setup_true_lang-DR6-jSID.js +50 -0
- package/dist/SaberDictSelect.vue_vue_type_script_setup_true_lang-B8PTKNKX.js +35 -0
- package/dist/SaberDistrictSelect.vue_vue_type_script_setup_true_lang-BX8nLC35.js +257 -0
- package/dist/SaberInfo.vue_vue_type_script_setup_true_lang-B3W5VsGR.js +58 -0
- package/dist/SaberInfoProvider.vue_vue_type_script_setup_true_lang-3rF6bSCn.js +28 -0
- package/dist/SaberModal.vue_vue_type_script_setup_true_lang-DJno3jA3.js +71 -0
- package/dist/SaberModalWithMobile.vue_vue_type_script_setup_true_lang-aQlToncY.js +87 -0
- package/dist/SaberNoData.types.d.ts +11 -0
- package/dist/SaberNoData.vue.d.ts +24 -0
- package/dist/SaberPopSelect.vue_vue_type_script_setup_true_lang-BcS27NXI.js +125 -0
- package/dist/SaberStatus.vue_vue_type_script_setup_true_lang-D9aRVCow.js +38 -0
- package/dist/SaberSwitchBar.vue_vue_type_script_setup_true_lang-CDx3Dcas.js +47 -0
- package/dist/SaberUploadImage.vue_vue_type_script_setup_true_lang-CAwci2Vr.js +224 -0
- package/dist/colors.d.ts +1 -1
- package/dist/components/SaberConfirmModal.mjs +4 -0
- package/dist/components/SaberConfirmModal.vue.d.ts +28 -0
- package/dist/components/SaberConfirmProvider.mjs +4 -0
- package/dist/components/SaberConfirmProvider.vue.d.ts +2 -0
- package/dist/components/SaberInfo.mjs +4 -0
- package/dist/components/SaberInfo.types.d.ts +14 -0
- package/dist/components/SaberInfo.vue.d.ts +21 -0
- package/dist/components/SaberInfoProvider.mjs +4 -0
- package/dist/components/SaberInfoProvider.vue.d.ts +20 -0
- package/dist/components/SaberModalWithMobile.mjs +4 -0
- package/dist/components/SaberModalWithMobile.vue.d.ts +36 -0
- package/dist/components/SaberStatus.mjs +4 -0
- package/dist/components/SaberStatus.types.d.ts +1 -0
- package/dist/components/SaberStatus.vue.d.ts +8 -0
- package/dist/components/SaberSwitchBar.mjs +4 -0
- package/dist/components/SaberSwitchBar.types.d.ts +13 -0
- package/dist/components/SaberSwitchBar.vue.d.ts +18 -0
- package/dist/components/info-context.d.ts +3 -0
- package/dist/composables/index.d.ts +12 -0
- package/dist/composables/use-address-parse.d.ts +15 -0
- package/dist/composables/use-address-parse.mjs +20 -0
- package/dist/composables/use-boolean.d.ts +8 -0
- package/dist/composables/use-boolean.mjs +20 -0
- package/dist/composables/use-confirm.d.ts +34 -0
- package/dist/composables/use-confirm.mjs +28 -0
- package/dist/composables/use-delay-unmount.d.ts +7 -0
- package/dist/composables/use-delay-unmount.mjs +26 -0
- package/dist/composables/use-delete.d.ts +13 -0
- package/dist/composables/use-delete.mjs +19 -0
- package/dist/composables/use-loading.d.ts +6 -0
- package/dist/composables/use-loading.mjs +8 -0
- package/dist/composables/use-skeleton.d.ts +5 -0
- package/dist/composables/use-skeleton.mjs +23 -0
- package/dist/composables/use-table.d.ts +57 -0
- package/dist/composables/use-table.mjs +87 -0
- package/dist/composables.mjs +21 -0
- package/dist/district-service-cOu1tbQG.js +147 -0
- package/dist/district.d.ts +3 -0
- package/dist/district.mjs +8 -0
- package/dist/forms/components/SaberFilterBar.vue.d.ts +41 -0
- package/dist/forms/components/SaberFormModal.vue.d.ts +31 -0
- package/dist/forms/components/SaberModal.vue.d.ts +34 -0
- package/dist/forms/components/fields/SaberDictCheckbox.vue.d.ts +24 -0
- package/dist/forms/components/fields/SaberDictRadio.vue.d.ts +24 -0
- package/dist/forms/components/fields/SaberDictSelect.vue.d.ts +28 -0
- package/dist/forms/components/fields/SaberDistrictSelect.vue.d.ts +31 -0
- package/dist/forms/components/fields/SaberInput.vue.d.ts +16 -0
- package/dist/forms/components/fields/SaberInputNumber.vue.d.ts +11 -0
- package/dist/forms/components/fields/SaberPopSelect.vue.d.ts +25 -0
- package/dist/forms/components/fields/SaberRadioGroup.vue.d.ts +11 -0
- package/dist/forms/components/fields/SaberSelect.vue.d.ts +11 -0
- package/dist/forms/components/fields/SaberTextarea.vue.d.ts +11 -0
- package/dist/forms/components/fields/SaberUploadImage.vue.d.ts +113 -0
- package/dist/forms/dict-checkbox.mjs +4 -0
- package/dist/forms/dict-radio.mjs +4 -0
- package/dist/forms/dict-select.mjs +4 -0
- package/dist/forms/dict-source.d.ts +3 -0
- package/dist/forms/district-select.mjs +4 -0
- package/dist/forms/district-service.d.ts +46 -0
- package/dist/forms/filter-state.d.ts +4 -0
- package/dist/forms/index.d.ts +24 -0
- package/dist/forms/plugin.d.ts +20 -0
- package/dist/forms/pop-select.mjs +4 -0
- package/dist/forms/presets/basic.d.ts +5 -0
- package/dist/forms/registry.d.ts +15 -0
- package/dist/forms/types.d.ts +102 -0
- package/dist/forms/upload-image-source.d.ts +3 -0
- package/dist/forms/upload-image.mjs +4 -0
- package/dist/forms/use-dict-options.d.ts +8 -0
- package/dist/forms.mjs +45 -0
- package/dist/index-BealGwXp.js +5020 -0
- package/dist/index.d.ts +62 -1
- package/dist/index.mjs +122 -33
- package/dist/info-context-MfOfJNDT.js +4 -0
- package/dist/plugin-Dr3z0YFg.js +396 -0
- package/dist/types/api.d.ts +30 -0
- package/dist/types/auth.d.ts +54 -0
- package/dist/types/common.d.ts +14 -0
- package/dist/types/index.d.ts +3 -0
- package/dist/types/index.mjs +1 -0
- package/dist/upload-image-source-On8NHgmx.js +4 -0
- package/dist/use-dict-options-DjtbYYIa.js +38 -0
- package/dist/utils/addressParse.d.ts +37 -0
- package/dist/utils/addressParse.mjs +623 -0
- package/dist/utils/crypto.d.ts +11 -0
- package/dist/utils/crypto.mjs +36 -0
- package/dist/utils/filter.d.ts +20 -0
- package/dist/utils/filter.mjs +11 -0
- package/dist/utils/format.d.ts +9 -0
- package/dist/utils/format.mjs +7 -0
- package/dist/utils/http.d.ts +45 -0
- package/dist/utils/http.mjs +147 -0
- package/dist/utils/index.d.ts +12 -0
- package/dist/utils/index.mjs +41 -0
- package/dist/utils/klona.d.ts +2 -0
- package/dist/utils/klona.mjs +4 -0
- package/dist/utils/nanoid.d.ts +2 -0
- package/dist/utils/nanoid.mjs +4 -0
- package/dist/utils/permission.d.ts +45 -0
- package/dist/utils/permission.mjs +38 -0
- package/dist/utils/rsa.d.ts +26 -0
- package/dist/utils/rsa.mjs +2073 -0
- package/dist/utils/storage.d.ts +29 -0
- package/dist/utils/storage.mjs +39 -0
- package/dist/utils/toast.d.ts +26 -0
- package/dist/utils/toast.mjs +17 -0
- package/dist/utils/tree.d.ts +20 -0
- package/dist/utils/tree.mjs +30 -0
- package/package.json +179 -9
- package/dist/index.cjs +0 -1
- package/dist/vite.cjs +0 -1
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/** 登录请求的公共字段。 */
|
|
2
|
+
export interface LoginForm {
|
|
3
|
+
clientId?: string;
|
|
4
|
+
grantType?: string;
|
|
5
|
+
tenantId?: string;
|
|
6
|
+
code?: string;
|
|
7
|
+
uuid?: string;
|
|
8
|
+
}
|
|
9
|
+
export interface PwdLoginForm extends LoginForm {
|
|
10
|
+
username?: string;
|
|
11
|
+
password?: string;
|
|
12
|
+
userType?: string;
|
|
13
|
+
}
|
|
14
|
+
export interface SocialLoginForm extends LoginForm {
|
|
15
|
+
socialCode?: string;
|
|
16
|
+
socialState?: string;
|
|
17
|
+
source?: string;
|
|
18
|
+
}
|
|
19
|
+
export interface RegisterForm extends LoginForm {
|
|
20
|
+
username?: string;
|
|
21
|
+
password?: string;
|
|
22
|
+
confirmPassword?: string;
|
|
23
|
+
userType?: string;
|
|
24
|
+
}
|
|
25
|
+
export interface LoginToken {
|
|
26
|
+
access_token?: string;
|
|
27
|
+
client_id?: string;
|
|
28
|
+
expire_in?: number;
|
|
29
|
+
openid?: string;
|
|
30
|
+
refresh_expire_in?: number;
|
|
31
|
+
refresh_token?: string;
|
|
32
|
+
scope?: string;
|
|
33
|
+
}
|
|
34
|
+
/** 登录租户选项;与后台管理的 SystemTenant 相互独立。 */
|
|
35
|
+
export interface LoginTenantItem {
|
|
36
|
+
companyName: string;
|
|
37
|
+
domain: string;
|
|
38
|
+
tenantId: string;
|
|
39
|
+
}
|
|
40
|
+
export interface LoginTenant {
|
|
41
|
+
tenantEnabled: boolean;
|
|
42
|
+
voList: LoginTenantItem[];
|
|
43
|
+
}
|
|
44
|
+
export interface CaptchaCode {
|
|
45
|
+
captchaEnabled: boolean;
|
|
46
|
+
uuid?: string;
|
|
47
|
+
img?: string;
|
|
48
|
+
}
|
|
49
|
+
/** 登录态信息;具体用户结构由应用通过泛型提供。 */
|
|
50
|
+
export interface AuthUserInfo<User = Record<string, unknown>> {
|
|
51
|
+
user?: User;
|
|
52
|
+
roles: string[];
|
|
53
|
+
permissions: string[];
|
|
54
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/** 通用 ID 类型。 */
|
|
2
|
+
export type Id = string | number;
|
|
3
|
+
/** 通用选项结构。 */
|
|
4
|
+
export interface Option<Value = string, Label = string> {
|
|
5
|
+
value: Value;
|
|
6
|
+
label: Label;
|
|
7
|
+
}
|
|
8
|
+
/** 将对象字段转换为可选且可为 null。 */
|
|
9
|
+
export type PartialNullable<T> = {
|
|
10
|
+
[Key in keyof T]?: T[Key] | null;
|
|
11
|
+
};
|
|
12
|
+
export type YesNo = 'Y' | 'N';
|
|
13
|
+
export type EnableStatus = '0' | '1';
|
|
14
|
+
export type VisibleStatus = '0' | '1';
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export type { EnableStatus, Id, Option, PartialNullable, VisibleStatus, YesNo, } from './common';
|
|
2
|
+
export type { ApiResponse, CommonSearchParams, ListResponse, PageData, PageParams, SortOrder, } from './api';
|
|
3
|
+
export type { AuthUserInfo, CaptchaCode, LoginForm, LoginTenant, LoginTenantItem, LoginToken, PwdLoginForm, RegisterForm, SocialLoginForm, } from './auth';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { inject as p, shallowRef as n, ref as D, watch as v, onScopeDispose as m } from "vue";
|
|
2
|
+
const b = Symbol("SaberDictDataSource");
|
|
3
|
+
let u = !1;
|
|
4
|
+
function I(l, d) {
|
|
5
|
+
const f = p(b, void 0), a = n([]), o = D(!1), r = n(null);
|
|
6
|
+
let e = 0;
|
|
7
|
+
return v(
|
|
8
|
+
[l, d],
|
|
9
|
+
async ([s, S]) => {
|
|
10
|
+
const c = ++e, i = S ?? f;
|
|
11
|
+
if (a.value = [], o.value = !1, r.value = null, !!s) {
|
|
12
|
+
if (!i) {
|
|
13
|
+
u || (u = !0, console.warn(
|
|
14
|
+
"[SaberUI] Dict data source is not configured. Pass forms.dictDataSource to app.use(SaberUI) or provide a dataSource prop."
|
|
15
|
+
));
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
o.value = !0;
|
|
19
|
+
try {
|
|
20
|
+
const t = await i.loadOptions(s);
|
|
21
|
+
c === e && (a.value = [...t]);
|
|
22
|
+
} catch (t) {
|
|
23
|
+
if (c !== e) return;
|
|
24
|
+
r.value = t, a.value = [], console.error(`[SaberUI] Failed to load dict options for "${s}".`, t);
|
|
25
|
+
} finally {
|
|
26
|
+
c === e && (o.value = !1);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
{ immediate: !0 }
|
|
31
|
+
), m(() => {
|
|
32
|
+
e += 1;
|
|
33
|
+
}), { items: a, loading: o, error: r };
|
|
34
|
+
}
|
|
35
|
+
export {
|
|
36
|
+
b as D,
|
|
37
|
+
I as u
|
|
38
|
+
};
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 中文地址解析工具。
|
|
3
|
+
*
|
|
4
|
+
* 解析算法沿用 infra/src/utils/addressParseBundle.ts,行政区划数据改为由调用方传入,
|
|
5
|
+
* 因此本模块不依赖 Vue、网络请求或特定数据服务。
|
|
6
|
+
*/
|
|
7
|
+
export interface AddressParseDistrict {
|
|
8
|
+
name: string;
|
|
9
|
+
adcode: string | number;
|
|
10
|
+
districts?: readonly AddressParseDistrict[];
|
|
11
|
+
}
|
|
12
|
+
export interface AddressParseResult {
|
|
13
|
+
province: string;
|
|
14
|
+
city: string;
|
|
15
|
+
area: string;
|
|
16
|
+
details: string;
|
|
17
|
+
name: string;
|
|
18
|
+
code: string;
|
|
19
|
+
mobile: string;
|
|
20
|
+
phone: string;
|
|
21
|
+
zip_code: string;
|
|
22
|
+
idNumber: string;
|
|
23
|
+
__type: string;
|
|
24
|
+
__parse?: boolean | number;
|
|
25
|
+
}
|
|
26
|
+
export interface AddressParser {
|
|
27
|
+
parse(address: string, parseAll?: boolean): AddressParseResult[];
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* 为一份行政区划数据创建可复用的地址解析器。
|
|
31
|
+
*/
|
|
32
|
+
export declare function createAddressParser(districts: readonly AddressParseDistrict[]): AddressParser;
|
|
33
|
+
/**
|
|
34
|
+
* 一次性解析地址。需要重复解析时,优先使用 createAddressParser 复用行政区划索引。
|
|
35
|
+
*/
|
|
36
|
+
export declare function addressParse(address: string, districts: readonly AddressParseDistrict[], parseAll?: boolean): AddressParseResult[];
|
|
37
|
+
export default addressParse;
|