|
|
@@ -1,48 +1,48 @@
|
|
|
<template>
|
|
|
- <div class="app-container" >
|
|
|
+ <div class="app-container">
|
|
|
<div style="display: flex;justify-content: space-between;margin-bottom: 8px">
|
|
|
<div style="font-size: 24px">{{ m.meetingName }}</div>
|
|
|
<el-button size="mini" @click="exportPdf" icon="el-icon-download" style="margin-right: 20px">导出</el-button>
|
|
|
</div>
|
|
|
- <el-descriptions title="" :column="2" :size="size" border>
|
|
|
+ <el-descriptions title="" :column="2" :size="size" border>
|
|
|
<el-descriptions-item>
|
|
|
<template slot="label">
|
|
|
<i class="el-icon-user"></i>
|
|
|
- 会议时间
|
|
|
+ 会议时间
|
|
|
</template>
|
|
|
- {{m.beginTime}}至{{m.endTime}}
|
|
|
+ {{ m.beginTime }}至{{ m.endTime }}
|
|
|
</el-descriptions-item>
|
|
|
<el-descriptions-item>
|
|
|
<template slot="label">
|
|
|
<i class="el-icon-user"></i>
|
|
|
- 会议主持人
|
|
|
+ 会议主持人
|
|
|
</template>
|
|
|
- {{m.emcee}}
|
|
|
+ {{ m.emcee }}
|
|
|
</el-descriptions-item>
|
|
|
<el-descriptions-item>
|
|
|
<template slot="label">
|
|
|
<i class="el-icon-location-outline"></i>
|
|
|
会议地点
|
|
|
</template>
|
|
|
- {{m.meetingPlace}}
|
|
|
+ {{ m.meetingPlace }}
|
|
|
</el-descriptions-item>
|
|
|
<el-descriptions-item>
|
|
|
<template slot="label">
|
|
|
<i class="el-icon-user"></i>
|
|
|
会议记录人
|
|
|
</template>
|
|
|
- {{m.recorder}}
|
|
|
+ {{ m.recorder }}
|
|
|
</el-descriptions-item>
|
|
|
<el-descriptions-item :span="2">
|
|
|
<template slot="label">
|
|
|
<i class="el-icon-user"></i>
|
|
|
- 参会人员
|
|
|
+ 参会人员
|
|
|
</template>
|
|
|
<span v-if="m.innerAttendees!=''" v-for="(item,index) in JSON.parse(m.innerAttendees)">
|
|
|
- {{item.name}}
|
|
|
+ {{ item.name }}
|
|
|
</span>
|
|
|
</el-descriptions-item>
|
|
|
- <el-descriptions-item :span="2" >
|
|
|
+ <el-descriptions-item :span="2">
|
|
|
<template slot="label">
|
|
|
<i class="el-icon-office-building"></i>
|
|
|
参会情况
|
|
|
@@ -52,18 +52,18 @@
|
|
|
</el-descriptions>
|
|
|
<el-table
|
|
|
style="width: 100%" border stripe :data="tableData" :highlight-current-row="true"
|
|
|
- :span-method="objectSpanMethod" >
|
|
|
- <el-table-column prop="group" label="序号" width="60" align="center">
|
|
|
+ :span-method="objectSpanMethod">
|
|
|
+ <el-table-column prop="group" label="序号" width="60" align="center">
|
|
|
</el-table-column>
|
|
|
<el-table-column
|
|
|
prop="userName"
|
|
|
label="姓名" align="center"
|
|
|
width="120">
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="本周工作总结" min-width="450">
|
|
|
- <el-table-column label="工作内容" prop="taskName">
|
|
|
+ <el-table-column label="本周工作总结" min-width="450">
|
|
|
+ <el-table-column label="工作内容" prop="taskName">
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="是否上周遗留" width="120" prop="lastWeekFlag">
|
|
|
+ <el-table-column label="是否上周遗留" width="120" prop="lastWeekFlag">
|
|
|
<template slot-scope="scope">
|
|
|
<div v-if="scope.row.lastWeekFlag==='0'" style="color: darkred">是</div>
|
|
|
<div v-else="scope.row.lastWeekFlag==='1'">否</div>
|
|
|
@@ -71,11 +71,12 @@
|
|
|
</el-table-column>
|
|
|
<el-table-column label="完成情况说明" prop="progressValue" width="150">
|
|
|
<template slot-scope="scope">
|
|
|
- <div style="color: darkgreen" @click="getTaskScheduleRemarks(scope.row)">{{scope.row.progressValue}}%</div>
|
|
|
+ <div style="color: darkgreen" @click="getTaskScheduleRemarks(scope.row)">{{ scope.row.progressValue }}%
|
|
|
+ </div>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
</el-table-column>
|
|
|
- <el-table-column prop="workplan" label="下周工作计划" >
|
|
|
+ <el-table-column prop="workplan" label="下周工作计划">
|
|
|
<el-table-column label="工作内容与完成时间" prop="planContent">
|
|
|
<template slot-scope="scope">
|
|
|
<div v-html="scope.row.planContent">
|
|
|
@@ -83,24 +84,25 @@
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
</el-table-column>
|
|
|
- <el-table-column prop="scores" label="评分" width="150" align="center">
|
|
|
+ <el-table-column prop="scores" label="评分" width="150" align="center">
|
|
|
<template slot-scope="scope">
|
|
|
- <el-input-number size="mini" :precision="2" :step="0.1" :max="10" min="5" v-model="scope.row.score" @change="workComment(scope.row)">
|
|
|
- {{scope.row.score}}
|
|
|
- </el-input-number>
|
|
|
+ <el-input-number size="mini" :precision="2" :step="0.1" :max="10" min="5" v-model="scope.row.score"
|
|
|
+ @change="workComment(scope.row)">
|
|
|
+ {{ scope.row.score }}
|
|
|
+ </el-input-number>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column prop="remarks" label="备注" >
|
|
|
+ <el-table-column prop="remarks" label="备注">
|
|
|
<template slot-scope="scope">
|
|
|
- <el-input v-model="scope.row.remark" type="textarea"
|
|
|
- :autosize="{ minRows: 4}" @change="workComment(scope.row)">
|
|
|
+ <el-input v-model="scope.row.remark" type="textarea"
|
|
|
+ :autosize="{ minRows: 4}" @change="workComment(scope.row)">
|
|
|
|
|
|
- </el-input>
|
|
|
+ </el-input>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
<el-table-column prop="workComments" label="工作评论">
|
|
|
<template slot-scope="scope">
|
|
|
- <el-input v-model="scope.row.workComment" type="textarea"
|
|
|
+ <el-input v-model="scope.row.workComment" type="textarea"
|
|
|
:autosize="{ minRows: 4}" @change="workComment(scope.row)">
|
|
|
|
|
|
</el-input>
|
|
|
@@ -112,8 +114,8 @@
|
|
|
:title="taskFeedbackTitle"
|
|
|
:visible.sync="taskFeedbackVisible"
|
|
|
width="30%"
|
|
|
- >
|
|
|
- <div v-html="taskFeedbackContent"></div>
|
|
|
+ :close-on-click-modal="false">
|
|
|
+ <div v-html="taskFeedbackContent"></div>
|
|
|
<span slot="footer" class="dialog-footer">
|
|
|
<el-button @click="taskFeedbackVisible = false" size="mini">取 消</el-button>
|
|
|
<el-button type="primary" @click="taskFeedbackVisible = false" size="mini">确 定</el-button>
|
|
|
@@ -123,7 +125,7 @@
|
|
|
</template>
|
|
|
<script>
|
|
|
|
|
|
-import { getMeetingByWeekss, getTaskScheduleRemark, getWeeksRecordsByWeeks, workComments } from '@/api/meeting/meeting'
|
|
|
+import {getMeetingByWeekss, getTaskScheduleRemark, getWeeksRecordsByWeeks, workComments} from '@/api/meeting/meeting'
|
|
|
|
|
|
import {downloadPdf} from "@/api/meeting/meeting";
|
|
|
|
|
|
@@ -132,16 +134,16 @@ export default {
|
|
|
name: 'weeklyRecords',
|
|
|
data() {
|
|
|
return {
|
|
|
- taskFeedbackTitle:'',
|
|
|
- taskFeedbackVisible:false,
|
|
|
- taskFeedbackContent:'',
|
|
|
- title : '技术部周会',
|
|
|
+ taskFeedbackTitle: '',
|
|
|
+ taskFeedbackVisible: false,
|
|
|
+ taskFeedbackContent: '',
|
|
|
+ title: '技术部周会',
|
|
|
size: '',
|
|
|
- tableData:[],
|
|
|
- meetingId:null,
|
|
|
- weeks:null,
|
|
|
- m:{
|
|
|
- id:null,
|
|
|
+ tableData: [],
|
|
|
+ meetingId: null,
|
|
|
+ weeks: null,
|
|
|
+ m: {
|
|
|
+ id: null,
|
|
|
meetingName: '',
|
|
|
external: 0,
|
|
|
meetingType: 1,
|
|
|
@@ -157,12 +159,12 @@ export default {
|
|
|
status: 1,
|
|
|
weeks: 46
|
|
|
},
|
|
|
- workContents:{
|
|
|
- col:0,
|
|
|
- row:0
|
|
|
+ workContents: {
|
|
|
+ col: 0,
|
|
|
+ row: 0
|
|
|
},
|
|
|
mergeObj: {}, // 用来记录需要合并行的下标
|
|
|
- mergeArr: ['group','userName','planContent','scores','remarks','workComments'], // 表格中的列名
|
|
|
+ mergeArr: ['group', 'userName', 'planContent', 'scores', 'remarks', 'workComments'], // 表格中的列名
|
|
|
|
|
|
|
|
|
}
|
|
|
@@ -171,21 +173,21 @@ export default {
|
|
|
|
|
|
},
|
|
|
mounted() {
|
|
|
- this.meetingId=this.$route.query.meetingId;
|
|
|
- this.weeks=this.$route.query.weeks;
|
|
|
+ this.meetingId = this.$route.query.meetingId;
|
|
|
+ this.weeks = this.$route.query.weeks;
|
|
|
this.getData()
|
|
|
},
|
|
|
methods: {
|
|
|
getData() {
|
|
|
- let meetingId=this.meetingId
|
|
|
- let weeks=this.weeks
|
|
|
- if(meetingId!=null && weeks!=null){
|
|
|
- getWeeksRecordsByWeeks(meetingId,weeks).then(res => {
|
|
|
- this.tableData=res.data.workContent
|
|
|
+ let meetingId = this.meetingId
|
|
|
+ let weeks = this.weeks
|
|
|
+ if (meetingId != null && weeks != null) {
|
|
|
+ getWeeksRecordsByWeeks(meetingId, weeks).then(res => {
|
|
|
+ this.tableData = res.data.workContent
|
|
|
this.getSpanArr(this.tableData);
|
|
|
- this.m=res.data.meeting
|
|
|
+ this.m = res.data.meeting
|
|
|
})
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
//获取当前周会会议id与所属周数
|
|
|
getMeetingByWeekss().then(res => {
|
|
|
let data = res.data;
|
|
|
@@ -205,10 +207,10 @@ export default {
|
|
|
|
|
|
},
|
|
|
|
|
|
- objectSpanMethod({ row, column, rowIndex, columnIndex }) {
|
|
|
- if(this.mergeArr.indexOf(column.property) !== -1) {
|
|
|
+ objectSpanMethod({row, column, rowIndex, columnIndex}) {
|
|
|
+ if (this.mergeArr.indexOf(column.property) !== -1) {
|
|
|
// 判断其值是不是为0
|
|
|
- if(this.mergeObj[column.property][rowIndex]) {
|
|
|
+ if (this.mergeObj[column.property][rowIndex]) {
|
|
|
return [this.mergeObj[column.property][rowIndex], 1]
|
|
|
} else {
|
|
|
// 如果为0则为需要合并的行
|
|
|
@@ -224,12 +226,12 @@ export default {
|
|
|
|
|
|
data.forEach((item, index) => {
|
|
|
// index == 0表示数据为第一行,直接 push 一个 1
|
|
|
- if(index === 0) {
|
|
|
+ if (index === 0) {
|
|
|
this.mergeObj[key].push(1);
|
|
|
//item.group=index;
|
|
|
} else {
|
|
|
// 判断当前行是否与上一行其值相等 如果相等 在 count 记录的位置其值 +1 表示当前行需要合并 并push 一个 0 作为占位
|
|
|
- if(item[key] === data[index - 1][key]) {
|
|
|
+ if (item[key] === data[index - 1][key]) {
|
|
|
this.mergeObj[key][count] += 1;
|
|
|
this.mergeObj[key].push(0);
|
|
|
//item.group = this.tableData[index - 1].group;
|
|
|
@@ -237,62 +239,62 @@ export default {
|
|
|
// 如果当前行和上一行其值不相等
|
|
|
count = index; // 记录当前位置
|
|
|
this.mergeObj[key].push(1); // 重新push 一个 1
|
|
|
- // item.group = this.tableData[index - 1].group + 1; //如果不一样 将组号设置为上一个数据的组号加1
|
|
|
+ // item.group = this.tableData[index - 1].group + 1; //如果不一样 将组号设置为上一个数据的组号加1
|
|
|
}
|
|
|
}
|
|
|
})
|
|
|
|
|
|
})
|
|
|
},
|
|
|
- workComment(row){
|
|
|
- let scoreId=row.scoreId
|
|
|
- let score=row.score
|
|
|
- let remark=row.remark
|
|
|
- let meetingId=row.meetingId
|
|
|
- let weeks=row.weeks;
|
|
|
- let userId=row.executor
|
|
|
- let workComment=row.workComment
|
|
|
- if(scoreId===meetingId){
|
|
|
- scoreId=null
|
|
|
+ workComment(row) {
|
|
|
+ let scoreId = row.scoreId
|
|
|
+ let score = row.score
|
|
|
+ let remark = row.remark
|
|
|
+ let meetingId = row.meetingId
|
|
|
+ let weeks = row.weeks;
|
|
|
+ let userId = row.executor
|
|
|
+ let workComment = row.workComment
|
|
|
+ if (scoreId === meetingId) {
|
|
|
+ scoreId = null
|
|
|
}
|
|
|
- let data={
|
|
|
- id:scoreId,
|
|
|
- score:score,
|
|
|
- remark:remark,
|
|
|
- weeks:weeks,
|
|
|
- userId:userId,
|
|
|
- workComment:workComment
|
|
|
+ let data = {
|
|
|
+ id: scoreId,
|
|
|
+ score: score,
|
|
|
+ remark: remark,
|
|
|
+ weeks: weeks,
|
|
|
+ userId: userId,
|
|
|
+ workComment: workComment
|
|
|
}
|
|
|
|
|
|
workComments(data).then(res => {
|
|
|
this.$message({
|
|
|
message: '操作成功!',
|
|
|
- type: 'info'
|
|
|
+ type: 'success'
|
|
|
});
|
|
|
this.getData()
|
|
|
});
|
|
|
|
|
|
},
|
|
|
- getTaskScheduleRemarks(row){
|
|
|
- this.taskFeedbackTitle=row.userName+":"+row.taskName
|
|
|
+ getTaskScheduleRemarks(row) {
|
|
|
+ this.taskFeedbackTitle = row.userName + ":" + row.taskName
|
|
|
|
|
|
- getTaskScheduleRemark(row.taskId).then(res =>{
|
|
|
- let content=res.data;
|
|
|
- let feedbackContent='';
|
|
|
- let j=1;
|
|
|
- for(let i=0;i<content.length;i++){
|
|
|
- feedbackContent+=j+":"+ content[i].description+" "+content[i].value+"%"+"  "+'</br>'
|
|
|
+ getTaskScheduleRemark(row.taskId).then(res => {
|
|
|
+ let content = res.data;
|
|
|
+ let feedbackContent = '';
|
|
|
+ let j = 1;
|
|
|
+ for (let i = 0; i < content.length; i++) {
|
|
|
+ feedbackContent += j + ":" + content[i].description + " " + content[i].value + "%" + "  " + '</br>'
|
|
|
j++;
|
|
|
}
|
|
|
- if(content.length===0){
|
|
|
- feedbackContent='暂无反馈'
|
|
|
+ if (content.length === 0) {
|
|
|
+ feedbackContent = '暂无反馈'
|
|
|
}
|
|
|
- this.taskFeedbackContent=feedbackContent
|
|
|
+ this.taskFeedbackContent = feedbackContent
|
|
|
});
|
|
|
- this.taskFeedbackVisible=true
|
|
|
+ this.taskFeedbackVisible = true
|
|
|
},
|
|
|
exportPdf() {
|
|
|
- downloadPdf(this.meetingId,this.weeks)
|
|
|
+ downloadPdf(this.meetingId, this.weeks)
|
|
|
},
|
|
|
}
|
|
|
|