gpc-ui 0.1.7
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.
- package/README.md +3 -0
- package/lib/demo.html +10 -0
- package/lib/gpc-ui.common.js +3540 -0
- package/lib/gpc-ui.common.js.map +1 -0
- package/lib/gpc-ui.css +1 -0
- package/lib/gpc-ui.umd.js +3550 -0
- package/lib/gpc-ui.umd.js.map +1 -0
- package/lib/gpc-ui.umd.min.js +2 -0
- package/lib/gpc-ui.umd.min.js.map +1 -0
- package/package.json +51 -0
- package/src/components/gpc-login/index.vue +595 -0
- package/src/components/gpc-tabs/TabPane.vue +46 -0
- package/src/components/gpc-tabs/Tabs.vue +159 -0
- package/src/components/index.js +20 -0
|
@@ -0,0 +1,595 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="wrap">
|
|
3
|
+
<div class="wrap-box">
|
|
4
|
+
<div class="box-content">
|
|
5
|
+
<div class="sign">
|
|
6
|
+
<h2 class="title">忘记密码吗?</h2>
|
|
7
|
+
<p class="desc">点击这里重置密码</p>
|
|
8
|
+
<button type="button" class="get-register" @click="getRegister">重置</button>
|
|
9
|
+
</div>
|
|
10
|
+
<div class="login">
|
|
11
|
+
<h2 class="title">已经有账号了吗?</h2>
|
|
12
|
+
<p class="desc">点击这里登录</p>
|
|
13
|
+
<button type="button" class="get-login" @click="getLogin">登录</button>
|
|
14
|
+
</div>
|
|
15
|
+
</div>
|
|
16
|
+
|
|
17
|
+
<div class="manager-box">
|
|
18
|
+
<div class="login-part fadein">
|
|
19
|
+
<Tabs :curTab="curTab" style="height: 300px;">
|
|
20
|
+
<TabPane label="账号登录" name="1">
|
|
21
|
+
<div>
|
|
22
|
+
<div class="input-box">
|
|
23
|
+
<input type="text" placeholder="用户名/手机号" v-model="accountFrom.username">
|
|
24
|
+
<i class="iconfont icon-wo"></i>
|
|
25
|
+
</div>
|
|
26
|
+
<div class="input-box">
|
|
27
|
+
<input type="password" placeholder="密码" v-model="accountFrom.password">
|
|
28
|
+
<i class="iconfont icon-mima"></i>
|
|
29
|
+
</div>
|
|
30
|
+
<span style="color: red; font-size: 13px;">*本平台为互联网非涉密平台,严禁处理、传输国家秘密、工作秘密。</span>
|
|
31
|
+
<div class="buttons clearfix">
|
|
32
|
+
<button type="button" class="btn-login fr button" @click="getAccountLogin">登录</button>
|
|
33
|
+
</div>
|
|
34
|
+
</div>
|
|
35
|
+
</TabPane>
|
|
36
|
+
<TabPane label="验证码登录" name="2">
|
|
37
|
+
<div>
|
|
38
|
+
<div class="input-box">
|
|
39
|
+
<input type="text" placeholder="手机号" v-model="verifyFrom.username">
|
|
40
|
+
<i class="iconfont icon-wo"></i>
|
|
41
|
+
</div>
|
|
42
|
+
<div class="input-box">
|
|
43
|
+
<drag-verify ref="dragVerifyLogin" :width="320" :isPassing.sync="isPassingLogin" text="请按住滑块拖动" successText="验证通过" progressBarBg="#11C36A"
|
|
44
|
+
handlerIcon="el-icon-d-arrow-right" successIcon="el-icon-circle-check"
|
|
45
|
+
@passcallback="passCallLoginBack">
|
|
46
|
+
</drag-verify>
|
|
47
|
+
</div>
|
|
48
|
+
<div class="input-box">
|
|
49
|
+
<div class="drag-verify-box">
|
|
50
|
+
<input type="text" placeholder="验证码" v-model="verifyFrom.authCode">
|
|
51
|
+
<el-button style="border-color: #028037; color: #028037;" plain size="small" @click="getLoginVerifyCode" :disabled="isDisabledLogin">{{buttonLoginText}}</el-button>
|
|
52
|
+
</div>
|
|
53
|
+
</div>
|
|
54
|
+
<div class="buttons clearfix">
|
|
55
|
+
<button type="button" class="btn-login fr button" @click="getVerifyCodeLogin">登录</button>
|
|
56
|
+
</div>
|
|
57
|
+
</div>
|
|
58
|
+
</TabPane>
|
|
59
|
+
</Tabs>
|
|
60
|
+
</div>
|
|
61
|
+
<div class="sign-part fadeout">
|
|
62
|
+
<div>
|
|
63
|
+
<h3>重置密码</h3>
|
|
64
|
+
<div class="input-box">
|
|
65
|
+
<input type="text" placeholder="手机号" v-model="verifyFrom.username">
|
|
66
|
+
<i class="iconfont icon-wo"></i>
|
|
67
|
+
</div>
|
|
68
|
+
<div class="input-box">
|
|
69
|
+
<drag-verify ref="dragVerifyRest" :width="320" :isPassing.sync="isPassingRest" text="请按住滑块拖动" successText="验证通过" progressBarBg="#11C36A"
|
|
70
|
+
handlerIcon="el-icon-d-arrow-right" successIcon="el-icon-circle-check"
|
|
71
|
+
@passcallback="passCallRestBack">
|
|
72
|
+
</drag-verify>
|
|
73
|
+
</div>
|
|
74
|
+
<div class="input-box">
|
|
75
|
+
<div class="drag-verify-box">
|
|
76
|
+
<input type="text" placeholder="验证码" v-model="verifyFrom.authCode">
|
|
77
|
+
<el-button style="border-color: #028037; color: #028037;" plain size="small" @click="getRestVerifyCode" :disabled="isDisabledRest">{{buttonRestText}}</el-button>
|
|
78
|
+
</div>
|
|
79
|
+
</div>
|
|
80
|
+
<div class="buttons clearfix">
|
|
81
|
+
<button type="button" class="btn-register fr button" @click="getRegisterPw">重置</button>
|
|
82
|
+
</div>
|
|
83
|
+
</div>
|
|
84
|
+
</div>
|
|
85
|
+
</div>
|
|
86
|
+
</div>
|
|
87
|
+
</div>
|
|
88
|
+
</template>
|
|
89
|
+
|
|
90
|
+
<script>
|
|
91
|
+
import Tabs from '../gpc-tabs/Tabs.vue';
|
|
92
|
+
import TabPane from '../gpc-tabs/TabPane.vue';
|
|
93
|
+
import dragVerify from "vue-drag-verify2";
|
|
94
|
+
export default {
|
|
95
|
+
name: 'gpc-login',
|
|
96
|
+
components: {
|
|
97
|
+
Tabs,
|
|
98
|
+
TabPane,
|
|
99
|
+
dragVerify,
|
|
100
|
+
},
|
|
101
|
+
props: {
|
|
102
|
+
msg: String
|
|
103
|
+
},
|
|
104
|
+
data() {
|
|
105
|
+
return {
|
|
106
|
+
isLogin: true,
|
|
107
|
+
// 当前选中的标签
|
|
108
|
+
curTab: "1",
|
|
109
|
+
|
|
110
|
+
// 账号登录
|
|
111
|
+
accountFrom:{
|
|
112
|
+
username: '',
|
|
113
|
+
password: ''
|
|
114
|
+
},
|
|
115
|
+
// 验证码登录
|
|
116
|
+
verifyFrom:{
|
|
117
|
+
username: "",
|
|
118
|
+
authCode: "",
|
|
119
|
+
},
|
|
120
|
+
// 滑块验证 - 验证码登录
|
|
121
|
+
isPassingLogin: false,
|
|
122
|
+
countdownLogin:0,
|
|
123
|
+
isDisabledLogin: false,
|
|
124
|
+
// 重置密码
|
|
125
|
+
resetFrom:{
|
|
126
|
+
username: "",
|
|
127
|
+
authCode: "",
|
|
128
|
+
},
|
|
129
|
+
// 滑块验证 - 验证码登录
|
|
130
|
+
isPassingRest: false,
|
|
131
|
+
countdownRest:0,
|
|
132
|
+
isDisabledRest: false,
|
|
133
|
+
}
|
|
134
|
+
},
|
|
135
|
+
computed:{
|
|
136
|
+
buttonLoginText(){
|
|
137
|
+
return this.countdownLogin !== 0 ? `${this.countdownLogin}s`:"获取验证码"
|
|
138
|
+
},
|
|
139
|
+
buttonRestText(){
|
|
140
|
+
return this.countdownRest !== 0 ? `${this.countdownRest}s`:"获取验证码"
|
|
141
|
+
}
|
|
142
|
+
},
|
|
143
|
+
methods: {
|
|
144
|
+
// 账号登录
|
|
145
|
+
getAccountLogin(){
|
|
146
|
+
|
|
147
|
+
},
|
|
148
|
+
// 验证码登录
|
|
149
|
+
getVerifyCodeLogin(){
|
|
150
|
+
|
|
151
|
+
},
|
|
152
|
+
// 获取验证码(登录)
|
|
153
|
+
getLoginVerifyCode(){
|
|
154
|
+
if(this.isPassingLogin){
|
|
155
|
+
this.isDisabledLogin = true
|
|
156
|
+
this.countdownLogin = 3
|
|
157
|
+
const interval = setInterval(()=>{
|
|
158
|
+
this.countdownLogin--
|
|
159
|
+
if(this.countdownLogin === 0){
|
|
160
|
+
this.isDisabledLogin = false
|
|
161
|
+
this.countdownLogin = 0
|
|
162
|
+
clearInterval(interval)
|
|
163
|
+
}
|
|
164
|
+
},1000)
|
|
165
|
+
}
|
|
166
|
+
},
|
|
167
|
+
passCallLoginBack() {
|
|
168
|
+
console.log('passCallLoginBack \'验证通过\'');
|
|
169
|
+
// this.isPassingLogin = false
|
|
170
|
+
},
|
|
171
|
+
resetLogin() {
|
|
172
|
+
this.isPassingLogin = false;
|
|
173
|
+
this.$refs.dragVerifyLogin.reset()
|
|
174
|
+
},
|
|
175
|
+
// 重置密码
|
|
176
|
+
getRegisterPw(){
|
|
177
|
+
|
|
178
|
+
},
|
|
179
|
+
// 获取验证码(重置)
|
|
180
|
+
getRestVerifyCode(){
|
|
181
|
+
if(this.isPassingRest){
|
|
182
|
+
this.isDisabledRest = true
|
|
183
|
+
this.countdownRest = 3
|
|
184
|
+
const interval = setInterval(()=>{
|
|
185
|
+
this.countdownRest--
|
|
186
|
+
if(this.countdownRest === 0){
|
|
187
|
+
this.isDisabledRest = false
|
|
188
|
+
this.countdownRest = 0
|
|
189
|
+
clearInterval(interval)
|
|
190
|
+
}
|
|
191
|
+
},1000)
|
|
192
|
+
}
|
|
193
|
+
},
|
|
194
|
+
passCallRestBack() {
|
|
195
|
+
console.log('passcallback \'验证通过\'');
|
|
196
|
+
// this.isPassingRest = false
|
|
197
|
+
},
|
|
198
|
+
resetPw() {
|
|
199
|
+
this.isPassingRest = false;
|
|
200
|
+
this.$refs.dragVerifyRest.reset()
|
|
201
|
+
},
|
|
202
|
+
getRegister() {
|
|
203
|
+
console.log('getRegister');
|
|
204
|
+
this.resetPw()
|
|
205
|
+
this.updateClasses('.manager-box', 'right', 'left');
|
|
206
|
+
this.updateClasses('.sign-part', 'fadein', 'fadeout');
|
|
207
|
+
this.updateClasses('.login-part', 'fadeout', 'fadein');
|
|
208
|
+
},
|
|
209
|
+
getLogin() {
|
|
210
|
+
console.log('getLogin');
|
|
211
|
+
this.resetLogin()
|
|
212
|
+
this.updateClasses('.manager-box', 'left', 'right');
|
|
213
|
+
this.updateClasses('.sign-part', 'fadeout', 'fadein');
|
|
214
|
+
this.updateClasses('.login-part', 'fadein', 'fadeout');
|
|
215
|
+
},
|
|
216
|
+
updateClasses(selector, removeClass, addClass) {
|
|
217
|
+
const element = this.$el.querySelector(selector);
|
|
218
|
+
if (element) {
|
|
219
|
+
element.classList.remove(removeClass);
|
|
220
|
+
element.classList.add(addClass);
|
|
221
|
+
} else {
|
|
222
|
+
console.warn(`Element with selector ${selector} not found.`);
|
|
223
|
+
}
|
|
224
|
+
},
|
|
225
|
+
|
|
226
|
+
},
|
|
227
|
+
mounted() {
|
|
228
|
+
// 确保在组件挂载后执行 DOM 操作
|
|
229
|
+
this.updateClasses('.manager-box', 'left', 'right');
|
|
230
|
+
this.updateClasses('.sign-part', 'fadeout', 'fadein');
|
|
231
|
+
this.updateClasses('.login-part', 'fadein', 'fadeout');
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
</script>
|
|
235
|
+
|
|
236
|
+
<!-- Add "scoped" attribute to limit CSS to this component only -->
|
|
237
|
+
<style scoped>
|
|
238
|
+
|
|
239
|
+
body,button,input,select,textarea {
|
|
240
|
+
font-family: 'Microsoft YaHei',arial,SimSun,sans-serif,tahoma;
|
|
241
|
+
}
|
|
242
|
+
body{
|
|
243
|
+
font-size: 14px;
|
|
244
|
+
color: #666;
|
|
245
|
+
}
|
|
246
|
+
input,select,textarea {
|
|
247
|
+
font-size: 100%;
|
|
248
|
+
}
|
|
249
|
+
table {
|
|
250
|
+
border-collapse: collapse;
|
|
251
|
+
border-spacing: 0;
|
|
252
|
+
}
|
|
253
|
+
textarea,input,button,a {
|
|
254
|
+
outline: none;
|
|
255
|
+
}
|
|
256
|
+
button {
|
|
257
|
+
cursor: pointer;
|
|
258
|
+
}
|
|
259
|
+
textarea {
|
|
260
|
+
resize: none;
|
|
261
|
+
}
|
|
262
|
+
fieldset,img {
|
|
263
|
+
border: 0;
|
|
264
|
+
}
|
|
265
|
+
address,cite,code,dfn,em,i,th,var {
|
|
266
|
+
font-style: normal;
|
|
267
|
+
font-weight: normal;
|
|
268
|
+
}
|
|
269
|
+
ol,ul {
|
|
270
|
+
list-style: none;
|
|
271
|
+
}
|
|
272
|
+
caption,th {
|
|
273
|
+
text-align: left;
|
|
274
|
+
}
|
|
275
|
+
h1,h2,h3,h4,h5,h6 {
|
|
276
|
+
font-size: 100%;
|
|
277
|
+
font-weight: normal;
|
|
278
|
+
}
|
|
279
|
+
sub, sup {
|
|
280
|
+
font-size: 75%;
|
|
281
|
+
line-height: 0;
|
|
282
|
+
position: relative;
|
|
283
|
+
vertical-align: baseline;
|
|
284
|
+
}
|
|
285
|
+
sup {
|
|
286
|
+
top: -0.5em;
|
|
287
|
+
}
|
|
288
|
+
sub {
|
|
289
|
+
bottom: -0.25em;
|
|
290
|
+
}
|
|
291
|
+
a {
|
|
292
|
+
text-decoration: none;
|
|
293
|
+
}
|
|
294
|
+
.clearfix:before ,.clearfix:after {
|
|
295
|
+
content: "";
|
|
296
|
+
display: table;
|
|
297
|
+
}
|
|
298
|
+
.clearfix:after {
|
|
299
|
+
clear: both;
|
|
300
|
+
overflow: hidden;
|
|
301
|
+
}
|
|
302
|
+
.clearfix {
|
|
303
|
+
zoom: 1;
|
|
304
|
+
}
|
|
305
|
+
.fr {
|
|
306
|
+
float: right;
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
*,
|
|
310
|
+
*:after,
|
|
311
|
+
*:before {
|
|
312
|
+
box-sizing: border-box;
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
.wrap {
|
|
316
|
+
background: url("http://exd.design/wp-content/uploads/2018/12/bg.jpg") no-repeat fixed;
|
|
317
|
+
background-size: cover;
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
.wrap:after {
|
|
321
|
+
content: "";
|
|
322
|
+
position: absolute;
|
|
323
|
+
left: 0;
|
|
324
|
+
top: 0;
|
|
325
|
+
background: inherit;
|
|
326
|
+
filter: blur(3px);
|
|
327
|
+
z-index: 1;
|
|
328
|
+
}
|
|
329
|
+
|
|
330
|
+
.wrap-box {
|
|
331
|
+
position: absolute;
|
|
332
|
+
width: 840px;
|
|
333
|
+
height: 320px;
|
|
334
|
+
background: #018a46;
|
|
335
|
+
z-index: 2;
|
|
336
|
+
box-shadow: 0 0 10px 1px rgba(169, 169, 169, .2);
|
|
337
|
+
border-radius: 3px;
|
|
338
|
+
}
|
|
339
|
+
|
|
340
|
+
.box-content {
|
|
341
|
+
display: inline-table;
|
|
342
|
+
width: 100%;
|
|
343
|
+
height: 100%;
|
|
344
|
+
}
|
|
345
|
+
|
|
346
|
+
.box-content .sign,
|
|
347
|
+
.box-content .login {
|
|
348
|
+
display: table-cell;
|
|
349
|
+
width: 50%;
|
|
350
|
+
vertical-align: middle;
|
|
351
|
+
line-height: 36px;
|
|
352
|
+
}
|
|
353
|
+
|
|
354
|
+
.sign {
|
|
355
|
+
padding-left: 70px;
|
|
356
|
+
}
|
|
357
|
+
|
|
358
|
+
.login {
|
|
359
|
+
padding-left: 100px;
|
|
360
|
+
}
|
|
361
|
+
|
|
362
|
+
.box-content .title {
|
|
363
|
+
color: #e8e8e8;
|
|
364
|
+
font-size: 22px;
|
|
365
|
+
letter-spacing: 1px;
|
|
366
|
+
}
|
|
367
|
+
|
|
368
|
+
.box-content .desc {
|
|
369
|
+
color: #d3d3d3;
|
|
370
|
+
font-size: 14px;
|
|
371
|
+
}
|
|
372
|
+
|
|
373
|
+
.box-content button {
|
|
374
|
+
border-radius: 3px;
|
|
375
|
+
border: solid 1px #d3d3d3;
|
|
376
|
+
background-color: transparent;
|
|
377
|
+
color: #d3d3d3;
|
|
378
|
+
width: 124px;
|
|
379
|
+
height: 38px;
|
|
380
|
+
margin: 15px auto 0;
|
|
381
|
+
font-size: 16px;
|
|
382
|
+
transition: all .2s;
|
|
383
|
+
}
|
|
384
|
+
|
|
385
|
+
.box-content button:hover {
|
|
386
|
+
border-color: #fff;
|
|
387
|
+
color: #fff;
|
|
388
|
+
}
|
|
389
|
+
|
|
390
|
+
.manager-box {
|
|
391
|
+
position: absolute;
|
|
392
|
+
height: 380px;
|
|
393
|
+
width: 400px;
|
|
394
|
+
left: 50px;
|
|
395
|
+
top: -30px;
|
|
396
|
+
transition: all .8s linear;
|
|
397
|
+
background: #fff;
|
|
398
|
+
padding: 0 40px;
|
|
399
|
+
border-radius: 3px;
|
|
400
|
+
box-shadow: 0 0 15px 4px rgba(0, 0, 0, .1);
|
|
401
|
+
display: inline-table;
|
|
402
|
+
}
|
|
403
|
+
|
|
404
|
+
.manager-box>* {
|
|
405
|
+
display: table-cell;
|
|
406
|
+
vertical-align: middle;
|
|
407
|
+
}
|
|
408
|
+
|
|
409
|
+
.manager-box>*.fadein {
|
|
410
|
+
display: none;
|
|
411
|
+
animation: hide 1s 1 forwards;
|
|
412
|
+
}
|
|
413
|
+
|
|
414
|
+
.manager-box>*.fadeout {
|
|
415
|
+
display: table-cell;
|
|
416
|
+
animation: show 1s 1 forwards;
|
|
417
|
+
}
|
|
418
|
+
|
|
419
|
+
@keyframes hide {
|
|
420
|
+
0% {
|
|
421
|
+
opacity: 1;
|
|
422
|
+
}
|
|
423
|
+
|
|
424
|
+
100% {
|
|
425
|
+
opacity: 0;
|
|
426
|
+
}
|
|
427
|
+
}
|
|
428
|
+
|
|
429
|
+
@keyframes show {
|
|
430
|
+
0% {
|
|
431
|
+
opacity: 0;
|
|
432
|
+
}
|
|
433
|
+
|
|
434
|
+
100% {
|
|
435
|
+
opacity: 1;
|
|
436
|
+
}
|
|
437
|
+
}
|
|
438
|
+
|
|
439
|
+
.manager-box.right {
|
|
440
|
+
animation: toRight 1s 1 forwards;
|
|
441
|
+
}
|
|
442
|
+
|
|
443
|
+
@keyframes toRight {
|
|
444
|
+
0% {
|
|
445
|
+
left: 50px;
|
|
446
|
+
}
|
|
447
|
+
|
|
448
|
+
45% {
|
|
449
|
+
left: 450px;
|
|
450
|
+
}
|
|
451
|
+
|
|
452
|
+
80% {
|
|
453
|
+
left: 380px;
|
|
454
|
+
}
|
|
455
|
+
|
|
456
|
+
100% {
|
|
457
|
+
left: 390px;
|
|
458
|
+
}
|
|
459
|
+
}
|
|
460
|
+
|
|
461
|
+
.manager-box.left {
|
|
462
|
+
animation: toLeft 1s 1 forwards;
|
|
463
|
+
}
|
|
464
|
+
|
|
465
|
+
@keyframes toLeft {
|
|
466
|
+
0% {
|
|
467
|
+
left: 390px;
|
|
468
|
+
}
|
|
469
|
+
|
|
470
|
+
45% {
|
|
471
|
+
left: 10px;
|
|
472
|
+
}
|
|
473
|
+
|
|
474
|
+
80% {
|
|
475
|
+
left: 60px;
|
|
476
|
+
}
|
|
477
|
+
|
|
478
|
+
100% {
|
|
479
|
+
left: 50px;
|
|
480
|
+
}
|
|
481
|
+
}
|
|
482
|
+
|
|
483
|
+
.manager-box h3 {
|
|
484
|
+
color: #00b85c;
|
|
485
|
+
font-size: 22px;
|
|
486
|
+
margin-bottom: 30px;
|
|
487
|
+
}
|
|
488
|
+
|
|
489
|
+
.input-box {
|
|
490
|
+
position: relative;
|
|
491
|
+
margin: 20px 0;
|
|
492
|
+
}
|
|
493
|
+
|
|
494
|
+
.input-box i {
|
|
495
|
+
position: absolute;
|
|
496
|
+
width: 0;
|
|
497
|
+
bottom: 7px;
|
|
498
|
+
background-color: #00b85c;
|
|
499
|
+
transition: all .36s;
|
|
500
|
+
right: 20px;
|
|
501
|
+
color: #ccc;
|
|
502
|
+
}
|
|
503
|
+
|
|
504
|
+
.input-box input {
|
|
505
|
+
display: block;
|
|
506
|
+
border: 0;
|
|
507
|
+
border-bottom: solid 1px #ddd;
|
|
508
|
+
line-height: 34px;
|
|
509
|
+
width: 100%;
|
|
510
|
+
transition: all .2s;
|
|
511
|
+
font-size: 16px;
|
|
512
|
+
padding-right: 30px;
|
|
513
|
+
}
|
|
514
|
+
|
|
515
|
+
.input-box input::placeholder {
|
|
516
|
+
color: #ccc;
|
|
517
|
+
font-size: 14px;
|
|
518
|
+
}
|
|
519
|
+
|
|
520
|
+
.input-box input:focus + i {
|
|
521
|
+
color: #00b85c;
|
|
522
|
+
}
|
|
523
|
+
|
|
524
|
+
.input-box i:after {
|
|
525
|
+
content: '';
|
|
526
|
+
position: absolute;
|
|
527
|
+
right: -20px;
|
|
528
|
+
width: 0;
|
|
529
|
+
height: 1px;
|
|
530
|
+
background-color: #00b85c;
|
|
531
|
+
transition: all .4s;
|
|
532
|
+
bottom: -7px;
|
|
533
|
+
}
|
|
534
|
+
|
|
535
|
+
.input-box input:focus + i:after {
|
|
536
|
+
width: 320px;
|
|
537
|
+
}
|
|
538
|
+
|
|
539
|
+
.manager-box .button {
|
|
540
|
+
border-radius: 2px;
|
|
541
|
+
width: 124px;
|
|
542
|
+
height: 38px;
|
|
543
|
+
color: #fff;
|
|
544
|
+
background-color: #00b85c;
|
|
545
|
+
border: 0;
|
|
546
|
+
font-size: 16px;
|
|
547
|
+
}
|
|
548
|
+
|
|
549
|
+
.manager-box .button:hover {
|
|
550
|
+
background: radial-gradient(circle at center, rgba(0, 0, 0, 0) 30%, #eeeeff 60%, #eeeeff 65%, rgba(0, 0, 0, 0) 70%) 53% 105% / 10px 10px,
|
|
551
|
+
radial-gradient(circle at center, rgba(0, 0, 0, 0) 30%, #eeeeff 60%, #eeeeff 65%, rgba(0, 0, 0, 0) 70%) 16% 132% / 12px 12px,
|
|
552
|
+
radial-gradient(circle at center, rgba(0, 0, 0, 0) 30%, #eeeeff 60%, #eeeeff 65%, rgba(0, 0, 0, 0) 70%) 56% 94% / 8px 8px,
|
|
553
|
+
radial-gradient(circle at center, rgba(0, 0, 0, 0) 30%, #eeeeff 60%, #eeeeff 65%, rgba(0, 0, 0, 0) 70%) 42% 126% / 14px 14px,
|
|
554
|
+
radial-gradient(circle at center, rgba(0, 0, 0, 0) 30%, #eeeeff 60%, #eeeeff 65%, rgba(0, 0, 0, 0) 70%) 11% 119% / 11px 11px,
|
|
555
|
+
radial-gradient(circle at center, rgba(0, 0, 0, 0) 30%, #eeeeff 60%, #eeeeff 65%, rgba(0, 0, 0, 0) 70%) 69% 143% / 9px 9px,
|
|
556
|
+
radial-gradient(circle at center, rgba(0, 0, 0, 0) 30%, #eeeeff 60%, #eeeeff 65%, rgba(0, 0, 0, 0) 70%) 107% 141% / 6px 6px,
|
|
557
|
+
radial-gradient(circle at center, rgba(0, 0, 0, 0) 30%, #eeeeff 60%, #eeeeff 65%, rgba(0, 0, 0, 0) 70%) 51% 132% / 10px 10px,
|
|
558
|
+
radial-gradient(circle at center, rgba(0, 0, 0, 0) 30%, #eeeeff 60%, #eeeeff 65%, rgba(0, 0, 0, 0) 70%) 20% 121% / 15px 15px,
|
|
559
|
+
radial-gradient(circle at center, rgba(0, 0, 0, 0) 30%, #eeeeff 60%, #eeeeff 65%, rgba(0, 0, 0, 0) 70%) 68% 121% / 6px 6px,
|
|
560
|
+
radial-gradient(circle at center, rgba(0, 0, 0, 0) 30%, #eeeeff 60%, #eeeeff 65%, rgba(0, 0, 0, 0) 70%) 22% 127% / 11px 11px;
|
|
561
|
+
background-color: #028037;
|
|
562
|
+
background-repeat: no-repeat;
|
|
563
|
+
animation: bubbles .7s forwards ease-out;
|
|
564
|
+
}
|
|
565
|
+
|
|
566
|
+
@keyframes bubbles {
|
|
567
|
+
100% {
|
|
568
|
+
background-position: 48% -266%, 17% -396%, 58% -137%, 33% -360%, 21% -368%, 77% -137%, 114% -391%, 43% -2%, -1% -41%, 60% -207%, 27% -149%;
|
|
569
|
+
box-shadow: inset 0 -60px 0 #028037;
|
|
570
|
+
}
|
|
571
|
+
}
|
|
572
|
+
|
|
573
|
+
.manager-box .buttons {
|
|
574
|
+
margin-top: 40px;
|
|
575
|
+
line-height: 39px;
|
|
576
|
+
}
|
|
577
|
+
|
|
578
|
+
.manager-box .buttons a {
|
|
579
|
+
position: relative;
|
|
580
|
+
color: #999;
|
|
581
|
+
}
|
|
582
|
+
|
|
583
|
+
.manager-box .buttons a:hover {
|
|
584
|
+
color: #028037;
|
|
585
|
+
}
|
|
586
|
+
|
|
587
|
+
.drag_verify {
|
|
588
|
+
border: 1px solid #d2d2d2;
|
|
589
|
+
}
|
|
590
|
+
.drag-verify-box {
|
|
591
|
+
display: flex;
|
|
592
|
+
flex-direction: row;
|
|
593
|
+
justify-content: space-evenly;
|
|
594
|
+
}
|
|
595
|
+
</style>
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="TabPane" v-show="show">
|
|
3
|
+
<slot></slot>
|
|
4
|
+
</div>
|
|
5
|
+
</template>
|
|
6
|
+
|
|
7
|
+
<script>
|
|
8
|
+
export default {
|
|
9
|
+
name: 'TabPane',
|
|
10
|
+
props: {
|
|
11
|
+
name: {
|
|
12
|
+
type: String
|
|
13
|
+
},
|
|
14
|
+
label: {
|
|
15
|
+
type: String,
|
|
16
|
+
default: ''
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
data () {
|
|
20
|
+
return {
|
|
21
|
+
show: true
|
|
22
|
+
}
|
|
23
|
+
},
|
|
24
|
+
methods: {
|
|
25
|
+
updateNav () {
|
|
26
|
+
this.$parent.updateNav()
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
watch: {
|
|
30
|
+
label () {
|
|
31
|
+
this.updateNav()
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
mounted () {
|
|
35
|
+
this.updateNav()
|
|
36
|
+
},
|
|
37
|
+
computed: {
|
|
38
|
+
active () {
|
|
39
|
+
return false
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
</script>
|
|
44
|
+
<style scoped>
|
|
45
|
+
</style>
|
|
46
|
+
|