Commit 66367670 authored by 赵啸非's avatar 赵啸非

Merge remote-tracking branch 'origin/master'

parents e55c0539 5471582d
......@@ -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() {
......
......@@ -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,
......
......@@ -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 {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment