Quellcode durchsuchen

Merge remote-tracking branch 'origin/master' into master

ysc vor 1 Jahr
Ursprung
Commit
99d60d1fd6

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

@@ -259,3 +259,15 @@ export function editMeetingContent(data){
   })
 }
 
+/**
+ * 根据会议ID获取会议内容
+ * @param id
+ * @returns {*}
+ */
+export function getMeetingContentsByMeetingId(id){
+  return request({
+    url: '/meeting/getMeetingContentsByMeetingId?meetingId='+id,
+    method: 'get'
+  })
+}
+

+ 6 - 1
src/views/enforceflow/enforceflow.vue

@@ -1046,7 +1046,12 @@ export default {
       this.enforceFlowId = row.id
       this.enforceFlowTitle = row.name + "实施流程明细"
       let step = row.act.step
-      if (step === undefined) {
+      let steps=row.step
+      if(step === undefined){
+        step=steps
+        this.maxStep=step
+      }
+      if (step === undefined && steps===undefined) {
         step = 12
         this.maxStep = 12
       }

+ 29 - 19
src/views/meeting/meeting.vue

@@ -31,15 +31,12 @@
           <el-button icon="el-icon-refresh" @click="resetSearch()">重置</el-button>
         </el-form-item>
       </el-form>
-
       <el-row :gutter="10" style="margin-bottom:8px">
         <el-col :span="1.5">
           <el-button type="success" icon="el-icon-plus" @click="createMeeting">创建会议</el-button>
         </el-col>
       </el-row>
-
     </div>
-
     <el-table
       :data="tableData"
       border
@@ -51,9 +48,23 @@
       </el-table-column>
       <el-table-column label="会议主题" prop="meetingName">
       </el-table-column>
-
       <el-table-column label="会议地点" prop="meetingPlace" width="120">
       </el-table-column>
+      <el-table-column label="会议内容" prop="meetingContent" width="80">
+        <scope slot-scope="scope">
+          <el-popover
+            placement="bottom"
+            :title="meetingTitle"
+            width="600"
+            trigger="click">
+            <el-table :data="meetingContents" border stripe>
+              <el-table-column width="60" type="index" label="序号"></el-table-column>
+              <el-table-column min-width="300" property="content" label="内容"></el-table-column>
+            </el-table>
+            <span style="color: blue" slot="reference" @click="searchMeetingContent(scope.row)">会议内容</span>
+          </el-popover>
+        </scope>
+      </el-table-column>
       <el-table-column prop="address" label="参会人员" :show-overflow-tooltip="true">
         <template slot-scope="scope">
           <span>{{ scope.row.outAttendees }}</span>
@@ -113,7 +124,7 @@
           </el-button>
           <el-button v-if="scope.row.status===0" size="mini" type="success" @click="startMeeting(scope.row)">开始会议
           </el-button>
-          <el-button v-if="scope.row.status===1" size="mini" type="warning" @click="endMeetingClick(scope.row)">结束会议
+          <el-button v-if="scope.row.status===1" v-show="false" size="mini" type="warning" @click="endMeetingClick(scope.row)">结束会议
           </el-button>
           <el-button v-if="scope.row.status!==0 " type="success" size="mini" @click="meetingDetail(scope.row)">会议详情
           </el-button>
@@ -166,17 +177,6 @@
         <el-form-item label="会议地点:" prop="meetingPlace" :rules="[{required:true,message: '请输入会议地点', trigger: 'blur'}]">
           <el-input size="mini" v-model="editForm.meetingPlace"></el-input>
         </el-form-item>
-        <!--        <el-form-item v-show="false" label="会议时间:">-->
-        <!--          <el-date-picker-->
-        <!--            v-model="editForm.time"-->
-        <!--            value-format="yyyy-MM-dd HH:mm:ss"-->
-        <!--            format="yyyy-MM-dd HH:mm:ss"-->
-        <!--            type="datetimerange"-->
-        <!--            range-separator="至"-->
-        <!--            start-placeholder="开始日期"-->
-        <!--            end-placeholder="结束日期">-->
-        <!--          </el-date-picker>-->
-        <!--        </el-form-item>-->
         <el-form-item label="会议时间:" prop="time">
           <el-date-picker
             v-model="editForm.beginTime"
@@ -445,7 +445,7 @@ import {
   startMeetingById,
   meetingAuthById,
   meetingDeleteAuth,
-  endMeeting, editMeetingContent
+  endMeeting, editMeetingContent, getMeetingContentsByMeetingId
 } from '@/api/meeting/meeting'
 import {getDeptUserTree} from '@/api/system/user'
 import {getProjectList} from "@/api/task/project";
@@ -546,8 +546,10 @@ export default {
           endTime: null,
           times: []
         }],
-        row: null,
-      }
+        row: null
+      },
+      meetingContents:[],
+      meetingTitle:''
     }
   },
   // 注册组件
