@yqg/permission 1.2.0 → 1.3.0-alpha.0

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.
Files changed (45) hide show
  1. package/README.md +50 -38
  2. package/dist/apply-modal-CpmDDWWV.js +12865 -0
  3. package/dist/category-selector-BQ0-kg3o.js +1275 -0
  4. package/dist/index-D_0ZQip-.js +2972 -0
  5. package/dist/index-wLkVeDMW.js +5040 -0
  6. package/dist/index.js +2 -2
  7. package/dist/permission-item-Df_aagL1.js +1266 -0
  8. package/dist/{yqg-permission-Bxzu3bMl.js → yqg-permission-BjVCs5lN.js} +3483 -3538
  9. package/dist/yqg-permission.umd.js +250 -0
  10. package/package.json +13 -3
  11. package/plugins/alioss.ts +237 -0
  12. package/src/App.vue +7 -8
  13. package/src/assets/category.png +0 -0
  14. package/src/axios/index.ts +6 -1
  15. package/src/components/apply-modal.vue +254 -157
  16. package/src/components/category-selector.vue +130 -0
  17. package/src/components/permission-item.vue +230 -0
  18. package/src/components/success-modal.vue +4 -4
  19. package/src/components/yqg-permission.vue +23 -110
  20. package/src/hooks/useAttributesCache.ts +21 -0
  21. package/src/hooks/useCategory.ts +21 -0
  22. package/src/hooks/useDragable.ts +9 -10
  23. package/src/hooks/useFormat.ts +50 -0
  24. package/src/hooks/useStatus.ts +82 -0
  25. package/src/i18n/zh-CH.ts +9 -2
  26. package/src/main.ts +2 -0
  27. package/src/typings/index.d.ts +40 -7
  28. package/src/utils/index.ts +9 -0
  29. package/src/yqg-permission/index.ts +13 -1
  30. package/vite.config.ts +18 -2
  31. package/dist/apply-modal-BBqMmKS2.js +0 -8742
  32. package/dist/checkbox-item-CFWhXmMU.js +0 -4991
  33. package/dist/index-BAGvIeoy.js +0 -6164
  34. package/dist/index.umd.cjs +0 -259
  35. package/dist_/345/211/257/346/234/254/apply-modal-Bgd3UWf-.js +0 -8739
  36. package/dist_/345/211/257/346/234/254/card.png +0 -0
  37. package/dist_/345/211/257/346/234/254/checkbox-item-DiIgFuBE.js +0 -4988
  38. package/dist_/345/211/257/346/234/254/dialog.png +0 -0
  39. package/dist_/345/211/257/346/234/254/image.png +0 -0
  40. package/dist_/345/211/257/346/234/254/index-CUS1Jydp.js +0 -6164
  41. package/dist_/345/211/257/346/234/254/index.js +0 -5
  42. package/dist_/345/211/257/346/234/254/index.umd.cjs +0 -259
  43. package/dist_/345/211/257/346/234/254/yqg-permission-ChMRXqi6.js +0 -14944
  44. package/src/assets/apply.png +0 -0
  45. package/src/components/checkbox-item.vue +0 -201
