|
|
@@ -0,0 +1,229 @@
|
|
|
+<template>
|
|
|
+ <div>
|
|
|
+ <el-dialog :visible.sync="projectMeetingDetailVisble" width="95%" :close-on-click-modal="false">
|
|
|
+ <el-descriptions title="会议记录详情" border :column="2">
|
|
|
+ <el-descriptions-item label="会议主题">
|
|
|
+ {{ pro.meetingName }}
|
|
|
+ </el-descriptions-item>
|
|
|
+ <el-descriptions-item label="会议类别">
|
|
|
+ {{ pro.external }}
|
|
|
+ </el-descriptions-item>
|
|
|
+ <el-descriptions-item label="会议类型">
|
|
|
+ {{ pro.meetingType }}
|
|
|
+ </el-descriptions-item>
|
|
|
+ <el-descriptions-item label="会议地点">
|
|
|
+ {{ pro.meetingPlace }}
|
|
|
+ </el-descriptions-item>
|
|
|
+ <el-descriptions-item label="会议时间">
|
|
|
+ {{ pro.times }}
|
|
|
+ </el-descriptions-item>
|
|
|
+ <el-descriptions-item label="外部参会人员" v-if="pro.outAttendees!=''">
|
|
|
+ {{ pro.outAttendees }}
|
|
|
+ </el-descriptions-item>
|
|
|
+ <el-descriptions-item label="记录人员" :span="2">
|
|
|
+ {{ pro.recorder }}
|
|
|
+ </el-descriptions-item>
|
|
|
+ <el-descriptions-item label="内部参会人员">
|
|
|
+ {{ pro.innerAttendees }}
|
|
|
+ </el-descriptions-item>
|
|
|
+ <el-descriptions-item label="参会情况">
|
|
|
+ {{ pro.remark }}
|
|
|
+ </el-descriptions-item>
|
|
|
+ </el-descriptions>
|
|
|
+
|
|
|
+ <el-table style="width: 100%;margin: 0" border stripe :data="pro.meetingContents">
|
|
|
+ <el-table-column label="序号" width="50" type="index"></el-table-column>
|
|
|
+ <el-table-column label="会议内容" prop="content"></el-table-column>
|
|
|
+ <el-table-column label="会议问题" prop="question"></el-table-column>
|
|
|
+ <el-table-column label="会议方案" prop="optionss"></el-table-column>
|
|
|
+ <el-table-column label="执行人" prop="executorName" width="100"></el-table-column>
|
|
|
+ <el-table-column label="周期时间" width="240">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <span>{{ scope.row.beginTime + '至' + scope.row.endTime }}</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ </el-table>
|
|
|
+ <div slot="footer" class="dialog-footer">
|
|
|
+ <el-button v-if="pro.status!==0" type="success" size="mini" @click="confirmMeeting(pro)">会议结果确认
|
|
|
+ </el-button>
|
|
|
+ <el-button size="mini" @click="closeProjectMeetingDailog">取消</el-button>
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
+
|
|
|
+ <el-dialog :visible.sync="otherMeetingDetailVisble" width="95%" :close-on-click-modal="false">
|
|
|
+ <el-descriptions title="会议记录详情" border :column="2">
|
|
|
+ <el-descriptions-item label="会议主题">
|
|
|
+ {{ pro.meetingName }}
|
|
|
+ </el-descriptions-item>
|
|
|
+ <el-descriptions-item label="会议类别">
|
|
|
+ {{ pro.external }}
|
|
|
+ </el-descriptions-item>
|
|
|
+ <el-descriptions-item label="会议类型">
|
|
|
+ {{ pro.meetingType }}
|
|
|
+ </el-descriptions-item>
|
|
|
+ <el-descriptions-item label="会议地点">
|
|
|
+ {{ pro.meetingPlace }}
|
|
|
+ </el-descriptions-item>
|
|
|
+ <el-descriptions-item label="会议时间">
|
|
|
+ {{ pro.times }}
|
|
|
+ </el-descriptions-item>
|
|
|
+ <el-descriptions-item label="外部参会人员" v-if="pro.outAttendees!=''">
|
|
|
+ {{ pro.outAttendees }}
|
|
|
+ </el-descriptions-item>
|
|
|
+ <el-descriptions-item label="记录人员" :span="2">
|
|
|
+ {{ pro.recorder }}
|
|
|
+ </el-descriptions-item>
|
|
|
+ <el-descriptions-item label="内部参会人员">
|
|
|
+ {{ pro.innerAttendees }}
|
|
|
+ </el-descriptions-item>
|
|
|
+ <el-descriptions-item label="参会情况">
|
|
|
+ {{ pro.remark }}
|
|
|
+ </el-descriptions-item>
|
|
|
+ </el-descriptions>
|
|
|
+
|
|
|
+ <el-table style="width: 100%;margin: 0" border stripe :data="pro.meetingContents">
|
|
|
+ <el-table-column label="序号" width="60" type="index"></el-table-column>
|
|
|
+ <el-table-column label="会议内容" prop="content"></el-table-column>
|
|
|
+ </el-table>
|
|
|
+ <div slot="footer" class="dialog-footer">
|
|
|
+ <el-button size="mini" @click="closeotherMeetingDailog">取消</el-button>
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
+
|
|
|
+
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+
|
|
|
+<script>
|
|
|
+import {getMeetingDetailsById, confirmMeetings} from "@/api/meeting/meeting";
|
|
|
+
|
|
|
+export default {
|
|
|
+ name: "MeetingDetail",
|
|
|
+ props: {
|
|
|
+ detailForm: {
|
|
|
+ type: Object,
|
|
|
+ default: {}
|
|
|
+ }
|
|
|
+ },
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ projectMeetingDetailVisble: false,
|
|
|
+ otherMeetingDetailVisble: false,
|
|
|
+ pro: {
|
|
|
+ id: '',
|
|
|
+ meetingName: '',
|
|
|
+ meetingType: '',
|
|
|
+ external: null,
|
|
|
+ meetingPlace: '',
|
|
|
+ times: '',
|
|
|
+ outAttendees: '',
|
|
|
+ innerAttendees: '',
|
|
|
+ emcee: '',
|
|
|
+ recorder: '',
|
|
|
+ remark: '',
|
|
|
+ status: null,
|
|
|
+ meetingContents: [{
|
|
|
+ id: null,
|
|
|
+ meetingId: null,
|
|
|
+ content: '',
|
|
|
+ question: '',
|
|
|
+ optionss: '',
|
|
|
+ executorName: '',
|
|
|
+ executorId: null,
|
|
|
+ beginTime: null,
|
|
|
+ endTime: null,
|
|
|
+ times: []
|
|
|
+ }],
|
|
|
+ row: null,
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ watch: {
|
|
|
+ detailForm() {
|
|
|
+ this.initData()
|
|
|
+ }
|
|
|
+ },
|
|
|
+ created() {
|
|
|
+ this.initData()
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ initData() {
|
|
|
+ if (!this.detailForm.id) {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ let meetingType = this.detailForm.meetingType
|
|
|
+
|
|
|
+ if (meetingType !== 1) {
|
|
|
+ if (this.detailForm.meetingType == 2) {
|
|
|
+ this.projectMeetingDetailVisble = true
|
|
|
+ } else {
|
|
|
+ this.otherMeetingDetailVisble = true
|
|
|
+ }
|
|
|
+
|
|
|
+ this.pro.meetingName = this.detailForm.meetingName
|
|
|
+ this.pro.outAttendees = this.detailForm.outAttendees
|
|
|
+ this.pro.innerAttendees = this.detailForm.innerAttendees
|
|
|
+ this.pro.recorder = this.detailForm.recorder
|
|
|
+ this.pro.times = this.detailForm.beginTime + '至' + this.detailForm.endTime
|
|
|
+ this.pro.meetingPlace = this.detailForm.meetingPlace
|
|
|
+ let meetingType = this.detailForm.meetingType
|
|
|
+ //1-周例会,2-项目会议,3-实施会议,4-其他会议
|
|
|
+ let meetingTypeNames = '';
|
|
|
+ if (meetingType === 1) {
|
|
|
+ meetingTypeNames = '周例会'
|
|
|
+ } else if (meetingType === 2) {
|
|
|
+ meetingTypeNames = '项目会议'
|
|
|
+ } else if (meetingType === 3) {
|
|
|
+ meetingTypeNames = '实施会议'
|
|
|
+ } else {
|
|
|
+ meetingTypeNames = '其他会议'
|
|
|
+ }
|
|
|
+ this.pro.meetingType = meetingTypeNames
|
|
|
+ let external = this.detailForm.external
|
|
|
+ if (external === 0) {
|
|
|
+ this.pro.external = '内部会议'
|
|
|
+ } else {
|
|
|
+ this.pro.external = '外部会议'
|
|
|
+ }
|
|
|
+ let innerAttendees = JSON.parse(this.detailForm.innerAttendees);
|
|
|
+ let innerPeople = '';
|
|
|
+ for (let i = 0; i < innerAttendees.length; i++) {
|
|
|
+ innerPeople += innerAttendees[i].name + '、'
|
|
|
+ }
|
|
|
+ innerPeople = innerPeople.substring(0, innerPeople.length - 1);
|
|
|
+ this.pro.innerAttendees = innerPeople
|
|
|
+ this.pro.remark = this.detailForm.remark
|
|
|
+ this.pro.status = this.detailForm.status
|
|
|
+ let meetingId = this.detailForm.id
|
|
|
+ this.pro.id = this.detailForm.id
|
|
|
+ getMeetingDetailsById(meetingId).then(res => {
|
|
|
+ let data = res.data.meetingContents
|
|
|
+ this.pro.meetingContents = data
|
|
|
+ });
|
|
|
+ }
|
|
|
+ },
|
|
|
+ closeProjectMeetingDailog() {
|
|
|
+ this.projectMeetingDetailVisble = false;
|
|
|
+ },
|
|
|
+ closeotherMeetingDailog() {
|
|
|
+ this.otherMeetingDetailVisble = false;
|
|
|
+ },
|
|
|
+ confirmMeeting(data) {
|
|
|
+ confirmMeetings(data.id).then(res => {
|
|
|
+ if (res.code === '2000') {
|
|
|
+ this.$message({
|
|
|
+ message: '操作成功!',
|
|
|
+ type: 'success'
|
|
|
+ });
|
|
|
+ this.projectMeetingDetailVisble = false;
|
|
|
+ this.$emit('getTodoMeetingList')
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+</script>
|
|
|
+
|
|
|
+<style scoped>
|
|
|
+
|
|
|
+</style>
|