@pubinfo/module-rbac 2.0.0-rc.4 → 2.0.0-rc.5
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/{ComponentSelect-B1ZyenXP.js → ComponentSelect-Bhl9ciUm.js} +12 -12
- package/dist/ComponentSelect-Bhwuc86o.js +2 -0
- package/dist/ComponentSelect.css +1 -1
- package/dist/DynamicRoutesForm-CE2RPs7y.js +169 -0
- package/dist/DynamicRoutesForm-D35jFnxF.js +4 -0
- package/dist/IconSelect-Ct5FkeHI.js +4 -0
- package/dist/IconSelect-HAhfS6hd.js +661 -0
- package/dist/IconSelect.css +1 -0
- package/dist/{ImportExport-Clbc8xaw.js → ImportExport-ByRTssxP.js} +2 -2
- package/dist/ImportExport-D8uzaOMz.js +4 -0
- package/dist/{MetaForm-BWy4Lpr8.js → MetaForm-BSGuZXgj.js} +2 -2
- package/dist/{MetaForm-DpH9an5A.js → MetaForm-DErrpELP.js} +1 -1
- package/dist/OrgAndPosition-CF7ZJtNB.js +2 -0
- package/dist/{ResourceEdit-0_cYB0iu.js → ResourceEdit-DF-2_zoi.js} +115 -105
- package/dist/ResourceEdit-oAPLPUf0.js +11 -0
- package/dist/{ResourceRelation-DMWa09ae.js → ResourceRelation-BRseTUw2.js} +1 -1
- package/dist/RoleRelation-YaSQQxQ2.js +2 -0
- package/dist/{TenantEdit-D8-Pt7sf.js → TenantEdit-C28473_2.js} +1 -1
- package/dist/{UserAuthorization-DuioGghR.js → UserAuthorization-C4SLMNmh.js} +1 -1
- package/dist/UserEdit-CyCXz7g3.js +4 -0
- package/dist/{UserEdit-C6eNXSCu.js → UserEdit-EOTBOUZu.js} +1 -1
- package/dist/components/ResourceIcones/BoxColorPicker.vue.d.ts +23 -0
- package/dist/components/ResourceIcones/Select.vue.d.ts +48 -2
- package/dist/components/ResourceSelector/hooks/useAppAndResource.d.ts +15 -6
- package/dist/components/RoleSelector/useRole.d.ts +68 -4
- package/dist/context.d.ts +1 -2
- package/dist/{drawerRole-DNsK5a6O.js → drawerRole-CzTW_I2H.js} +1 -1
- package/dist/{drawerRole-BeUNs7cF.js → drawerRole-tan379DU.js} +1 -1
- package/dist/index.css +1 -1
- package/dist/index.js +1427 -1431
- package/dist/{resource-CrhX7VRK.js → resource-CyI9ZpmF.js} +9 -8
- package/dist/{role-PjmrOdFd.js → role-B2tKqUvP.js} +2 -2
- package/dist/{role_group-Dlx-6BZF.js → role_group-DqzFHwKx.js} +1 -1
- package/dist/stores/view.d.ts +126 -21
- package/dist/{tenant-BGtOP_wo.js → tenant-C8kVbfgt.js} +2 -2
- package/dist/{toolbar_setting-OemNp6pO.js → toolbar_setting-Dc_h2Mfe.js} +23 -34
- package/dist/toolbar_setting.css +1 -1
- package/dist/{user-JCiGXodF.js → user-Dub4HhCZ.js} +3 -3
- package/dist/utils/routeSystem.d.ts +126 -21
- package/dist/views/blackWhiteList/index.vue.d.ts +40 -40
- package/dist/views/data-permission/components/createAndEditDataPermission.vue.d.ts +4 -4
- package/dist/views/data-permission/index.vue.d.ts +44 -44
- package/dist/views/dictionary/index.vue.d.ts +40 -40
- package/dist/views/dictionary/itemlist.vue.d.ts +40 -40
- package/dist/views/group/index.vue.d.ts +40 -40
- package/dist/views/log_center/components/browserType.vue.d.ts +2 -2
- package/dist/views/log_center/components/loginHistoryDetail.vue.d.ts +2 -2
- package/dist/views/log_center/components/operateHistoryDetail.vue.d.ts +2 -2
- package/dist/views/log_center/login_history.vue.d.ts +40 -40
- package/dist/views/log_center/operate_history.vue.d.ts +40 -40
- package/dist/views/position/index.vue.d.ts +40 -40
- package/dist/views/region/index.vue.d.ts +40 -40
- package/dist/views/resource/components/IconSelect.vue.d.ts +10 -0
- package/dist/views/resource/hooks/useMetaForm.d.ts +8 -1
- package/dist/views/resource/index.vue.d.ts +40 -40
- package/dist/views/role/components/ResourceRelation.vue.d.ts +40 -40
- package/dist/views/role/index.vue.d.ts +80 -80
- package/dist/views/role_group/index.vue.d.ts +40 -40
- package/dist/views/tenant/index.vue.d.ts +40 -40
- package/dist/views/toolbar_setting/animationData.d.ts +1 -3
- package/dist/views/user/index.vue.d.ts +40 -40
- package/package.json +7 -3
- package/src/components/DirectoryIcones/ComponentsIcones.vue +2 -2
- package/src/components/DirectoryIcones/FolderIcones.vue +2 -2
- package/src/components/DirectoryIcones/ModuleIcones.vue +2 -2
- package/src/components/DirectoryIcones/PackagesIcones.vue +2 -2
- package/src/components/DirectoryIcones/SrcIcones.vue +2 -2
- package/src/components/DirectoryIcones/ViewIcones.vue +2 -2
- package/src/components/ResourceIcones/BoxColorPicker.vue +172 -0
- package/src/components/ResourceIcones/Select.vue +227 -15
- package/src/context.ts +1 -17
- package/src/index.ts +3 -10
- package/src/views/resource/components/ComponentSelect.vue +10 -0
- package/src/views/resource/components/DynamicRoutesForm.vue +0 -8
- package/src/views/resource/components/IconSelect.vue +138 -0
- package/src/views/resource/components/ResourceEdit.vue +34 -28
- package/src/views/toolbar_setting/animationData.ts +0 -4
- package/src/views/toolbar_setting/index.vue +0 -13
- package/dist/ComponentSelect-DlVJI5an.js +0 -2
- package/dist/DynamicRoutesForm-Cu3WhRpA.js +0 -4
- package/dist/DynamicRoutesForm-qjbrykW4.js +0 -376
- package/dist/ImportExport-CtEZTU87.js +0 -4
- package/dist/OrgAndPosition-3lCm4Fyb.js +0 -2
- package/dist/ResourceEdit-CYPzEbqn.js +0 -10
- package/dist/RoleRelation-DySyilcs.js +0 -2
- package/dist/UserEdit-6HYbgtOh.js +0 -4
- /package/dist/{OrgAndPosition-DYxNkasL.js → OrgAndPosition-vnBrq-fn.js} +0 -0
- /package/dist/{ResourceRelation-CZ8hGgOm.js → ResourceRelation-B_4woLmP.js} +0 -0
- /package/dist/{ResourceRelation-DkKdZ3TD.js → ResourceRelation-CKolCnHC.js} +0 -0
- /package/dist/{RoleRelation-B1D1NM_L.js → RoleRelation-DXZxscPY.js} +0 -0
- /package/dist/{TenantEdit-DNJzo8SS.js → TenantEdit-B5_v0C8I.js} +0 -0
- /package/dist/{UserAuthorization-DPHUk69M.js → UserAuthorization-DTgmWH5Q.js} +0 -0
- /package/dist/{dayjs.min-DcxwBe2I.js → dayjs.min-CdDcH50N.js} +0 -0
- /package/dist/{drawerRole-DS7fbx1h.js → drawerRole-CwilBmOE.js} +0 -0
- /package/dist/{drawerRole-BdoMYLYW.js → drawerRole-E1jHM3v-.js} +0 -0
- /package/dist/{enum-D0U38jb6.js → enum-BMY6bmPA.js} +0 -0
- /package/dist/{safe_setting-DpWUCv2p.js → safe_setting-uj9p_wW0.js} +0 -0
- /package/dist/{tabbar_setting-9UKDc1Ev.js → tabbar_setting-HFHrLVgt.js} +0 -0
- /package/dist/{theme_setting-BBLaZ4NS.js → theme_setting-QgpSGXxq.js} +0 -0
- /package/dist/{watermark_setting-C1VFRfbW.js → watermark_setting-BcWy6p2_.js} +0 -0
|
@@ -1,50 +1,50 @@
|
|
|
1
1
|
import { CurrentOrg } from './interface';
|
|
2
2
|
import { ACTION } from './enum';
|
|
3
3
|
declare const _default: import('../../../../../node_modules/.pnpm/vue@3.5.17_typescript@5.8.3/node_modules/vue').DefineComponent<{}, {}, {}, {}, {}, import('../../../../../node_modules/.pnpm/vue@3.5.17_typescript@5.8.3/node_modules/vue').ComponentOptionsMixin, import('../../../../../node_modules/.pnpm/vue@3.5.17_typescript@5.8.3/node_modules/vue').ComponentOptionsMixin, {}, string, import('../../../../../node_modules/.pnpm/vue@3.5.17_typescript@5.8.3/node_modules/vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('../../../../../node_modules/.pnpm/vue@3.5.17_typescript@5.8.3/node_modules/vue').ComponentProvideOptions, true, {
|
|
4
|
-
tableRef: import('../../../../../node_modules/.pnpm/vue@3.5.17_typescript@5.8.3/node_modules/vue').CreateComponentPublicInstanceWithMixins<Readonly<
|
|
5
|
-
request:
|
|
4
|
+
tableRef: import('../../../../../node_modules/.pnpm/vue@3.5.17_typescript@5.8.3/node_modules/vue').CreateComponentPublicInstanceWithMixins<Readonly<globalThis.ExtractPropTypes<{
|
|
5
|
+
request: PropType<import('@pubinfo/pro-components').ProTableProps["request"]>;
|
|
6
6
|
dataSource: {
|
|
7
|
-
type:
|
|
7
|
+
type: PropType<import('@pubinfo/pro-components').ProTableProps["dataSource"]>;
|
|
8
8
|
default: () => never[];
|
|
9
9
|
};
|
|
10
10
|
params: {
|
|
11
|
-
type:
|
|
11
|
+
type: PropType<import('@pubinfo/pro-components').ProTableProps["params"]>;
|
|
12
12
|
default: () => {};
|
|
13
13
|
};
|
|
14
14
|
columns: {
|
|
15
|
-
type:
|
|
15
|
+
type: PropType<import('@pubinfo/pro-components').ProTableProps["columns"]>;
|
|
16
16
|
default: () => never[];
|
|
17
17
|
};
|
|
18
18
|
columnsState: {
|
|
19
|
-
type:
|
|
19
|
+
type: PropType<import('@pubinfo/pro-components').ProTableProps["columnsState"]>;
|
|
20
20
|
default: () => {};
|
|
21
21
|
};
|
|
22
22
|
search: {
|
|
23
|
-
type:
|
|
23
|
+
type: PropType<import('@pubinfo/pro-components').ProTableProps["search"]>;
|
|
24
24
|
default: boolean;
|
|
25
25
|
};
|
|
26
26
|
toolbar: {
|
|
27
|
-
type:
|
|
27
|
+
type: PropType<import('@pubinfo/pro-components').ProTableProps["toolbar"]>;
|
|
28
28
|
default: boolean;
|
|
29
29
|
};
|
|
30
30
|
beforeSearchSubmit: {
|
|
31
|
-
type:
|
|
31
|
+
type: PropType<import('@pubinfo/pro-components').ProTableProps["beforeSearchSubmit"]>;
|
|
32
32
|
default: (arg: import('@pubinfo/pro-components').QueryData) => any;
|
|
33
33
|
};
|
|
34
34
|
postData: {
|
|
35
|
-
type:
|
|
35
|
+
type: PropType<import('@pubinfo/pro-components').ProTableProps["postData"]>;
|
|
36
36
|
default: (arg: import('@pubinfo/pro-components').Recordable[]) => import('@pubinfo/pro-components').Recordable[];
|
|
37
37
|
};
|
|
38
38
|
cardBordered: {
|
|
39
|
-
type:
|
|
39
|
+
type: PropType<import('@pubinfo/pro-components').ProTableProps["cardBordered"]>;
|
|
40
40
|
default: boolean;
|
|
41
41
|
};
|
|
42
42
|
autoHeight: {
|
|
43
|
-
type:
|
|
43
|
+
type: PropType<import('@pubinfo/pro-components').ProTableProps["autoHeight"]>;
|
|
44
44
|
default: boolean;
|
|
45
45
|
};
|
|
46
46
|
manualRequest: {
|
|
47
|
-
type:
|
|
47
|
+
type: PropType<import('@pubinfo/pro-components').ProTableProps["manualRequest"]>;
|
|
48
48
|
default: boolean;
|
|
49
49
|
};
|
|
50
50
|
prefixCls: {
|
|
@@ -472,26 +472,26 @@ declare const _default: import('../../../../../node_modules/.pnpm/vue@3.5.17_typ
|
|
|
472
472
|
type: NumberConstructor;
|
|
473
473
|
};
|
|
474
474
|
submitter: {
|
|
475
|
-
type:
|
|
475
|
+
type: PropType<import('node_modules/@pubinfo/pro-components/es/pro-form/components').CommonFormProps["submitter"]>;
|
|
476
476
|
default: () => {};
|
|
477
477
|
};
|
|
478
478
|
onFinish: {
|
|
479
|
-
type:
|
|
479
|
+
type: PropType<import('node_modules/@pubinfo/pro-components/es/pro-form/components').CommonFormProps["onFinish"]>;
|
|
480
480
|
};
|
|
481
481
|
readonly: {
|
|
482
|
-
type:
|
|
482
|
+
type: PropType<import('node_modules/@pubinfo/pro-components/es/pro-form/components').CommonFormProps["readonly"]>;
|
|
483
483
|
default: boolean;
|
|
484
484
|
};
|
|
485
485
|
grid: {
|
|
486
|
-
type:
|
|
486
|
+
type: PropType<import('node_modules/@pubinfo/pro-components/es/pro-form/components').CommonFormProps["grid"]>;
|
|
487
487
|
default: boolean;
|
|
488
488
|
};
|
|
489
489
|
rowProps: {
|
|
490
|
-
type:
|
|
490
|
+
type: PropType<import('node_modules/@pubinfo/pro-components/es/pro-form/components').CommonFormProps["rowProps"]>;
|
|
491
491
|
default: () => {};
|
|
492
492
|
};
|
|
493
493
|
colProps: {
|
|
494
|
-
type:
|
|
494
|
+
type: PropType<import('node_modules/@pubinfo/pro-components/es/pro-form/components').CommonFormProps["colProps"]>;
|
|
495
495
|
default: () => {};
|
|
496
496
|
};
|
|
497
497
|
layout: any;
|
|
@@ -716,7 +716,7 @@ declare const _default: import('../../../../../node_modules/.pnpm/vue@3.5.17_typ
|
|
|
716
716
|
toolbar: boolean | Partial<import('../../../../../node_modules/.pnpm/vue@3.5.17_typescript@5.8.3/node_modules/vue').ExtractPropTypes<{
|
|
717
717
|
title: StringConstructor;
|
|
718
718
|
settings: {
|
|
719
|
-
type:
|
|
719
|
+
type: PropType<import('@pubinfo/pro-components').ToolBarSetting[] | boolean>;
|
|
720
720
|
default: () => never[];
|
|
721
721
|
};
|
|
722
722
|
}>> | undefined;
|
|
@@ -758,50 +758,50 @@ declare const _default: import('../../../../../node_modules/.pnpm/vue@3.5.17_typ
|
|
|
758
758
|
C: {};
|
|
759
759
|
M: {};
|
|
760
760
|
Defaults: {};
|
|
761
|
-
}, Readonly<
|
|
762
|
-
request:
|
|
761
|
+
}, Readonly<globalThis.ExtractPropTypes<{
|
|
762
|
+
request: PropType<import('@pubinfo/pro-components').ProTableProps["request"]>;
|
|
763
763
|
dataSource: {
|
|
764
|
-
type:
|
|
764
|
+
type: PropType<import('@pubinfo/pro-components').ProTableProps["dataSource"]>;
|
|
765
765
|
default: () => never[];
|
|
766
766
|
};
|
|
767
767
|
params: {
|
|
768
|
-
type:
|
|
768
|
+
type: PropType<import('@pubinfo/pro-components').ProTableProps["params"]>;
|
|
769
769
|
default: () => {};
|
|
770
770
|
};
|
|
771
771
|
columns: {
|
|
772
|
-
type:
|
|
772
|
+
type: PropType<import('@pubinfo/pro-components').ProTableProps["columns"]>;
|
|
773
773
|
default: () => never[];
|
|
774
774
|
};
|
|
775
775
|
columnsState: {
|
|
776
|
-
type:
|
|
776
|
+
type: PropType<import('@pubinfo/pro-components').ProTableProps["columnsState"]>;
|
|
777
777
|
default: () => {};
|
|
778
778
|
};
|
|
779
779
|
search: {
|
|
780
|
-
type:
|
|
780
|
+
type: PropType<import('@pubinfo/pro-components').ProTableProps["search"]>;
|
|
781
781
|
default: boolean;
|
|
782
782
|
};
|
|
783
783
|
toolbar: {
|
|
784
|
-
type:
|
|
784
|
+
type: PropType<import('@pubinfo/pro-components').ProTableProps["toolbar"]>;
|
|
785
785
|
default: boolean;
|
|
786
786
|
};
|
|
787
787
|
beforeSearchSubmit: {
|
|
788
|
-
type:
|
|
788
|
+
type: PropType<import('@pubinfo/pro-components').ProTableProps["beforeSearchSubmit"]>;
|
|
789
789
|
default: (arg: import('@pubinfo/pro-components').QueryData) => any;
|
|
790
790
|
};
|
|
791
791
|
postData: {
|
|
792
|
-
type:
|
|
792
|
+
type: PropType<import('@pubinfo/pro-components').ProTableProps["postData"]>;
|
|
793
793
|
default: (arg: import('@pubinfo/pro-components').Recordable[]) => import('@pubinfo/pro-components').Recordable[];
|
|
794
794
|
};
|
|
795
795
|
cardBordered: {
|
|
796
|
-
type:
|
|
796
|
+
type: PropType<import('@pubinfo/pro-components').ProTableProps["cardBordered"]>;
|
|
797
797
|
default: boolean;
|
|
798
798
|
};
|
|
799
799
|
autoHeight: {
|
|
800
|
-
type:
|
|
800
|
+
type: PropType<import('@pubinfo/pro-components').ProTableProps["autoHeight"]>;
|
|
801
801
|
default: boolean;
|
|
802
802
|
};
|
|
803
803
|
manualRequest: {
|
|
804
|
-
type:
|
|
804
|
+
type: PropType<import('@pubinfo/pro-components').ProTableProps["manualRequest"]>;
|
|
805
805
|
default: boolean;
|
|
806
806
|
};
|
|
807
807
|
prefixCls: {
|
|
@@ -1229,26 +1229,26 @@ declare const _default: import('../../../../../node_modules/.pnpm/vue@3.5.17_typ
|
|
|
1229
1229
|
type: NumberConstructor;
|
|
1230
1230
|
};
|
|
1231
1231
|
submitter: {
|
|
1232
|
-
type:
|
|
1232
|
+
type: PropType<import('node_modules/@pubinfo/pro-components/es/pro-form/components').CommonFormProps["submitter"]>;
|
|
1233
1233
|
default: () => {};
|
|
1234
1234
|
};
|
|
1235
1235
|
onFinish: {
|
|
1236
|
-
type:
|
|
1236
|
+
type: PropType<import('node_modules/@pubinfo/pro-components/es/pro-form/components').CommonFormProps["onFinish"]>;
|
|
1237
1237
|
};
|
|
1238
1238
|
readonly: {
|
|
1239
|
-
type:
|
|
1239
|
+
type: PropType<import('node_modules/@pubinfo/pro-components/es/pro-form/components').CommonFormProps["readonly"]>;
|
|
1240
1240
|
default: boolean;
|
|
1241
1241
|
};
|
|
1242
1242
|
grid: {
|
|
1243
|
-
type:
|
|
1243
|
+
type: PropType<import('node_modules/@pubinfo/pro-components/es/pro-form/components').CommonFormProps["grid"]>;
|
|
1244
1244
|
default: boolean;
|
|
1245
1245
|
};
|
|
1246
1246
|
rowProps: {
|
|
1247
|
-
type:
|
|
1247
|
+
type: PropType<import('node_modules/@pubinfo/pro-components/es/pro-form/components').CommonFormProps["rowProps"]>;
|
|
1248
1248
|
default: () => {};
|
|
1249
1249
|
};
|
|
1250
1250
|
colProps: {
|
|
1251
|
-
type:
|
|
1251
|
+
type: PropType<import('node_modules/@pubinfo/pro-components/es/pro-form/components').CommonFormProps["colProps"]>;
|
|
1252
1252
|
default: () => {};
|
|
1253
1253
|
};
|
|
1254
1254
|
layout: any;
|
|
@@ -1473,7 +1473,7 @@ declare const _default: import('../../../../../node_modules/.pnpm/vue@3.5.17_typ
|
|
|
1473
1473
|
toolbar: boolean | Partial<import('../../../../../node_modules/.pnpm/vue@3.5.17_typescript@5.8.3/node_modules/vue').ExtractPropTypes<{
|
|
1474
1474
|
title: StringConstructor;
|
|
1475
1475
|
settings: {
|
|
1476
|
-
type:
|
|
1476
|
+
type: PropType<import('@pubinfo/pro-components').ToolBarSetting[] | boolean>;
|
|
1477
1477
|
default: () => never[];
|
|
1478
1478
|
};
|
|
1479
1479
|
}>> | undefined;
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pubinfo/module-rbac",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "2.0.0-rc.
|
|
4
|
+
"version": "2.0.0-rc.5",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": {
|
|
7
7
|
"types": "./dist/index.d.ts",
|
|
@@ -16,14 +16,18 @@
|
|
|
16
16
|
"dist",
|
|
17
17
|
"src"
|
|
18
18
|
],
|
|
19
|
+
"engines": {
|
|
20
|
+
"node": "^20.19.0 || >=22.12.0"
|
|
21
|
+
},
|
|
19
22
|
"peerDependencies": {
|
|
20
23
|
"@ant-design/icons-vue": "^7.0.1",
|
|
21
24
|
"@pubinfo/pro-components": "^1.7.3",
|
|
22
25
|
"alova": "^3.3.4",
|
|
23
26
|
"ant-design-vue": "^4.2.6",
|
|
24
|
-
"pubinfo": "2.0.0-rc.
|
|
27
|
+
"pubinfo": "2.0.0-rc.5"
|
|
25
28
|
},
|
|
26
29
|
"dependencies": {
|
|
30
|
+
"@destyler/color-picker": "^0.1.0",
|
|
27
31
|
"@destyler/popover": "^0.1.0",
|
|
28
32
|
"@destyler/vue": "^0.1.0",
|
|
29
33
|
"@pubinfo/headlessui": "^1.5.3",
|
|
@@ -44,7 +48,7 @@
|
|
|
44
48
|
"alova": "^3.3.4",
|
|
45
49
|
"ant-design-vue": "^4.2.6",
|
|
46
50
|
"type-fest": "^4.41.0",
|
|
47
|
-
"pubinfo": "2.0.0-rc.
|
|
51
|
+
"pubinfo": "2.0.0-rc.5"
|
|
48
52
|
},
|
|
49
53
|
"scripts": {
|
|
50
54
|
"dev": "pubinfo build -w --sourcemap",
|
|
@@ -13,6 +13,6 @@ const props = withDefaults(
|
|
|
13
13
|
</script>
|
|
14
14
|
|
|
15
15
|
<template>
|
|
16
|
-
<svg v-if="props.expanded" xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 16 16"><!-- Icon from Catppuccin Icons by Catppuccin - https://github.com/catppuccin/vscode-icons/blob/main/LICENSE --><g fill="none" stroke-linecap="round" stroke-linejoin="round"><path
|
|
17
|
-
<svg v-else xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 16 16"><!-- Icon from Catppuccin Icons by Catppuccin - https://github.com/catppuccin/vscode-icons/blob/main/LICENSE --><g fill="none" stroke-linecap="round" stroke-linejoin="round"><path
|
|
16
|
+
<svg v-if="props.expanded" xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 16 16"><!-- Icon from Catppuccin Icons by Catppuccin - https://github.com/catppuccin/vscode-icons/blob/main/LICENSE --><g fill="none" stroke-linecap="round" stroke-linejoin="round"><path class="stroke-dark dark:stroke-light" d="m1.87 8l.7-2.74a1 1 0 0 1 .96-.76h10.94a1 1 0 0 1 .97 1.24l-.219.875M6 13.5H2A1.5 1.5 0 0 1 .5 12V3.5a1 1 0 0 1 1-1h5a1 1 0 0 1 1 1v1" /><path stroke="#67B686" d="m9.485 9.516l3.968 3.968m-3.968 0l3.968-3.968m-1.634-1.874l3.507 3.507a.496.496 0 0 1 0 .702l-3.507 3.507a.496.496 0 0 1-.701 0L7.61 11.85a.496.496 0 0 1 0-.702l3.507-3.507a.496.496 0 0 1 .701 0z" /></g></svg>
|
|
17
|
+
<svg v-else xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 16 16"><!-- Icon from Catppuccin Icons by Catppuccin - https://github.com/catppuccin/vscode-icons/blob/main/LICENSE --><g fill="none" stroke-linecap="round" stroke-linejoin="round"><path class="stroke-dark dark:stroke-light" d="M4.5 4.5H12c.83 0 1.5.67 1.5 1.5v.5m-7.5 7H2A1.5 1.5 0 0 1 .5 12V3.5a1 1 0 0 1 1-1h5a1 1 0 0 1 1 1v1" /><path stroke="#67B686" d="m9.485 9.516l3.968 3.968m-3.968 0l3.968-3.968m-1.634-1.874l3.507 3.507a.496.496 0 0 1 0 .702l-3.507 3.507a.496.496 0 0 1-.701 0L7.61 11.85a.496.496 0 0 1 0-.702l3.507-3.507a.496.496 0 0 1 .701 0z" /></g></svg>
|
|
18
18
|
</template>
|
|
@@ -13,6 +13,6 @@ const props = withDefaults(
|
|
|
13
13
|
</script>
|
|
14
14
|
|
|
15
15
|
<template>
|
|
16
|
-
<svg v-if="props.expanded" xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 16 16"><!-- Icon from Catppuccin Icons by Catppuccin - https://github.com/catppuccin/vscode-icons/blob/main/LICENSE --><path fill="none"
|
|
17
|
-
<svg v-else xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 16 16"><!-- Icon from Catppuccin Icons by Catppuccin - https://github.com/catppuccin/vscode-icons/blob/main/LICENSE --><path fill="none"
|
|
16
|
+
<svg v-if="props.expanded" xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 16 16"><!-- Icon from Catppuccin Icons by Catppuccin - https://github.com/catppuccin/vscode-icons/blob/main/LICENSE --><path fill="none" class="stroke-dark dark:stroke-light" stroke-linecap="round" stroke-linejoin="round" d="m1.87 8l.7-2.74a1 1 0 0 1 .96-.76h10.94a1 1 0 0 1 .97 1.24l-1.75 7a1 1 0 0 1-.97.76H2A1.5 1.5 0 0 1 .5 12V3.5a1 1 0 0 1 1-1h5a1 1 0 0 1 1 1v1" /></svg>
|
|
17
|
+
<svg v-else xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 16 16"><!-- Icon from Catppuccin Icons by Catppuccin - https://github.com/catppuccin/vscode-icons/blob/main/LICENSE --><path fill="none" class="stroke-dark dark:stroke-light" stroke-linecap="round" stroke-linejoin="round" d="M4.5 4.5H12c.83 0 1.5.67 1.5 1.5v6c0 .83-.67 1.5-1.5 1.5H2A1.5 1.5 0 0 1 .5 12V3.5a1 1 0 0 1 1-1h5a1 1 0 0 1 1 1v1" /></svg>
|
|
18
18
|
</template>
|
|
@@ -13,6 +13,6 @@ const props = withDefaults(
|
|
|
13
13
|
</script>
|
|
14
14
|
|
|
15
15
|
<template>
|
|
16
|
-
<svg v-if="props.expanded" xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 16 16"><!-- Icon from Catppuccin Icons by Catppuccin - https://github.com/catppuccin/vscode-icons/blob/main/LICENSE --><g fill="none" stroke-linecap="round" stroke-linejoin="round"><path
|
|
17
|
-
<svg v-else xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 16 16"><!-- Icon from Catppuccin Icons by Catppuccin - https://github.com/catppuccin/vscode-icons/blob/main/LICENSE --><g fill="none" stroke-linecap="round" stroke-linejoin="round"><path
|
|
16
|
+
<svg v-if="props.expanded" xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 16 16"><!-- Icon from Catppuccin Icons by Catppuccin - https://github.com/catppuccin/vscode-icons/blob/main/LICENSE --><g fill="none" stroke-linecap="round" stroke-linejoin="round"><path class="stroke-dark dark:stroke-light" d="m1.875 8l.686-2.743a1 1 0 0 1 .97-.757h10.938a1 1 0 0 1 .97 1.243l-.315 1.26M6 13.5H2.004A1.5 1.5 0 0 1 .5 12V3.5a1 1 0 0 1 1-1h5a1 1 0 0 1 1 1v1" /><path stroke="#65bb87" d="M15.5 13.5v1.2a.8.8 0 0 1-.8.8h-4.4a.8.8 0 0 1-.8-.8v-1.2H9a1 1 0 0 1 0-2h.5v-1.2a.8.8 0 0 1 .8-.8h1.2V9a1 1 0 0 1 2 0v.5h1.2a.8.8 0 0 1 .8.8v1.2H15a1 1 0 0 0 0 2z" /></g></svg>
|
|
17
|
+
<svg v-else xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 16 16"><!-- Icon from Catppuccin Icons by Catppuccin - https://github.com/catppuccin/vscode-icons/blob/main/LICENSE --><g fill="none" stroke-linecap="round" stroke-linejoin="round"><path class="stroke-dark dark:stroke-light" d="M4.5 4.5H12A1.5 1.5 0 0 1 13.5 6v.5m-7.5 7H2A1.5 1.5 0 0 1 .5 12V3.5a1 1 0 0 1 1-1h5a1 1 0 0 1 1 1v1" /><path stroke="#65bb87" d="M15.5 13.5v1.2a.8.8 0 0 1-.8.8h-4.4a.8.8 0 0 1-.8-.8v-1.2H9a1 1 0 0 1 0-2h.5v-1.2a.8.8 0 0 1 .8-.8h1.2V9a1 1 0 0 1 2 0v.5h1.2a.8.8 0 0 1 .8.8v1.2H15a1 1 0 0 0 0 2z" /></g></svg>
|
|
18
18
|
</template>
|
|
@@ -13,6 +13,6 @@ const props = withDefaults(
|
|
|
13
13
|
</script>
|
|
14
14
|
|
|
15
15
|
<template>
|
|
16
|
-
<svg v-if="props.expanded" xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 16 16"><!-- Icon from Catppuccin Icons by Catppuccin - https://github.com/catppuccin/vscode-icons/blob/main/LICENSE --><g fill="none" stroke-linecap="round" stroke-linejoin="round"><path
|
|
17
|
-
<svg v-else xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 16 16"><!-- Icon from Catppuccin Icons by Catppuccin - https://github.com/catppuccin/vscode-icons/blob/main/LICENSE --><g fill="none" stroke-linecap="round" stroke-linejoin="round"><path
|
|
16
|
+
<svg v-if="props.expanded" xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 16 16"><!-- Icon from Catppuccin Icons by Catppuccin - https://github.com/catppuccin/vscode-icons/blob/main/LICENSE --><g fill="none" stroke-linecap="round" stroke-linejoin="round"><path class="stroke-dark dark:stroke-light" d="m1.875 8l.686-2.743a1 1 0 0 1 .97-.757h10.938a1 1 0 0 1 .97 1.243l-.315 1.26M6 13.5H2.004A1.5 1.5 0 0 1 .5 12V3.5a1 1 0 0 1 1-1h5a1 1 0 0 1 1 1v1" /><path stroke="#E23730" d="M12 15.337v-3.919L8.5 9.214m3.5 2.204l3.5-2.204M12 7.5l3.5 1.714v4.408L12 15.5l-3.5-1.878V9.214Z" /></g></svg>
|
|
17
|
+
<svg v-else xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 16 16"><!-- Icon from Catppuccin Icons by Catppuccin - https://github.com/catppuccin/vscode-icons/blob/main/LICENSE --><g fill="none" stroke-linecap="round" stroke-linejoin="round"><path class="stroke-dark dark:stroke-light" d="M4.5 4.5H12A1.5 1.5 0 0 1 13.5 6v.5m-7.5 7H2A1.5 1.5 0 0 1 .5 12V3.5a1 1 0 0 1 1-1h5a1 1 0 0 1 1 1v1" /><path stroke="#E23730" d="M12 15.337v-3.919L8.5 9.214m3.5 2.204l3.5-2.204M12 7.5l3.5 1.714v4.408L12 15.5l-3.5-1.878V9.214Z" /></g></svg>
|
|
18
18
|
</template>
|
|
@@ -13,6 +13,6 @@ const props = withDefaults(
|
|
|
13
13
|
</script>
|
|
14
14
|
|
|
15
15
|
<template>
|
|
16
|
-
<svg v-if="props.expanded" xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 16 16"><!-- Icon from Catppuccin Icons by Catppuccin - https://github.com/catppuccin/vscode-icons/blob/main/LICENSE --><g fill="none" stroke-linecap="round" stroke-linejoin="round"><path
|
|
17
|
-
<svg v-else xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 16 16"><!-- Icon from Catppuccin Icons by Catppuccin - https://github.com/catppuccin/vscode-icons/blob/main/LICENSE --><g fill="none" stroke-linecap="round" stroke-linejoin="round"><path
|
|
16
|
+
<svg v-if="props.expanded" xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 16 16"><!-- Icon from Catppuccin Icons by Catppuccin - https://github.com/catppuccin/vscode-icons/blob/main/LICENSE --><g fill="none" stroke-linecap="round" stroke-linejoin="round"><path class="stroke-dark dark:stroke-light" d="m1.875 8l.686-2.743a1 1 0 0 1 .97-.757h10.938a1 1 0 0 1 .97 1.243l-.315 1.26M6 13.5H2.004A1.5 1.5 0 0 1 .5 12V3.5a1 1 0 0 1 1-1h5a1 1 0 0 1 1 1v1" /><path stroke="#65bb87" d="m10.5 8.5l-3 3.5l3 3.5m2-7l3 3.5l-3 3.5" /></g></svg>
|
|
17
|
+
<svg v-else xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 16 16"><!-- Icon from Catppuccin Icons by Catppuccin - https://github.com/catppuccin/vscode-icons/blob/main/LICENSE --><g fill="none" stroke-linecap="round" stroke-linejoin="round"><path class="stroke-dark dark:stroke-light" d="M4.5 4.5H12A1.5 1.5 0 0 1 13.5 6v.5m-7.5 7H2A1.5 1.5 0 0 1 .5 12V3.5a1 1 0 0 1 1-1h5a1 1 0 0 1 1 1v1" /><path stroke="#65bb87" d="m10.5 8.5l-3 3.5l3 3.5m2-7l3 3.5l-3 3.5" /></g></svg>
|
|
18
18
|
</template>
|
|
@@ -13,6 +13,6 @@ const props = withDefaults(
|
|
|
13
13
|
</script>
|
|
14
14
|
|
|
15
15
|
<template>
|
|
16
|
-
<svg v-if="props.expanded" xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 16 16"><!-- Icon from Catppuccin Icons by Catppuccin - https://github.com/catppuccin/vscode-icons/blob/main/LICENSE --><g fill="none" stroke-linecap="round" stroke-linejoin="round"><path
|
|
17
|
-
<svg v-else xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 16 16"><!-- Icon from Catppuccin Icons by Catppuccin - https://github.com/catppuccin/vscode-icons/blob/main/LICENSE --><g fill="none" stroke-linecap="round" stroke-linejoin="round"><path
|
|
16
|
+
<svg v-if="props.expanded" xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 16 16"><!-- Icon from Catppuccin Icons by Catppuccin - https://github.com/catppuccin/vscode-icons/blob/main/LICENSE --><g fill="none" stroke-linecap="round" stroke-linejoin="round"><path class="stroke-dark dark:stroke-light" d="m1.875 8l.686-2.743a1 1 0 0 1 .97-.757h10.938a1 1 0 0 1 .97 1.243l-.315 1.26M6 13.5H2.004A1.5 1.5 0 0 1 .5 12V3.5a1 1 0 0 1 1-1h5a1 1 0 0 1 1 1v1" /><path stroke="#E23730" d="M14.692 8.5H9.308a.31.31 0 0 0-.307.336l.47 5.241c.01.128.1.235.223.27l2.303 1.153l2.308-1.153a.31.31 0 0 0 .225-.27L15 8.836a.31.31 0 0 0-.307-.336" /></g></svg>
|
|
17
|
+
<svg v-else xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 16 16"><!-- Icon from Catppuccin Icons by Catppuccin - https://github.com/catppuccin/vscode-icons/blob/main/LICENSE --><g fill="none" stroke-linecap="round" stroke-linejoin="round"><path class="stroke-dark dark:stroke-light" d="M4.5 4.5H12A1.5 1.5 0 0 1 13.5 6v.5m-7.5 7H2A1.5 1.5 0 0 1 .5 12V3.5a1 1 0 0 1 1-1h5a1 1 0 0 1 1 1v1" /><path stroke="#E23730" d="M14.692 8.5H9.308a.31.31 0 0 0-.307.336l.47 5.241c.01.128.1.235.223.27l2.303 1.153l2.308-1.153a.31.31 0 0 0 .225-.27L15 8.836a.31.31 0 0 0-.307-.336" /></g></svg>
|
|
18
18
|
</template>
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import { ref, watch } from 'vue';
|
|
3
|
+
|
|
4
|
+
defineOptions({ name: 'ResourceIconesBoxColorPicker' });
|
|
5
|
+
|
|
6
|
+
const props = defineProps<{ angle?: number | string, background?: Background, radius?: number | string, disabled?: boolean }>();
|
|
7
|
+
|
|
8
|
+
const emit = defineEmits<{
|
|
9
|
+
(e: 'update:angle', v: number | string): void
|
|
10
|
+
(e: 'update:background', v: Background): void
|
|
11
|
+
(e: 'update:radius', v: number | string): void
|
|
12
|
+
}>();
|
|
13
|
+
|
|
14
|
+
type Background = string | { from: string, to: string };
|
|
15
|
+
|
|
16
|
+
function normalizeAngle(a?: number | string): number {
|
|
17
|
+
if (typeof a === 'number' && Number.isFinite(a)) {
|
|
18
|
+
return (a % 360 + 360) % 360;
|
|
19
|
+
}
|
|
20
|
+
if (typeof a === 'string') {
|
|
21
|
+
const n = Number.parseFloat(a);
|
|
22
|
+
if (Number.isFinite(n)) {
|
|
23
|
+
return (n % 360 + 360) % 360;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
return 65;
|
|
27
|
+
}
|
|
28
|
+
function normalizeBg(b?: Background): { from: string, to: string } {
|
|
29
|
+
if (!b) {
|
|
30
|
+
return { from: '#65E54A', to: '#35C724' };
|
|
31
|
+
}
|
|
32
|
+
if (typeof b === 'string') {
|
|
33
|
+
return { from: b, to: b };
|
|
34
|
+
}
|
|
35
|
+
return { from: b.from, to: b.to };
|
|
36
|
+
}
|
|
37
|
+
function normalizeRadius(r?: number | string): number {
|
|
38
|
+
if (typeof r === 'number' && Number.isFinite(r)) {
|
|
39
|
+
return Math.max(0, r);
|
|
40
|
+
}
|
|
41
|
+
if (typeof r === 'string') {
|
|
42
|
+
const n = Number.parseFloat(r);
|
|
43
|
+
if (Number.isFinite(n)) {
|
|
44
|
+
return Math.max(0, n);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
return 6; // default px
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
const init = normalizeBg(props.background);
|
|
51
|
+
const fromColor = ref<string>(init.from);
|
|
52
|
+
const toColor = ref<string>(init.to);
|
|
53
|
+
const angleRef = ref<number>(normalizeAngle(props.angle));
|
|
54
|
+
const radiusRef = ref<number>(normalizeRadius(props.radius));
|
|
55
|
+
|
|
56
|
+
// 原生 color 输入:放在前缀里,用透明绝对定位来锚定弹层位置
|
|
57
|
+
const fromColorPickerRef = ref<HTMLInputElement | null>(null);
|
|
58
|
+
const toColorPickerRef = ref<HTMLInputElement | null>(null);
|
|
59
|
+
function openFromPicker() {
|
|
60
|
+
if (props.disabled) {
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
const el = fromColorPickerRef.value;
|
|
64
|
+
if (el) {
|
|
65
|
+
// 确保有尺寸与位置,避免浏览器把弹层放到左上角
|
|
66
|
+
el.style.width = '16px';
|
|
67
|
+
el.style.height = '16px';
|
|
68
|
+
el.click();
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
function openToPicker() {
|
|
72
|
+
if (props.disabled) {
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
const el = toColorPickerRef.value;
|
|
76
|
+
if (el) {
|
|
77
|
+
el.style.width = '16px';
|
|
78
|
+
el.style.height = '16px';
|
|
79
|
+
el.click();
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
watch([fromColor, toColor, angleRef, radiusRef], () => {
|
|
84
|
+
emit('update:background', { from: fromColor.value, to: toColor.value });
|
|
85
|
+
emit('update:angle', angleRef.value);
|
|
86
|
+
emit('update:radius', radiusRef.value);
|
|
87
|
+
}, { immediate: true });
|
|
88
|
+
|
|
89
|
+
watch(() => props.background, (b) => {
|
|
90
|
+
if (b == null) {
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
const n = normalizeBg(b);
|
|
94
|
+
fromColor.value = n.from;
|
|
95
|
+
toColor.value = n.to;
|
|
96
|
+
});
|
|
97
|
+
watch(() => props.angle, (a) => {
|
|
98
|
+
if (a == null) {
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
angleRef.value = normalizeAngle(a);
|
|
102
|
+
});
|
|
103
|
+
watch(() => props.radius, (r) => {
|
|
104
|
+
if (r == null) {
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
radiusRef.value = normalizeRadius(r);
|
|
108
|
+
});
|
|
109
|
+
|
|
110
|
+
// 提示:预览区已移除以节省侧栏空间
|
|
111
|
+
</script>
|
|
112
|
+
|
|
113
|
+
<template>
|
|
114
|
+
<div class="flex flex-col gap-3 w-full select-none">
|
|
115
|
+
<!-- 起始色:紧凑输入(前缀色块 + 文本),隐藏原生 color 触发器 -->
|
|
116
|
+
<div class="flex items-center gap-3">
|
|
117
|
+
<label class="text-12px opacity-70 w-14 shrink-0">起始色</label>
|
|
118
|
+
<a-input v-model:value="fromColor" :disabled="props.disabled" placeholder="#65E54A" size="small" class="flex-1 min-w-0">
|
|
119
|
+
<template #prefix>
|
|
120
|
+
<div class="relative inline-flex items-center">
|
|
121
|
+
<button type="button" :disabled="props.disabled" class="w-4 h-4 rounded border border-gray-300 dark:border-gray-700" :class="props.disabled ? 'opacity-50 cursor-not-allowed' : ''" :style="{ background: fromColor }" @click="openFromPicker" />
|
|
122
|
+
<!-- 透明绝对定位的原生 input,用于正确锚定系统取色器位置 -->
|
|
123
|
+
<input
|
|
124
|
+
ref="fromColorPickerRef"
|
|
125
|
+
type="color"
|
|
126
|
+
:value="fromColor"
|
|
127
|
+
:disabled="props.disabled"
|
|
128
|
+
class="absolute left-0 top-0 opacity-0 pointer-events-none"
|
|
129
|
+
style="width:16px;height:16px;"
|
|
130
|
+
@input="fromColor = ($event.target as HTMLInputElement).value"
|
|
131
|
+
>
|
|
132
|
+
</div>
|
|
133
|
+
</template>
|
|
134
|
+
</a-input>
|
|
135
|
+
</div>
|
|
136
|
+
|
|
137
|
+
<!-- 结束色:紧凑输入(前缀色块 + 文本),隐藏原生 color 触发器 -->
|
|
138
|
+
<div class="flex items-center gap-3">
|
|
139
|
+
<label class="text-12px opacity-70 w-14 shrink-0">结束色</label>
|
|
140
|
+
<a-input v-model:value="toColor" :disabled="props.disabled" placeholder="#35C724" size="small" class="flex-1 min-w-0">
|
|
141
|
+
<template #prefix>
|
|
142
|
+
<div class="relative inline-flex items-center">
|
|
143
|
+
<button type="button" :disabled="props.disabled" class="w-4 h-4 rounded border border-gray-300 dark:border-gray-700" :class="props.disabled ? 'opacity-50 cursor-not-allowed' : ''" :style="{ background: toColor }" @click="openToPicker" />
|
|
144
|
+
<input
|
|
145
|
+
ref="toColorPickerRef"
|
|
146
|
+
type="color"
|
|
147
|
+
:value="toColor"
|
|
148
|
+
:disabled="props.disabled"
|
|
149
|
+
class="absolute left-0 top-0 opacity-0 pointer-events-none"
|
|
150
|
+
style="width:16px;height:16px;"
|
|
151
|
+
@input="toColor = ($event.target as HTMLInputElement).value"
|
|
152
|
+
>
|
|
153
|
+
</div>
|
|
154
|
+
</template>
|
|
155
|
+
</a-input>
|
|
156
|
+
</div>
|
|
157
|
+
|
|
158
|
+
<!-- 角度:仅使用数字输入,节省横向空间 -->
|
|
159
|
+
<div class="flex items-center gap-3">
|
|
160
|
+
<label class="text-12px opacity-70 w-14 shrink-0">角度</label>
|
|
161
|
+
<a-input-number v-model:value="angleRef" :disabled="props.disabled" :min="0" :max="360" :step="1" size="small" class="w-28" />
|
|
162
|
+
<span class="text-12px opacity-70">deg</span>
|
|
163
|
+
</div>
|
|
164
|
+
|
|
165
|
+
<!-- 圆角:仅使用数字输入,节省横向空间 -->
|
|
166
|
+
<div class="flex items-center gap-3">
|
|
167
|
+
<label class="text-12px opacity-70 w-14 shrink-0">圆角</label>
|
|
168
|
+
<a-input-number v-model:value="radiusRef" :disabled="props.disabled" :min="0" :max="48" :step="1" size="small" class="w-28" />
|
|
169
|
+
<span class="text-12px opacity-70">px</span>
|
|
170
|
+
</div>
|
|
171
|
+
</div>
|
|
172
|
+
</template>
|