diff --git a/src/assets/styles/unlock.scss b/src/assets/styles/unlock.scss
new file mode 100644
index 00000000..e66ae073
--- /dev/null
+++ b/src/assets/styles/unlock.scss
@@ -0,0 +1,177 @@
+.unlock-body-con {
+ position: absolute;
+ width: 400px;
+ height: 100px;
+ left: 50%;
+ top: 50%;
+ margin-left: -200px;
+ margin-top: -200px;
+ transform-origin: center center;
+ z-index: 10000;
+ .unlock-avator-con {
+ position: absolute;
+ left: 50%;
+ top: 50%;
+ transform: translate(-50%, -50%);
+ box-sizing: border-box;
+ width: 100px;
+ height: 100px;
+ border-radius: 50%;
+ overflow: hidden;
+ border: 2px solid white;
+ cursor: pointer;
+ transition: all 0.5s;
+ z-index: 12;
+ box-shadow: 0 0 10px 2px rgba(255, 255, 255, 0.3);
+ .unlock-avator-img {
+ width: 100%;
+ height: 100%;
+ display: block;
+ z-index: 7;
+ }
+ .unlock-avator-cover {
+ width: 100%;
+ height: 100%;
+ background: rgba(0, 0, 0, 0.6);
+ z-index: 11600;
+ position: absolute;
+ left: 0;
+ top: 0;
+ opacity: 0;
+ transition: opacity 0.2s;
+ color: white;
+ span {
+ display: block;
+ margin: 20px auto 5px;
+ text-align: center;
+ }
+ p {
+ text-align: center;
+ font-size: 16px;
+ font-weight: 500;
+ }
+ }
+ &:hover .unlock-avator-cover {
+ opacity: 1;
+ transition: opacity 0.2s;
+ }
+ }
+ .unlock-avator-under-back {
+ position: absolute;
+ left: 50%;
+ top: 50%;
+ transform: translate(-45px, -50%);
+ box-sizing: border-box;
+ width: 100px;
+ height: 100px;
+ border-radius: 50%;
+ background:rgb(16, 22, 44);;
+ transition: all 0.5s;
+ z-index: 5;
+ }
+ .unlock-input-con {
+ position: absolute;
+ height: 70px;
+ width: 350px;
+ top: 15px;
+ right: 0px;
+ .unlock-input-overflow-con {
+ position: absolute;
+ width: 100%;
+ height: 100%;
+ left: 0;
+ top: 0;
+ overflow: hidden;
+ .unlock-overflow-body {
+ position: absolute;
+ top: 0;
+ right: 0;
+ width: 100%;
+ height: 100%;
+ transition: all 0.5s ease 0.5s;
+ .unlock-input {
+ float: left;
+ display: block;
+ box-sizing: content-box;
+ height: 22px;
+ width: 230px;
+ font-size: 18px;
+ outline: none;
+ padding: 11px 10px 11px 30px;
+ border: 2px solid #e2ddde;
+ margin-top: 10px;
+ }
+ .unlock-btn {
+ float: left;
+ display: block;
+ font-size: 20px;
+ padding: 7px 30px;
+ cursor: pointer;
+ border-radius: 0 25px 25px 0;
+ border: 2px solid #e2ddde;
+ border-left: none;
+ background: #2d8cf0;
+ outline: none;
+ transition: all 0.2s;
+ margin-top: 10px;
+ &:hover {
+ background: #5cadff;
+ box-shadow: 0 0 10px 3px rgba(255, 255, 255, 0.2);
+ }
+ }
+ .click-unlock-btn {
+ background: #2b85e4 !important;
+ }
+ }
+ }
+ }
+ .unlock-locking-tip-con {
+ width: 100px;
+ height: 30px;
+ text-align: center;
+ position: absolute;
+ left: 50%;
+ margin-left: -50px;
+ bottom: -50px;
+ color: white;
+ font-size: 18px;
+ }
+}
+@keyframes unlock-in {
+ 0% {
+ transform: scale(0);
+ }
+ 80% {
+ transform: scale(0);
+ }
+ 88% {
+ transform: scale(1.3);
+ }
+ 100% {
+ transform: scale(1);
+ }
+}
+@keyframes unlock-out {
+ 0% {
+ transform: scale(1);
+ }
+ 60% {
+ transform: scale(1.2);
+ }
+ 100% {
+ transform: scale(0);
+ }
+}
+.show-unlock-enter-active {
+ animation: unlock-in 1.4s ease;
+}
+.show-unlock-leave-to {
+ opacity: 0;
+}
+.show-unlock-leave-active {
+ transition: opacity 0.2s;
+}
+.unlock-con {
+ width: 100%;
+ height: 100%;
+}
diff --git a/src/components/LockScreen/lock.vue b/src/components/LockScreen/lock.vue
new file mode 100644
index 00000000..1baea736
--- /dev/null
+++ b/src/components/LockScreen/lock.vue
@@ -0,0 +1,69 @@
+
+
+
+ 锁屏
+
+
+
+
diff --git a/src/components/LockScreen/locking-page.vue b/src/components/LockScreen/locking-page.vue
new file mode 100644
index 00000000..ba2c23bf
--- /dev/null
+++ b/src/components/LockScreen/locking-page.vue
@@ -0,0 +1,66 @@
+
+
+
+
+
diff --git a/src/components/LockScreen/unlock.vue b/src/components/LockScreen/unlock.vue
new file mode 100644
index 00000000..17a6b117
--- /dev/null
+++ b/src/components/LockScreen/unlock.vue
@@ -0,0 +1,147 @@
+
+
+
+
+
+
+
![]()
+
+
+
+
+
已锁定
+
+
+
+
+