@@ -1115,6 +1117,14 @@ export default {
       }
       return data.name.indexOf(value) !== -1;
     },
+    searchMeetingContent(row){
+      let id=row.id
+      this.meetingTitle=row.meetingName
+      getMeetingContentsByMeetingId(id).then(res => {
+        let contents=res.data
+        this.meetingContents=contents
+      })
+    }
   }
 
 }

+ 71 - 33
src/views/meeting/weeklyRecords.vue

@@ -3,10 +3,11 @@
     <div style="display: flex;justify-content: space-between;margin-bottom: 8px">
       <div style="font-size: 24px">{{ m.meetingName }}</div>
       <div>
+        <el-button v-if="m.status===1" size="mini" type="primary" @click="endMeetingClick(m)">结束会议
+        </el-button>
         <el-button size="mini" @click="meetingResultConfirm"  v-if="meetingResultConfirmVisible" type="primary"  style="margin-right: 20px">会议结果确认</el-button>
         <el-button size="mini" @click="exportPdf"  style="margin-right: 20px" v-if="workScoreVisible">导出</el-button>
       </div>
-
     </div>
     <el-descriptions title="" :column="2" :size="size" border>
       <el-descriptions-item>
@@ -43,10 +44,10 @@
           参会人员
         </template>
         <span v-if="m.innerAttendees!=''" v-for="(item,index) in JSON.parse(m.innerAttendees)">
-          <el-badge is-dot v-if="item.flag==='1'">
+          <el-badge is-dot v-if="item.flag==='1'" type="success">
           &nbsp;&nbsp;&nbsp; {{ item.name }}
           </el-badge>
-           <el-badge is-dot v-else type="info">
+           <el-badge is-dot v-else type="danger">
           &nbsp;&nbsp;&nbsp; {{ item.name }}
           </el-badge>
         </span>
@@ -102,7 +103,7 @@
       </el-table-column>
       <el-table-column prop="scores" label="评分" width="150" align="center" v-if="workScoreVisible">
         <template slot-scope="scope">
-          <el-input-number size="mini" :precision="2" :step="0.1" :max="10" :min="0" v-model="scope.row.score"
+          <el-input-number size="mini" :precision="2" :step="0.1" :max="10" :min="0" v-model="scope.row.score" :value="0"
                            @change="workComment(scope.row)">
             {{ scope.row.score }}
           </el-input-number>
@@ -195,6 +196,7 @@
 <script>
 
 import {
+  endMeeting,
   getMeetingByWeekss,
   getTaskScheduleRemark,
   getWeeksRecordsByWeeks, meetingAuthById, weekMeetingConfirms,
@@ -256,19 +258,25 @@ export default {
       projects:[],
       row:null,
       workScoreVisible:false,
-      meetingConfirms:[]
+      meetingConfirms:[],
+      permissions:null
     }
   },
   created() {
 
   },
