-
+
-
-
+
diff --git a/vue/src/view/app/500.vue b/vue/src/view/app/500.vue
new file mode 100644
index 0000000..341e075
--- /dev/null
+++ b/vue/src/view/app/500.vue
@@ -0,0 +1,13 @@
+
diff --git a/vue/src/view/app/common/ExceptionPage/index.scss b/vue/src/view/app/common/ExceptionPage/index.scss
new file mode 100644
index 0000000..b55e771
--- /dev/null
+++ b/vue/src/view/app/common/ExceptionPage/index.scss
@@ -0,0 +1,44 @@
+.exception {
+ width: 100%;
+ height: 80%;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ text-align: center;
+
+ img {
+ height: 360px;
+ max-width: 430px;
+ padding-right: 52px;
+ }
+
+ .content {
+ h1 {
+ color: #434e59;
+ font-size: 72px;
+ font-weight: 600;
+ line-height: 72px;
+ margin-bottom: 24px;
+ }
+
+ .desc {
+ color: rgba(0, 0, 0, .45);
+ font-size: 20px;
+ line-height: 28px;
+ margin-bottom: 16px;
+ }
+ }
+}
+
+@media (max-width: 768px) {
+ .exception {
+ height: 100%;
+ flex-direction: column;
+
+ img {
+ height: 40%;
+ max-width: 80%;
+ padding-right: unset;
+ }
+ }
+}
diff --git a/vue/src/view/app/common/ExceptionPage/index.vue b/vue/src/view/app/common/ExceptionPage/index.vue
new file mode 100644
index 0000000..343cfb4
--- /dev/null
+++ b/vue/src/view/app/common/ExceptionPage/index.vue
@@ -0,0 +1,51 @@
+
+
+
diff --git a/vue/src/view/app/common/SkeletonPage/index.scss b/vue/src/view/app/common/SkeletonPage/index.scss
new file mode 100644
index 0000000..3c4cede
--- /dev/null
+++ b/vue/src/view/app/common/SkeletonPage/index.scss
@@ -0,0 +1,46 @@
+@import "~@/asset/style/variables.scss";
+
+.skeleton-page-wrapper {
+ margin: $page-view-margin;
+}
+
+.skeleton-page {
+ width: 100%;
+ display: table;
+
+ & + & {
+ margin-top: 20px;
+ }
+
+ &__header,
+ &__content {
+ display: table-cell;
+ }
+
+ &__header {
+ padding-top: 2px;
+ padding-right: 16px;
+ vertical-align: top;
+ }
+
+ &__content {
+ width: 100%;
+
+ > .q-skeleton {
+ width: 50%;
+ }
+
+ .skeleton-page__paragraph {
+ margin-top: 28px;
+ padding: 0;
+
+ .q-skeleton:last-child:not(:first-child):not(:nth-child(2)) {
+ width: 61%;
+ }
+
+ .q-skeleton + .q-skeleton {
+ margin-top: 16px;
+ }
+ }
+ }
+}
diff --git a/vue/src/view/app/common/SkeletonPage/index.vue b/vue/src/view/app/common/SkeletonPage/index.vue
new file mode 100644
index 0000000..455bc83
--- /dev/null
+++ b/vue/src/view/app/common/SkeletonPage/index.vue
@@ -0,0 +1,28 @@
+
+
+