@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,87 @@
1
+ /* 覆盖element-plus样式 */
2
+
3
+ :root {
4
+ --el-color-primary: #3182F3;
5
+ --el-color-primary-light-1: #53a7ff;
6
+ --el-color-primary-light-2: #66b1ff;
7
+ --el-color-primary-light-3: #79bbff;
8
+ --el-color-primary-light-4: #8cc4ff;
9
+ --el-color-primary-light-5: #9fceff;
10
+ --el-color-primary-light-6: #b2d8ff;
11
+ --el-color-primary-light-7: #c5e1ff;
12
+ --el-color-primary-light-8: #d8ebff;
13
+ --el-color-primary-light-9: #ebf5ff;
14
+ --el-color-primary-dark-1: #398ee5;
15
+ --el-color-primary-dark-2: #337ecc;
16
+ --el-color-primary-dark-3: #2c6eb2;
17
+ --el-color-primary-dark-4: #265e99;
18
+ --el-color-primary-dark-5: #204f7f;
19
+ --el-color-primary-dark-6: #193f66;
20
+ --el-color-primary-dark-7: #132f4c;
21
+ --el-color-primary-dark-8: #0c1f32;
22
+ --el-color-primary-dark-9: #060f19;
23
+
24
+ --color-primary-lighter: rgba(193, 218, 251, 1);
25
+ }
26
+
27
+ .el-menu {border: none!important;}
28
+ .el-menu .el-menu-item a {color: inherit;text-decoration: none;display: block;width:100%;height:100%;position: absolute;top:0px;left:0px;}
29
+ .el-form-item-msg {font-size: 12px;color: #999;clear: both;width: 100%;}
30
+ .el-container {height: 100%;}
31
+ .el-aside {border-right: 1px solid var(--el-border-color-light);}
32
+ .el-container + .el-aside {border-right: 0;border-left: 1px solid var(--el-border-color-light);}
33
+ /*
34
+ .el-header {background: #fff;border-bottom: 1px solid var(--el-border-color-light);padding:13px 15px;display: flex;justify-content: space-between;align-items: center;}
35
+ */
36
+ .el-header .left-panel {display: flex;align-items: center;}
37
+ .el-header .right-panel {display: flex;align-items: center;}
38
+ .el-header .right-panel > * + * {margin-left:10px;}
39
+ /*.el-footer {background: #fff;border-top: 1px solid var(--el-border-color-light);padding:13px 15px;height: 51px;}*/
40
+ .el-main {padding:15px;}
41
+ .el-main.nopadding {padding:0;background: #fff;}
42
+ .el-drawer__body {overflow: auto;padding:0;}
43
+ .el-popconfirm__main {margin: 14px 0;}
44
+ .el-card__header {border-bottom: 0;font-size: 17px;font-weight: bold;padding:15px 20px 0px 20px;}
45
+ .el-dialog__title {font-size: 17px;font-weight: bold;}
46
+ .el-drawer__header>:first-child {font-size: 17px;font-weight: bold;}
47
+ .el-tree.menu .el-tree-node__content {height:36px;}
48
+ .el-tree.menu .el-tree-node__content .el-tree-node__label .icon {margin-right: 5px;}
49
+ .el-progress__text {font-size: 12px!important;}
50
+ .el-progress__text i {font-size: 14.4px!important;}
51
+ .el-step.is-horizontal .el-step__line {height:1px;}
52
+ .el-step__title {font-size: 14px;}
53
+ .drawerBG {background: #f6f8f9;}
54
+ .el-button+.el-dropdown {margin-left: 10px;}
55
+ .el-button-group+.el-dropdown {margin-left: 10px;}
56
+ .el-tag+.el-tag {margin-left: 10px;}
57
+ .el-button-group+.el-button-group {margin-left: 10px;}
58
+ .el-tabs__nav-wrap::after {height: 1px;}
59
+ .el-table th.is-sortable {transition: .1s;}
60
+ .el-table th.is-sortable:hover {background: #eee;}
61
+ .el-table .el-table__body-wrapper {background: #f6f8f9;}
62
+ .el-col .el-card {margin-bottom: 15px;}
63
+ .el-main {flex-basis: 100%;}
64
+ .el-main > .scTable .el-table--border::before {display: none;}
65
+ .el-main > .scTable .el-table--border::after {display: none;}
66
+ .el-main > .scTable .el-table--border .el-table__inner-wrapper::after {display: none;}
67
+ .el-main > .scTable .el-table__border-left-patch {display: none;}
68
+ .el-main > .scTable .el-table--border .el-table__inner-wrapper tr:first-child td:first-child {border-left: 0;}
69
+ .el-main > .scTable .el-table--border .el-table__inner-wrapper tr:first-child th:first-child {border-left: 0;}
70
+ .el-table.el-table--large {font-size: 14px;}
71
+ .el-table.el-table--small {font-size: 12px;}
72
+ .el-table {font-size: 12px;}
73
+ .el-radio-button__inner {font-size: 12px;}
74
+ .el-checkbox-button__inner {font-size: 12px;}
75
+ .el-sub-menu .el-icon {font-size: 17px;}
76
+ .el-sub-menu .el-sub-menu__icon-arrow {font-size: 12px;}
77
+
78
+ .aminui-side-split li.active {background-color: var(--el-color-primary);}
79
+ //.adminui-tags li:hover {background-color: var(--el-color-primary-light-9);}
80
+ .adminui-tags li.active {background-color: var(--el-color-primary-light-9)!important;}
81
+ .contextmenu li:hover {background-color: var(--el-color-primary-light-9)!important;color: var(--el-color-primary-light-2)!important;}
82
+ .data-box .item-background {background-color: var(--el-color-primary)!important;}
83
+ .layout-setting,.diy-grid-setting {background-color: var(--el-color-primary)!important;}
84
+
85
+ /* 覆盖tinymce样式 */
86
+ .sceditor .tox-tinymce {border: 1px solid #DCDFE6;border-radius: 0;}
87
+ body .tox-tinymce-aux {z-index: 5700;}
@@ -0,0 +1,52 @@
1
+ @media (max-width: 992px){
2
+ // 移动端样式覆盖
3
+ .el-form-item {display: block;}
4
+ .el-form-item__label {display: block;text-align: left;padding: 0 0 10px;}
5
+ .el-dialog {width: 90%!important;}
6
+ .el-dialog.is-fullscreen {width: 100%!important;}
7
+ .el-drawer.rtl {width: 90%!important;}
8
+ .el-form-item__content {margin-left: 0px!important;}
9
+
10
+ .adminui-main {
11
+ /*padding: 5px 5px 0px 5px;*/
12
+ padding: 0px 0px 0px 0px;
13
+ >.el-container {display: block;height:auto;}
14
+ >.el-container > .el-aside {width: 100%!important;border: 0}
15
+ }
16
+ .scTable {
17
+ .el-table,
18
+ .el-table__body-wrapper {display: block!important;height:auto!important;}
19
+ .el-scrollbar__wrap {height:auto!important;}
20
+ .scTable-page {padding: 0 5px!important;}
21
+ .el-pagination__total,
22
+ .el-pagination__jump,
23
+ .el-pagination__sizes {display: none!important;}
24
+ }
25
+
26
+ .headerPublic {
27
+ height: auto!important;display: block;
28
+ .left-panel {overflow: auto;}
29
+ .left-panel::-webkit-scrollbar{display: none;}
30
+ .right-panel {display: block;border-top: 1px solid var(--el-border-color-light);margin-top: 15px;}
31
+ .right-panel .right-panel-search {display: block;}
32
+ .right-panel .right-panel-search >* {width: 100%;margin: 0;margin-top: 15px;}
33
+ }
34
+ .adminui-main > .el-container >*:first-child:not(.el-aside):not(.el-header) {border: 0;margin-top: 0;}
35
+ .adminui-main > .el-container >*:first-child:not(.el-aside):not(.el-header) + .el-aside {margin-top: 0;}
36
+ .adminui-main > .el-container > .el-aside {border-bottom: 1px solid var(--el-border-color-light)!important;}
37
+ .adminui-main > .el-container > .el-container {border-top: 1px solid var(--el-border-color-light);border-bottom: 1px solid var(--el-border-color-light);margin-top: 15px;}
38
+ .adminui-main > .el-container > .el-container + .el-aside {border-top: 1px solid var(--el-border-color-light);margin-top: 15px;}
39
+ .adminui-main > .el-container > .el-header {@extend .headerPublic;}
40
+ .adminui-main > .el-container > .el-main.nopadding {border-top: 1px solid var(--el-border-color-light);border-bottom: 1px solid var(--el-border-color-light);margin-top: 15px;}
41
+ .adminui-main > .el-container > .el-main + .el-aside {border-left: 0!important;border-top: 1px solid var(--el-border-color-light);margin-top: 15px;}
42
+ .adminui-main > .el-container > .el-footer {margin-top: 15px;border-bottom: 1px solid var(--el-border-color-light);}
43
+ .adminui-main > .el-container > .el-container > .el-header {@extend .headerPublic}
44
+ .adminui-main > .el-container > .el-container > .el-header .left-panel {display: block;}
45
+ .adminui-main > .el-container > .el-container > .el-header .right-panel {display: block;margin-top: 15px;}
46
+
47
+ .sc-page {width: 100%;margin: 0;}
48
+
49
+ .common-main .el-form {width: 100% !important;}
50
+ .common-header-logo label {display: none;}
51
+ .common-header-title {display: none;}
52
+ }
@@ -0,0 +1,46 @@
1
+ /* USERCENTER */
2
+ .page-user {
3
+ .user-info-top {text-align: center;}
4
+ .user-info-top h2 {font-size: 18px;margin-top: 5px;}
5
+ .user-info-top p {margin: 8px 0 10px 0;}
6
+ .menu {background: none;}
7
+ .menu .el-menu-item {font-size: 12px;--el-menu-item-height:50px;}
8
+ .menu .el-menu-item-group {border-top: 1px solid var(--el-border-color-light);}
9
+ .menu .el-menu-item-group:first-child {border: 0;}
10
+ }
11
+
12
+ /*static-table*/
13
+ .static-table {border-collapse: collapse;width: 100%;font-size: 14px;margin-bottom: 45px;line-height: 1.5em;}
14
+ .static-table th {text-align: left;white-space: nowrap;color: #909399;font-weight: 400;border-bottom: 1px solid #dcdfe6;padding: 15px;max-width: 250px;}
15
+ .static-table td {border-bottom: 1px solid #dcdfe6;padding: 15px;max-width: 250px;color: #606266;}
16
+
17
+ /*header-tabs*/
18
+ .header-tabs {padding:10px 0 0 0;display:block;border:0!important;height:50px;background: none;}
19
+ .header-tabs .el-tabs__header {padding-left:10px;margin: 0;}
20
+ .header-tabs .el-tabs__content {display: none;}
21
+ .header-tabs .el-tabs__nav {border-radius: 0 !important;}
22
+ .header-tabs .el-tabs__item {font-size: 13px;}
23
+ .header-tabs .el-tabs__item.is-active {
24
+ background-color: var(--el-bg-color-overlay);
25
+ }
26
+
27
+ /*common-page*/
28
+ .common-page {}
29
+ .common-header-left {display: flex;align-items: center;}
30
+ .common-header-logo {display: flex;align-items: center;}
31
+ .common-header-logo img {height:30px;margin-right: 10px;vertical-align: bottom;}
32
+ .common-header-logo label {font-size: 20px;}
33
+ .common-header-title {font-size: 16px;border-left: 1px solid var(--el-border-color-light);margin-left: 15px;padding-left: 15px;}
34
+ .common-header-right {display: flex;align-items: center;}
35
+ .common-header-right a {font-size: 14px;color: var(--el-color-primary);cursor: pointer;}
36
+ .common-header-right a:hover {color: var(--el-color-primary-light-3);}
37
+ .common-container {max-width: 1240px;margin:30px auto 30px auto;}
38
+ .common-main {padding:20px;}
39
+ .common-title {font-size: 26px;margin-bottom: 20px;font-weight: normal;}
40
+ .common-main .el-form {width: 500px;margin:30px auto;}
41
+ .common-main .el-steps .el-step__title {font-size: 14px;}
42
+ .common-main .el-steps .el-step__icon {border: 1px solid;}
43
+ .common-main .yzm {display: flex;width: 100%;}
44
+ .common-main .yzm .el-button {margin-left: 10px;}
45
+ .common-main .link {color: var(--el-color-primary);cursor: pointer;}
46
+ .common-main .link:hover {color: var(--el-color-primary-light-3);}
@@ -0,0 +1,5 @@
1
+ @import './app';
2
+ @import './fix';
3
+ @import './pages';
4
+ @import './media';
5
+ @import './dark';
@@ -0,0 +1,66 @@
1
+ import { nextTick } from 'vue'
2
+ import NProgress from 'nprogress'
3
+ import 'nprogress/nprogress.css'
4
+ import { router } from '@arkxos/arkos-core'
5
+ import viewTagsStore from '../store/modules/viewTags';
6
+ import iframeStore from '../store/modules/iframe';
7
+ import keepAliveStore from '../store/modules/keepAlive';
8
+
9
+ export default {
10
+ // 刷新标签
11
+ refresh() {
12
+ NProgress.start()
13
+ const route = router.currentRoute.value
14
+
15
+ keepAliveStore().removeKeepLive(route.name)
16
+ keepAliveStore().routeShow = false
17
+
18
+ nextTick(() => {
19
+ keepAliveStore().pushKeepLive(route.name)
20
+ keepAliveStore().routeShow = true
21
+ NProgress.done()
22
+ })
23
+ },
24
+ // 关闭标签
25
+ close(tag) {
26
+ const route = tag || router.currentRoute.value
27
+ viewTagsStore().removeViewTags(route)
28
+ iframeStore().removeIframeList(route)
29
+ keepAliveStore().removeKeepLive(route.name)
30
+
31
+ const tagList = viewTagsStore().viewTags
32
+ const latestView = tagList.slice(-1)[0]
33
+ if (latestView) {
34
+ router.push(latestView)
35
+ } else {
36
+ router.push('/')
37
+ }
38
+ },
39
+ // 关闭标签后处理
40
+ closeNext(next) {
41
+ const route = router.currentRoute.value
42
+ viewTagsStore().removeViewTags(route)
43
+ iframeStore().removeIframeList(route)
44
+ keepAliveStore().removeKeepLive(route.name)
45
+ if (next) {
46
+ const tagList = viewTagsStore().viewTags
47
+ next(tagList)
48
+ }
49
+ },
50
+ // 关闭其他
51
+ closeOther() {
52
+ const route = router.currentRoute.value
53
+ const tagList = [...viewTagsStore().viewTags]
54
+ tagList.forEach(tag => {
55
+ if (tag.meta && tag.meta.affix || route.fullPath == tag.fullPath) {
56
+ return true
57
+ } else {
58
+ this.close(tag)
59
+ }
60
+ })
61
+ },
62
+ // 设置标题
63
+ setTitle(title) {
64
+ viewTagsStore().updateViewTagsTitle(title)
65
+ }
66
+ }
@@ -0,0 +1,82 @@
1
+ <template>
2
+ <div class="errPage-container">
3
+ <el-button icon="arrow-left" class="pan-back-btn" @click="back">
4
+ 返回
5
+ </el-button>
6
+ <el-row>
7
+ <el-col :span="12">
8
+ <h1 class="text-jumbo text-ginormous">
9
+ 401错误!
10
+ </h1>
11
+ <h2>您没有访问权限!</h2>
12
+ <h6>对不起,您没有访问权限,请不要进行非法操作!您可以返回主页面</h6>
13
+ <ul class="list-unstyled">
14
+ <li class="link-type">
15
+ <router-link to="/">
16
+ 回首页
17
+ </router-link>
18
+ </li>
19
+ </ul>
20
+ </el-col>
21
+ <el-col :span="12">
22
+ <img :src="errGif" width="313" height="428" alt="Girl has dropped her ice cream.">
23
+ </el-col>
24
+ </el-row>
25
+ </div>
26
+ </template>
27
+
28
+ <script setup>
29
+ import errImage from '../../assets/401_images/401.gif';
30
+
31
+ const { proxy } = getCurrentInstance();
32
+
33
+ const errGif = ref(errImage + '?' + +new Date());
34
+
35
+ function back() {
36
+ if (proxy.$route.query.noGoBack) {
37
+ proxy.$router.push({ path: '/' });
38
+ } else {
39
+ proxy.$router.go(-1);
40
+ }
41
+ }
42
+ </script>
43
+
44
+ <style lang="scss" scoped>
45
+ .errPage-container {
46
+ width: 800px;
47
+ max-width: 100%;
48
+ margin: 100px auto;
49
+ .pan-back-btn {
50
+ background: #008489;
51
+ color: #fff;
52
+ border: none !important;
53
+ }
54
+ .pan-gif {
55
+ margin: 0 auto;
56
+ display: block;
57
+ }
58
+ .pan-img {
59
+ display: block;
60
+ margin: 0 auto;
61
+ width: 100%;
62
+ }
63
+ .text-jumbo {
64
+ font-size: 60px;
65
+ font-weight: 700;
66
+ color: #484848;
67
+ }
68
+ .list-unstyled {
69
+ font-size: 14px;
70
+ li {
71
+ padding-bottom: 5px;
72
+ }
73
+ a {
74
+ color: #008489;
75
+ text-decoration: none;
76
+ &:hover {
77
+ text-decoration: underline;
78
+ }
79
+ }
80
+ }
81
+ }
82
+ </style>
@@ -0,0 +1,230 @@
1
+ <template>
2
+ <div class="wscn-http404-container">
3
+ <div class="wscn-http404">
4
+ <div class="pic-404">
5
+ <img class="pic-404__parent" src="../../assets/404_images/404.png" alt="404">
6
+ <img class="pic-404__child left" src="../../assets/404_images/404_cloud.png" alt="404">
7
+ <img class="pic-404__child mid" src="../../assets/404_images/404_cloud.png" alt="404">
8
+ <img class="pic-404__child right" src="../../assets/404_images/404_cloud.png" alt="404">
9
+ </div>
10
+ <div class="bullshit">
11
+ <div class="bullshit__oops">
12
+ 404错误!
13
+ </div>
14
+ <div class="bullshit__headline">
15
+ {{ message }}
16
+ </div>
17
+ <div class="bullshit__info">
18
+ 对不起,您正在寻找的页面不存在。尝试检查URL的错误,然后按浏览器上的刷新按钮或尝试在我们的应用程序中找到其他内容。
19
+ </div>
20
+ <router-link to="/index" class="bullshit__return-home">
21
+ 返回首页
22
+ </router-link>
23
+ </div>
24
+ </div>
25
+ </div>
26
+ </template>
27
+
28
+ <script setup>
29
+
30
+ import { computed } from 'vue'
31
+
32
+ const message = computed(() => {
33
+ return '找不到网页!'
34
+ })
35
+ </script>
36
+
37
+ <style lang="scss" scoped>
38
+ .wscn-http404-container{
39
+ transform: translate(-50%,-50%);
40
+ position: absolute;
41
+ top: 40%;
42
+ left: 50%;
43
+ }
44
+ .wscn-http404 {
45
+ position: relative;
46
+ width: 1200px;
47
+ padding: 0 50px;
48
+ overflow: hidden;
49
+ .pic-404 {
50
+ position: relative;
51
+ float: left;
52
+ width: 600px;
53
+ overflow: hidden;
54
+ &__parent {
55
+ width: 100%;
56
+ }
57
+ &__child {
58
+ position: absolute;
59
+ &.left {
60
+ width: 80px;
61
+ top: 17px;
62
+ left: 220px;
63
+ opacity: 0;
64
+ animation-name: cloudLeft;
65
+ animation-duration: 2s;
66
+ animation-timing-function: linear;
67
+ animation-fill-mode: forwards;
68
+ animation-delay: 1s;
69
+ }
70
+ &.mid {
71
+ width: 46px;
72
+ top: 10px;
73
+ left: 420px;
74
+ opacity: 0;
75
+ animation-name: cloudMid;
76
+ animation-duration: 2s;
77
+ animation-timing-function: linear;
78
+ animation-fill-mode: forwards;
79
+ animation-delay: 1.2s;
80
+ }
81
+ &.right {
82
+ width: 62px;
83
+ top: 100px;
84
+ left: 500px;
85
+ opacity: 0;
86
+ animation-name: cloudRight;
87
+ animation-duration: 2s;
88
+ animation-timing-function: linear;
89
+ animation-fill-mode: forwards;
90
+ animation-delay: 1s;
91
+ }
92
+ @keyframes cloudLeft {
93
+ 0% {
94
+ top: 17px;
95
+ left: 220px;
96
+ opacity: 0;
97
+ }
98
+ 20% {
99
+ top: 33px;
100
+ left: 188px;
101
+ opacity: 1;
102
+ }
103
+ 80% {
104
+ top: 81px;
105
+ left: 92px;
106
+ opacity: 1;
107
+ }
108
+ 100% {
109
+ top: 97px;
110
+ left: 60px;
111
+ opacity: 0;
112
+ }
113
+ }
114
+ @keyframes cloudMid {
115
+ 0% {
116
+ top: 10px;
117
+ left: 420px;
118
+ opacity: 0;
119
+ }
120
+ 20% {
121
+ top: 40px;
122
+ left: 360px;
123
+ opacity: 1;
124
+ }
125
+ 70% {
126
+ top: 130px;
127
+ left: 180px;
128
+ opacity: 1;
129
+ }
130
+ 100% {
131
+ top: 160px;
132
+ left: 120px;
133
+ opacity: 0;
134
+ }
135
+ }
136
+ @keyframes cloudRight {
137
+ 0% {
138
+ top: 100px;
139
+ left: 500px;
140
+ opacity: 0;
141
+ }
142
+ 20% {
143
+ top: 120px;
144
+ left: 460px;
145
+ opacity: 1;
146
+ }
147
+ 80% {
148
+ top: 180px;
149
+ left: 340px;
150
+ opacity: 1;
151
+ }
152
+ 100% {
153
+ top: 200px;
154
+ left: 300px;
155
+ opacity: 0;
156
+ }
157
+ }
158
+ }
159
+ }
160
+ .bullshit {
161
+ position: relative;
162
+ float: left;
163
+ width: 300px;
164
+ padding: 30px 0;
165
+ overflow: hidden;
166
+ &__oops {
167
+ font-size: 32px;
168
+ font-weight: bold;
169
+ line-height: 40px;
170
+ color: #1482f0;
171
+ opacity: 0;
172
+ margin-bottom: 20px;
173
+ animation-name: slideUp;
174
+ animation-duration: 0.5s;
175
+ animation-fill-mode: forwards;
176
+ }
177
+ &__headline {
178
+ font-size: 20px;
179
+ line-height: 24px;
180
+ color: #222;
181
+ font-weight: bold;
182
+ opacity: 0;
183
+ margin-bottom: 10px;
184
+ animation-name: slideUp;
185
+ animation-duration: 0.5s;
186
+ animation-delay: 0.1s;
187
+ animation-fill-mode: forwards;
188
+ }
189
+ &__info {
190
+ font-size: 13px;
191
+ line-height: 21px;
192
+ color: grey;
193
+ opacity: 0;
194
+ margin-bottom: 30px;
195
+ animation-name: slideUp;
196
+ animation-duration: 0.5s;
197
+ animation-delay: 0.2s;
198
+ animation-fill-mode: forwards;
199
+ }
200
+ &__return-home {
201
+ display: block;
202
+ float: left;
203
+ width: 110px;
204
+ height: 36px;
205
+ background: #1482f0;
206
+ border-radius: 100px;
207
+ text-align: center;
208
+ color: #ffffff;
209
+ opacity: 0;
210
+ font-size: 14px;
211
+ line-height: 36px;
212
+ cursor: pointer;
213
+ animation-name: slideUp;
214
+ animation-duration: 0.5s;
215
+ animation-delay: 0.3s;
216
+ animation-fill-mode: forwards;
217
+ }
218
+ @keyframes slideUp {
219
+ 0% {
220
+ transform: translateY(60px);
221
+ opacity: 0;
222
+ }
223
+ 100% {
224
+ transform: translateY(0);
225
+ opacity: 1;
226
+ }
227
+ }
228
+ }
229
+ }
230
+ </style>
@@ -0,0 +1,13 @@
1
+ <template>
2
+ <img src="bg.png" alt class="home-bg">
3
+ </template>
4
+
5
+ <style>
6
+ .home-bg {
7
+ width: 340px;
8
+ position: absolute;
9
+ top: 50%;
10
+ left: 50%;
11
+ transform: translate(-50%, -50%);
12
+ }
13
+ </style>
@@ -0,0 +1,35 @@
1
+ <template>
2
+ <el-container>
3
+ <el-header style="height:50px;">
4
+ <div class="common-header-left">
5
+ <div class="common-header-logo">
6
+ <img :alt="$CONFIG.ArkosTitle" src="img/logo.png">
7
+ <label>{{$CONFIG.ArkosTitle}}</label>
8
+ </div>
9
+ <div class="common-header-title">{{title}}</div>
10
+ </div>
11
+ <div class="common-header-right">
12
+ <router-link to="/login">返回登录</router-link>
13
+ </div>
14
+ </el-header>
15
+ <el-main>
16
+ <div class="common-container">
17
+ <h2 class="common-title">{{title}}</h2>
18
+ <div class="common-main el-card">
19
+ <slot></slot>
20
+ </div>
21
+ </div>
22
+ </el-main>
23
+ </el-container>
24
+ </template>
25
+
26
+ <script>
27
+ export default {
28
+ props: {
29
+ title: { type: String, default: '' }
30
+ }
31
+ }
32
+ </script>
33
+
34
+ <style>
35
+ </style>