-  mounted() {
-    this.meetingId = this.$route.query.meetingId;
-    this.weeks = this.$route.query.weeks;
-    this.getData()
+   mounted() {
+     this.meetingId = this.$route.query.meetingId;
+     this.weeks = this.$route.query.weeks;
+     this.getData()
   },
   methods: {
-    getData() {
+    async executeCreate(){
+      await this.getData()
+      this.setPermissions()
+    },
+    setPermissions(){
+      let loginUserId=this.$store.getters.userId
       //获取工作评分与工作评论权限
       let permissions= this.$store.getters.permissions;
       for(let i=0;i<permissions.length;i++){
@@ -278,25 +286,39 @@ export default {
         }
       }
 
+      let meeting=this.m;
+      let meetingStatus=meeting.status
+      let workScoreVisible=this.workScoreVisible
+      if(meetingStatus===2 && workScoreVisible===true){
+        this.workScoreVisible=true
+      }else{
+        this.workScoreVisible=false
+      }
+      let innerAttendess=JSON.parse(meeting.innerAttendees)
+      for(let i=0;i<innerAttendess.length;i++){
+        let user=innerAttendess[i]
+        if(Number(user.id)===Number(loginUserId)){
+          if(user.flag==='0' && meetingStatus===2){
+            this.meetingResultConfirmVisible=true
+            break
+          }
+        }
+      }
+    },
+    getData() {
       let loginUserId=this.$store.getters.userId
       let meetingId = this.meetingId
       let weeks = this.weeks
       if (meetingId != null && weeks != null) {
-        getWeeksRecordsByWeeks(meetingId, weeks).then(res => {
+         getWeeksRecordsByWeeks(meetingId, weeks).then(res => {
           this.tableData = res.data.workContent
           this.getSpanArr(this.tableData);
           this.m = res.data.meeting
-          let innerAttendess=JSON.parse(this.m.innerAttendees)
-          for(let i=0;i<innerAttendess.length;i++){
-            let user=innerAttendess[i]
-            if(Number(user.id)===Number(loginUserId)){
-              if(user.flag==='0'){
-                this.meetingResultConfirmVisible=true
-                break
-              }
-            }
-          }
-
+           let permissions=this.permissions;
+           if(permissions===null){
+             this.setPermissions();
+             this.permissions=1
+           }
         })
       } else {
         //获取当前周会会议id与所属周数
@@ -313,16 +335,6 @@ export default {
               this.tableData = res.data.workContent
               this.getSpanArr(this.tableData);
               this.m = res.data.meeting
-              let innerAttendess=JSON.parse(this.m.innerAttendees)
-              for(let i=0;i<innerAttendess.length;i++){
-                let user=innerAttendess[i]
-                if(Number(user.id)===Number(loginUserId)){
-                  if(user.flag==='0'){
-                    this.meetingResultConfirmVisible=true
-                    break
-                  }
-                }
-              }
             })
           } else {
             this.tableData = []
@@ -410,6 +422,11 @@ export default {
       });
     },
     workMeetingsUpdate(m){
+      let status=m.status
+      if(status===2){
+        this.$message.error("会议已经结束,不能更改会议相关信息!")
+        return
+      }
       workMeetingsUpdates(m).then(res => {
         this.$message({
           message: '操作成功!',
@@ -596,7 +613,28 @@ export default {
     },
     closeWorkPlanWin(){
       this.getData()
-    }
+    },
+    endMeetingClick(row) {
+      let id = row.id;
+      let remark=row.remark
+      meetingAuthById(id).then(res => {
+        if (res.success === false) {
+          this.$message.error(res.data)
+        } else {
+          if(remark===undefined || remark===null || remark==='' || remark.replace(/\s+/g, "")===''){
+            this.$message.error("请将参会情况填写完整!")
+          }else{
+            endMeeting(id).then(res => {
+              this.$message({
+                message: '操作成功!',
+                type: 'success'
+              });
+              this.getData();
+            })
+          }
+        }
+      })
+    },
   }
 }
 </script>