@utogether/udp-core 1.0.1-beta.31 → 1.0.1-beta.32

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 (63) hide show
  1. package/dist/{403-DdjDWbkf.js → 403-DLYfAuxQ.js} +1 -1
  2. package/dist/{404-D9vF2gFz.js → 404-Dbia1q49.js} +1 -1
  3. package/dist/{500-mVaDmUjL.js → 500-D-lYtMVC.js} +1 -1
  4. package/dist/{AuthorityInfo-DOUJ_Zrj.js → AuthorityInfo-CzwPQkCw.js} +1 -1
  5. package/dist/{AuthorityInfo.vue_vue_type_style_index_0_lang-B12sAzqt.js → AuthorityInfo.vue_vue_type_style_index_0_lang-Bfhd2bS5.js} +1 -1
  6. package/dist/{Company-DY__kM9F.js → Company-DCV5YuUr.js} +3 -3
  7. package/dist/{CompanyPanel-C5N8QcMA.js → CompanyPanel-aHbBOEwl.js} +1 -1
  8. package/dist/{Department-DsuDZdy5.js → Department-Dr3h5Fmh.js} +3 -3
  9. package/dist/{DepartmentPanel-CdwI7Rzu.js → DepartmentPanel-D6hgPI7g.js} +1 -1
  10. package/dist/{DesignPanel-B50-g0TL.js → DesignPanel-aWfP0ky_.js} +1 -1
  11. package/dist/{DesignPanel.vue_vue_type_style_index_0_lang-KV8JOZ6v.js → DesignPanel.vue_vue_type_style_index_0_lang-dHqOw_C8.js} +2 -2
  12. package/dist/{DictView-Be2Z5Obk.js → DictView-C6BZSW-5.js} +1 -1
  13. package/dist/{InvOrganization-Lui1q3Ou.js → InvOrganization-Di4T9Yfv.js} +1 -1
  14. package/dist/{Org-qO5ExsPN.js → Org-B17U28sX.js} +1 -1
  15. package/dist/{Preview-Dq4dfV2D.js → Preview-DlJ0SVhC.js} +1 -1
  16. package/dist/{ReportDefine-DH3FvbS1.js → ReportDefine-j6hxdlwz.js} +1 -1
  17. package/dist/{ReportDesign-Bou01Jbr.js → ReportDesign-CboMxsOv.js} +2 -2
  18. package/dist/{ReportQuery-BBkmPPSw.js → ReportQuery-DVT6Sf78.js} +1 -1
  19. package/dist/{ReportQueryFrom-BCY8lTJ7.js → ReportQueryFrom-BpuVqVb3.js} +1 -1
  20. package/dist/{ReportQueryFrom.vue_vue_type_style_index_0_lang-CpktcM8J.js → ReportQueryFrom.vue_vue_type_style_index_0_lang-C_I5wzcF.js} +1 -1
  21. package/dist/{ReportTemplate-C_yJXxQ-.js → ReportTemplate-DWFO4scM.js} +1 -1
  22. package/dist/{Role-CTatYsrC.js → Role-Dwx6GFtP.js} +3 -3
  23. package/dist/{RoleAssign-Cqt3CelK.js → RoleAssign-D76npmCu.js} +3 -3
  24. package/dist/{RolePanel-brKRJIhD.js → RolePanel-CvkGsh3U.js} +1 -1
  25. package/dist/{RolePanel-C3JMpNu8.js → RolePanel-DQMplA4X.js} +1 -1
  26. package/dist/{RolePanel.vue_vue_type_script_setup_true_lang-i6Gq4r5B.js → RolePanel.vue_vue_type_script_setup_true_lang-Cj-TVMi3.js} +3 -3
  27. package/dist/{RolePanel.vue_vue_type_script_setup_true_lang-DD8u9pq8.js → RolePanel.vue_vue_type_script_setup_true_lang-VGjX0Dl_.js} +1 -1
  28. package/dist/{ScrollPanel.vue_vue_type_style_index_0_lang-CiWKyjm3.js → ScrollPanel.vue_vue_type_style_index_0_lang-Bop3syHe.js} +1 -1
  29. package/dist/{Staff-Cd3twQ6Y.js → Staff-BVpoMX1g.js} +3 -3
  30. package/dist/{StaffInfo-DJp0a0qd.js → StaffInfo-CWH7TI9s.js} +1 -1
  31. package/dist/{StaffInfo.vue_vue_type_script_setup_true_lang-Dp2AhJ4I.js → StaffInfo.vue_vue_type_script_setup_true_lang-CEj5vyAQ.js} +1 -1
  32. package/dist/{StaffPanel-B93hClzs.js → StaffPanel-BwkqWADn.js} +1 -1
  33. package/dist/{StaffPanel.vue_vue_type_script_setup_true_lang-CXjUzq7n.js → StaffPanel.vue_vue_type_script_setup_true_lang-BxPzaa3W.js} +2 -2
  34. package/dist/{SysUser-BvI6vaqI.js → SysUser-CPOQdEDe.js} +2 -2
  35. package/dist/{SysUserPanel-C9V8X-Ek.js → SysUserPanel-BGgwJ_bN.js} +1 -1
  36. package/dist/{SysUserPanel.vue_vue_type_script_setup_true_lang-bMqTui07.js → SysUserPanel.vue_vue_type_script_setup_true_lang-CvdwDd5f.js} +1 -1
  37. package/dist/{SystemMenu-D4WME5d0.js → SystemMenu-CXuvLpQK.js} +2 -2
  38. package/dist/{UserInfo-D-AfdfJs.js → UserInfo-DKJcPle2.js} +1 -1
  39. package/dist/{UserInfo.vue_vue_type_style_index_0_lang-C-JQYIxe.js → UserInfo.vue_vue_type_style_index_0_lang-PQykib4V.js} +1 -1
  40. package/dist/{childView--WMSo-wH.js → childView-CMj_YAGv.js} +1 -1
  41. package/dist/{childView-1MTl6Kaj.js → childView-g70n6Kcs.js} +1 -1
  42. package/dist/{childView.vue_vue_type_style_index_0_lang-BAVKNIXs.js → childView.vue_vue_type_style_index_0_lang-BXtLCHP4.js} +1 -1
  43. package/dist/{childView.vue_vue_type_style_index_0_lang-B8Losc4Y.js → childView.vue_vue_type_style_index_0_lang-CNmv6fzC.js} +1 -1
  44. package/dist/{code-rule-D-RqrQB6.js → code-rule-C1rsgSRN.js} +1 -1
  45. package/dist/core.es.js +1 -1
  46. package/dist/{cron-task-D-X-KFZm.js → cron-task-ROksyptX.js} +1 -1
  47. package/dist/{frameView-MAW_-GHJ.js → frameView-DcwD2TEs.js} +1 -1
  48. package/dist/{index-Bc9vCX7z.js → index-BKhbKGvC.js} +47 -47
  49. package/dist/{layoutView-De2QIEr2.js → layoutView-CFo0E1DS.js} +1 -1
  50. package/dist/{log-in-CpGqc33f.js → log-in-DOv3qOBu.js} +35 -29
  51. package/dist/{log-out-D1b4VRMZ.js → log-out-BSNd2HVZ.js} +31 -27
  52. package/dist/{login-rdZ0GPYc.js → login-CHUYfjve.js} +1 -1
  53. package/dist/{lov-view-Ao7LMspL.js → lov-view-BiXB86w3.js} +2 -2
  54. package/dist/{menuInfo-DmOcK6An.js → menuInfo-Dq-wXWNe.js} +1 -1
  55. package/dist/{menuInfo.vue_vue_type_style_index_0_lang-Ln-zFWV7.js → menuInfo.vue_vue_type_style_index_0_lang-D7fF5i_x.js} +1 -1
  56. package/dist/{pda-app-DY63mQ2T.js → pda-app-C_IKAhyR.js} +1 -1
  57. package/dist/{resource-B21uV58T.js → resource-MU1MeWNh.js} +1 -1
  58. package/dist/{su-welcome-DgjzJeDF.js → su-welcome-WHp1Gzqh.js} +1 -1
  59. package/dist/{sys-config-DOtK2I32.js → sys-config-cYl1uX-X.js} +1 -1
  60. package/package.json +1 -1
  61. package/src/views/upms/interface/log-in.vue +100 -100
  62. package/src/views/upms/interface/log-out.vue +104 -101
  63. package/types/global.d.ts +231 -230
