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
f3123d9a
Commit
f3123d9a
authored
Mar 21, 2023
by
赵啸非
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/master'
parents
5d3e2dc4
f0054910
Changes
9
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
1569 additions
and
1173 deletions
+1569
-1173
base-manager-ui/admin/src/pages/basicset/appmarket/components/AppDetailsPage.vue
...rc/pages/basicset/appmarket/components/AppDetailsPage.vue
+0
-1
base-manager-ui/admin/src/pages/basicset/appmarket/components/FieldConfig.vue
...n/src/pages/basicset/appmarket/components/FieldConfig.vue
+3
-1
base-manager-ui/admin/src/pages/basicset/appmarket/modal/AddField.vue
...-ui/admin/src/pages/basicset/appmarket/modal/AddField.vue
+1
-2
portal-manager-ui/admin/src/components/viewport/viewport.vue
portal-manager-ui/admin/src/components/viewport/viewport.vue
+0
-6
portal-manager-ui/admin/src/views/dataAdmin/components/evaluationRecordReport/components/HandlingDetails.vue
...nts/evaluationRecordReport/components/HandlingDetails.vue
+2
-2
portal-manager-ui/admin/src/views/dataAdmin/components/evaluationRecordReport/departmentEvaluation.vue
...omponents/evaluationRecordReport/departmentEvaluation.vue
+510
-389
portal-manager-ui/admin/src/views/dataAdmin/components/evaluationRecordReport/matterEvaluation.vue
...in/components/evaluationRecordReport/matterEvaluation.vue
+513
-388
portal-manager-ui/admin/src/views/dataAdmin/components/evaluationRecordReport/windowEvaluation.vue
...in/components/evaluationRecordReport/windowEvaluation.vue
+494
-367
portal-manager-ui/admin/src/views/dataAdmin/components/queueCall/queueRecord.vue
.../src/views/dataAdmin/components/queueCall/queueRecord.vue
+46
-17
No files found.
base-manager-ui/admin/src/pages/basicset/appmarket/components/AppDetailsPage.vue
View file @
f3123d9a
...
@@ -192,7 +192,6 @@ export default {
...
@@ -192,7 +192,6 @@ export default {
let
res
=
await
getAppInfo
({
id
:
this
.
appId
});
let
res
=
await
getAppInfo
({
id
:
this
.
appId
});
if
(
res
.
data
.
code
===
1
)
{
if
(
res
.
data
.
code
===
1
)
{
this
.
appInfo
=
res
.
data
.
data
;
this
.
appInfo
=
res
.
data
.
data
;
console
.
log
(
this
.
appInfo
);
}
}
},
},
// 获取历史版本
// 获取历史版本
...
...
base-manager-ui/admin/src/pages/basicset/appmarket/components/FieldConfig.vue
View file @
f3123d9a
...
@@ -152,7 +152,9 @@ export default {
...
@@ -152,7 +152,9 @@ export default {
this
.
current
-=
1
;
this
.
current
-=
1
;
this
.
getTempleteList
();
this
.
getTempleteList
();
}
}
this
.
tableData
=
data
;
this
.
tableData
=
data
.
sort
((
a
,
b
)
=>
{
return
a
.
fieldOrderNo
-
b
.
fieldOrderNo
;
});
this
.
SET_appTemplate
(
data
);
this
.
SET_appTemplate
(
data
);
this
.
total
=
total
;
this
.
total
=
total
;
}
}
...
...
base-manager-ui/admin/src/pages/basicset/appmarket/modal/AddField.vue
View file @
f3123d9a
...
@@ -111,7 +111,7 @@ export default {
...
@@ -111,7 +111,7 @@ export default {
fieldLen
:
128
,
//数据长度,默认128
fieldLen
:
128
,
//数据长度,默认128
fieldNull
:
""
,
//是否允许为空,(0.否,1.是)
fieldNull
:
""
,
//是否允许为空,(0.否,1.是)
isList
:
""
,
//字段是否列表显示(0.否,1.是)
isList
:
""
,
//字段是否列表显示(0.否,1.是)
fieldOrderNo
:
""
,
// 排序号
fieldOrderNo
:
99
,
// 排序号
remark
:
""
,
//
remark
:
""
,
//
},
},
rules
:
{
rules
:
{
...
@@ -166,7 +166,6 @@ export default {
...
@@ -166,7 +166,6 @@ export default {
Object
.
assign
(
this
.
form
,
this
.
$options
.
data
().
form
);
Object
.
assign
(
this
.
form
,
this
.
$options
.
data
().
form
);
this
.
form
.
appId
=
this
.
$route
.
query
.
id
;
this
.
form
.
appId
=
this
.
$route
.
query
.
id
;
this
.
form
.
id
&&
this
.
$delete
(
this
.
form
,
"
id
"
);
this
.
form
.
id
&&
this
.
$delete
(
this
.
form
,
"
id
"
);
console
.
log
(
this
.
form
);
},
},
// 编辑
// 编辑
onEdit
(
data
)
{
onEdit
(
data
)
{
...
...
portal-manager-ui/admin/src/components/viewport/viewport.vue
View file @
f3123d9a
...
@@ -11,11 +11,5 @@
...
@@ -11,11 +11,5 @@
// overflow-y: auto;
// overflow-y: auto;
// overflow-x: hidden;
// overflow-x: hidden;
box-sizing: border-box !important;
box-sizing: border-box !important;
background-image: linear-gradient(
to top,
#fad0c4 0%,
#fad0c4 1%,
#ffd1ff 100%
) !important;
}
}
</
style
>
</
style
>
portal-manager-ui/admin/src/views/dataAdmin/components/evaluationRecordReport/components/HandlingDetails.vue
View file @
f3123d9a
...
@@ -48,7 +48,7 @@
...
@@ -48,7 +48,7 @@
<span><i
class=
"lable"
>
申报人:
</i>
{{
queEvaData
.
people_name
?
queEvaData
.
people_name
:
'
--
'
}}
</span>
<span><i
class=
"lable"
>
申报人:
</i>
{{
queEvaData
.
people_name
?
queEvaData
.
people_name
:
'
--
'
}}
</span>
<span><i
class=
"lable"
>
取号时间:
</i>
{{
queEvaData
.
taketime
?
queEvaData
.
taketime
:
'
--
'
}}
</span>
<span><i
class=
"lable"
>
取号时间:
</i>
{{
queEvaData
.
taketime
?
queEvaData
.
taketime
:
'
--
'
}}
</span>
<span><i
class=
"lable"
>
排队编码:
</i>
{{
queEvaData
.
flownum
?
queEvaData
.
flownum
:
'
--
'
}}
</span>
<span><i
class=
"lable"
>
排队编码:
</i>
{{
queEvaData
.
flownum
?
queEvaData
.
flownum
:
'
--
'
}}
</span>
<span><i
class=
"lable"
>
取号方式:
</i>
{{
queEvaData
.
wy_signin
==
''
?
'
--
'
:
queEvaData
.
wy_signin
>
0
?
'
在线取号
'
:
'
现场取号
'
}}
</span>
<span><i
class=
"lable"
>
取号方式:
</i>
{{
queEvaData
.
wy_signin
>
0
?
'
在线取号
'
:
'
现场取号
'
}}
</span>
<span><i
class=
"lable"
>
注册方式:
</i>
--
</span>
<span><i
class=
"lable"
>
注册方式:
</i>
--
</span>
<span><i
class=
"lable"
>
取号设备:
</i>
{{
queEvaData
.
take_name
?
queEvaData
.
take_name
:
'
--
'
}}
</span>
<span><i
class=
"lable"
>
取号设备:
</i>
{{
queEvaData
.
take_name
?
queEvaData
.
take_name
:
'
--
'
}}
</span>
</div>
</div>
...
@@ -70,7 +70,7 @@
...
@@ -70,7 +70,7 @@
>
>
<div
class=
"details"
>
<div
class=
"details"
>
<span><i
class=
"lable"
>
办理窗口:
</i>
{{
queEvaData
.
window_name
?
queEvaData
.
window_name
:
'
--
'
}}
</span>
<span><i
class=
"lable"
>
办理窗口:
</i>
{{
queEvaData
.
window_name
?
queEvaData
.
window_name
:
'
--
'
}}
</span>
<span><i
class=
"lable"
>
办理开始时间:
</i>
{{
queEvaData
.
bltime
?
queEvaData
.
b
ltime
:
'
--
'
}}
</span>
<span><i
class=
"lable"
>
办理开始时间:
</i>
{{
queEvaData
.
calltime
?
queEvaData
.
cal
ltime
:
'
--
'
}}
</span>
<span><i
class=
"lable"
>
工作人员:
</i>
{{
queEvaData
.
workman_name
?
queEvaData
.
workman_name
:
'
--
'
}}
</span>
<span><i
class=
"lable"
>
工作人员:
</i>
{{
queEvaData
.
workman_name
?
queEvaData
.
workman_name
:
'
--
'
}}
</span>
<span><i
class=
"lable"
>
叫号设备:
</i>
{{
queEvaData
.
call_name
}}
</span>
<span><i
class=
"lable"
>
叫号设备:
</i>
{{
queEvaData
.
call_name
}}
</span>
</div>
</div>
...
...
portal-manager-ui/admin/src/views/dataAdmin/components/evaluationRecordReport/departmentEvaluation.vue
View file @
f3123d9a
<
template
>
<
template
>
<div
class=
"callRecord-Container"
>
<div
class=
"callRecord-Container"
>
<div
class=
"header_box"
>
<div
class=
"header_box"
>
<div>
<div>
<a-button
type=
"success"
@
click=
"toexportTable"
>
<a-button
type=
"success"
@
click=
"handleExportTable"
>
<span>
{{
tableSelectedRows
.
length
?
"
导出
"
:
"
导出全部
"
}}
</span>
<span>
{{
tableSelectedRows
.
length
?
"
导出
"
:
"
导出全部
"
}}
</span>
</a-button>
</a-button>
<a-button
type=
"danger"
@
click=
"delTable"
>
<a-button
type=
"danger"
@
click=
"delTable"
>
<span>
批量删除
</span>
<span>
批量删除
</span>
</a-button>
</a-button>
<b>
评价次数:
<i>
{{
evaCount
}}
次
</i></b>
<b
<sub>
统计时间段:
{{
evaDates
[
0
]
}}
~
{{
evaDates
[
1
]
}}
</sub>
>
评价次数:
<i>
{{
evaCount
}}
次
</i></b
</div>
>
<span>
<sub
<a-space>
>
统计时间段:
{{
BegindAndEndTime
[
0
]
}}
~
{{
BegindAndEndTime
[
1
]
}}
</sub
<a-select
v-model=
"evaChoose"
placeholder=
"全部评价"
@
change=
"changeEvaChoose"
mode=
"multiple"
style=
"max-width:140px"
>
>
<a-select-option
v-for=
"item in optonList"
:key=
"item.id"
:value=
"item.id"
>
{{
item
.
name
}}
</a-select-option>
</div>
</a-select>
<span>
<a-select
v-model=
"evaFrom"
placeholder=
"全部来源"
@
change=
"changeEvaFrom"
mode=
"multiple"
style=
"max-width:160px"
>
<a-space>
<a-select-option
value=
"1"
>
窗口评价
</a-select-option>
<a-select
<a-select-option
value=
"2"
>
自助服务终端
</a-select-option>
v-model=
"evaChoose"
<a-select-option
value=
"3"
>
背靠背评价
</a-select-option>
placeholder=
"全部评价"
<a-select-option
value=
"4"
>
微官网
</a-select-option>
@
change=
"changeEvaChoose"
<a-select-option
value=
"5"
>
好差评
</a-select-option>
mode=
"multiple"
<a-select-option
value=
"6"
>
一体化评价
</a-select-option>
style=
"max-width: 140px"
</a-select>
>
<a-select-option
v-for=
"item in optonList"
:key=
"item.id"
:value=
"item.id"
>
{{
item
.
name
}}
</a-select-option
>
</a-select>
<a-select
v-model=
"evaFrom"
placeholder=
"全部来源"
@
change=
"changeEvaFrom"
mode=
"multiple"
style=
"max-width: 160px"
>
<a-select-option
value=
"1"
>
窗口评价
</a-select-option>
<a-select-option
value=
"2"
>
自助服务终端
</a-select-option>
<a-select-option
value=
"3"
>
背靠背评价
</a-select-option>
<a-select-option
value=
"4"
>
微官网
</a-select-option>
<a-select-option
value=
"5"
>
好差评
</a-select-option>
<a-select-option
value=
"6"
>
一体化评价
</a-select-option>
</a-select>
<a-range-picker
:allowClear=
"false"
format=
"YYYY年MM月DD日"
class=
"range_picker_style"
@
change=
"rangePickerChange"
<a-range-picker
v-model=
"BegindAndEndTime"
>
:allowClear=
"false"
</a-range-picker>
valueFormat=
"YYYY-MM-DD"
style=
"width: 200px"
class=
"range_picker_style"
v-model=
"BegindAndEndTime"
>
</a-range-picker>
<a-input
v-model=
"searchName"
placeholder=
"请输入评价人姓名或窗口编号搜索"
>
<a-input
<a-icon
slot=
"prefix"
type=
"search"
/>
style=
"width: 280px"
</a-input>
v-model=
"searchName"
<a-button
type=
"primary"
@
click=
"togetevalist()"
>
搜索
</a-button>
placeholder=
"请输入评价人姓名或部门名称搜索"
<a-button
@
click=
"clearnAllChoose()"
>
重置
</a-button>
>
</a-space>
<a-icon
slot=
"prefix"
type=
"search"
/>
</span>
</a-input>
</div>
<a-button
type=
"primary"
@
click=
"togetevalist()"
>
搜索
</a-button>
<div
class=
"main"
>
<a-button
@
click=
"clearnAllChoose()"
>
重置
</a-button>
<a-table
size=
"small"
bordered
:row-key=
"(record) => record.id"
:row-selection=
"
{
</a-space>
selectedRowKeys: tableSelectedKeys,
</span>
onChange: onSelectChange,
}" :scroll="{ y: 590 }" :pagination="tablePagination" @change="pagTableChange" :loading="tableLoading"
:columns="tableHeaders" :dataSource="tableSourceData">
<template
slot=
"评价人照片"
slot-scope=
"text, record, index"
>
<a-avatar
v-if=
"!text || !baseurl"
shape=
"square"
:size=
"40"
icon=
"user"
/>
<img
v-else
:src=
"baseurl+'/'+text"
alt=
""
srcset=
""
style=
"max-width: 100px; max-height: 100px;"
>
</
template
>
<
template
slot=
"操作"
slot-scope=
"text, record, index"
>
<a-button
type=
"link"
style=
"color:#FF7370;"
>
删除
</a-button>
<a-button
type=
"link"
@
click=
"openHandlingDetails(record)"
>
详情
</a-button>
</
template
>
</a-table>
<HandlingDetails
ref=
"HandlingDetails"
/>
<a-modal
v-model=
"visible"
title=
"系统提示"
@
ok=
"togetEvaDetil()"
>
{{content}}
</a-modal>
</div>
</div>
</div>
<div
class=
"main"
>
<a-table
size=
"small"
bordered
:row-key=
"(record) => record.id"
:row-selection=
"
{
selectedRowKeys: tableSelectedKeys,
onChange: onSelectChange,
}"
:scroll="{ y: 590 }"
:pagination="tablePagination"
@change="pagTableChange"
:loading="tableLoading"
:columns="tableHeaders"
:dataSource="tableSourceData"
>
<template
slot=
"评价人照片"
slot-scope=
"text"
>
<a-avatar
v-if=
"!text || !baseurl"
shape=
"square"
:size=
"40"
icon=
"user"
/>
<img
v-else
:src=
"baseurl + '/' + text"
alt=
""
srcset=
""
style=
"max-width: 100px; max-height: 100px"
/>
</
template
>
<
template
slot=
"操作"
slot-scope=
"text, record"
>
<a-button
type=
"link"
style=
"color: #ff7370"
>
删除
</a-button>
<a-button
type=
"link"
@
click=
"openHandlingDetails(record)"
>
详情
</a-button
>
</
template
>
</a-table>
<HandlingDetails
ref=
"HandlingDetails"
/>
<a-modal
v-model=
"visible"
title=
"系统提示"
@
ok=
"togetEvaDetil()"
>
{{ content }}
</a-modal>
</div>
</div>
</template>
</template>
<
script
>
<
script
>
import
table
from
"
@/mixins/table
"
;
import
table
from
"
@/mixins/table
"
;
import
{
export2Excel
}
from
"
@/utils/js/exportExcel
"
;
import
HandlingDetails
from
"
./components/HandlingDetails.vue
"
;
import
HandlingDetails
from
"
./components/HandlingDetails.vue
"
;
import
{
getOptonList
,
getEvaList
,
getEvaData
,
getEvaDetil
,
getQueEvaData
}
from
"
@/api/dataAdmin
"
;
import
{
getOptonList
,
getEvaList
,
getEvaData
,
getEvaDetil
,
getQueEvaData
,
}
from
"
@/api/dataAdmin
"
;
export
default
{
export
default
{
mixins
:
[
table
],
mixins
:
[
table
],
name
:
"
departmentEvaluation
"
,
name
:
"
departmentEvaluation
"
,
data
()
{
data
()
{
return
{
return
{
tableHeaders
:
[
tableHeaders
:
[
{
{
title
:
"
序号
"
,
title
:
"
序号
"
,
dataIndex
:
"
index
"
,
dataIndex
:
"
index
"
,
width
:
"
60px
"
,
width
:
"
60px
"
,
key
:
"
index
"
,
key
:
"
index
"
,
align
:
"
center
"
,
align
:
"
center
"
,
customRender
:
(
text
,
record
,
index
)
=>
`
${
index
+
1
}
`
,
customRender
:
(
text
,
record
,
index
)
=>
`
${
index
+
1
}
`
,
},
{
title
:
"
部门名称
"
,
align
:
"
center
"
,
dataIndex
:
"
section
"
,
customRender
:
(
text
)
=>
{
return
text
?
text
:
'
--
'
}
},
{
title
:
"
评价选项
"
,
align
:
"
center
"
,
dataIndex
:
"
option_id
"
,
customRender
:
(
text
)
=>
{
return
text
?
text
:
'
--
'
}
},
{
title
:
"
评价人
"
,
align
:
"
center
"
,
dataIndex
:
"
idcard_Name
"
,
customRender
:
(
text
)
=>
{
return
text
?
text
:
'
--
'
}
},
{
title
:
"
身份证号
"
,
align
:
"
center
"
,
dataIndex
:
"
idcard_IDCardNo
"
,
customRender
:
(
text
)
=>
{
return
text
?
text
:
'
--
'
}
},
{
title
:
"
手机号
"
,
align
:
"
center
"
,
dataIndex
:
"
phone
"
,
customRender
:
(
text
)
=>
{
return
text
?
text
:
'
--
'
}
},
{
title
:
"
评价时间
"
,
align
:
"
center
"
,
dataIndex
:
"
create_time
"
,
customRender
:
(
text
)
=>
{
return
text
?
text
:
'
--
'
}
},
{
title
:
"
评价来源
"
,
align
:
"
center
"
,
dataIndex
:
"
pjxt
"
,
customRender
:
(
text
,
record
,
index
)
=>
{
if
(
text
==
1
){
return
'
窗口评价
'
}
else
if
(
text
==
2
){
return
'
自助服务终端
'
}
else
if
(
text
==
3
){
return
'
背靠背评价
'
}
else
if
(
text
==
4
){
return
'
微官网
'
}
else
if
(
text
==
5
){
return
'
好差评
'
}
else
if
(
text
==
6
){
return
'
一体化评价
'
}
else
{
return
'
--
'
}
},
},
{
title
:
"
评价设备
"
,
align
:
"
center
"
,
dataIndex
:
"
source
"
,
customRender
:
(
text
,
record
,
index
)
=>
{
if
(
text
==
1
){
return
'
安卓
'
}
else
if
(
text
==
2
){
return
'
导视机
'
}
else
if
(
text
==
3
){
return
'
微信
'
}
else
{
return
'
--
'
}
},
},
{
title
:
"
评价人照片
"
,
align
:
"
center
"
,
dataIndex
:
"
picture
"
,
scopedSlots
:
{
customRender
:
"
评价人照片
"
,
},
},
{
title
:
"
操作
"
,
align
:
"
center
"
,
dataIndex
:
"
操作
"
,
scopedSlots
:
{
customRender
:
"
操作
"
,
},
},
],
BegindAndEndTime
:
[],
searchName
:
undefined
,
//删除窗口判断
visible
:
false
,
tableSourceData
:[],
evaCount
:
0
,
//评价次数
evaChoose
:[],
//评价选项
evaFrom
:[],
// 评价来源
evaDates
:[],
// 评价日期
content
:
'
此操作将删除该评价信息,是否继续?
'
,
delId
:
null
,
//当前删除id
baseurl
:
''
,
optonList
:[]
};
},
components
:
{
HandlingDetails
},
mounted
()
{
this
.
setMoment
();
// 设置默认时间为今天
this
.
evaDates
=
[
this
.
$moment
(
new
Date
()).
format
(
"
YYYY-MM-DD
"
),
this
.
$moment
(
new
Date
()).
format
(
"
YYYY-MM-DD
"
)]
this
.
togetevalist
()
getOptonList
().
then
(
res
=>
{
console
.
log
(
res
);
if
(
res
.
code
==
1
){
this
.
optonList
=
res
.
data
}
})
},
methods
:
{
clearnAllChoose
(){
this
.
evaChoose
=
[]
this
.
evaFrom
=
[]
this
.
searchName
=
''
},
},
//导出
{
toexportTable
()
{
title
:
"
部门名称
"
,
let
tableData
=
[];
align
:
"
center
"
,
// 拼接评价选项
dataIndex
:
"
section
"
,
let
chooseStr
=
this
.
evaChoose
.
join
(
'
,
'
)
customRender
:
(
text
)
=>
{
// 要先拼接评价来源
return
text
?
text
:
"
--
"
;
let
fromString
=
this
.
evaFrom
.
join
(
'
,
'
)
},
if
(
this
.
tableSelectedRows
.
length
==
0
)
{
getEvaList
({
page
:
1
,
size
:
-
1
,
type
:
'
bmpj
'
,
option_id
:
chooseStr
,
pjxt
:
fromString
,
//传0代表全部
time
:
this
.
evaDates
,
info
:
this
.
searchName
}).
then
((
res
)
=>
{
const
{
code
,
data
}
=
res
;
if
(
code
==
1
){
tableData
=
JSON
.
parse
(
JSON
.
stringify
(
data
.
data
.
data
));
tableData
.
forEach
((
item
)
=>
{
item
.
pjxt
=
item
.
pjxt
==
1
?
'
窗口评价
'
:
item
.
pjxt
==
2
?
'
自助服务终端
'
:
item
.
pjxt
==
3
?
'
背靠背评价
'
:
item
.
pjxt
==
4
?
'
微官网
'
:
item
.
pjxt
==
5
?
'
好差评
'
:
'
一体化评价
'
item
.
source
=
item
.
source
==
1
?
'
安卓
'
:
item
.
source
==
2
?
'
导视机
'
:
'
微信
'
})
let
tableColumns
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
tableHeaders
));
let
newTableData
=
tableData
.
map
(
item
=>
{
let
obj
=
{};
for
(
let
key
in
item
)
{
obj
[
key
]
=
item
[
key
];
}
return
obj
;
})
let
exprotExcelName
=
`
${
this
.
nowDay
}
/
${
this
.
nowTime
}
/
${
this
.
$route
[
'
meta
'
][
'
title
'
]
||
'
报表信息统计
'
}
`
;
this
.
exportExcel
(
tableColumns
,
newTableData
,
exprotExcelName
);
}
})
}
else
{
tableData
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
tableSelectedRows
));
tableData
.
forEach
((
item
)
=>
{
item
.
pjxt
=
item
.
pjxt
==
1
?
'
窗口评价
'
:
item
.
pjxt
==
2
?
'
自助服务终端
'
:
item
.
pjxt
==
3
?
'
背靠背评价
'
:
item
.
pjxt
==
4
?
'
微官网
'
:
item
.
pjxt
==
5
?
'
好差评
'
:
'
一体化评价
'
item
.
source
=
item
.
source
==
1
?
'
安卓
'
:
item
.
source
==
2
?
'
导视机
'
:
'
微信
'
})
let
tableColumns
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
tableHeaders
));
let
newTableData
=
tableData
.
map
(
item
=>
{
let
obj
=
{};
for
(
let
key
in
item
)
{
obj
[
key
]
=
item
[
key
];
}
return
obj
;
})
let
exprotExcelName
=
`
${
this
.
nowDay
}
/
${
this
.
nowTime
}
/
${
this
.
$route
[
'
meta
'
][
'
title
'
]
||
'
报表信息统计
'
}
`
;
this
.
exportExcel
(
tableColumns
,
newTableData
,
exprotExcelName
);
}
},
},
delTable
(){
{
// console.log(this.tableSelectedRows);
title
:
"
评价选项
"
,
this
.
visible
=
true
;
align
:
"
center
"
,
if
(
!
this
.
tableSelectedRows
.
length
){
dataIndex
:
"
option_id
"
,
this
.
content
=
'
一条评论都没有选中
'
customRender
:
(
text
)
=>
{
}
else
{
return
text
?
text
:
"
--
"
;
this
.
content
=
'
此操作将删除这些评价信息,是否继续?
'
},
let
arr
=
[]
this
.
tableSelectedRows
.
forEach
(
item
=>
{
arr
.
push
(
item
.
id
)
});
this
.
delId
=
arr
}
},
},
togetEvaDetil
(){
{
getEvaDetil
({
title
:
"
评价人
"
,
id
:
this
.
delId
align
:
"
center
"
,
}).
then
(
res
=>
{
dataIndex
:
"
idcard_Name
"
,
{
customRender
:
(
text
)
=>
{
this
.
delId
=
null
return
text
?
text
:
"
--
"
;
this
.
visible
=
false
;
},
// 要刷新页面
this
.
togetevalist
()
}
})
},
},
togetQueEvaData
(
record
){
{
getQueEvaData
({
title
:
"
身份证号
"
,
id
:
record
.
id
align
:
"
center
"
,
}).
then
(
res
=>
{
dataIndex
:
"
idcard_IDCardNo
"
,
console
.
log
(
res
);
customRender
:
(
text
)
=>
{
const
{
code
,
data
}
=
res
return
text
?
text
:
"
--
"
;
if
(
code
==
1
){
},
this
.
$refs
.
HandlingDetails
.
queEvaData
=
data
}
})
},
},
togetEvaData
(
id
){
{
getEvaData
({
title
:
"
手机号
"
,
id
:
id
align
:
"
center
"
,
}).
then
(
res
=>
{
dataIndex
:
"
phone
"
,
console
.
log
(
res
);
customRender
:
(
text
)
=>
{
const
{
code
,
data
}
=
res
return
text
?
text
:
"
--
"
;
if
(
code
==
1
){
},
this
.
$refs
.
HandlingDetails
.
queEvaData
=
data
}
})
},
},
togetevalist
(){
{
// 拼接评价选项
title
:
"
评价时间
"
,
let
chooseStr
=
this
.
evaChoose
.
join
(
'
,
'
)
align
:
"
center
"
,
// 要先拼接评价来源
dataIndex
:
"
create_time
"
,
let
fromString
=
this
.
evaFrom
.
join
(
'
,
'
)
customRender
:
(
text
)
=>
{
getEvaList
({
return
text
?
text
:
"
--
"
;
page
:
this
.
tablePagination
.
current
,
},
size
:
this
.
tablePagination
.
pageSize
,
type
:
'
bmpj
'
,
option_id
:
chooseStr
,
pjxt
:
fromString
,
//传0代表全部
time
:
this
.
evaDates
,
info
:
this
.
searchName
}).
then
((
res
)
=>
{
console
.
log
(
11111
,
res
);
const
{
code
,
data
}
=
res
;
if
(
code
==
1
){
this
.
tableSourceData
=
data
.
data
.
data
this
.
evaCount
=
data
.
count
this
.
tablePagination
.
total
=
data
.
count
}
})
},
},
changeEvaFrom
(
val
){
{
if
(
val
.
length
){
title
:
"
评价来源
"
,
this
.
evaFrom
=
val
;
align
:
"
center
"
,
}
else
{
dataIndex
:
"
pjxt
"
,
this
.
evaFrom
=
[
0
]
customRender
:
(
text
,
record
,
index
)
=>
{
if
(
text
==
1
)
{
return
"
窗口评价
"
;
}
else
if
(
text
==
2
)
{
return
"
自助服务终端
"
;
}
else
if
(
text
==
3
)
{
return
"
背靠背评价
"
;
}
else
if
(
text
==
4
)
{
return
"
微官网
"
;
}
else
if
(
text
==
5
)
{
return
"
好差评
"
;
}
else
if
(
text
==
6
)
{
return
"
一体化评价
"
;
}
else
{
return
"
--
"
;
}
}
},
},
},
changeEvaChoose
(
val
){
{
this
.
evaChoose
=
val
title
:
"
评价设备
"
,
},
align
:
"
center
"
,
rangePickerChange
(
val
)
{
dataIndex
:
"
pj_name
"
,
this
.
evaDates
=
[
this
.
$moment
(
val
[
0
]).
format
(
"
YYYY-MM-DD
"
),
this
.
$moment
(
val
[
1
]).
format
(
"
YYYY-MM-DD
"
)]
customRender
:
(
text
)
=>
{
},
return
text
?
text
:
"
--
"
;
QueueState
(
type
)
{
},
switch
(
type
)
{
case
0
:
return
"
type1
"
;
case
1
:
return
"
type2
"
;
default
:
return
"
type0
"
;
}
},
},
//详情模块
{
openHandlingDetails
(
record
)
{
title
:
"
评价人照片
"
,
// 判断为窗口屏或者其他状况,调用不同接口
align
:
"
center
"
,
// if(record.pjxt==1){
dataIndex
:
"
picture
"
,
// this.$refs.HandlingDetails.modalInfo.title = "办理明细";
scopedSlots
:
{
// this.$refs.HandlingDetails.modalInfo.show = 1;
customRender
:
"
评价人照片
"
,
// this.togetQueEvaData(record)
},
// }else{
this
.
$refs
.
HandlingDetails
.
modalInfo
.
title
=
"
评价详情
"
;
this
.
$refs
.
HandlingDetails
.
modalInfo
.
show
=
2
;
this
.
togetEvaData
(
record
.
id
)
// }
this
.
$refs
.
HandlingDetails
.
modalInfo
.
visible
=
true
;
},
},
//删除模态框
{
showModal
(
record
)
{
title
:
"
操作
"
,
this
.
visible
=
true
;
align
:
"
center
"
,
this
.
delId
=
record
.
id
dataIndex
:
"
操作
"
,
scopedSlots
:
{
customRender
:
"
操作
"
,
},
},
},
],
BegindAndEndTime
:
[
this
.
$moment
(
new
Date
()).
format
(
"
YYYY-MM-DD
"
),
this
.
$moment
(
new
Date
()).
format
(
"
YYYY-MM-DD
"
),
],
searchName
:
undefined
,
//删除窗口判断
visible
:
false
,
tableSourceData
:
[],
evaCount
:
0
,
//评价次数
evaChoose
:
[],
//评价选项
evaFrom
:
[],
// 评价来源
evaDates
:
[],
// 评价日期
content
:
"
此操作将删除该评价信息,是否继续?
"
,
delId
:
null
,
//当前删除id
baseurl
:
""
,
optonList
:
[],
tableSelectedKeys
:
[],
tableSelectedRows
:
[],
tHeader
:
[
// 导出的表头名信息
"
部门名称
"
,
"
评价选项
"
,
"
评价人
"
,
"
身份证号
"
,
"
手机号
"
,
"
评价时间
"
,
"
评价来源
"
,
"
评价设备
"
,
],
filterVal
:
[
// 导出的表头字段名,需要导出表格字段名
"
section
"
,
"
option_id
"
,
"
idcard_Name
"
,
"
idcard_IDCardNo
"
,
"
phone
"
,
"
create_time
"
,
"
pjxt
"
,
"
pj_name
"
,
],
};
},
components
:
{
HandlingDetails
,
},
mounted
()
{
this
.
setMoment
();
// // 设置默认时间为今天
// this.evaDates = [
// this.$moment(new Date()).format("YYYY-MM-DD"),
// this.$moment(new Date()).format("YYYY-MM-DD"),
// ];
this
.
togetevalist
();
getOptonList
().
then
((
res
)
=>
{
console
.
log
(
res
);
if
(
res
.
code
==
1
)
{
this
.
optonList
=
res
.
data
;
}
});
},
methods
:
{
clearnAllChoose
()
{
this
.
evaChoose
=
[];
this
.
evaFrom
=
[];
this
.
searchName
=
""
;
this
.
tablePagination
.
current
=
1
;
this
.
tableSelectedKeys
=
[];
this
.
tableSelectedRows
=
[];
this
.
BegindAndEndTime
=
[
this
.
$moment
(
new
Date
()).
format
(
"
YYYY-MM-DD
"
),
this
.
$moment
(
new
Date
()).
format
(
"
YYYY-MM-DD
"
),
];
this
.
togetevalist
();
},
// 搜索
handleSearch
()
{
this
.
tablePagination
.
current
=
1
;
this
.
tableSelectedKeys
=
[];
this
.
tableSelectedRows
=
[];
this
.
togetevalist
();
},
},
watch
:{
delTable
()
{
tablePagination
(){
// console.log(this.tableSelectedRows);
this
.
togetevalist
()
this
.
visible
=
true
;
if
(
!
this
.
tableSelectedRows
.
length
)
{
this
.
content
=
"
一条评论都没有选中
"
;
}
else
{
this
.
content
=
"
此操作将删除这些评价信息,是否继续?
"
;
let
arr
=
[];
this
.
tableSelectedRows
.
forEach
((
item
)
=>
{
arr
.
push
(
item
.
id
);
});
this
.
delId
=
arr
;
}
},
togetEvaDetil
()
{
getEvaDetil
({
id
:
this
.
delId
,
}).
then
((
res
)
=>
{
{
this
.
delId
=
null
;
this
.
visible
=
false
;
// 要刷新页面
this
.
togetevalist
();
}
}
});
},
},
created
(){
togetQueEvaData
(
record
)
{
this
.
baseurl
=
process
.
env
.
VUE_APP_API_PHP_URL
getQueEvaData
({
}
id
:
record
.
id
,
}).
then
((
res
)
=>
{
const
{
code
,
data
}
=
res
;
if
(
code
==
1
)
{
this
.
$refs
.
HandlingDetails
.
queEvaData
=
data
;
}
});
},
togetEvaData
(
id
)
{
getEvaData
({
id
:
id
,
}).
then
((
res
)
=>
{
console
.
log
(
res
);
const
{
code
,
data
}
=
res
;
if
(
code
==
1
)
{
this
.
$refs
.
HandlingDetails
.
queEvaData
=
data
;
}
});
},
togetevalist
()
{
// 拼接评价选项
let
chooseStr
=
this
.
evaChoose
.
join
(
"
,
"
);
// 要先拼接评价来源
let
fromString
=
this
.
evaFrom
.
join
(
"
,
"
);
getEvaList
({
page
:
this
.
tablePagination
.
current
,
size
:
this
.
tablePagination
.
pageSize
,
type
:
"
bmpj
"
,
option_id
:
chooseStr
,
pjxt
:
fromString
,
//传0代表全部
time
:
this
.
BegindAndEndTime
,
info
:
this
.
searchName
,
}).
then
((
res
)
=>
{
console
.
log
(
11111
,
res
);
const
{
code
,
data
}
=
res
;
if
(
code
==
1
)
{
this
.
tableSourceData
=
data
.
data
.
data
;
this
.
evaCount
=
data
.
count
;
this
.
tablePagination
.
total
=
data
.
count
;
}
});
},
changeEvaFrom
(
val
)
{
if
(
val
.
length
)
{
this
.
evaFrom
=
val
;
}
else
{
this
.
evaFrom
=
[
0
];
}
},
changeEvaChoose
(
val
)
{
this
.
evaChoose
=
val
;
},
QueueState
(
type
)
{
switch
(
type
)
{
case
0
:
return
"
type1
"
;
case
1
:
return
"
type2
"
;
default
:
return
"
type0
"
;
}
},
//详情模块
openHandlingDetails
(
record
)
{
// 判断为窗口屏或者其他状况,调用不同接口
// if(record.pjxt==1){
// this.$refs.HandlingDetails.modalInfo.title = "办理明细";
// this.$refs.HandlingDetails.modalInfo.show = 1;
// this.togetQueEvaData(record)
// }else{
this
.
$refs
.
HandlingDetails
.
modalInfo
.
title
=
"
评价详情
"
;
this
.
$refs
.
HandlingDetails
.
modalInfo
.
show
=
2
;
this
.
togetEvaData
(
record
.
id
);
// }
this
.
$refs
.
HandlingDetails
.
modalInfo
.
visible
=
true
;
},
//删除模态框
showModal
(
record
)
{
this
.
visible
=
true
;
this
.
delId
=
record
.
id
;
},
// 选择数据
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
:
"
自助服务终端
"
,
3
:
"
背靠背评价
"
,
4
:
"
微官网
"
,
5
:
"
好差评
"
,
6
:
"
一体化评价
"
,
};
if
(
this
.
tableSelectedKeys
.
length
&&
this
.
tableSelectedRows
.
length
)
{
this
.
tableSelectedRows
.
forEach
((
item
)
=>
{
Object
.
keys
(
obj
).
forEach
((
keys
)
=>
{
if
(
item
.
pjxt
==
keys
)
{
item
.
pjxt
=
obj
[
keys
];
}
});
});
export2Excel
(
this
.
tHeader
,
this
.
filterVal
,
this
.
tableSelectedRows
,
"
办事部门评价记录报表
"
+
this
.
$moment
().
format
(
"
YYYYMMDDHHmmss
"
)
);
}
else
{
// 拼接评价选项
let
chooseStr
=
this
.
evaChoose
.
join
(
"
,
"
);
// 要先拼接评价来源
let
fromString
=
this
.
evaFrom
.
join
(
"
,
"
);
getEvaList
({
page
:
this
.
tablePagination
.
current
,
size
:
-
1
,
type
:
"
bmpj
"
,
option_id
:
chooseStr
,
pjxt
:
fromString
,
//传0代表全部
time
:
this
.
BegindAndEndTime
,
info
:
this
.
searchName
,
}).
then
((
res
)
=>
{
const
{
code
,
data
}
=
res
;
if
(
code
==
1
)
{
if
(
!
data
.
data
.
data
.
length
)
return
;
for
(
let
item
of
data
.
data
.
data
)
{
Object
.
keys
(
obj
).
forEach
((
key
)
=>
{
if
(
item
.
pjxt
==
key
)
{
item
.
pjxt
=
obj
[
key
];
}
});
}
export2Excel
(
this
.
tHeader
,
this
.
filterVal
,
data
.
data
.
data
,
"
办事部门评价记录报表
"
+
this
.
$moment
().
format
(
"
YYYYMMDDHHmmss
"
)
);
}
});
}
this
.
btnLoading
=
false
;
},
},
watch
:
{
tablePagination
()
{
this
.
togetevalist
();
},
},
created
()
{
this
.
baseurl
=
process
.
env
.
VUE_APP_API_PHP_URL
;
},
};
};
</
script
>
</
script
>
<
style
lang=
"less"
scoped
>
<
style
lang=
"less"
scoped
>
/deep/.ant-spin-container {
/deep/.ant-spin-container {
display: block;
display: block;
}
}
.header_box {
.header_box {
padding-bottom: 1rem;
padding-bottom: 1rem;
display: flex;
justify-content: space-between;
align-items: center;
& > div {
display: flex;
display: flex;
justify-content:
space-between
;
justify-content:
flex-start
;
align-items: center;
align-items: center;
&>div {
b {
display: flex;
font-style: normal;
justify-content: flex-start;
font-weight: unset;
align-items: center;
font-size: 16px;
margin-left: 20px;
b {
font-style: normal;
font-weight: unset;
font-size: 16px;
margin-left: 20px;
i {
i {
color: #0595fd;
color: #0595fd;
font-style: normal;
font-style: normal;
}
}
}
}
sub {
sub {
font-size: 14px;
font-size: 14px;
font-style: normal;
font-style: normal;
bottom: unset;
bottom: unset;
margin-left: 20px;
margin-left: 20px;
}
}
}
}
}
}
</
style
>
</
style
>
...
...
portal-manager-ui/admin/src/views/dataAdmin/components/evaluationRecordReport/matterEvaluation.vue
View file @
f3123d9a
<
template
>
<
template
>
<div
class=
"callRecord-Container"
>
<div
class=
"callRecord-Container"
>
<div
class=
"header_box"
>
<div
class=
"header_box"
>
<div>
<div>
<a-button
type=
"success"
@
click=
"toexportTable"
>
<a-button
type=
"success"
@
click=
"handleExportTable"
>
<span>
{{
tableSelectedRows
.
length
?
"
导出
"
:
"
导出全部
"
}}
</span>
<span>
{{
tableSelectedRows
.
length
?
"
导出
"
:
"
导出全部
"
}}
</span>
</a-button>
</a-button>
<a-button
type=
"danger"
@
click=
"delTable"
>
<a-button
type=
"danger"
@
click=
"delTable"
>
<span>
批量删除
</span>
<span>
批量删除
</span>
</a-button>
</a-button>
<b>
评价次数:
<i>
{{
evaCount
}}
次
</i></b>
<b
<sub>
统计时间段:
{{
evaDates
[
0
]
}}
~
{{
evaDates
[
1
]
}}
</sub>
>
评价次数:
<i>
{{
evaCount
}}
次
</i></b
</div>
>
<span>
<sub
<a-space>
>
统计时间段:
{{
BegindAndEndTime
[
0
]
}}
~
{{
BegindAndEndTime
[
1
]
}}
</sub
<a-select
v-model=
"evaChoose"
placeholder=
"全部评价"
@
change=
"changeEvaChoose"
mode=
"multiple"
style=
"max-width:140px"
>
>
<a-select-option
v-for=
"item in optonList"
:key=
"item.id"
:value=
"item.id"
>
{{
item
.
name
}}
</a-select-option>
</div>
</a-select>
<span>
<a-select
v-model=
"evaFrom"
placeholder=
"全部来源"
@
change=
"changeEvaFrom"
mode=
"multiple"
style=
"max-width:160px"
>
<a-space>
<a-select-option
value=
"1"
>
窗口评价
</a-select-option>
<a-select
<a-select-option
value=
"2"
>
自助服务终端
</a-select-option>
v-model=
"evaChoose"
<a-select-option
value=
"3"
>
背靠背评价
</a-select-option>
placeholder=
"全部评价"
<a-select-option
value=
"4"
>
微官网
</a-select-option>
@
change=
"changeEvaChoose"
<a-select-option
value=
"5"
>
好差评
</a-select-option>
mode=
"multiple"
<a-select-option
value=
"6"
>
一体化评价
</a-select-option>
style=
"max-width: 140px"
</a-select>
>
<a-select-option
v-for=
"item in optonList"
:key=
"item.id"
:value=
"item.id"
>
{{
item
.
name
}}
</a-select-option
>
</a-select>
<a-select
v-model=
"evaFrom"
placeholder=
"全部来源"
@
change=
"changeEvaFrom"
mode=
"multiple"
style=
"max-width: 160px"
>
<a-select-option
value=
"1"
>
窗口评价
</a-select-option>
<a-select-option
value=
"2"
>
自助服务终端
</a-select-option>
<a-select-option
value=
"3"
>
背靠背评价
</a-select-option>
<a-select-option
value=
"4"
>
微官网
</a-select-option>
<a-select-option
value=
"5"
>
好差评
</a-select-option>
<a-select-option
value=
"6"
>
一体化评价
</a-select-option>
</a-select>
<a-range-picker
:allowClear=
"false"
format=
"YYYY年MM月DD日"
class=
"range_picker_style"
@
change=
"rangePickerChange"
<a-range-picker
v-model=
"BegindAndEndTime"
>
:allowClear=
"false"
</a-range-picker>
valueFormat=
"YYYY-MM-DD"
style=
"width: 200px"
class=
"range_picker_style"
v-model=
"BegindAndEndTime"
>
</a-range-picker>
<a-input
v-model=
"searchName"
placeholder=
"请输入评价人姓名或窗口编号搜索"
>
<a-input
<a-icon
slot=
"prefix"
type=
"search"
/>
style=
"width: 280px"
</a-input>
v-model=
"searchName"
<a-button
type=
"primary"
@
click=
"togetevalist()"
>
搜索
</a-button>
placeholder=
"请输入评价人姓名或排号编号搜索"
<a-button
@
click=
"clearnAllChoose()"
>
重置
</a-button>
>
</a-space>
<a-icon
slot=
"prefix"
type=
"search"
/>
</span>
</a-input>
</div>
<a-button
type=
"primary"
@
click=
"togetevalist()"
>
搜索
</a-button>
<div
class=
"main"
>
<a-button
@
click=
"clearnAllChoose()"
>
重置
</a-button>
<a-table
size=
"small"
bordered
:row-key=
"(record) => record.id"
:row-selection=
"
{
</a-space>
selectedRowKeys: tableSelectedKeys,
</span>
onChange: onSelectChange,
}" :scroll="{ y: 590 }" :pagination="tablePagination" @change="pagTableChange" :loading="tableLoading"
:columns="tableHeaders" :dataSource="tableSourceData">
<template
slot=
"评价人照片"
slot-scope=
"text, record, index"
>
<a-avatar
v-if=
"!text || !baseurl"
shape=
"square"
:size=
"40"
icon=
"user"
/>
<img
v-else
:src=
"baseurl+'/'+text"
alt=
""
srcset=
""
style=
"max-width: 100px; max-height: 100px;"
>
</
template
>
<
template
slot=
"操作"
slot-scope=
"text, record, index"
>
<a-button
type=
"link"
style=
"color:#FF7370;"
@
click=
"showModal(record)"
>
删除
</a-button>
<a-button
type=
"link"
@
click=
"openHandlingDetails(record)"
>
详情
</a-button>
</
template
>
</a-table>
<HandlingDetails
ref=
"HandlingDetails"
/>
<a-modal
v-model=
"visible"
title=
"系统提示"
@
ok=
"togetEvaDetil()"
>
{{content}}
</a-modal>
</div>
</div>
</div>
<div
class=
"main"
>
<a-table
size=
"small"
bordered
:row-key=
"(record) => record.id"
:row-selection=
"
{
selectedRowKeys: tableSelectedKeys,
onChange: onSelectChange,
}"
:scroll="{ y: 590 }"
:pagination="tablePagination"
@change="pagTableChange"
:loading="tableLoading"
:columns="tableHeaders"
:dataSource="tableSourceData"
>
<template
slot=
"评价人照片"
slot-scope=
"text"
>
<a-avatar
v-if=
"!text || !baseurl"
shape=
"square"
:size=
"40"
icon=
"user"
/>
<img
v-else
:src=
"baseurl + '/' + text"
alt=
""
srcset=
""
style=
"max-width: 100px; max-height: 100px"
/>
</
template
>
<
template
slot=
"操作"
slot-scope=
"text, record"
>
<a-button
type=
"link"
style=
"color: #ff7370"
@
click=
"showModal(record)"
>
删除
</a-button
>
<a-button
type=
"link"
@
click=
"openHandlingDetails(record)"
>
详情
</a-button
>
</
template
>
</a-table>
<HandlingDetails
ref=
"HandlingDetails"
/>
<a-modal
v-model=
"visible"
title=
"系统提示"
@
ok=
"togetEvaDetil()"
>
{{ content }}
</a-modal>
</div>
</div>
</template>
</template>
<
script
>
<
script
>
import
{
export2Excel
}
from
"
@/utils/js/exportExcel
"
;
import
table
from
"
@/mixins/table
"
;
import
table
from
"
@/mixins/table
"
;
import
HandlingDetails
from
"
./components/HandlingDetails.vue
"
;
import
HandlingDetails
from
"
./components/HandlingDetails.vue
"
;
import
{
getOptonList
,
getEvaList
,
getEvaData
,
getEvaDetil
,
getQueEvaData
}
from
"
@/api/dataAdmin
"
;
import
{
getOptonList
,
getEvaList
,
getEvaData
,
getEvaDetil
,
getQueEvaData
,
}
from
"
@/api/dataAdmin
"
;
export
default
{
export
default
{
mixins
:
[
table
],
mixins
:
[
table
],
name
:
"
matterEvaluation
"
,
name
:
"
matterEvaluation
"
,
data
()
{
data
()
{
return
{
return
{
tableHeaders
:
[
tableHeaders
:
[
{
{
title
:
"
序号
"
,
title
:
"
序号
"
,
dataIndex
:
"
index
"
,
dataIndex
:
"
index
"
,
width
:
"
60px
"
,
width
:
"
60px
"
,
key
:
"
index
"
,
key
:
"
index
"
,
align
:
"
center
"
,
align
:
"
center
"
,
customRender
:
(
text
,
record
,
index
)
=>
`
${
index
+
1
}
`
,
customRender
:
(
text
,
record
,
index
)
=>
`
${
index
+
1
}
`
,
},
{
title
:
"
排队编号
"
,
align
:
"
center
"
,
dataIndex
:
"
flounum
"
,
customRender
:
(
text
)
=>
{
return
text
?
text
:
'
--
'
}
},
{
title
:
"
评价选项
"
,
align
:
"
center
"
,
dataIndex
:
"
option_id
"
,
customRender
:
(
text
)
=>
{
return
text
?
text
:
'
--
'
}
},
{
title
:
"
评价人
"
,
align
:
"
center
"
,
dataIndex
:
"
idcard_Name
"
,
customRender
:
(
text
)
=>
{
return
text
?
text
:
'
--
'
}
},
{
title
:
"
身份证号
"
,
align
:
"
center
"
,
dataIndex
:
"
idcard_IDCardNo
"
,
customRender
:
(
text
)
=>
{
return
text
?
text
:
'
--
'
}
},
{
title
:
"
手机号
"
,
align
:
"
center
"
,
dataIndex
:
"
phone
"
,
customRender
:
(
text
)
=>
{
return
text
?
text
:
'
--
'
}
},
{
title
:
"
评价时间
"
,
align
:
"
center
"
,
dataIndex
:
"
create_time
"
,
customRender
:
(
text
)
=>
{
return
text
?
text
:
'
--
'
}
},
{
title
:
"
评价来源
"
,
align
:
"
center
"
,
dataIndex
:
"
pjxt
"
,
customRender
:
(
text
,
record
,
index
)
=>
{
if
(
text
==
1
){
return
'
窗口评价
'
}
else
if
(
text
==
2
){
return
'
自助服务终端
'
}
else
if
(
text
==
3
){
return
'
背靠背评价
'
}
else
if
(
text
==
4
){
return
'
微官网
'
}
else
if
(
text
==
5
){
return
'
好差评
'
}
else
if
(
text
==
6
){
return
'
一体化评价
'
}
else
{
return
'
--
'
}
},
},
{
title
:
"
评价设备
"
,
align
:
"
center
"
,
dataIndex
:
"
source
"
,
customRender
:
(
text
,
record
,
index
)
=>
{
if
(
text
==
1
){
return
'
安卓
'
}
else
if
(
text
==
2
){
return
'
导视机
'
}
else
if
(
text
==
3
){
return
'
微信
'
}
else
{
return
'
--
'
}
},
},
{
title
:
"
评价人照片
"
,
align
:
"
center
"
,
dataIndex
:
"
picture
"
,
scopedSlots
:
{
customRender
:
"
评价人照片
"
,
},
},
{
title
:
"
操作
"
,
align
:
"
center
"
,
dataIndex
:
"
操作
"
,
scopedSlots
:
{
customRender
:
"
操作
"
,
},
},
],
BegindAndEndTime
:
[],
searchName
:
undefined
,
//删除窗口判断
visible
:
false
,
tableSourceData
:[],
evaCount
:
0
,
//评价次数
evaChoose
:[],
//评价选项
evaFrom
:[],
// 评价来源
evaDates
:[],
// 评价日期
content
:
'
此操作将删除该评价信息,是否继续?
'
,
delId
:
null
,
//当前删除id
baseurl
:
''
,
optonList
:[]
};
},
components
:
{
HandlingDetails
},
mounted
()
{
this
.
setMoment
();
// 设置默认时间为今天
this
.
evaDates
=
[
this
.
$moment
(
new
Date
()).
format
(
"
YYYY-MM-DD
"
),
this
.
$moment
(
new
Date
()).
format
(
"
YYYY-MM-DD
"
)]
this
.
togetevalist
()
getOptonList
().
then
(
res
=>
{
console
.
log
(
res
);
if
(
res
.
code
==
1
){
this
.
optonList
=
res
.
data
}
})
},
methods
:
{
clearnAllChoose
(){
this
.
evaChoose
=
[]
this
.
evaFrom
=
[]
this
.
searchName
=
''
},
},
//导出
{
toexportTable
()
{
title
:
"
排队编号
"
,
let
tableData
=
[];
align
:
"
center
"
,
// 拼接评价选项
dataIndex
:
"
flounum
"
,
let
chooseStr
=
this
.
evaChoose
.
join
(
'
,
'
)
customRender
:
(
text
)
=>
{
// 要先拼接评价来源
return
text
?
text
:
"
--
"
;
let
fromString
=
this
.
evaFrom
.
join
(
'
,
'
)
},
if
(
this
.
tableSelectedRows
.
length
==
0
)
{
getEvaList
({
page
:
1
,
size
:
-
1
,
type
:
'
phpj
'
,
option_id
:
chooseStr
,
pjxt
:
fromString
,
//传0代表全部
time
:
this
.
evaDates
,
info
:
this
.
searchName
}).
then
((
res
)
=>
{
const
{
code
,
data
}
=
res
;
if
(
code
==
1
){
tableData
=
JSON
.
parse
(
JSON
.
stringify
(
data
.
data
.
data
));
tableData
.
forEach
((
item
)
=>
{
item
.
pjxt
=
item
.
pjxt
==
1
?
'
窗口评价
'
:
item
.
pjxt
==
2
?
'
自助服务终端
'
:
item
.
pjxt
==
3
?
'
背靠背评价
'
:
item
.
pjxt
==
4
?
'
微官网
'
:
item
.
pjxt
==
5
?
'
好差评
'
:
'
一体化评价
'
item
.
source
=
item
.
source
==
1
?
'
安卓
'
:
item
.
source
==
2
?
'
导视机
'
:
'
微信
'
})
let
tableColumns
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
tableHeaders
));
let
newTableData
=
tableData
.
map
(
item
=>
{
let
obj
=
{};
for
(
let
key
in
item
)
{
obj
[
key
]
=
item
[
key
];
}
return
obj
;
})
let
exprotExcelName
=
`
${
this
.
nowDay
}
/
${
this
.
nowTime
}
/
${
this
.
$route
[
'
meta
'
][
'
title
'
]
||
'
报表信息统计
'
}
`
;
this
.
exportExcel
(
tableColumns
,
newTableData
,
exprotExcelName
);
}
})
}
else
{
tableData
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
tableSelectedRows
));
tableData
.
forEach
((
item
)
=>
{
item
.
pjxt
=
item
.
pjxt
==
1
?
'
窗口评价
'
:
item
.
pjxt
==
2
?
'
自助服务终端
'
:
item
.
pjxt
==
3
?
'
背靠背评价
'
:
item
.
pjxt
==
4
?
'
微官网
'
:
item
.
pjxt
==
5
?
'
好差评
'
:
'
一体化评价
'
item
.
source
=
item
.
source
==
1
?
'
安卓
'
:
item
.
source
==
2
?
'
导视机
'
:
'
微信
'
})
let
tableColumns
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
tableHeaders
));
let
newTableData
=
tableData
.
map
(
item
=>
{
let
obj
=
{};
for
(
let
key
in
item
)
{
obj
[
key
]
=
item
[
key
];
}
return
obj
;
})
let
exprotExcelName
=
`
${
this
.
nowDay
}
/
${
this
.
nowTime
}
/
${
this
.
$route
[
'
meta
'
][
'
title
'
]
||
'
报表信息统计
'
}
`
;
this
.
exportExcel
(
tableColumns
,
newTableData
,
exprotExcelName
);
}
},
},
delTable
(){
{
this
.
visible
=
true
;
title
:
"
评价选项
"
,
if
(
!
this
.
tableSelectedRows
.
length
){
align
:
"
center
"
,
this
.
content
=
'
一条评论都没有选中
'
dataIndex
:
"
option_id
"
,
}
else
{
customRender
:
(
text
)
=>
{
this
.
content
=
'
此操作将删除这些评价信息,是否继续?
'
return
text
?
text
:
"
--
"
;
let
arr
=
[]
},
this
.
tableSelectedRows
.
forEach
(
item
=>
{
arr
.
push
(
item
.
id
)
});
this
.
delId
=
arr
}
},
},
togetEvaDetil
(){
{
getEvaDetil
({
title
:
"
评价人
"
,
id
:
this
.
delId
align
:
"
center
"
,
}).
then
(
res
=>
{
dataIndex
:
"
idcard_Name
"
,
{
customRender
:
(
text
)
=>
{
this
.
delId
=
null
return
text
?
text
:
"
--
"
;
this
.
visible
=
false
;
},
// 要刷新页面
this
.
togetevalist
()
}
})
},
},
togetQueEvaData
(
record
){
{
getQueEvaData
({
title
:
"
身份证号
"
,
id
:
record
.
id
align
:
"
center
"
,
}).
then
(
res
=>
{
dataIndex
:
"
idcard_IDCardNo
"
,
console
.
log
(
res
);
customRender
:
(
text
)
=>
{
const
{
code
,
data
}
=
res
return
text
?
text
:
"
--
"
;
if
(
code
==
1
){
},
this
.
$refs
.
HandlingDetails
.
queEvaData
=
data
}
})
},
},
togetEvaData
(
id
){
{
getEvaData
({
title
:
"
手机号
"
,
id
:
id
align
:
"
center
"
,
}).
then
(
res
=>
{
dataIndex
:
"
phone
"
,
console
.
log
(
res
);
customRender
:
(
text
)
=>
{
const
{
code
,
data
}
=
res
return
text
?
text
:
"
--
"
;
if
(
code
==
1
){
},
this
.
$refs
.
HandlingDetails
.
queEvaData
=
data
}
})
},
},
togetevalist
(){
{
// 拼接评价选项
title
:
"
评价时间
"
,
let
chooseStr
=
this
.
evaChoose
.
join
(
'
,
'
)
align
:
"
center
"
,
// 要先拼接评价来源
dataIndex
:
"
create_time
"
,
let
fromString
=
this
.
evaFrom
.
join
(
'
,
'
)
customRender
:
(
text
)
=>
{
getEvaList
({
return
text
?
text
:
"
--
"
;
page
:
this
.
tablePagination
.
current
,
},
size
:
this
.
tablePagination
.
pageSize
,
type
:
'
phpj
'
,
option_id
:
chooseStr
,
pjxt
:
fromString
,
//传0代表全部
time
:
this
.
evaDates
,
info
:
this
.
searchName
}).
then
((
res
)
=>
{
console
.
log
(
11111
,
res
);
const
{
code
,
data
}
=
res
;
if
(
code
==
1
){
this
.
tableSourceData
=
data
.
data
.
data
this
.
evaCount
=
data
.
count
this
.
tablePagination
.
total
=
data
.
count
}
})
},
},
changeEvaFrom
(
val
){
{
if
(
val
.
length
){
title
:
"
评价来源
"
,
this
.
evaFrom
=
val
;
align
:
"
center
"
,
}
else
{
dataIndex
:
"
pjxt
"
,
this
.
evaFrom
=
[
0
]
customRender
:
(
text
,
record
,
index
)
=>
{
if
(
text
==
1
)
{
return
"
窗口评价
"
;
}
else
if
(
text
==
2
)
{
return
"
自助服务终端
"
;
}
else
if
(
text
==
3
)
{
return
"
背靠背评价
"
;
}
else
if
(
text
==
4
)
{
return
"
微官网
"
;
}
else
if
(
text
==
5
)
{
return
"
好差评
"
;
}
else
if
(
text
==
6
)
{
return
"
一体化评价
"
;
}
else
{
return
"
--
"
;
}
}
},
},
},
changeEvaChoose
(
val
){
{
this
.
evaChoose
=
val
title
:
"
评价设备
"
,
align
:
"
center
"
,
dataIndex
:
"
pj_name
"
,
customRender
:
(
text
)
=>
{
return
text
?
text
:
"
--
"
;
},
},
},
rangePickerChange
(
val
)
{
{
this
.
evaDates
=
[
this
.
$moment
(
val
[
0
]).
format
(
"
YYYY-MM-DD
"
),
this
.
$moment
(
val
[
1
]).
format
(
"
YYYY-MM-DD
"
)]
title
:
"
评价人照片
"
,
align
:
"
center
"
,
dataIndex
:
"
picture
"
,
scopedSlots
:
{
customRender
:
"
评价人照片
"
,
},
},
},
{
title
:
"
操作
"
,
align
:
"
center
"
,
dataIndex
:
"
操作
"
,
scopedSlots
:
{
customRender
:
"
操作
"
,
},
},
],
BegindAndEndTime
:
[
this
.
$moment
(
new
Date
()).
format
(
"
YYYY-MM-DD
"
),
this
.
$moment
(
new
Date
()).
format
(
"
YYYY-MM-DD
"
),
],
searchName
:
undefined
,
//删除窗口判断
visible
:
false
,
tableSourceData
:
[],
evaCount
:
0
,
//评价次数
evaChoose
:
[],
//评价选项
evaFrom
:
[],
// 评价来源
evaDates
:
[],
// 评价日期
content
:
"
此操作将删除该评价信息,是否继续?
"
,
delId
:
null
,
//当前删除id
baseurl
:
""
,
optonList
:
[],
tableSelectedKeys
:
[],
tableSelectedRows
:
[],
tHeader
:
[
// 导出的表头名信息
"
排队编号
"
,
"
评价选项
"
,
"
评价人
"
,
"
身份证号
"
,
"
手机号
"
,
"
评价时间
"
,
"
评价来源
"
,
"
评价设备
"
,
],
filterVal
:
[
// 导出的表头字段名,需要导出表格字段名
"
flounum
"
,
"
option_id
"
,
"
idcard_Name
"
,
"
idcard_IDCardNo
"
,
"
phone
"
,
"
create_time
"
,
"
pjxt
"
,
"
pj_name
"
,
],
};
},
components
:
{
HandlingDetails
,
},
mounted
()
{
this
.
setMoment
();
// 设置默认时间为今天
// this.evaDates = [
// this.$moment(new Date()).format("YYYY-MM-DD"),
// this.$moment(new Date()).format("YYYY-MM-DD"),
// ];
QueueState
(
type
)
{
this
.
togetevalist
();
switch
(
type
)
{
case
0
:
return
"
type1
"
;
case
1
:
return
"
type2
"
;
default
:
getOptonList
().
then
((
res
)
=>
{
return
"
type0
"
;
console
.
log
(
res
);
}
if
(
res
.
code
==
1
)
{
},
this
.
optonList
=
res
.
data
;
//详情模块
}
openHandlingDetails
(
record
)
{
});
// 判断为窗口屏或者其他状况,调用不同接口
},
// if(record.pjxt==1){
methods
:
{
this
.
$refs
.
HandlingDetails
.
modalInfo
.
title
=
"
办理明细
"
;
clearnAllChoose
()
{
this
.
$refs
.
HandlingDetails
.
modalInfo
.
show
=
1
;
this
.
evaChoose
=
[];
this
.
togetQueEvaData
(
record
)
this
.
evaFrom
=
[];
// }else{
this
.
searchName
=
""
;
// this.$refs.HandlingDetails.modalInfo.title = "评价详情";
this
.
tablePagination
.
current
=
1
;
// this.$refs.HandlingDetails.modalInfo.show = 2;
this
.
tableSelectedKeys
=
[];
// this.togetEvaData(record.id)
this
.
tableSelectedRows
=
[];
// }
this
.
BegindAndEndTime
=
[
this
.
$moment
(
new
Date
()).
format
(
"
YYYY-MM-DD
"
),
this
.
$refs
.
HandlingDetails
.
modalInfo
.
visible
=
true
;
this
.
$moment
(
new
Date
()).
format
(
"
YYYY-MM-DD
"
),
},
];
//删除模态框
this
.
togetevalist
();
showModal
(
record
)
{
},
this
.
visible
=
true
;
this
.
delId
=
record
.
id
delTable
()
{
},
this
.
visible
=
true
;
if
(
!
this
.
tableSelectedRows
.
length
)
{
this
.
content
=
"
一条评论都没有选中
"
;
}
else
{
this
.
content
=
"
此操作将删除这些评价信息,是否继续?
"
;
let
arr
=
[];
this
.
tableSelectedRows
.
forEach
((
item
)
=>
{
arr
.
push
(
item
.
id
);
});
this
.
delId
=
arr
;
}
},
},
watch
:{
togetEvaDetil
()
{
tablePagination
(){
getEvaDetil
({
this
.
togetevalist
()
id
:
this
.
delId
,
}).
then
((
res
)
=>
{
{
this
.
delId
=
null
;
this
.
visible
=
false
;
// 要刷新页面
this
.
togetevalist
();
}
}
});
},
},
created
(){
togetQueEvaData
(
record
)
{
this
.
baseurl
=
process
.
env
.
VUE_APP_API_PHP_URL
getQueEvaData
({
}
id
:
record
.
id
,
}).
then
((
res
)
=>
{
console
.
log
(
res
);
const
{
code
,
data
}
=
res
;
if
(
code
==
1
)
{
this
.
$refs
.
HandlingDetails
.
queEvaData
=
data
;
}
});
},
togetEvaData
(
id
)
{
getEvaData
({
id
:
id
,
}).
then
((
res
)
=>
{
console
.
log
(
res
);
const
{
code
,
data
}
=
res
;
if
(
code
==
1
)
{
this
.
$refs
.
HandlingDetails
.
queEvaData
=
data
;
}
});
},
togetevalist
()
{
// 拼接评价选项
let
chooseStr
=
this
.
evaChoose
.
join
(
"
,
"
);
// 要先拼接评价来源
let
fromString
=
this
.
evaFrom
.
join
(
"
,
"
);
getEvaList
({
page
:
this
.
tablePagination
.
current
,
size
:
this
.
tablePagination
.
pageSize
,
type
:
"
phpj
"
,
option_id
:
chooseStr
,
pjxt
:
fromString
,
//传0代表全部
time
:
this
.
evaDates
,
info
:
this
.
searchName
,
}).
then
((
res
)
=>
{
const
{
code
,
data
}
=
res
;
if
(
code
==
1
)
{
this
.
tableSourceData
=
data
.
data
.
data
;
this
.
evaCount
=
data
.
count
;
this
.
tablePagination
.
total
=
data
.
count
;
}
});
},
changeEvaFrom
(
val
)
{
if
(
val
.
length
)
{
this
.
evaFrom
=
val
;
}
else
{
this
.
evaFrom
=
[
0
];
}
},
changeEvaChoose
(
val
)
{
this
.
evaChoose
=
val
;
},
// rangePickerChange(val) {
// this.evaDates = [
// this.$moment(val[0]).format("YYYY-MM-DD"),
// this.$moment(val[1]).format("YYYY-MM-DD"),
// ];
// },
QueueState
(
type
)
{
switch
(
type
)
{
case
0
:
return
"
type1
"
;
case
1
:
return
"
type2
"
;
default
:
return
"
type0
"
;
}
},
//详情模块
openHandlingDetails
(
record
)
{
// 判断为窗口屏或者其他状况,调用不同接口
// if(record.pjxt==1){
this
.
$refs
.
HandlingDetails
.
modalInfo
.
title
=
"
办理明细
"
;
this
.
$refs
.
HandlingDetails
.
modalInfo
.
show
=
1
;
this
.
togetQueEvaData
(
record
);
// }else{
// this.$refs.HandlingDetails.modalInfo.title = "评价详情";
// this.$refs.HandlingDetails.modalInfo.show = 2;
// this.togetEvaData(record.id)
// }
this
.
$refs
.
HandlingDetails
.
modalInfo
.
visible
=
true
;
},
//删除模态框
showModal
(
record
)
{
this
.
visible
=
true
;
this
.
delId
=
record
.
id
;
},
// 选择数据
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
:
"
自助服务终端
"
,
3
:
"
背靠背评价
"
,
4
:
"
微官网
"
,
5
:
"
好差评
"
,
6
:
"
一体化评价
"
,
};
if
(
this
.
tableSelectedKeys
.
length
&&
this
.
tableSelectedRows
.
length
)
{
this
.
tableSelectedRows
.
forEach
((
item
)
=>
{
Object
.
keys
(
obj
).
forEach
((
keys
)
=>
{
if
(
item
.
pjxt
==
keys
)
{
item
.
pjxt
=
obj
[
keys
];
}
});
});
export2Excel
(
this
.
tHeader
,
this
.
filterVal
,
this
.
tableSelectedRows
,
"
办理事项评价记录报表
"
+
this
.
$moment
().
format
(
"
YYYYMMDDHHmmss
"
)
);
}
else
{
// 拼接评价选项
let
chooseStr
=
this
.
evaChoose
.
join
(
"
,
"
);
// 要先拼接评价来源
let
fromString
=
this
.
evaFrom
.
join
(
"
,
"
);
getEvaList
({
page
:
this
.
tablePagination
.
current
,
size
:
-
1
,
type
:
"
phpj
"
,
option_id
:
chooseStr
,
pjxt
:
fromString
,
//传0代表全部
time
:
this
.
BegindAndEndTime
,
info
:
this
.
searchName
,
}).
then
((
res
)
=>
{
const
{
code
,
data
}
=
res
;
if
(
code
==
1
)
{
if
(
!
data
.
data
.
data
.
length
)
return
;
for
(
let
item
of
data
.
data
.
data
)
{
Object
.
keys
(
obj
).
forEach
((
key
)
=>
{
if
(
item
.
pjxt
==
key
)
{
item
.
pjxt
=
obj
[
key
];
}
});
}
export2Excel
(
this
.
tHeader
,
this
.
filterVal
,
data
.
data
.
data
,
"
办理事项评价记录报表
"
+
this
.
$moment
().
format
(
"
YYYYMMDDHHmmss
"
)
);
}
});
}
this
.
btnLoading
=
false
;
},
},
watch
:
{
tablePagination
()
{
this
.
togetevalist
();
},
},
created
()
{
this
.
baseurl
=
process
.
env
.
VUE_APP_API_PHP_URL
;
},
};
};
</
script
>
</
script
>
<
style
lang=
"less"
scoped
>
<
style
lang=
"less"
scoped
>
/deep/.ant-spin-container {
/deep/.ant-spin-container {
display: block;
display: block;
}
}
.header_box {
.header_box {
padding-bottom: 1rem;
padding-bottom: 1rem;
display: flex;
justify-content: space-between;
align-items: center;
& > div {
display: flex;
display: flex;
justify-content:
space-between
;
justify-content:
flex-start
;
align-items: center;
align-items: center;
&>div {
b {
display: flex;
font-style: normal;
justify-content: flex-start;
font-weight: unset;
align-items: center;
font-size: 16px;
margin-left: 20px;
b {
font-style: normal;
font-weight: unset;
font-size: 16px;
margin-left: 20px;
i {
i {
color: #0595fd;
color: #0595fd;
font-style: normal;
font-style: normal;
}
}
}
}
sub {
sub {
font-size: 14px;
font-size: 14px;
font-style: normal;
font-style: normal;
bottom: unset;
bottom: unset;
margin-left: 20px;
margin-left: 20px;
}
}
}
}
}
}
</
style
>
</
style
>
...
...
portal-manager-ui/admin/src/views/dataAdmin/components/evaluationRecordReport/windowEvaluation.vue
View file @
f3123d9a
<
template
>
<
template
>
<div
class=
"callRecord-Container"
>
<div
class=
"callRecord-Container"
>
<div
class=
"header_box"
>
<div
class=
"header_box"
>
<div>
<div>
<a-button
type=
"success"
@
click=
"toexportTable"
>
<a-button
type=
"success"
@
click=
"handleExportTable"
>
<span>
{{
tableSelectedRows
.
length
?
"
导出
"
:
"
导出全部
"
}}
</span>
<span>
{{
tableSelectedRows
.
length
?
"
导出
"
:
"
导出全部
"
}}
</span>
</a-button>
</a-button>
<a-button
type=
"danger"
@
click=
"delTable"
>
<a-button
type=
"danger"
@
click=
"delTable"
>
<span>
批量删除
</span>
<span>
批量删除
</span>
</a-button>
</a-button>
<b>
评价次数:
<i>
{{
evaCount
}}
次
</i></b>
<b
<sub>
统计时间段:
{{
evaDates
[
0
]
}}
~
{{
evaDates
[
1
]
}}
</sub>
>
评价次数:
<i>
{{
evaCount
}}
次
</i></b
</div>
>
<span>
<sub
<a-space>
>
统计时间段:
{{
BegindAndEndTime
[
0
]
}}
~
{{
BegindAndEndTime
[
1
]
}}
</sub
<a-select
v-model=
"evaChoose"
placeholder=
"全部评价"
@
change=
"changeEvaChoose"
mode=
"multiple"
style=
"max-width:140px"
>
>
<a-select-option
v-for=
"item in optonList"
:key=
"item.id"
:value=
"item.id"
>
{{
item
.
name
}}
</a-select-option>
</div>
</a-select>
<span>
<a-select
v-model=
"evaFrom"
placeholder=
"全部来源"
@
change=
"changeEvaFrom"
mode=
"multiple"
style=
"max-width:160px"
>
<a-space>
<a-select-option
value=
"1"
>
窗口评价
</a-select-option>
<a-select
<a-select-option
value=
"2"
>
自助服务终端
</a-select-option>
v-model=
"evaChoose"
<a-select-option
value=
"3"
>
背靠背评价
</a-select-option>
placeholder=
"全部评价"
<a-select-option
value=
"4"
>
微官网
</a-select-option>
@
change=
"changeEvaChoose"
<a-select-option
value=
"5"
>
好差评
</a-select-option>
mode=
"multiple"
<a-select-option
value=
"6"
>
一体化评价
</a-select-option>
style=
"max-width: 140px"
</a-select>
>
<a-select-option
v-for=
"item in optonList"
:key=
"item.id"
:value=
"item.id"
>
{{
item
.
name
}}
</a-select-option
>
</a-select>
<a-select
v-model=
"evaFrom"
placeholder=
"全部来源"
@
change=
"changeEvaFrom"
mode=
"multiple"
style=
"max-width: 160px"
>
<a-select-option
value=
"1"
>
窗口评价
</a-select-option>
<a-select-option
value=
"2"
>
自助服务终端
</a-select-option>
<a-select-option
value=
"3"
>
背靠背评价
</a-select-option>
<a-select-option
value=
"4"
>
微官网
</a-select-option>
<a-select-option
value=
"5"
>
好差评
</a-select-option>
<a-select-option
value=
"6"
>
一体化评价
</a-select-option>
</a-select>
<a-range-picker
:allowClear=
"false"
format=
"YYYY年MM月DD日"
class=
"range_picker_style"
@
change=
"rangePickerChange"
<a-range-picker
v-model=
"BegindAndEndTime"
>
style=
"width: 200px"
</a-range-picker>
:allowClear=
"false"
valueFormat=
"YYYY-MM-DD"
class=
"range_picker_style"
v-model=
"BegindAndEndTime"
>
</a-range-picker>
<a-input
v-model=
"searchName"
placeholder=
"请输入评价人姓名或窗口编号搜索"
>
<a-input
<a-icon
slot=
"prefix"
type=
"search"
/>
style=
"width: 280px"
</a-input>
v-model=
"searchName"
<a-button
type=
"primary"
@
click=
"togetevalist()"
>
搜索
</a-button>
placeholder=
"请输入评价人姓名或窗口编号搜索"
<a-button
@
click=
"clearnAllChoose()"
>
重置
</a-button>
>
</a-space>
<a-icon
slot=
"prefix"
type=
"search"
/>
</span>
</a-input>
</div>
<a-button
type=
"primary"
@
click=
"handleSearch"
>
搜索
</a-button>
<div
class=
"main"
>
<a-button
@
click=
"clearnAllChoose"
>
重置
</a-button>
<a-table
size=
"small"
bordered
:row-key=
"(record) => record.id"
:row-selection=
"
{
</a-space>
selectedRowKeys: tableSelectedKeys,
</span>
onChange: onSelectChange,
}" :scroll="{ y: 590 }" :pagination="tablePagination" @change="pagTableChange" :loading="tableLoading"
:columns="tableHeaders" :dataSource="tableSourceData">
<template
slot=
"评价人照片"
slot-scope=
"text, record, index"
>
<a-avatar
v-if=
"!text || !baseurl"
shape=
"square"
:size=
"40"
icon=
"user"
/>
<img
v-else
:src=
"baseurl+'/'+text"
alt=
""
srcset=
""
style=
"max-width: 100px; max-height: 100px;"
>
</
template
>
<
template
slot=
"操作"
slot-scope=
"text, record, index"
>
<a-button
type=
"link"
style=
"color:#FF7370;"
@
click=
"showModal(record)"
>
删除
</a-button>
<a-button
type=
"link"
@
click=
"openHandlingDetails(record)"
>
详情
</a-button>
</
template
>
</a-table>
<HandlingDetails
ref=
"HandlingDetails"
/>
<a-modal
v-model=
"visible"
title=
"系统提示"
@
ok=
"togetEvaDetil()"
>
{{content}}
</a-modal>
</div>
</div>
</div>
<div
class=
"main"
>
<a-table
size=
"small"
bordered
:row-key=
"(record) => record.id"
:row-selection=
"
{
selectedRowKeys: tableSelectedKeys,
onChange: onSelectChange,
}"
:scroll="{ y: 590 }"
:pagination="tablePagination"
@change="pagTableChange"
:loading="tableLoading"
:columns="tableHeaders"
:dataSource="tableSourceData"
>
<template
slot=
"评价人照片"
slot-scope=
"text"
>
<a-avatar
v-if=
"!text || !baseurl"
shape=
"square"
:size=
"40"
icon=
"user"
/>
<img
v-else
:src=
"baseurl + '/' + text"
alt=
""
srcset=
""
style=
"max-width: 100px; max-height: 100px"
/>
</
template
>
<
template
slot=
"操作"
slot-scope=
"text, record"
>
<a-button
type=
"link"
style=
"color: #ff7370"
@
click=
"showModal(record)"
>
删除
</a-button
>
<a-button
type=
"link"
@
click=
"openHandlingDetails(record)"
>
详情
</a-button
>
</
template
>
</a-table>
<HandlingDetails
ref=
"HandlingDetails"
/>
<a-modal
v-model=
"visible"
title=
"系统提示"
@
ok=
"togetEvaDetil()"
>
{{ content }}
</a-modal>
</div>
</div>
</template>
</template>
<
script
>
<
script
>
import
table
from
"
@/mixins/table
"
;
import
table
from
"
@/mixins/table
"
;
import
{
export2Excel
}
from
"
@/utils/js/exportExcel
"
;
import
HandlingDetails
from
"
./components/HandlingDetails.vue
"
;
import
HandlingDetails
from
"
./components/HandlingDetails.vue
"
;
import
{
getOptonList
,
getEvaList
,
getEvaData
,
getEvaDetil
,
getQueEvaData
}
from
"
@/api/dataAdmin
"
;
import
{
getOptonList
,
getEvaList
,
getEvaData
,
getEvaDetil
,
getQueEvaData
,
}
from
"
@/api/dataAdmin
"
;
export
default
{
export
default
{
mixins
:
[
table
],
mixins
:
[
table
],
name
:
"
windowsEvaluation
"
,
name
:
"
windowsEvaluation
"
,
data
()
{
data
()
{
return
{
return
{
tableHeaders
:
[
tableHeaders
:
[
{
{
title
:
"
序号
"
,
title
:
"
序号
"
,
dataIndex
:
"
index
"
,
dataIndex
:
"
index
"
,
width
:
"
60px
"
,
width
:
"
60px
"
,
key
:
"
index
"
,
key
:
"
index
"
,
align
:
"
center
"
,
align
:
"
center
"
,
customRender
:
(
text
,
record
,
index
)
=>
`
${
index
+
1
}
`
,
customRender
:
(
text
,
record
,
index
)
=>
`
${
index
+
1
}
`
,
},
{
title
:
"
窗口编号
"
,
align
:
"
center
"
,
dataIndex
:
"
window
"
,
customRender
:
(
text
)
=>
{
return
text
?
text
:
'
--
'
}
},
{
title
:
"
评价选项
"
,
align
:
"
center
"
,
dataIndex
:
"
option_id
"
,
customRender
:
(
text
)
=>
{
return
text
?
text
:
'
--
'
}
},
{
title
:
"
评价人
"
,
align
:
"
center
"
,
dataIndex
:
"
idcard_Name
"
,
customRender
:
(
text
)
=>
{
return
text
?
text
:
'
--
'
}
},
{
title
:
"
身份证号
"
,
align
:
"
center
"
,
dataIndex
:
"
idcard_IDCardNo
"
,
customRender
:
(
text
)
=>
{
return
text
?
text
:
'
--
'
}
},
{
title
:
"
手机号
"
,
align
:
"
center
"
,
dataIndex
:
"
phone
"
,
customRender
:
(
text
)
=>
{
return
text
?
text
:
'
--
'
}
},
{
title
:
"
评价时间
"
,
align
:
"
center
"
,
dataIndex
:
"
create_time
"
,
customRender
:
(
text
)
=>
{
return
text
?
text
:
'
--
'
}
},
{
title
:
"
评价来源
"
,
align
:
"
center
"
,
dataIndex
:
"
pjxt
"
,
customRender
:
(
text
,
record
,
index
)
=>
{
if
(
text
==
1
){
return
'
窗口评价
'
}
else
if
(
text
==
2
){
return
'
自助服务终端
'
}
else
if
(
text
==
3
){
return
'
背靠背评价
'
}
else
if
(
text
==
4
){
return
'
微官网
'
}
else
if
(
text
==
5
){
return
'
好差评
'
}
else
if
(
text
==
6
){
return
'
一体化评价
'
}
else
{
return
'
--
'
}
},
},
{
title
:
"
评价设备
"
,
align
:
"
center
"
,
dataIndex
:
"
source
"
,
customRender
:
(
text
,
record
,
index
)
=>
{
if
(
text
==
1
){
return
'
安卓
'
}
else
if
(
text
==
2
){
return
'
导视机
'
}
else
if
(
text
==
3
){
return
'
微信
'
}
else
{
return
'
--
'
}
},
},
{
title
:
"
评价人照片
"
,
align
:
"
center
"
,
dataIndex
:
"
picture
"
,
scopedSlots
:
{
customRender
:
"
评价人照片
"
,
},
},
{
title
:
"
操作
"
,
align
:
"
center
"
,
dataIndex
:
"
操作
"
,
scopedSlots
:
{
customRender
:
"
操作
"
,
},
},
],
BegindAndEndTime
:
[],
searchName
:
undefined
,
// 搜索内容
//删除窗口判断
visible
:
false
,
tableSourceData
:[],
evaCount
:
0
,
//评价次数
evaChoose
:[],
//评价选项
evaFrom
:[],
// 评价来源
evaDates
:[],
// 评价日期
content
:
'
此操作将删除该评价信息,是否继续?
'
,
delId
:
null
,
//当前删除id
baseurl
:
''
,
optonList
:[]
};
},
components
:
{
HandlingDetails
},
mounted
()
{
this
.
setMoment
();
// 设置默认时间为今天
this
.
evaDates
=
[
this
.
$moment
(
new
Date
()).
format
(
"
YYYY-MM-DD
"
),
this
.
$moment
(
new
Date
()).
format
(
"
YYYY-MM-DD
"
)]
this
.
togetevalist
()
getOptonList
().
then
(
res
=>
{
if
(
res
.
code
==
1
){
this
.
optonList
=
res
.
data
}
})
},
methods
:
{
clearnAllChoose
(){
this
.
evaChoose
=
[]
this
.
evaFrom
=
[]
this
.
searchName
=
''
},
},
//导出
{
toexportTable
()
{
title
:
"
窗口编号
"
,
let
tableData
=
[];
align
:
"
center
"
,
// 拼接评价选项
dataIndex
:
"
window
"
,
let
chooseStr
=
this
.
evaChoose
.
join
(
'
,
'
)
customRender
:
(
text
)
=>
{
// 要先拼接评价来源
return
text
?
text
:
"
--
"
;
let
fromString
=
this
.
evaFrom
.
join
(
'
,
'
)
},
if
(
this
.
tableSelectedRows
.
length
==
0
)
{
getEvaList
({
page
:
1
,
size
:
-
1
,
type
:
'
ckpj
'
,
option_id
:
chooseStr
,
pjxt
:
fromString
,
//传0代表全部
time
:
this
.
evaDates
,
info
:
this
.
searchName
}).
then
((
res
)
=>
{
const
{
code
,
data
}
=
res
;
if
(
code
==
1
){
tableData
=
JSON
.
parse
(
JSON
.
stringify
(
data
.
data
.
data
));
tableData
.
forEach
((
item
)
=>
{
item
.
pjxt
=
item
.
pjxt
==
1
?
'
窗口评价
'
:
item
.
pjxt
==
2
?
'
自助服务终端
'
:
item
.
pjxt
==
3
?
'
背靠背评价
'
:
item
.
pjxt
==
4
?
'
微官网
'
:
item
.
pjxt
==
5
?
'
好差评
'
:
'
一体化评价
'
item
.
source
=
item
.
source
==
1
?
'
安卓
'
:
item
.
source
==
2
?
'
导视机
'
:
'
微信
'
})
let
tableColumns
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
tableHeaders
));
let
newTableData
=
tableData
.
map
(
item
=>
{
let
obj
=
{};
for
(
let
key
in
item
)
{
obj
[
key
]
=
item
[
key
];
}
return
obj
;
})
let
exprotExcelName
=
`
${
this
.
nowDay
}
/
${
this
.
nowTime
}
/
${
this
.
$route
[
'
meta
'
][
'
title
'
]
||
'
报表信息统计
'
}
`
;
this
.
exportExcel
(
tableColumns
,
newTableData
,
exprotExcelName
);
}
})
}
else
{
tableData
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
tableSelectedRows
));
tableData
.
forEach
((
item
)
=>
{
item
.
pjxt
=
item
.
pjxt
==
1
?
'
窗口评价
'
:
item
.
pjxt
==
2
?
'
自助服务终端
'
:
item
.
pjxt
==
3
?
'
背靠背评价
'
:
item
.
pjxt
==
4
?
'
微官网
'
:
item
.
pjxt
==
5
?
'
好差评
'
:
'
一体化评价
'
item
.
source
=
item
.
source
==
1
?
'
安卓
'
:
item
.
source
==
2
?
'
导视机
'
:
'
微信
'
})
let
tableColumns
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
tableHeaders
));
let
newTableData
=
tableData
.
map
(
item
=>
{
let
obj
=
{};
for
(
let
key
in
item
)
{
obj
[
key
]
=
item
[
key
];
}
return
obj
;
})
let
exprotExcelName
=
`
${
this
.
nowDay
}
/
${
this
.
nowTime
}
/
${
this
.
$route
[
'
meta
'
][
'
title
'
]
||
'
报表信息统计
'
}
`
;
this
.
exportExcel
(
tableColumns
,
newTableData
,
exprotExcelName
);
}
},
},
delTable
(){
{
this
.
visible
=
true
;
title
:
"
评价选项
"
,
if
(
!
this
.
tableSelectedRows
.
length
){
align
:
"
center
"
,
this
.
content
=
'
一条评论都没有选中
'
dataIndex
:
"
option_id
"
,
}
else
{
customRender
:
(
text
)
=>
{
this
.
content
=
'
此操作将删除这些评价信息,是否继续?
'
return
text
?
text
:
"
--
"
;
let
arr
=
[]
},
this
.
tableSelectedRows
.
forEach
(
item
=>
{
arr
.
push
(
item
.
id
)
});
this
.
delId
=
arr
}
},
},
togetEvaDetil
(){
{
getEvaDetil
({
title
:
"
评价人
"
,
id
:
this
.
delId
align
:
"
center
"
,
}).
then
(
res
=>
{
dataIndex
:
"
idcard_Name
"
,
{
customRender
:
(
text
)
=>
{
this
.
delId
=
null
return
text
?
text
:
"
--
"
;
this
.
visible
=
false
;
},
// 要刷新页面
this
.
togetevalist
()
}
})
},
},
togetQueEvaData
(
record
){
{
getQueEvaData
({
title
:
"
身份证号
"
,
id
:
record
.
id
align
:
"
center
"
,
}).
then
(
res
=>
{
dataIndex
:
"
idcard_IDCardNo
"
,
const
{
code
,
data
}
=
res
customRender
:
(
text
)
=>
{
if
(
code
==
1
){
return
text
?
text
:
"
--
"
;
this
.
$refs
.
HandlingDetails
.
queEvaData
=
data
},
}
})
},
},
togetEvaData
(
id
){
{
getEvaData
({
title
:
"
手机号
"
,
id
:
id
align
:
"
center
"
,
}).
then
(
res
=>
{
dataIndex
:
"
phone
"
,
const
{
code
,
data
}
=
res
customRender
:
(
text
)
=>
{
if
(
code
==
1
){
return
text
?
text
:
"
--
"
;
this
.
$refs
.
HandlingDetails
.
queEvaData
=
data
},
}
})
},
},
togetevalist
(){
{
// 拼接评价选项
title
:
"
评价时间
"
,
let
chooseStr
=
this
.
evaChoose
.
join
(
'
,
'
)
align
:
"
center
"
,
// 要先拼接评价来源
dataIndex
:
"
create_time
"
,
let
fromString
=
this
.
evaFrom
.
join
(
'
,
'
)
customRender
:
(
text
)
=>
{
getEvaList
({
return
text
?
text
:
"
--
"
;
page
:
this
.
tablePagination
.
current
,
},
size
:
this
.
tablePagination
.
pageSize
,
type
:
'
ckpj
'
,
option_id
:
chooseStr
,
pjxt
:
fromString
,
//传0代表全部
time
:
this
.
evaDates
,
info
:
this
.
searchName
}).
then
((
res
)
=>
{
const
{
code
,
data
}
=
res
;
if
(
code
==
1
){
this
.
tableSourceData
=
data
.
data
.
data
this
.
evaCount
=
data
.
count
this
.
tablePagination
.
total
=
data
.
count
}
})
},
},
changeEvaFrom
(
val
){
{
if
(
val
.
length
){
title
:
"
评价来源
"
,
this
.
evaFrom
=
val
;
align
:
"
center
"
,
}
else
{
dataIndex
:
"
pjxt
"
,
this
.
evaFrom
=
[
0
]
customRender
:
(
text
,
record
,
index
)
=>
{
if
(
text
==
1
)
{
return
"
窗口评价
"
;
}
else
if
(
text
==
2
)
{
return
"
自助服务终端
"
;
}
else
if
(
text
==
3
)
{
return
"
背靠背评价
"
;
}
else
if
(
text
==
4
)
{
return
"
微官网
"
;
}
else
if
(
text
==
5
)
{
return
"
好差评
"
;
}
else
if
(
text
==
6
)
{
return
"
一体化评价
"
;
}
else
{
return
"
--
"
;
}
}
},
},
{
title
:
"
评价设备
"
,
align
:
"
center
"
,
dataIndex
:
"
pj_name
"
,
customRender
:
(
text
)
=>
{
return
text
?
text
:
"
--
"
;
},
},
},
changeEvaChoose
(
val
){
{
this
.
evaChoose
=
val
title
:
"
评价人照片
"
,
align
:
"
center
"
,
dataIndex
:
"
picture
"
,
scopedSlots
:
{
customRender
:
"
评价人照片
"
,
},
},
},
rangePickerChange
(
val
)
{
{
this
.
evaDates
=
[
this
.
$moment
(
val
[
0
]).
format
(
"
YYYY-MM-DD
"
),
this
.
$moment
(
val
[
1
]).
format
(
"
YYYY-MM-DD
"
)]
title
:
"
操作
"
,
align
:
"
center
"
,
dataIndex
:
"
操作
"
,
scopedSlots
:
{
customRender
:
"
操作
"
,
},
},
},
],
BegindAndEndTime
:
[
this
.
$moment
(
new
Date
()).
format
(
"
YYYY-MM-DD
"
),
this
.
$moment
(
new
Date
()).
format
(
"
YYYY-MM-DD
"
),
],
searchName
:
undefined
,
// 搜索内容
//删除窗口判断
visible
:
false
,
tableSourceData
:
[],
evaCount
:
0
,
//评价次数
evaChoose
:
[],
//评价选项
evaFrom
:
[],
// 评价来源
evaDates
:
[],
// 评价日期
content
:
"
此操作将删除该评价信息,是否继续?
"
,
delId
:
null
,
//当前删除id
baseurl
:
""
,
optonList
:
[],
tableSelectedKeys
:
[],
tableSelectedRows
:
[],
tHeader
:
[
// 导出的表头名信息
"
窗口编号
"
,
"
评价选项
"
,
"
评价人
"
,
"
身份证号
"
,
"
手机号
"
,
"
评价时间
"
,
"
评价来源
"
,
"
评价设备
"
,
],
filterVal
:
[
// 导出的表头字段名,需要导出表格字段名
"
window
"
,
"
option_id
"
,
"
idcard_Name
"
,
"
idcard_IDCardNo
"
,
"
phone
"
,
"
create_time
"
,
"
pjxt
"
,
"
pj_name
"
,
],
};
},
components
:
{
HandlingDetails
,
},
mounted
()
{
this
.
setMoment
();
// 设置默认时间为今天
// this.evaDates = [
// this.$moment(new Date()).format("YYYY-MM-DD"),
// this.$moment(new Date()).format("YYYY-MM-DD"),
// ];
this
.
togetevalist
();
getOptonList
().
then
((
res
)
=>
{
if
(
res
.
code
==
1
)
{
this
.
optonList
=
res
.
data
;
}
});
},
methods
:
{
clearnAllChoose
()
{
this
.
evaChoose
=
[];
this
.
evaFrom
=
[];
this
.
searchName
=
""
;
this
.
tablePagination
.
current
=
1
;
this
.
tableSelectedKeys
=
[];
this
.
tableSelectedRows
=
[];
this
.
BegindAndEndTime
=
[
this
.
$moment
(
new
Date
()).
format
(
"
YYYY-MM-DD
"
),
this
.
$moment
(
new
Date
()).
format
(
"
YYYY-MM-DD
"
),
];
this
.
togetevalist
();
},
// 搜索
handleSearch
()
{
this
.
tablePagination
.
current
=
1
;
this
.
tableSelectedKeys
=
[];
this
.
tableSelectedRows
=
[];
this
.
togetevalist
();
},
delTable
()
{
this
.
visible
=
true
;
if
(
!
this
.
tableSelectedRows
.
length
)
{
this
.
content
=
"
一条评论都没有选中
"
;
}
else
{
this
.
content
=
"
此操作将删除这些评价信息,是否继续?
"
;
let
arr
=
[];
this
.
tableSelectedRows
.
forEach
((
item
)
=>
{
arr
.
push
(
item
.
id
);
});
this
.
delId
=
arr
;
}
},
togetEvaDetil
()
{
getEvaDetil
({
id
:
this
.
delId
,
}).
then
((
res
)
=>
{
{
this
.
delId
=
null
;
this
.
visible
=
false
;
// 要刷新页面
this
.
togetevalist
();
}
});
},
togetQueEvaData
(
record
)
{
getQueEvaData
({
id
:
record
.
id
,
}).
then
((
res
)
=>
{
const
{
code
,
data
}
=
res
;
if
(
code
==
1
)
{
this
.
$refs
.
HandlingDetails
.
queEvaData
=
data
;
}
});
},
togetEvaData
(
id
)
{
getEvaData
({
id
:
id
,
}).
then
((
res
)
=>
{
const
{
code
,
data
}
=
res
;
if
(
code
==
1
)
{
this
.
$refs
.
HandlingDetails
.
queEvaData
=
data
;
}
});
},
togetevalist
()
{
// 拼接评价选项
let
chooseStr
=
this
.
evaChoose
.
join
(
"
,
"
);
// 要先拼接评价来源
let
fromString
=
this
.
evaFrom
.
join
(
"
,
"
);
getEvaList
({
page
:
this
.
tablePagination
.
current
,
size
:
this
.
tablePagination
.
pageSize
,
type
:
"
ckpj
"
,
option_id
:
chooseStr
,
pjxt
:
fromString
,
//传0代表全部
time
:
this
.
BegindAndEndTime
,
info
:
this
.
searchName
,
}).
then
((
res
)
=>
{
const
{
code
,
data
}
=
res
;
if
(
code
==
1
)
{
this
.
tableSourceData
=
data
.
data
.
data
;
this
.
evaCount
=
data
.
count
;
this
.
tablePagination
.
total
=
data
.
count
;
}
});
},
changeEvaFrom
(
val
)
{
if
(
val
.
length
)
{
this
.
evaFrom
=
val
;
}
else
{
this
.
evaFrom
=
[
0
];
}
},
changeEvaChoose
(
val
)
{
this
.
evaChoose
=
val
;
},
QueueState
(
type
)
{
switch
(
type
)
{
case
0
:
return
"
type1
"
;
case
1
:
return
"
type2
"
;
QueueState
(
type
)
{
default
:
switch
(
type
)
{
return
"
type0
"
;
case
0
:
}
return
"
type1
"
;
},
case
1
:
//详情模块
return
"
type2
"
;
openHandlingDetails
(
record
)
{
// 判断为窗口屏或者其他状况,调用不同接口
if
(
record
.
pjxt
==
1
)
{
this
.
$refs
.
HandlingDetails
.
modalInfo
.
title
=
"
办理明细
"
;
this
.
$refs
.
HandlingDetails
.
modalInfo
.
show
=
1
;
this
.
togetQueEvaData
(
record
);
}
else
{
this
.
$refs
.
HandlingDetails
.
modalInfo
.
title
=
"
评价详情
"
;
this
.
$refs
.
HandlingDetails
.
modalInfo
.
show
=
2
;
this
.
togetEvaData
(
record
.
id
);
}
default
:
this
.
$refs
.
HandlingDetails
.
modalInfo
.
visible
=
true
;
return
"
type0
"
;
},
//删除模态框
showModal
(
record
)
{
this
.
visible
=
true
;
this
.
delId
=
record
.
id
;
},
// 选择数据
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
:
"
自助服务终端
"
,
3
:
"
背靠背评价
"
,
4
:
"
微官网
"
,
5
:
"
好差评
"
,
6
:
"
一体化评价
"
,
};
if
(
this
.
tableSelectedKeys
.
length
&&
this
.
tableSelectedRows
.
length
)
{
this
.
tableSelectedRows
.
forEach
((
item
)
=>
{
Object
.
keys
(
obj
).
forEach
((
keys
)
=>
{
if
(
item
.
pjxt
==
keys
)
{
item
.
pjxt
=
obj
[
keys
];
}
}
},
});
//详情模块
});
openHandlingDetails
(
record
)
{
export2Excel
(
// 判断为窗口屏或者其他状况,调用不同接口
this
.
tHeader
,
if
(
record
.
pjxt
==
1
){
this
.
filterVal
,
this
.
$refs
.
HandlingDetails
.
modalInfo
.
title
=
"
办理明细
"
;
this
.
tableSelectedRows
,
this
.
$refs
.
HandlingDetails
.
modalInfo
.
show
=
1
;
"
窗口服务评价记录报表
"
+
this
.
$moment
().
format
(
"
YYYYMMDDHHmmss
"
)
this
.
togetQueEvaData
(
record
)
);
}
else
{
}
else
{
this
.
$refs
.
HandlingDetails
.
modalInfo
.
title
=
"
评价详情
"
;
// 拼接评价选项
this
.
$refs
.
HandlingDetails
.
modalInfo
.
show
=
2
;
let
chooseStr
=
this
.
evaChoose
.
join
(
"
,
"
);
this
.
togetEvaData
(
record
.
id
)
// 要先拼接评价来源
let
fromString
=
this
.
evaFrom
.
join
(
"
,
"
);
getEvaList
({
page
:
this
.
tablePagination
.
current
,
size
:
-
1
,
type
:
"
ckpj
"
,
option_id
:
chooseStr
,
pjxt
:
fromString
,
//传0代表全部
time
:
this
.
BegindAndEndTime
,
info
:
this
.
searchName
,
}).
then
((
res
)
=>
{
const
{
code
,
data
}
=
res
;
if
(
code
==
1
)
{
if
(
!
data
.
data
.
data
.
length
)
return
;
for
(
let
item
of
data
.
data
.
data
)
{
Object
.
keys
(
obj
).
forEach
((
key
)
=>
{
if
(
item
.
pjxt
==
key
)
{
item
.
pjxt
=
obj
[
key
];
}
});
}
}
export2Excel
(
this
.
$refs
.
HandlingDetails
.
modalInfo
.
visible
=
true
;
this
.
tHeader
,
},
this
.
filterVal
,
//删除模态框
data
.
data
.
data
,
showModal
(
record
)
{
"
窗口服务评价记录报表
"
+
this
.
$moment
().
format
(
"
YYYYMMDDHHmmss
"
)
this
.
visible
=
true
;
);
this
.
delId
=
record
.
id
}
},
});
}
this
.
btnLoading
=
false
;
},
},
watch
:{
},
tablePagination
()
{
watch
:
{
this
.
togetevalist
()
tablePagination
()
{
}
this
.
togetevalist
();
},
},
created
(){
},
this
.
baseurl
=
process
.
env
.
VUE_APP_API_PHP_URL
created
()
{
}
this
.
baseurl
=
process
.
env
.
VUE_APP_API_PHP_URL
;
},
};
};
</
script
>
</
script
>
<
style
lang=
"less"
scoped
>
<
style
lang=
"less"
scoped
>
/deep/.ant-spin-container {
/deep/.ant-spin-container {
display: block;
display: block;
}
}
.header_box {
.header_box {
padding-bottom: 1rem;
padding-bottom: 1rem;
display: flex;
justify-content: space-between;
align-items: center;
& > div {
display: flex;
display: flex;
justify-content:
space-between
;
justify-content:
flex-start
;
align-items: center;
align-items: center;
}
&>div {
display: flex;
justify-content: flex-start;
align-items: center;
}
}
}
</
style
>
</
style
>
...
...
portal-manager-ui/admin/src/views/dataAdmin/components/queueCall/queueRecord.vue
View file @
f3123d9a
...
@@ -2,17 +2,27 @@
...
@@ -2,17 +2,27 @@
<div
class=
"queueRecord-Container"
>
<div
class=
"queueRecord-Container"
>
<div
class=
"header_box"
>
<div
class=
"header_box"
>
<div>
<div>
<a-button
:loading=
"btnLoading"
type=
"success"
@
click=
"handleExportTable"
>
<a-button
:loading=
"btnLoading"
type=
"success"
@
click=
"handleExportTable"
>
<span>
{{
tableSelectedRows
.
length
?
"
导出
"
:
"
导出全部
"
}}
</span>
<span>
{{
tableSelectedRows
.
length
?
"
导出
"
:
"
导出全部
"
}}
</span>
</a-button>
</a-button>
<b>
取号次数:
<i>
{{
tablePagination
.
total
}}
</i>
次
</b>
<b
>
取号次数:
<i>
{{
tablePagination
.
total
}}
</i>
次
</b
>
<sub>
统计时间段:
{{
searchForm
.
time
[
0
]
}}
~
{{
searchForm
.
time
[
1
]
}}
</sub>
<sub>
统计时间段:
{{
searchForm
.
time
[
0
]
}}
~
{{
searchForm
.
time
[
1
]
}}
</sub>
</div>
</div>
<span>
<span>
<a-space>
<a-space>
<a-select
v-model=
"searchForm.id"
style=
"width: 120px"
>
<a-select
v-model=
"searchForm.id"
style=
"width: 120px"
>
<a-select-option
value=
""
>
全部设备
</a-select-option>
<a-select-option
value=
""
>
全部设备
</a-select-option>
<a-select-option
v-for=
"item in deviceData"
:key=
"item.id"
:value=
"item.id"
>
<a-select-option
v-for=
"item in deviceData"
:key=
"item.id"
:value=
"item.id"
>
{{
item
.
name
}}
{{
item
.
name
}}
</a-select-option>
</a-select-option>
</a-select>
</a-select>
...
@@ -24,7 +34,10 @@
...
@@ -24,7 +34,10 @@
</a-select>
</a-select>
<a-range-picker
valueFormat=
"YYYY-MM-DD"
v-model=
"searchForm.time"
>
<a-range-picker
valueFormat=
"YYYY-MM-DD"
v-model=
"searchForm.time"
>
</a-range-picker>
</a-range-picker>
<a-input
v-model=
"searchForm.flownum"
placeholder=
"请输入排队编号搜索"
>
<a-input
v-model=
"searchForm.flownum"
placeholder=
"请输入排队编号搜索"
>
<a-icon
slot=
"prefix"
type=
"search"
/>
<a-icon
slot=
"prefix"
type=
"search"
/>
</a-input>
</a-input>
<a-button
type=
"primary"
@
click=
"handleSearch"
>
搜索
</a-button>
<a-button
type=
"primary"
@
click=
"handleSearch"
>
搜索
</a-button>
...
@@ -33,11 +46,21 @@
...
@@ -33,11 +46,21 @@
</span>
</span>
</div>
</div>
<div
class=
"main"
>
<div
class=
"main"
>
<a-table
size=
"small"
bordered
:row-key=
"(record) => record.id"
:row-selection=
"
{
<a-table
selectedRowKeys: tableSelectedKeys,
size=
"small"
onChange: onSelectChange,
bordered
}" :scroll="{ y: 590 }" :pagination="tablePagination" @change="changeTablePage" :loading="tableLoading"
:row-key=
"(record) => record.id"
:columns="tableHeaders" :dataSource="tableList">
:row-selection=
"
{
selectedRowKeys: tableSelectedKeys,
onChange: onSelectChange,
}"
:scroll="{ y: 590 }"
:pagination="tablePagination"
@change="changeTablePage"
:loading="tableLoading"
:columns="tableHeaders"
:dataSource="tableList"
>
<!-- 序号 -->
<!-- 序号 -->
<span
slot=
"num"
slot-scope=
"text, record, index"
>
{{
<span
slot=
"num"
slot-scope=
"text, record, index"
>
{{
(
tablePagination
.
current
-
1
)
*
tablePagination
.
pageSize
+
index
+
1
(
tablePagination
.
current
-
1
)
*
tablePagination
.
pageSize
+
index
+
1
...
@@ -59,7 +82,11 @@
...
@@ -59,7 +82,11 @@
</
template
>
</
template
>
<!-- 办理业务 -->
<!-- 办理业务 -->
<
template
slot=
"business"
slot-scope=
"text"
>
<
template
slot=
"business"
slot-scope=
"text"
>
<a
v-if=
"text.business"
@
click=
"openBusiness(text.business, text.businessid)"
>
{{
text
.
business
}}
</a>
<a
v-if=
"text.business"
@
click=
"openBusiness(text.business, text.businessid)"
>
{{
text
.
business
}}
</a
>
<span
v-else
>
--
</span>
<span
v-else
>
--
</span>
</
template
>
</
template
>
<!-- 办理开始时间 -->
<!-- 办理开始时间 -->
...
@@ -70,8 +97,8 @@
...
@@ -70,8 +97,8 @@
<
template
slot=
"window_name"
slot-scope=
"text"
>
<
template
slot=
"window_name"
slot-scope=
"text"
>
{{
{{
text
.
window_name
text
.
window_name
?
text
.
window_name
+
"
-
"
+
text
.
window_fromnum
?
text
.
window_name
+
"
-
"
+
text
.
window_fromnum
:
"
--
"
:
"
--
"
}}
}}
</
template
>
</
template
>
<!-- 工作人员 -->
<!-- 工作人员 -->
...
@@ -91,11 +118,13 @@
...
@@ -91,11 +118,13 @@
</
template
>
</
template
>
<!-- 状态 -->
<!-- 状态 -->
<
template
slot=
"style"
slot-scope=
"text"
>
<
template
slot=
"style"
slot-scope=
"text"
>
<span
:class=
"
{
<span
'stand-line': text.style === 0,
:class=
"
{
'on-transact': text.style === 1,
'stand-line': text.style === 0,
'on-end': text.style === 4,
'on-transact': text.style === 1,
}">
'on-end': text.style === 4,
}"
>
{{
$codeMap
.
queueState
[
text
.
style
]
}}
{{
$codeMap
.
queueState
[
text
.
style
]
}}
</span>
</span>
</
template
>
</
template
>
...
...
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