소스 검색

bug修改

ysc 2 년 전
부모
커밋
91eb1d1b1f
2개의 변경된 파일268개의 추가작업 그리고 30개의 파일을 삭제
  1. 39 30
      src/views/dashboard/index.vue
  2. 229 0
      src/views/meeting/components/meetingDetail.vue

+ 39 - 30
src/views/dashboard/index.vue

@@ -38,7 +38,7 @@
           :data="tableData"
           style="width: 100%" border stripe size="small">
           <el-table-column label="实施待办">
-            <el-table-column type="index" label="序号" width="80" align="center">
+            <el-table-column type="index" label="序号" width="50" align="center">
             </el-table-column>
             <el-table-column
               prop="name"
@@ -63,18 +63,21 @@
             <el-table-column
               prop="taskName"
               label="当前处理步骤" align="center"
-              width="180">
+              width="150">
             </el-table-column>
             <el-table-column
               prop="flowType"
               label="流程类型" align="center"
-              width="180">
+              width="100">
             </el-table-column>
             <el-table-column align="center"
                              prop="createTime"
-                             label="创建时间" width="200">
+                             label="创建时间" width="140">
+              <template scope="scope">
+                <span>{{parseTime(scope.row.createTime)}}</span>
+              </template>
             </el-table-column>
-            <el-table-column prop="op" width="200" label="操作" align="center">
+            <el-table-column prop="op" width="180" label="操作" align="center">
               <template scope="scope">
                 <el-button size="mini" type="success" @click="searchWorkFlow(scope.row)">查阅流程</el-button>
                 <el-button size="mini" type="primary" @click="auditFlow(scope.row)">处理</el-button>
@@ -91,11 +94,11 @@
           size="mini"
           style="width: 100%">
           <el-table-column label="待办会议">
-            <el-table-column type="index" label="序号" width="60">
+            <el-table-column type="index" label="序号" width="50" align="center">
             </el-table-column>
-            <el-table-column label="会议主题" prop="meetingName">
+            <el-table-column label="会议主题" prop="meetingName" align="center">
             </el-table-column>
-            <el-table-column label="会议类型" prop="meetingType" width="120">
+            <el-table-column label="会议类型" prop="meetingType" width="100" align="center">
               <template scope="scope">
                 <!--会议类型(1-周例会,2-项目会议,3-实施会议,4-其他会议)-->
                 <div v-if="scope.row.meetingType===1">周例会</div>
@@ -104,9 +107,9 @@
                 <div v-else>其他会议</div>
               </template>
             </el-table-column>
-            <el-table-column label="会议地点" prop="meetingPlace" width="120">
+            <el-table-column label="会议地点" prop="meetingPlace" width="120" align="center">
             </el-table-column>
-            <el-table-column prop="status" label="会议状态" width="120">
+            <el-table-column prop="status" label="会议状态" width="100" align="center">
               <template scope="scope">
                 <!--会议状态,0待开始,1进行中,2已结束-->
                 <div v-if="scope.row.status===0" style="color: green">待开始</div>
@@ -114,12 +117,12 @@
                 <div v-else>已结束</div>
               </template>
             </el-table-column>
-            <el-table-column prop="name" label="会议时间" width="300">
+            <el-table-column prop="name" label="会议时间" width="255" align="center">
               <template scope="scope">
-                <div>{{ scope.row.beginTime }}——{{ scope.row.endTime }}</div>
+                <div>{{ scope.row.beginTime + '至' + scope.row.endTime }}</div>
               </template>
             </el-table-column>
-            <el-table-column prop="address" label="参会人员">
+            <el-table-column prop="innerAttendees" label="参会人员" :show-overflow-tooltip="true" align="center">
               <template scope="scope">
                 <span>{{ scope.row.outAttendees }}</span>
                 <span v-if="scope.row.outAttendees!=''">、</span>
@@ -129,12 +132,12 @@
            </span>
               </template>
             </el-table-column>