package/src/i18n/zh-CH.ts CHANGED
@@ -26,17 +26,24 @@ export default {
26
26
  availableTime: '有效期',
27
27
  selectPlaceholder: '请选择权限点',
28
28
  reasonPlaceholder: '请输入申请理由',
29
+ pleaseChoose: '请选择',
29
30
  maxCountTips: '一次最多只可申请{count}个权限',
30
31
  maxLengthTips: '最多{length}个字符',
31
- lastDays: '{count}天后到期',
32
- taday: '今天到期',
32
+ today: '今天到期',
33
33
  clickToApply: '点击申请权限',
34
34
  noPermissionTips: '该菜单下暂无权限点',
35
+ lastDays: '{count}天',
36
+ categoryTips: '当前您所拥有的数据范围如下:',
37
+ empty: '空',
38
+ category: '数据权限',
39
+ categotySelectTips: '上方选中的权限包含数据权限,请根据实际工作需要申请/更改数据范围',
40
+ categoryChangeTips: '提醒:您选择的数据权限范围较大!请确认实际工作场景是否需要全量「部门」权限,并在申请理由中写明,避免审批不通过!',
35
41
  availiables: {
36
42
  SEVEN_DAYS: '7天',
37
43
  THIRTY_DAYS: '30天',
38
44
  SIXTY_DAYS: '60天',
39
45
  NINETY_DAYS: '90天',
46
+ ONE_YEARS: '1年',
40
47
  FOREVER: '永久有效',
41
48
  },
42
49
  levels: {
package/src/main.ts CHANGED
@@ -7,3 +7,5 @@ yqgPermission.init();
7
7
 
8
8
  const app = createApp(App);
9
9
  app.mount('#app');
10
+
11
+
@@ -15,20 +15,31 @@ declare type PermissionType = {
15
15
  name: string;
16
16
  roleId: number;
17
17
  desc: string;
18
- businessCode: string;
19
- feature: string;
18
+ businessCode: string;
19
+ feature: string;
20
20
  validTime?: string;
21
- operationType: string;
22
- securityLevel: LevelType;
23
- relatedDepartments?: any[];
21
+ operationType: string;
22
+ securityLevel: LevelType;
23
+ relatedDepartments?: any[];
24
24
  relatedCompleteNames: string[];
25
25
  relatedDepartmentIds?: number[];
26
26
  curDepartmentId?: number;
27
27
  businessApplyType: StatusType;
28
+ pendingValidTime?: string;
29
+ virtualOwnState?: {
30
+ timeStatus?: any;
31
+ dayDiff?: any;
32
+ };
28
33
  oaFlowUrl?: string;
29
34
  children?: PermissionListType;
30
35
  ownStatusVO: any;
36
+ shortName?: string;
37
+ categoryVOS?: any[];
38
+ key?: string;
31
39
  admin?: any[];
40
+ checked?: boolean;
41
+ disabled?: boolean;
42
+ children?: PermissionListType;
32
43
  };
33
44
  declare type PermissionListType = PermissionType[];
34
45
 
@@ -48,13 +59,35 @@ declare type StatusMapType = {
48
59
  };
49
60
 
50
61
  declare type formStateType = {
51
- applyBusinessCode: string,
52
- roleIds: number[],
62
+ features: string[],
53
63
  roleVoList: any[],
54
64
  applyReason: string,
65
+ dataRule: {
66
+ ruleItems: any[],
67
+ },
55
68
  submitWorkNumber: string,
69
+ };
70
+
71
+ declare type CategoryType = {
72
+ id: number,
73
+ attributeValues?: any[],
74
+ categoryName: string,
75
+ attributeValueIds?: number[],
76
+ configWay: Category,
77
+ attributeValueIds_view: number[],
78
+ }
56
79
 
80
+ declare type OptionsType = {
81
+ value: string;
82
+ label: string;
83
+ [key in string]: any
57
84
  };
85
+
86
+ declare enum Category {
87
+ AUTO = 'AUTO',
88
+ MANAL = 'MANAL'
89
+ }
90
+
58
91
  declare interface Window {
59
92
  YQG_PERMISSION_CALLBACK?: () => void;
60
93
  }
@@ -44,4 +44,13 @@ export const formatOptions = (enumkey:string) => {
44
44
  })
45
45
  };
46
46
 
47
+ export const deepTree = (tree: any[], fn: (item:any) => void) => {
48
+ for (let i = 0; i < tree.length; i++) {
49
+ fn(tree[i]);
50
+ if (tree[i].children && tree[i].children.length) {
51
+ deepTree(tree[i].children, fn);
52
+ }
53
+ }
54
+ }
55
+
47
56
  export default t;
@@ -54,8 +54,20 @@ class YqgPermission implements YqgPermissionType {
54
54
  return;
55
55
  }
56
56
 
57
+
57
58
  defineElement(this.tagName);
58
59
  };
59
60
  }
60
61
 
61
- export default new YqgPermission();
62
+ const yqgPermission = new YqgPermission();
63
+
64
+
65
+ // 如果DOM已经加载完成,直接执行
66
+ if (document.readyState === 'complete' || document.readyState === 'interactive') {
67
+ yqgPermission.init();
68
+ } else {
69
+ // 否则等待DOM加载完成
70
+ document.addEventListener('DOMContentLoaded', () => yqgPermission.init());
71
+ }
72
+
73
+ export default yqgPermission;
package/vite.config.ts CHANGED
@@ -2,10 +2,18 @@ import vue from '@vitejs/plugin-vue';
2
2
  import { defineConfig } from 'vite';
3
3
 
4
4
  import cssInjectedByJsPlugin from 'vite-plugin-css-injected-by-js'
5
+ import alioss from "./plugins/alioss";
6
+ import pkg from "./package.json";
5
7
 
6
8
  // https://vite.dev/config/
7
9
  export default defineConfig({
8
- plugins: [vue(), cssInjectedByJsPlugin()],
10
+ plugins: [
11
+ vue(),
12
+ cssInjectedByJsPlugin(),
13
+ alioss({
14
+ cdnDir: `cdn/yqg-permission/${pkg.version}/`
15
+ }),
16
+ ],
9
17
  resolve: {
10
18
  alias: {
11
19
  '@': '/src',
@@ -25,8 +33,16 @@ export default defineConfig({
25
33
  lib: {
26
34
  entry: 'src/yqg-permission/index.ts',
27
35
  name: 'yqg-permission',
28
- fileName: 'index',
36
+ fileName: (format) => {
37
+ if (format === 'umd') {
38
+ return 'yqg-permission.umd.js'; // UMD 格式的输出文件名
39
+ }
40
+ return 'index.js'; // ESM 格式的输出文件名
41
+ },
29
42
  formats: ['es', 'umd'],
30
43
  },
31
44
  },
45
+ define: {
46
+ 'process.env.NODE_ENV': JSON.stringify('production'), // 手动替换
47
+ },
32
48
  });