|
@@ -12,7 +12,7 @@
|
|
</el-form-item>
|
|
</el-form-item>
|
|
<el-form-item label="会议类型:">
|
|
<el-form-item label="会议类型:">
|
|
<el-select v-model="formInline.meetingType" placeholder="会议类型" clearable>
|
|
<el-select 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>
|
|
<el-option label="其他会议" value="4" key="其他会议">其他会议</el-option>
|
|
<el-option label="其他会议" value="4" key="其他会议">其他会议</el-option>
|
|
@@ -81,14 +81,14 @@
|
|
<span>{{ parseTime(scope.row.createTime) }}</span>
|
|
<span>{{ parseTime(scope.row.createTime) }}</span>
|
|
</template>
|
|
</template>
|
|
</el-table-column>-->
|
|
</el-table-column>-->
|
|
- <el-table-column label="操作" prop="op" width="200">
|
|
|
|
|
|
+ <el-table-column label="操作" prop="op" width="250">
|
|
<template slot-scope="scope">
|
|
<template slot-scope="scope">
|
|
|
|
|
|
<el-button v-if="scope.row.status!==2" size="mini" type="primary" @click="handleEdit(scope.row)">编辑
|
|
<el-button v-if="scope.row.status!==2" size="mini" type="primary" @click="handleEdit(scope.row)">编辑
|
|
</el-button>
|
|
</el-button>
|
|
<el-button v-if="scope.row.status===0" size="mini" type="danger" @click="deleteMeeting( scope.row)">删除
|
|
<el-button v-if="scope.row.status===0" size="mini" type="danger" @click="deleteMeeting( scope.row)">删除
|
|
</el-button>
|
|
</el-button>
|
|
- <el-button v-if="scope.row.status===0" size="mini" type="danger" @click="startMeeting( scope.row)">开始会议
|
|
|
|
|
|
+ <el-button v-if="scope.row.status===0" size="mini" type="success" @click="startMeeting( 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>
|
|
@@ -106,7 +106,7 @@
|
|
<el-input v-model="editForm.meetingName"></el-input>
|
|
<el-input v-model="editForm.meetingName"></el-input>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
<el-form-item label="会议类别:">
|
|
<el-form-item label="会议类别:">
|
|
- <el-radio-group v-model="editForm.external">
|
|
|
|
|
|
+ <el-radio-group v-model="editForm.external" @input="changeMeetingExternal">
|
|
<el-radio :label="1">外部会议</el-radio>
|
|
<el-radio :label="1">外部会议</el-radio>
|
|
<el-radio :label="0">内部会议</el-radio>
|
|
<el-radio :label="0">内部会议</el-radio>
|
|
</el-radio-group>
|
|
</el-radio-group>
|
|
@@ -116,9 +116,9 @@
|
|
<el-form-item label="会议类型:" prop="meetingType"
|
|
<el-form-item label="会议类型:" prop="meetingType"
|
|
:rules="[{required:true,message: '请选择会议类型', trigger: 'blur'}]">
|
|
:rules="[{required:true,message: '请选择会议类型', trigger: 'blur'}]">
|
|
<el-select v-model="editForm.meetingType" placeholder="会议类型" clearable>
|
|
<el-select v-model="editForm.meetingType" placeholder="会议类型" clearable>
|
|
- <el-option label="周例会" :value="1" key="周例会">周例会</el-option>
|
|
|
|
|
|
+ <el-option label="周例会" :value="1" key="周例会" v-if="editForm.external===0">周例会</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="实施会议" v-if="editForm.external===0">实施会议</el-option>
|
|
<el-option label="其他会议" :value="4" key="其他会议">其他会议</el-option>
|
|
<el-option label="其他会议" :value="4" key="其他会议">其他会议</el-option>
|
|
</el-select>
|
|
</el-select>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
@@ -138,7 +138,7 @@
|
|
<el-form-item label="会议地点:" prop="meetingPlace" :rules="[{required:true,message: '请输入会议地点', trigger: 'blur'}]">
|
|
<el-form-item label="会议地点:" prop="meetingPlace" :rules="[{required:true,message: '请输入会议地点', trigger: 'blur'}]">
|
|
<el-input size="mini" v-model="editForm.meetingPlace"></el-input>
|
|
<el-input size="mini" v-model="editForm.meetingPlace"></el-input>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
- <el-form-item label="会议时间:" prop="time" :rules="[{required:true,message: '请选择会议时间', trigger: 'blur'}]">
|
|
|
|
|
|
+ <el-form-item v-show="false" label="会议时间:">
|
|
<el-date-picker
|
|
<el-date-picker
|
|
v-model="editForm.time"
|
|
v-model="editForm.time"
|
|
value-format="yyyy-MM-dd HH:mm:ss"
|
|
value-format="yyyy-MM-dd HH:mm:ss"
|
|
@@ -149,6 +149,34 @@
|
|
end-placeholder="结束日期">
|
|
end-placeholder="结束日期">
|
|
</el-date-picker>
|
|
</el-date-picker>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
|
+ <el-form-item label="会议时间:" prop="time">
|
|
|
|
+ <el-date-picker
|
|
|
|
+ v-model="editForm.startTime"
|
|
|
|
+ type="datetime"
|
|
|
|
+ value-format="yyyy-MM-dd HH:mm:ss"
|
|
|
|
+ format="yyyy-MM-dd HH:mm:ss" default-time="12:00:00"
|
|
|
|
+ placeholder="选择会议开始时间" @change="chooseMeetingStartTime">
|
|
|
|
+ </el-date-picker>
|
|
|
|
+ <el-date-picker
|
|
|
|
+ v-show="endTimeShow"
|
|
|
|
+ v-model="editForm.endTime"
|
|
|
|
+ type="datetime"
|
|
|
|
+ value-format="yyyy-MM-dd HH:mm:ss"
|
|
|
|
+ format="yyyy-MM-dd HH:mm:ss" default-time="12:00:00"
|
|
|
|
+ placeholder="选择会议结束时间" @change="chooseMeetingEndTime">
|
|
|
|
+ </el-date-picker>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="会议时长:" >
|
|
|
|
+ <el-select v-model="editForm.duration" placeholder="请选择会议时长" clearable @change="chooseMeetingTime">
|
|
|
|
+ <el-option label="15分钟" :value="15" key="15分钟">15分钟</el-option>
|
|
|
|
+ <el-option label="30分钟" :value="30" key="30分钟">30分钟</el-option>
|
|
|
|
+ <el-option label="45分钟" :value="45" key="45分钟">45分钟</el-option>
|
|
|
|
+ <el-option label="1小时" :value="60" key="15分钟">1小时</el-option>
|
|
|
|
+ <el-option label="2小时" :value="120" key="2小时">2小时</el-option>
|
|
|
|
+ <el-option label="3小时" :value="180" key="3小时">3小时</el-option>
|
|
|
|
+ <el-option label="其他" :value="0" key="其他">其他</el-option>
|
|
|
|
+ </el-select>
|
|
|
|
+ </el-form-item>
|
|
<el-form-item label="外部参会人员:">
|
|
<el-form-item label="外部参会人员:">
|
|
<el-input size="mini" v-model="editForm.outAttendees"></el-input>
|
|
<el-input size="mini" v-model="editForm.outAttendees"></el-input>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
@@ -164,8 +192,7 @@
|
|
</el-input>
|
|
</el-input>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
<el-form-item label="记录人:" prop="recorder" :rules="[{required:true,message: '请选择会议记录人', trigger: 'change'}]">
|
|
<el-form-item label="记录人:" prop="recorder" :rules="[{required:true,message: '请选择会议记录人', trigger: 'change'}]">
|
|
- <el-input size="mini" v-model="editForm.recorder" readonly="true"
|
|
|
|
- @keyup.enter.native="openUsers1('recorder')">
|
|
|
|
|
|
+ <el-input size="mini" v-model="editForm.recorder" readonly="true" @keyup.enter.native="openUsers1('recorder')">
|
|
<el-button @click="openUsers1('recorder')" icon="el-icon-search" slot="append"></el-button>
|
|
<el-button @click="openUsers1('recorder')" icon="el-icon-search" slot="append"></el-button>
|
|
</el-input>
|
|
</el-input>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
@@ -173,8 +200,7 @@
|
|
<el-input type="textarea" :rows="2" size="mini" v-model="editForm.remark"></el-input>
|
|
<el-input type="textarea" :rows="2" size="mini" v-model="editForm.remark"></el-input>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
<el-form-item label="会议内容:">
|
|
<el-form-item label="会议内容:">
|
|
- <el-table
|
|
|
|
- style="width: 100%" border stripe :show-header="false" :data="editForm.meetingContents">
|
|
|
|
|
|
+ <el-table style="width: 100%" border stripe :show-header="false" :data="editForm.meetingContents">
|
|
<el-table-column type="index" label="序号" width="40">
|
|
<el-table-column type="index" label="序号" width="40">
|
|
</el-table-column>
|
|
</el-table-column>
|
|
<el-table-column label="工作内容" prop="content">
|
|
<el-table-column label="工作内容" prop="content">
|
|
@@ -265,13 +291,13 @@
|
|
<el-table-column label="会议问题" prop="question">
|
|
<el-table-column label="会议问题" prop="question">
|
|
<template slot-scope="scope">
|
|
<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"
|
|
- :autosize="{ minRows: 4, maxRows: 10}" :disabled="pro.status=='2'"></el-input>
|
|
|
|
|
|
+ :autosize="{ minRows: 4, maxRows: 10}" ></el-input>
|
|
</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"
|
|
<el-input size="mini" v-model="scope.row.optionss" type="textarea"
|
|
- :autosize="{ minRows: 4, maxRows: 10}" :disabled="pro.status=='2'"></el-input>
|
|
|
|
|
|
+ :autosize="{ minRows: 4, maxRows: 10}"></el-input>
|
|
</template>
|
|
</template>
|
|
|
|
|
|
</el-table-column>
|
|
</el-table-column>
|
|
@@ -279,7 +305,7 @@
|
|
<template slot-scope="scope">
|
|
<template slot-scope="scope">
|
|
<el-input size="mini" v-model="scope.row.executorName" readonly
|
|
<el-input size="mini" v-model="scope.row.executorName" readonly
|
|
@keyup.enter.native="openUsers1('executorName',scope.row)">
|
|
@keyup.enter.native="openUsers1('executorName',scope.row)">
|
|
- <el-button @click="openUsers1('executorName',scope.row)" icon="el-icon-search" slot="append" :disabled="pro.status=='2'"></el-button>
|
|
|
|
|
|
+ <el-button @click="openUsers1('executorName',scope.row)" icon="el-icon-search" slot="append" ></el-button>
|
|
</el-input>
|
|
</el-input>
|
|
</template>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table-column>
|
|
@@ -290,7 +316,6 @@
|
|
value-format="yyyy-MM-dd"
|
|
value-format="yyyy-MM-dd"
|
|
format="yyyy-MM-dd"
|
|
format="yyyy-MM-dd"
|
|
type="daterange"
|
|
type="daterange"
|
|
- :disabled="pro.status=='2'"
|
|
|
|
style="width: 100%"
|
|
style="width: 100%"
|
|
range-separator="至"
|
|
range-separator="至"
|
|
start-placeholder="开始日期"
|
|
start-placeholder="开始日期"
|
|
@@ -388,6 +413,7 @@ export default {
|
|
},
|
|
},
|
|
editFormVisible: false,
|
|
editFormVisible: false,
|
|
title: '创建会议',
|
|
title: '创建会议',
|
|
|
|
+ endTimeShow:false,
|
|
editForm: {
|
|
editForm: {
|
|
id: null,
|
|
id: null,
|
|
meetingName: '',
|
|
meetingName: '',
|
|
@@ -396,6 +422,8 @@ export default {
|
|
projectId: null,
|
|
projectId: null,
|
|
meetingPlace: '',
|
|
meetingPlace: '',
|
|
time: null,
|
|
time: null,
|
|
|
|
+ startTime:null,
|
|
|
|
+ endTime:null,
|
|
outAttendees: '',
|
|
outAttendees: '',
|
|
innerAttendees: '',
|
|
innerAttendees: '',
|
|
innerAttendesss: null,
|
|
innerAttendesss: null,
|
|
@@ -403,6 +431,7 @@ export default {
|
|
remark: '',
|
|
remark: '',
|
|
emcee: '',
|
|
emcee: '',
|
|
recorder: '',
|
|
recorder: '',
|
|
|
|
+ duration:null,
|
|
meetingContents: [
|
|
meetingContents: [
|
|
{content: '会议内容', 'op': ''}
|
|
{content: '会议内容', 'op': ''}
|
|
]
|
|
]
|
|
@@ -424,6 +453,8 @@ export default {
|
|
recorder: '',
|
|
recorder: '',
|
|
remark: '',
|
|
remark: '',
|
|
status: null,
|
|
status: null,
|
|
|
|
+ beginTime:null,
|
|
|
|
+ endTime:null,
|
|
meetingContents: [{
|
|
meetingContents: [{
|
|
id: null,
|
|
id: null,
|
|
meetingId: null,
|
|
meetingId: null,
|
|
@@ -519,6 +550,10 @@ export default {
|
|
this.$refs["form"].validate((valid) => {
|
|
this.$refs["form"].validate((valid) => {
|
|
if (valid) {
|
|
if (valid) {
|
|
let data = this.editForm;
|
|
let data = this.editForm;
|
|
|
|
+ let times=[]
|
|
|
|
+ times.push(this.editForm.startTime)
|
|
|
|
+ times.push(this.editForm.endTime)
|
|
|
|
+ this.editForm.time=times
|
|
addMeeting(data).then(response => {
|
|
addMeeting(data).then(response => {
|
|
this.$message({
|
|
this.$message({
|
|
message: '操作成功!',
|
|
message: '操作成功!',
|
|
@@ -602,6 +637,8 @@ export default {
|
|
this.pro.innerAttendees = row.innerAttendees
|
|
this.pro.innerAttendees = row.innerAttendees
|
|
this.pro.recorder = row.recorder
|
|
this.pro.recorder = row.recorder
|
|
this.pro.times = row.beginTime + '至' + row.endTime
|
|
this.pro.times = row.beginTime + '至' + row.endTime
|
|
|
|
+ this.pro.beginTime=row.beginTime
|
|
|
|
+ this.pro.endTime=row.endTime
|
|
this.pro.meetingPlace = row.meetingPlace
|
|
this.pro.meetingPlace = row.meetingPlace
|
|
let meetingType = row.meetingType
|
|
let meetingType = row.meetingType
|
|
//1-周例会,2-项目会议,3-实施会议,4-其他会议
|
|
//1-周例会,2-项目会议,3-实施会议,4-其他会议
|
|
@@ -635,6 +672,7 @@ export default {
|
|
this.pro.id = row.id
|
|
this.pro.id = row.id
|
|
getMeetingDetailsById(meetingId).then(res => {
|
|
getMeetingDetailsById(meetingId).then(res => {
|
|
let data = res.data.meetingContents
|
|
let data = res.data.meetingContents
|
|
|
|
+
|
|
this.pro.meetingContents = data
|
|
this.pro.meetingContents = data
|
|
});
|
|
});
|
|
}
|
|
}
|
|
@@ -759,6 +797,9 @@ export default {
|
|
time.push(data.beginTime);
|
|
time.push(data.beginTime);
|
|
time.push(data.endTime);
|
|
time.push(data.endTime);
|
|
this.editForm.time = time;
|
|
this.editForm.time = time;
|
|
|
|
+ this.editForm.startTime=data.beginTime
|
|
|
|
+ this.editForm.endTime=data.endTime
|
|
|
|
+ this.editForm.duration=data.duration
|
|
this.title = '修改会议'
|
|
this.title = '修改会议'
|
|
this.editFormVisible = true
|
|
this.editFormVisible = true
|
|
});
|
|
});
|
|
@@ -794,6 +835,74 @@ export default {
|
|
},
|
|
},
|
|
closeotherMeetingDailog() {
|
|
closeotherMeetingDailog() {
|
|
this.otherMeetingDetailVisble = false;
|
|
this.otherMeetingDetailVisble = false;
|
|
|
|
+ },
|
|
|
|
+ changeMeetingExternal(){
|
|
|
|
+
|
|
|
|
+ },
|
|
|
|
+ chooseMeetingTime(){
|
|
|
|
+ //选择会议时长
|
|
|
|
+ let duration=this.editForm.duration
|
|
|
|
+ if(duration===0){
|
|
|
|
+ this.endTimeShow=true
|
|
|
|
+ }else{
|
|
|
|
+ this.endTimeShow=false
|
|
|
|
+ //计算会议结束日期
|
|
|
|
+ let startTime=this.editForm.startTime
|
|
|
|
+ if(startTime===undefined || startTime===null){
|
|
|
|
+ let currentDate = new Date();
|
|
|
|
+ let newDate = new Date(currentDate.getTime() + duration * 60000);
|
|
|
|
+ let now = this.$moment(newDate).format('YYYY-MM-DD HH:mm:ss')
|
|
|
|
+ this.editForm.endTime=now
|
|
|
|
+ }else{
|
|
|
|
+ let currentDate = new Date(startTime);
|
|
|
|
+ let newDate = new Date(currentDate.getTime() + duration * 60000);
|
|
|
|
+ let now = this.$moment(newDate).format('YYYY-MM-DD HH:mm:ss')
|
|
|
|
+ this.editForm.endTime=now
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ addMinutesToCurrentTime(minutes) {
|
|
|
|
+ let currentDate = new Date();
|
|
|
|
+ let newDate = new Date(currentDate.getTime() + minutes * 60000);
|
|
|
|
+ return newDate;
|
|
|
|
+ },
|
|
|
|
+ chooseMeetingStartTime(){
|
|
|
|
+ let startTime=this.editForm.startTime
|
|
|
|
+ if(startTime===undefined || startTime===null){
|
|
|
|
+ this.$message.error("请选择会议开始时间!")
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ let duration=this.editForm.duration
|
|
|
|
+ let currentDate = new Date(startTime);
|
|
|
|
+ let newDate = new Date(currentDate.getTime() + duration * 60000);
|
|
|
|
+ let now = this.$moment(newDate).format('YYYY-MM-DD HH:mm:ss')
|
|
|
|
+ this.editForm.endTime=now
|
|
|
|
+
|
|
|
|
+ },
|
|
|
|
+ chooseMeetingEndTime(){
|
|
|
|
+ let startTime=this.editForm.startTime
|
|
|
|
+ let endTime=this.editForm.endTime
|
|
|
|
+ if(startTime===undefined || startTime===null){
|
|
|
|
+ this.$message.error("请选择会议开始时间!")
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ if(endTime===undefined || endTime===null){
|
|
|
|
+ this.$message.error("请选择会议结束时间!")
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ if(startTime>endTime){
|
|
|
|
+ this.$message.error("会议开始时间不能大于会议结束时间!")
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ //计算时长
|
|
|
|
+ let calculateTimeDuration=this.calculateTimeDuration(startTime,endTime);
|
|
|
|
+ this.editForm.duration=calculateTimeDuration
|
|
|
|
+ },
|
|
|
|
+ calculateTimeDuration(time1, time2) {
|
|
|
|
+ let date1 = new Date(time1);
|
|
|
|
+ let date2 = new Date(time2);
|
|
|
|
+ let duration = Math.abs(date1.getTime() - date2.getTime());
|
|
|
|
+ return duration;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|