Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
visualcloud
/
Vmatrix-device-start
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Wiki
Members
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
c96732dc
authored
Aug 22, 2019
by
hank
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
扫描二维码 绑定设备
parent
20e7a3d7
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
263 additions
and
43 deletions
+263
-43
src/assets/phone.png
+0
-0
src/components/loading.vue
+99
-0
src/views/Home.vue
+163
-43
vue.config.js
+1
-0
No files found.
src/assets/phone.png
0 → 100644
View file @
c96732dc
5.42 KB
src/components/loading.vue
0 → 100644
View file @
c96732dc
<
template
>
<div
class=
"loader-inner ball-spin-fade-loader"
style=
"zoom: 0.5"
>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
</div>
</
template
>
<
script
>
export
default
{
name
:
'loading'
}
</
script
>
<
style
lang=
"scss"
scoped
>
@keyframes
ball-spin-fade-loader
{
50
%
{
opacity
:
0.3
;
-webkit-transform
:
scale
(
0.4
);
transform
:
scale
(
0.4
);
}
100
%
{
opacity
:
1
;
-webkit-transform
:
scale
(
1
);
transform
:
scale
(
1
);
}
}
.ball-spin-fade-loader
{
position
:
relative
;
height
:
80px
;
display
:
inline-block
;
margin
:
0
50px
;
margin-top
:
10px
;
}
.ball-spin-fade-loader
>
div
:nth-child
(
1
)
{
top
:
25px
;
left
:
0
;
-webkit-animation
:
ball-spin-fade-loader
1s
0s
infinite
linear
;
animation
:
ball-spin-fade-loader
1s
0s
infinite
linear
;
}
.ball-spin-fade-loader
>
div
:nth-child
(
2
)
{
top
:
17.04545px
;
left
:
17.04545px
;
-webkit-animation
:
ball-spin-fade-loader
1s
0.12s
infinite
linear
;
animation
:
ball-spin-fade-loader
1s
0.12s
infinite
linear
;
}
.ball-spin-fade-loader
>
div
:nth-child
(
3
)
{
top
:
0
;
left
:
25px
;
-webkit-animation
:
ball-spin-fade-loader
1s
0.24s
infinite
linear
;
animation
:
ball-spin-fade-loader
1s
0.24s
infinite
linear
;
}
.ball-spin-fade-loader
>
div
:nth-child
(
4
)
{
top
:
-17.04545px
;
left
:
17.04545px
;
-webkit-animation
:
ball-spin-fade-loader
1s
0.36s
infinite
linear
;
animation
:
ball-spin-fade-loader
1s
0.36s
infinite
linear
;
}
.ball-spin-fade-loader
>
div
:nth-child
(
5
)
{
top
:
-25px
;
left
:
0
;
-webkit-animation
:
ball-spin-fade-loader
1s
0.48s
infinite
linear
;
animation
:
ball-spin-fade-loader
1s
0.48s
infinite
linear
;
}
.ball-spin-fade-loader
>
div
:nth-child
(
6
)
{
top
:
-17.04545px
;
left
:
-17.04545px
;
-webkit-animation
:
ball-spin-fade-loader
1s
0.6s
infinite
linear
;
animation
:
ball-spin-fade-loader
1s
0.6s
infinite
linear
;
}
.ball-spin-fade-loader
>
div
:nth-child
(
7
)
{
top
:
0
;
left
:
-25px
;
-webkit-animation
:
ball-spin-fade-loader
1s
0.72s
infinite
linear
;
animation
:
ball-spin-fade-loader
1s
0.72s
infinite
linear
;
}
.ball-spin-fade-loader
>
div
:nth-child
(
8
)
{
top
:
17.04545px
;
left
:
-17.04545px
;
-webkit-animation
:
ball-spin-fade-loader
1s
0.84s
infinite
linear
;
animation
:
ball-spin-fade-loader
1s
0.84s
infinite
linear
;
}
.ball-spin-fade-loader
>
div
{
background-color
:
white
;
width
:
15px
;
height
:
15px
;
border-radius
:
100%
;
margin
:
2px
;
-webkit-animation-fill-mode
:
both
;
animation-fill-mode
:
both
;
position
:
absolute
;
}
</
style
>
\ No newline at end of file
src/views/Home.vue
View file @
c96732dc
...
...
@@ -4,26 +4,63 @@
<div
ref=
"lunzi"
>
<img
class=
"lunzi"
src=
"../assets/图形2.png"
alt
/>
</div>
<div
v-if=
"state == 'MAIN_STANDBY'"
>
<div
class=
"title"
>
Vmatrix-可视化云平台
</div>
<div
class=
"description"
>
<span>
一个提供高质量的视觉、交互与创意效果的平台
</span>
</div>
</div>
<div
class=
"title"
v-show=
"state === 'MAIN_USELESS'"
>
设备不可用
</div>
<div
class=
"content-container"
>
<div
v-show=
"state == 'MAIN_INIT_QRCODE'"
>
<div
class=
"title"
>
扫描二维码添加该设备
</div>
<div
class=
"description"
>
<span>
打开APP,点击“我的设备”右上角,选择“扫描添加”
</span>
</div>
<div
class=
"icon"
>
<div
class=
"code"
>
<img
:src=
"connectIdCode"
alt
/>
</div>
<!--
<img
:src=
"connectIdCode"
alt=
""
>
-->
</div>
</div>
<div
v-show=
"state == 'MAIN_BONDING'"
>
<div
class=
"title"
>
正在配置网络
</div>
<div
class=
"description"
>
<span>
配置网络时请您保持网络稳定
</span>
</div>
<div
class=
"icon"
>
<div
class=
"phone"
>
<img
src=
"../assets/phone.png"
alt
/>
</div>
<!--
<img
:src=
"connectIdCode"
alt=
""
>
-->
</div>
</div>
</div>
<div
class=
"bottom-tips"
>
<div
v-show=
"state == 'SHOW'"
>
启动中,请稍后...
</div>
<div
v-show=
"state == 'MAIN_BONDING'"
>
正在绑定,请稍后...
</div>
<div
v-show=
"state == 'MAIN_INIT_QRCODE'"
>
初始化二维码页
</div>
<div
v-show=
"state == 'MAIN_STANDBY'"
>
待机页面
</div>
<div
v-show=
"isConnected"
>
蓝牙已连接
</div>
<div
class=
"bottom-tips-item"
v-show=
"state == 'SHOW'"
>
<loading></loading>
启动中,请稍后...
</div>
<div
class=
"progress-container"
v-show=
"isLoading"
>
<div
class=
"progress"
>
<div
class=
"progress2"
ref=
"progress"
>
<div
class=
"bottom-tips-item"
v-show=
"state == 'MAIN_BONDING'"
>
<loading></loading>
正在绑定,请稍后...
</div>
<div
class=
"bottom-tips-item"
v-show=
"state == 'MAIN_INIT_QRCODE'"
>
初始化二维码页
</div>
<div
class=
"bottom-tips-item"
v-show=
"state == 'MAIN_STANDBY'"
>
待机页面
</div>
<div
class=
"bottom-tips-item"
v-show=
"isConnected"
>
蓝牙已连接
</div>
</div>
<div
class=
"progress-container"
>
<div
class=
"progress"
v-show=
"isLoading"
>
<div
class=
"progress2"
ref=
"progress"
></div>
</div>
<div
class=
"progress"
v-show=
"state == 'MAIN_BONDING' || state == 'MAIN_INIT_QRCODE'"
>
<div
class=
"progress3"
></div>
<div
class=
"progress4"
v-show=
"state == 'MAIN_BONDING'"
></div>
</div>
</div>
<div
class=
"bottom-code"
>
<div
v-if=
"state == 'MAIN_STANDBY'"
>
<div
v-if=
"state == 'MAIN_STANDBY'
|| state == 'MAIN_USELESS'
"
>
<img
:src=
"qrcode"
alt
/>
<div
class=
"more"
>
扫描了解更多
</div>
</div>
...
...
@@ -34,7 +71,7 @@
<
script
>
// @ is an alias to /src
// import HelloWorld from '@/components/HelloWorld.vue'
import
loading
from
"@/components/loading.vue"
;
const
QRCode
=
require
(
"qrcode"
);
import
anime
from
"animejs/lib/anime.es.js"
;
...
...
@@ -43,12 +80,13 @@ export default {
// name: 'Home',
components
:
{
// HelloWorld
loading
},
data
()
{
return
{
qrcode
:
"http://www.maxrocky.com/"
,
link
:
"http://www.maxrocky.com/"
,
state
:
"
MAIN_STANDBY
"
,
state
:
""
,
connectIdCode
:
""
,
isLoading
:
false
,
isConnected
:
false
...
...
@@ -57,9 +95,14 @@ export default {
methods
:
{
toQRcode
()
{
QRCode
.
toDataURL
(
this
.
link
,
{
errorCorrectionLevel
:
"H"
,
width
:
500
,
height
:
500
height
:
500
,
type
:
"image/png"
,
background
:
"#ffff"
,
color
:
{
// dark: "#ffff", // Blue dots
// light: "#0000" // Transparent background
}
})
.
then
(
url
=>
{
this
.
qrcode
=
url
;
...
...
@@ -70,50 +113,55 @@ export default {
},
showLoading
()
{
this
.
isLoading
=
true
;
anime
(
{
targets
:
this
.
$refs
[
'progress'
],
width
:
[
'10%'
,
'20%'
,
'30%'
,
'40%'
,
'50%'
,
'60%'
,
'70%'
,
'80%'
,
'90%'
,
'98%'
],
anime
({
targets
:
this
.
$refs
[
"progress"
],
width
:
[
"10%"
,
"20%"
,
"30%"
,
"40%"
,
"50%"
,
"60%"
,
"70%"
,
"80%"
,
"90%"
,
"98%"
],
duration
:
10000
}
)
});
},
closeLoading
()
{
anime
(
{
targets
:
this
.
$refs
[
'progress'
],
width
:
'100%'
,
anime
({
targets
:
this
.
$refs
[
"progress"
],
width
:
"100%"
,
duration
:
0
}
)
});
this
.
isLoading
=
false
;
anime
(
{
targets
:
this
.
$refs
[
'progress'
],
anime
({
targets
:
this
.
$refs
[
"progress"
],
width
:
[
0
],
duration
:
0
}
)
});
},
MAIN_STANDBY
()
{
anime
({
targets
:
this
.
$refs
[
"lunzi"
],
translateX
:
0
,
scale
:
[
0
,
1
],
rotateY
:
[
0
,
360
],
duration
:
1000
translateX
:
[
"-50%"
,
0
],
scale
:
[
0
,
0.5
,
1
],
translateZ
:
[
-
1000
,
0
],
// rotateY: [0, 360],
duration
:
2000
});
},
MAIN_INIT_QRCODE
()
{
console
.
log
(
"aaaa"
);
console
.
log
(
this
.
$refs
[
"lunzi"
]);
anime
({
targets
:
this
.
$refs
[
"lunzi"
],
translateX
:
"-50%"
,
rotateY
:
[
0
,
360
],
duration
:
2000
,
scale
:
[
0
,
1
]
translateX
:
"-60%"
,
translateY
:
"20%"
,
translateZ
:
[
-
1000
,
0
],
// rotateY: [0, 360],
duration
:
5000
,
scale
:
[
0
,
1.3
]
});
}
},
...
...
@@ -144,6 +192,9 @@ export default {
}
}
},
mounted
()
{
this
.
MAIN_INIT_QRCODE
();
},
created
()
{
window
.
test
=
this
;
this
.
toQRcode
();
...
...
@@ -209,6 +260,43 @@ export default {
position
:
absolute
;
width
:
157px
;
height
:
41px
;
z-index
:
1000
;
}
.content-container
{
.title
{
font-size
:
79px
;
top
:
360px
;
letter-spacing
:
20px
;
}
.description
{
font-size
:
30px
;
top
:
528px
;
}
.icon
{
.code
{
position
:
absolute
;
top
:
600px
;
left
:
50%
;
margin-left
:
-99px
;
background
:
white
;
display
:
inline
;
img
{
width
:
198px
;
height
:
198px
;
background
:
white
;
}
}
.phone
{
position
:
absolute
;
top
:
620px
;
left
:
50%
;
margin-left
:
-76px
;
display
:
inline
;
img
{
height
:
86px
;
}
}
}
}
.title
{
font-size
:
110px
;
...
...
@@ -236,6 +324,10 @@ export default {
right
:
63px
;
font-weight
:
400
;
color
:
rgba
(
255
,
255
,
255
,
0.8
);
.bottom-tips-item
{
display
:
flex
;
//
align-items
:
top
;
}
}
.bottom-code
{
position
:
absolute
;
...
...
@@ -247,7 +339,7 @@ export default {
//
width
:
262px
;
//
height
:
262px
;
display
:
block
;
clip-path
:
rect
(
250
)
;
background-color
:
white
;
}
.more
{
padding-top
:
5px
;
...
...
@@ -284,6 +376,34 @@ export default {
border-radius
:
3px
;
width
:
0
;
}
.progress3
{
content
:
""
;
position
:
absolute
;
top
:
-1.5px
;
left
:
0
;
height
:
5px
;
background
:
rgba
(
255
,
255
,
255
,
0.9
);
border-radius
:
3px
;
width
:
49%
;
}
.progress4
{
content
:
""
;
position
:
absolute
;
top
:
-1.5px
;
left
:
50%
;
height
:
5px
;
background
:
rgba
(
255
,
255
,
255
,
0.9
);
border-radius
:
3px
;
width
:
50%
;
}
}
}
@keyframes
rotate
{
from
{
transform
:
rotate
(
0deg
);
}
to
{
transform
:
rotate
(
360deg
);
}
}
@keyframes
rotate
{
...
...
vue.config.js
View file @
c96732dc
...
...
@@ -2,6 +2,7 @@ const UglifyJsPlugin = require('uglifyjs-webpack-plugin');
const
isProduction
=
process
.
env
.
NODE_ENV
===
'production'
;
module
.
exports
=
{
// 生产环境是否生成 sourceMap 文件
publicPath
:
'./'
,
productionSourceMap
:
false
,
//是否为 Babel 或 TypeScript 使用 thread-loader。该选项在系统的 CPU 有多于一个内核时自动启用,仅作用于生产构建。
parallel
:
require
(
'os'
).
cpus
().
length
>
1
,
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment