diff --git a/vue/src/assets/403_images/403.gif b/vue/src/assets/images/403.gif
similarity index 100%
rename from vue/src/assets/403_images/403.gif
rename to vue/src/assets/images/403.gif
diff --git a/vue/src/assets/404_images/404.png b/vue/src/assets/images/404.png
similarity index 100%
rename from vue/src/assets/404_images/404.png
rename to vue/src/assets/images/404.png
diff --git a/vue/src/assets/404_images/404_cloud.png b/vue/src/assets/images/404_cloud.png
similarity index 100%
rename from vue/src/assets/404_images/404_cloud.png
rename to vue/src/assets/images/404_cloud.png
diff --git a/vue/src/assets/images/sprite.1.2.4.png b/vue/src/assets/images/sprite.1.2.4.png
new file mode 100644
index 0000000..eca4e8d
Binary files /dev/null and b/vue/src/assets/images/sprite.1.2.4.png differ
diff --git a/vue/src/assets/styles/transition.scss b/vue/src/assets/styles/transition.scss
index 8280e50..fca3e72 100644
--- a/vue/src/assets/styles/transition.scss
+++ b/vue/src/assets/styles/transition.scss
@@ -1,3 +1,5 @@
+$transition-easing: cubic-bezier(0.215, 0.61, 0.355, 1);
+
.right-out,
.left-out {
&-leave-active,
@@ -30,15 +32,46 @@
}
}
+.breadcrumb-enter-active,
+.breadcrumb-leave-active,
+.breadcrumb-move {
+ transition: all .5s;
+}
+
+.breadcrumb-enter,
+.breadcrumb-leave-active {
+ opacity: 0;
+ transform: translateX(20px);
+}
+
+.breadcrumb-leave-active {
+ position: absolute;
+}
+
.slide-right,
-.slide-left {
- &-enter-active,
+.slide-left,
+.slide-up,
+.slide-down,
+.jump-right,
+.jump-left,
+.jump-up,
+.jump-down,
+.fade,
+.scale,
+.rotate,
+.flip {
&-leave-active {
- transition: transform .3s cubic-bezier(0.215, 0.61, 0.355, 1)
+ position: absolute
}
+}
+.slide-right,
+.slide-left,
+.slide-up,
+.slide-down {
+ &-enter-active,
&-leave-active {
- position: absolute;
+ transition: transform .3s $transition-easing
}
}
@@ -62,19 +95,178 @@
}
}
+.slide-up {
+ &-enter {
+ transform: translate3d(0, 100%, 0)
+ }
-.breadcrumb-enter-active,
-.breadcrumb-leave-active,
-.breadcrumb-move {
- transition: all .5s;
+ &-leave-to {
+ transform: translate3d(0, -100%, 0)
+ }
}
-.breadcrumb-enter,
-.breadcrumb-leave-active {
- opacity: 0;
- transform: translateX(20px);
+.slide-down {
+ &-enter {
+ transform: translate3d(0, -100%, 0)
+ }
+
+ &-leave-to {
+ transform: translate3d(0, 100%, 0)
+ }
}
-.breadcrumb-leave-active {
- position: absolute;
+.jump-right,
+.jump-left,
+.jump-up,
+.jump-down {
+ &-enter-active,
+ &-leave-active {
+ transition: opacity .3s, transform .3s
+ }
+
+ &-enter,
+ &-leave-to {
+ opacity: 0
+ }
+}
+
+.jump-right {
+ &-enter {
+ transform: translate3d(-15px, 0, 0)
+ }
+
+ &-leave-to {
+ transform: translate3d(15px, 0, 0)
+ }
+}
+
+.jump-left {
+ &-enter {
+ transform: translate3d(15px, 0, 0)
+ }
+
+ &-leave-to {
+ transform: translateX(-15px)
+ }
+}
+
+.jump-up {
+ &-enter {
+ transform: translate3d(0, 15px, 0)
+ }
+
+ &-leave-to {
+ transform: translate3d(0, -15px, 0)
+ }
+}
+
+.jump-down {
+ &-enter {
+ transform: translate3d(0, -15px, 0)
+ }
+
+ &-leave-to {
+ transform: translate3d(15px, 0, 0)
+ }
+}
+
+.fade {
+ &-enter-active,
+ &-leave-active {
+ transition: opacity .3s ease-out
+ }
+
+ &-enter,
+ &-leave,
+ &-leave-to {
+ opacity: 0
+ }
+}
+
+.scale {
+ &-enter-active,
+ &-leave-active {
+ transition: opacity .3s, transform .3s $transition-easing
+ }
+
+ &-enter,
+ &-leave,
+ &-leave-to {
+ opacity: 0;
+ transform: scale3d(0, 0, 1)
+ }
+}
+
+.rotate {
+ &-enter-active,
+ &-leave-active {
+ transition: opacity .3s, transform .3s $transition-easing;
+ transform-style: preserve-3d
+ }
+
+ &-enter,
+ &-leave,
+ &-leave-to {
+ opacity: 0;
+ transform: scale3d(0, 0, 1) rotate3d(0, 0, 1, 90deg)
+ }
+}
+
+.flip-right,
+.flip-left,
+.flip-up,
+.flip-down {
+ &-enter-active,
+ &-leave-active {
+ transition: transform .3s;
+ backface-visibility: hidden
+ }
+
+ &-enter-to,
+ &-leave {
+ transform: perspective(400px) rotate3d(1, 1, 0, 0deg)
+
+ }
+}
+
+.flip-right {
+ &-enter {
+ transform: perspective(400px) rotate3d(0, 1, 0, -180deg)
+
+ }
+
+ &-leave-to {
+ transform: perspective(400px) rotate3d(0, 1, 0, 180deg)
+
+ }
+}
+
+.flip-left {
+ &-enter {
+ transform: perspective(400px) rotate3d(0, 1, 0, 180deg)
+ }
+
+ &-leave-to {
+ transform: perspective(400px) rotate3d(0, 1, 0, -180deg)
+ }
+}
+
+.flip-up {
+ &-enter {
+ transform: perspective(400px) rotate3d(1, 0, 0, -180deg)
+ }
+
+ &-leave-to {
+ transform: perspective(400px) rotate3d(1, 0, 0, 180deg)
+ }
+}
+
+.flip-down {
+ &-enter {
+ transform: perspective(400px) rotate3d(1, 0, 0, 180deg)
+ }
+
+ &-leave-to {
+ transform: perspective(400px) rotate3d(1, 0, 0, -180deg)
+ }
}
diff --git a/vue/src/components/PuzzleVerify/index.js b/vue/src/components/PuzzleVerify/index.js
new file mode 100644
index 0000000..bcec2e7
--- /dev/null
+++ b/vue/src/components/PuzzleVerify/index.js
@@ -0,0 +1,20 @@
+import Vue from 'vue'
+import Main from './main.vue'
+import {PopupManager} from 'element-ui/src/utils/popup'
+
+let Constructor = Vue.extend(Main)
+
+const PuzzleVerify = function ({left = 0, top = 0} = {}) {
+ const instance = new Constructor({data: {positionLeft: left}})
+ instance.positionTop = top - Math.round((instance.height + 130) / 2)
+ instance.$mount()
+ document.body.appendChild(instance.$el)
+ instance.$el.style.zIndex = PopupManager.nextZIndex()
+ instance.visible = true
+ return new Promise((resolve, reject) => {
+ instance.resolve = resolve
+ instance.reject = reject
+ })
+}
+
+export default PuzzleVerify
diff --git a/vue/src/components/PuzzleVerify/index.vue b/vue/src/components/PuzzleVerify/index.vue
deleted file mode 100644
index 1738d88..0000000
--- a/vue/src/components/PuzzleVerify/index.vue
+++ /dev/null
@@ -1,370 +0,0 @@
-
-
-
-
+
+
+
-
-
-
+
+
+
+