-            <el-table-column prop="createTime" label="创建时间" width="150">
+            <el-table-column prop="createTime" label="创建时间" width="130" align="center">
               <template slot-scope="scope">
                 <span>{{ parseTime(scope.row.createTime) }}</span>
               </template>
             </el-table-column>
-            <el-table-column label="操作" prop="op" width="150">
+            <el-table-column label="操作" width="110" align="center">
               <template slot-scope="scope">
                 <el-button v-if="scope.row.status===2" type="primary" size="mini" @click="confirmMeeting(scope.row)">
                   结果确认
@@ -167,9 +170,9 @@
     </el-dialog>
 
     <!--处理实施工作任务--->
-    <el-dialog title="审批处理" :visible.sync="editEnforceFormVisible" width="45%" @click="closeEnforceDialog">
-      <el-form label-width="120px" :model="enforceForm">
-        <el-descriptions title="" :column="2" border>
+    <el-dialog title="审批处理" :visible.sync="editEnforceFormVisible" width="45%" :close-on-click-modal="false">
+      <el-form label-width="120px" :model="enforceForm" size="mini">
+        <el-descriptions title="" :column="2" border size="mini">
           <el-descriptions-item>
             <template slot="label">
               项目名称
@@ -246,15 +249,15 @@
               :on-success="handleSuccess"
               :on-error="handleError"
               name="file">
-              <el-button slot="trigger" size="small" type="primary">选取文件</el-button>
+              <el-button slot="trigger" size="mini" type="primary">选取文件</el-button>
             </el-upload>
           </el-descriptions-item>
 
         </el-descriptions>
       </el-form>
       <div slot="footer" class="dialog-footer">
-        <el-button size="small" @click="closeEnforceDialog">取消</el-button>
-        <el-button size="small" type="primary" class="title" @click="submitEnforceForm('editForm')">确定处理</el-button>
+        <el-button size="mini" @click="closeEnforceDialog">取消</el-button>
+        <el-button size="mini" type="primary" class="title" @click="submitEnforceForm('editForm')">确定处理</el-button>
       </div>
     </el-dialog>
 
@@ -272,6 +275,8 @@
         <el-button size="small" type="primary" class="title" @click="submitUserForm('editForm')">确定</el-button>
       </div>
     </el-dialog>
+
+    <meeting-detail :detail-form="meetingForm" @getTodoMeetingList="getTodoMeetingList"></meeting-detail>
   </div>
 </template>
 
@@ -282,10 +287,12 @@ import {completeTask, getPersonalTaskList} from '@/api/meeting/enforce'
 import {confirmMeetings, getTodoMeetings} from '@/api/meeting/meeting'
 import {getDeptUserTree} from '@/api/system/user'
 import {deleteFile, uploadFileUrl} from '@/api/file/file'
+import MeetingDetail from "@/views/meeting/components/meetingDetail";
 
 export default {
   name: 'Dashboard',
   components: {
+    MeetingDetail,
     Pagination
   },
   computed: {
@@ -307,6 +314,7 @@ export default {
       },
       tableData: [],
       todoMeetings: [],
+      meetingForm: {},
       auditWin: false,
       formData: {},
       workFlowVisble: false,
@@ -433,7 +441,7 @@ export default {
     },
     submitEnforceForm() {
       let data = this.enforceForm;
-      if(data.director==='' || data.remark===null || data.remark===''){
+      if (data.director === '' || data.remark === null || data.remark === '') {
         this.$message({
           message: '请将表单信息填写完整!',
           type: 'warning'
@@ -452,14 +460,15 @@ export default {
 
     },
     confirmMeeting(row) {
-      let id = row.id;
-      confirmMeetings(id).then(res => {
-        this.$message({
-          message: '操作成功!',
-          type: 'success'
-        });
-        this.getTodoMeetingList();
-      });
+      if (row.meetingType === 1) {
+        let params = {
+          meetingId: row.id,
+          weeks: row.weeks
+        }
+        this.$router.push({path: '/meeting/weeklyRecords', query: params});
+        return
+      }
+      this.meetingForm = row
 
     },
   }

+ 229 - 0
src/views/meeting/components/meetingDetail.vue

@@ -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>