Bladeren bron

增加接口

humingbo 2 jaren geleden
bovenliggende
commit
7c248fb0fb
2 gewijzigde bestanden met toevoegingen van 207 en 8 verwijderingen
  1. 23 0
      src/api/meeting/meeting.js
  2. 184 8
      src/views/meeting/meeting.vue

+ 23 - 0
src/api/meeting/meeting.js

@@ -69,5 +69,28 @@ export function deleteMeetingContentById(id){
   })
 }
 
+/**
+ * 保存会议建议
+ * @param data
+ * @returns {*}
+ */
+export function saveMeetingOptionss(data){
+  return request({
+    url: '/meeting/saveMeetingOptionss',
+    method: 'post',
+    data: data
+  })
+}
 
+/**
+ * 点击确认会议--生成任务报告
+ * @param id
+ * @returns {*}
+ */
+export function confirmMeetings(id){
+  return request({
+    url: '/meeting/confirmMeeting?id=' + id,
+    method: 'get'
+  })
+}
 

+ 184 - 8
src/views/meeting/meeting.vue

@@ -56,7 +56,7 @@
         <template scope="scope">
           <!--会议状态,0待开始,1进行中,2已结束-->
           <div v-if="scope.row.status===0" style="color: green">待开始</div>
-          <div v-else-if="scope.row.status===1">进行中</div>
+          <div v-else-if="scope.row.status===1" style="color: #3A71A8">进行中</div>
           <div v-else>已结束</div>
         </template>
       </el-table-column>
@@ -80,8 +80,11 @@
       </el-table-column>
       <el-table-column label="操作" prop="op" width="150">
         <template slot-scope="scope">
-          <el-button size="mini" type="primary" @click="handleEdit(scope.row)">编辑</el-button>
+
+          <el-button v-if="scope.row.status===0"  size="mini" type="primary" @click="handleEdit(scope.row)">编辑</el-button>
           <el-button v-if="scope.row.status===0" size="mini" type="danger" @click="deleteMeeting( scope.row)">删除</el-button>
+          <el-button v-if="scope.row.status===2" type="primary" size="mini" @click="confirmMeeting(scope.row)">结果确认</el-button>
+          <el-button v-if="scope.row.status===1" type="primary" size="mini" @click="meetingDetail(scope.row)">会议详情</el-button>
         </template>
       </el-table-column>
     </el-table>
@@ -192,6 +195,76 @@
       </div>
     </el-dialog>
 
+    <el-dialog :visible.sync="projectMeetingDetailVisble" width="95%" @click="closeProjectMeetingDailog" >
+      <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>
+
+      <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-column label="会议问题" prop="question">
+          <template scope="scope">
+            <el-input size="mini"  v-model="scope.row.question"></el-input>
+          </template>
+        </el-table-column>
+        <el-table-column label="会议方案" prop="optionss">
+          <template scope="scope">
+            <el-input size="mini" v-model="scope.row.optionss"></el-input>
+          </template>
+
+        </el-table-column>
+        <el-table-column label="执行人" width="180">
+          <template scope="scope">
+            <el-input size="mini" v-model="scope.row.executorName"  readonly @keyup.enter.native="openUsers1('executorName',scope.row)">
+              <el-button @click="openUsers1('executorName',scope.row)" icon="el-icon-search" slot="append"></el-button>
+            </el-input>
+          </template>
+        </el-table-column>
+        <el-table-column label="周期时间" width="420">
+          <template slot-scope="scope">
+            <el-date-picker size="mini"
+              v-model="scope.row.times"
+              value-format="yyyy-MM-dd"
+              format="yyyy-MM-dd"
+              type="datetimerange"
+              range-separator="至"
+              start-placeholder="开始日期"
+              end-placeholder="结束日期">
+            </el-date-picker>
+          </template>
+        </el-table-column>
+      </el-table>
+      <div slot="footer" class="dialog-footer">
+        <el-button size="mini" @click="closeProjectMeetingDailog">取消</el-button>
+        <el-button size="mini" type="primary" class="title" @click="submitMeetingOptionsForm('editForm')">确定</el-button>
+      </div>
+    </el-dialog>
+
   </div>
 </template>
 
