@arkxos/arkos-theme-classic 0.1.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 (97) hide show
  1. package/README.md +36 -0
  2. package/ark_dist/ark-meta.json +81 -0
  3. package/ark_dist/ark_userChunk_1.js +5 -0
  4. package/ark_dist/ark_userChunk_2.js +5 -0
  5. package/ark_dist/ark_userChunk_3.js +49 -0
  6. package/ark_dist/config.js +79 -0
  7. package/ark_dist/css/layout.93396d23.css +125 -0
  8. package/ark_dist/favicon.ico +0 -0
  9. package/ark_dist/img/401.1800ba9e.gif +0 -0
  10. package/ark_dist/img/404.458c248a.png +0 -0
  11. package/ark_dist/img/404.png +0 -0
  12. package/ark_dist/img/auth_banner.jpg +0 -0
  13. package/ark_dist/img/avatar.jpg +0 -0
  14. package/ark_dist/img/avatar2.gif +0 -0
  15. package/ark_dist/img/avatar3.gif +0 -0
  16. package/ark_dist/img/login-background.1a699c00.jpg +0 -0
  17. package/ark_dist/img/loginbg.svg +1 -0
  18. package/ark_dist/img/logo-r.png +0 -0
  19. package/ark_dist/img/logo.png +0 -0
  20. package/ark_dist/img/no-widgets.svg +57 -0
  21. package/ark_dist/img/tasks-example.png +0 -0
  22. package/ark_dist/img/ver.svg +236 -0
  23. package/ark_dist/index.html +127 -0
  24. package/ark_dist/js/app.4a68e1f9.js +1 -0
  25. package/ark_dist/js/layout.661faa0e.js +3 -0
  26. package/ark_dist/js/layout.661faa0e.js.LICENSE.txt +6 -0
  27. package/ark_dist/js/layout.661faa0e.js.map +1 -0
  28. package/ark_proxy/entry.js +28 -0
  29. package/ark_proxy_es/entry.js +16 -0
  30. package/package.json +110 -0
  31. package/scripts/check.js +13 -0
  32. package/scripts/meta.js +21 -0
  33. package/scripts/prepublishOnly.js +28 -0
  34. package/src/assets/logo.png +0 -0
  35. package/src/auto-imports.d.ts +307 -0
  36. package/src/configs/subApp.ts +9 -0
  37. package/src/entrance/libProperties.ts +28 -0
  38. package/src/entrance/libTypes.ts +26 -0
  39. package/src/loadApp.ts +16 -0
  40. package/src/main.ts +18 -0
  41. package/src/os-themes/classic/assets/401_images/401.gif +0 -0
  42. package/src/os-themes/classic/assets/404_images/404.png +0 -0
  43. package/src/os-themes/classic/assets/404_images/404_cloud.png +0 -0
  44. package/src/os-themes/classic/assets/images/login-background.jpg +0 -0
  45. package/src/os-themes/classic/i18n/en.ts +39 -0
  46. package/src/os-themes/classic/i18n/zh-cn.ts +39 -0
  47. package/src/os-themes/classic/i18nFileBuilder/index.ts +19 -0
  48. package/src/os-themes/classic/images/tabs_images/ark-tab.png +0 -0
  49. package/src/os-themes/classic/index.js +19 -0
  50. package/src/os-themes/classic/layout/components/NavMenu.vue +56 -0
  51. package/src/os-themes/classic/layout/components/iframeView.vue +69 -0
  52. package/src/os-themes/classic/layout/components/search.vue +139 -0
  53. package/src/os-themes/classic/layout/components/setting.vue +95 -0
  54. package/src/os-themes/classic/layout/components/sideM.vue +137 -0
  55. package/src/os-themes/classic/layout/components/tags.vue +476 -0
  56. package/src/os-themes/classic/layout/components/tasks.vue +83 -0
  57. package/src/os-themes/classic/layout/components/topbar.vue +49 -0
  58. package/src/os-themes/classic/layout/components/userbar.vue +238 -0
  59. package/src/os-themes/classic/layout/index.vue +347 -0
  60. package/src/os-themes/classic/layout/other/404.vue +44 -0
  61. package/src/os-themes/classic/layout/other/autoExit.js +51 -0
  62. package/src/os-themes/classic/layout/other/empty.vue +3 -0
  63. package/src/os-themes/classic/router/routerStatic.js +103 -0
  64. package/src/os-themes/classic/router/scrollBehavior.js +22 -0
  65. package/src/os-themes/classic/router/systemRouter.js +36 -0
  66. package/src/os-themes/classic/store/index.js +6 -0
  67. package/src/os-themes/classic/store/modules/global.js +25 -0
  68. package/src/os-themes/classic/store/modules/iframe.js +40 -0
  69. package/src/os-themes/classic/store/modules/keepAlive.js +25 -0
  70. package/src/os-themes/classic/store/modules/viewTags.js +48 -0
  71. package/src/os-themes/classic/style/app.scss +318 -0
  72. package/src/os-themes/classic/style/dark.scss +42 -0
  73. package/src/os-themes/classic/style/fix.scss +87 -0
  74. package/src/os-themes/classic/style/media.scss +52 -0
  75. package/src/os-themes/classic/style/pages.scss +46 -0
  76. package/src/os-themes/classic/style/style.scss +5 -0
  77. package/src/os-themes/classic/utils/useTabs.js +66 -0
  78. package/src/os-themes/classic/views/bg.png +0 -0
  79. package/src/os-themes/classic/views/error/401.vue +82 -0
  80. package/src/os-themes/classic/views/error/404.vue +230 -0
  81. package/src/os-themes/classic/views/home.vue +13 -0
  82. package/src/os-themes/classic/views/login/components/commonPage.vue +35 -0
  83. package/src/os-themes/classic/views/login/components/passwordForm.vue +174 -0
  84. package/src/os-themes/classic/views/login/components/phoneForm.vue +74 -0
  85. package/src/os-themes/classic/views/login/index.vue +210 -0
  86. package/src/os-themes/classic/views/login/resetPassword.vue +125 -0
  87. package/src/os-themes/classic/views/login/userRegister.vue +174 -0
  88. package/src/os-themes/classic/views/redirect/index.vue +14 -0
  89. package/src/os-themes/classic/views/register.vue +219 -0
  90. package/src/shims-vue.d.ts +6 -0
  91. package/src/types/axios.d.ts +13 -0
  92. package/src/types/func.ts +14 -0
  93. package/src/types/global.d.ts +108 -0
  94. package/src/types/layout.d.ts +59 -0
  95. package/src/types/mitt.d.ts +40 -0
  96. package/src/types/pinia.d.ts +93 -0
  97. package/src/types/views.d.ts +27 -0
