Skip to content
Toggle navigation
Projects
Groups
Snippets
Help
Toggle navigation
This project
Loading...
Sign in
platform
/
fanxing_new
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit adb233f3
authored
Mar 02, 2020
by
潘建波
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
暂时去除登录星云效果
1 parent
db60e2e7
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
842 additions
and
842 deletions
dist.zip
src/App.vue
src/api/axios.js
src/main.js
src/views/Layout/index.vue
src/views/Login.vue
src/views/resource/analysis.vue
yarn.lock
dist.zip
View file @
adb233f
No preview for this file type
src/App.vue
View file @
adb233f
...
...
@@ -6,36 +6,36 @@
<
script
>
export
default
{
data
()
{
return
{
}
return
{};
},
created
(){
let
menus
=
JSON
.
parse
(
localStorage
.
getItem
(
'menu'
))
if
(
menus
)
{
this
.
$store
.
dispatch
(
'GetMenuRole'
,
menus
).
then
(
res
=>
{})
created
()
{
let
menus
=
JSON
.
parse
(
localStorage
.
getItem
(
"menu"
));
if
(
menus
)
{
this
.
$store
.
dispatch
(
"GetMenuRole"
,
menus
).
then
(
res
=>
{});
}
let
token
=
localStorage
.
getItem
(
"atoken"
);
if
(
!
token
)
{
this
.
$router
.
push
(
"/login"
);
}
},
mounted
(){
window
.
videoEquitTableHeight
=
document
.
body
.
clientHeight
-
142
+
'px'
;
window
.
opsTableHeight
=
document
.
body
.
clientHeight
-
260
+
'px'
;
if
(
document
.
body
.
clientWidth
>
1366
){
window
.
oneSearchTableHeight
=
document
.
body
.
clientHeight
-
250
+
'px'
;
window
.
twoSearchTableHeight
=
document
.
body
.
clientHeight
-
280
+
'px'
;
}
else
{
window
.
oneSearchTableHeight
=
document
.
body
.
clientHeight
-
280
+
'px'
;
window
.
twoSearchTableHeight
=
document
.
body
.
clientHeight
-
315
+
'px'
;
}
mounted
()
{
window
.
videoEquitTableHeight
=
document
.
body
.
clientHeight
-
142
+
"px"
;
window
.
opsTableHeight
=
document
.
body
.
clientHeight
-
260
+
"px"
;
if
(
document
.
body
.
clientWidth
>
1366
)
{
window
.
oneSearchTableHeight
=
document
.
body
.
clientHeight
-
250
+
"px"
;
window
.
twoSearchTableHeight
=
document
.
body
.
clientHeight
-
280
+
"px"
;
}
else
{
window
.
oneSearchTableHeight
=
document
.
body
.
clientHeight
-
280
+
"px"
;
window
.
twoSearchTableHeight
=
document
.
body
.
clientHeight
-
315
+
"px"
;
}
}
}
}
;
</
script
>
<
style
lang=
"scss"
>
#app
{
height
:
100%
;
font-family
:
MicrosoftYaHeiUI
;
font-family
:
MicrosoftYaHeiUI
;
-webkit-font-smoothing
:
antialiased
;
-moz-osx-font-smoothing
:
grayscale
;
}
...
...
src/api/axios.js
View file @
adb233f
import
axios
from
'axios'
import
store
from
'../store/index.js'
import
axios
from
"axios"
;
import
store
from
"../store/index.js"
;
import
router
from
"../router/index"
;
// 创建 axios 实例
let
service
=
axios
.
create
({
// headers: {'Content-Type': 'application/json'},
timeout
:
60000
})
});
// 添加请求拦截器
service
.
interceptors
.
request
.
use
(
(
config
)
=>
{
if
(
store
.
state
.
users
.
atoken
)
{
// 判断是否存在token,如果存在的话,则每个http header都加上token
config
.
headers
.
authorization
=
store
.
state
.
users
.
atoken
;
}
if
(
config
.
method
==
'get'
)
{
config
.
params
=
{
_t
:
Date
.
parse
(
new
Date
())
/
1000
,
...
config
.
params
}
}
return
config
config
=>
{
let
token
=
localStorage
.
getItem
(
"atoken"
);
if
(
token
)
{
// 判断是否存在token,如果存在的话,则每个http header都加上token
config
.
headers
.
authorization
=
token
;
}
else
{
router
.
push
(
"/login"
);
}
if
(
config
.
method
==
"get"
)
{
config
.
params
=
{
_t
:
Date
.
parse
(
new
Date
())
/
1000
,
...
config
.
params
};
}
return
config
;
},
(
error
)
=>
{
error
=>
{
// 请求错误处理
return
Promise
.
reject
(
error
)
return
Promise
.
reject
(
error
)
;
}
)
)
;
// 添加响应拦截器
service
.
interceptors
.
response
.
use
(
(
response
)
=>
{
let
{
data
}
=
response
return
data
response
=>
{
let
{
data
}
=
response
;
return
data
;
},
(
error
)
=>
{
console
.
log
(
error
)
return
Promise
.
reject
(
error
)
error
=>
{
console
.
log
(
error
);
return
Promise
.
reject
(
error
);
}
)
)
;
/**
* 创建统一封装过的 axios 实例
* @return {AxiosInstance}
*/
export
default
function
()
{
return
service
return
service
;
}
src/main.js
View file @
adb233f
...
...
@@ -18,10 +18,10 @@ Vue.prototype.$echarts = echarts;
Vue
.
prototype
.
$moment
=
moment
;
Vue
.
prototype
.
$buildCode
=
buildCode
;
Vue
.
prototype
.
oParse
=
new
XML
.
ObjTree
();
Vue
.
prototype
.
axios
=
axios
;
Vue
.
prototype
.
axios
=
axios
;
import
VueParticles
from
'vue-particles'
Vue
.
use
(
VueParticles
)
// import VueParticles from "vue-particles";
// Vue.use(VueParticles);
Vue
.
use
(
api
);
Vue
.
use
(
ElementUI
,
{
size
:
"small"
,
zIndex
:
3000
});
...
...
src/views/Layout/index.vue
View file @
adb233f
...
...
@@ -35,6 +35,7 @@
</
template
>
<
script
>
import
types
from
"../../store/types.js"
;
// import HelloWorld from "@/components/HelloWorld.vue";
import
menus
from
"./menu"
;
export
default
{
...
...
@@ -110,11 +111,10 @@ export default {
this
.
curdate
=
`
${
Y
}
/
${
M
}
/
${
D
}
${
h
}
:
${
m
}
:
${
s
}
${
wtext
}
`
;
},
logout
()
{
localStorage
.
removeItem
(
"atkoen"
);
localStorage
.
removeItem
(
"menu"
);
localStorage
.
removeItem
(
"curmenu"
);
this
.
$store
.
commit
(
types
.
ATOKEN
,
""
);
localStorage
.
removeItem
(
"at
ko
en"
);
localStorage
.
removeItem
(
"at
ok
en"
);
this
.
$router
.
push
(
"/login"
);
}
},
...
...
src/views/Login.vue
View file @
adb233f
<
template
>
<div
id=
"login"
:style=
"
{height:innerHeight+'px'}">
<vue-particles
color=
"#dedede"
:particleOpacity=
"0.7"
:particlesNumber=
"80"
shapeType=
"circle"
:particleSize=
"4"
linesColor=
"#dedede"
:linesWidth=
"1"
:lineLinked=
"true"
:lineOpacity=
"0.4"
:linesDistance=
"150"
:moveSpeed=
"3"
:hoverEffect=
"true"
hoverMode=
"grab"
:clickEffect=
"true"
clickMode=
"push"
>
</vue-particles>
<div
class=
"box"
>
<h1>
视频分析综合管理平台
</h1>
<div
style=
"width: 60%;margin: 0 auto;"
>
<el-form
:model=
"ruleForm"
:rules=
"rules"
ref=
"ruleForm"
label-width=
"0px"
class=
"demo-ruleForm"
>
<el-form-item
label=
" "
prop=
"username"
>
<el-input
v-model=
"ruleForm.username"
placeholder=
"请输入用户名"
></el-input>
</el-form-item>
<el-form-item
label=
" "
prop=
"password"
>
<el-input
v-model=
"ruleForm.password"
type=
"password"
placeholder=
"请输入密码"
></el-input>
</el-form-item>
<el-form-item>
<el-button
type=
"primary"
@
click=
"submitForm('ruleForm')"
>
登 录
</el-button>
</el-form-item>
</el-form>
</div>
</div>
</div>
<div
id=
"login"
:style=
"
{ height: innerHeight + 'px' }">
<vue-particles
color=
"#dedede"
:particleOpacity=
"0.7"
:particlesNumber=
"80"
shapeType=
"circle"
:particleSize=
"4"
linesColor=
"#dedede"
:linesWidth=
"1"
:lineLinked=
"true"
:lineOpacity=
"0.4"
:linesDistance=
"150"
:moveSpeed=
"3"
:hoverEffect=
"true"
hoverMode=
"grab"
:clickEffect=
"true"
clickMode=
"push"
>
</vue-particles>
<div
class=
"box"
>
<h1>
视频分析综合管理平台
</h1>
<div
style=
"width: 60%;margin: 0 auto;"
>
<el-form
:model=
"ruleForm"
:rules=
"rules"
ref=
"ruleForm"
label-width=
"0px"
class=
"demo-ruleForm"
>
<el-form-item
label=
" "
prop=
"username"
>
<el-input
v-model=
"ruleForm.username"
placeholder=
"请输入用户名"
></el-input>
</el-form-item>
<el-form-item
label=
" "
prop=
"password"
>
<el-input
v-model=
"ruleForm.password"
type=
"password"
placeholder=
"请输入密码"
></el-input>
</el-form-item>
<el-form-item>
<el-button
type=
"primary"
@
click=
"submitForm('ruleForm')"
>
登 录
</el-button
>
</el-form-item>
</el-form>
</div>
</div>
</div>
</
template
>
<
script
>
let
sha1
=
require
(
'js-sha1'
);
import
types
from
'../store/types.js'
export
default
{
name
:
'Login'
,
data
()
{
var
validatePass
=
(
rule
,
value
,
callback
)
=>
{
if
(
value
===
''
)
{
callback
(
new
Error
(
'请输入密码'
));
}
else
{
callback
();
}
};
var
validateUser
=
(
rule
,
value
,
callback
)
=>
{
if
(
value
===
''
)
{
callback
(
new
Error
(
'请输入用户名'
));
}
else
{
callback
();
}
};
return
{
username
:
''
,
password
:
''
,
innerHeight
:
0
,
ruleForm
:{
username
:
''
,
password
:
''
,
},
rules
:
{
password
:
[
{
validator
:
validatePass
,
trigger
:
'change'
}
],
username
:
[
{
validator
:
validateUser
,
trigger
:
'change'
}
]
}
}
},
methods
:
{
submitForm
(
formName
)
{
this
.
$refs
[
formName
].
validate
((
valid
)
=>
{
if
(
valid
)
{
this
.
login
();
}
else
{
return
false
;
}
});
},
initHeight
(){
this
.
innerHeight
=
window
.
innerHeight
;
},
login
(){
this
.
$api
.
login
.
login
({
"username"
:
this
.
ruleForm
.
username
,
"password"
:
this
.
ruleForm
.
password
,
"user_type"
:
"user"
}).
then
(
res
=>
{
if
(
!
res
.
ecode
){
this
.
$store
.
commit
(
types
.
ATOKEN
,
res
.
atoken
);
// localStorage.setItem('rtoken',m.data.rtoken)
sessionStorage
.
setItem
(
'user_unid'
,
res
.
user_unid
)
//本系统可以直接用本地缓存做
// localStorage.setItem('user_name',this.username)
// 处理登录用户权限菜单显示问题;
//算法配置列表
this
.
algoList
();
//存储配置列表
this
.
storeConfList
();
//code列表
this
.
getCatesList
();
this
.
getCodeList
();
this
.
getCustomCode
();
this
.
getEventList
();
this
.
getDev
();
this
.
getMenu
(
res
.
user_unid
);
}
let
sha1
=
require
(
"js-sha1"
);
import
types
from
"../store/types.js"
;
export
default
{
name
:
"Login"
,
data
()
{
var
validatePass
=
(
rule
,
value
,
callback
)
=>
{
if
(
value
===
""
)
{
callback
(
new
Error
(
"请输入密码"
));
}
else
{
callback
();
}
};
var
validateUser
=
(
rule
,
value
,
callback
)
=>
{
if
(
value
===
""
)
{
callback
(
new
Error
(
"请输入用户名"
));
}
else
{
callback
();
}
};
return
{
username
:
""
,
password
:
""
,
innerHeight
:
0
,
ruleForm
:
{
username
:
""
,
password
:
""
},
rules
:
{
password
:
[{
validator
:
validatePass
,
trigger
:
"change"
}],
username
:
[{
validator
:
validateUser
,
trigger
:
"change"
}]
}
};
},
methods
:
{
submitForm
(
formName
)
{
this
.
$refs
[
formName
].
validate
(
valid
=>
{
if
(
valid
)
{
this
.
login
();
}
else
{
return
false
;
}
});
},
initHeight
()
{
this
.
innerHeight
=
window
.
innerHeight
;
},
login
()
{
this
.
$api
.
login
.
login
({
username
:
this
.
ruleForm
.
username
,
password
:
this
.
ruleForm
.
password
,
user_type
:
"user"
})
.
then
(
res
=>
{
if
(
!
res
.
ecode
)
{
this
.
$store
.
commit
(
types
.
ATOKEN
,
res
.
atoken
);
// localStorage.setItem('rtoken',m.data.rtoken)
sessionStorage
.
setItem
(
"user_unid"
,
res
.
user_unid
);
//本系统可以直接用本地缓存做
}).
catch
((
err
)
=>
{
})
},
getMenu
(
id
){
//获取菜单
this
.
$api
.
login
.
getMenus
({
"shape"
:
"tree"
}).
then
(
res
=>
{
localStorage
.
setItem
(
'menu'
,
JSON
.
stringify
(
res
.
menu_tree
[
0
].
children
))
this
.
$store
.
dispatch
(
'GetMenuRole'
,
res
.
menu_tree
[
0
].
children
).
then
(
res
=>
{
this
.
$router
.
push
(
'/'
)
})
})
},
algoList
()
{
this
.
$api
.
login
.
algocombs
({
limit
:
''
,
algo_set
:
'video'
}).
then
(
res
=>
{
if
(
!
res
.
ecode
){
this
.
$store
.
commit
(
types
.
ALGO
,
res
.
list_data
);
}
}).
catch
((
err
)
=>
{
})
},
storeConfList
(){
this
.
$api
.
login
.
storeconfs
({
offset
:
0
,
limit
:
''
}).
then
(
res
=>
{
if
(
!
res
.
ecode
){
this
.
$store
.
commit
(
types
.
STORECONF
,
res
.
list_data
);
}
}).
catch
((
err
)
=>
{
})
},
getCodeList
(){
this
.
$api
.
codes
.
cates
().
then
(
res
=>
{
res
.
list_data
.
forEach
(
item
=>
{
this
.
$api
.
codes
.
codes
({
},
item
.
cate_unid
).
then
(
res
=>
{
// 存储code列表
window
.
localStorage
.
setItem
(
item
.
name
,
JSON
.
stringify
(
res
.
list_data
))
// 存储单独code
res
.
list_data
.
forEach
(
chilItem
=>
{
window
.
localStorage
.
setItem
(
item
.
name
+
'-'
+
chilItem
.
code
,
chilItem
.
name
)
})
}).
catch
((
err
)
=>
{
})
})
}).
catch
((
err
)
=>
{
})
},
getCustomCode
(){
this
.
$api
.
codes
.
customCode
().
then
(
res
=>
{
if
(
res
.
list_data
.
length
>
0
)
{
res
.
list_data
.
forEach
((
item
)
=>
{
window
.
localStorage
.
setItem
(
item
.
name
+
'-'
+
item
.
cate
,
item
.
unid
);
})
}
else
{
this
.
$message
({
type
:
'warning'
,
message
:
'获取自定义编码失败!'
})
}
}).
catch
((
err
)
=>
{
})
},
getCatesList
(){
this
.
$api
.
codes
.
eventCates
({}).
then
(
res
=>
{
// 存储cate列表
window
.
localStorage
.
setItem
(
'cate列表'
,
JSON
.
stringify
(
res
.
list_data
))
// 存储单独code
res
.
list_data
.
forEach
(
item
=>
{
this
.
getOneEventList
(
item
.
code
,
item
.
event_cate_unid
)
})
})
},
getOneEventList
(
code
,
id
){
this
.
$api
.
codes
.
eventType
({},
id
).
then
(
res
=>
{
// 存储cate列表
window
.
localStorage
.
setItem
(
code
,
JSON
.
stringify
(
res
.
list_data
))
})
},
getEventList
(){
this
.
$api
.
search
.
eventTypes
({}).
then
(
res
=>
{
// 存储code列表
window
.
localStorage
.
setItem
(
'安防事件'
,
JSON
.
stringify
(
res
.
list_data
))
// 存储单独code
res
.
list_data
.
forEach
(
item
=>
{
window
.
localStorage
.
setItem
(
'安防事件-'
+
item
.
code
,
item
.
name
)
})
})
},
getDev
()
{
this
.
$api
.
resource
.
devs
().
then
(
res
=>
{
sessionStorage
.
setItem
(
'dev_unid'
,
res
[
0
].
dev_unid
);
this
.
getDevsName
(
res
[
0
].
dev_unid
);
})
},
getDevsName
(
id
){
this
.
$api
.
resource
.
getDevsName
({
is_leaf
:
0
},
id
).
then
(
res
=>
{
if
(
res
.
list_data
.
length
>
0
){
sessionStorage
.
setItem
(
'device_id'
,
res
.
list_data
[
0
].
device_id
);
}
})
},
},
watch
:
{},
mounted
()
{
},
created
()
{
this
.
initHeight
();
}
}
localStorage
.
setItem
(
"atoken"
,
res
.
atoken
);
// 处理登录用户权限菜单显示问题;
//算法配置列表
this
.
algoList
();
//存储配置列表
this
.
storeConfList
();
//code列表
this
.
getCatesList
();
this
.
getCodeList
();
this
.
getCustomCode
();
this
.
getEventList
();
this
.
getDev
();
this
.
getMenu
(
res
.
user_unid
);
}
})
.
catch
(
err
=>
{});
},
getMenu
(
id
)
{
//获取菜单
this
.
$api
.
login
.
getMenus
({
shape
:
"tree"
})
.
then
(
res
=>
{
localStorage
.
setItem
(
"menu"
,
JSON
.
stringify
(
res
.
menu_tree
[
0
].
children
)
);
this
.
$store
.
dispatch
(
"GetMenuRole"
,
res
.
menu_tree
[
0
].
children
)
.
then
(
res
=>
{
this
.
$router
.
push
(
"/"
);
});
});
},
algoList
()
{
this
.
$api
.
login
.
algocombs
({
limit
:
""
,
algo_set
:
"video"
})
.
then
(
res
=>
{
if
(
!
res
.
ecode
)
{
this
.
$store
.
commit
(
types
.
ALGO
,
res
.
list_data
);
}
})
.
catch
(
err
=>
{});
},
storeConfList
()
{
this
.
$api
.
login
.
storeconfs
({
offset
:
0
,
limit
:
""
})
.
then
(
res
=>
{
if
(
!
res
.
ecode
)
{
this
.
$store
.
commit
(
types
.
STORECONF
,
res
.
list_data
);
}
})
.
catch
(
err
=>
{});
},
getCodeList
()
{
this
.
$api
.
codes
.
cates
()
.
then
(
res
=>
{
res
.
list_data
.
forEach
(
item
=>
{
this
.
$api
.
codes
.
codes
({},
item
.
cate_unid
)
.
then
(
res
=>
{
// 存储code列表
window
.
localStorage
.
setItem
(
item
.
name
,
JSON
.
stringify
(
res
.
list_data
)
);
// 存储单独code
res
.
list_data
.
forEach
(
chilItem
=>
{
window
.
localStorage
.
setItem
(
item
.
name
+
"-"
+
chilItem
.
code
,
chilItem
.
name
);
});
})
.
catch
(
err
=>
{});
});
})
.
catch
(
err
=>
{});
},
getCustomCode
()
{
this
.
$api
.
codes
.
customCode
()
.
then
(
res
=>
{
if
(
res
.
list_data
.
length
>
0
)
{
res
.
list_data
.
forEach
(
item
=>
{
window
.
localStorage
.
setItem
(
item
.
name
+
"-"
+
item
.
cate
,
item
.
unid
);
});
}
else
{
this
.
$message
({
type
:
"warning"
,
message
:
"获取自定义编码失败!"
});
}
})
.
catch
(
err
=>
{});
},
getCatesList
()
{
this
.
$api
.
codes
.
eventCates
({}).
then
(
res
=>
{
// 存储cate列表
window
.
localStorage
.
setItem
(
"cate列表"
,
JSON
.
stringify
(
res
.
list_data
));
// 存储单独code
res
.
list_data
.
forEach
(
item
=>
{
this
.
getOneEventList
(
item
.
code
,
item
.
event_cate_unid
);
});
});
},
getOneEventList
(
code
,
id
)
{
this
.
$api
.
codes
.
eventType
({},
id
).
then
(
res
=>
{
// 存储cate列表
window
.
localStorage
.
setItem
(
code
,
JSON
.
stringify
(
res
.
list_data
));
});
},
getEventList
()
{
this
.
$api
.
search
.
eventTypes
({}).
then
(
res
=>
{
// 存储code列表
window
.
localStorage
.
setItem
(
"安防事件"
,
JSON
.
stringify
(
res
.
list_data
));
// 存储单独code
res
.
list_data
.
forEach
(
item
=>
{
window
.
localStorage
.
setItem
(
"安防事件-"
+
item
.
code
,
item
.
name
);
});
});
},
getDev
()
{
this
.
$api
.
resource
.
devs
().
then
(
res
=>
{
sessionStorage
.
setItem
(
"dev_unid"
,
res
[
0
].
dev_unid
);
this
.
getDevsName
(
res
[
0
].
dev_unid
);
});
},
getDevsName
(
id
)
{
this
.
$api
.
resource
.
getDevsName
(
{
is_leaf
:
0
},
id
)
.
then
(
res
=>
{
if
(
res
.
list_data
.
length
>
0
)
{
sessionStorage
.
setItem
(
"device_id"
,
res
.
list_data
[
0
].
device_id
);
}
});
}
},
watch
:
{},
mounted
()
{},
created
()
{
this
.
initHeight
();
}
};
</
script
>
<!-- Add "scoped" attribute to limit CSS to this component only -->
<
style
scoped
lang=
"scss"
>
#particles
{
position
:
absolute
;
width
:
100%
;
height
:
100%
;
background-color
:
#b61924
;
background-repeat
:
no-repeat
;
background-size
:
cover
;
background-position
:
50%
50%
;
#particles
{
position
:
absolute
;
width
:
100%
;
height
:
100%
;
background-color
:
#b61924
;
background-repeat
:
no-repeat
;
background-size
:
cover
;
background-position
:
50%
50%
;
}
.loginTitle
{
height
:
60px
;
background
:
#dcdcdc
;
position
:
relative
;
}
.loginTitle
>
div
{
position
:
absolute
;
text-align
:
left
;
/*left: 5%;*/
height
:
60px
;
/*margin-top: 15px;*/
/*background: url(../assets/daer.jpg) no-repeat;*/
padding-left
:
50px
;
background-size
:
100%
60px
;
width
:
150px
;
}
.loginTitle
>
div
span
:first-child
{
position
:
absolute
;
left
:
50px
;
top
:
-5px
;
font-weight
:
bold
;
font-size
:
18px
;
font-family
:
"隶书"
;
}
.loginTitle
>
div
span
:last-child
{
font-weight
:
500
;
font-size
:
12px
;
font-family
:
Aparajita
;
position
:
absolute
;
left
:
50px
;
top
:
16px
;
}
.loginTitle
{
height
:
60px
;
background
:
#dcdcdc
;
position
:
relative
;
}
.loginTitle
>
div
{
position
:
absolute
;
text-align
:
left
;
/*left: 5%;*/
height
:
60px
;
/*margin-top: 15px;*/
/*background: url(../assets/daer.jpg) no-repeat;*/
padding-left
:
50px
;
background-size
:
100%
60px
;
width
:
150px
}
.loginTitle
>
div
span
:first-child
{
position
:
absolute
;
left
:
50px
;
top
:
-5px
;
font-weight
:
bold
;
font-size
:
18px
;
font-family
:
"隶书"
;
}
.loginTitle
>
div
span
:last-child
{
font-weight
:
500
;
font-size
:
12px
;
font-family
:
Aparajita
;
position
:
absolute
;
left
:
50px
;
top
:
16px
;
}
h1
{
color
:
#000000
;
height
:
40px
;
line-height
:
40px
;
padding
:
60px
0px
;
font-size
:
44px
;
}
h1
{
color
:
#000000
;
height
:
40px
;
line-height
:
40px
;
padding
:
60px
0px
;
font-size
:
44px
;
}
#login
{
text-align
:
center
;
position
:
relative
;
background
:
url(../assets/img/login/background.png)
no-repeat
0
0
;
background-size
:
cover
}
#login
{
text-align
:
center
;
position
:
relative
;
background
:
url(../assets/img/login/background.png)
no-repeat
0
0
;
background-size
:
cover
;
}
#login
input
:focus
{
outline
:
none
;
box-shadow
:
none
;
}
.box
{
width
:
25%
;
position
:
absolute
;
left
:
52%
;
top
:
20%
;
#login
input
:focus
{
outline
:
none
;
box-shadow
:
none
;
}
.box
{
width
:
25%
;
position
:
absolute
;
left
:
52%
;
top
:
20%
;
}
button
{
width
:
100%
;
margin-top
:
40px
;
border-radius
:
30px
;
background
:
#0069ff
;
height
:
50px
;
font-size
:
20px
;
}
button
{
width
:
100%
;
margin-top
:
40px
;
border-radius
:
30px
;
background
:
#0069FF
;
height
:
50px
;
font-size
:
20px
;
}
button
:hover
{
color
:
#D6D9DF
}
button
:hover
{
color
:
#d6d9df
;
}
p
{
margin
:
0
;
}
p
{
margin
:
0
;
}
p
:nth-child
(
1
)
{
padding-top
:
15px
}
@media
screen
and
(
max-width
:
1366px
)
{
h1
{
height
:
40px
;
line-height
:
40px
;
padding
:
60px
0px
;
font-size
:
34px
;
}
.box
{
width
:
25%
;
position
:
absolute
;
left
:
57%
;
top
:
20%
;
}
}
p
:nth-child
(
1
)
{
padding-top
:
15px
;
}
@media
screen
and
(
max-width
:
1366px
)
{
h1
{
height
:
40px
;
line-height
:
40px
;
padding
:
60px
0px
;
font-size
:
34px
;
}
.box
{
width
:
25%
;
position
:
absolute
;
left
:
57%
;
top
:
20%
;
}
}
</
style
>
src/views/resource/analysis.vue
View file @
adb233f
<
template
>
<div
class=
"contentBox"
>
<div
class=
"content"
>
<div
style=
"padding: 20px 15px 20px 23px;"
>
<span
class=
"selectBox"
>
<el-select
v-model=
"selectDevs"
placeholder=
"请选择"
@
change=
"devsChange"
:popper-append-to-body=
false
>
<el-option
v-for=
"item in devsList"
:value=
"item.device_id"
:label=
'item.device_name'
></el-option>
</el-select>
</span>
<div
class=
"resourceDiv"
>
<span>
图片可用分析资源:
{{
resource
.
picture_free
}}
</span>
<span>
图片在用分析资源:
{{
resource
.
picture_busy
}}
</span>
<span>
视频可用分析资源:
{{
resource
.
video_free
}}
</span>
<span>
视频在用分析资源:
{{
resource
.
video_busy
}}
</span>
</div>
</div>
<div
style=
"padding: 0 15px 20px 23px;"
>
<el-table
height=
"574"
:data=
"tableData"
stripe
border
style=
"width: 100%"
>
<el-table-column
align=
"center"
prop=
"device_name"
label=
"设备名称"
>
</el-table-column>
<el-table-column
prop=
"in_ip"
align=
"center"
label=
"ip地址"
>
</el-table-column>
<el-table-column
align=
"center"
prop=
"online"
:formatter=
"statusFormatter"
label=
"在线状态"
>
</el-table-column>
<el-table-column
align=
"center"
prop=
"video_total"
label=
"分析资源数"
>
</el-table-column>
<el-table-column
align=
"center"
prop=
"video_free"
label=
"可用分析资源数"
>
</el-table-column>
<el-table-column
align=
"center"
prop=
"working_status"
label=
"工作状态"
>
</el-table-column>
<el-table-column
align=
"center"
width=
"300"
prop=
"operation"
label=
"操作"
>
<template
slot-scope=
"scope"
>
<el-tooltip
content=
"详情"
placement=
"bottom"
effect=
"light"
:visible-arrow=
false
>
<span
class=
"el-icon-info editIcon"
@
click=
"detail(scope.$index, scope.row)"
></span>
</el-tooltip>
</
template
>
</el-table-column>
</el-table>
<div
style=
"margin-top: 28px;"
>
<el-pagination
style=
"float: right;"
background
prev-text=
"上一页"
next-text=
"下一页"
:page-sizes=
"[30, 50, 100, 200]"
layout=
"prev, pager, next,sizes"
:current-page=
"page"
@
size-change=
"handleSizeChange"
@
current-change=
"handleCurrentChange"
:total=
"total"
>
</el-pagination>
<div
style=
"clear: both;"
></div>
</div>
</div>
</div>
<el-dialog
title=
"详情"
:visible
.
sync=
"detailVisible"
>
<el-table
height=
"574"
:data=
"detailData"
stripe
border
>
<li>
{{detail.online == 1 ? (detail.status.hardWareInfo.temperature[0]?detail.status.hardWareInfo.temperature[0].curTemperature : ''):''}}
</li>
<el-table-column
prop=
"device_name"
align=
"center"
label=
"核心板名称"
></el-table-column>
<el-table-column
prop=
"in_ip"
align=
"center"
label=
"核心板IP"
></el-table-column>
<el-table-column
align=
"center"
prop=
"online"
:formatter=
"statusFormatter"
label=
"在线状态"
>
</el-table-column>
<el-table-column
prop=
"cpuUse"
align=
"center"
label=
"CPU使用率"
:formatter=
"cpuUseFormatter"
></el-table-column>
<el-table-column
prop=
"cpuTem"
align=
"center"
label=
"CPU温度(℃)"
:formatter=
"cpuTemFormatter"
></el-table-column>
</el-table>
</el-dialog>
<div
class=
"content"
>
<div
style=
"padding: 20px 15px 20px 23px;"
>
<span
class=
"selectBox"
>
<el-select
v-model=
"selectDevs"
placeholder=
"请选择"
@
change=
"devsChange"
:popper-append-to-body=
"false"
>
<el-option
v-for=
"(item, index) in devsList"
:key=
"index"
:value=
"item.device_id"
:label=
"item.device_name"
></el-option>
</el-select>
</span>
<div
class=
"resourceDiv"
>
<span>
图片可用分析资源:
{{
resource
.
picture_free
}}
</span>
<span>
图片在用分析资源:
{{
resource
.
picture_busy
}}
</span>
<span>
视频可用分析资源:
{{
resource
.
video_free
}}
</span>
<span>
视频在用分析资源:
{{
resource
.
video_busy
}}
</span>
</div>
</div>
<div
style=
"padding: 0 15px 20px 23px;"
>
<el-table
height=
"574"
:data=
"tableData"
stripe
border
style=
"width: 100%"
>
<el-table-column
align=
"center"
prop=
"device_name"
label=
"设备名称"
>
</el-table-column>
<el-table-column
prop=
"in_ip"
align=
"center"
label=
"ip地址"
>
</el-table-column>
<el-table-column
align=
"center"
prop=
"online"
:formatter=
"statusFormatter"
label=
"在线状态"
>
</el-table-column>
<el-table-column
align=
"center"
prop=
"video_total"
label=
"分析资源数"
>
</el-table-column>
<el-table-column
align=
"center"
prop=
"video_free"
label=
"可用分析资源数"
>
</el-table-column>
<el-table-column
align=
"center"
prop=
"working_status"
label=
"工作状态"
>
</el-table-column>
<el-table-column
align=
"center"
width=
"300"
prop=
"operation"
label=
"操作"
>
<template
slot-scope=
"scope"
>
<el-tooltip
content=
"详情"
placement=
"bottom"
effect=
"light"
:visible-arrow=
"false"
>
<span
class=
"el-icon-info editIcon"
@
click=
"detail(scope.$index, scope.row)"
></span>
</el-tooltip>
</
template
>
</el-table-column>
</el-table>
<div
style=
"margin-top: 28px;"
>
<el-pagination
style=
"float: right;"
background
prev-text=
"上一页"
next-text=
"下一页"
:page-sizes=
"[30, 50, 100, 200]"
layout=
"prev, pager, next,sizes"
:current-page=
"page"
@
size-change=
"handleSizeChange"
@
current-change=
"handleCurrentChange"
:total=
"total"
>
</el-pagination>
<div
style=
"clear: both;"
></div>
</div>
</div>
</div>
<el-dialog
title=
"详情"
:visible
.
sync=
"detailVisible"
>
<el-table
height=
"574"
:data=
"detailData"
stripe
border
>
<li>
{{
detail.online == 1
? detail.status.hardWareInfo.temperature[0]
? detail.status.hardWareInfo.temperature[0].curTemperature
: ""
: ""
}}
</li>
<el-table-column
prop=
"device_name"
align=
"center"
label=
"核心板名称"
></el-table-column>
<el-table-column
prop=
"in_ip"
align=
"center"
label=
"核心板IP"
></el-table-column>
<el-table-column
align=
"center"
prop=
"online"
:formatter=
"statusFormatter"
label=
"在线状态"
>
</el-table-column>
<el-table-column
prop=
"cpuUse"
align=
"center"
label=
"CPU使用率"
:formatter=
"cpuUseFormatter"
></el-table-column>
<el-table-column
prop=
"cpuTem"
align=
"center"
label=
"CPU温度(℃)"
:formatter=
"cpuTemFormatter"
></el-table-column>
</el-table>
</el-dialog>
</div>
</template>
<
script
>
export
default
{
data
(){
return
{
detailData
:[],
dev_unid
:
sessionStorage
.
getItem
(
'dev_unid'
),
resource
:{
picture_busy
:
0
,
picture_free
:
0
,
video_busy
:
0
,
video_free
:
0
,
},
total
:
0
,
page
:
1
,
pageSize
:
30
,
tableData
:
[],
devsList
:[],
selectDevs
:
''
,
detailVisible
:
false
}
},
components
:{
},
mounted
(){
this
.
getResource
();
this
.
getDevsName
();
},
methods
:{
devsChange
(){
this
.
getTableList
();
},
getResource
(){
this
.
$api
.
resource
.
getResource
({},
this
.
dev_unid
).
then
(
res
=>
{
this
.
resource
=
res
.
works
;
})
},
getDevsName
(){
this
.
$api
.
resource
.
getDevsName
({
is_leaf
:
0
},
this
.
dev_unid
).
then
(
res
=>
{
this
.
devsList
=
res
.
list_data
;
if
(
res
.
list_data
.
length
>
0
){
this
.
selectDevs
=
res
.
list_data
[
0
].
device_id
;
}
this
.
getTableList
();
})
},
statusFormatter
(
row
,
column
,
cellValue
,
index
){
if
(
cellValue
==
1
){
return
'在线'
}
else
if
(
cellValue
==
0
){
return
'离线'
}
else
{
return
'未知'
}
},
cpuUseFormatter
(
row
,
column
,
cellValue
,
index
){
if
(
row
.
online
==
1
){
return
parseInt
(
row
.
status
.
hardWareInfo
.
usedResourceInfo
.
cpuRatio
*
60
)
+
'%'
}
else
{
return
''
}
},
cpuTemFormatter
(
row
,
column
,
cellValue
,
index
){
if
(
row
.
online
==
1
){
if
(
row
.
status
.
hardWareInfo
.
temperature
[
0
]){
return
row
.
status
.
hardWareInfo
.
temperature
[
0
].
curTemperature
}
else
{
return
''
}
}
else
{
return
''
}
},
handleSizeChange
(
val
)
{
this
.
pageSize
=
val
;
this
.
getTableList
();
},
handleCurrentChange
(
val
)
{
this
.
page
=
val
;
this
.
getTableList
();
},
getTableList
(){
this
.
tableData
=
[];
let
offset
=
(
this
.
page
-
1
)
*
this
.
pageSize
;
this
.
$api
.
resource
.
getDevsName
({
limit
:
this
.
pageSize
,
offset
:
offset
,
parent_id
:
this
.
selectDevs
,
},
this
.
dev_unid
).
then
((
res
)
=>
{
this
.
total
=
res
.
total_num
;
if
(
res
.
list_data
==
null
){
this
.
tableData
=
[]
}
else
{
this
.
tableData
=
res
.
list_data
;
}
}).
catch
((
error
)
=>
{
})
},
detail
(
index
,
row
){
this
.
detailData
=
[];
this
.
detailVisible
=
true
;
this
.
$api
.
resource
.
getDevsName
({
parent_id
:
row
.
device_id
,
offset
:
0
,
limit
:
10000
,
},
this
.
dev_unid
).
then
(
res
=>
{
this
.
detailData
=
res
.
list_data
;
this
.
detailData
.
unshift
(
row
)
})
},
},
}
export
default
{
data
()
{
return
{
detailData
:
[],
dev_unid
:
sessionStorage
.
getItem
(
"dev_unid"
),
resource
:
{
picture_busy
:
0
,
picture_free
:
0
,
video_busy
:
0
,
video_free
:
0
},
total
:
0
,
page
:
1
,
pageSize
:
30
,
tableData
:
[],
devsList
:
[],
selectDevs
:
""
,
detailVisible
:
false
};
},
components
:
{},
mounted
()
{
this
.
getResource
();
this
.
getDevsName
();
},
methods
:
{
devsChange
()
{
this
.
getTableList
();
},
getResource
()
{
this
.
$api
.
resource
.
getResource
({},
this
.
dev_unid
).
then
(
res
=>
{
this
.
resource
=
res
.
works
;
});
},
getDevsName
()
{
this
.
$api
.
resource
.
getDevsName
(
{
is_leaf
:
0
},
this
.
dev_unid
)
.
then
(
res
=>
{
this
.
devsList
=
res
.
list_data
;
if
(
res
.
list_data
.
length
>
0
)
{
this
.
selectDevs
=
res
.
list_data
[
0
].
device_id
;
}
this
.
getTableList
();
});
},
statusFormatter
(
row
,
column
,
cellValue
,
index
)
{
if
(
cellValue
==
1
)
{
return
"在线"
;
}
else
if
(
cellValue
==
0
)
{
return
"离线"
;
}
else
{
return
"未知"
;
}
},
cpuUseFormatter
(
row
,
column
,
cellValue
,
index
)
{
if
(
row
.
online
==
1
)
{
return
(
parseInt
(
row
.
status
.
hardWareInfo
.
usedResourceInfo
.
cpuRatio
*
60
)
+
"%"
);
}
else
{
return
""
;
}
},
cpuTemFormatter
(
row
,
column
,
cellValue
,
index
)
{
if
(
row
.
online
==
1
)
{
if
(
row
.
status
.
hardWareInfo
.
temperature
[
0
])
{
return
row
.
status
.
hardWareInfo
.
temperature
[
0
].
curTemperature
;
}
else
{
return
""
;
}
}
else
{
return
""
;
}
},
handleSizeChange
(
val
)
{
this
.
pageSize
=
val
;
this
.
getTableList
();
},
handleCurrentChange
(
val
)
{
this
.
page
=
val
;
this
.
getTableList
();
},
getTableList
()
{
this
.
tableData
=
[];
let
offset
=
(
this
.
page
-
1
)
*
this
.
pageSize
;
this
.
$api
.
resource
.
getDevsName
(
{
limit
:
this
.
pageSize
,
offset
:
offset
,
parent_id
:
this
.
selectDevs
},
this
.
dev_unid
)
.
then
(
res
=>
{
this
.
total
=
res
.
total_num
;
if
(
res
.
list_data
==
null
)
{
this
.
tableData
=
[];
}
else
{
this
.
tableData
=
res
.
list_data
;
}
})
.
catch
(
error
=>
{});
},
detail
(
index
,
row
)
{
this
.
detailData
=
[];
this
.
detailVisible
=
true
;
this
.
$api
.
resource
.
getDevsName
(
{
parent_id
:
row
.
device_id
,
offset
:
0
,
limit
:
10000
},
this
.
dev_unid
)
.
then
(
res
=>
{
this
.
detailData
=
res
.
list_data
;
this
.
detailData
.
unshift
(
row
);
});
}
}
};
</
script
>
<
style
lang=
"scss"
scoped
>
.topCon
{
background
:
$
white-back-color
;
margin-bottom
:
12px
;
height
:
100px
;
.left{
display
:
inline-block
;
margin
:
{
top
:
22px
;
left
:
30px
;
}
;
img
{
width
:
65px
;
height
:
55px
;
margin-right
:
11px
;
}
.topText
{
font-size
:
24px
;
font-family
:
MicrosoftYaHeiUI-Bold
,
MicrosoftYaHeiUI
;
font-weight
:
bold
;
margin-bottom
:
4px
;
}
.bottomText
{
font-size
:
14px
;
font-family
:
MicrosoftYaHeiUI
;
}
}
.right
{
float
:
right
;
.topText{
font-size
:
28px
;
font-family
:
MicrosoftYaHeiUI-Bold
,
MicrosoftYaHeiUI
;
font-weight
:
bold
;
}
.bottomText
{
position
:
relative
;
top
:
-1px
;
font-size
:
14px
;
font-family
:
MicrosoftYaHeiUI
;
}
}
.textCon
{
display
:
inline-block
;
vertical-align
:
top
;
}
.border
{
display
:
inline-block
;
height
:
40px
;
border
:
{
left
:
2px
solid
$
border-color
;
}
;
}
.rightBox
{
margin-top
:
14px
;
display
:
inline-block
;
img{
margin
:
{
top
:
15px
;
right
:
22px
;
}
}
}
.rightBox
:nth-of-type
(
1
)
{
img{
width
:
34px
;
height
:
34px
;
}
.textCon
{
margin-right
:
114px
;
}
}
.rightBox
:nth-of-type
(
2
)
{
position
:
relative
;
top
:
4px
;
img{
width
:
40px
;
height
:
40px
;
margin-left
:
102px
;
}
.textCon
{
margin-right
:
101px
;
}
}
.rightBox
:nth-of-type
(
3
)
{
img{
width
:
34px
;
height
:
35px
;
margin-left
:
104px
;
}
.textCon
{
margin-right
:
184px
;
}
}
}
.resourceDiv
{
display
:
inline-block
;
margin-left
:
10%
;
span{
margin-right
:
5%
;
}
}
.content
{
background
:
#FFFFFF
;
}
.inputBox
{
margin-right
:
20px
;
}
.selectBox
{
margin-right
:
20px
;
}
.editIcon
{
cursor
:
pointer
;
color
:
#0069ff
;
font-size
:
16px
;
}
.editIcon2
{
cursor
:
pointer
;
color
:
#87d14b
;
font-size
:
16px
;
}
.playIcon
{
cursor
:
pointer
;
color
:
#34b3a2
;
font-size
:
16px
;
}
.pauseIcon
{
cursor
:
pointer
;
color
:
#ffc62e
;
font-size
:
14px
;
}
.delIcon
{
cursor
:
pointer
;
color
:
#f2365a
;
font-size
:
16px
;
}
</
style
>
\ No newline at end of file
.topCon
{
background
:
$
white-back-color
;
margin-bottom
:
12px
;
height
:
100px
;
.left
{
display
:
inline-block
;
margin
:
{
top
:
22px
;
left
:
30px
;
}
img
{
width
:
65px
;
height
:
55px
;
margin-right
:
11px
;
}
.topText
{
font-size
:
24px
;
font-family
:
MicrosoftYaHeiUI-Bold
,
MicrosoftYaHeiUI
;
font-weight
:
bold
;
margin-bottom
:
4px
;
}
.bottomText
{
font-size
:
14px
;
font-family
:
MicrosoftYaHeiUI
;
}
}
.right
{
float
:
right
;
.topText
{
font-size
:
28px
;
font-family
:
MicrosoftYaHeiUI-Bold
,
MicrosoftYaHeiUI
;
font-weight
:
bold
;
}
.bottomText
{
position
:
relative
;
top
:
-1px
;
font-size
:
14px
;
font-family
:
MicrosoftYaHeiUI
;
}
}
.textCon
{
display
:
inline-block
;
vertical-align
:
top
;
}
.border
{
display
:
inline-block
;
height
:
40px
;
border
:
{
left
:
2px
solid
$
border-color
;
}
}
.rightBox
{
margin-top
:
14px
;
display
:
inline-block
;
img
{
margin
:
{
top
:
15px
;
right
:
22px
;
}
}
}
.rightBox
:nth-of-type
(
1
)
{
img
{
width
:
34px
;
height
:
34px
;
}
.textCon
{
margin-right
:
114px
;
}
}
.rightBox
:nth-of-type
(
2
)
{
position
:
relative
;
top
:
4px
;
img
{
width
:
40px
;
height
:
40px
;
margin-left
:
102px
;
}
.textCon
{
margin-right
:
101px
;
}
}
.rightBox
:nth-of-type
(
3
)
{
img
{
width
:
34px
;
height
:
35px
;
margin-left
:
104px
;
}
.textCon
{
margin-right
:
184px
;
}
}
}
.resourceDiv
{
display
:
inline-block
;
margin-left
:
10%
;
span
{
margin-right
:
5%
;
}
}
.content
{
background
:
#ffffff
;
}
.inputBox
{
margin-right
:
20px
;
}
.selectBox
{
margin-right
:
20px
;
}
.editIcon
{
cursor
:
pointer
;
color
:
#0069ff
;
font-size
:
16px
;
}
.editIcon2
{
cursor
:
pointer
;
color
:
#87d14b
;
font-size
:
16px
;
}
.playIcon
{
cursor
:
pointer
;
color
:
#34b3a2
;
font-size
:
16px
;
}
.pauseIcon
{
cursor
:
pointer
;
color
:
#ffc62e
;
font-size
:
14px
;
}
.delIcon
{
cursor
:
pointer
;
color
:
#f2365a
;
font-size
:
16px
;
}
</
style
>
yarn.lock
View file @
adb233f
...
...
@@ -2553,7 +2553,7 @@ debug@2.6.9, debug@^2.2.0, debug@^2.3.3:
dependencies:
ms "2.0.0"
debug@3.2.6, debug@^3.0.0, debug@^3.1.1, debug@^3.2.5
, debug@^3.2.6
:
debug@3.2.6, debug@^3.0.0, debug@^3.1.1, debug@^3.2.5:
version "3.2.6"
resolved "https://registry.npm.taobao.org/debug/download/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b"
dependencies:
...
...
@@ -2596,10 +2596,6 @@ deep-equal@^1.0.1:
object-keys "^1.1.1"
regexp.prototype.flags "^1.2.0"
deep-extend@^0.6.0:
version "0.6.0"
resolved "https://registry.npm.taobao.org/deep-extend/download/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac"
deep-is@~0.1.3:
version "0.1.3"
resolved "https://registry.npm.taobao.org/deep-is/download/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34"
...
...
@@ -2687,10 +2683,6 @@ destroy@~1.0.4:
version "1.0.4"
resolved "https://registry.npm.taobao.org/destroy/download/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80"
detect-libc@^1.0.2:
version "1.0.3"
resolved "https://registry.npm.taobao.org/detect-libc/download/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b"
detect-node@^2.0.4:
version "2.0.4"
resolved "https://registry.npm.taobao.org/detect-node/download/detect-node-2.0.4.tgz#014ee8f8f669c5c58023da64b8179c083a28c46c"
...
...
@@ -3501,12 +3493,6 @@ fs-extra@^7.0.1:
jsonfile "^4.0.0"
universalify "^0.1.0"
fs-minipass@^1.2.5:
version "1.2.7"
resolved "https://registry.npm.taobao.org/fs-minipass/download/fs-minipass-1.2.7.tgz?cache=0&sync_timestamp=1579628689954&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffs-minipass%2Fdownload%2Ffs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7"
dependencies:
minipass "^2.6.0"
fs-minipass@^2.0.0:
version "2.1.0"
resolved "https://registry.npm.taobao.org/fs-minipass/download/fs-minipass-2.1.0.tgz?cache=0&sync_timestamp=1579628689954&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffs-minipass%2Fdownload%2Ffs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb"
...
...
@@ -3988,7 +3974,7 @@ human-signals@^1.1.1:
version "1.1.1"
resolved "https://registry.npm.taobao.org/human-signals/download/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3"
iconv-lite@0.4.24, iconv-lite@^0.4.24
, iconv-lite@^0.4.4
:
iconv-lite@0.4.24, iconv-lite@^0.4.24:
version "0.4.24"
resolved "https://registry.npm.taobao.org/iconv-lite/download/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
dependencies:
...
...
@@ -4008,12 +3994,6 @@ iferr@^0.1.5:
version "0.1.5"
resolved "https://registry.npm.taobao.org/iferr/download/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501"
ignore-walk@^3.0.1:
version "3.0.3"
resolved "https://registry.npm.taobao.org/ignore-walk/download/ignore-walk-3.0.3.tgz#017e2447184bfeade7c238e4aefdd1e8f95b1e37"
dependencies:
minimatch "^3.0.4"
ignore@^3.3.5:
version "3.3.10"
resolved "https://registry.npm.taobao.org/ignore/download/ignore-3.3.10.tgz?cache=0&sync_timestamp=1565775199290&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fignore%2Fdownload%2Fignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043"
...
...
@@ -4104,10 +4084,6 @@ inherits@2.0.3:
version "2.0.3"
resolved "https://registry.npm.taobao.org/inherits/download/inherits-2.0.3.tgz?cache=0&sync_timestamp=1560975547815&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Finherits%2Fdownload%2Finherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
ini@~1.3.0:
version "1.3.5"
resolved "https://registry.npm.taobao.org/ini/download/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927"
inquirer@^6.2.2:
version "6.5.2"
resolved "https://registry.npm.taobao.org/inquirer/download/inquirer-6.5.2.tgz?cache=0&sync_timestamp=1579939863311&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Finquirer%2Fdownload%2Finquirer-6.5.2.tgz#ad50942375d036d327ff528c08bd5fab089928ca"
...
...
@@ -4986,25 +4962,12 @@ minipass-pipeline@^1.2.2:
dependencies:
minipass "^3.0.0"
minipass@^2.6.0, minipass@^2.8.6, minipass@^2.9.0:
version "2.9.0"
resolved "https://registry.npm.taobao.org/minipass/download/minipass-2.9.0.tgz?cache=0&sync_timestamp=1571953917221&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fminipass%2Fdownload%2Fminipass-2.9.0.tgz#e713762e7d3e32fed803115cf93e04bca9fcc9a6"
dependencies:
safe-buffer "^5.1.2"
yallist "^3.0.0"
minipass@^3.0.0, minipass@^3.1.1:
version "3.1.1"
resolved "https://registry.npm.taobao.org/minipass/download/minipass-3.1.1.tgz?cache=0&sync_timestamp=1571953917221&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fminipass%2Fdownload%2Fminipass-3.1.1.tgz#7607ce778472a185ad6d89082aa2070f79cedcd5"
dependencies:
yallist "^4.0.0"
minizlib@^1.2.1:
version "1.3.3"
resolved "https://registry.npm.taobao.org/minizlib/download/minizlib-1.3.3.tgz?cache=0&sync_timestamp=1570255638980&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fminizlib%2Fdownload%2Fminizlib-1.3.3.tgz#2290de96818a34c29551c8a8d301216bd65a861d"
dependencies:
minipass "^2.9.0"
mississippi@^3.0.0:
version "3.0.0"
resolved "https://registry.npm.taobao.org/mississippi/download/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022"
...
...
@@ -5157,14 +5120,6 @@ natural-compare@^1.4.0:
version "1.4.0"
resolved "https://registry.npm.taobao.org/natural-compare/download/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
needle@^2.2.1:
version "2.3.2"
resolved "https://registry.npm.taobao.org/needle/download/needle-2.3.2.tgz#3342dea100b7160960a450dc8c22160ac712a528"
dependencies:
debug "^3.2.6"
iconv-lite "^0.4.4"
sax "^1.2.4"
negotiator@0.6.2:
version "0.6.2"
resolved "https://registry.npm.taobao.org/negotiator/download/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb"
...
...
@@ -5247,21 +5202,6 @@ node-libs-browser@^2.2.1:
util "^0.11.0"
vm-browserify "^1.0.1"
node-pre-gyp@*:
version "0.14.0"
resolved "https://registry.npm.taobao.org/node-pre-gyp/download/node-pre-gyp-0.14.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode-pre-gyp%2Fdownload%2Fnode-pre-gyp-0.14.0.tgz#9a0596533b877289bcad4e143982ca3d904ddc83"
dependencies:
detect-libc "^1.0.2"
mkdirp "^0.5.1"
needle "^2.2.1"
nopt "^4.0.1"
npm-packlist "^1.1.6"
npmlog "^4.0.2"
rc "^1.2.7"
rimraf "^2.6.1"
semver "^5.3.0"
tar "^4.4.2"
node-releases@^1.1.47:
version "1.1.47"
resolved "https://registry.npm.taobao.org/node-releases/download/node-releases-1.1.47.tgz?cache=0&sync_timestamp=1579641052401&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode-releases%2Fdownload%2Fnode-releases-1.1.47.tgz#c59ef739a1fd7ecbd9f0b7cf5b7871e8a8b591e4"
...
...
@@ -5300,13 +5240,6 @@ nodent-runtime@^3.2.1:
dependencies:
abbrev "1"
nopt@^4.0.1:
version "4.0.1"
resolved "https://registry.npm.taobao.org/nopt/download/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d"
dependencies:
abbrev "1"
osenv "^0.1.4"
normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, normalize-package-data@^2.5.0:
version "2.5.0"
resolved "https://registry.npm.taobao.org/normalize-package-data/download/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8"
...
...
@@ -5351,24 +5284,6 @@ normalize-wheel@^1.0.1:
version "1.0.1"
resolved "https://registry.npm.taobao.org/normalize-wheel/download/normalize-wheel-1.0.1.tgz#aec886affdb045070d856447df62ecf86146ec45"
npm-bundled@^1.0.1:
version "1.1.1"
resolved "https://registry.npm.taobao.org/npm-bundled/download/npm-bundled-1.1.1.tgz#1edd570865a94cdb1bc8220775e29466c9fb234b"
dependencies:
npm-normalize-package-bin "^1.0.1"
npm-normalize-package-bin@^1.0.1:
version "1.0.1"
resolved "https://registry.npm.taobao.org/npm-normalize-package-bin/download/npm-normalize-package-bin-1.0.1.tgz#6e79a41f23fd235c0623218228da7d9c23b8f6e2"
npm-packlist@^1.1.6:
version "1.4.8"
resolved "https://registry.npm.taobao.org/npm-packlist/download/npm-packlist-1.4.8.tgz?cache=0&sync_timestamp=1579784145028&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnpm-packlist%2Fdownload%2Fnpm-packlist-1.4.8.tgz#56ee6cc135b9f98ad3d51c1c95da22bbb9b2ef3e"
dependencies:
ignore-walk "^3.0.1"
npm-bundled "^1.0.1"
npm-normalize-package-bin "^1.0.1"
npm-run-path@^2.0.0:
version "2.0.2"
resolved "https://registry.npm.taobao.org/npm-run-path/download/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f"
...
...
@@ -5381,7 +5296,7 @@ npm-run-path@^4.0.0:
dependencies:
path-key "^3.0.0"
"npmlog@0 || 1 || 2 || 3 || 4", npmlog@^4.0.0
, npmlog@^4.0.2
:
"npmlog@0 || 1 || 2 || 3 || 4", npmlog@^4.0.0:
version "4.1.2"
resolved "https://registry.npm.taobao.org/npmlog/download/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b"
dependencies:
...
...
@@ -5588,7 +5503,7 @@ os-tmpdir@^1.0.0, os-tmpdir@~1.0.2:
version "1.0.2"
resolved "https://registry.npm.taobao.org/os-tmpdir/download/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
osenv@0
, osenv@^0.1.4
:
osenv@0:
version "0.1.5"
resolved "https://registry.npm.taobao.org/osenv/download/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410"
dependencies:
...
...
@@ -5724,6 +5639,10 @@ parseurl@~1.3.2, parseurl@~1.3.3:
version "1.3.3"
resolved "https://registry.npm.taobao.org/parseurl/download/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4"
particles.js@^2.0.0:
version "2.0.0"
resolved "https://registry.npm.taobao.org/particles.js/download/particles.js-2.0.0.tgz#21386c4328d6c7f96780a201e96eedfc09c736f6"
pascalcase@^0.1.1:
version "0.1.1"
resolved "https://registry.npm.taobao.org/pascalcase/download/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14"
...
...
@@ -6367,15 +6286,6 @@ rbush@^3.0.1:
dependencies:
quickselect "^2.0.0"
rc@^1.2.7:
version "1.2.8"
resolved "https://registry.npm.taobao.org/rc/download/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed"
dependencies:
deep-extend "^0.6.0"
ini "~1.3.0"
minimist "^1.2.0"
strip-json-comments "~2.0.1"
read-pkg-up@^1.0.1:
version "1.0.1"
resolved "https://registry.npm.taobao.org/read-pkg-up/download/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02"
...
...
@@ -6724,7 +6634,7 @@ sass-loader@^8.0.0:
schema-utils "^2.6.1"
semver "^6.3.0"
sax@
^1.2.4, sax@
~1.2.4:
sax@~1.2.4:
version "1.2.4"
resolved "https://registry.npm.taobao.org/sax/download/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
...
...
@@ -6766,7 +6676,7 @@ selfsigned@^1.10.7:
dependencies:
node-forge "0.9.0"
"semver@2 || 3 || 4 || 5", semver@^5.
3.0, semver@^5.
4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0, semver@^5.7.0:
"semver@2 || 3 || 4 || 5", semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0, semver@^5.7.0:
version "5.7.1"
resolved "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz?cache=0&sync_timestamp=1580434257623&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
...
...
@@ -7257,7 +7167,7 @@ strip-indent@^2.0.0:
version "2.0.0"
resolved "https://registry.npm.taobao.org/strip-indent/download/strip-indent-2.0.0.tgz#5ef8db295d01e6ed6cbf7aab96998d7822527b68"
strip-json-comments@2.0.1, strip-json-comments@^2.0.1
, strip-json-comments@~2.0.1
:
strip-json-comments@2.0.1, strip-json-comments@^2.0.1:
version "2.0.1"
resolved "https://registry.npm.taobao.org/strip-json-comments/download/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
...
...
@@ -7365,18 +7275,6 @@ tar@^2.0.0:
fstream "^1.0.12"
inherits "2"
tar@^4.4.2:
version "4.4.13"
resolved "https://registry.npm.taobao.org/tar/download/tar-4.4.13.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftar%2Fdownload%2Ftar-4.4.13.tgz#43b364bc52888d555298637b10d60790254ab525"
dependencies:
chownr "^1.1.1"
fs-minipass "^1.2.5"
minipass "^2.8.6"
minizlib "^1.2.1"
mkdirp "^0.5.0"
safe-buffer "^5.1.2"
yallist "^3.0.3"
terser-webpack-plugin@^1.4.3:
version "1.4.3"
resolved "https://registry.npm.taobao.org/terser-webpack-plugin/download/terser-webpack-plugin-1.4.3.tgz?cache=0&sync_timestamp=1580403891929&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fterser-webpack-plugin%2Fdownload%2Fterser-webpack-plugin-1.4.3.tgz#5ecaf2dbdc5fb99745fd06791f46fc9ddb1c9a7c"
...
...
@@ -7819,6 +7717,13 @@ vue-loader@^15.7.2:
vue-hot-reload-api "^2.3.0"
vue-style-loader "^4.1.0"
vue-particles@^1.0.9:
version "1.0.9"
resolved "https://registry.npm.taobao.org/vue-particles/download/vue-particles-1.0.9.tgz#29d9cc2be0157df1c0a87ec3b96c96f33279526e"
dependencies:
particles.js "^2.0.0"
vue "^2.2.6"
vue-router@^3.1.3:
version "3.1.5"
resolved "https://registry.npm.taobao.org/vue-router/download/vue-router-3.1.5.tgz#ff29b8a1e1306c526b52d4dc0532109f16c41231"
...
...
@@ -7841,7 +7746,7 @@ vue-template-es2015-compiler@^1.9.0:
version "1.9.1"
resolved "https://registry.npm.taobao.org/vue-template-es2015-compiler/download/vue-template-es2015-compiler-1.9.1.tgz#1ee3bc9a16ecbf5118be334bb15f9c46f82f5825"
vue@^2.6.10:
vue@^2.
2.6, vue@^2.
6.10:
version "2.6.11"
resolved "https://registry.npm.taobao.org/vue/download/vue-2.6.11.tgz#76594d877d4b12234406e84e35275c6d514125c5"
...
...
@@ -8145,7 +8050,7 @@ yallist@^2.1.2:
version "2.1.2"
resolved "https://registry.npm.taobao.org/yallist/download/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52"
yallist@^3.0.
0, yallist@^3.0.2, yallist@^3.0.3
:
yallist@^3.0.
2
:
version "3.1.1"
resolved "https://registry.npm.taobao.org/yallist/download/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd"
...
...
Write
Preview
Markdown
is supported
Attach a file
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 post a comment