@@ -1,101 +1,104 @@
1
- <!--
2
- * @Author: wei.li
3
- * @Date: 2021-12-23 11:22:51
4
- * @LastEditors: levi7754 levi7754@163.com
5
- * @LastEditTime: 2025-04-08 15:36:36
6
- * @Description: 出站接口日志
7
- -->
8
-
9
- <template>
10
- <div>
11
- <ut-grid ref="SuGridRef" :items="formItems" :columns="columns" url="/upms/v1/invokeOutbound" :editable="false" />
12
-
13
- <ut-modal-form
14
- v-if="data.showModal"
15
- ref="suModalRef"
16
- :record="data.record"
17
- :items="items"
18
- :width="640"
19
- :height="480"
20
- :title="data.title"
21
- @close="data.showModal = false"
22
- />
23
- </div>
24
- </template>
25
- <script lang="tsx">
26
- export default {
27
- name: 'LogoutLog'
28
- };
29
- </script>
30
- <script setup lang="tsx">
31
- import { ref, reactive } from 'vue';
32
- // import { useRouter } from 'vue-router';
33
- // import to from 'await-to-js';
34
- // import { clone } from 'xe-utils';
35
- import { useRender } from '@utogether/utils';
36
-
37
- const renderHook = useRender();
38
- // const renderOption = renderOptions();
39
-
40
- // const router = useRouter();
41
-
42
- const data = reactive({
43
- showModal: false,
44
- record: {},
45
- title: ''
46
- });
47
-
48
- const formItems = [
49
- { field: 'interfaceName' },
50
- { field: 'interfaceUrl' },
51
- { field: 'requestParameter' },
52
- { field: 'responseContent' },
53
- // { field: 'ip', },
54
- { field: 'requestDate', itemRender: { name: '#SuDateRange', props: { type: 'daterange' } } },
55
- { field: 'requestStatus', itemRender: renderHook.renderDict('SU.REQUEST.STATUS') }
56
- ];
57
-
58
- const items = [
59
- { field: 'requestParameter', itemRender: { name: '$textarea', props: { rows: 5 } } },
60
- {
61
- field: 'responseContent',
62
- itemRender: { name: '$textarea', props: { rows: 10 } }
63
- },
64
- { field: 'stacktrace', itemRender: { name: '$textarea', props: { rows: 3 } } }
65
- ];
66
-
67
- const SuGridRef = ref(null);
68
- // 列字段
69
- const columns = [
70
- { field: 'interfaceName', minWidth: 120 },
71
- { field: 'interfaceUrl', minWidth: 150 },
72
- // { field: 'ip', width: 120 },
73
- { field: 'requestDate', width: 160 },
74
- { field: 'responseTimeConsume', width: 120 },
75
- { field: 'requestStatus', width: 90, formatter: ['formatDict', 'SU.REQUEST.STATUS'] },
76
- {
77
- field: 'operate',
78
- width: 70,
79
- slots: {
80
- default: ({ row }) => {
81
- if (!row.id) return null;
82
- return [
83
- <>
84
- <ut-button content="detail" icon="ri-eye-line ri-1x" onTap={() => handleShowDetail(row)} />
85
- </>
86
- ];
87
- }
88
- }
89
- }
90
- ];
91
- // 详情
92
- const handleShowDetail = record => {
93
- // const resContent = JSON.parse(record.responseContent);
94
- // console.log(resContent);
95
- // record.resContent = resContent?.data?.list || resContent?.data;
96
- // record.resContent = record.resContent ? JSON.stringify(record.resContent) : '';
97
- data.record = record;
98
- data.showModal = true;
99
- data.title = `【${record.interfaceName}】接口明细`;
100
- };
101
- </script>
1
+ <!--
2
+ * @Author: wei.li
3
+ * @Date: 2021-12-23 11:22:51
4
+ * @LastEditors: levi7754 levi7754@163.com
5
+ * @LastEditTime: 2025-11-21 18:17:10
6
+ * @Description: 出站接口日志
7
+ -->
8
+
9
+ <template>
10
+ <div>
11
+ <ut-grid ref="xgrid" :items="formItems" :columns="columns" :url="url" :editable="false" />
12
+
13
+ <ut-modal-form
14
+ v-if="data.showModal"
15
+ ref="suModalRef"
16
+ :record="data.record"
17
+ :items="items"
18
+ :width="640"
19
+ :height="480"
20
+ :title="data.title"
21
+ @close="data.showModal = false"
22
+ />
23
+ </div>
24
+ </template>
25
+
26
+ <script setup lang="tsx">
27
+ import { ref, reactive } from 'vue';
28
+ import { useRender } from '@utogether/utils';
29
+
30
+ import { getEnv } from '../../../config';
31
+ import to from 'await-to-js';
32
+ import { getServiceApi } from '../../../api';
33
+
34
+ defineOptions({ name: 'LogoutLog' });
35
+
36
+ const renderHook = useRender();
37
+
38
+ const baseService = getEnv().VITE_BUINESS_SERVICE;
39
+
40
+ const url = `${baseService}/v1/invoke-outbound`;
41
+
42
+ const data = reactive({
43
+ showModal: false,
44
+ record: {},
45
+ title: ''
46
+ });
47
+
48
+ const formItems = [
49
+ { field: 'interfaceName' },
50
+ { field: 'interfaceUrl' },
51
+ { field: 'requestParameter' },
52
+ { field: 'responseContent' },
53
+ // { field: 'ip', },
54
+ { field: 'requestDate', itemRender: { name: '#SuDateRange', props: { type: 'daterange' } } },
55
+ { field: 'requestStatus', itemRender: renderHook.renderDict('SU.REQUEST.STATUS') }
56
+ ];
57
+
58
+ const items = [
59
+ { field: 'requestParameter', itemRender: { name: '$textarea', props: { rows: 5 } } },
60
+ {
61
+ field: 'responseContent',
62
+ itemRender: { name: '$textarea', props: { rows: 10 } }
63
+ },
64
+ { field: 'stacktrace', itemRender: { name: '$textarea', props: { rows: 3 } } }
65
+ ];
66
+
67
+ const xgrid = ref(null);
68
+ // 列字段
69
+ const columns = [
70
+ { field: 'interfaceName', minWidth: 120 },
71
+ { field: 'interfaceUrl', minWidth: 150 },
72
+ // { field: 'ip', width: 120 },
73
+ { field: 'requestDate', width: 160 },
74
+ { field: 'responseTimeConsume', width: 120 },
75
+ { field: 'requestStatus', width: 90, formatter: ['formatDict', 'SU.REQUEST.STATUS'] },
76
+ {
77
+ field: 'operate',
78
+ width: 70,
79
+ slots: {
80
+ default: ({ row }) => {
81
+ if (!row.id) return null;
82
+ return [
83
+ <>
84
+ <ut-button content="detail" icon="ri-eye-line ri-1x" onTap={() => handleShowDetail(row)} />
85
+ </>
86
+ ];
87
+ }
88
+ }
89
+ }
90
+ ];
91
+ // 详情
92
+ const handleShowDetail = async row => {
93
+ const [err, res]: any = await to(getServiceApi().get(url + '/detail', { id: row.id }));
94
+ if (err) return;
95
+ console.log(res);
96
+ // const resContent = JSON.parse(record.responseContent);
97
+ // console.log(resContent);
98
+ // record.resContent = resContent?.data?.list || resContent?.data;
99
+ // record.resContent = record.resContent ? JSON.stringify(record.resContent) : '';
100
+ data.record = res;
101
+ data.showModal = true;
102
+ data.title = `【${res.interfaceName}】接口明细`;
103
+ };
104
+ </script>
package/types/global.d.ts CHANGED
@@ -1,230 +1,231 @@
1
- import type { PropType as VuePropType } from 'vue';
2
- import type { ECharts } from 'echarts';
3
- // import type { ResponsiveStorage } from './index';
4
-
5
- /**
6
- * 全局类型声明,无需引入直接在 `.vue` 、`.ts` 、`.tsx` 文件使用即可获得类型提示
7
- */
8
-
9
- // GlobalComponents for Volar
10
-
11
- declare module '@utogether/components';
12
-
13
- import type { VxeColumnProps, VxeFormItemProps, VxeToolbarProps } from 'vxe-table';
14
-
15
- declare global {
16
- /**
17
- * 平台的名称、版本、依赖、最后构建时间的类型提示
18
- */
19
- const __APP_INFO__: {
20
- pkg: {
21
- version: string;
22
- };
23
- lastBuildTime: string;
24
- };
25
-
26
- /**
27
- * Window 的类型提示
28
- */
29
- interface Window {
30
- // Global vue app
31
- __HISTORY_PATH__: string;
32
- __APP__: App<Element>;
33
- $i18n: () => void;
34
- webkitCancelAnimationFrame: (handle: number) => void;
35
- mozCancelAnimationFrame: (handle: number) => void;
36
- oCancelAnimationFrame: (handle: number) => void;
37
- msCancelAnimationFrame: (handle: number) => void;
38
- webkitRequestAnimationFrame: (callback: FrameRequestCallback) => number;
39
- mozRequestAnimationFrame: (callback: FrameRequestCallback) => number;
40
- oRequestAnimationFrame: (callback: FrameRequestCallback) => number;
41
- msRequestAnimationFrame: (callback: FrameRequestCallback) => number;
42
- }
43
-
44
- // vue
45
- type PropType<T> = VuePropType<T>;
46
-
47
- type Writable<T> = {
48
- -readonly [P in keyof T]: T[P];
49
- };
50
-
51
- type Nullable<T> = T | null;
52
- type NonNullable<T> = T extends null | undefined ? never : T;
53
- type Recordable<T = any> = Record<string, T>;
54
- type ReadonlyRecordable<T = any> = {
55
- readonly [key: string]: T;
56
- };
57
- type Indexable<T = any> = {
58
- [key: string]: T;
59
- };
60
- type DeepPartial<T> = {
61
- [P in keyof T]?: DeepPartial<T[P]>;
62
- };
63
- type TimeoutHandle = ReturnType<typeof setTimeout>;
64
- type IntervalHandle = ReturnType<typeof setInterval>;
65
-
66
- interface ChangeEvent extends Event {
67
- target: HTMLInputElement;
68
- }
69
-
70
- interface WheelEvent {
71
- path?: EventTarget[];
72
- }
73
- interface ImportMetaEnv extends ViteEnv {
74
- __: unknown;
75
- }
76
-
77
- type ViteCompression = 'none' | 'gzip' | 'brotli' | 'both' | 'gzip-clear' | 'brotli-clear' | 'both-clear';
78
-
79
- interface ViteEnv {
80
- VITE_PORT: number;
81
- VITE_PUBLIC_PATH: string;
82
- VITE_BASE_URL: string;
83
- VITE_ROUTER_HISTORY: string;
84
- VITE_TITLE: string;
85
- }
86
-
87
- /**
88
- * 对应 `public/serverConfig.json` 文件的类型声明
89
- */
90
- interface ServerConfigs {
91
- Version?: string;
92
- Title?: string;
93
- FixedHeader?: boolean;
94
- HiddenSideBar?: boolean;
95
- MultiTagsCache?: boolean;
96
- KeepAlive?: boolean;
97
- Locale?: string;
98
- Layout?: string;
99
- Theme?: string;
100
- DarkMode?: boolean;
101
- OverallStyle?: string;
102
- Grey?: boolean;
103
- Weak?: boolean;
104
- HideTabs?: boolean;
105
- SidebarStatus?: boolean;
106
- EpThemeColor?: string;
107
- ShowLogo?: boolean;
108
- ShowModel?: string;
109
- MenuArrowIconNoTransition?: boolean;
110
- CachingAsyncRoutes?: boolean;
111
- ResponsiveStorageNameSpace?: string;
112
- MapConfigure?: {
113
- amapKey?: string;
114
- options: {
115
- resizeEnable?: boolean;
116
- center?: number[];
117
- zoom?: number;
118
- };
119
- };
120
- }
121
-
122
- interface ISystemEnv {
123
- VITE_BASE_URL?: string;
124
- VITE_PUBLIC_PATH?: string;
125
- VITE_ROUTER_HISTORY?: string;
126
- MODE?: string;
127
- }
128
-
129
- /**
130
- * 与 `ServerConfigs` 类型不同,这里是缓存到浏览器本地存储的类型声明
131
- */
132
- interface StorageConfigs {
133
- version?: string;
134
- title?: string;
135
- fixedHeader?: boolean;
136
- hiddenSideBar?: boolean;
137
- multiTagsCache?: boolean;
138
- keepAlive?: boolean;
139
- locale?: string;
140
- layout?: string;
141
- theme?: string;
142
- darkMode?: boolean;
143
- overallStyle?: string;
144
- grey?: boolean;
145
- weak?: boolean;
146
- hideTabs?: boolean;
147
- sidebarStatus?: boolean;
148
- epThemeColor?: string;
149
- showLogo?: boolean;
150
- showModel?: string;
151
- mapConfigure?: {
152
- amapKey?: string;
153
- options: {
154
- resizeEnable?: boolean;
155
- center?: number[];
156
- zoom?: number;
157
- };
158
- };
159
- username?: string;
160
- }
161
-
162
- /**
163
- * `responsive-storage` 本地响应式 `storage` 的类型声明
164
- */
165
- interface ResponsiveStorage {
166
- locale: {
167
- locale?: string;
168
- };
169
- layout: {
170
- layout?: string;
171
- theme?: string;
172
- darkMode?: boolean;
173
- sidebarStatus?: boolean;
174
- epThemeColor?: string;
175
- overallStyle?: string;
176
- };
177
- configure: {
178
- grey?: boolean;
179
- weak?: boolean;
180
- hideTabs?: boolean;
181
- showLogo?: boolean;
182
- showModel?: string;
183
- multiTagsCache?: boolean;
184
- };
185
- tags?: Array<any>;
186
- }
187
-
188
- declare interface IRecord {
189
- [ele: string]: any;
190
- }
191
- declare interface IServiceData {
192
- code: string;
193
- data: any;
194
- msg: tring;
195
- }
196
- // axios 返回数据结构
197
- declare interface IResponseData {
198
- list: [IRecord];
199
- total: number;
200
- data: object | sting;
201
- }
202
- declare interface IProps {
203
- type?: string;
204
- required?: boolean;
205
- isHidden?: boolean;
206
- }
207
- declare interface IFormItemProps extends VxeFormItemProps, IProps {
208
- [x: string]: any;
209
- fromField?: string;
210
- toField?: string;
211
- disabled?: boolean;
212
- }
213
- declare interface ITableColProps extends VxeColumnProps, IProps {
214
- [x: string]: any;
215
- }
216
-
217
- declare interface IButtonProps extends VxeToolbarProps.buttons {
218
- auth: string | Array;
219
- code: string;
220
- }
221
-
222
- /**
223
- * 平台里所有组件实例都能访问到的全局属性对象的类型声明
224
- */
225
- interface GlobalPropertiesApi {
226
- $echarts: ECharts;
227
- $storage: ResponsiveStorage;
228
- $config: ServerConfigs;
229
- }
230
- }
1
+ import type { PropType as VuePropType } from 'vue';
2
+ import type { ECharts } from 'echarts';
3
+ // import type { ResponsiveStorage } from './index';
4
+
5
+ /**
6
+ * 全局类型声明,无需引入直接在 `.vue` 、`.ts` 、`.tsx` 文件使用即可获得类型提示
7
+ */
8
+
9
+ // GlobalComponents for Volar
10
+
11
+ declare module '@utogether/components';
12
+
13
+ import type { VxeColumnProps, VxeFormItemProps, VxeToolbarProps } from 'vxe-table';
14
+
15
+ declare global {
16
+ /**
17
+ * 平台的名称、版本、依赖、最后构建时间的类型提示
18
+ */
19
+ const __APP_INFO__: {
20
+ pkg: {
21
+ version: string;
22
+ };
23
+ lastBuildTime: string;
24
+ };
25
+
26
+ /**
27
+ * Window 的类型提示
28
+ */
29
+ interface Window {
30
+ // Global vue app
31
+ __HISTORY_PATH__: string;
32
+ __APP__: App<Element>;
33
+ $i18n: () => void;
34
+ webkitCancelAnimationFrame: (handle: number) => void;
35
+ mozCancelAnimationFrame: (handle: number) => void;
36
+ oCancelAnimationFrame: (handle: number) => void;
37
+ msCancelAnimationFrame: (handle: number) => void;
38
+ webkitRequestAnimationFrame: (callback: FrameRequestCallback) => number;
39
+ mozRequestAnimationFrame: (callback: FrameRequestCallback) => number;
40
+ oRequestAnimationFrame: (callback: FrameRequestCallback) => number;
41
+ msRequestAnimationFrame: (callback: FrameRequestCallback) => number;
42
+ }
43
+
44
+ // vue
45
+ type PropType<T> = VuePropType<T>;
46
+
47
+ type Writable<T> = {
48
+ -readonly [P in keyof T]: T[P];
49
+ };
50
+
51
+ type Nullable<T> = T | null;
52
+ type NonNullable<T> = T extends null | undefined ? never : T;
53
+ type Recordable<T = any> = Record<string, T>;
54
+ type ReadonlyRecordable<T = any> = {
55
+ readonly [key: string]: T;
56
+ };
57
+ type Indexable<T = any> = {
58
+ [key: string]: T;
59
+ };
60
+ type DeepPartial<T> = {
61
+ [P in keyof T]?: DeepPartial<T[P]>;
62
+ };
63
+ type TimeoutHandle = ReturnType<typeof setTimeout>;
64
+ type IntervalHandle = ReturnType<typeof setInterval>;
65
+
66
+ interface ChangeEvent extends Event {
67
+ target: HTMLInputElement;
68
+ }
69
+
70
+ interface WheelEvent {
71
+ path?: EventTarget[];
72
+ }
73
+ interface ImportMetaEnv extends ViteEnv {
74
+ __: unknown;
75
+ }
76
+
77
+ type ViteCompression = 'none' | 'gzip' | 'brotli' | 'both' | 'gzip-clear' | 'brotli-clear' | 'both-clear';
78
+
79
+ interface ViteEnv {
80
+ VITE_PORT: number;
81
+ VITE_PUBLIC_PATH: string;
82
+ VITE_BASE_URL: string;
83
+ VITE_ROUTER_HISTORY: string;
84
+ VITE_TITLE: string;
85
+ }
86
+
87
+ /**
88
+ * 对应 `public/serverConfig.json` 文件的类型声明
89
+ */
90
+ interface ServerConfigs {
91
+ Version?: string;
92
+ Title?: string;
93
+ FixedHeader?: boolean;
94
+ HiddenSideBar?: boolean;
95
+ MultiTagsCache?: boolean;
96
+ KeepAlive?: boolean;
97
+ Locale?: string;
98
+ Layout?: string;
99
+ Theme?: string;
100
+ DarkMode?: boolean;
101
+ OverallStyle?: string;
102
+ Grey?: boolean;
103
+ Weak?: boolean;
104
+ HideTabs?: boolean;
105
+ SidebarStatus?: boolean;
106
+ EpThemeColor?: string;
107
+ ShowLogo?: boolean;
108
+ ShowModel?: string;
109
+ MenuArrowIconNoTransition?: boolean;
110
+ CachingAsyncRoutes?: boolean;
111
+ ResponsiveStorageNameSpace?: string;
112
+ MapConfigure?: {
113
+ amapKey?: string;
114
+ options: {
115
+ resizeEnable?: boolean;
116
+ center?: number[];
117
+ zoom?: number;
118
+ };
119
+ };
120
+ }
121
+
122
+ interface ISystemEnv {
123
+ VITE_BASE_URL?: string;
124
+ VITE_PUBLIC_PATH?: string;
125
+ VITE_ROUTER_HISTORY?: string;
126
+ VITE_BUINESS_SERVICE?: string;
127
+ MODE?: string;
128
+ }
129
+
130
+ /**
131
+ * 与 `ServerConfigs` 类型不同,这里是缓存到浏览器本地存储的类型声明
132
+ */
133
+ interface StorageConfigs {
134
+ version?: string;
135
+ title?: string;
136
+ fixedHeader?: boolean;
137
+ hiddenSideBar?: boolean;
138
+ multiTagsCache?: boolean;
139
+ keepAlive?: boolean;
140
+ locale?: string;
141
+ layout?: string;
142
+ theme?: string;
143
+ darkMode?: boolean;
144
+ overallStyle?: string;
145
+ grey?: boolean;
146
+ weak?: boolean;
147
+ hideTabs?: boolean;
148
+ sidebarStatus?: boolean;
149
+ epThemeColor?: string;
150
+ showLogo?: boolean;
151
+ showModel?: string;
152
+ mapConfigure?: {
153
+ amapKey?: string;
154
+ options: {
155
+ resizeEnable?: boolean;
156
+ center?: number[];
157
+ zoom?: number;
158
+ };
159
+ };
160
+ username?: string;
161
+ }
162
+
163
+ /**
164
+ * `responsive-storage` 本地响应式 `storage` 的类型声明
165
+ */
166
+ interface ResponsiveStorage {
167
+ locale: {
168
+ locale?: string;
169
+ };
170
+ layout: {
171
+ layout?: string;
172
+ theme?: string;
173
+ darkMode?: boolean;
174
+ sidebarStatus?: boolean;
175
+ epThemeColor?: string;
176
+ overallStyle?: string;
177
+ };
178
+ configure: {
179
+ grey?: boolean;
180
+ weak?: boolean;
181
+ hideTabs?: boolean;
182
+ showLogo?: boolean;
183
+ showModel?: string;
184
+ multiTagsCache?: boolean;
185
+ };
186
+ tags?: Array<any>;
187
+ }
188
+
189
+ declare interface IRecord {
190
+ [ele: string]: any;
191
+ }
192
+ declare interface IServiceData {
193
+ code: string;
194
+ data: any;
195
+ msg: tring;
196
+ }
197
+ // axios 返回数据结构
198
+ declare interface IResponseData {
199
+ list: [IRecord];
200
+ total: number;
201
+ data: object | sting;
202
+ }
203
+ declare interface IProps {
204
+ type?: string;
205
+ required?: boolean;
206
+ isHidden?: boolean;
207
+ }
208
+ declare interface IFormItemProps extends VxeFormItemProps, IProps {
209
+ [x: string]: any;
210
+ fromField?: string;
211
+ toField?: string;
212
+ disabled?: boolean;
213
+ }
214
+ declare interface ITableColProps extends VxeColumnProps, IProps {
215
+ [x: string]: any;
216
+ }
217
+
218
+ declare interface IButtonProps extends VxeToolbarProps.buttons {
219
+ auth: string | Array;
220
+ code: string;
221
+ }
222
+
223
+ /**
224
+ * 平台里所有组件实例都能访问到的全局属性对象的类型声明
225
+ */
226
+ interface GlobalPropertiesApi {
227
+ $echarts: ECharts;
228
+ $storage: ResponsiveStorage;
229
+ $config: ServerConfigs;
230
+ }
231
+ }