Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
D
device-new-platform
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
赵啸非
device-new-platform
Commits
74201798
Commit
74201798
authored
2 years ago
by
赵啸非
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改前端站点编辑
parent
f96901cf
Changes
12
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
197 additions
and
636 deletions
+197
-636
device-manager-ui/admin/src/components/Header.vue
device-manager-ui/admin/src/components/Header.vue
+10
-4
device-manager-ui/admin/src/components/SearchForm.vue
device-manager-ui/admin/src/components/SearchForm.vue
+41
-161
device-manager-ui/admin/src/components/Table.vue
device-manager-ui/admin/src/components/Table.vue
+13
-13
device-manager-ui/admin/src/router.js
device-manager-ui/admin/src/router.js
+0
-1
device-manager-ui/admin/src/views/device/list.vue
device-manager-ui/admin/src/views/device/list.vue
+115
-13
device-manager-ui/admin/src/views/login/login.vue
device-manager-ui/admin/src/views/login/login.vue
+1
-1
device-manager-ui/admin/src/views/system/area/format.js
device-manager-ui/admin/src/views/system/area/format.js
+0
-102
device-manager-ui/admin/src/views/system/area/list.vue
device-manager-ui/admin/src/views/system/area/list.vue
+0
-211
device-manager-ui/admin/src/views/system/area/show.vue
device-manager-ui/admin/src/views/system/area/show.vue
+0
-116
device-manager/src/main/java/com/mortals/xhx/base/login/web/LoginController.java
.../java/com/mortals/xhx/base/login/web/LoginController.java
+14
-4
device-manager/src/main/resources/bootstrap.yml
device-manager/src/main/resources/bootstrap.yml
+3
-3
pom.xml
pom.xml
+0
-7
No files found.
device-manager-ui/admin/src/components/Header.vue
View file @
74201798
...
@@ -22,16 +22,22 @@
...
@@ -22,16 +22,22 @@
</ul>
</ul>
</div>
</div>
<div
class=
"layout-profile"
>
<div
class=
"layout-profile"
>
<el-dropdown
@
command=
"handleCommand"
>
<span
class=
"el-dropdown-link"
>
{{
userData
.
currUserName
}}
<i
class=
"el-icon-arrow-down el-icon--right"
></i>
</span>
<!--
<el-dropdown
@
command=
"handleCommand"
>
<span
class=
"el-dropdown-link"
>
<span
class=
"el-dropdown-link"
>
{{
userData
.
currUserName
}}
{{
userData
.
currUserName
}}
<i
class=
"el-icon-arrow-down el-icon--right"
></i>
<i
class=
"el-icon-arrow-down el-icon--right"
></i>
</span>
</span>
<!--
<el-dropdown-menu
slot=
"dropdown"
>
<el-dropdown-menu
slot=
"dropdown"
>
<el-dropdown-item
command=
"update"
>
修改密码
</el-dropdown-item>
<el-dropdown-item
command=
"update"
>
修改密码
</el-dropdown-item>
<el-dropdown-item
command=
"logout"
>
退出登录
</el-dropdown-item>
<el-dropdown-item
command=
"logout"
>
退出登录
</el-dropdown-item>
</el-dropdown-menu>
-->
</el-dropdown-menu>
</el-dropdown>
</el-dropdown>
-->
</div>
</div>
</div>
</div>
...
...
This diff is collapsed.
Click to expand it.
device-manager-ui/admin/src/components/SearchForm.vue
View file @
74201798
...
@@ -3,22 +3,7 @@
...
@@ -3,22 +3,7 @@
<
template
>
<
template
>
<div
class=
"search-form-wapper"
>
<div
class=
"search-form-wapper"
>
<el-form
:inline=
"true"
:model=
"form"
ref=
"search-form"
size=
"small"
>
<el-form
:inline=
"true"
:model=
"form"
ref=
"search-form"
size=
"small"
>
<!-- 省市区选择器 -->
<template
v-if=
"areaSelect.enable"
>
<el-form-item
label=
"区域"
>
<el-cascader
v-model=
"area"
clearable=
"true"
filterable
change-on-select
@
change=
"treeSelected"
:options=
"treeData"
></el-cascader>
</el-form-item>
</
template
>
<el-form-item
<el-form-item
v-for=
"(item, i) in search"
v-for=
"(item, i) in search"
:key=
"i"
:key=
"i"
v-bind:class=
"
{ search_new_line: item.newLine }"
v-bind:class=
"
{ search_new_line: item.newLine }"
...
@@ -26,8 +11,8 @@
...
@@ -26,8 +11,8 @@
<el-input
<el-input
v-model=
"form[item.name]"
v-model=
"form[item.name]"
v-if=
"item.type === 'text'"
v-if=
"item.type === 'text'"
:placeholder=
"
item.placeholder? item.placeholder: '请输入' + item.label
:placeholder=
"
item.placeholder ? item.placeholder : '请输入' + item.label
"
"
></el-input>
></el-input>
...
@@ -164,8 +149,6 @@
...
@@ -164,8 +149,6 @@
:placeholder=
"item.label"
:placeholder=
"item.label"
>
>
</el-date-picker>
</el-date-picker>
</el-form-item>
</el-form-item>
<el-form-item>
<el-form-item>
...
@@ -173,11 +156,9 @@
...
@@ -173,11 +156,9 @@
type=
"primary"
type=
"primary"
icon=
"el-icon-search"
icon=
"el-icon-search"
@
click=
"onSubmit"
@
click=
"onSubmit"
title=
"查询"
title=
"查询"
>
查询
</el-button>
>
查询
</el-button
>
<el-button
<el-button
icon=
"el-icon-download"
icon=
"el-icon-download"
...
@@ -186,12 +167,9 @@
...
@@ -186,12 +167,9 @@
v-if=
"downloadUrl"
v-if=
"downloadUrl"
>
下载
</el-button
>
下载
</el-button
>
>
<el-button
<el-button
icon=
"el-icon-refresh-left"
@
click=
"cleanForm"
title=
"清空"
icon=
"el-icon-refresh-left"
>
清空
</el-button
@
click=
"cleanForm"
>
title=
"清空"
>
清空
</el-button>
</el-form-item>
</el-form-item>
</el-form>
</el-form>
</div>
</div>
...
@@ -199,13 +177,7 @@
...
@@ -199,13 +177,7 @@
<
script
>
<
script
>
import
Qs
from
"
qs
"
;
import
Qs
from
"
qs
"
;
import
{
import
{
type
}
from
"
@/assets/utils
"
;
type
,
download
,
downloadWithCustName
,
getUserListByQuery
,
}
from
"
@/assets/utils
"
;
import
{
treeCache
}
from
"
@/assets/utils/tree
"
;
import
{
isArray
}
from
"
util
"
;
import
{
isArray
}
from
"
util
"
;
export
default
{
export
default
{
...
@@ -218,19 +190,6 @@ export default {
...
@@ -218,19 +190,6 @@ export default {
type
:
Object
,
type
:
Object
,
default
:
()
=>
{},
default
:
()
=>
{},
},
},
downloadUrl
:
{
type
:
String
,
default
:
""
,
},
areaSelect
:
{
type
:
Object
,
default
:
()
=>
{
return
{
enable
:
false
,
level
:
1
,
// 1,仅区域
};
},
},
},
},
watch
:
{
watch
:
{
$route
(
route
)
{
$route
(
route
)
{
...
@@ -238,35 +197,18 @@ export default {
...
@@ -238,35 +197,18 @@ export default {
},
},
},
},
async
created
()
{
async
created
()
{
// this.treeDatas = await treeCache.getTree();
// if (this.areaSelect.enable) {
// this.treeData = await treeCache.getTree();
// }
// let tempAreaId = this.$route.query["areaId"];
// if (tempAreaId) {
// this.selectedTreeID = treeCache.getPid(Number(tempAreaId));
// }
this
.
initForm
(
this
.
$route
.
query
);
this
.
initForm
(
this
.
$route
.
query
);
},
},
methods
:
{
methods
:
{
afterRender
()
{
this
.
selectedTreeID
=
treeCache
.
getPid
(
this
.
form
.
areaId
);
},
beforeSubmit
(
form
)
{
form
.
areaId
=
this
.
selectedTreeID
.
slice
().
pop
();
return
form
;
},
treeSelecteds
(
val
)
{
this
.
form
.
areaId
=
val
.
slice
().
pop
();
},
remoteMethod
(
query
,
searchType
)
{
remoteMethod
(
query
,
searchType
)
{
if
(
query
==
""
)
{
if
(
query
==
""
)
{
console
.
log
(
"
查询参数为空!
"
);
return
;
return
;
}
}
this
.
loading
=
true
;
this
.
loading
=
true
;
var
param
=
{
var
param
=
{
"
name
"
:
query
,
name
:
query
,
"
searchType
"
:
searchType
,
searchType
:
searchType
,
};
};
try
{
try
{
this
.
$post
(
"
/common/autoComplete/list
"
,
param
).
then
(({
data
})
=>
{
this
.
$post
(
"
/common/autoComplete/list
"
,
param
).
then
(({
data
})
=>
{
...
@@ -284,9 +226,14 @@ export default {
...
@@ -284,9 +226,14 @@ export default {
}
catch
(
error
)
{}
}
catch
(
error
)
{}
},
},
async
initForm
(
data
)
{
async
initForm
(
data
)
{
//初始化查询表单
let
newFormData
=
{};
let
newFormData
=
{};
this
.
form
=
this
.
encode
(
data
,
this
.
form
);
// this.form = this.encode(data, this.form);
console
.
log
(
"
data
"
,
data
);
console
.
log
(
"
form
"
,
this
.
form
);
this
.
search
.
forEach
((
item
)
=>
{
this
.
search
.
forEach
((
item
)
=>
{
console
.
log
(
"
search-item
"
,
item
);
//复选框
if
(
item
.
type
===
"
checkbox
"
)
{
if
(
item
.
type
===
"
checkbox
"
)
{
if
(
this
.
form
[
item
.
name
]
==
undefined
)
{
if
(
this
.
form
[
item
.
name
]
==
undefined
)
{
newFormData
[
item
.
name
]
=
[];
newFormData
[
item
.
name
]
=
[];
...
@@ -307,27 +254,11 @@ export default {
...
@@ -307,27 +254,11 @@ export default {
}
}
}
}
}
}
if
(
item
.
type
===
"
remoteSelect
"
)
{
if
(
this
.
form
[
item
.
name
]
==
undefined
||
(
item
.
multiple
===
true
&&
this
.
form
[
item
.
name
].
length
==
0
)
)
{
this
.
remoteOptions
[
item
.
searchType
]
=
{};
}
else
{
this
.
remoteOptions
[
item
.
searchType
]
=
JSON
.
parse
(
sessionStorage
.
getItem
(
item
.
searchType
+
"
OptionsDict
"
)
);
}
}
});
});
this
.
form
=
Object
.
assign
({},
this
.
form
,
newFormData
);
this
.
form
=
Object
.
assign
({},
this
.
form
,
newFormData
);
//this.form = Object.assign({}, this.form, this.encode(data));
this
.
form
=
Object
.
assign
({},
this
.
form
,
data
);
// 区域选择器
// if (this.areaSelect.enable) {
console
.
log
(
"
form2
"
,
this
.
form
);
// this.form.areaId = this.form.areaId ? this.form.areaId : 510100;
// this.area = treeCache.getPid(this.form.areaId).map(Number);
// this.treeSelected(this.area, "man");
// }
},
},
cleanForm
()
{
cleanForm
()
{
this
.
clean
();
this
.
clean
();
...
@@ -343,12 +274,7 @@ export default {
...
@@ -343,12 +274,7 @@ export default {
newData
[
item
.
name
]
=
item
.
multiple
?
[]
:
undefined
;
newData
[
item
.
name
]
=
item
.
multiple
?
[]
:
undefined
;
}
}
});
});
if
(
this
.
areaSelect
.
enable
)
{
newData
.
areaId
=
""
;
this
.
area
=
[
510000
,
510100
];
}
this
.
form
=
Object
.
assign
({},
this
.
form
,
newData
);
this
.
form
=
Object
.
assign
({},
this
.
form
,
newData
);
this
.
selectedTreeID
=
[];
},
},
onSubmit
()
{
onSubmit
()
{
let
{
path
,
query
}
=
this
.
$route
;
let
{
path
,
query
}
=
this
.
$route
;
...
@@ -362,6 +288,7 @@ export default {
...
@@ -362,6 +288,7 @@ export default {
encode
(
data
,
formTemp
)
{
encode
(
data
,
formTemp
)
{
let
newData
=
{};
let
newData
=
{};
Object
.
keys
(
Qs
.
parse
(
data
)).
forEach
((
item
)
=>
{
Object
.
keys
(
Qs
.
parse
(
data
)).
forEach
((
item
)
=>
{
console
.
log
(
item
);
if
(
/^query
\.
/
.
test
(
item
))
{
if
(
/^query
\.
/
.
test
(
item
))
{
let
val
=
data
[
item
];
let
val
=
data
[
item
];
let
key
=
item
.
replace
(
/^query
\.
/
,
""
);
let
key
=
item
.
replace
(
/^query
\.
/
,
""
);
...
@@ -388,23 +315,10 @@ export default {
...
@@ -388,23 +315,10 @@ export default {
});
});
return
newData
;
return
newData
;
},
},
decodeVal
(
val
)
{
let
valType
=
type
(
val
);
if
([
"
Number
"
,
"
Boolean
"
].
indexOf
(
valType
)
>
-
1
)
{
return
val
;
}
if
(
valType
==
"
Undefined
"
||
valType
==
"
Null
"
)
{
return
undefined
;
}
if
(
valType
==
"
String
"
)
{
let
str
=
val
.
trim
();
return
str
.
length
?
str
:
undefined
;
}
return
val
;
},
// 解析url字符串,加入query字段
// 解析url字符串,加入query字段
decode
(
data
)
{
decode
(
data
)
{
let
newData
=
{
"
page
"
:
1
};
let
newData
=
{
page
:
1
};
Object
.
keys
(
data
).
forEach
((
item
)
=>
{
Object
.
keys
(
data
).
forEach
((
item
)
=>
{
let
val
=
data
[
item
];
let
val
=
data
[
item
];
this
.
search
.
forEach
((
obj
)
=>
{
this
.
search
.
forEach
((
obj
)
=>
{
...
@@ -416,62 +330,34 @@ export default {
...
@@ -416,62 +330,34 @@ export default {
)
{
)
{
//支持模糊查询,收尾增加百分号
//支持模糊查询,收尾增加百分号
val
=
val
.
trim
();
val
=
val
.
trim
();
val
=
"
%
"
+
val
+
"
%
"
;
if
(
val
.
charAt
(
0
)
!=
'
%
'
){
val
=
"
%
"
+
val
}
if
(
val
.
charAt
(
val
.
length
-
1
)
!=
'
%
'
){
val
=
val
+
"
%
"
;
}
}
}
});
});
newData
[
item
]
=
this
.
decodeVal
(
val
);
newData
[
item
]
=
this
.
decodeVal
(
val
);
});
});
return
newData
;
return
newData
;
},
},
// 下载文件
decodeVal
(
val
)
{
async
downloadFile
()
{
let
valType
=
type
(
val
);
let
data
=
this
.
decode
(
this
.
form
);
if
([
"
Number
"
,
"
Boolean
"
].
indexOf
(
valType
)
>
-
1
)
{
let
searchString
=
Object
.
assign
({},
this
.
$route
.
query
,
data
);
return
val
;
this
.
isDownload
=
true
;
try
{
// await download(this.downloadUrl, searchString )
await
downloadWithCustName
(
this
.
downloadUrl
,
searchString
);
}
catch
(
error
)
{
this
.
$message
.
error
(
error
);
}
this
.
isDownload
=
false
;
},
// 区域选择
async
treeSelected
(
val
,
type
)
{
let
areas
=
[];
const
[
province
,
city
,
area
]
=
val
;
if
(
!
type
)
{
this
.
form
.
areaId
=
val
.
slice
().
pop
();
}
}
// 查找省市关联的区域
if
(
valType
==
"
Undefined
"
||
valType
==
"
Null
"
)
{
switch
(
val
.
length
)
{
return
undefined
;
case
1
:
areas
=
await
treeCache
.
getAreasByProvinceId
([
province
]);
break
;
case
2
:
areas
=
await
treeCache
.
getAreasByCityId
([
city
]);
break
;
case
3
:
areas
=
[
val
[
2
]];
break
;
default
:
break
;
}
}
},
if
(
valType
==
"
String
"
)
{
//用户远程搜索
let
str
=
val
.
trim
();
async
userRemoteMethod
(
name
)
{
return
str
.
length
?
str
:
undefined
;
if
(
name
!==
""
)
{
this
.
loading
=
true
;
const
userQuery
=
{
"
size
"
:
50
,
"
realName
"
:
name
,
};
this
.
userData
=
await
getUserListByQuery
(
userQuery
);
this
.
loading
=
false
;
}
else
{
this
.
userData
=
[];
}
}
return
val
;
},
},
listChange
()
{},
listChange
()
{},
},
},
computed
:
{},
computed
:
{},
...
@@ -481,12 +367,6 @@ export default {
...
@@ -481,12 +367,6 @@ export default {
groupList
:
[],
groupList
:
[],
},
},
remoteOptions
:
{},
remoteOptions
:
{},
treeData
:
[],
userData
:
[],
area
:
[],
isDownload
:
false
,
treeDatas
:
[],
selectedTreeID
:
[],
};
};
},
},
};
};
...
...
This diff is collapsed.
Click to expand it.
device-manager-ui/admin/src/components/Table.vue
View file @
74201798
...
@@ -107,17 +107,16 @@
...
@@ -107,17 +107,16 @@
</el-radio-group>
</el-radio-group>
<slot
name=
"table-head-right2"
></slot>
<slot
name=
"table-head-right2"
></slot>
<div
class=
"table-form"
>
<div
class=
"table-form"
>
<slot
name=
"table-search-left"
></slot>
<slot
name=
"table-search-left"
></slot>
<SearchForm
<SearchForm
:search=
"config.search"
:search=
"config.search"
v-if=
"isShowButton('notSearch')"
v-if=
"isShowButton('notSearch')"
:table=
"data"
:table=
"data"
:downloadUrl=
"config.downloadUrl"
:downloadUrl=
"config.downloadUrl"
:areaSelect=
"config.areaSelect"
:areaSelect=
"config.areaSelect"
/>
/>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
...
@@ -191,7 +190,8 @@
...
@@ -191,7 +190,8 @@
class=
"table-foot"
class=
"table-foot"
v-if=
"!isShowButton('notPagination') ? false : data.pageInfo.totalResult"
v-if=
"!isShowButton('notPagination') ? false : data.pageInfo.totalResult"
>
>
<Pagination
style=
"float:left"
<Pagination
style=
"float: left"
:total=
"data.pageInfo.totalResult"
:total=
"data.pageInfo.totalResult"
:prePageResult=
"data.pageInfo.prePageResult"
:prePageResult=
"data.pageInfo.prePageResult"
/>
/>
...
@@ -257,7 +257,7 @@ export default {
...
@@ -257,7 +257,7 @@ export default {
},
},
watch
:
{
watch
:
{
$route
(
route
)
{
$route
(
route
)
{
this
.
showSearch
=
this
.
isShowSearch
(
route
.
query
);
//
this.showSearch = this.isShowSearch(route.query);
},
},
},
},
computed
:
{
computed
:
{
...
...
This diff is collapsed.
Click to expand it.
device-manager-ui/admin/src/router.js
View file @
74201798
...
@@ -35,7 +35,6 @@ const router = new Router({
...
@@ -35,7 +35,6 @@ const router = new Router({
...
restBuilder
(
'
user
'
,
'
system/user
'
),
// 用户管理 -- 管理用户
...
restBuilder
(
'
user
'
,
'
system/user
'
),
// 用户管理 -- 管理用户
...
restBuilder
(
'
param
'
,
'
system/param
'
),
// 系统管理--参数管理
...
restBuilder
(
'
param
'
,
'
system/param
'
),
// 系统管理--参数管理
...
restBuilder
(
'
task
'
,
'
system/task
'
),
// 系统管理--任务管理
...
restBuilder
(
'
task
'
,
'
system/task
'
),
// 系统管理--任务管理
...
restBuilder
(
'
area
'
,
'
system/area
'
),
// 系统管理-区域管理
builder
(
'
site/list
'
,
'
system/site/index
'
),
//站点
builder
(
'
site/list
'
,
'
system/site/index
'
),
//站点
...
...
This diff is collapsed.
Click to expand it.
device-manager-ui/admin/src/views/device/list.vue
View file @
74201798
...
@@ -118,6 +118,47 @@
...
@@ -118,6 +118,47 @@
<el-button
@
click=
"upload.open = false"
>
取 消
</el-button>
<el-button
@
click=
"upload.open = false"
>
取 消
</el-button>
</div>
</div>
</el-dialog>
</el-dialog>
<!-- 站点修改对话框 -->
<el-dialog
:title=
"tree.title"
:visible.sync=
"tree.open"
width=
"40%"
append-to-body
>
<span
style=
"font-size: 13px"
><b>
当前站点:
</b>
(
<el-link
style=
"margin-left: 10px"
type=
"primary"
:underline=
"false"
>
{{
siteName
}}
</el-link
>
站点编码:
{{
siteCode
}}
)
</span
>
<el-divider></el-divider>
<el-scrollbar
style=
"height: 100%"
>
<el-tree
size=
"mini"
ref=
"siteTree"
:data=
"areaData"
id=
"el-tree"
node-key=
"id"
indent=
"4"
:props=
"treeProps"
:load=
"loadNode"
highlight-current
default-expand-all
:expand-on-click-node=
"false"
:render-content=
"renderContent"
@
node-click=
"handleNodeClick"
>
</el-tree>
</el-scrollbar>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
type=
"primary"
@
click=
"updateSiteConform"
>
确 定
</el-button>
<el-button
@
click=
"tree.open = false"
>
取 消
</el-button>
</div>
</el-dialog>
<!--
<dialog-show
ref=
"dialogform"
@
ok=
"getData"
/>
-->
<!--
<dialog-show
ref=
"dialogform"
@
ok=
"getData"
/>
-->
<drawer-show
ref=
"drawerform"
@
ok=
"getData"
/>
<drawer-show
ref=
"drawerform"
@
ok=
"getData"
/>
...
@@ -131,10 +172,11 @@
...
@@ -131,10 +172,11 @@
import
drawerView
from
"
./drawerview
"
;
import
drawerView
from
"
./drawerview
"
;
import
drawerShow
from
"
./drawershow
"
;
import
drawerShow
from
"
./drawershow
"
;
import
table
from
"
@/assets/mixins/table
"
;
import
table
from
"
@/assets/mixins/table
"
;
import
tree
from
"
@/assets/mixins/tree
"
;
export
default
{
export
default
{
name
:
"
Device
"
,
name
:
"
Device
"
,
components
:
{
drawerShow
,
drawerView
},
components
:
{
drawerShow
,
drawerView
},
mixins
:
[
table
],
mixins
:
[
table
,
tree
],
created
()
{
created
()
{
console
.
log
(
this
.
$route
);
console
.
log
(
this
.
$route
);
this
.
siteId
=
this
.
$route
.
query
.
siteId
;
this
.
siteId
=
this
.
$route
.
query
.
siteId
;
...
@@ -144,7 +186,6 @@ export default {
...
@@ -144,7 +186,6 @@ export default {
})
})
.
then
((
res
)
=>
{
.
then
((
res
)
=>
{
if
(
res
.
code
==
1
)
{
if
(
res
.
code
==
1
)
{
console
.
log
(
"
res
"
,
res
);
this
.
siteName
=
res
.
data
.
siteName
;
this
.
siteName
=
res
.
data
.
siteName
;
this
.
siteCode
=
res
.
data
.
siteCode
;
this
.
siteCode
=
res
.
data
.
siteCode
;
}
}
...
@@ -270,6 +311,49 @@ export default {
...
@@ -270,6 +311,49 @@ export default {
this
.
$message
.
error
(
error
.
message
);
this
.
$message
.
error
(
error
.
message
);
});
});
},
},
updateSite
(
row
)
{
console
.
log
(
"
update site
"
);
this
.
$get
(
"
/sitestat/siteTree
"
,
{}).
then
(({
data
})
=>
{
this
.
areaData
=
data
.
siteTree
;
this
.
tree
.
open
=
true
;
this
.
tree
.
id
=
row
.
id
;
});
},
handleNodeClick
(
node
)
{
console
.
log
(
"
click node
"
,
node
);
this
.
currentNode
=
node
;
},
updateSiteConform
()
{
if
(
this
.
currentNode
.
type
!=
"
site
"
)
{
this
.
$message
.
error
(
"
请选择正确的站点!
"
);
return
;
}
this
.
loading
=
true
;
this
.
$post
(
"
/device/save
"
,
{
id
:
this
.
tree
.
id
,
siteId
:
this
.
currentNode
.
id
,
siteCode
:
this
.
currentNode
.
siteCode
,
siteName
:
this
.
currentNode
.
label
,
})
.
then
((
res
)
=>
{
if
(
res
.
code
==
1
)
{
this
.
$message
.
success
(
"
编辑站点成功!
"
);
this
.
tree
.
open
=
false
;
this
.
getData
();
}
})
.
catch
((
error
)
=>
{
this
.
loading
=
false
;
this
.
$message
.
error
(
error
.
message
);
});
},
// 操作菜单状态
// 操作菜单状态
changeStatus
(
row
,
column
)
{
changeStatus
(
row
,
column
)
{
return
(
return
(
...
@@ -301,30 +385,37 @@ export default {
...
@@ -301,30 +385,37 @@ export default {
// 上传的地址
// 上传的地址
url
:
"
/m/device/importData
"
,
url
:
"
/m/device/importData
"
,
},
},
// 站点树
tree
:
{
// 是否显示弹出层(设备导入)
open
:
false
,
// 弹出层标题(设备导入)
title
:
"
修改站点
"
,
},
isExport
:
false
,
isExport
:
false
,
siteId
:
null
,
siteId
:
null
,
siteName
:
""
,
siteName
:
""
,
siteCode
:
""
,
siteCode
:
""
,
updateSiteId
:
null
,
updateSiteName
:
""
,
updateSiteCode
:
""
,
config
:
{
config
:
{
getsocketData
:
null
,
getsocketData
:
null
,
search
:
[
search
:
[
// {
{
// name: "deviceNum",
name
:
"
deviceCode
"
,
// type: "text",
type
:
"
text
"
,
// label: "设备编号",
label
:
"
设备编码
"
,
// },
fuzzy
:
true
},
{
{
name
:
"
deviceStatus
"
,
name
:
"
deviceStatus
"
,
type
:
"
select
"
,
type
:
"
select
"
,
label
:
"
状态
"
,
label
:
"
状态
"
,
},
},
// {
// name: "porductId",
// type: "select",
// label: "产品类型",
// },
],
],
columns
:
[
columns
:
[
{
type
:
"
selection
"
,
width
:
60
},
{
type
:
"
selection
"
,
width
:
60
},
...
@@ -368,7 +459,7 @@ export default {
...
@@ -368,7 +459,7 @@ export default {
{
{
label
:
"
操作
"
,
label
:
"
操作
"
,
width
:
2
4
0
,
width
:
2
8
0
,
formatter
:
(
row
)
=>
{
formatter
:
(
row
)
=>
{
return
(
return
(
<
div
>
<
div
>
...
@@ -395,6 +486,17 @@ export default {
...
@@ -395,6 +486,17 @@ export default {
""
""
)}
)}
<
span
>
<
/span
>
<
span
>
<
/span
>
<
el
-
button
size
=
"
mini
"
type
=
"
text
"
icon
=
"
el-icon-map-location
"
onClick
=
{()
=>
{
this
.
updateSite
(
row
);
}}
>
编辑站点
<
/el-button
>
<
/div
>
<
/div
>
);
);
},
},
...
...
This diff is collapsed.
Click to expand it.
device-manager-ui/admin/src/views/login/login.vue
View file @
74201798
...
@@ -31,7 +31,7 @@ import { createSocket } from '@/assets/utils/websocket'
...
@@ -31,7 +31,7 @@ import { createSocket } from '@/assets/utils/websocket'
export
default
{
export
default
{
name
:
'
login
'
,
name
:
'
login
'
,
created
()
{
created
()
{
window
.
location
.
href
=
process
.
env
.
VUE_APP_PORTAL_URL
==
'
undefined
'
?
'
http://192.168.0.98:11072
'
:
process
.
env
.
VUE_APP_PORTAL_URL
//
window.location.href=process.env.VUE_APP_PORTAL_URL=='undefined'?'http://192.168.0.98:11072':process.env.VUE_APP_PORTAL_URL
},
},
methods
:
{
methods
:
{
login
()
{
login
()
{
...
...
This diff is collapsed.
Click to expand it.
device-manager-ui/admin/src/views/system/area/format.js
deleted
100644 → 0
View file @
f96901cf
let
treeData
=
[];
// 查找该条数据所处的层级深度
function
getDeep
(
list
,
parentId
,
deep
)
{
try
{
let
pid
=
list
.
filter
(
i
=>
i
.
id
==
parentId
)[
0
].
parentId
;
deep
++
;
if
(
pid
!=
0
)
{
return
getDeep
(
list
,
pid
,
deep
);
}
else
{
return
deep
}
}
catch
(
error
)
{
return
deep
;
}
}
// 分组排序
function
sort
(
list
)
{
let
array
=
[];
list
.
filter
(
i
=>!
i
.
parentId
).
forEach
(
item
=>
{
array
=
array
.
concat
(
child
(
list
,
item
,
[]))
})
return
array
}
function
child
(
list
,
data
,
arr
)
{
arr
.
push
(
data
);
if
(
data
.
hasChild
)
{
list
.
filter
(
i
=>
i
.
parentId
==
data
.
id
).
forEach
(
item
=>
{
return
child
(
list
,
item
,
arr
)
})
}
return
arr
;
}
let
render
=
function
(
result
)
{
return
treeData
=
sort
(
result
.
map
(
i
=>
{
i
.
hasChild
=
result
.
filter
(
j
=>
j
.
parentId
==
i
.
id
).
length
>
0
;
// 是否有下级
i
.
deep
=
getDeep
(
result
,
i
.
parentId
,
0
);
// 缩进层级
i
.
open
=
false
;
i
.
isShow
=
true
;
return
i
;
}));
}
let
toggle
=
function
(
row
)
{
// 关闭的时候,需要递归关闭下面全部子级
let
childId
=
[]
// 打开下级
if
(
row
.
open
)
{
childId
=
child
(
treeData
,
row
,
[]).
map
(
i
=>
i
.
id
)
childId
.
shift
();
}
return
treeData
.
map
(
i
=>
{
if
(
i
.
id
==
row
.
id
)
{
i
.
open
=
!
i
.
open
;
}
if
(
i
.
parentId
==
row
.
id
)
{
i
.
isShow
=
!
i
.
isShow
;
}
if
(
childId
.
indexOf
(
i
.
id
)
>
-
1
)
{
i
.
open
=
false
;
i
.
isShow
=
childId
.
indexOf
(
i
.
id
)
===
-
1
}
return
i
;
})
.
filter
(
i
=>
i
.
isShow
)
}
function
getParentId
(
id
,
list
,
arr
)
{
arr
.
unshift
(
id
);
const
pid
=
list
.
filter
(
i
=>
id
==
i
.
id
)[
0
].
parentId
;
if
(
pid
)
{
return
getParentId
(
pid
,
list
,
arr
)
}
else
{
return
arr
;
}
}
function
buildTree
(
pid
,
list
)
{
const
data
=
list
.
filter
(
i
=>
pid
==
i
.
parentId
);
return
data
.
length
?
data
.
map
(
i
=>
{
return
{
value
:
i
.
id
,
label
:
i
.
name
,
children
:
buildTree
(
i
.
id
,
list
),
}
})
:
undefined
}
export
default
{
render
,
toggle
,
getParentId
,
buildTree
,
}
\ No newline at end of file
This diff is collapsed.
Click to expand it.
device-manager-ui/admin/src/views/system/area/list.vue
deleted
100644 → 0
View file @
f96901cf
<
template
>
<div
class=
"page"
>
<LayoutTable
:data=
'tableData'
:config=
'tableConfig'
notPagination
notDel
>
<div>
<el-tree
:data=
"tree"
:props=
"treeProps"
:load=
"loadNode"
lazy
>
<span
style=
"width:100%"
slot-scope=
"
{ node, data }">
<span
>
{{
node
.
label
}}
</span>
<span
style=
"float:right;"
>
<el-button
icon=
"el-icon-plus"
style=
"padding:3px 10px"
round
@
click=
"() => addChild(data)"
>
新增
</el-button>
<el-button
icon=
"el-icon-edit"
type=
"primary"
style=
"padding:3px 10px"
round
@
click=
"() => editChild(data)"
>
编辑
</el-button>
</span>
</span>
</el-tree>
</div>
</LayoutTable>
</div>
</
template
>
<
script
>
import
table
from
"
@/assets/mixins/table
"
;
export
default
{
mixins
:
[
table
],
methods
:
{
async
loadNode
(
node
,
resolve
)
{
if
(
node
.
level
===
0
)
return
let
res
=
await
this
.
$post
(
'
/area/getAreaByParentId
'
,
{
'
parentId
'
:
node
.
data
.
id
,
'
size
'
:
-
1
});
resolve
(
this
.
clean
(
res
.
data
.
data
));
},
clean
(
data
)
{
return
data
.
map
(
i
=>
{
return
{
name
:
i
.
name
,
children
:
[],
id
:
i
.
id
,
isLeaf
:
i
.
level
>
2
}
});
},
afterRender
({
result
})
{
this
.
tree
=
result
;
},
addChild
(
data
)
{
this
.
$router
.
push
({
path
:
this
.
pageInfo
.
add
,
query
:
{
pid
:
data
.
id
}
});
},
editChild
(
data
)
{
this
.
$router
.
push
({
path
:
this
.
pageInfo
.
edit
,
query
:
Object
.
assign
({},
{
id
:
data
.
id
},
this
.
query
)
})
}
},
data
()
{
return
{
tree
:[],
openIds
:
[],
treeProps
:
{
children
:
'
children
'
,
label
:
'
name
'
,
isLeaf
:
'
isLeaf
'
,
},
urls
:
{
del
:
"
/area/disable
"
},
query
:
{
pageInfo
:
{
prePageResult
:
-
1
}
},
config
:
{
search
:
[
{
name
:
"
name
"
,
type
:
"
text
"
,
label
:
"
名称
"
},
{
name
:
"
status
"
,
type
:
"
select
"
,
label
:
"
是否启用
"
}
],
columns
:
[
{
type
:
"
selection
"
,
width
:
60
},
{
label
:
"
区域名称
"
,
width
:
200
,
formatter
:
(
row
,
col
,
val
,
index
)
=>
{
const
width
=
`width:
${
row
.
deep
*
18
}
px;height: 20px;display: inline-block;`
;
return
(
<
div
>
<
span
style
=
{
width
}
/
>
{
row
.
hasChild
?
(
<
i
onClick
=
{()
=>
this
.
loadArea
(
row
)
}
class
=
{
row
.
open
?
"
el-icon-caret-bottom
"
:
"
el-icon-caret-right
"
}
>
{
row
.
name
}
<
/i
>
)
:
(
<
span
>
{
row
.
name
}
<
/span
>
)}
<
/div
>
);
}
},
{
prop
:
"
id
"
,
label
:
"
区域ID
"
},
{
prop
:
"
parentId
"
,
label
:
"
上级区域ID
"
},
{
prop
:
"
name
"
,
label
:
"
区域名称
"
},
{
prop
:
"
level
"
,
label
:
"
区域级别
"
,
width
:
70
,
formatter
:
this
.
formatter
},
{
prop
:
"
code
"
,
label
:
"
区域编码
"
},
// {
// prop: "contactsPeople",
// label: "区域负责人"
// },
// {
// prop: "contactsMobile",
// label: "区域负责人电话"
// },
{
prop
:
"
status
"
,
label
:
"
启用
"
,
formatter
:
this
.
formatter
},
{
prop
:
"
remark
"
,
label
:
"
描述
"
},
{
label
:
"
操作
"
,
width
:
180
,
formatter
:
row
=>
{
return
(
<
div
>
<
el
-
button
icon
=
"
el-icon-plus
"
size
=
"
mini
"
round
onClick
=
{()
=>
{
this
.
addChild
(
row
);
}}
>
新增
<
/el-button>{" "
}
<
table
-
buttons
row
=
{
row
}
onEdit
=
{
this
.
toEdit
}
noDel
/>
<
/div
>
);
}
}
]
}
};
}
};
</
script
>
This diff is collapsed.
Click to expand it.
device-manager-ui/admin/src/views/system/area/show.vue
deleted
100644 → 0
View file @
f96901cf
<
template
>
<layout-form>
<el-form
:model=
"form"
:loading=
"loading"
:rules=
"rules"
size=
'small'
label-width=
'120px'
ref=
"form"
>
<el-row>
<el-col
:span=
'12'
>
<el-form-item
label=
"区域"
prop=
"parentId"
>
<el-cascader
@
change=
'treeSelected'
:options=
"treeData"
change-on-select
v-model=
"selectedTreeID"
></el-cascader>
</el-form-item>
</el-col>
<Field
label=
"区域名称"
prop=
"name"
v-model=
"form.name"
/>
<Field
label=
"区域级别"
prop=
"level"
v-model=
"form.level"
:enumData=
'dict.level'
type=
'select'
/>
<Field
label=
"编码"
prop=
"code"
v-model=
"form.code"
/>
<!--
<Field
label=
"负责人"
prop=
"contactsPeople"
v-model=
"form.contactsPeople"
/>
<Field
label=
"负责人电话"
prop=
"contactsMobile"
v-model=
"form.contactsMobile"
/>
-->
<Field
label=
"子区域数量"
prop=
"childSize"
v-model=
"form.childSize"
/>
<Field
label=
"子区域的最大ID"
prop=
"maxChildId"
v-model=
"form.maxChildId"
/>
<Field
label=
"是否启用"
prop=
"status"
v-model=
"form.status"
:enumData=
"dict.status"
type=
'select'
/>
<Field
label=
"描述"
prop=
"remark"
v-model=
"form.remark"
:span=
'24'
/>
</el-row>
<form-buttons
@
submit=
'submitForm'
/>
</el-form>
</layout-form>
</
template
>
<
script
>
import
form
from
"
@/assets/mixins/form
"
;
import
{
treeCache
}
from
"
@/assets/utils/tree
"
;
export
default
{
mixins
:
[
form
],
async
created
()
{
this
.
treeData
=
await
treeCache
.
getTree
();
this
.
form
.
parentId
=
this
.
query
.
pid
;
},
methods
:
{
afterRender
()
{
this
.
selectedTreeID
=
treeCache
.
getPid
(
this
.
form
.
parentId
);
},
beforeSubmit
(
form
)
{
form
.
parentId
=
this
.
selectedTreeID
.
slice
().
pop
();
return
form
;
},
treeSelected
(
val
)
{
console
.
log
(
val
);
this
.
form
.
parentId
=
val
.
slice
().
pop
();
}
},
data
()
{
return
{
toString
:
[
"
level
"
,
"
status
"
],
treeData
:
[],
selectedTreeID
:
[],
rules
:
{
name
:
[{
required
:
true
,
message
:
"
请输入区域名称
"
,
trigger
:
"
blur
"
}],
remark
:
[{
validator
:
(
rule
,
val
,
callback
)
=>
{
if
(
val
&&
val
.
split
(
""
).
length
>
200
)
{
return
callback
(
new
Error
(
'
描述不得超过200字
'
))
}
callback
();
},
trigger
:
[
'
change
'
,
'
blur
'
]
},
],
}
};
}
};
</
script
>
This diff is collapsed.
Click to expand it.
device-manager/src/main/java/com/mortals/xhx/base/login/web/LoginController.java
View file @
74201798
...
@@ -21,6 +21,8 @@ import com.mortals.xhx.base.system.user.model.UserEntity;
...
@@ -21,6 +21,8 @@ import com.mortals.xhx.base.system.user.model.UserEntity;
import
com.mortals.xhx.base.system.user.service.UserService
;
import
com.mortals.xhx.base.system.user.service.UserService
;
import
com.mortals.xhx.base.system.valid.service.ValidCodeService
;
import
com.mortals.xhx.base.system.valid.service.ValidCodeService
;
import
com.mortals.xhx.common.key.RedisKey
;
import
com.mortals.xhx.common.key.RedisKey
;
import
com.mortals.xhx.common.pdu.user.UserPdu
;
import
com.mortals.xhx.feign.user.IUserFeign
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.logging.Log
;
import
org.apache.commons.logging.Log
;
import
org.apache.commons.logging.LogFactory
;
import
org.apache.commons.logging.LogFactory
;
...
@@ -57,8 +59,8 @@ public class LoginController extends BaseCRUDJsonBodyMappingController<UserServi
...
@@ -57,8 +59,8 @@ public class LoginController extends BaseCRUDJsonBodyMappingController<UserServi
private
ICacheService
cacheService
;
private
ICacheService
cacheService
;
@Autowired
@Autowired
private
IAuthTokenService
authTokenService
;
private
IAuthTokenService
authTokenService
;
@Autowired
private
static
Log
logger
=
LogFactory
.
getLog
(
LoginController
.
class
)
;
private
IUserFeign
userFeign
;
@RequestMapping
(
"login"
)
@RequestMapping
(
"login"
)
public
String
login
(
@RequestBody
LoginForm
loginForm
)
throws
Exception
{
public
String
login
(
@RequestBody
LoginForm
loginForm
)
throws
Exception
{
...
@@ -66,7 +68,15 @@ public class LoginController extends BaseCRUDJsonBodyMappingController<UserServi
...
@@ -66,7 +68,15 @@ public class LoginController extends BaseCRUDJsonBodyMappingController<UserServi
JSONObject
ret
=
new
JSONObject
();
JSONObject
ret
=
new
JSONObject
();
String
loginName
=
loginForm
.
getLoginName
();
String
loginName
=
loginForm
.
getLoginName
();
String
password
=
loginForm
.
getPassword
();
String
password
=
loginForm
.
getPassword
();
String
securityCode
=
loginForm
.
getSecurityCode
();
UserPdu
userPdu
=
new
UserPdu
();
userPdu
.
setLoginName
(
loginName
);
userPdu
.
setPassword
(
password
);
String
resp
=
userFeign
.
portalLogin
(
userPdu
);
return
resp
;
/* String securityCode = loginForm.getSecurityCode();
String ip = super.getRequestIP(request);
String ip = super.getRequestIP(request);
if (StringUtils.isEmpty(loginName) || StringUtils.isEmpty(password)) {
if (StringUtils.isEmpty(loginName) || StringUtils.isEmpty(password)) {
ret.put(KEY_RESULT_CODE, VALUE_RESULT_FAILURE);
ret.put(KEY_RESULT_CODE, VALUE_RESULT_FAILURE);
...
@@ -128,7 +138,7 @@ public class LoginController extends BaseCRUDJsonBodyMappingController<UserServi
...
@@ -128,7 +138,7 @@ public class LoginController extends BaseCRUDJsonBodyMappingController<UserServi
ret.put(KEY_RESULT_CODE, VALUE_RESULT_FAILURE);
ret.put(KEY_RESULT_CODE, VALUE_RESULT_FAILURE);
ret.put(KEY_RESULT_MSG, super.convertException(e));
ret.put(KEY_RESULT_MSG, super.convertException(e));
return ret.toJSONString();
return ret.toJSONString();
}
}
*/
}
}
@RequestMapping
(
"logout"
)
@RequestMapping
(
"logout"
)
...
...
This diff is collapsed.
Click to expand it.
device-manager/src/main/resources/bootstrap.yml
View file @
74201798
...
@@ -76,9 +76,9 @@ application:
...
@@ -76,9 +76,9 @@ application:
upload
:
upload
:
path
:
@
profiles.filepath@
path
:
@
profiles.filepath@
feign
:
#
feign:
hystrix
:
#
hystrix:
enabled
:
false
#
enabled: false
queue
:
queue
:
type
:
@
profiles.queue.type@
# memory or kafka (Apache Kafka) or rabbitmq (RabbitMQ)
type
:
@
profiles.queue.type@
# memory or kafka (Apache Kafka) or rabbitmq (RabbitMQ)
...
...
This diff is collapsed.
Click to expand it.
pom.xml
View file @
74201798
...
@@ -63,13 +63,6 @@
...
@@ -63,13 +63,6 @@
<artifactId>
spring-cloud-loadbalancer
</artifactId>
<artifactId>
spring-cloud-loadbalancer
</artifactId>
</dependency>
</dependency>
<dependency>
<groupId>
org.springframework.cloud
</groupId>
<artifactId>
spring-cloud-starter-netflix-ribbon
</artifactId>
</dependency>
</dependencies>
</dependencies>
<build>
<build>
...
...
This diff is collapsed.
Click to expand it.
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