Sfoglia il codice sorgente

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

yanshichao 1 anno fa
parent
commit
0f54c2d10f

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

@@ -295,3 +295,29 @@ export function editMeeting(data){
     data: data
   })
 }
+
+/**
+ * 确认其他会议、实施会议方法--扩展
+ * @param data
+ * @returns {*}
+ */
+export function confirmOthersMeeting(data){
+  return request({
+    url: '/meeting/confirmOtherMeeting',
+    method: 'post',
+    data: data
+  })
+}
+
+/**
+ * 增加获取按钮会议结果权限是否展示
+ * @param data
+ * @returns {*}
+ */
+export function getMeetingConfirmBtnFlag(data){
+  return request({
+    url: '/meeting/getMeetingConfirmBtnFlag',
+    method: 'post',
+    data: data
+  })
+}

+ 4 - 0
src/router/index.js

@@ -42,6 +42,10 @@ export const constantRoutes = [
     component: () => import('@/views/404'),
     hidden: true
   },
+  {
+    path:'/meeting/weeklyRecords',
+    component:()=>import('@/views/meeting/weeklyRecords')
+  },
   {
     path: '/',
     component: Layout,

+ 8 - 2
src/views/dashboard/index.vue

@@ -250,13 +250,19 @@ export default {
       this.$router.push(`/material/myReceive`)
     },
     enforceTasksClick() {
-      this.$router.push('/enforceflow/enforceflow')
+      let params = {
+        status: '1'
+      }
+      this.$router.push({path: '/enforceflow/enforceflow', query: params});
     },
     todoMeetingClick() {
       this.$router.push('/meeting/meeting')
     },
     enforceRemindClick() {
-      this.$router.push('/enforceflow/enforceflow')
+      let params = {
+        status: '1'
+      }
+      this.$router.push({path: '/enforceflow/enforceflow', query: params});
     },
 
     handleAudit() {

+ 159 - 23
src/views/enforceflow/enforceflow.vue

@@ -47,7 +47,7 @@
       style="width: 100%">
       <el-table-column type="index" label="序号" width="60" align="center">
       </el-table-column>
-      <el-table-column label="实施项目名称" prop="name" width="150" align="center">
+      <el-table-column label="实施项目名称" prop="name" width="180" align="center" :show-overflow-tooltip="true">
       </el-table-column>
       <el-table-column label="实施内容" prop="content" align="center" :show-overflow-tooltip="true"></el-table-column>
       <el-table-column label="实施负责人" prop="enforcer" width="90" align="center">
@@ -56,16 +56,22 @@
       </el-table-column>
       <el-table-column label="实施日期" prop="time" width="180" align="center">
         <template slot-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="hsytem" label="所属系统" align="center">
+      <el-table-column prop="hsytem" label="所属系统" align="center" width="210">
       </el-table-column>
       <el-table-column prop="createTime" label="创建时间" width="130" align="center" v-if="false">
         <template slot-scope="scope">
           <span>{{ parseTime(scope.row.createTime) }}</span>
         </template>
       </el-table-column>
+      <el-table-column prop="handlerName" label="当前处理人" align="center" width="180" v-if="false">
+        <template slot-scope="scope">
+          <div v-if=" scope.row.act.id!==undefined">{{scope.row.act.assignee}}</div>
+          <div v-else>{{scope.row.enforcer}}</div>
+        </template>
+      </el-table-column>
       <el-table-column prop="status1" label="当前实施状态" width="120" align="center">
         <template slot-scope="scope">
           <span style="color: green" v-if="scope.row.status===2">运行维护</span>
@@ -92,7 +98,8 @@
           <el-button size="mini" v-if="scope.row.status!==0 && scope.row.act.id!==undefined" type="primary"
                      @click="enforceFlowDealWin(scope.row)">流程处理
           </el-button>
-          <el-button size="mini" type="success" v-hasPermi="['s:s:query']" v-if="scope.row.status!==0" @click="openEnforceManageDialog(scope.row)">
+          <!--v-hasPermi="['s:s:query']"-->
+          <el-button size="mini" type="success"  v-if="scope.row.status!==0" @click="openEnforceManageDialog(scope.row)">
             查看详情
           </el-button>
           <el-button size="mini" v-show="false" v-if="scope.row.status!==0" type="primary"
@@ -247,6 +254,17 @@
       </div>
     </el-dialog>
 
+    <el-dialog title="选择人员" :visible.sync="usersTaskVisble" width="30%" @click="closeTaskUserDialog" :close-on-click-modal="false">
+      <el-input placeholder="输入关键字进行过滤" v-model="filterText2">
+      </el-input>
+      <el-tree ref="dept2" :data="userList" node-key="id" :props="{label:'name'}" :default-expand-all="false" :filter-node-method="filterNode2">
+      </el-tree>
+      <div slot="footer" class="dialog-footer">
+        <el-button size="mini" @click="closeTaskUserDialog">取消</el-button>
+        <el-button size="mini" type="primary" class="title" @click="submitTaskUserForm('editForm')">确定</el-button>
+      </div>
+    </el-dialog>
+
     <el-dialog title="实施详情" :visible.sync="enforceFlowVisble" width="85%" @click="enforceFlowDialog"
                :close-on-click-modal="false">
       <el-table
@@ -435,7 +453,28 @@
                     <el-input size="mini" v-model="scope.row.msg"></el-input>
                   </template>
                 </el-table-column>
-                <el-table-column prop="term" label="有限期限" width="180">
+                <el-table-column prop="startTime" label="开始时间" width="250">
+                  <template slot-scope="scope">
+                    <el-date-picker
+                      v-model="scope.row.startTime"
+                      type="date"
+                      format="yyyy-MM-dd"
+                      placeholder="请选择开始时间">
+                    </el-date-picker>
+                  </template>
+                </el-table-column>
+                <el-table-column prop="termTime" label="可配置灵活时间" width="250">
+                  <template slot-scope="scope">
+                    <el-date-picker
+                      v-model="scope.row.termTime"
+                      type="date"
+                      format="yyyy-MM-dd"
+                      placeholder="请选择可配置灵活时间">
+                    </el-date-picker>
+                  </template>
+                </el-table-column>
+
+                <el-table-column prop="term" label="有限期限" width="180" v-if="false">
                   <template slot-scope="scope">
                     <el-select v-model="scope.row.term" placeholder="请选择提醒时间">
                       <el-option label="3个月" :value="90" key="90">3个月</el-option>
@@ -529,9 +568,9 @@
     </el-dialog>
 
     <!--处理实施工作任务--->
-    <el-dialog title="审批处理" :visible.sync="editEnforceFormVisible1" width="75%" :close-on-click-modal="false">
+    <el-dialog title="审批处理" :visible.sync="editEnforceFormVisible1" width="70%" :close-on-click-modal="false">
       <el-form label-width="120px" :model="enforceForm" size="mini">
-        <el-descriptions title="" :column="2" border size="mini">
+        <el-descriptions title="" :column="3" border size="mini">
           <el-descriptions-item>
             <template slot="label">
               项目名称
@@ -574,15 +613,22 @@
             <template slot="label">
               当前任务
             </template>
-            {{ enforceFlow.flowType }}
+            <el-tag> {{ enforceFlow.flowType }}</el-tag>
           </el-descriptions-item>
-          <el-descriptions-item :span="2">
+          <el-descriptions-item >
             <template slot="label">
-              实施内容
+              当前任务执行人
             </template>
-            {{ enforceFlow.content }}
+            {{ enforceFlow.assignee }}
           </el-descriptions-item>
+
           <el-descriptions-item :span="2">
+            <template slot="label">
+              下个步骤
+            </template>
+           <el-tag type="info"> {{ enforceForm.nextStepName }}</el-tag>
+          </el-descriptions-item>
+          <el-descriptions-item>
             <template slot="label">
               下个步骤负责人
             </template>
@@ -590,14 +636,32 @@
               <el-button @click="openUsers" icon="el-icon-search" slot="append"></el-button>
             </el-input>
           </el-descriptions-item>
-          <el-descriptions-item :span="2">
+
+          <el-descriptions-item :span="3">
+            <template slot="label">
+              任务系统处理人
+            </template>
+            <el-input size="small" style="width: 350px" v-model="enforceForm.taskDealName" :disabled="true" @keyup.enter.native="openTaskUsers()">
+              <el-button @click="openTaskUsers" icon="el-icon-search" slot="append"></el-button>
+              <el-button @click="resetTaskUsers" icon="el-icon-refresh" slot="append" ></el-button>
+            </el-input>
+
+            <span style="color: red;margin-left: 25px">选择此项会将下一个节点任务推送给任务系统,对应人员进行工作工时反馈。</span>
+          </el-descriptions-item>
+          <el-descriptions-item :span="3">
+            <template slot="label">
+              实施内容
+            </template>
+            {{ enforceFlow.content }}
+          </el-descriptions-item>
+          <el-descriptions-item :span="3">
             <template slot="label">
               备注说明
             </template>
-            <el-input size="small" v-model="enforceForm.remark" type="textarea" :rows="4"></el-input>
+            <el-input size="small" v-model="enforceForm.remark" type="textarea" :rows="3"></el-input>
           </el-descriptions-item>
 
-          <el-descriptions-item :span="2">
+          <el-descriptions-item :span="3">
             <template slot="label">
               文件列表
             </template>
@@ -613,7 +677,7 @@
               <el-button slot="trigger" size="mini" type="primary">选取文件</el-button>
             </el-upload>
           </el-descriptions-item>
-          <el-descriptions-item :span="2">
+          <el-descriptions-item :span="3">
             <template slot="label">
               其他说明
             </template>
@@ -690,6 +754,9 @@ export default {
     filterText1(val) {
       this.$refs.dept.filter(val);
     },
+    filterText2(val) {
+      this.$refs.dept2.filter(val);
+    },
   },
   data() {
     return {
@@ -701,6 +768,7 @@ export default {
       },
       filterText: '',
       filterText1:null,
+      filterText2:null,
       editEnforceRecord: {
         id: null,
         enforceType: '',
@@ -708,6 +776,7 @@ export default {
         enforceId: null,
         remark: '',
       },
+      usersTaskVisble:false,
       enforceFileData: [],
       addEnforceRecordWin: false,
       enforceFlowVisble: false,
@@ -734,8 +803,10 @@ export default {
         hname: null,
         hsytem: null,
         enforcer: null,
+        enforcerId:null,
         content: null,
-        times: null
+        times: null,
+        directorId:null,
       },
       rules: {
         name: [
@@ -771,7 +842,10 @@ export default {
         taskId: null,
         currentStep: null,
         filess: [],
-        content: null
+        content: null,
+        nextStepName:null,
+        taskDealName:null,
+        taskDealId:null
       },
       enforceFlow: {
         name: '',
@@ -783,6 +857,7 @@ export default {
         content: '',
         beginTime: null,
         endTime: null,
+        assignee:null,
         fileDatas: []
       },
       enforceFlowId: null,
@@ -837,6 +912,7 @@ export default {
     this.getData(this.formInline)
     this.getDeptUserTrees()
     this.fileAction = uploadFileUrl()
+    this.formInline.status = this.$route.query.status;
   },
   methods: {
     // 分页插件事件
@@ -863,7 +939,7 @@ export default {
       })
     },
     closeDialog() {
-      this.editForm={
+    /*   this.editForm={
         id: null,
         name: '',
         hname: null,
@@ -872,7 +948,7 @@ export default {
         content: null,
         times: null
       }
-      this.resetForm('editForm')
+      this.resetForm('editForm') */
       this.editFormVisible = false
     },
     resetSearch() {
@@ -904,6 +980,7 @@ export default {
               type: 'success'
             });
             this.closeDialog();
+            this.formInline.status=null;
             this.getData(this.formInline);
           });
         }
@@ -1072,6 +1149,8 @@ export default {
       }
       this.editForm.enforcer = node.name
       // this.enforceForm.directorId = node.id
+      this.editForm.directorId=node.id
+      this.editForm.enforcerId=node.id
       this.closeUser1Dialog();
     },
     enforceManageDialog() {
@@ -1116,7 +1195,7 @@ export default {
     },
     createeditorElem1Editor() {
       editorElem1 = new E('#editorElem1');
-      editorElem1.config.height = 300
+      editorElem1.config.height = 200
       editorElem1.create()
       editorElem1.txt.html(this.enforceForm.content)
       editorElem1.config.onchange = (html) => {
@@ -1294,16 +1373,34 @@ export default {
         this.$message.warning("请输入提醒信息!")
         return
       }
-      if (data.term === null) {
-        this.$message.warning("请选择提醒时间!")
+      if(data.startTime===undefined || data.startTime===null){
+        this.$message.warning("请选择开始时间!")
+        return
+      }
+      if(data.termTime===undefined || data.termTime===null){
+        this.$message.warning("请选择可配置灵活时间!")
+        return
+      }
+      if(new Date(data.termTime).getTime()<new Date(data.startTime).getTime()){
+        this.$message.warning("可配置灵活时间应大于开始时间!")
         return
       }
       data.enforceId = this.enforceDetail.id
+      //计算日期相差多少天
+      let days= this.daysDifference(data.startTime,data.termTime);
+      data.term=days
+      data.startTime=new Date(data.startTime).getTime()
+      data.termTime=new Date(data.termTime).getTime()
+
       editEnforceRemind(data).then(res => {
         this.$message.success("操作成功!")
         this.getEnforceRemindList()
       });
     },
+    daysDifference(startTime, endTime) {
+      let diff = Math.abs(new Date(endTime) - new Date(startTime));
+      return diff / (1000 * 60 * 60 * 24);
+    },
     getEnforceRemindList() {
       let id = this.enforceDetail.id
       getEnforceRemindList(id).then(res => {
@@ -1313,7 +1410,7 @@ export default {
     deleteEnforceRemind(index, row) {
       let id = row.id
       if (id === null) {
-        this.workPlanDatas.splice(index, 1)
+        this.enforceRemindData.splice(index, 1)
       } else {
         deleteEnforceRemindById(id).then(res => {
           this.$message.success("操作成功!");
@@ -1420,6 +1517,7 @@ export default {
       this.enforceFlow.hno = row.hname
       this.enforceFlow.hsytem = row.hsytem
       this.enforceFlow.content = row.content
+      this.enforceFlow.assignee=row.act.assignee
       this.enforceFlow.time = row.beginTime + "至" + row.endTime
       this.enforceFlow.status = row.status
       this.enforceFlow.flowType = row.act.taskName
@@ -1433,6 +1531,7 @@ export default {
       this.enforceForm.remark = ''
       this.enforceForm.filess = []
       this.enforceForm.content = ''
+      this.enforceForm.nextStepName=row.nextStepName
       this.uploadFileList = []
 
       this.$nextTick(() => {
@@ -1451,6 +1550,12 @@ export default {
       }
       return data.name.indexOf(value) !== -1;
     },
+    filterNode2(value, data) {
+      if (!value) {
+        return true
+      }
+      return data.name.indexOf(value) !== -1;
+    },
     addHospitals(){
       this.addHospitalsVisible=true
     },
@@ -1484,6 +1589,37 @@ export default {
     addSysVisible(){
       this.addSystemVisible=true
     },
+    openTaskUsers(){
+      this.usersTaskVisble=true
+    },
+    closeTaskUserDialog(){
+      this.usersTaskVisble=false
+    },
+    submitTaskUserForm(){
+      //获取选中的节点
+      let node = this.$refs.dept2.getCurrentNode();
+      if (node == undefined || node == null) {
+        this.$message({
+          message: '请选择数据!',
+          type: 'warning'
+        });
+        return;
+      }
+      if (node.type !== 'u') {
+        this.$message({
+          message: '请选择人员!',
+          type: 'warning'
+        });
+        return;
+      }
+      this.enforceForm.taskDealName = node.name
+      this.enforceForm.taskDealId = node.id
+      this.closeTaskUserDialog();
+    },
+    resetTaskUsers(){
+      this.enforceForm.taskDealName =null
+      this.enforceForm.taskDealId = null
+    },
     saveSysInfo(){
      let sysName=this.sys.name;
      if(sysName===''){

+ 105 - 33
src/views/meeting/meeting.vue

@@ -115,11 +115,11 @@
       </el-table-column>
       <el-table-column prop="status" label="确认状态" width="80">
         <template slot-scope="scope">
-          <div style="color: red" v-if="scope.row.status!==0 && scope.row.meetingConfirmStatus===0 && (scope.row.meetingType===1 || scope.row.meetingType===2)">
+          <div style="color: red" v-if="scope.row.status!==0 && scope.row.meetingConfirmStatus===0">
             未确认
           </div>
           <div style="color: green"
-            v-else-if="scope.row.meetingConfirmStatus===1 && (scope.row.meetingType===1 || scope.row.meetingType===2)">
+            v-else-if="scope.row.meetingConfirmStatus===1">
             已确认
           </div>
           <div v-else>无需确认</div>
@@ -309,8 +309,8 @@
       <div style="display: flex;justify-content: space-between;margin-bottom: 8px">
         <div style="font-size: 24px">{{ pro.meetingName }}</div>
         <div>
-          <el-button @click="projectMeetingDetailVisble = false"  size="small">返回</el-button>
-          <el-button v-if="pro.status===1 && pro.recorderOpFlag==='true'" size="mini" type="primary" @click="endMeetingClick(pro)">结束会议
+          <el-button @click="backBtnClick"  size="small">返回</el-button>
+          <el-button v-if="pro.status===1 && pro.recorderOpFlag==='true'" size="mini" type="primary" @click="endProMeetingClick(pro)">结束会议
           </el-button>
         </div>
       </div>
@@ -332,11 +332,10 @@
         </el-descriptions-item>
         <el-descriptions-item label="项目名称" :span="2">
           <el-tag type="success">  {{ pro.projectName }}</el-tag>
-
         </el-descriptions-item>
         <el-descriptions-item label="内部参会人员">
           <span v-if="pro.innerAttendeesNew!==''" v-for="(item,index) in pro.innerAttendeesNew">
-            <el-badge is-dot  type="success" v-if="pro.meetingConfirmStatus===1">
+            <el-badge is-dot  type="success" v-if="item.confirmFlag==='1'">
           &nbsp;&nbsp;&nbsp; {{ item.name }}
             </el-badge>
              <el-badge is-dot v-else type="danger">
@@ -357,8 +356,9 @@
           <div v-html="pro.remarks"></div>
         </el-descriptions-item>
         <el-descriptions-item label="参会情况" :span="3">
-            <el-input size="mini" v-model="pro.remark" type="textarea"
+            <el-input size="mini" v-model="pro.remark" type="textarea" v-if="pro.status!=2"
                       :autosize="{ minRows: 4, maxRows: 10}" @input="editMeetings(pro)"></el-input>
+          <div v-else>{{pro.remark}}</div>
         </el-descriptions-item>
       </el-descriptions>
 
@@ -367,20 +367,22 @@
         <el-table-column label="会议内容" prop="content"></el-table-column>
         <el-table-column label="会议问题" prop="question">
           <template slot-scope="scope">
-            <el-input size="mini" v-model="scope.row.question" type="textarea"
+            <el-input size="mini" v-model="scope.row.question" type="textarea" v-if="pro.status!=2"
                       :autosize="{ minRows: 4, maxRows: 10}" @input="editMeetingContents(scope.row)"></el-input>
+            <div v-else>{{scope.row.question}}</div>
           </template>
         </el-table-column>
         <el-table-column label="会议方案" prop="optionss">
           <template slot-scope="scope">
-            <el-input size="mini" v-model="scope.row.optionss" type="textarea"
+            <el-input size="mini" v-model="scope.row.optionss" type="textarea" v-if="pro.status!=2"
                       :autosize="{ minRows: 4, maxRows: 10}" @input="editMeetingContents(scope.row)"></el-input>
+            <div v-else>{{scope.row.optionss}}</div>
           </template>
         </el-table-column>
         <el-table-column label="事项优先级" prop="priority" width="180">
           <template slot-scope="scope">
             <el-select
-              v-model="scope.row.priority"
+              v-model="scope.row.priority" v-if="pro.status!=2"
               placeholder="事项优先级"  @change="editMeetingContents(scope.row)">
               <el-option
                 v-for="dict in dict.type.task_priority"
@@ -390,43 +392,47 @@
                   {{ dict.label }}
               </el-option>
             </el-select>
+            <div v-else>{{scope.row.priority}}</div>
           </template>
         </el-table-column>
         <el-table-column label="执行人" width="180">
           <template slot-scope="scope">
-            <el-input size="mini" v-model="scope.row.executorName" :readonly="true"
+            <el-input size="mini" v-model="scope.row.executorName" :readonly="true" v-if="pro.status!=2"
                       @keyup.enter.native="openUsers1('executorName',scope.row)"
                       @input="editMeetingContents(scope.row)">
               <el-button @click="openUsers1('executorName',scope.row)" icon="el-icon-search" slot="append"></el-button>
             </el-input>
+            <div v-else>{{scope.row.executorName}}</div>
           </template>
         </el-table-column>
         <el-table-column label="开始日期" width="180" prop="beginTime">
           <template slot-scope="scope">
-            <el-date-picker size="mini"
+            <el-date-picker size="mini" v-if="pro.status!=2"
               v-model="scope.row.beginTime"   format="yyyy-MM-dd"
               type="date" style="width: 150px"
               placeholder="选择开始日期" @change="editMeetingContents(scope.row)">
             </el-date-picker>
+            <div v-else>{{scope.row.beginTime.slice(0,10)}}</div>
           </template>
         </el-table-column>
         <el-table-column label="结束日期" width="180" prop="endTime">
         <template slot-scope="scope">
-          <el-date-picker size="mini"
+          <el-date-picker size="mini" v-if="pro.status!=2"
                           v-model="scope.row.endTime"   format="yyyy-MM-dd"
                           type="date" style="width: 150px"
                           placeholder="选择结束日期" @change="editMeetingContents(scope.row)">
           </el-date-picker>
+          <div v-else>{{scope.row.endTime.slice(0,10)}}</div>
         </template>
       </el-table-column>
 
       </el-table>
       <div slot="footer" class="dialog-footer">
-        <el-button v-if="pro.status===2 && pro.meetingConfirmStatus===0" type="success" size="mini"
+        <el-button v-if="pro.status===2  && otherMeetingConfirmBtnFlag===true " type="success" size="mini"
                    @click="confirmMeeting(pro)">会议结果确认
         </el-button>
         <el-button size="mini" @click="closeProjectMeetingDailog" v-show="false">取消</el-button>
-        <el-button size="mini" v-if="pro.meetingConfirmStatus===0" type="primary" class="title"
+        <el-button size="mini" v-if="pro.status!==2" type="primary" class="title"
                    @click="submitMeetingOptionsForm(pro,'editForm')">保存
         </el-button>
       </div>
@@ -437,8 +443,10 @@
       <div style="display: flex;justify-content: space-between;margin-bottom: 8px">
         <div style="font-size: 24px">{{ pro.meetingName }}</div>
         <div>
-          <el-button @click="otherMeetingDetailVisble = false"  size="small">返回</el-button>
-
+          <el-button @click="backBtnClick"  size="small">返回</el-button>
+          <el-button v-if="pro.status===2 && otherMeetingConfirmBtnFlag===true" type="success" size="mini"
+                     @click="confirmOtherMeeting(pro)">会议结果确认
+          </el-button>
           <el-button v-if="pro.status===1 && pro.recorderOpFlag==='true' " size="mini" type="primary" @click="endMeetingClick(pro)">结束会议
           </el-button>
 
@@ -462,7 +470,12 @@
         </el-descriptions-item>
         <el-descriptions-item label="内部参会人员">
           <span v-if="pro.innerAttendeesNew!==''" v-for="(item,index) in pro.innerAttendeesNew">
+            <el-badge is-dot  type="success" v-if="item.confirmFlag==='1'">
+          &nbsp;&nbsp;&nbsp; {{ item.name }}
+            </el-badge>
+             <el-badge is-dot v-else type="danger">
             &nbsp;&nbsp;&nbsp; {{ item.name }}
+            </el-badge>
           </span>
         </el-descriptions-item>
         <el-descriptions-item label="外部参会人员" v-if="pro.outAttendees!=''">
@@ -478,7 +491,7 @@
           <div v-html="pro.remarks"></div>
         </el-descriptions-item>
         <el-descriptions-item label="参会情况" :span="3">
-          <el-input size="mini" v-model="pro.remark" type="textarea"
+          <el-input size="mini" v-model="pro.remark" type="textarea" :readonly="otherMeetingContentReadOnly"
                     :autosize="{ minRows: 4, maxRows: 10}" @input="editMeetings(pro)"></el-input>
         </el-descriptions-item>
       </el-descriptions>
@@ -488,7 +501,7 @@
         <el-table-column label="会议内容" prop="content"></el-table-column>
         <el-table-column label="会议方案" prop="optionss">
           <template slot-scope="scope">
-            <el-input size="mini" v-model="scope.row.optionss" type="textarea"
+            <el-input size="mini" v-model="scope.row.optionss" type="textarea" :readonly="otherMeetingContentReadOnly"
                       :autosize="{ minRows: 4, maxRows: 10}" @input="editMeetingContents(scope.row)"></el-input>
           </template>
         </el-table-column>
@@ -517,7 +530,12 @@ import {
   startMeetingById,
   meetingAuthById,
   meetingDeleteAuth,
-  endMeeting, editMeetingContent, getMeetingContentsByMeetingId, exportOutMeetingNotice, editMeeting
+  endMeeting,
+  editMeetingContent,
+  getMeetingContentsByMeetingId,
+  exportOutMeetingNotice,
+  editMeeting,
+  confirmOthersMeeting, getMeetingConfirmBtnFlag
 } from '@/api/meeting/meeting'
 import {getDeptUserTree} from '@/api/system/user'
 import {getProjectList} from "@/api/task/project";
@@ -620,12 +638,14 @@ export default {
           beginTime: null,
           endTime: null,
           priority:'4',
-          times: []
+          times: [],
         }],
         row: null
       },
       meetingContents:[],
-      meetingTitle:''
+      meetingTitle:'',
+      otherMeetingContentReadOnly:false,
+      otherMeetingConfirmBtnFlag:true
     }
   },
   // 注册组件
@@ -810,11 +830,6 @@ export default {
         this.$message.warning("会议暂未结束,请会议结束后在确认!");
         return
       }
-      let meetingConfirmStatus = row.meetingConfirmStatus
-      if (meetingConfirmStatus === 1) {
-        this.$message.warning("会议已经确认,请勿再次操作!")
-        return
-      }
       let id = row.id;
       //点击会议确认时候判断信息是否完整
       let data = this.pro.meetingContents;
@@ -830,6 +845,14 @@ export default {
       }
       saveMeetingOptionss(data).then(res => {
         confirmMeetings(id).then(res => {
+          this.getMeetingConfirmBtnFlags(res.data)
+          let innerAttendess = JSON.parse(res.data.innerAttendees)
+          let temp = [];
+          for (let i = 0; i < innerAttendess.length; i++) {
+            temp.push(innerAttendess[i])
+          }
+          this.pro.innerAttendeesNew=temp
+
           this.$message({
             message: '操作成功!',
             type: 'success'
@@ -844,12 +867,6 @@ export default {
     meetingDetail(row) {
       let meetingType = row.meetingType
       if (meetingType !== 1) {
-        if (row.meetingType == 2) {
-          //this.projectMeetingDetailVisble = true
-        } else {
-          this.otherMeetingDetailVisble = true
-        }
-
         this.pro.meetingName = row.meetingName
         this.pro.outAttendees = row.outAttendees
         this.pro.innerAttendees = row.innerAttendees
@@ -903,7 +920,16 @@ export default {
           this.pro.meetingContents = data
           this.pro.projectName=res.data.projectName
           if (row.meetingType === 2) {
+            this.otherMeetingConfirmBtnFlag=res.data.otherMeetingConfirmBtnFlag
             this.projectMeetingDetailVisble = true
+          }else{
+            if(row.status===2){
+              this.otherMeetingContentReadOnly=true
+            }else{
+              this.otherMeetingContentReadOnly=false
+            }
+            this.otherMeetingConfirmBtnFlag=res.data.otherMeetingConfirmBtnFlag
+            this.otherMeetingDetailVisble = true
           }
         });
       }
@@ -931,8 +957,25 @@ export default {
         }
       })
     },
+    endProMeetingClick(row){
+      //点击会议确认时候判断信息是否完整
+      let data = this.pro.meetingContents;
+     // alert(JSON.stringify(data))
+      for (let i = 0; i < data.length; i++) {
+        let t = data[i];
+        if (t.question === '' || t.optionss === '' || t.executorName === '' || t.beginTime === null || t.endTime === null) {
+          this.$message({
+            message: '请将信息填写完整!',
+            type: 'warning'
+          });
+          return
+        }
+      }
+      this.endMeetingClick(row);
+    },
     endMeetingClick(row) {
       let id = row.id;
+
       meetingAuthById(id).then(res => {
         if (res.success === false) {
           this.$message.error(res.data)
@@ -1231,6 +1274,35 @@ export default {
       editMeeting(newData).then(res=>{
         //this.$message.success("操作成功")
       })
+    },
+    confirmOtherMeeting(m){
+      let data={
+        id:m.id
+      }
+      confirmOthersMeeting(data).then(res=>{
+        this.getMeetingConfirmBtnFlags(data);
+        let innerAttendess = JSON.parse(res.data.innerAttendees)
+        let temp = [];
+        for (let i = 0; i < innerAttendess.length; i++) {
+          temp.push(innerAttendess[i])
+        }
+        this.pro.innerAttendeesNew=temp
+        this.$message.success("操作成功")
+      })
+    },
+    getMeetingConfirmBtnFlags(m){
+      let data={
+        id:m.id
+      }
+      getMeetingConfirmBtnFlag(data).then(res=>{
+        let d= res.data;
+        this.otherMeetingConfirmBtnFlag=d.otherMeetingConfirmBtnFlag;
+      })
+    },
+    backBtnClick(){
+      this.otherMeetingDetailVisble = false
+      this.projectMeetingDetailVisble=false
+      this.getData(this.formInline);
     }
   }
 

+ 1 - 1
src/views/meeting/weekly.vue

@@ -361,7 +361,7 @@ export default {
 
           }
           let data = {
-            weeks: this.meetingWeek,
+            weeks: this.weeks,
             workPlans: newWorkPlans,
             id: this.workPlans.id,
             meetingId: this.meetingId