@@ -202,13 +275,14 @@ import {
   getMeetingsByPage,
   deleteMeeting,
   getMeetingDetailsById,
-  deleteMeetingContentById
+  deleteMeetingContentById, saveMeetingOptionss, confirmMeetings
 } from '@/api/meeting/meeting'
 import { getDeptUserTree } from '@/api/system/user'
 export default {
   name: 'Meeting',
   data() {
     return {
+      projectMeetingDetailVisble:false,
       tableData: [],
       pageparm: {
         current: 1,
@@ -247,7 +321,32 @@ export default {
       usersVisble:false,
       userList:[],
       users1Visble:false,
-      users1Flag:''
+      users1Flag:'',
+      pro:{
+        id:'',
+        meetingName:'',
+        meetingType:'',
+        external:null,
+        meetingPlace:'',
+        times:'',
+        outAttendees:'',
+        innerAttendees:'',
+        emcee:'',
+        recorder:'',
+        meetingContents:[{
+          id:null,
+          meetingId:null,
+          content:'',
+          question:'',
+          optionss:'',
+          executorName:'',
+          executorId:null,
+          beginTime:null,
+          endTime:null,
+          times:[]
+        }],
+        row:null,
+      }
     }
   },
   // 注册组件
@@ -337,6 +436,61 @@ export default {
         this.getData(this.formInline);
       })
     },
+    confirmMeeting(row){
+      let id=row.id;
+      confirmMeetings(id).then(res=>{
+        this.$message({
+          message: '操作成功!',
+          type: 'success'
+        });
+        this.getData(this.formInline);
+      });
+
+    },
+    meetingDetail(row){
+     let meetingType=row.meetingType
+      if(meetingType===2){
+        this.projectMeetingDetailVisble=true
+        this.pro.meetingName=row.meetingName
+        this.pro.outAttendees=row.outAttendees
+        this.pro.innerAttendees=row.innerAttendees
+        this.pro.recorder=row.recorder
+        this.pro.times=row.beginTime+'至'+row.endTime
+        this.pro.meetingPlace=row.meetingPlace
+        let meetingType=row.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=row.external
+        if(external===0){
+          this.pro.external='内部会议'
+        }else{
+          this.pro.external='外部会议'
+        }
+        let innerAttendees=JSON.parse(row.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
+        let meetingId=row.id
+        getMeetingDetailsById(meetingId).then(res => {
+          let data=res.data.meetingContents
+          this.pro.meetingContents=data
+        });
+
+      }
+    },
     openUsers(){
       this.usersVisble=true
     },
@@ -382,9 +536,11 @@ export default {
     closeUser1Dialog(){
       this.users1Visble=false
     },
-    openUsers1(data){
+    openUsers1(data,row){
       this.users1Visble=true
       this.users1Flag=data
+      this.pro.row=row
+
     },
     submitUser1Form(){
       let node=this.$refs.dept1.getCurrentNode();
@@ -405,7 +561,15 @@ export default {
       let user1Flag=this.users1Flag;
       if(user1Flag==='emcee'){
         this.editForm.emcee=node.name
-      }else{
+      }else if(user1Flag==='executorName'){
+        let row=this.pro.row
+        row.executorName=node.name
+        row.executorId=node.id
+        this.pro.meetingContents.executorName=node.name
+        this.pro.meetingContents.executorId=node.id
+
+      }
+      else{
         this.editForm.recorder=node.name
       }
 
@@ -417,7 +581,7 @@ export default {
         this.editForm=data
         let users=JSON.parse(data.innerAttendees)
         this.editForm.innerAttendees=''
-        for(var i=0;i<users.length;i++){
+        for(let i=0;i<users.length;i++){
           this.editForm.innerAttendees+=users[i].name+','
         }
         this.editForm.innerAttendees=  this.editForm.innerAttendees.substring(0,this.editForm.innerAttendees.length-1)
@@ -437,7 +601,19 @@ export default {
       let search=this.formInline
       search.meetingEternal=val;
       this.getData(search)
-
+    },
+    closeProjectMeetingDailog(){
+      this.projectMeetingDetailVisble=false;
+    },
+    submitMeetingOptionsForm(){
+      let data=this.pro.meetingContents;
+      saveMeetingOptionss(data).then(res =>{
+        this.$message({
+          message: '操作成功!',
+          type: 'info'
+        });
+        this.closeProjectMeetingDailog();
+      });
     }
   }
 }