Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
A
attendance-performance-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
赵啸非
attendance-performance-platform
Commits
66367670
Commit
66367670
authored
Jul 14, 2023
by
赵啸非
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/master'
parents
e55c0539
5471582d
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
241 additions
and
112 deletions
+241
-112
attendance-performance-manager-ui/admin/src/views/feedback/addQuestion/list.vue
...-manager-ui/admin/src/views/feedback/addQuestion/list.vue
+9
-0
attendance-performance-manager-ui/admin/src/views/feedback/list.vue
...-performance-manager-ui/admin/src/views/feedback/list.vue
+14
-3
attendance-performance-manager-ui/admin/src/views/feedback/questionnaire/list.vue
...anager-ui/admin/src/views/feedback/questionnaire/list.vue
+218
-109
No files found.
attendance-performance-manager-ui/admin/src/views/feedback/addQuestion/list.vue
View file @
66367670
...
...
@@ -179,6 +179,15 @@ export default {
},
mounted
()
{
this
.
getDeptData
()
// let query = this.$route
// console.log(query.query)
// if (query.id) {
// console.log(this.$route.query)
// let editFeedback = JSON.parse(localStorage.getItem("editFeedback"))
// console.log(editFeedback)
// this.titleForm.title = editFeedback.title
// this.titleForm.remark = editFeedback.remark
// }
},
methods
:
{
subUser
()
{
...
...
attendance-performance-manager-ui/admin/src/views/feedback/list.vue
View file @
66367670
...
...
@@ -44,12 +44,14 @@ export default {
},
/** 重写编辑方法 */
toEdit
(
row
)
{
this
.
$refs
.
drawerform
.
edit
(
row
);
// this.$refs.drawerform.edit(row);
this
.
$router
.
push
({
path
:
`/feedback/addQuestion/list?id =
${
row
.
id
}
`
});
localStorage
.
setItem
(
'
editFeedback
'
,
JSON
.
stringify
(
row
))
},
/** 重写查看方法 */
toView
(
row
)
{
console
.
log
(
row
)
localStorage
.
setItem
(
'
checkFeedbackId
'
,
row
.
id
)
localStorage
.
setItem
(
'
checkFeedbackId
'
,
row
.
id
)
// this.$refs.drawerform.view(row);
this
.
$router
.
push
(
'
/feedback/questionnaire/list
'
)
},
...
...
@@ -86,7 +88,16 @@ export default {
{
label
:
"
反馈人数
"
,
prop
:
"
feedbackNum
"
,
formatter
:
this
.
formatter
},
{
label
:
"
创建用户
"
,
prop
:
"
createUserId
"
,
formatter
:
this
.
formatter
},
// { label: "创建用户", prop: "createUserId", formatter: this.formatter },
{
label
:
"
状态
"
,
prop
:
"
processStatus
"
,
formatter
:
(
row
)
=>
{
return
(
<
el
-
tag
type
=
{
row
.
processStatus
?
row
.
processStatus
=
1
?
'
success
'
:
'
info
'
:
'
danger
'
}
size
=
"
small
"
>
{
row
.
processStatus
?
row
.
processStatus
=
1
?
'
进行中
'
:
'
已结束
'
:
'
未开始
'
}
<
/el-tag
>
)
}
},
// {
// label: "绩效反馈问题",
// width: 120,
...
...
attendance-performance-manager-ui/admin/src/views/feedback/questionnaire/list.vue
View file @
66367670
...
...
@@ -6,43 +6,73 @@
<el-tab-pane
label=
"问卷情况"
name=
"1"
>
<div
class=
"top"
style=
"margin: 10px 0;"
>
<div
style=
"width: 80%;"
>
<div
class=
"title"
>
{{
this
.
feedbackData
.
title
}}
</div>
<div
class=
"title"
>
{{
feedbackData
.
title
}}
</div>
<div
class=
"tips"
>
{{
this
.
feedbackData
.
remark
}}
{{
feedbackData
.
remark
}}
</div>
</div>
<el-button
type=
"success"
@
click=
"drawer = true"
>
预览
</el-button>
</div>
<div
style=
"margin: 10px 0;"
>
<el-tag
type=
"success"
>
进行中
</el-tag>
反馈时间:2023-06-23 09:00:00~2023-06-24 17:00:00
<el-tag
:type=
"feedbackData.processStatus ? feedbackData.processStatus = 1 ? 'success' : 'info' : 'danger'"
>
{{
feedbackData
.
processStatus
?
feedbackData
.
processStatus
==
1
?
'
进行中
'
:
'
已结束
'
:
'
未开始
'
}}
</el-tag>
反馈时间:
{{
feedbackData
.
timeStart
}}
~
{{
feedbackData
.
timeEnd
}}
</div>
<div
class=
"content"
>
<div
class=
"cLeft"
>
<div>
<span
class=
"cLeftTop"
style=
"margin: 0;"
:class=
"selTitle == 1 ? 'title' : ''"
@
click=
"selTitle = 1"
>
全部数据(220)
</span>
<span
class=
"cLeftTop"
:class=
"selTitle == 2 ? 'title' : ''"
@
click=
"selTitle = 2"
>
已反馈(1)
</span>
<span
class=
"cLeftTop"
:class=
"selTitle == 3 ? 'title' : ''"
@
click=
"selTitle = 3"
>
未反馈(219)
</span>
@
click=
"selTitle = 1"
>
全部数据(
{{
staffList
.
total
}}
)
</span>
<span
class=
"cLeftTop"
:class=
"selTitle == 2 ? 'title' : ''"
@
click=
"selTitle = 2"
>
已反馈(
{{
staffList
.
feedBack
}}
)
</span>
<span
class=
"cLeftTop"
:class=
"selTitle == 3 ? 'title' : ''"
@
click=
"selTitle = 3"
>
未反馈(
{{
staffList
.
notBack
}}
)
</span>
</div>
<
el-button
class=
"m15"
type=
"primary"
size=
"small"
>
导出数据
</el-button
>
<
!--
<el-button
class=
"m15"
type=
"primary"
size=
"small"
>
导出数据
</el-button>
--
>
<div
class=
"lBox m15"
>
<div
class=
"treeS"
>
<el-tree
:data=
"treeData"
:props=
"defaultProps"
@
node-click=
"treeSub"
></el-tree>
</div>
<el-table
ref=
"multipleTable"
:data=
"tableData"
tooltip-effect=
"dark"
style=
"width: 100%"
@
selection-change=
"handleSelectionChange"
>
<el-table
ref=
"multipleTable"
:data=
"staffList.data"
tooltip-effect=
"dark"
border
style=
"width: 100%;max-height: 450px;background-color: transparent; text-align: center;"
@
selection-change=
"handleSelectionChange"
:header-cell-style=
"
{ 'text-align': 'center' }"
:cell-style="{ 'text-align': 'center' }">
<el-table-column
type=
"selection"
width=
"55"
>
</el-table-column>
<el-table-column
label=
"日期"
width=
"120"
>
<
!--
<
el-table-column
label=
"日期"
width=
"120"
>
<template
slot-scope=
"scope"
>
{{
scope
.
row
.
date
}}
</
template
>
</el-table-column>
-->
<el-table-column
prop=
"name"
label=
"姓名"
>
</el-table-column>
<el-table-column
prop=
"deptName"
label=
"部门"
>
</el-table-column>
<el-table-column
prop=
"positionName"
label=
"职位"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
positionName
?
scope
.
row
.
positionName
:
'
工作人员
'
}}
</
template
>
</el-table-column>
<el-table-column
prop=
"name"
label=
"姓名"
width=
"120"
>
<el-table-column
prop=
"backStatus"
label=
"是否反馈"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
backStatus
?
'
已反馈
'
:
'
未反馈
'
}}
</
template
>
</el-table-column>
<el-table-column
prop=
"address"
label=
"地址"
show-overflow-tooltip
>
<el-table-column
prop=
"backTimeF"
label=
"反馈时间"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
backTimeF
?
scope
.
row
.
backTimeF
:
'
--
'
}}
</
template
>
</el-table-column>
<el-table-column
label=
"操作"
>
<
template
slot-scope=
"scope"
>
<div
style=
"color: #3377ff; cursor: pointer;"
@
click=
"check(scope.row)"
>
查看
</div>
</
template
>
</el-table-column>
<!-- <el-table-column prop="address" label="地址" show-overflow-tooltip>
</el-table-column> -->
</el-table>
<el-pagination
style=
"margin-top: 20px;"
@
size-change=
"handleSizeChange"
@
current-change=
"handleCurrentChange"
:current-page.sync=
"currentPage2"
:page-sizes=
"[10, 20, 50, 100]"
:page-size=
"staff.size"
layout=
"sizes, prev, pager, next"
:total=
"staff.total"
>
</el-pagination>
</div>
</div>
<div
class=
"cRight"
>
...
...
@@ -50,31 +80,33 @@
题型数据分析
</div>
<div
class=
"scroll"
>
<div
class=
"box"
v-for=
"i in 2"
>
<div
style=
"display: flex;align-items: center;"
>
<el-tag
type=
"primary"
effect=
"plain"
>
单项选择
</el-tag>
<div
style=
"margin-left: 10px;"
>
1.你是男性还是女性
</div>
</div>
<div
class=
"m15"
style=
"display: flex;align-items: center;justify-content: space-around; width: 40%;"
>
<div
style=
"text-align: center;"
>
<el-progress
type=
"circle"
:percentage=
"45"
show-text
width=
"75"
>
男
</el-progress>
<div>
男
</div>
<div
class=
"box m15"
v-for=
"i in questionArr1"
>
<div
v-if=
"i.questionType == 1 || i.questionType == 2"
>
<div
style=
"display: flex;align-items: center;"
>
<el-tag
type=
"primary"
effect=
"plain"
>
{{ i.typeFormat }}
</el-tag>
<div
style=
"margin-left: 10px;"
>
{{ i.question }}
</div>
</div>
<div
style=
"text-align: center;"
>
<el-progress
type=
"circle"
:percentage=
"45"
show-text
width=
"75"
>
男
</el-progress>
<div>
女
</div>
<div
class=
"m15"
style=
"display: flex;align-items: center; width: 40%;"
>
<div
style=
"text-align: center; margin-right: 40px;"
v-for=
"j in i.optionList"
>
<el-progress
type=
"circle"
:percentage=
"(j.optionCount / i.allCount * 100).toFixed(2)"
show-text
width=
"75"
>
男
</el-progress>
<div>
{{ j.optionContent }}
</div>
</div>
</div>
</div>
</div>
<div
class=
"box m15"
v-for=
"i in 4"
>
<div
style=
"display: flex;align-items: center;"
>
<el-tag
type=
"primary"
effect=
"plain"
>
单项选择
</el-tag>
<div
style=
"margin-left: 10px;"
>
1.你是男性还是女性
</div>
<div
class=
"box m15"
v-for=
"i in feedbackData.feedbackQuestionList"
>
<div
v-if=
"i.questionType == 3 || i.questionType == 4"
>
<div
style=
"display: flex;align-items: center;"
>
<el-tag
type=
"primary"
effect=
"plain"
>
{{ i.questionType == 3
? '单项填空' : '文本域填空' }}
</el-tag>
<div
style=
"margin-left: 10px;"
>
{{ i.content }}
</div>
</div>
<el-button
class=
"m15"
type=
"primary"
size=
"small"
@
click=
"getIntData(i)"
>
查看详情答案
</el-button>
</div>
<el-button
class=
"m15"
type=
"primary"
size=
"small"
@
click=
"drawerAnswer = 1"
>
查看详情答案
</el-button>
</div>
</div>
...
...
@@ -95,17 +127,43 @@
</div>
</div>
</el-drawer>
<el-drawer
:visible.sync=
"drawerStaff"
title=
"反馈详情"
size=
"40%"
>
<div
class=
"answerBox"
>
<div
class=
"aTop"
>
{{ staffInfo.name }} -
<span
style=
"font-size: 14px;"
>
{{ staffInfo.positionName ? staffInfo.positionName
: '工作人员' }}
</span>
</div>
<div
class=
"m10"
v-for=
" i in staffDetails"
>
<div>
问题:{{ i.questionContent }}
</div>
<div
v-if=
"i.questionType == 1 || i.questionType == 2"
>
<div
class=
"m10"
>
答案:
<span
v-for=
"(j, k) in i.feedbackAnswerOptionList"
:key=
"k"
>
<span
v-show=
"i.feedbackAnswerOptionList.length - k > 0 && k > 0"
>
、
</span>
{{ j.optionContent
}}
</span>
</div>
</div>
<div
v-if=
"i.questionType == 3 || i.questionType == 4"
>
<div
class=
"m10"
>
答案:
{{ i.content }}
</div>
</div>
<el-divider
class=
"m10"
></el-divider>
</div>
</div>
</el-drawer>
<el-drawer
:visible.sync=
"drawerAnswer"
title=
"反馈详情"
size=
"40%"
>
<div
class=
"answerBox"
>
<div
class=
"aTop"
>
问题:
你的具体想法?
问题:
{{ drawerAnswerObj.content }}
</div>
<el-table
class=
"m15"
:data=
"tableData"
border
style=
"width: 100%;"
>
<el-table-column
prop=
"date"
label=
"日期"
width=
"180"
>
</el-table-column>
<el-table
class=
"m15"
:data=
"drawerAnswerArr"
border
style=
"width: 100%;"
>
<el-table-column
prop=
"name"
label=
"姓名"
width=
"180"
>
</el-table-column>
<el-table-column
prop=
"address"
label=
"地址"
>
<el-table-column
prop=
"backTimeF"
label=
"反馈时间"
width=
"180"
>
</el-table-column>
<el-table-column
prop=
"answer"
label=
"反馈详情"
>
</el-table-column>
</el-table>
</div>
...
...
@@ -116,6 +174,33 @@
<
script
>
import
formCreate
from
"
@form-create/element-ui
"
;
import
moment
from
"
moment
"
;
import
{
timestampToTime
}
from
"
@/assets/utils/dateFormat.js
"
function
formType
(
val
)
{
// (1.单项选择,2.多项选择,3.文本框,4.多项文本框,5.文字,6.上传附件)
switch
(
val
)
{
case
1
:
return
'
单项选择
'
break
;
case
2
:
return
'
多项选择
'
break
;
case
3
:
return
'
文本框
'
break
;
case
4
:
return
'
多项文本框
'
break
;
case
5
:
return
'
文字
'
break
;
case
6
:
return
'
上传附件
'
break
;
default
:
break
;
}
}
export
default
{
data
()
{
return
{
...
...
@@ -124,90 +209,116 @@ export default {
Frule
:
''
,
Fopthion
:
''
,
drawerAnswer
:
false
,
drawerAnswerObj
:
{},
drawerAnswerArr
:
[],
feedbackData
:
{},
selTitle
:
1
,
tableData
:
[{
date
:
'
2016-05-02
'
,
name
:
'
王小虎
'
,
address
:
'
上海市普陀区金沙江路 1518 弄
'
},
{
date
:
'
2016-05-04
'
,
name
:
'
王小虎
'
,
address
:
'
上海市普陀区金沙江路 1517 弄
'
},
{
date
:
'
2016-05-01
'
,
name
:
'
王小虎
'
,
address
:
'
上海市普陀区金沙江路 1519 弄
'
},
{
date
:
'
2016-05-03
'
,
name
:
'
王小虎
'
,
address
:
'
上海市普陀区金沙江路 1516 弄
'
}],
treeData
:
[{
label
:
'
一级 1
'
,
children
:
[{
label
:
'
二级 1-1
'
,
children
:
[{
label
:
'
三级 1-1-1
'
}]
}]
},
{
label
:
'
一级 2
'
,
children
:
[{
label
:
'
二级 2-1
'
,
children
:
[{
label
:
'
三级 2-1-1
'
}]
},
{
label
:
'
二级 2-2
'
,
children
:
[{
label
:
'
三级 2-2-1
'
}]
}]
},
{
label
:
'
一级 3
'
,
children
:
[{
label
:
'
二级 3-1
'
,
children
:
[{
label
:
'
三级 3-1-1
'
}]
},
{
label
:
'
二级 3-2
'
,
children
:
[{
label
:
'
三级 3-2-1
'
}]
}]
}],
defaultProps
:
{
children
:
'
children
'
,
label
:
'
label
'
staff
:
{
page
:
1
,
size
:
10
,
total
:
0
,
},
staffListS
:
[],
staffList
:
[],
//人员
staffInfo
:
{},
drawerStaff
:
false
,
staffDetails
:
[],
questionArr1
:
[],
//题型分析
}
},
watch
:
{
'
selTitle
'
(
val
)
{
let
arr
=
[]
this
.
staffList
.
data
=
this
.
staffListS
if
(
val
==
2
)
{
this
.
staffList
.
data
.
forEach
(
i
=>
{
if
(
i
.
backStatus
)
{
arr
.
push
(
i
)
}
})
this
.
staffList
.
data
=
arr
}
else
if
(
val
==
3
)
{
this
.
staffList
.
data
.
forEach
(
i
=>
{
if
(
!
i
.
backStatus
)
{
arr
.
push
(
i
)
}
})
this
.
staffList
.
data
=
arr
}
}
},
mounted
()
{
let
id
=
localStorage
.
getItem
(
'
checkFeedbackId
'
)
this
.
getInfo
(
id
)
this
.
getStaffData
(
id
)
},
methods
:
{
treeSub
(
data
)
{
console
.
log
(
data
)
},
handleSelectionChange
(
val
)
{
this
.
multipleSelection
=
val
;
},
getInfo
(
id
)
{
//获取表单
this
.
$get
(
'
/feedback/info
'
,
{
id
}).
then
(
res
=>
{
res
.
data
.
timeStart
=
moment
(
res
.
data
.
feedbackTimeStart
).
format
(
'
yyyy-MM-DD HH:mm:ss
'
)
res
.
data
.
timeEnd
=
moment
(
res
.
data
.
feedbackTimeEnd
).
format
(
'
yyyy-MM-DD HH:mm:ss
'
)
this
.
feedbackData
=
res
.
data
console
.
log
(
this
.
feedbackData
)
this
.
Frule
=
formCreate
.
parseJson
(
this
.
feedbackData
.
formContent
)
this
.
Fopthion
=
formCreate
.
parseJson
(
this
.
feedbackData
.
ruleContent
)
})
//题型分析--单选多选
this
.
$get
(
'
/feedback/getOptionSummaryList
'
,
{
feedbackId
:
id
}).
then
(
res
=>
{
console
.
log
(
res
)
res
.
data
.
data
.
forEach
(
i
=>
{
i
.
allCount
=
0
i
.
typeFormat
=
formType
(
i
.
questionType
)
i
.
optionList
.
forEach
(
j
=>
{
i
.
allCount
+=
j
.
optionCount
})
})
this
.
questionArr1
=
res
.
data
.
data
// console.log(this.questionArr1)
})
}
},
getStaffData
(
id
)
{
//人员数据
this
.
$post
(
'
/feedback/getStaffList
'
,
{
feedbackId
:
id
,
size
:
this
.
staff
.
size
,
page
:
this
.
staff
.
page
}).
then
(
res
=>
{
this
.
staff
.
total
=
res
.
data
.
total
res
.
data
.
data
.
forEach
(
i
=>
{
i
.
backTimeF
=
moment
(
i
.
backTime
).
format
(
'
YYYY-MM-DD
'
)
})
this
.
staffList
=
res
.
data
this
.
staffListS
=
res
.
data
.
data
console
.
log
(
this
.
staffList
,
res
)
})
},
//查看人员问卷详情
check
(
data
)
{
console
.
log
(
data
)
this
.
staffInfo
=
data
this
.
drawerStaff
=
1
this
.
$post
(
'
/feedback/answer/list
'
,
{
staffId
:
data
.
staffId
,
feedbackId
:
data
.
feedbackId
,
page
:
1
,
size
:
-
1
}).
then
(
res
=>
{
this
.
staffDetails
=
res
.
data
.
data
console
.
log
(
this
.
staffDetails
)
})
},
//题型分析--输入框
getIntData
(
data
)
{
console
.
log
(
data
)
this
.
drawerAnswerObj
=
data
this
.
drawerAnswer
=
1
this
.
$post
(
'
/feedback/getQuestionAnswerList
'
,
{
questionId
:
data
.
id
,
page
:
1
,
size
:
-
1
}).
then
(
res
=>
{
res
.
data
.
data
.
forEach
(
i
=>
{
console
.
log
(
i
)
i
.
backTimeF
=
moment
(
i
.
backTime
).
format
(
'
YYYY-MM-DD
'
)
})
this
.
drawerAnswerArr
=
res
.
data
.
data
console
.
log
(
this
.
drawerAnswerArr
)
})
},
}
}
</
script
>
...
...
@@ -226,6 +337,10 @@ export default {
margin-top: 15px;
}
.m10 {
margin-top: 10px;
}
.font {
font-size: 16px;
line-height: 1.5;
...
...
@@ -340,12 +455,6 @@ export default {
cursor: pointer;
}
.lBox {
display: flex;
// align-items: center
justify-content: space-between;
}
}
.cRight {
...
...
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