|
@@ -2,12 +2,12 @@
|
|
<div class="app-container">
|
|
<div class="app-container">
|
|
<div class="query-container">
|
|
<div class="query-container">
|
|
<el-form ref="formInline" v-model="formInline" size="mini" :inline="true">
|
|
<el-form ref="formInline" v-model="formInline" size="mini" :inline="true">
|
|
-<!-- <el-form-item>
|
|
|
|
- <el-radio-group v-model="formInline.meetingEternal" @input="chooseMeeting()">
|
|
|
|
- <el-radio-button label="0" value="0">内部会议</el-radio-button>
|
|
|
|
- <el-radio-button label="1" value="1">外部会议</el-radio-button>
|
|
|
|
- </el-radio-group>
|
|
|
|
- </el-form-item>-->
|
|
|
|
|
|
+ <!-- <el-form-item>
|
|
|
|
+ <el-radio-group v-model="formInline.meetingEternal" @input="chooseMeeting()">
|
|
|
|
+ <el-radio-button label="0" value="0">内部会议</el-radio-button>
|
|
|
|
+ <el-radio-button label="1" value="1">外部会议</el-radio-button>
|
|
|
|
+ </el-radio-group>
|
|
|
|
+ </el-form-item>-->
|
|
<el-form-item>
|
|
<el-form-item>
|
|
<el-radio-group v-model="formInline.chooseType" @input="chooseMeeting()">
|
|
<el-radio-group v-model="formInline.chooseType" @input="chooseMeeting()">
|
|
<el-radio-button label="0" value="0">全部</el-radio-button>
|
|
<el-radio-button label="0" value="0">全部</el-radio-button>
|
|
@@ -19,7 +19,7 @@
|
|
<el-input v-model="formInline.meetingName" placeholder="会议主题"></el-input>
|
|
<el-input v-model="formInline.meetingName" placeholder="会议主题"></el-input>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
<el-form-item>
|
|
<el-form-item>
|
|
- <el-select style="width: 150px" v-model="formInline.meetingType" placeholder="会议类型" clearable>
|
|
|
|
|
|
+ <el-select style="width: 150px" v-model="formInline.meetingType" placeholder="会议类型" clearable>
|
|
<el-option label="周例会" value="1" key="周例会">周例会</el-option>
|
|
<el-option label="周例会" value="1" key="周例会">周例会</el-option>
|
|
<el-option label="项目会议" value="2" key="项目会议">项目会议</el-option>
|
|
<el-option label="项目会议" value="2" key="项目会议">项目会议</el-option>
|
|
<el-option label="实施会议" value="3" key="实施会议">实施会议</el-option>
|
|
<el-option label="实施会议" value="3" key="实施会议">实施会议</el-option>
|
|
@@ -44,6 +44,7 @@
|
|
</el-col>
|
|
</el-col>
|
|
</el-row>
|
|
</el-row>
|
|
</div>
|
|
</div>
|
|
|
|
+
|
|
<el-table
|
|
<el-table
|
|
:data="tableData"
|
|
:data="tableData"
|
|
border
|
|
border
|
|
@@ -51,17 +52,16 @@
|
|
height="calc(100vh - 180px)"
|
|
height="calc(100vh - 180px)"
|
|
size="mini"
|
|
size="mini"
|
|
style="width: 100%">
|
|
style="width: 100%">
|
|
- <el-table-column type="index" label="序号" width="60" fixed>
|
|
|
|
- </el-table-column>
|
|
|
|
|
|
+ <el-table-column type="index" label="序号" width="60"></el-table-column>
|
|
<el-table-column label="会议主题" prop="meetingName">
|
|
<el-table-column label="会议主题" prop="meetingName">
|
|
<template slot-scope="scope">
|
|
<template slot-scope="scope">
|
|
- {{scope.row.meetingName}}(<span class="underline-on-hover" style="color: blue;cursor:pointer" slot="reference" @click="exportOutMeetingNotices(scope.row)">会议通知</span>)
|
|
|
|
|
|
+ {{ scope.row.meetingName }}(<span class="underline-on-hover" style="color: blue;cursor:pointer"
|
|
|
|
+ slot="reference" @click="exportOutMeetingNotices(scope.row)">会议通知</span>)
|
|
</template>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table-column>
|
|
- <el-table-column label="会议地点" prop="meetingPlace" width="150" :show-overflow-tooltip="true">
|
|
|
|
- </el-table-column>
|
|
|
|
|
|
+ <el-table-column label="会议地点" prop="meetingPlace" width="150" :show-overflow-tooltip="true"/>
|
|
<el-table-column label="会议内容" prop="meetingContent" width="80">
|
|
<el-table-column label="会议内容" prop="meetingContent" width="80">
|
|
- <scope slot-scope="scope">
|
|
|
|
|
|
+ <template slot-scope="scope">
|
|
<el-popover
|
|
<el-popover
|
|
placement="bottom"
|
|
placement="bottom"
|
|
:title="meetingTitle"
|
|
:title="meetingTitle"
|
|
@@ -71,29 +71,29 @@
|
|
<el-table-column width="60" type="index" label="序号"></el-table-column>
|
|
<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-column min-width="300" property="content" label="内容"></el-table-column>
|
|
</el-table>
|
|
</el-table>
|
|
- <span class="underline-on-hover" style="color: blue;cursor:pointer" slot="reference" @click="searchMeetingContent(scope.row)">会议内容</span>
|
|
|
|
|
|
+ <span class="underline-on-hover" style="color: blue;cursor:pointer" slot="reference"
|
|
|
|
+ @click="searchMeetingContent(scope.row)">会议内容</span>
|
|
</el-popover>
|
|
</el-popover>
|
|
- </scope>
|
|
|
|
|
|
+ </template>
|
|
</el-table-column>
|
|
</el-table-column>
|
|
<el-table-column prop="address" label="参会人员" :show-overflow-tooltip="true">
|
|
<el-table-column prop="address" label="参会人员" :show-overflow-tooltip="true">
|
|
<template slot-scope="scope">
|
|
<template slot-scope="scope">
|
|
<span>{{ scope.row.outAttendees }}</span>
|
|
<span>{{ scope.row.outAttendees }}</span>
|
|
<span v-if="scope.row.outAttendees!=''">、</span>
|
|
<span v-if="scope.row.outAttendees!=''">、</span>
|
|
<span v-for="(item,index) in JSON.parse(scope.row.innerAttendees) ">
|
|
<span v-for="(item,index) in JSON.parse(scope.row.innerAttendees) ">
|
|
- <template v-if="index > 0">,</template>
|
|
|
|
|
|
+ <span v-if="index > 0">,</span>
|
|
<span>{{ item.name }}</span>
|
|
<span>{{ item.name }}</span>
|
|
- </span>
|
|
|
|
|
|
+ </span>
|
|
</template>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table-column>
|
|
- <el-table-column prop="name" label="会议时间" width="180">
|
|
|
|
|
|
+ <el-table-column prop="beginTime" label="会议时间" width="180">
|
|
<template slot-scope="scope">
|
|
<template slot-scope="scope">
|
|
- <div v-if="false">{{ parseTime(scope.row.beginTime) }}——{{ parseTime(scope.row.endTime) }}</div>
|
|
|
|
- <div>{{ parseTime(scope.row.beginTime) }} ({{scope.row.duration}}分钟)</div>
|
|
|
|
|
|
+ <div>{{ parseTime(scope.row.beginTime) }} ({{ scope.row.duration }}分钟)</div>
|
|
</template>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table-column>
|
|
- <el-table-column prop="emcee" label="主持人/记录人" width="150">
|
|
|
|
|
|
+ <el-table-column prop="emcee" label="主持人/记录人" width="120">
|
|
<template slot-scope="scope">
|
|
<template slot-scope="scope">
|
|
- {{scope.row.emcee}}/{{scope.row.recorder}}
|
|
|
|
|
|
+ <div>{{ scope.row.emcee }}/{{ scope.row.recorder }}</div>
|
|
</template>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table-column>
|
|
<el-table-column label="会议类型" prop="meetingType" width="80">
|
|
<el-table-column label="会议类型" prop="meetingType" width="80">
|
|
@@ -115,11 +115,11 @@
|
|
</el-table-column>
|
|
</el-table-column>
|
|
<el-table-column prop="status" label="确认状态" width="80">
|
|
<el-table-column prop="status" label="确认状态" width="80">
|
|
<template slot-scope="scope">
|
|
<template slot-scope="scope">
|
|
- <div style="color: red" v-if="scope.row.status!==0 && scope.row.meetingConfirmStatus===0">
|
|
|
|
|
|
+ <div style="color: red" v-if="scope.row.meetingConfirmStatus===0">
|
|
未确认
|
|
未确认
|
|
</div>
|
|
</div>
|
|
<div style="color: green"
|
|
<div style="color: green"
|
|
- v-else-if="scope.row.meetingConfirmStatus===1">
|
|
|
|
|
|
+ v-else-if="scope.row.meetingConfirmStatus===1">
|
|
已确认
|
|
已确认
|
|
</div>
|
|
</div>
|
|
<div v-else>无需确认</div>
|
|
<div v-else>无需确认</div>
|
|
@@ -132,13 +132,17 @@
|
|
</el-table-column>-->
|
|
</el-table-column>-->
|
|
<el-table-column label="操作" prop="op" width="300">
|
|
<el-table-column label="操作" prop="op" width="300">
|
|
<template slot-scope="scope">
|
|
<template slot-scope="scope">
|
|
- <el-button v-if="scope.row.status!==2 && scope.row.recorderOpFlag==='true'" size="mini" type="primary" @click="handleEdit(scope.row)">编辑
|
|
|
|
|
|
+ <el-button v-if="scope.row.status!==2 && scope.row.recorderOpFlag==='true'" size="mini" type="primary"
|
|
|
|
+ @click="handleEdit(scope.row)">编辑
|
|
</el-button>
|
|
</el-button>
|
|
- <el-button v-if="scope.row.status===0 && scope.row.recorderOpFlag==='true' " size="mini" type="danger" @click="deleteMeeting(scope.row)">删除
|
|
|
|
|
|
+ <el-button v-if="scope.row.status===0 && scope.row.recorderOpFlag==='true' " size="mini" type="danger"
|
|
|
|
+ @click="deleteMeeting(scope.row)">删除
|
|
</el-button>
|
|
</el-button>
|
|
- <el-button v-if="scope.row.status===0 && scope.row.recorderOpFlag==='true' " size="mini" type="success" @click="startMeeting(scope.row)">开始会议
|
|
|
|
|
|
+ <el-button v-if="scope.row.status===0 && scope.row.recorderOpFlag==='true' " size="mini" type="success"
|
|
|
|
+ @click="startMeeting(scope.row)">开始会议
|
|
</el-button>
|
|
</el-button>
|
|
- <el-button v-if="scope.row.status===1 && scope.row.recorderOpFlag==='true' " v-show="false" size="mini" type="warning" @click="endMeetingClick(scope.row)">结束会议
|
|
|
|
|
|
+ <el-button v-if="scope.row.status===1 && scope.row.recorderOpFlag==='true' " v-show="false" size="mini"
|
|
|
|
+ type="warning" @click="endMeetingClick(scope.row)">结束会议
|
|
</el-button>
|
|
</el-button>
|
|
<el-button v-if="scope.row.status!==0 " type="success" size="mini" @click="meetingDetail(scope.row)">会议详情
|
|
<el-button v-if="scope.row.status!==0 " type="success" size="mini" @click="meetingDetail(scope.row)">会议详情
|
|
</el-button>
|
|
</el-button>
|
|
@@ -304,12 +308,15 @@
|
|
</div>
|
|
</div>
|
|
</el-dialog>
|
|
</el-dialog>
|
|
|
|
|
|
- <el-dialog :visible.sync="projectMeetingDetailVisble" width="95%" @click="closeProjectMeetingDailog" fullscreen :close-on-click-modal="false" >
|
|
|
|
|
|
+ <el-dialog :visible.sync="projectMeetingDetailVisble" width="95%" @click="closeProjectMeetingDailog" fullscreen
|
|
|
|
+ :close-on-click-modal="false">
|
|
<div style="display: flex;justify-content: space-between;margin-bottom: 8px">
|
|
<div style="display: flex;justify-content: space-between;margin-bottom: 8px">
|
|
<div style="font-size: 24px">{{ pro.meetingName }}</div>
|
|
<div style="font-size: 24px">{{ pro.meetingName }}</div>
|
|
<div>
|
|
<div>
|
|
- <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>
|
|
|
|
|
|
+ <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>
|
|
</div>
|
|
</div>
|
|
<el-descriptions title="" border :column="3">
|
|
<el-descriptions title="" border :column="3">
|
|
@@ -329,11 +336,11 @@
|
|
{{ pro.meetingType }}
|
|
{{ pro.meetingType }}
|
|
</el-descriptions-item>
|
|
</el-descriptions-item>
|
|
<el-descriptions-item label="项目名称" :span="2">
|
|
<el-descriptions-item label="项目名称" :span="2">
|
|
- <el-tag type="success"> {{ pro.projectName }}</el-tag>
|
|
|
|
|
|
+ <el-tag type="success"> {{ pro.projectName }}</el-tag>
|
|
</el-descriptions-item>
|
|
</el-descriptions-item>
|
|
<el-descriptions-item label="内部参会人员">
|
|
<el-descriptions-item label="内部参会人员">
|
|
<span v-if="pro.innerAttendeesNew!==''" v-for="(item,index) in pro.innerAttendeesNew">
|
|
<span v-if="pro.innerAttendeesNew!==''" v-for="(item,index) in pro.innerAttendeesNew">
|
|
- <el-badge is-dot type="success" v-if="item.confirmFlag==='1'">
|
|
|
|
|
|
+ <el-badge is-dot type="success" v-if="item.confirmFlag==='1'">
|
|
{{ item.name }}
|
|
{{ item.name }}
|
|
</el-badge>
|
|
</el-badge>
|
|
<el-badge is-dot v-else type="danger">
|
|
<el-badge is-dot v-else type="danger">
|
|
@@ -344,19 +351,19 @@
|
|
<el-descriptions-item label="外部参会人员" v-if="pro.outAttendees!=''">
|
|
<el-descriptions-item label="外部参会人员" v-if="pro.outAttendees!=''">
|
|
{{ pro.outAttendees }}
|
|
{{ pro.outAttendees }}
|
|
</el-descriptions-item>
|
|
</el-descriptions-item>
|
|
- <el-descriptions-item label="主持人" >
|
|
|
|
|
|
+ <el-descriptions-item label="主持人">
|
|
{{ pro.emcee }}
|
|
{{ pro.emcee }}
|
|
</el-descriptions-item>
|
|
</el-descriptions-item>
|
|
- <el-descriptions-item label="记录人员" >
|
|
|
|
|
|
+ <el-descriptions-item label="记录人员">
|
|
{{ pro.recorder }}
|
|
{{ pro.recorder }}
|
|
</el-descriptions-item>
|
|
</el-descriptions-item>
|
|
<el-descriptions-item label="会议备注" :span="3">
|
|
<el-descriptions-item label="会议备注" :span="3">
|
|
<div v-html="pro.remarks"></div>
|
|
<div v-html="pro.remarks"></div>
|
|
</el-descriptions-item>
|
|
</el-descriptions-item>
|
|
<el-descriptions-item label="参会情况" :span="3">
|
|
<el-descriptions-item label="参会情况" :span="3">
|
|
- <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-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-item>
|
|
</el-descriptions>
|
|
</el-descriptions>
|
|
|
|
|
|
@@ -367,30 +374,30 @@
|
|
<template slot-scope="scope">
|
|
<template slot-scope="scope">
|
|
<el-input size="mini" v-model="scope.row.question" type="textarea" v-if="pro.status!=2"
|
|
<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>
|
|
:autosize="{ minRows: 4, maxRows: 10}" @input="editMeetingContents(scope.row)"></el-input>
|
|
- <div v-else>{{scope.row.question}}</div>
|
|
|
|
|
|
+ <div v-else>{{ scope.row.question }}</div>
|
|
</template>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table-column>
|
|
<el-table-column label="会议方案" prop="optionss">
|
|
<el-table-column label="会议方案" prop="optionss">
|
|
<template slot-scope="scope">
|
|
<template slot-scope="scope">
|
|
<el-input size="mini" v-model="scope.row.optionss" type="textarea" v-if="pro.status!=2"
|
|
<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>
|
|
:autosize="{ minRows: 4, maxRows: 10}" @input="editMeetingContents(scope.row)"></el-input>
|
|
- <div v-else>{{scope.row.optionss}}</div>
|
|
|
|
|
|
+ <div v-else>{{ scope.row.optionss }}</div>
|
|
</template>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table-column>
|
|
<el-table-column label="事项优先级" prop="priority" width="180">
|
|
<el-table-column label="事项优先级" prop="priority" width="180">
|
|
<template slot-scope="scope">
|
|
<template slot-scope="scope">
|
|
<el-select
|
|
<el-select
|
|
v-model="scope.row.priority" v-if="pro.status!=2"
|
|
v-model="scope.row.priority" v-if="pro.status!=2"
|
|
- placeholder="事项优先级" @change="editMeetingContents(scope.row)">
|
|
|
|
|
|
+ placeholder="事项优先级" @change="editMeetingContents(scope.row)">
|
|
<el-option
|
|
<el-option
|
|
v-for="dict in dict.type.task_priority"
|
|
v-for="dict in dict.type.task_priority"
|
|
:key="dict.value"
|
|
:key="dict.value"
|
|
:label="dict.label"
|
|
:label="dict.label"
|
|
:value="dict.value">
|
|
:value="dict.value">
|
|
- {{ dict.label }}
|
|
|
|
|
|
+ {{ dict.label }}
|
|
</el-option>
|
|
</el-option>
|
|
</el-select>
|
|
</el-select>
|
|
- <div v-else>{{scope.row.priority}}</div>
|
|
|
|
|
|
+ <div v-else>{{ scope.row.priority }}</div>
|
|
</template>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table-column>
|
|
<el-table-column label="执行人" width="180">
|
|
<el-table-column label="执行人" width="180">
|
|
@@ -400,29 +407,29 @@
|
|
@input="editMeetingContents(scope.row)">
|
|
@input="editMeetingContents(scope.row)">
|
|
<el-button @click="openUsers1('executorName',scope.row)" icon="el-icon-search" slot="append"></el-button>
|
|
<el-button @click="openUsers1('executorName',scope.row)" icon="el-icon-search" slot="append"></el-button>
|
|
</el-input>
|
|
</el-input>
|
|
- <div v-else>{{scope.row.executorName}}</div>
|
|
|
|
|
|
+ <div v-else>{{ scope.row.executorName }}</div>
|
|
</template>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table-column>
|
|
<el-table-column label="开始日期" width="180" prop="beginTime">
|
|
<el-table-column label="开始日期" width="180" prop="beginTime">
|
|
<template slot-scope="scope">
|
|
<template slot-scope="scope">
|
|
<el-date-picker size="mini" v-if="pro.status!=2"
|
|
<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)">
|
|
|
|
|
|
+ v-model="scope.row.beginTime" format="yyyy-MM-dd"
|
|
|
|
+ type="date" style="width: 150px"
|
|
|
|
+ placeholder="选择开始日期" @change="editMeetingContents(scope.row)">
|
|
</el-date-picker>
|
|
</el-date-picker>
|
|
- <div v-else>{{scope.row.beginTime.slice(0,10)}}</div>
|
|
|
|
|
|
+ <div v-else>{{ scope.row.beginTime.slice(0, 10) }}</div>
|
|
</template>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table-column>
|
|
<el-table-column label="结束日期" width="180" prop="endTime">
|
|
<el-table-column label="结束日期" width="180" prop="endTime">
|
|
- <template slot-scope="scope">
|
|
|
|
- <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>
|
|
|
|
|
|
+ <template slot-scope="scope">
|
|
|
|
+ <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>
|
|
</el-table>
|
|
<div slot="footer" class="dialog-footer">
|
|
<div slot="footer" class="dialog-footer">
|
|
@@ -441,11 +448,12 @@
|
|
<div style="display: flex;justify-content: space-between;margin-bottom: 8px">
|
|
<div style="display: flex;justify-content: space-between;margin-bottom: 8px">
|
|
<div style="font-size: 24px">{{ pro.meetingName }}</div>
|
|
<div style="font-size: 24px">{{ pro.meetingName }}</div>
|
|
<div>
|
|
<div>
|
|
- <el-button @click="backBtnClick" 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"
|
|
<el-button v-if="pro.status===2 && otherMeetingConfirmBtnFlag===true" type="success" size="mini"
|
|
@click="confirmOtherMeeting(pro)">会议结果确认
|
|
@click="confirmOtherMeeting(pro)">会议结果确认
|
|
</el-button>
|
|
</el-button>
|
|
- <el-button v-if="pro.status===1 && pro.recorderOpFlag==='true' " size="mini" type="primary" @click="endMeetingClick(pro)">结束会议
|
|
|
|
|
|
+ <el-button v-if="pro.status===1 && pro.recorderOpFlag==='true' " size="mini" type="primary"
|
|
|
|
+ @click="endMeetingClick(pro)">结束会议
|
|
</el-button>
|
|
</el-button>
|
|
|
|
|
|
</div>
|
|
</div>
|
|
@@ -468,7 +476,7 @@
|
|
</el-descriptions-item>
|
|
</el-descriptions-item>
|
|
<el-descriptions-item label="内部参会人员">
|
|
<el-descriptions-item label="内部参会人员">
|
|
<span v-if="pro.innerAttendeesNew!==''" v-for="(item,index) in pro.innerAttendeesNew">
|
|
<span v-if="pro.innerAttendeesNew!==''" v-for="(item,index) in pro.innerAttendeesNew">
|
|
- <el-badge is-dot type="success" v-if="item.confirmFlag==='1'">
|
|
|
|
|
|
+ <el-badge is-dot type="success" v-if="item.confirmFlag==='1'">
|
|
{{ item.name }}
|
|
{{ item.name }}
|
|
</el-badge>
|
|
</el-badge>
|
|
<el-badge is-dot v-else type="danger">
|
|
<el-badge is-dot v-else type="danger">
|
|
@@ -479,10 +487,10 @@
|
|
<el-descriptions-item label="外部参会人员" v-if="pro.outAttendees!=''">
|
|
<el-descriptions-item label="外部参会人员" v-if="pro.outAttendees!=''">
|
|
{{ pro.outAttendees }}
|
|
{{ pro.outAttendees }}
|
|
</el-descriptions-item>
|
|
</el-descriptions-item>
|
|
- <el-descriptions-item label="主持人" >
|
|
|
|
|
|
+ <el-descriptions-item label="主持人">
|
|
{{ pro.emcee }}
|
|
{{ pro.emcee }}
|
|
</el-descriptions-item>
|
|
</el-descriptions-item>
|
|
- <el-descriptions-item label="记录人员" >
|
|
|
|
|
|
+ <el-descriptions-item label="记录人员">
|
|
{{ pro.recorder }}
|
|
{{ pro.recorder }}
|
|
</el-descriptions-item>
|
|
</el-descriptions-item>
|
|
<el-descriptions-item label="会议备注" :span="3">
|
|
<el-descriptions-item label="会议备注" :span="3">
|
|
@@ -542,7 +550,7 @@ import DateUtil from "@/utils/date"
|
|
|
|
|
|
export default {
|
|
export default {
|
|
name: 'Meeting',
|
|
name: 'Meeting',
|
|
- dicts: [ 'task_priority'],
|
|
|
|
|
|
+ dicts: ['task_priority'],
|
|
watch: {
|
|
watch: {
|
|
filterText(val) {
|
|
filterText(val) {
|
|
this.$refs.dept.filter(val);
|
|
this.$refs.dept.filter(val);
|
|
@@ -572,9 +580,8 @@ export default {
|
|
meetingType: null,
|
|
meetingType: null,
|
|
status: null,
|
|
status: null,
|
|
searchAuthFlag: false,
|
|
searchAuthFlag: false,
|
|
- chooseType:'0',
|
|
|
|
- toDoMeeting:null,
|
|
|
|
-
|
|
|
|
|
|
+ chooseType: '0',
|
|
|
|
+ confirmStatus: undefined
|
|
},
|
|
},
|
|
editFormVisible: false,
|
|
editFormVisible: false,
|
|
title: '创建会议',
|
|
title: '创建会议',
|
|
@@ -625,7 +632,7 @@ export default {
|
|
endTime: null,
|
|
endTime: null,
|
|
meetingConfirmStatus: 0,
|
|
meetingConfirmStatus: 0,
|
|
remarks: null,
|
|
remarks: null,
|
|
- recorderOpFlag:'false',
|
|
|
|
|
|
+ recorderOpFlag: 'false',
|
|
meetingContents: [{
|
|
meetingContents: [{
|
|
id: null,
|
|
id: null,
|
|
meetingId: null,
|
|
meetingId: null,
|
|
@@ -636,15 +643,15 @@ export default {
|
|
executorId: null,
|
|
executorId: null,
|
|
beginTime: null,
|
|
beginTime: null,
|
|
endTime: null,
|
|
endTime: null,
|
|
- priority:'4',
|
|
|
|
|
|
+ priority: '4',
|
|
times: [],
|
|
times: [],
|
|
}],
|
|
}],
|
|
row: null
|
|
row: null
|
|
},
|
|
},
|
|
- meetingContents:[],
|
|
|
|
- meetingTitle:'',
|
|
|
|
- otherMeetingContentReadOnly:false,
|
|
|
|
- otherMeetingConfirmBtnFlag:true
|
|
|
|
|
|
+ meetingContents: [],
|
|
|
|
+ meetingTitle: '',
|
|
|
|
+ otherMeetingContentReadOnly: false,
|
|
|
|
+ otherMeetingConfirmBtnFlag: true
|
|
}
|
|
}
|
|
},
|
|
},
|
|
// 注册组件
|
|
// 注册组件
|
|
@@ -652,10 +659,11 @@ export default {
|
|
Pagination
|
|
Pagination
|
|
},
|
|
},
|
|
mounted() {
|
|
mounted() {
|
|
|
|
+ this.formInline.status = this.$route.query.status;
|
|
|
|
+ this.formInline.confirmStatus = this.$route.query.confirmStatus;
|
|
|
|
+ this.formInline.chooseType = this.$route.query.chooseType;
|
|
this.getData(this.formInline);
|
|
this.getData(this.formInline);
|
|
this.getDeptUserTrees();
|
|
this.getDeptUserTrees();
|
|
- this.formInline.status = this.$route.query.status;
|
|
|
|
- this.formInline.toDoMeeting = this.$route.query.toDoMeeting;
|
|
|
|
},
|
|
},
|
|
methods: {
|
|
methods: {
|
|
getDeptUserTrees() {
|
|
getDeptUserTrees() {
|
|
@@ -797,9 +805,9 @@ export default {
|
|
meetingName: '',
|
|
meetingName: '',
|
|
meetingType: null,
|
|
meetingType: null,
|
|
status: null,
|
|
status: null,
|
|
- searchAuthFlag:false,
|
|
|
|
|
|
+ searchAuthFlag: false,
|
|
chooseType: '0',
|
|
chooseType: '0',
|
|
- toDoMeeting:""
|
|
|
|
|
|
+ toDoMeeting: ""
|
|
}
|
|
}
|
|
this.getData(this.formInline);
|
|
this.getData(this.formInline);
|
|
},
|
|
},
|
|
@@ -853,7 +861,7 @@ export default {
|
|
for (let i = 0; i < innerAttendess.length; i++) {
|
|
for (let i = 0; i < innerAttendess.length; i++) {
|
|
temp.push(innerAttendess[i])
|
|
temp.push(innerAttendess[i])
|
|
}
|
|
}
|
|
- this.pro.innerAttendeesNew=temp
|
|
|
|
|
|
+ this.pro.innerAttendeesNew = temp
|
|
|
|
|
|
this.$message({
|
|
this.$message({
|
|
message: '操作成功!',
|
|
message: '操作成功!',
|
|
@@ -873,7 +881,7 @@ export default {
|
|
this.pro.outAttendees = row.outAttendees
|
|
this.pro.outAttendees = row.outAttendees
|
|
this.pro.innerAttendees = row.innerAttendees
|
|
this.pro.innerAttendees = row.innerAttendees
|
|
this.pro.recorder = row.recorder
|
|
this.pro.recorder = row.recorder
|
|
- this.pro.emcee=row.emcee
|
|
|
|
|
|
+ this.pro.emcee = row.emcee
|
|
this.pro.times = row.beginTime + '至' + row.endTime
|
|
this.pro.times = row.beginTime + '至' + row.endTime
|
|
this.pro.beginTime = row.beginTime
|
|
this.pro.beginTime = row.beginTime
|
|
this.pro.endTime = row.endTime
|
|
this.pro.endTime = row.endTime
|
|
@@ -908,7 +916,7 @@ export default {
|
|
this.pro.innerAttendees = innerPeople
|
|
this.pro.innerAttendees = innerPeople
|
|
this.pro.remark = row.remark
|
|
this.pro.remark = row.remark
|
|
this.pro.status = row.status
|
|
this.pro.status = row.status
|
|
- this.pro.recorderOpFlag=row.recorderOpFlag
|
|
|
|
|
|
+ this.pro.recorderOpFlag = row.recorderOpFlag
|
|
let meetingId = row.id
|
|
let meetingId = row.id
|
|
this.pro.id = row.id
|
|
this.pro.id = row.id
|
|
getMeetingDetailsById(meetingId).then(res => {
|
|
getMeetingDetailsById(meetingId).then(res => {
|
|
@@ -920,17 +928,17 @@ export default {
|
|
}
|
|
}
|
|
this.pro.innerAttendeesNew = temp
|
|
this.pro.innerAttendeesNew = temp
|
|
this.pro.meetingContents = data
|
|
this.pro.meetingContents = data
|
|
- this.pro.projectName=res.data.projectName
|
|
|
|
|
|
+ this.pro.projectName = res.data.projectName
|
|
if (row.meetingType === 2) {
|
|
if (row.meetingType === 2) {
|
|
- this.otherMeetingConfirmBtnFlag=res.data.otherMeetingConfirmBtnFlag
|
|
|
|
|
|
+ this.otherMeetingConfirmBtnFlag = res.data.otherMeetingConfirmBtnFlag
|
|
this.projectMeetingDetailVisble = true
|
|
this.projectMeetingDetailVisble = true
|
|
- }else{
|
|
|
|
- if(row.status===2){
|
|
|
|
- this.otherMeetingContentReadOnly=true
|
|
|
|
- }else{
|
|
|
|
- this.otherMeetingContentReadOnly=false
|
|
|
|
|
|
+ } else {
|
|
|
|
+ if (row.status === 2) {
|
|
|
|
+ this.otherMeetingContentReadOnly = true
|
|
|
|
+ } else {
|
|
|
|
+ this.otherMeetingContentReadOnly = false
|
|
}
|
|
}
|
|
- this.otherMeetingConfirmBtnFlag=res.data.otherMeetingConfirmBtnFlag
|
|
|
|
|
|
+ this.otherMeetingConfirmBtnFlag = res.data.otherMeetingConfirmBtnFlag
|
|
this.otherMeetingDetailVisble = true
|
|
this.otherMeetingDetailVisble = true
|
|
}
|
|
}
|
|
});
|
|
});
|
|
@@ -959,10 +967,10 @@ export default {
|
|
}
|
|
}
|
|
})
|
|
})
|
|
},
|
|
},
|
|
- endProMeetingClick(row){
|
|
|
|
|
|
+ endProMeetingClick(row) {
|
|
//点击会议确认时候判断信息是否完整
|
|
//点击会议确认时候判断信息是否完整
|
|
let data = this.pro.meetingContents;
|
|
let data = this.pro.meetingContents;
|
|
- // alert(JSON.stringify(data))
|
|
|
|
|
|
+ // alert(JSON.stringify(data))
|
|
for (let i = 0; i < data.length; i++) {
|
|
for (let i = 0; i < data.length; i++) {
|
|
let t = data[i];
|
|
let t = data[i];
|
|
if (t.question === '' || t.optionss === '' || t.executorName === '' || t.beginTime === null || t.endTime === null) {
|
|
if (t.question === '' || t.optionss === '' || t.executorName === '' || t.beginTime === null || t.endTime === null) {
|
|
@@ -987,7 +995,7 @@ export default {
|
|
message: '操作成功!',
|
|
message: '操作成功!',
|
|
type: 'success'
|
|
type: 'success'
|
|
});
|
|
});
|
|
- this.pro.status=2
|
|
|
|
|
|
+ this.pro.status = 2
|
|
this.getData(this.formInline);
|
|
this.getData(this.formInline);
|
|
})
|
|
})
|
|
}
|
|
}
|
|
@@ -1138,7 +1146,7 @@ export default {
|
|
return
|
|
return
|
|
}
|
|
}
|
|
let data = this.pro.meetingContents;
|
|
let data = this.pro.meetingContents;
|
|
- let datas=[]
|
|
|
|
|
|
+ let datas = []
|
|
for (let i = 0; i < data.length; i++) {
|
|
for (let i = 0; i < data.length; i++) {
|
|
let t = data[i];
|
|
let t = data[i];
|
|
if (t.question === '' || t.optionss === '' || t.executorName === '' || t.beginTime === null || t.endTime === null) {
|
|
if (t.question === '' || t.optionss === '' || t.executorName === '' || t.beginTime === null || t.endTime === null) {
|
|
@@ -1148,9 +1156,9 @@ export default {
|
|
});
|
|
});
|
|
return
|
|
return
|
|
}
|
|
}
|
|
- t.beginTime=new Date(t.beginTime).getTime()
|
|
|
|
- t.endTime=new Date(t.endTime).getTime()
|
|
|
|
- t.times=[]
|
|
|
|
|
|
+ t.beginTime = new Date(t.beginTime).getTime()
|
|
|
|
+ t.endTime = new Date(t.endTime).getTime()
|
|
|
|
+ t.times = []
|
|
datas.push(t)
|
|
datas.push(t)
|
|
}
|
|
}
|
|
saveMeetingOptionss(datas).then(res => {
|
|
saveMeetingOptionss(datas).then(res => {
|
|
@@ -1233,13 +1241,13 @@ export default {
|
|
},
|
|
},
|
|
editMeetingContents(row) {
|
|
editMeetingContents(row) {
|
|
let data = row;
|
|
let data = row;
|
|
- if(row.beginTime!==undefined && row.beginTime!=null){
|
|
|
|
- data.beginTime=new Date(row.beginTime).getTime();
|
|
|
|
|
|
+ if (row.beginTime !== undefined && row.beginTime != null) {
|
|
|
|
+ data.beginTime = new Date(row.beginTime).getTime();
|
|
}
|
|
}
|
|
- if(row.endTime!==undefined && row.endTime!=null){
|
|
|
|
- data.endTime=new Date(row.endTime).getTime()
|
|
|
|
|
|
+ if (row.endTime !== undefined && row.endTime != null) {
|
|
|
|
+ data.endTime = new Date(row.endTime).getTime()
|
|
}
|
|
}
|
|
- data.times=[]
|
|
|
|
|
|
+ data.times = []
|
|
editMeetingContent(data).then(res => {
|
|
editMeetingContent(data).then(res => {
|
|
// this.$message.success("操作成功!")
|
|
// this.$message.success("操作成功!")
|
|
});
|
|
});
|
|
@@ -1256,54 +1264,54 @@ export default {
|
|
}
|
|
}
|
|
return data.name.indexOf(value) !== -1;
|
|
return data.name.indexOf(value) !== -1;
|
|
},
|
|
},
|
|
- searchMeetingContent(row){
|
|
|
|
- let id=row.id
|
|
|
|
- this.meetingTitle=row.meetingName
|
|
|
|
|
|
+ searchMeetingContent(row) {
|
|
|
|
+ let id = row.id
|
|
|
|
+ this.meetingTitle = row.meetingName
|
|
getMeetingContentsByMeetingId(id).then(res => {
|
|
getMeetingContentsByMeetingId(id).then(res => {
|
|
- let contents=res.data
|
|
|
|
- this.meetingContents=contents
|
|
|
|
|
|
+ let contents = res.data
|
|
|
|
+ this.meetingContents = contents
|
|
})
|
|
})
|
|
},
|
|
},
|
|
- exportOutMeetingNotices(row){
|
|
|
|
- let id=row.id
|
|
|
|
|
|
+ exportOutMeetingNotices(row) {
|
|
|
|
+ let id = row.id
|
|
exportOutMeetingNotice(id);
|
|
exportOutMeetingNotice(id);
|
|
},
|
|
},
|
|
- editMeetings(data){
|
|
|
|
- let newData={
|
|
|
|
- id:data.id,
|
|
|
|
- remark:data.remark
|
|
|
|
|
|
+ editMeetings(data) {
|
|
|
|
+ let newData = {
|
|
|
|
+ id: data.id,
|
|
|
|
+ remark: data.remark
|
|
}
|
|
}
|
|
- editMeeting(newData).then(res=>{
|
|
|
|
|
|
+ editMeeting(newData).then(res => {
|
|
//this.$message.success("操作成功")
|
|
//this.$message.success("操作成功")
|
|
})
|
|
})
|
|
},
|
|
},
|
|
- confirmOtherMeeting(m){
|
|
|
|
- let data={
|
|
|
|
- id:m.id
|
|
|
|
|
|
+ confirmOtherMeeting(m) {
|
|
|
|
+ let data = {
|
|
|
|
+ id: m.id
|
|
}
|
|
}
|
|
- confirmOthersMeeting(data).then(res=>{
|
|
|
|
|
|
+ confirmOthersMeeting(data).then(res => {
|
|
this.getMeetingConfirmBtnFlags(data);
|
|
this.getMeetingConfirmBtnFlags(data);
|
|
let innerAttendess = JSON.parse(res.data.innerAttendees)
|
|
let innerAttendess = JSON.parse(res.data.innerAttendees)
|
|
let temp = [];
|
|
let temp = [];
|
|
for (let i = 0; i < innerAttendess.length; i++) {
|
|
for (let i = 0; i < innerAttendess.length; i++) {
|
|
temp.push(innerAttendess[i])
|
|
temp.push(innerAttendess[i])
|
|
}
|
|
}
|
|
- this.pro.innerAttendeesNew=temp
|
|
|
|
|
|
+ this.pro.innerAttendeesNew = temp
|
|
this.$message.success("操作成功")
|
|
this.$message.success("操作成功")
|
|
})
|
|
})
|
|
},
|
|
},
|
|
- getMeetingConfirmBtnFlags(m){
|
|
|
|
- let data={
|
|
|
|
- id:m.id
|
|
|
|
|
|
+ getMeetingConfirmBtnFlags(m) {
|
|
|
|
+ let data = {
|
|
|
|
+ id: m.id
|
|
}
|
|
}
|
|
- getMeetingConfirmBtnFlag(data).then(res=>{
|
|
|
|
- let d= res.data;
|
|
|
|
- this.otherMeetingConfirmBtnFlag=d.otherMeetingConfirmBtnFlag;
|
|
|
|
|
|
+ getMeetingConfirmBtnFlag(data).then(res => {
|
|
|
|
+ let d = res.data;
|
|
|
|
+ this.otherMeetingConfirmBtnFlag = d.otherMeetingConfirmBtnFlag;
|
|
})
|
|
})
|
|
},
|
|
},
|
|
- backBtnClick(){
|
|
|
|
|
|
+ backBtnClick() {
|
|
this.otherMeetingDetailVisble = false
|
|
this.otherMeetingDetailVisble = false
|
|
- this.projectMeetingDetailVisble=false
|
|
|
|
|
|
+ this.projectMeetingDetailVisble = false
|
|
this.getData(this.formInline);
|
|
this.getData(this.formInline);
|
|
}
|
|
}
|
|
}
|
|
}
|