@@ -0,0 +1,174 @@
1
+ <template>
2
+ <common-page title="注册新账号">
3
+ <el-steps :active="stepActive" simple finish-status="success">
4
+ <el-step title="基础信息" />
5
+ <el-step title="详细信息" />
6
+ <el-step title="完成注册" />
7
+ </el-steps>
8
+ <el-form v-if="stepActive==0" ref="stepForm_0" :model="form" :rules="rules" :label-width="120">
9
+ <el-form-item label="登录账号" prop="user">
10
+ <el-input v-model="form.user" placeholder="请输入登录账号"></el-input>
11
+ <div class="el-form-item-msg">登录账号将作为登录时的唯一凭证</div>
12
+ </el-form-item>
13
+ <el-form-item label="登录密码" prop="password">
14
+ <el-input v-model="form.password" type="password" show-password placeholder="请输入登录密码"></el-input>
15
+ <sc-password-strength v-model="form.password"></sc-password-strength>
16
+ <div class="el-form-item-msg">请输入包含英文、数字的8位以上密码</div>
17
+ </el-form-item>
18
+ <el-form-item label="确认密码" prop="password2">
19
+ <el-input v-model="form.password2" type="password" show-password placeholder="请再一次输入登录密码"></el-input>
20
+ </el-form-item>
21
+ <el-form-item label="" prop="agree">
22
+ <el-checkbox v-model="form.agree" label="">已阅读并同意</el-checkbox><span class="link" @click="showAgree=true">《平台服务协议》</span>
23
+ </el-form-item>
24
+ </el-form>
25
+ <el-form v-if="stepActive==1" ref="stepForm_1" :model="form" :rules="rules" :label-width="120">
26
+ <el-form-item label="真实姓名" prop="userName">
27
+ <el-input v-model="form.userName" placeholder="请输入真实姓名"></el-input>
28
+ </el-form-item>
29
+ <el-form-item label="邮箱" prop="email">
30
+ <el-input v-model="form.email" placeholder="请输入邮箱地址"></el-input>
31
+ </el-form-item>
32
+ <el-form-item label="账号类型" prop="userType">
33
+ <el-radio-group v-model="form.userType">
34
+ <el-radio-button label="1">企业开发者</el-radio-button>
35
+ <el-radio-button label="2">企业开发者</el-radio-button>
36
+ </el-radio-group>
37
+ </el-form-item>
38
+ <el-form-item label="开通类别" prop="open">
39
+ <el-checkbox-group v-model="form.open">
40
+ <el-checkbox label="1">云存储API</el-checkbox>
41
+ <el-checkbox label="2">云检索API</el-checkbox>
42
+ <el-checkbox label="3">Javescript API</el-checkbox>
43
+ </el-checkbox-group>
44
+ </el-form-item>
45
+ </el-form>
46
+ <div v-if="stepActive==2">
47
+ <el-result icon="success" title="注册成功" sub-title="可以使用登录账号以及手机号登录系统">
48
+ <template #extra>
49
+ <el-button type="primary" @click="goLogin">前去登录</el-button>
50
+ </template>
51
+ </el-result>
52
+ </div>
53
+ <el-form style="text-align: center;">
54
+ <el-button v-if="stepActive>0 && stepActive<2" @click="pre">上一步</el-button>
55
+ <el-button v-if="stepActive<1" type="primary" @click="next">下一步</el-button>
56
+ <el-button v-if="stepActive==1" type="primary" @click="save">提交</el-button>
57
+ </el-form>
58
+ <el-dialog v-model="showAgree" title="平台服务协议" :width="800" destroy-on-close>
59
+ 平台服务协议
60
+ <template #footer>
61
+ <el-button @click="showAgree=false">取消</el-button>
62
+ <el-button type="primary" @click="showAgree=false;form.agree=true;">我已阅读并同意</el-button>
63
+ </template>
64
+ </el-dialog>
65
+ </common-page>
66
+ </template>
67
+
68
+ <script>
69
+ import scPasswordStrength from 'packages/arkui/src/components/scPasswordStrength/index.vue';
70
+ import commonPage from './components/commonPage.vue'
71
+
72
+ export default {
73
+ components: {
74
+ commonPage,
75
+ scPasswordStrength
76
+ },
77
+ data() {
78
+ return {
79
+ stepActive: 0,
80
+ showAgree: false,
81
+ form: {
82
+ user: '',
83
+ password: '',
84
+ password2: '',
85
+ agree: false,
86
+ userName: '',
87
+ email: '',
88
+ userType: '1',
89
+ open: []
90
+ },
91
+ rules: {
92
+ user: [
93
+ { required: true, message: '请输入账号名' }
94
+ ],
95
+ password: [
96
+ { required: true, message: '请输入密码' }
97
+ ],
98
+ password2: [
99
+ { required: true, message: '请再次输入密码' },
100
+ {
101
+ validator: (rule, value, callback) => {
102
+ if (value !== this.form.password) {
103
+ callback(new Error('两次输入密码不一致'));
104
+ } else {
105
+ callback();
106
+ }
107
+ }
108
+ }
109
+ ],
110
+ agree: [
111
+ {
112
+ validator: (rule, value, callback) => {
113
+ if (!value) {
114
+ callback(new Error('请阅读并同意协议'));
115
+ } else {
116
+ callback();
117
+ }
118
+ }
119
+ }
120
+ ],
121
+ userName: [
122
+ { required: true, message: '请输入真实姓名' }
123
+ ],
124
+ email: [
125
+ { required: true, message: '请输入邮箱地址' }
126
+ ],
127
+ userType: [
128
+ { required: true, message: '请选择账户类型' }
129
+ ],
130
+ open: [
131
+ { required: true, message: '请选择开通类别' }
132
+ ]
133
+ }
134
+ }
135
+ },
136
+ mounted() {
137
+
138
+ },
139
+ methods: {
140
+ pre() {
141
+ this.stepActive -= 1
142
+ },
143
+ next() {
144
+ const formName = `stepForm_${this.stepActive}`
145
+ this.$refs[formName].validate((valid) => {
146
+ if (valid) {
147
+ this.stepActive += 1
148
+ } else {
149
+ return false
150
+ }
151
+ })
152
+ },
153
+ save() {
154
+ const formName = `stepForm_${this.stepActive}`
155
+ this.$refs[formName].validate((valid) => {
156
+ if (valid) {
157
+ this.stepActive += 1
158
+ } else {
159
+ return false
160
+ }
161
+ })
162
+ },
163
+ goLogin() {
164
+ this.$router.push({
165
+ path: '/login'
166
+ })
167
+ }
168
+ }
169
+ }
170
+ </script>
171
+
172
+ <style scoped>
173
+
174
+ </style>
@@ -0,0 +1,14 @@
1
+ <template>
2
+ <div></div>
3
+ </template>
4
+
5
+ <script setup>
6
+ import { useRoute, useRouter } from 'vue-router'
7
+
8
+ const route = useRoute();
9
+ const router = useRouter();
10
+ const { params, query } = route
11
+ const { path } = params
12
+
13
+ router.replace({ path: '/' + path, query })
14
+ </script>
@@ -0,0 +1,219 @@
1
+ <template>
2
+ <div class="register">
3
+ <el-form ref="registerRef" :model="registerForm" :rules="registerRules" class="register-form">
4
+ <h3 class="title">RuoYi-Cloud-Plus后台管理系统</h3>
5
+ <el-form-item prop="username">
6
+ <el-input
7
+ v-model="registerForm.username"
8
+ type="text"
9
+ size="large"
10
+ auto-complete="off"
11
+ placeholder="账号"
12
+ >
13
+ <template #prefix><svg-icon icon-class="user" class="el-input__icon input-icon" /></template>
14
+ </el-input>
15
+ </el-form-item>
16
+ <el-form-item prop="password">
17
+ <el-input
18
+ v-model="registerForm.password"
19
+ type="password"
20
+ size="large"
21
+ auto-complete="off"
22
+ placeholder="密码"
23
+ @keyup.enter="handleRegister"
24
+ >
25
+ <template #prefix><svg-icon icon-class="password" class="el-input__icon input-icon" /></template>
26
+ </el-input>
27
+ </el-form-item>
28
+ <el-form-item prop="confirmPassword">
29
+ <el-input
30
+ v-model="registerForm.confirmPassword"
31
+ type="password"
32
+ size="large"
33
+ auto-complete="off"
34
+ placeholder="确认密码"
35
+ @keyup.enter="handleRegister"
36
+ >
37
+ <template #prefix><svg-icon icon-class="password" class="el-input__icon input-icon" /></template>
38
+ </el-input>
39
+ </el-form-item>
40
+ <el-form-item prop="code" v-if="captchaEnabled">
41
+ <el-input
42
+ size="large"
43
+ v-model="registerForm.code"
44
+ auto-complete="off"
45
+ placeholder="验证码"
46
+ style="width: 63%"
47
+ @keyup.enter="handleRegister"
48
+ >
49
+ <template #prefix><svg-icon icon-class="validCode" class="el-input__icon input-icon" /></template>
50
+ </el-input>
51
+ <div class="register-code">
52
+ <img :src="codeUrl" @click="getCode" class="register-code-img"/>
53
+ </div>
54
+ </el-form-item>
55
+ <el-form-item style="width:100%;">
56
+ <el-button
57
+ :loading="loading"
58
+ size="large"
59
+ type="primary"
60
+ style="width:100%;"
61
+ @click.prevent="handleRegister"
62
+ >
63
+ <span v-if="!loading">注 册</span>
64
+ <span v-else>注 册 中...</span>
65
+ </el-button>
66
+ <div style="float: right;">
67
+ <router-link class="link-type" :to="'/login'">使用已有账户登录</router-link>
68
+ </div>
69
+ </el-form-item>
70
+ </el-form>
71
+ <!-- 底部 -->
72
+ <div class="el-register-footer">
73
+ <span>Copyright © 2018-2023 All Rights Reserved.</span>
74
+ </div>
75
+ </div>
76
+ </template>
77
+
78
+ <script setup name="register">
79
+ import { ElMessageBox } from 'element-plus';
80
+ // import { getCodeImg, register } from "@/api/login";
81
+
82
+ const router = useRouter();
83
+ const { proxy } = getCurrentInstance();
84
+
85
+ const registerForm = ref({
86
+ username: '',
87
+ password: '',
88
+ confirmPassword: '',
89
+ code: '',
90
+ uuid: '',
91
+ userType: 'sys_user'
92
+ });
93
+
94
+ const equalToPassword = (rule, value, callback) => {
95
+ if (registerForm.value.password !== value) {
96
+ callback(new Error('两次输入的密码不一致'));
97
+ } else {
98
+ callback();
99
+ }
100
+ };
101
+
102
+ const registerRules = {
103
+ username: [
104
+ { required: true, trigger: 'blur', message: '请输入您的账号' },
105
+ { min: 2, max: 20, message: '用户账号长度必须介于 2 和 20 之间', trigger: 'blur' }
106
+ ],
107
+ password: [
108
+ { required: true, trigger: 'blur', message: '请输入您的密码' },
109
+ { min: 5, max: 20, message: '用户密码长度必须介于 5 和 20 之间', trigger: 'blur' }
110
+ ],
111
+ confirmPassword: [
112
+ { required: true, trigger: 'blur', message: '请再次输入您的密码' },
113
+ { required: true, validator: equalToPassword, trigger: 'blur' }
114
+ ],
115
+ code: [{ required: true, trigger: 'change', message: '请输入验证码' }]
116
+ };
117
+
118
+ const codeUrl = ref('');
119
+ const loading = ref(false);
120
+ const captchaEnabled = ref(true);
121
+
122
+ function handleRegister() {
123
+ proxy.$refs.registerRef.validate(valid => {
124
+ if (valid) {
125
+ loading.value = true;
126
+ // register(registerForm.value).then(res => {
127
+ // const username = registerForm.value.username;
128
+ // ElMessageBox.alert("<font color='red'>恭喜你,您的账号 " + username + " 注册成功!</font>", "系统提示", {
129
+ // dangerouslyUseHTMLString: true,
130
+ // type: "success",
131
+ // }).then(() => {
132
+ // router.push("/login");
133
+ // }).catch(() => {});
134
+ // }).catch(() => {
135
+ // loading.value = false;
136
+ // if (captchaEnabled) {
137
+ // getCode();
138
+ // }
139
+ // });
140
+ }
141
+ });
142
+ }
143
+
144
+ function getCode() {
145
+ // getCodeImg().then(res => {
146
+ // captchaEnabled.value = res.data.captchaEnabled === undefined ? true : res.data.captchaEnabled;
147
+ // if (captchaEnabled.value) {
148
+ // codeUrl.value = "data:image/gif;base64," + res.data.img;
149
+ // registerForm.value.uuid = res.data.uuid;
150
+ // }
151
+ // });
152
+ }
153
+
154
+ getCode();
155
+ </script>
156
+
157
+ <style lang='scss' scoped>
158
+ .register {
159
+ display: flex;
160
+ justify-content: center;
161
+ align-items: center;
162
+ height: 100%;
163
+ background-image: url("../assets/images/login-background.jpg");
164
+ background-size: cover;
165
+ }
166
+ .title {
167
+ margin: 0px auto 30px auto;
168
+ text-align: center;
169
+ color: #707070;
170
+ }
171
+
172
+ .register-form {
173
+ border-radius: 6px;
174
+ background: #ffffff;
175
+ width: 400px;
176
+ padding: 25px 25px 5px 25px;
177
+ .el-input {
178
+ height: 40px;
179
+ input {
180
+ height: 40px;
181
+ }
182
+ }
183
+ .input-icon {
184
+ height: 39px;
185
+ width: 14px;
186
+ margin-left: 0px;
187
+ }
188
+ }
189
+ .register-tip {
190
+ font-size: 13px;
191
+ text-align: center;
192
+ color: #bfbfbf;
193
+ }
194
+ .register-code {
195
+ width: 33%;
196
+ height: 40px;
197
+ float: right;
198
+ img {
199
+ cursor: pointer;
200
+ vertical-align: middle;
201
+ }
202
+ }
203
+ .el-register-footer {
204
+ height: 40px;
205
+ line-height: 40px;
206
+ position: fixed;
207
+ bottom: 0;
208
+ width: 100%;
209
+ text-align: center;
210
+ color: #fff;
211
+ font-family: Arial;
212
+ font-size: 12px;
213
+ letter-spacing: 1px;
214
+ }
215
+ .register-code-img {
216
+ height: 40px;
217
+ padding-left: 12px;
218
+ }
219
+ </style>
@@ -0,0 +1,6 @@
1
+ /* eslint-disable */
2
+ declare module '*.vue' {
3
+ import type { DefineComponent } from 'vue'
4
+ const component: DefineComponent<{}, {}, any>
5
+ export default component
6
+ }
@@ -0,0 +1,13 @@
1
+ /* eslint-disable */
2
+ import * as axios from 'axios';
3
+
4
+ // 扩展 axios 数据返回类型,可自行扩展
5
+ declare module 'axios' {
6
+ export interface AxiosResponse<T = any> {
7
+ code: number;
8
+ data: T;
9
+ message: string;
10
+ type?: string;
11
+ [key: string]: T;
12
+ }
13
+ }
@@ -0,0 +1,14 @@
1
+ // 定义全局属性的类型
2
+ // eslint-disable-next-line no-unused-vars, @typescript-eslint/no-unused-vars
3
+ import { ComponentCustomProperties } from 'vue';
4
+
5
+ // declare module '@vue/runtime-core' {
6
+ // interface ComponentCustomProperties {
7
+ // parseTime: Function;
8
+ // parseDate: Function;
9
+ // dateTimeStr: string;
10
+ // dateStr: string;
11
+ // timeStr: string;
12
+ // baseURL: string;
13
+ // }
14
+ // }
@@ -0,0 +1,108 @@
1
+ // 申明外部 npm 插件模块
2
+ declare module 'splitpanes';
3
+ declare module 'js-cookie';
4
+ declare module '@wangeditor/editor-for-vue';
5
+ declare module 'qs';
6
+
7
+ // 声明一个模块,防止引入文件时报错
8
+ declare module '*.json';
9
+ declare module '*.png';
10
+ declare module '*.jpg';
11
+ declare module '*.scss';
12
+ declare module '*.ts';
13
+ declare module '*.js';
14
+
15
+ // 声明文件,*.vue 后缀的文件交给 vue 模块来处理
16
+ declare module '*.vue' {
17
+ import type { DefineComponent } from 'vue';
18
+ const component: DefineComponent<{}, {}, any>;
19
+ export default component;
20
+ }
21
+
22
+ // 声明文件,定义全局变量
23
+ /* eslint-disable */
24
+ declare interface Window {
25
+ nextLoading: boolean;
26
+ }
27
+
28
+ // 声明路由当前项类型
29
+ declare type RouteItem<T = any> = {
30
+ path: string;
31
+ name?: string | symbol | undefined | null;
32
+ redirect?: string;
33
+ k?: T;
34
+ meta?: {
35
+ title?: string;
36
+ isLink?: string;
37
+ isHide?: boolean;
38
+ isKeepAlive?: boolean;
39
+ isAffix?: boolean;
40
+ isIframe?: boolean;
41
+ roles?: string[];
42
+ icon?: string;
43
+ isDynamic?: boolean;
44
+ isDynamicPath?: string;
45
+ isIframeOpen?: string;
46
+ loading?: boolean;
47
+ };
48
+ children: T[];
49
+ query?: { [key: string]: T };
50
+ params?: { [key: string]: T };
51
+ contextMenuClickId?: string | number;
52
+ commonUrl?: string;
53
+ isFnClick?: boolean;
54
+ url?: string;
55
+ transUrl?: string;
56
+ title?: string;
57
+ id?: string | number;
58
+ };
59
+
60
+ // 声明路由 to from
61
+ declare interface RouteToFrom<T = any> extends RouteItem {
62
+ path?: string;
63
+ children?: T[];
64
+ }
65
+
66
+ // 声明路由当前项类型集合
67
+ declare type RouteItems<T extends RouteItem = any> = T[];
68
+
69
+ // 声明 ref
70
+ declare type RefType<T = any> = T | null;
71
+
72
+ // 声明 HTMLElement
73
+ declare type HtmlType = HTMLElement | string | undefined | null;
74
+
75
+ // 申明 children 可选
76
+ declare type ChilType<T = any> = {
77
+ children?: T[];
78
+ };
79
+
80
+ // 申明 数组
81
+ declare type EmptyArrayType<T = any> = T[];
82
+
83
+ // 申明 对象
84
+ declare type EmptyObjectType<T = any> = {
85
+ [key: string]: T;
86
+ };
87
+
88
+ // 申明 select option
89
+ declare type SelectOptionType = {
90
+ value: string | number;
91
+ label: string | number;
92
+ };
93
+
94
+ // 鼠标滚轮滚动类型
95
+ declare interface WheelEventType extends WheelEvent {
96
+ wheelDelta: number;
97
+ }
98
+
99
+ // table 数据格式公共类型
100
+ declare interface TableType<T = any> {
101
+ total: number;
102
+ loading: boolean;
103
+ param: {
104
+ pageNum: number;
105
+ pageSize: number;
106
+ [key: string]: T;
107
+ };
108
+ }
@@ -0,0 +1,59 @@
1
+ // aside
2
+ declare type AsideState = {
3
+ menuList: RouteRecordRaw[];
4
+ clientWidth: number;
5
+ };
6
+
7
+ // columnsAside
8
+ declare type ColumnsAsideState<T = any> = {
9
+ columnsAsideList: T[];
10
+ liIndex: number;
11
+ liOldIndex: null | number;
12
+ liHoverIndex: null | number;
13
+ liOldPath: null | string;
14
+ difference: number;
15
+ routeSplit: string[];
16
+ };
17
+
18
+ // navBars breadcrumb
19
+ declare type BreadcrumbState<T = any> = {
20
+ breadcrumbList: T[];
21
+ routeSplit: string[];
22
+ routeSplitFirst: string;
23
+ routeSplitIndex: number;
24
+ };
25
+
26
+ // navBars search
27
+ declare type SearchState<T = any> = {
28
+ isShowSearch: boolean;
29
+ menuQuery: string;
30
+ tagsViewList: T[];
31
+ };
32
+
33
+ // navBars tagsView
34
+ declare type TagsViewState<T = any> = {
35
+ routeActive: string | T;
36
+ routePath: string | unknown;
37
+ dropdown: {
38
+ x: string | number;
39
+ y: string | number;
40
+ };
41
+ sortable: T;
42
+ tagsRefsIndex: number;
43
+ tagsViewList: T[];
44
+ tagsViewRoutesList: T[];
45
+ };
46
+
47
+ // navBars parent
48
+ declare type ParentViewState<T = any> = {
49
+ refreshRouterViewKey: string;
50
+ iframeRefreshKey: string;
51
+ keepAliveNameList: string[];
52
+ iframeList: T[];
53
+ };
54
+
55
+ // navBars link
56
+ declare type LinkViewState = {
57
+ title: string;
58
+ isLink: string;
59
+ };
@@ -0,0 +1,40 @@
1
+ /**
2
+ * mitt 事件类型定义
3
+ *
4
+ * @method openSetingsDrawer 打开布局设置弹窗
5
+ * @method restoreDefault 分栏布局,鼠标移入、移出数据显示
6
+ * @method setSendColumnsChildren 分栏布局,鼠标移入、移出菜单数据传入到 navMenu 下的菜单中
7
+ * @method setSendClassicChildren 经典布局,开启切割菜单时,菜单数据传入到 navMenu 下的菜单中
8
+ * @method getBreadcrumbIndexSetFilterRoutes 布局设置弹窗,开启切割菜单时,菜单数据传入到 navMenu 下的菜单中
9
+ * @method layoutMobileResize 浏览器窗口改变时,用于适配移动端界面显示
10
+ * @method openOrCloseSortable 布局设置弹窗,开启 TagsView 拖拽
11
+ * @method openShareTagsView 布局设置弹窗,开启 TagsView 共用
12
+ * @method onTagsViewRefreshRouterView tagsview 刷新界面
13
+ * @method onCurrentContextmenuClick tagsview 右键菜单每项点击时
14
+ * @method updateWartermark 更新水印显示内容
15
+ */
16
+ declare type MittType<T = any> = {
17
+ openSetingsDrawer?: string;
18
+ restoreDefault?: string;
19
+ setSendColumnsChildren: T;
20
+ setSendClassicChildren: T;
21
+ getBreadcrumbIndexSetFilterRoutes?: string;
22
+ layoutMobileResize: T;
23
+ openOrCloseSortable?: string;
24
+ openShareTagsView?: string;
25
+ onTagsViewRefreshRouterView?: T;
26
+ onCurrentContextmenuClick?: T;
27
+ updateWartermark?: T;
28
+ };
29
+
30
+ // mitt 参数类型定义
31
+ declare type LayoutMobileResize = {
32
+ layout: string;
33
+ clientWidth: number;
34
+ };
35
+
36
+ // mitt 参数菜单类型
37
+ declare type MittMenu = {
38
+ children: RouteRecordRaw[];
39
+ item?: RouteItem;
40
+ };