Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
S
smart_gov_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
赵啸非
smart_gov_platform
Commits
a1a24488
Commit
a1a24488
authored
Apr 15, 2023
by
xj
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
使用行为分析部分接口对接完成
parent
ff1957ce
Changes
10
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
295 additions
and
209 deletions
+295
-209
portal-manager-ui/admin/src/api/dataActuary.js
portal-manager-ui/admin/src/api/dataActuary.js
+8
-0
portal-manager-ui/admin/src/api/dataAdmin.js
portal-manager-ui/admin/src/api/dataAdmin.js
+4
-0
portal-manager-ui/admin/src/views/dataActuary/behaviour/eventanalyse/eventanalyse.vue
...views/dataActuary/behaviour/eventanalyse/eventanalyse.vue
+1
-1
portal-manager-ui/admin/src/views/dataActuary/behaviour/pageanalyse/pageAnalyse.vue
...c/views/dataActuary/behaviour/pageanalyse/pageAnalyse.vue
+47
-25
portal-manager-ui/admin/src/views/dataActuary/behaviour/pathanalyse/pathAnalyse.vue
...c/views/dataActuary/behaviour/pathanalyse/pathAnalyse.vue
+41
-78
portal-manager-ui/admin/src/views/dataActuary/behaviour/product/product.vue
...admin/src/views/dataActuary/behaviour/product/product.vue
+86
-71
portal-manager-ui/admin/src/views/dataAdmin/components/Impossible/index.vue
...admin/src/views/dataAdmin/components/Impossible/index.vue
+3
-2
portal-manager-ui/admin/src/views/dataAdmin/components/networkGovernance/callRecordForm.vue
...dataAdmin/components/networkGovernance/callRecordForm.vue
+84
-21
portal-manager-ui/admin/src/views/dataAdmin/components/networkGovernance/networkForm.vue
...ws/dataAdmin/components/networkGovernance/networkForm.vue
+18
-8
portal-manager-ui/admin/src/views/dataAdmin/components/serviceDataAnalyse/crowdPortrait.vue
...dataAdmin/components/serviceDataAnalyse/crowdPortrait.vue
+3
-3
No files found.
portal-manager-ui/admin/src/api/dataActuary.js
View file @
a1a24488
...
@@ -10,4 +10,12 @@ export function getEventCensus(params) {
...
@@ -10,4 +10,12 @@ export function getEventCensus(params) {
//产品热力图
//产品热力图
export
function
getProductHotCensus
(
params
)
{
export
function
getProductHotCensus
(
params
)
{
return
http
.
post
(
`
${
baseURL
}
/zwfw/act/analyse/productHotCensus`
,
params
);
return
http
.
post
(
`
${
baseURL
}
/zwfw/act/analyse/productHotCensus`
,
params
);
}
//页面访问分析
export
function
getAccessAnalyse
(
params
)
{
return
http
.
post
(
`
${
baseURL
}
/zwfw/act/analyse/accessAnalyse`
,
params
);
}
//路径分析
export
function
getWayAccessAnalyse
(
params
)
{
return
http
.
post
(
`
${
baseURL
}
/zwfw/act/analyse/wayAccessAnalyse`
,
params
);
}
}
\ No newline at end of file
portal-manager-ui/admin/src/api/dataAdmin.js
View file @
a1a24488
...
@@ -66,6 +66,10 @@ export function getWLLZCount(params) {
...
@@ -66,6 +66,10 @@ export function getWLLZCount(params) {
export
function
getWLLZInfo
(
params
)
{
export
function
getWLLZInfo
(
params
)
{
return
http
.
get
(
`
${
BASEURL
}
/wllz/index/complainInfo`
,
params
);
return
http
.
get
(
`
${
BASEURL
}
/wllz/index/complainInfo`
,
params
);
}
}
// 12345报表
export
function
getSys12345
(
params
)
{
return
http
.
get
(
`
${
BASEURL
}
/wllz/complainapi/sys12345`
,
params
);
}
// 样表列表
// 样表列表
export
function
getBillList
(
params
)
{
export
function
getBillList
(
params
)
{
...
...
portal-manager-ui/admin/src/views/dataActuary/behaviour/eventanalyse/eventanalyse.vue
View file @
a1a24488
...
@@ -13,7 +13,7 @@
...
@@ -13,7 +13,7 @@
<a-range-picker
valueFormat=
"yyyy-MM-DD"
v-model=
"time"
style=
"width: 300px"
:allowClear=
"false"
/>
<a-range-picker
valueFormat=
"yyyy-MM-DD"
v-model=
"time"
style=
"width: 300px"
:allowClear=
"false"
/>
</a-form-model-item>
</a-form-model-item>
<a-form-model-item>
<a-form-model-item>
<a-button
type=
"primary"
>
<a-button
type=
"primary"
@
click=
"getList"
>
开始分析
开始分析
</a-button>
</a-button>
</a-form-model-item>
</a-form-model-item>
...
...
portal-manager-ui/admin/src/views/dataActuary/behaviour/pageanalyse/pageAnalyse.vue
View file @
a1a24488
...
@@ -3,17 +3,17 @@
...
@@ -3,17 +3,17 @@
<div
class=
"page"
>
<div
class=
"page"
>
<a-form-model
:model=
"queryform"
:label-col=
"labelCol"
:wrapper-col=
"wrapperCol"
layout=
"inline"
>
<a-form-model
:model=
"queryform"
:label-col=
"labelCol"
:wrapper-col=
"wrapperCol"
layout=
"inline"
>
<a-form-model-item>
<a-form-model-item>
<a-select
v-model=
"queryform.
value"
style=
"width: 200px"
placeholder=
"选择产品"
>
<a-select
v-model=
"queryform.
productId"
style=
"width: 200px"
placeholder=
"选择产品"
>
<a-select-option
value=
"jack"
>
<a-select-option
:value=
"item.id"
v-for=
"(item,index) in product"
:key=
"index"
>
Jack
{{
item
.
title
}}
</a-select-option>
</a-select-option>
</a-select>
</a-select>
</a-form-model-item>
</a-form-model-item>
<a-form-model-item>
<a-form-model-item>
<a-range-picker
valueFormat=
"yyyy-MM-DD"
v-model=
"
queryform.value"
style=
"width: 300px"
/>
<a-range-picker
valueFormat=
"yyyy-MM-DD"
v-model=
"
time"
style=
"width: 300px"
:allowClear=
"false"
/>
</a-form-model-item>
</a-form-model-item>
<a-form-model-item>
<a-form-model-item>
<a-button
type=
"primary"
>
<a-button
type=
"primary"
@
click=
"getData"
>
开始分析
开始分析
</a-button>
</a-button>
</a-form-model-item>
</a-form-model-item>
...
@@ -23,11 +23,11 @@
...
@@ -23,11 +23,11 @@
<div>
页面访问指标趋势
</div>
<div>
页面访问指标趋势
</div>
<div
class=
"txt-dv"
>
<div
class=
"txt-dv"
>
<div>
<div>
<div
class=
"num"
>
4058
</div>
<div
class=
"num"
>
{{
data
?
data
.
accessSum
:
0
}}
</div>
<div>
页面累计访问次数
</div>
<div>
页面累计访问次数
</div>
</div>
</div>
<div>
<div>
<div
class=
"num"
>
4058
</div>
<div
class=
"num"
>
{{
data
?
data
.
dayAccessAvg
:
0
}}
</div>
<div>
日均访问次数
</div>
<div>
日均访问次数
</div>
</div>
</div>
</div>
</div>
...
@@ -37,11 +37,11 @@
...
@@ -37,11 +37,11 @@
<div
class=
"page-box"
>
<div
class=
"page-box"
>
<div
class=
"page-dv"
>
<div
class=
"page-dv"
>
<div>
人均访问深度
</div>
<div>
人均访问深度
</div>
<div
class=
"page-num"
>
4.00
页
</div>
<div
class=
"page-num"
>
{{
data
?
data
.
depthAvg
:
0
}}
页
</div>
</div>
</div>
<div
class=
"page-dv"
>
<div
class=
"page-dv"
>
<div>
次均访问深度
</div>
<div>
次均访问深度
</div>
<div
class=
"page-num"
>
4.00
页
</div>
<div
class=
"page-num"
>
{{
data
?
data
.
singleDepth
:
0
}}
页
</div>
</div>
</div>
</div>
</div>
<div
class=
"chatrs-dv"
>
<div
class=
"chatrs-dv"
>
...
@@ -54,27 +54,49 @@
...
@@ -54,27 +54,49 @@
</
template
>
</
template
>
<
script
>
<
script
>
import
*
as
echarts
from
'
echarts
'
import
*
as
echarts
from
'
echarts
'
import
{
getAccessAnalyse
}
from
'
@/api/dataActuary.js
'
import
moment
from
'
moment
'
;
export
default
{
export
default
{
data
()
{
data
()
{
return
{
return
{
queryform
:
{
queryform
:
{
value
:
null
productId
:
1
,
},
dateTimeStart
:
moment
().
format
(
'
yyyy-MM-DD
'
),
dateTimeEnd
:
moment
().
format
(
'
yyyy-MM-DD
'
)
},
time
:[
moment
().
format
(
'
yyyy-MM-DD
'
),
moment
().
format
(
'
yyyy-MM-DD
'
)],
product
:[{
title
:
'
排队机
'
,
id
:
1
}],
labelCol
:
{
labelCol
:
{
span
:
1
span
:
1
},
},
wrapperCol
:
{
wrapperCol
:
{
span
:
14
span
:
14
},
},
data
:
null
}
}
},
},
mounted
()
{
mounted
()
{
this
.
initLine
()
this
.
getData
()
this
.
initBar
()
},
},
methods
:
{
methods
:
{
initBar
()
{
getData
()
{
this
.
queryform
.
dateTimeStart
=
this
.
time
?
this
.
time
[
0
]
:
null
this
.
queryform
.
dateTimeStart
=
this
.
time
?
this
.
time
[
1
]
:
null
getAccessAnalyse
(
this
.
queryform
).
then
(
res
=>
{
this
.
data
=
res
.
data
let
lineX
=
res
.
data
.
accessTrend
.
map
(
item
=>
item
.
accessDay
)
let
lineY
=
res
.
data
.
accessTrend
.
map
(
item
=>
item
.
accessCount
)
let
barX
=
res
.
data
.
pageAccessTop
.
map
(
item
=>
item
.
accessCount
)
let
barY
=
res
.
data
.
pageAccessTop
.
map
(
item
=>
item
.
pageName
)
this
.
initLine
(
lineX
,
lineY
)
this
.
initBar
(
barX
,
barY
)
})
},
initBar
(
barX
,
barY
)
{
let
chartDom
=
document
.
getElementById
(
'
pages
'
)
let
chartDom
=
document
.
getElementById
(
'
pages
'
)
let
myChart
=
echarts
.
init
(
chartDom
);
let
myChart
=
echarts
.
init
(
chartDom
);
myChart
.
setOption
({
myChart
.
setOption
({
...
@@ -103,7 +125,7 @@
...
@@ -103,7 +125,7 @@
},
},
yAxis
:
{
yAxis
:
{
type
:
'
category
'
,
type
:
'
category
'
,
data
:
[
'
Brazil
'
,
'
Indonesia
'
,
'
USA
'
,
'
India
'
,
'
China
'
,
'
World
'
]
,
data
:
barY
,
axisTick
:
{
axisTick
:
{
show
:
false
show
:
false
}
}
...
@@ -111,13 +133,13 @@
...
@@ -111,13 +133,13 @@
series
:
[{
series
:
[{
name
:
'
访问次数
'
,
name
:
'
访问次数
'
,
type
:
'
bar
'
,
type
:
'
bar
'
,
data
:
[
18203
,
23489
,
29034
,
104970
,
131744
,
630230
]
,
data
:
barX
,
barWidth
:
10
barWidth
:
10
}
}
]
]
})
})
},
},
initLine
()
{
initLine
(
lineX
,
lineY
)
{
let
chartDom
=
document
.
getElementById
(
'
number
'
)
let
chartDom
=
document
.
getElementById
(
'
number
'
)
let
myChart
=
echarts
.
init
(
chartDom
);
let
myChart
=
echarts
.
init
(
chartDom
);
myChart
.
setOption
({
myChart
.
setOption
({
...
@@ -132,7 +154,7 @@
...
@@ -132,7 +154,7 @@
},
},
xAxis
:
{
xAxis
:
{
type
:
'
category
'
,
type
:
'
category
'
,
data
:
[
'
Mon
'
,
'
Tue
'
,
'
Wed
'
,
'
Thu
'
,
'
Fri
'
,
'
Sat
'
,
'
Sun
'
]
,
data
:
lineX
,
axisTick
:
{
axisTick
:
{
show
:
false
show
:
false
}
}
...
@@ -142,7 +164,7 @@
...
@@ -142,7 +164,7 @@
},
},
series
:
[{
series
:
[{
name
:
'
页面访问次数
'
,
name
:
'
页面访问次数
'
,
data
:
[
150
,
230
,
224
,
218
,
135
,
147
,
260
]
,
data
:
lineY
,
type
:
'
line
'
,
type
:
'
line
'
,
markLine
:
{
markLine
:
{
data
:
[{
data
:
[{
...
...
portal-manager-ui/admin/src/views/dataActuary/behaviour/pathanalyse/pathAnalyse.vue
View file @
a1a24488
...
@@ -3,17 +3,17 @@
...
@@ -3,17 +3,17 @@
<div
class=
"page"
>
<div
class=
"page"
>
<a-form-model
:model=
"queryform"
:label-col=
"labelCol"
:wrapper-col=
"wrapperCol"
layout=
"inline"
>
<a-form-model
:model=
"queryform"
:label-col=
"labelCol"
:wrapper-col=
"wrapperCol"
layout=
"inline"
>
<a-form-model-item>
<a-form-model-item>
<a-select
v-model=
"queryform.
value
"
style=
"width: 200px"
placeholder=
"选择产品"
>
<a-select
v-model=
"queryform.
productId
"
style=
"width: 200px"
placeholder=
"选择产品"
>
<a-select-option
value=
"jack
"
>
<a-select-option
:value=
"item.id"
v-for=
"(item,index) in product"
:key=
"index
"
>
Jack
{{
item
.
title
}}
</a-select-option>
</a-select-option>
</a-select>
</a-select>
</a-form-model-item>
</a-form-model-item>
<a-form-model-item>
<a-form-model-item>
<a-range-picker
valueFormat=
"yyyy-MM-DD"
v-model=
"
queryform.value"
style=
"width: 300px"
/>
<a-range-picker
valueFormat=
"yyyy-MM-DD"
v-model=
"
time"
style=
"width: 300px"
:allowClear=
"false"
/>
</a-form-model-item>
</a-form-model-item>
<a-form-model-item>
<a-form-model-item>
<a-button
type=
"primary"
>
<a-button
type=
"primary"
@
click=
"getData"
>
开始分析
开始分析
</a-button>
</a-button>
</a-form-model-item>
</a-form-model-item>
...
@@ -23,13 +23,22 @@
...
@@ -23,13 +23,22 @@
</
template
>
</
template
>
<
script
>
<
script
>
import
*
as
echarts
from
'
echarts
'
import
*
as
echarts
from
'
echarts
'
import
{
getWayAccessAnalyse
}
from
'
@/api/dataActuary.js
'
import
moment
from
'
moment
'
;
export
default
{
export
default
{
data
()
{
data
()
{
return
{
return
{
queryform
:
{
queryform
:
{
value
:
null
productId
:
1
,
dateTimeStart
:
moment
().
format
(
'
yyyy-MM-DD
'
),
dateTimeEnd
:
moment
().
format
(
'
yyyy-MM-DD
'
)
},
},
time
:[
moment
().
format
(
'
yyyy-MM-DD
'
),
moment
().
format
(
'
yyyy-MM-DD
'
)],
product
:[{
title
:
'
排队机
'
,
id
:
1
}],
labelCol
:
{
labelCol
:
{
span
:
1
span
:
1
},
},
...
@@ -39,10 +48,30 @@
...
@@ -39,10 +48,30 @@
}
}
},
},
mounted
()
{
mounted
()
{
this
.
init
()
this
.
getData
()
},
},
methods
:
{
methods
:
{
init
()
{
getData
()
{
this
.
queryform
.
dateTimeStart
=
this
.
time
?
this
.
time
[
0
]
:
null
this
.
queryform
.
dateTimeStart
=
this
.
time
?
this
.
time
[
1
]
:
null
getWayAccessAnalyse
(
this
.
queryform
).
then
(
res
=>
{
let
data
=
res
.
data
.
data
.
map
(
item
=>
({
name
:
item
.
name
}))
let
links
=
res
.
data
.
links
.
map
(
item
=>
({
source
:
item
.
sourceName
,
target
:
item
.
targetName
,
value
:
item
.
value
,
lineStyle
:{
color
:
'
source
'
}
}))
this
.
init
(
data
,
links
)
})
},
uniqueFunc
(
arr
,
uniId
){
const
res
=
new
Map
();
return
arr
.
filter
((
item
)
=>
!
res
.
has
(
item
[
uniId
])
&&
res
.
set
(
item
[
uniId
],
1
));
},
init
(
data
,
links
)
{
let
chartDom
=
document
.
getElementById
(
'
path
'
)
let
chartDom
=
document
.
getElementById
(
'
path
'
)
let
myChart
=
echarts
.
init
(
chartDom
);
let
myChart
=
echarts
.
init
(
chartDom
);
myChart
.
setOption
({
myChart
.
setOption
({
...
@@ -54,74 +83,8 @@
...
@@ -54,74 +83,8 @@
},
},
color
:[
'
#FFCAC4
'
,
'
#6D86DE
'
,
'
#409AFE
'
,
'
#4DB3EA
'
,
'
#07CF8C
'
],
color
:[
'
#FFCAC4
'
,
'
#6D86DE
'
,
'
#409AFE
'
,
'
#4DB3EA
'
,
'
#07CF8C
'
],
nodeWidth
:
10
,
nodeWidth
:
10
,
data
:
[{
data
:
data
,
name
:
'
a
'
links
:
links
},
{
name
:
'
b
'
},
{
name
:
'
a1
'
},
{
name
:
'
a2
'
},
{
name
:
'
b1
'
},
{
name
:
'
c
'
}
],
links
:
[{
source
:
'
a
'
,
target
:
'
a1
'
,
value
:
5
,
lineStyle
:{
color
:
'
source
'
}
},
{
source
:
'
a
'
,
target
:
'
a2
'
,
value
:
3
,
lineStyle
:{
color
:
'
source
'
}
},
{
source
:
'
b
'
,
target
:
'
b1
'
,
value
:
8
,
lineStyle
:{
color
:
'
source
'
}
},
{
source
:
'
a
'
,
target
:
'
b1
'
,
value
:
3
,
lineStyle
:{
color
:
'
source
'
}
},
{
source
:
'
b1
'
,
target
:
'
a1
'
,
value
:
1
,
lineStyle
:{
color
:
'
source
'
}
},
{
source
:
'
b1
'
,
target
:
'
c
'
,
value
:
2
,
lineStyle
:{
color
:
'
source
'
}
}
]
}
}
})
})
}
}
...
...
portal-manager-ui/admin/src/views/dataActuary/behaviour/product/product.vue
View file @
a1a24488
<
template
>
<
template
>
<!-- 产品分析 -->
<!-- 产品分析 -->
<div
class=
"page"
>
<div
class=
"page"
>
<div
class=
"img-dv"
>
<div
class=
"img-dv"
>
<img
:src=
"BASE_URL + img"
>
<img
:src=
"BASE_URL + img"
ref=
"img"
>
<div
id=
"queuing"
></div>
<div
id=
"queuing"
></div>
</div>
</div>
<div
class=
"list-dv"
>
<div
class=
"list-dv"
>
<a-form-model
:model=
"queryform"
:label-col=
"labelCol"
:wrapper-col=
"wrapperCol"
layout=
"inline"
>
<a-form-model
:model=
"queryform"
:label-col=
"labelCol"
:wrapper-col=
"wrapperCol"
layout=
"inline"
>
<a-form-model-item>
<a-form-model-item>
<a-select
v-model=
"queryform.productId"
style=
"width: 200px"
placeholder=
"选择产品"
>
<a-select
v-model=
"queryform.productId"
style=
"width: 200px"
placeholder=
"选择产品"
>
<a-select-option
:value=
"item.id"
v-for=
"(item,index) in product"
:key=
"index"
>
<a-select-option
:value=
"item.id"
v-for=
"(item,index) in product"
:key=
"index"
>
{{
item
.
title
}}
{{
item
.
title
}}
</a-select-option>
</a-select-option>
</a-select>
</a-select>
</a-form-model-item>
</a-form-model-item>
<a-form-model-item>
<a-form-model-item>
<a-range-picker
valueFormat=
"yyyy-MM-DD"
v-model=
"time"
style=
"width: 300px"
:allowClear=
"false"
/>
<a-range-picker
valueFormat=
"yyyy-MM-DD"
v-model=
"time"
style=
"width: 300px"
:allowClear=
"false"
/>
</a-form-model-item>
</a-form-model-item>
<a-form-model-item>
<a-form-model-item>
<a-select
v-model=
"queryform.pageCode"
style=
"width:
200px"
>
<a-select
v-model=
"queryform.pageCode"
style=
"width:
410px"
>
<a-select-option
:value=
"item.id"
v-for=
"(item,index) in page"
:key=
"index"
>
<a-select-option
:value=
"item.id"
v-for=
"(item,index) in page"
:key=
"index"
>
{{
item
.
title
}}
{{
item
.
title
}}
</a-select-option>
</a-select-option>
</a-select>
</a-select>
</a-form-model-item>
</a-form-model-item>
<a-form-model-item>
<a-form-model-item>
<a-button
type=
"primary"
>
<a-button
type=
"primary"
@
click=
"getList"
>
开始分析
开始分析
</a-button>
</a-button>
</a-form-model-item>
</a-form-model-item>
...
@@ -44,32 +44,34 @@
...
@@ -44,32 +44,34 @@
</
template
>
</
template
>
<
script
>
<
script
>
import
Heatmap
from
'
heatmap.js
'
;
import
Heatmap
from
'
heatmap.js
'
;
import
moment
from
'
moment
'
;
import
moment
from
'
moment
'
;
import
{
getProductHotCensus
}
from
'
@/api/dataActuary.js
'
import
{
getProductHotCensus
}
from
'
@/api/dataActuary.js
'
export
default
{
export
default
{
data
()
{
data
()
{
return
{
return
{
queryform
:
{
queryform
:
{
productId
:
1
,
productId
:
1
,
dateTimeStart
:
moment
().
format
(
'
yyyy-MM-DD
'
),
dateTimeStart
:
moment
().
format
(
'
yyyy-MM-DD
'
),
dateTimeEnd
:
moment
().
format
(
'
yyyy-MM-DD
'
),
dateTimeEnd
:
moment
().
format
(
'
yyyy-MM-DD
'
),
pageCode
:
'
/
'
pageCode
:
'
/
'
},
},
time
:
[
moment
().
format
(
'
yyyy-MM-DD
'
),
moment
().
format
(
'
yyyy-MM-DD
'
)],
time
:
[
moment
().
format
(
'
yyyy-MM-DD
'
),
moment
().
format
(
'
yyyy-MM-DD
'
)],
product
:
[{
product
:
[{
title
:
'
排队机
'
,
title
:
'
排队机
'
,
id
:
1
id
:
1
}],
}],
page
:
[{
page
:
[{
title
:
'
首页
'
,
title
:
'
首页
'
,
id
:
'
/
'
id
:
'
/
'
}],
}],
labelCol
:
{
labelCol
:
{
span
:
1
span
:
1
},
},
wrapperCol
:
{
wrapperCol
:
{
span
:
14
span
:
14
},
},
columns
:
[{
columns
:
[{
title
:
"
序号
"
,
title
:
"
序号
"
,
...
@@ -95,26 +97,45 @@
...
@@ -95,26 +97,45 @@
],
],
data
:
[],
data
:
[],
heatmapInstance
:
null
,
heatmapInstance
:
null
,
dataPoint
:
[],
dataPoint
:
[],
img
:
''
,
img
:
''
,
BASE_URL
:
process
.
env
.
VUE_APP_API_BASE_URL
BASE_URL
:
process
.
env
.
VUE_APP_API_BASE_URL
+
'
/
'
}
}
},
},
mounted
()
{
mounted
()
{
this
.
getList
(
)
this
.
init
(
'
queuing
'
)
},
},
methods
:
{
methods
:
{
getList
()
{
getList
()
{
this
.
queryform
.
dateTimeStart
=
this
.
time
?
this
.
time
[
0
]
:
null
this
.
queryform
.
dateTimeStart
=
this
.
time
?
this
.
time
[
0
]
:
null
this
.
queryform
.
dateTimeStart
=
this
.
time
?
this
.
time
[
1
]
:
null
this
.
queryform
.
dateTimeStart
=
this
.
time
?
this
.
time
[
1
]
:
null
getProductHotCensus
(
this
.
queryform
).
then
(
res
=>
{
getProductHotCensus
(
this
.
queryform
).
then
(
res
=>
{
this
.
data
=
res
.
data
.
data
this
.
data
=
res
.
data
.
data
this
.
img
=
res
.
data
.
screenUrl
this
.
img
=
res
.
data
.
screenUrl
this
.
dataPoint
=
res
.
data
.
data
.
map
(({
x
,
y
,
value
})
=>
({
x
,
y
,
value
}))
let
imgSize
=
new
Image
();
this
.
init
(
'
queuing
'
,
this
.
dataPoint
)
imgSize
.
src
=
this
.
BASE_URL
+
this
.
img
;
})
imgSize
.
onload
=
()
=>
{
let
w
=
this
.
$refs
.
img
.
width
/
imgSize
.
width
let
h
=
this
.
$refs
.
img
.
height
/
imgSize
.
height
this
.
dataPoint
=
res
.
data
.
data
.
map
(({
x
,
y
,
value
})
=>
({
x
:
parseInt
(
x
*
w
),
y
:
parseInt
(
y
*
h
),
value
}))
let
data
=
{
max
:
10
,
min
:
0
,
data
:
this
.
dataPoint
};
this
.
heatmapInstance
.
setData
(
data
);
}
})
},
},
init
(
el
,
dataPoint
)
{
init
(
el
)
{
let
config
=
{
let
config
=
{
container
:
document
.
getElementById
(
el
),
container
:
document
.
getElementById
(
el
),
radius
:
30
,
radius
:
30
,
...
@@ -122,13 +143,8 @@
...
@@ -122,13 +143,8 @@
minOpacity
:
0
,
minOpacity
:
0
,
blur
:
.
5
blur
:
.
5
};
};
this
.
heatmapInstance
=
Heatmap
.
create
(
config
);
this
.
heatmapInstance
=
Heatmap
.
create
(
config
);
let
data
=
{
this
.
getList
()
max
:
10
,
min
:
0
,
data
:
this
.
dataPoint
};
this
.
heatmapInstance
.
setData
(
data
);
}
}
}
}
};
};
...
@@ -142,20 +158,19 @@
...
@@ -142,20 +158,19 @@
.img-dv {
.img-dv {
width: 60%;
width: 60%;
min-height: 100%;
margin: 100px;
margin-top: 100px;
position: relative;
padding: 0 100px;
position: relative;
img {
img{
width: 100%;
width: 100%;
background-size: 100% 100%;
}
}
#queuing {
#queuing {
width:
calc(100% - 200px);
width:
100%;
height: 100%;
height: 100%;
position: absolute !important;
position: absolute !important;
top: 0;
top: 0;
left:
100px;
left:
0;
z-index: 999;
z-index: 999;
}
}
}
}
...
...
portal-manager-ui/admin/src/views/dataAdmin/components/Impossible/index.vue
View file @
a1a24488
...
@@ -316,12 +316,13 @@
...
@@ -316,12 +316,13 @@
});
});
});
});
}
else
{
}
else
{
data
=
this
.
$_
.
cloneDeep
(
let
datas
=
this
.
$_
.
cloneDeep
(
await
getImpossible
({
await
getImpossible
({
page
:
1
,
page
:
1
,
size
:
-
1
size
:
-
1
})
})
);
);
data
=
datas
.
data
.
data
if
(
!
data
.
length
)
return
;
if
(
!
data
.
length
)
return
;
for
(
let
item
of
data
)
{
for
(
let
item
of
data
)
{
Object
.
keys
(
obj
).
forEach
((
key
)
=>
{
Object
.
keys
(
obj
).
forEach
((
key
)
=>
{
...
...
portal-manager-ui/admin/src/views/dataAdmin/components/networkGovernance/callRecordForm.vue
View file @
a1a24488
...
@@ -2,16 +2,16 @@
...
@@ -2,16 +2,16 @@
<div
class=
"callRecord-Container"
>
<div
class=
"callRecord-Container"
>
<div
class=
"header_box"
>
<div
class=
"header_box"
>
<div>
<div>
<a-button
type=
"success"
@
click=
"e
xportTable"
>
<a-button
:loading=
"btnLoading"
type=
"success"
@
click=
"handleE
xportTable"
>
<span>
{{
tableSelectedRows
.
length
?
"
导出
"
:
"
导出全部
"
}}
</span>
<span>
{{
tableSelectedRows
.
length
?
"
导出
"
:
"
导出全部
"
}}
</span>
</a-button>
</a-button>
<b>
拨打次数:
<i>
233
次
</i></b>
<b>
拨打次数:
<i>
{{
total
}}
次
</i></b>
</div>
</div>
<span>
<span>
<a-input
style=
"width:250px;"
v-model=
"searchName"
placeholder=
"请输入标题或姓名关键字搜索"
>
<a-input
style=
"width:250px;"
v-model=
"searchName"
placeholder=
"请输入标题或姓名关键字搜索"
>
<a-icon
slot=
"prefix"
type=
"search"
/>
<a-icon
slot=
"prefix"
type=
"search"
/>
</a-input>
</a-input>
<a-button
type=
"primary"
>
搜索
</a-button>
<a-button
type=
"primary"
@
click=
"getList"
>
搜索
</a-button>
</span>
</span>
</div>
</div>
<div
class=
"main"
>
<div
class=
"main"
>
...
@@ -19,7 +19,7 @@
...
@@ -19,7 +19,7 @@
selectedRowKeys: tableSelectedKeys,
selectedRowKeys: tableSelectedKeys,
onChange: onSelectChange,
onChange: onSelectChange,
}" :scroll="{ y: 590 }" :pagination="tablePagination" @change="pagTableChange" :loading="tableLoading"
}" :scroll="{ y: 590 }" :pagination="tablePagination" @change="pagTableChange" :loading="tableLoading"
:columns="tableHeaders" :dataSource="tableSourceData">
:columns="tableHeaders" :dataSource="tableSourceData"
>
</a-table>
</a-table>
</div>
</div>
</div>
</div>
...
@@ -27,7 +27,10 @@
...
@@ -27,7 +27,10 @@
<
script
>
<
script
>
import
table
from
"
@/mixins/table
"
;
import
table
from
"
@/mixins/table
"
;
import
{
getSys12345
}
from
"
@/api/dataAdmin
"
import
{
export2Excel
}
from
"
@/utils/js/exportExcel
"
;
export
default
{
export
default
{
mixins
:
[
table
],
mixins
:
[
table
],
name
:
"
callRecordForm
"
,
name
:
"
callRecordForm
"
,
...
@@ -45,49 +48,55 @@ export default {
...
@@ -45,49 +48,55 @@ export default {
{
{
title
:
"
微信号
"
,
title
:
"
微信号
"
,
align
:
"
center
"
,
align
:
"
center
"
,
dataIndex
:
"
微信号
"
,
dataIndex
:
"
nickname
"
,
customRender
:
(
text
,
record
,
index
)
=>
`
${
record
.
nickname
||
'
--
'
}
`
},
},
{
{
title
:
"
电话号码
"
,
title
:
"
电话号码
"
,
align
:
"
center
"
,
align
:
"
center
"
,
dataIndex
:
"
电话号码
"
,
dataIndex
:
"
phone
"
,
customRender
:
(
text
,
record
,
index
)
=>
`
${
record
.
phone
||
'
--
'
}
`
},
},
{
{
title
:
"
拨打位置
"
,
title
:
"
拨打位置
"
,
align
:
"
center
"
,
align
:
"
center
"
,
dataIndex
:
"
拨打位置
"
,
dataIndex
:
"
address
"
,
customRender
:
(
text
,
record
,
index
)
=>
`
${
record
.
address
||
'
--
'
}
`
},
},
{
{
title
:
"
拨打时间
"
,
title
:
"
拨打时间
"
,
align
:
"
center
"
,
align
:
"
center
"
,
dataIndex
:
"
拨打时间
"
,
dataIndex
:
"
create_time
"
,
customRender
:
(
text
,
record
,
index
)
=>
`
${
record
.
create_time
||
'
--
'
}
`
},
},
],
],
btnLoading
:
false
,
tableSelectedKeys
:
[],
tableSelectedRows
:
[],
BegindAndEndTime
:
[],
BegindAndEndTime
:
[],
searchName
:
undefined
,
searchName
:
undefined
,
visible
:
false
,
visible
:
false
,
total
:
0
};
};
},
},
components
:
{
components
:
{
},
},
mounted
()
{
mounted
()
{
this
.
setMoment
();
this
.
getList
();
for
(
let
key
=
0
;
key
<
20
;
key
++
)
{
this
.
tableSourceData
.
push
({
id
:
`00
${
key
+
1
}
`
,
微信号
:
`liudefa
${
key
+
1
}
`
,
电话号码
:
`1388888888888`
,
拨打位置
:
`四川省成都市武侯区天益街1号理想中心3栋170
${
key
+
1
}
号`
,
拨打时间
:
`2022-09-26 13:30:00`
});
}
},
},
methods
:
{
methods
:
{
getList
(){
getSys12345
({
phone
:
this
.
searchName
}).
then
(
res
=>
{
this
.
tableSourceData
=
res
.
data
.
data
this
.
total
=
res
.
data
.
total
})
},
rangePickerChange
(
val
)
{
rangePickerChange
(
val
)
{
console
.
log
(
val
);
console
.
log
(
val
);
},
},
QueueState
(
type
)
{
QueueState
(
type
)
{
switch
(
type
)
{
switch
(
type
)
{
case
0
:
case
0
:
...
@@ -98,7 +107,61 @@ export default {
...
@@ -98,7 +107,61 @@ export default {
return
"
type0
"
;
return
"
type0
"
;
}
}
},
},
// 选中
onSelectChange
(
keys
,
rows
)
{
this
.
tableSelectedKeys
=
keys
;
const
res
=
new
Map
();
this
.
tableSelectedRows
=
[...
this
.
tableSelectedRows
,
...
rows
]
.
filter
((
v
)
=>
{
return
!
res
.
has
(
v
.
id
)
&&
res
.
set
(
v
.
id
,
1
);
})
.
filter
((
v
)
=>
{
return
this
.
tableSelectedKeys
.
some
((
val
)
=>
v
.
id
==
val
);
});
},
// 导出
async
handleExportTable
()
{
this
.
btnLoading
=
true
;
let
obj
=
{
1
:
"
本地打印
"
,
2
:
"
在线提交
"
,
};
let
data
=
[];
if
(
this
.
tableSelectedKeys
.
length
&&
this
.
tableSelectedRows
.
length
)
{
// 深度克隆避免影响页面表格展示
data
=
this
.
$_
.
cloneDeep
(
this
.
tableSelectedRows
);
data
.
forEach
((
item
)
=>
{
Object
.
keys
(
obj
).
forEach
((
keys
)
=>
{
if
(
item
.
type
==
keys
)
{
item
.
type
=
obj
[
keys
];
}
});
});
}
else
{
let
datas
=
this
.
$_
.
cloneDeep
(
await
getSys12345
({
page
:
1
,
size
:
-
1
})
);
data
=
datas
.
data
.
data
if
(
!
data
.
length
)
return
;
for
(
let
item
of
data
)
{
Object
.
keys
(
obj
).
forEach
((
key
)
=>
{
if
(
item
.
type
==
key
)
{
item
.
type
=
obj
[
key
];
}
});
}
}
export2Excel
(
this
.
tHeader
,
this
.
filterVal
,
data
,
"
填单记录报表
"
+
this
.
$moment
().
format
(
"
YYYYMMDDHHmmss
"
)
);
this
.
btnLoading
=
false
;
},
showDrawer
()
{
showDrawer
()
{
this
.
visible
=
true
;
this
.
visible
=
true
;
},
},
...
...
portal-manager-ui/admin/src/views/dataAdmin/components/networkGovernance/networkForm.vue
View file @
a1a24488
...
@@ -11,31 +11,32 @@
...
@@ -11,31 +11,32 @@
</div>
</div>
<span>
<span>
<a-space>
<a-space>
<a-checkbox
@
change=
"changeReply"
>
<a-checkbox
@
change=
"changeReply"
v-model=
"isReply"
>
只看未回复
只看未回复
</a-checkbox>
</a-checkbox>
<a-select
placeholder=
"全部类型"
@
change=
"changeType"
>
<a-select
placeholder=
"全部类型"
v-model=
"nowType"
@
change=
"changeType"
>
<a-select-option
value=
"1"
>
部门建议
</a-select-option>
<a-select-option
value=
"1"
>
部门建议
</a-select-option>
<a-select-option
value=
"2"
>
办事建议
</a-select-option>
<a-select-option
value=
"2"
>
办事建议
</a-select-option>
<a-select-option
value=
"3"
>
网站建议
</a-select-option>
<a-select-option
value=
"3"
>
网站建议
</a-select-option>
<a-select-option
value=
"4"
>
我要就错
</a-select-option>
<a-select-option
value=
"4"
>
我要就错
</a-select-option>
<a-select-option
value=
"5"
>
我要投诉
</a-select-option>
<a-select-option
value=
"5"
>
我要投诉
</a-select-option>
</a-select>
</a-select>
<a-select
placeholder=
"全部来源"
@
change=
"changeDevice"
>
<a-select
placeholder=
"全部来源"
v-model=
"nowDevice"
@
change=
"changeDevice"
>
<a-select-option
value=
"1"
>
评价系统
</a-select-option>
<a-select-option
value=
"1"
>
评价系统
</a-select-option>
<a-select-option
value=
"2"
>
导视系统
</a-select-option>
<a-select-option
value=
"2"
>
导视系统
</a-select-option>
<a-select-option
value=
"3"
>
自助服务系统
</a-select-option>
<a-select-option
value=
"3"
>
自助服务系统
</a-select-option>
<a-select-option
value=
"4"
>
微官网
</a-select-option>
<a-select-option
value=
"4"
>
微官网
</a-select-option>
<a-select-option
value=
"5"
>
数字填单系统
</a-select-option>
<a-select-option
value=
"5"
>
数字填单系统
</a-select-option>
</a-select>
</a-select>
<a-range-picker
style=
"width:250px;"
format=
"YYYY
年MM月DD日
"
class=
"range_picker_style"
<a-range-picker
style=
"width:250px;"
format=
"YYYY
-MM-DD
"
class=
"range_picker_style"
@
change=
"rangePickerChange"
>
@
change=
"rangePickerChange"
v-model=
"timeList"
>
</a-range-picker>
</a-range-picker>
<a-input
style=
"width:250px;"
v-model=
"searchName"
placeholder=
"请输入标题或姓名关键字搜索"
>
<a-input
style=
"width:250px;"
v-model=
"searchName"
placeholder=
"请输入标题或姓名关键字搜索"
>
<a-icon
slot=
"prefix"
type=
"search"
/>
<a-icon
slot=
"prefix"
type=
"search"
/>
</a-input>
</a-input>
<a-button
type=
"primary"
@
click=
"togetWLLZCount"
>
搜索
</a-button>
<a-button
type=
"primary"
@
click=
"togetWLLZCount"
>
搜索
</a-button>
<a-button
@
click=
"resetting"
>
重置
</a-button>
</a-space>
</a-space>
</span>
</span>
</div>
</div>
...
@@ -153,8 +154,8 @@ export default {
...
@@ -153,8 +154,8 @@ export default {
visible
:
false
,
visible
:
false
,
nowSite
:
null
,
//当前站点
nowSite
:
null
,
//当前站点
isReply
:
false
,
//是否回复
isReply
:
false
,
//是否回复
nowType
:
null
,
//当前类型
nowType
:
undefined
,
//当前类型
nowDevice
:
null
,
// 来源
nowDevice
:
undefined
,
// 来源
timeList
:[],
// 时间
timeList
:[],
// 时间
JYCount
:
0
,
//建议次数
JYCount
:
0
,
//建议次数
HFCount
:
0
,
//回复次数
HFCount
:
0
,
//回复次数
...
@@ -166,7 +167,7 @@ export default {
...
@@ -166,7 +167,7 @@ export default {
mounted
()
{
mounted
()
{
this
.
setMoment
();
this
.
setMoment
();
// 设置默认时间为今天
// 设置默认时间为今天
this
.
timeList
=
[
this
.
$moment
(
new
Date
()).
format
(
"
YYYY-MM-DD
"
),
this
.
$moment
(
new
Date
()
).
format
(
"
YYYY-MM-DD
"
)]
this
.
timeList
=
[
this
.
$moment
(
).
format
(
"
YYYY-MM-DD
"
),
this
.
$moment
(
).
format
(
"
YYYY-MM-DD
"
)]
this
.
nowSite
=
localStorage
.
getItem
(
'
siteId
'
);
this
.
nowSite
=
localStorage
.
getItem
(
'
siteId
'
);
this
.
togetWLLZCount
()
this
.
togetWLLZCount
()
},
},
...
@@ -176,6 +177,15 @@ export default {
...
@@ -176,6 +177,15 @@ export default {
}
}
},
},
methods
:
{
methods
:
{
//重置
resetting
()
{
this
.
timeList
=
[
this
.
$moment
().
format
(
"
YYYY-MM-DD
"
),
this
.
$moment
().
format
(
"
YYYY-MM-DD
"
)]
this
.
nowType
=
undefined
this
.
nowDevice
=
undefined
this
.
searchName
=
undefined
this
.
isReply
=
false
this
.
togetWLLZCount
()
},
// 重写导出
// 重写导出
toexportTable
()
{
toexportTable
()
{
let
tableData
=
[];
let
tableData
=
[];
...
...
portal-manager-ui/admin/src/views/dataAdmin/components/serviceDataAnalyse/crowdPortrait.vue
View file @
a1a24488
...
@@ -282,7 +282,7 @@
...
@@ -282,7 +282,7 @@
type
:
'
map
'
,
type
:
'
map
'
,
mapType
:
'
china
'
,
mapType
:
'
china
'
,
top
:
'
30%
'
,
top
:
'
30%
'
,
left
:
'
2
0
%
'
,
left
:
'
2
5
%
'
,
zoom
:
1.7
,
zoom
:
1.7
,
label
:
{
// 地图上的文字
label
:
{
// 地图上的文字
normal
:
{
normal
:
{
...
@@ -327,7 +327,7 @@
...
@@ -327,7 +327,7 @@
map
:
'
china
'
,
map
:
'
china
'
,
top
:
'
30%
'
,
top
:
'
30%
'
,
aspectScale
:
0.75
,
// 长宽比
aspectScale
:
0.75
,
// 长宽比
left
:
'
2
0
%
'
,
left
:
'
2
5
%
'
,
zoom
:
1.7
,
zoom
:
1.7
,
roam
:
false
,
roam
:
false
,
itemStyle
:
{
itemStyle
:
{
...
@@ -396,7 +396,7 @@
...
@@ -396,7 +396,7 @@
}
}
&>._right {
&>._right {
width:
35
%;
width:
40
%;
padding: 15px;
padding: 15px;
.list {
.list {
...
...
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