cosey 0.9.3 → 0.9.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/README.md CHANGED
@@ -68,5 +68,12 @@ Cosey 基于 element-plus 并补充了众多组件,意在使开发者更加专
68
68
  - 打包案例 `npm run build`
69
69
  - 打包文档 `npm run docs:build`
70
70
  - 部署案例和文档 `npm run cosey:deploy`
71
- - 暂存提交代码
72
71
  - 更新 `create-cosey` 中 `cosey` 包的版本
72
+
73
+ ## 推送代码流程
74
+
75
+ - 暂存提交代码
76
+ - 打标签 `npm run tag`
77
+ - 生成更新日志 `npm run changelog`
78
+ - 暂存、提交 changelog `git commit -a -m 'chore: changelog'`
79
+ - 推送
@@ -1,4 +1,4 @@
1
- import type { ExtractPropTypes, SlotsType, PropType } from 'vue';
1
+ import type { ExtractPropTypes, SlotsType, PropType, VNodeChild } from 'vue';
2
2
  export declare const formGroupProps: {
3
3
  alignment: {
4
4
  type: PropType<"stretch" | "center" | "flex-start" | "flex-end">;
@@ -13,7 +13,10 @@ export declare const formGroupProps: {
13
13
  default: boolean;
14
14
  };
15
15
  title: {
16
- type: (NumberConstructor | StringConstructor)[];
16
+ type: PropType<VNodeChild>;
17
+ };
18
+ tooltip: {
19
+ type: PropType<VNodeChild>;
17
20
  };
18
21
  borderStyle: {
19
22
  type: PropType<"none" | "solid" | "dashed" | "dotted">;
@@ -38,7 +41,7 @@ export declare const formGroupProps: {
38
41
  readonly default: "horizontal";
39
42
  };
40
43
  spacer: {
41
- readonly type: PropType<import("vue").VNodeChild | import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
44
+ readonly type: PropType<VNodeChild | import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
42
45
  [key: string]: any;
43
46
  }>>;
44
47
  readonly required: false;
@@ -64,7 +67,9 @@ export declare const formGroupProps: {
64
67
  };
65
68
  export type FormGroupProps = ExtractPropTypes<typeof formGroupProps>;
66
69
  export interface FormGroupSlots {
67
- default: {};
70
+ default?: {};
71
+ tooltip?: {};
72
+ title?: {};
68
73
  }
69
74
  export declare const formGroupSlots: SlotsType<FormGroupSlots>;
70
75
  export declare const formGroupEmits: {
@@ -17,7 +17,10 @@ const formGroupProps = {
17
17
  default: true
18
18
  },
19
19
  title: {
20
- type: [String, Number]
20
+ type: null
21
+ },
22
+ tooltip: {
23
+ type: null
21
24
  },
22
25
  borderStyle: {
23
26
  type: String
@@ -12,7 +12,10 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
12
12
  default: boolean;
13
13
  };
14
14
  title: {
15
- type: (NumberConstructor | StringConstructor)[];
15
+ type: import("vue").PropType<import("vue").VNodeChild>;
16
+ };
17
+ tooltip: {
18
+ type: import("vue").PropType<import("vue").VNodeChild>;
16
19
  };
17
20
  borderStyle: {
18
21
  type: import("vue").PropType<"none" | "solid" | "dashed" | "dotted">;
@@ -76,7 +79,10 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
76
79
  default: boolean;
77
80
  };
78
81
  title: {
79
- type: (NumberConstructor | StringConstructor)[];
82
+ type: import("vue").PropType<import("vue").VNodeChild>;
83
+ };
84
+ tooltip: {
85
+ type: import("vue").PropType<import("vue").VNodeChild>;
80
86
  };
81
87
  borderStyle: {
82
88
  type: import("vue").PropType<"none" | "solid" | "dashed" | "dotted">;
@@ -3,6 +3,7 @@ import { formGroupEmits, formGroupSlots, formGroupProps } from './form-group.api
3
3
  import { reactiveOmit } from '@vueuse/core';
4
4
  import stdin_default$2 from '../icon/icon.vue.js';
5
5
  import stdin_default$1 from './form-group.style.js';
6
+ import { ElTooltip } from 'element-plus';
6
7
  import { useComponentConfig } from '../config-provider/config-provider.api.js';
7
8
 
8
9
  var stdin_default = defineComponent({
@@ -43,7 +44,7 @@ var stdin_default = defineComponent({
43
44
  "style": {
44
45
  borderStyle: isBordered.value ? props.borderStyle : void 0
45
46
  }
46
- }, [props.title && createVNode("div", {
47
+ }, [(props.title || slots.title) && createVNode("div", {
47
48
  "class": [`${prefixCls.value}-title`, `is-${props.position}`]
48
49
  }, [createVNode("div", {
49
50
  "style": {
@@ -55,7 +56,16 @@ var stdin_default = defineComponent({
55
56
  }, [props.collapsible && createVNode(stdin_default$2, {
56
57
  "name": innerCollapsed.value ? "co:caret-up" : "co:caret-down",
57
58
  "size": "xl"
58
- }, null), props.title])]), withDirectives(createVNode(resolveComponent("el-space"), mergeProps(spaceProps, {
59
+ }, null), props.title || slots.title?.(), (props.tooltip || slots.tooltip) && createVNode(ElTooltip, {
60
+ "placement": "top"
61
+ }, {
62
+ content: () => props.tooltip || slots.tooltip?.(),
63
+ default: () => createVNode(stdin_default$2, {
64
+ "name": "co:help",
65
+ "class": `${prefixCls.value}-title-icon`,
66
+ "size": "md"
67
+ }, null)
68
+ })])]), withDirectives(createVNode(resolveComponent("el-space"), mergeProps(spaceProps, {
59
69
  "style": {
60
70
  display: "flex",
61
71
  minWidth: 0
@@ -35,6 +35,11 @@ var stdin_default = getSimpleStyleHook("CoFormGroup", (token) => {
35
35
  insetInlineEnd: token.sizeMD,
36
36
  transform: "translateY(-50%)"
37
37
  }
38
+ },
39
+ [`${componentCls}-title-icon`]: {
40
+ marginInlineStart: token.marginXXS,
41
+ cursor: "pointer",
42
+ alignSelf: "center"
38
43
  }
39
44
  }
40
45
  };
@@ -14,7 +14,10 @@ declare const _FormGroup: {
14
14
  default: boolean;
15
15
  };
16
16
  title: {
17
- type: (NumberConstructor | StringConstructor)[];
17
+ type: import("vue").PropType<import("vue").VNodeChild>;
18
+ };
19
+ tooltip: {
20
+ type: import("vue").PropType<import("vue").VNodeChild>;
18
21
  };
19
22
  borderStyle: {
20
23
  type: import("vue").PropType<"none" | "solid" | "dashed" | "dotted">;
@@ -100,7 +103,10 @@ declare const _FormGroup: {
100
103
  default: boolean;
101
104
  };
102
105
  title: {
103
- type: (NumberConstructor | StringConstructor)[];
106
+ type: import("vue").PropType<import("vue").VNodeChild>;
107
+ };
108
+ tooltip: {
109
+ type: import("vue").PropType<import("vue").VNodeChild>;
104
110
  };
105
111
  borderStyle: {
106
112
  type: import("vue").PropType<"none" | "solid" | "dashed" | "dotted">;
@@ -181,7 +187,10 @@ declare const _FormGroup: {
181
187
  default: boolean;
182
188
  };
183
189
  title: {
184
- type: (NumberConstructor | StringConstructor)[];
190
+ type: import("vue").PropType<import("vue").VNodeChild>;
191
+ };
192
+ tooltip: {
193
+ type: import("vue").PropType<import("vue").VNodeChild>;
185
194
  };
186
195
  borderStyle: {
187
196
  type: import("vue").PropType<"none" | "solid" | "dashed" | "dotted">;
package/config/index.d.ts CHANGED
@@ -47,6 +47,7 @@ export interface LayoutSlots {
47
47
  afterToggle?: () => VNodeChild;
48
48
  }
49
49
  type FilterRouteHandler = (route: RouteRecordRaw) => RouteRecordRaw | void | boolean | undefined | null;
50
+ type DefineAuthorityHandler = (userInfo: Record<any, any>) => void | Promise<void>;
50
51
  export type CoseyOptions = {
51
52
  router?: CoseyRouterOptions & RouterConfig;
52
53
  persist?: PersistConfig;
@@ -57,7 +58,9 @@ export type CoseyOptions = {
57
58
  filterRoute?: {
58
59
  hook: () => FilterRouteHandler;
59
60
  } | FilterRouteHandler;
60
- defineAuthority?: (userInfo: Record<any, any>) => void | Promise<void>;
61
+ defineAuthority?: {
62
+ hook: () => DefineAuthorityHandler;
63
+ } | DefineAuthorityHandler;
61
64
  components?: LayoutComponents;
62
65
  slots?: LayoutSlots;
63
66
  };
@@ -68,7 +71,7 @@ export interface GlobalConfig {
68
71
  site: RequiredSiteConfig;
69
72
  api: RequiredApiConfig;
70
73
  filterRoute: NonNullable<CoseyOptions['filterRoute']>;
71
- defineAuthority?: CoseyOptions['defineAuthority'];
74
+ defineAuthority: NonNullable<CoseyOptions['defineAuthority']>;
72
75
  components: NonNullable<CoseyOptions['components']>;
73
76
  slots: NonNullable<CoseyOptions['slots']>;
74
77
  }
package/config/index.js CHANGED
@@ -18,7 +18,7 @@ function provideGlobalConfig(app, options) {
18
18
  site = {},
19
19
  api = {},
20
20
  filterRoute = () => true,
21
- defineAuthority,
21
+ defineAuthority = () => void 0,
22
22
  components = {},
23
23
  slots = {}
24
24
  } = options;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cosey",
3
- "version": "0.9.3",
3
+ "version": "0.9.5",
4
4
  "description": "基于 Vue3 + vite 的后台管理系统框架",
5
5
  "type": "module",
6
6
  "main": "index.js",
package/store/user.d.ts CHANGED
@@ -12,7 +12,7 @@ export declare const useUserStore: import("pinia").StoreDefinition<"cosey-user",
12
12
  login: (data: any) => Promise<void>;
13
13
  getUserInfo: () => Promise<UserInfo | undefined>;
14
14
  changePassword: (data: any) => Promise<void>;
15
- setAuthorization: () => Promise<void | undefined>;
15
+ setAuthorization: () => Promise<void>;
16
16
  addDynamicRoutes: () => Promise<void>;
17
17
  logout: (lastPath?: string) => Promise<void>;
18
18
  }, "dynamicRoutes" | "userInfo" | "requestedUserInfo">, Pick<{
@@ -22,7 +22,7 @@ export declare const useUserStore: import("pinia").StoreDefinition<"cosey-user",
22
22
  login: (data: any) => Promise<void>;
23
23
  getUserInfo: () => Promise<UserInfo | undefined>;
24
24
  changePassword: (data: any) => Promise<void>;
25
- setAuthorization: () => Promise<void | undefined>;
25
+ setAuthorization: () => Promise<void>;
26
26
  addDynamicRoutes: () => Promise<void>;
27
27
  logout: (lastPath?: string) => Promise<void>;
28
28
  }, never>, Pick<{
@@ -32,7 +32,7 @@ export declare const useUserStore: import("pinia").StoreDefinition<"cosey-user",
32
32
  login: (data: any) => Promise<void>;
33
33
  getUserInfo: () => Promise<UserInfo | undefined>;
34
34
  changePassword: (data: any) => Promise<void>;
35
- setAuthorization: () => Promise<void | undefined>;
35
+ setAuthorization: () => Promise<void>;
36
36
  addDynamicRoutes: () => Promise<void>;
37
37
  logout: (lastPath?: string) => Promise<void>;
38
38
  }, "changePassword" | "login" | "logout" | "getUserInfo" | "setAuthorization" | "addDynamicRoutes">>;
package/store/user.js CHANGED
@@ -20,6 +20,7 @@ const useUserStore = defineStore("cosey-user", () => {
20
20
  defineAuthority
21
21
  } = useGlobalConfig() || {};
22
22
  const filterRouteHandler = isFunction(filterRoute) ? filterRoute : filterRoute.hook();
23
+ const defineAuthorityHandler = isFunction(defineAuthority) ? defineAuthority : defineAuthority.hook();
23
24
  if (!apiConfig?.login) {
24
25
  warningOnce(!!apiConfig?.login, 'The "login" api is required.');
25
26
  }
@@ -57,7 +58,7 @@ const useUserStore = defineStore("cosey-user", () => {
57
58
  });
58
59
  };
59
60
  const setAuthorization = async () => {
60
- return defineAuthority?.(userInfo.value);
61
+ return defineAuthorityHandler(userInfo.value);
61
62
  };
62
63
  const mapRoute = (routes) => {
63
64
  return routes.map((route2) => {