935 lines
30 KiB
Vue
935 lines
30 KiB
Vue
<!--标准化活动日历-->
|
|
<template>
|
|
<div class="standCalendar">
|
|
<el-row :gutter="24">
|
|
<el-col :span="12">
|
|
<el-card>
|
|
<div class="header">
|
|
<div class="date-picker" style="display: inline">
|
|
<span class="item">
|
|
<el-select v-model="formData.year" @change="handleDate">
|
|
<el-option v-for="(item, index) in year" :value="item" :key="index">{{ item }}</el-option>
|
|
</el-select>
|
|
</span>
|
|
<span class="item">
|
|
<el-select v-model="formData.month" @change="handleDate">
|
|
<el-option v-for="(item, index) in month" :value="item" :key="index">{{ item }}</el-option>
|
|
</el-select>
|
|
</span>
|
|
</div>
|
|
<div style="float: right;display: inline;height: 30px;padding-right: 5px">
|
|
<el-button size="mini" type="primary" plain @click="today">今天</el-button>
|
|
</div>
|
|
</div>
|
|
<el-calendar v-model="value">
|
|
<template slot="dateCell" slot-scope="{date, data}">
|
|
<div @click="calendarOnClick(data)">
|
|
<div class="calendar-day" style="text-align: center;">
|
|
<span class="everyDay" style="line-height: 40px">
|
|
{{ data.day.split('-').slice(2).join('-') }}
|
|
<br/>
|
|
<span v-if="!dealMyDate(data.day)">
|
|
<el-tag style="background-color: unset;border-color: unset;border-width: 0"/>
|
|
</span>
|
|
<!-- 获取当前登录人的会议并表示出来-->
|
|
<span v-for="(item,index) in dealMyDate(data.day)" :value="index">
|
|
<el-tag v-if="userId === item.fillPeopleId" class="tagTwo"/>
|
|
</span>
|
|
<span v-if="dealMyDate(data.day).length > 0">
|
|
<el-tag class="tagOne"/>
|
|
</span>
|
|
</span>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</el-calendar>
|
|
<!-- <div class="footer">
|
|
<el-tag style="background-color: #e6a23c;color: white">当天会议</el-tag>
|
|
<el-tag style="margin-left: 20px;background-color: #67c23a;color: white">我的会议</el-tag>
|
|
</div>-->
|
|
</el-card>
|
|
</el-col>
|
|
<el-col :span="12">
|
|
<el-card style="height: 655px;overflow: auto">
|
|
<div class="title_time">{{ timeDay.day || nowDate }}</div>
|
|
<span class="card_info_empty " v-if="todayData.length === 0">
|
|
<div style="text-align: center">
|
|
<img :src="require('@/assets/images/meeting.png')">
|
|
</div>
|
|
<div style="text-align: center;font-weight: bold;color: #99999a">暂无会议</div>
|
|
</span>
|
|
<el-card class="card_info" v-else v-for="(item, index) in todayData" :value="item" :key="index">
|
|
<span v-for="res in item.attend" :key="res.fillPeopleId">
|
|
<el-tag v-if="userId === res.fillPeopleId" type="success" size="mini">会议</el-tag>
|
|
</span>
|
|
<span>
|
|
<el-tag type="warning" size="mini">会议</el-tag>
|
|
</span>
|
|
<span style="float: right;padding-right: 5px">
|
|
<el-button type="primary" size="mini" plain @click="edit_meeting(item)">编辑会议内容</el-button>
|
|
</span>
|
|
<i style="margin-left: 10px;font-weight: bold">{{ item.title }}</i>
|
|
<div class="content_style">
|
|
<div class="content_text">
|
|
<span>会议时间 : {{ $moment(item.date).format('YYYY-MM-DD HH:mm:ss') }} </span>
|
|
</div>
|
|
<div class="content_text2">
|
|
<span>参与人 : {{ item.partPeople.join('、') }} </span>
|
|
</div>
|
|
<div class="content_text2">
|
|
<span>会议内容 : {{ item.content }}</span>
|
|
</div>
|
|
<div class="content_text2">
|
|
<span>会议地点 : {{ item.place }}</span>
|
|
</div>
|
|
<div class="content_text">
|
|
<span>会议附件 :
|
|
<span v-if="item.files.length === 0">{{ '-' }}</span>
|
|
<div v-else v-for="res in item.files" :key="res.id" style="color: #409EFF;margin-left: 58px;margin-top: -32px;line-height: 50px" @click="previews(res.id)">
|
|
<a v-if="res.name.length > 30" style="cursor: pointer;margin-bottom: 5px">
|
|
{{ res.name.slice(0, 30) + '...' }} {{ ';' }}
|
|
</a>
|
|
<a v-else style="cursor: pointer">
|
|
{{ res.name }} {{ ';' }}
|
|
</a>
|
|
</div>
|
|
</span>
|
|
</div>
|
|
</div>
|
|
</el-card>
|
|
</el-card>
|
|
</el-col>
|
|
</el-row>
|
|
|
|
<!-- 会议编辑抽屉 -->
|
|
<el-drawer
|
|
title="编辑会议信息"
|
|
:visible.sync="meetFlag"
|
|
:before-close="falseDrawer"
|
|
size="800px"
|
|
>
|
|
<div class="content_form" style="height: calc(100% - 20px);overflow-y: auto">
|
|
<el-form class="label-input-form" ref="editMeetForm" :model="editMeetForm" label-width="80px">
|
|
<el-form-item class="add-form-item" label="会议标题:">
|
|
<el-input v-model="editMeetForm.title" placeholder=""></el-input>
|
|
</el-form-item>
|
|
<el-form-item class="add-form-item" label="参与人员:">
|
|
<div class="myPart_btn">
|
|
<el-button
|
|
type="primary"
|
|
size="small"
|
|
@click="add_partForm">
|
|
新增
|
|
</el-button>
|
|
<el-button
|
|
type="danger"
|
|
size="small"
|
|
@click="del_partForm">
|
|
批量删除
|
|
</el-button>
|
|
</div>
|
|
<el-table
|
|
:data="editMeetForm.attend"
|
|
border
|
|
ref="entryTable"
|
|
@selection-change="selectedDelete"
|
|
style="width: 100%"
|
|
:header-cell-style="{background: '#e8e8e8', color: '#333333', fontSize: '16px',
|
|
fontWeight: 'bold', height: '20px'}">
|
|
<el-table-column type="selection" width="55"/>
|
|
<el-table-column type="index" label="序号" width="50" align="center"/>
|
|
<el-table-column prop="fillPeople" align="center" label="人员">
|
|
<template slot-scope="scope">
|
|
{{ scope.row.fillPeople || '' }}
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column prop="fillUnit" align="center" label="单位">
|
|
<template slot-scope="scope">
|
|
{{ scope.row.fillUnit || '' }}
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column prop="fillDept" align="center" label="部门">
|
|
<template slot-scope="scope">
|
|
{{ scope.row.fillDept || '' }}
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column prop="fillTel" align="center" label="电话">
|
|
<template slot-scope="scope">
|
|
{{ scope.row.fillTel || '' }}
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column prop="fillMail" align="center" label="邮箱">
|
|
<template slot-scope="scope">
|
|
{{ scope.row.fillMail || '' }}
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column
|
|
fixed="right"
|
|
label="操作"
|
|
align="center"
|
|
width="100">
|
|
<template slot-scope="scope">
|
|
<el-button type="primary" plain size="mini" @click="edit_partForm(scope.row)">编辑</el-button>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table>
|
|
</el-form-item>
|
|
<el-form-item class="picker_style" label="会议时间:">
|
|
<el-date-picker
|
|
v-model="editMeetForm.date"
|
|
type="datetime"
|
|
:picker-options="datePicker"
|
|
value-format="yyyy-MM-dd HH:mm:ss"
|
|
placeholder="选择日期时间"
|
|
align="right">
|
|
</el-date-picker>
|
|
</el-form-item>
|
|
<el-form-item class="add-form-item" label="会议内容:">
|
|
<div class="table_btn">
|
|
<el-button type="primary" size="small" @click="meeting_add">添加</el-button>
|
|
<el-button type="danger" size="small" @click="meeting_delete">批量删除</el-button>
|
|
</div>
|
|
<el-table
|
|
class="meeting_table"
|
|
:data="editMeetForm.contents"
|
|
border
|
|
ref="entryTable"
|
|
style="width: 100%"
|
|
@selection-change="selectedTable"
|
|
:header-cell-style="{background: '#e8e8e8', color: '#333333', fontSize: '16px',
|
|
fontWeight: 'bold', height: '20px'}">
|
|
<el-table-column type="selection" width="55" align="center"/>
|
|
<el-table-column type="index" label="序号" width="50" align="center"/>
|
|
<el-table-column
|
|
label="议题"
|
|
align="center"
|
|
prop="meetingTheme">
|
|
<template slot-scope="scope">
|
|
<el-input v-model="scope.row.meetingTheme"/>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table>
|
|
</el-form-item>
|
|
<el-form-item class="add-form-item" label="会议地点:">
|
|
<el-input v-model="editMeetForm.place" placeholder=""></el-input>
|
|
</el-form-item>
|
|
<el-form-item class="add-form-item" label="会议附件:">
|
|
<el-upload
|
|
multiple
|
|
ref="uploadFile"
|
|
:action="actionPath"
|
|
name="file"
|
|
:file-list="reData"
|
|
accept=".ZIP, .zip, .docx, .DOCX, .xls, .xlsx, .pdf, .PDF"
|
|
:http-request="httpRequest"
|
|
:before-upload="handleBeforeUpload"
|
|
:before-remove="handleBeforeRemove"
|
|
:on-success="handleOnsuccess"
|
|
>
|
|
<el-button type="primary" size="small">
|
|
上传文件
|
|
</el-button>
|
|
</el-upload>
|
|
</el-form-item>
|
|
</el-form>
|
|
</div>
|
|
<div class="demo-drawer-footer">
|
|
<el-button size="mini" @click="falseDrawer">取消</el-button>
|
|
<el-button type="primary" :loading="loading" size="mini" @click="OkDrawer">确认</el-button>
|
|
</div>
|
|
</el-drawer>
|
|
|
|
|
|
<!-- 编辑框内的人员的table上的编辑 -->
|
|
<el-drawer
|
|
:title="dialogTitle"
|
|
:visible.sync="editFlag"
|
|
size="600px"
|
|
:before-close="falseDrawerTab"
|
|
custom-class="demo-drawer"
|
|
>
|
|
<div class="content_form" style="height: 100%">
|
|
<el-form class="label-input-form" ref="editForm" :model="editForm" label-width="80px">
|
|
<el-form-item class="add-form-item" label="参与人员:">
|
|
<el-input v-model="editForm.fillPeopleId" style="display: none;"></el-input>
|
|
<el-input
|
|
placeholder="请选择参与人员"
|
|
style="width: 50%"
|
|
@click.native="choiceRole('fillPeopleId','请选择入会成员',editForm.fillPeopleId,)"
|
|
v-model="editForm.fillPeople"
|
|
/>
|
|
</el-form-item>
|
|
<el-form-item class="add-form-item" label="单位:">
|
|
<el-input v-model="editForm.fillUnit" placeholder=""></el-input>
|
|
</el-form-item>
|
|
<el-form-item class="add-form-item" label="部门:">
|
|
<el-input v-model="editForm.fillDept" placeholder=""></el-input>
|
|
</el-form-item>
|
|
<el-form-item class="add-form-item" label="电话:">
|
|
<el-input v-model="editForm.fillTel" placeholder=""></el-input>
|
|
</el-form-item>
|
|
<el-form-item class="add-form-item" label="邮箱:">
|
|
<el-input v-model="editForm.fillMail" placeholder=""></el-input>
|
|
</el-form-item>
|
|
</el-form>
|
|
</div>
|
|
<div class="demo-drawer-footer">
|
|
<el-button size="mini" @click="falseDrawerTab">取消</el-button>
|
|
<el-button type="primary" size="mini" @click="OkDrawerTab">确认</el-button>
|
|
</div>
|
|
</el-drawer>
|
|
<Role-tree
|
|
check-box
|
|
is-title="选择入会人员"
|
|
:is-visible.sync="roleShowflag"
|
|
:nodeList="nodeList"
|
|
@checkedRole="drawerCheck"
|
|
/>
|
|
</div>
|
|
</template>
|
|
|
|
<script>
|
|
import { meetingByMonth } from '@/api/unqualProcess.js'
|
|
import { updateMeet, upFile} from '@/api/process.js'
|
|
|
|
export default {
|
|
name: "calendar",
|
|
data() {
|
|
return {
|
|
userId: this.$store.getters.userInfo.userId,
|
|
year: [],
|
|
month: [],
|
|
formData: {
|
|
year: '',
|
|
month: '',
|
|
},
|
|
//点击日历获取当天会议数据
|
|
todayData: [],
|
|
// 全部会议数据
|
|
resDate: [],
|
|
// 点击日历获取暂时储存数组
|
|
timeDay: {},
|
|
|
|
// 上次点击的日期
|
|
lastYear: '',
|
|
lastMonth: '',
|
|
// 日历当前时间
|
|
value: new Date(),
|
|
// 当前时间
|
|
nowDate: '',
|
|
|
|
meetFlag: false,
|
|
editMeetForm: {},
|
|
reData: [],
|
|
actionPath: 'api/att/attFile/upload',
|
|
|
|
roleShowflag: false,
|
|
nodeList: [],
|
|
deleteDataList: [],
|
|
upDialog: false,
|
|
reDataTable: [],
|
|
editFlag: false,
|
|
content: [],
|
|
editForm: {
|
|
fillPeople: '',
|
|
fillUnit: '',
|
|
fillDept: '',
|
|
fillTel: '',
|
|
fillMail: '',
|
|
},
|
|
// 议题选中时储存数组
|
|
deleteTable: [],
|
|
loading: false,
|
|
dialogTitle: '',
|
|
// 当前日期之前不可选择
|
|
datePicker: {
|
|
disabledDate(date) {
|
|
return date.getTime() < Date.now() - 24 * 60 * 60 * 1000
|
|
}
|
|
}
|
|
}
|
|
},
|
|
mounted() {
|
|
/** 获取当前日期*/
|
|
let yy = new Date().getFullYear();
|
|
let mm = new Date().getMonth() + 1;
|
|
let dd = new Date().getDate();
|
|
if (mm < 10) {
|
|
mm = this.padding0(mm, 2)
|
|
}
|
|
if (dd < 10) {
|
|
dd = this.padding0(dd, 2)
|
|
}
|
|
this.nowDate = yy + '-' + mm + '-' + dd
|
|
this.formData.year = yy + '年'
|
|
this.formData.month = mm + '月'
|
|
this.lastYear = yy
|
|
this.lastMonth = mm
|
|
this.getMonthData()
|
|
this.init()
|
|
|
|
},
|
|
methods: {
|
|
init() {
|
|
this.getYear();
|
|
this.getMonth();
|
|
},
|
|
getYear() {//获取年
|
|
let date = new Date;
|
|
let current_year = date.getFullYear();
|
|
for (let i = -2; i < 3; i++) {
|
|
let y = current_year - i;
|
|
this.year.push(y + '年');
|
|
}
|
|
},
|
|
getMonth() {//获取月
|
|
for (let i = 1; i < 13; i++) {
|
|
this.month.push(i + '月');
|
|
}
|
|
},
|
|
/** 获取当前月日历数据*/
|
|
getMonthData() {
|
|
let data = {
|
|
date: this.nowDate,
|
|
type: 1
|
|
}
|
|
meetingByMonth(data).then(res => {
|
|
if (res.length !== 0) {
|
|
// 对传参的数据转义
|
|
res.forEach(item => {
|
|
item.attend = JSON.parse(item.attend)
|
|
item.files = JSON.parse(item.files)
|
|
this.$set(item, 'partPeople', [])
|
|
})
|
|
|
|
res.forEach(item => {
|
|
item.attend.forEach(msgAtt => {
|
|
item.partPeople.push(msgAtt.fillPeople)
|
|
})
|
|
})
|
|
this.resDate = res
|
|
this.dealMyDate()
|
|
this.todayData = []
|
|
this.resDate.forEach(item => {
|
|
if (item.date.slice(0, 10) === this.nowDate) {
|
|
this.todayData.push(item)
|
|
}
|
|
})
|
|
}
|
|
})
|
|
},
|
|
/** 获取当前点击日历表格数据*/
|
|
calendarOnClick(val) {
|
|
this.todayData = []
|
|
this.timeDay = val
|
|
if (this.resDate.length !== 0) {
|
|
this.resDate.forEach(item => {
|
|
if (item.date.slice(0, 10) === this.timeDay.day) {
|
|
this.todayData.push(item)
|
|
}
|
|
})
|
|
}
|
|
// 点击日历头部日期变化
|
|
this.formData.year = val.day.slice(0, 4) + '年'
|
|
if (val.day.slice(5, 6) === '0') {
|
|
this.formData.month = val.day.slice(6, 7) + '月'
|
|
} else {
|
|
this.formData.month = val.day.slice(5, 7) + '月'
|
|
}
|
|
},
|
|
/** 点击今天按钮 */
|
|
today() {
|
|
this.value = new Date()
|
|
let yy = new Date().getFullYear();
|
|
let mm = new Date().getMonth() + 1;
|
|
let dd = new Date().getDate();
|
|
if (mm < 10) {
|
|
mm = this.padding0(mm, 2)
|
|
}
|
|
this.formData.month = mm + '月'
|
|
if (dd < 10) {
|
|
dd = this.padding0(dd, 2)
|
|
}
|
|
this.formData.year = yy + '年'
|
|
this.nowDate = yy + '-' + mm + '-' + dd
|
|
this.getMonthData()
|
|
},
|
|
/** 获取所有会议的时间及内容
|
|
* 并在日历上显示出标记*/
|
|
dealMyDate(v) {
|
|
let len = this.resDate.length
|
|
let res = []
|
|
for (let i = 0; i < len; i++) {
|
|
if (this.resDate[i].date.slice(0, 10) === v) {
|
|
res = res.concat(this.resDate[i].attend)
|
|
}
|
|
}
|
|
|
|
// 去除当天重复的人员
|
|
let map = new Map();
|
|
let array = new Array(); // 数组用于返回结果
|
|
for (let i = 0; i < res.length; i++) {
|
|
if(map.has(res[i].fillPeopleId)) { // 如果有该key值
|
|
map.set(res[i].fillPeopleId, true);
|
|
} else {
|
|
map.set(res[i].fillPeopleId, false); // 如果没有该key值
|
|
array.push(res[i]);
|
|
}
|
|
}
|
|
return array
|
|
},
|
|
// 头部时间改变事件
|
|
handleDate() {
|
|
let selYear = this.formData.year.slice(0, 4)
|
|
let selMonth = ''
|
|
if (this.formData.month.slice(-3, -2) === '') {
|
|
selMonth = this.formData.month.slice(0, 1)
|
|
} else {
|
|
selMonth = this.formData.month.slice(0, 2)
|
|
}
|
|
let birthday = selYear + '-' + this.padding0(selMonth, 2) + '-' + '01'
|
|
this.nowDate = birthday
|
|
this.getMonthData()
|
|
// 根据头部日期调整,日历变化
|
|
let yearNum = ''
|
|
let monthNum = ''
|
|
if (this.lastYear !== selYear) {
|
|
yearNum = this.lastYear - selYear
|
|
} else {
|
|
yearNum = 0
|
|
}
|
|
if (this.lastMonth !== selMonth) {
|
|
monthNum = this.lastMonth - selMonth
|
|
} else {
|
|
monthNum = 0
|
|
}
|
|
this.lastYear = selYear
|
|
this.lastMonth = selMonth
|
|
// 获取日历变化的日期并显示
|
|
this.value = new Date(this.value.setDate(1))
|
|
this.value = new Date(this.value.setMonth(this.value.getMonth() - monthNum))
|
|
this.value = new Date(this.value.setFullYear(this.value.getFullYear() - yearNum))
|
|
},
|
|
//数字前填充0方法
|
|
padding0(num, length) {
|
|
for (let len = (num + '').length; len < length; len = num.length) {
|
|
num = '0' + num
|
|
}
|
|
return num
|
|
},
|
|
/** 点击对应附件进行下载*/
|
|
previews(val) {
|
|
let attId = val
|
|
if (attId != null && attId !== "") {
|
|
window.location.href = "/api/att/attFile/downloadFileForSar?fileId=" + attId;
|
|
}
|
|
},
|
|
|
|
/** 每个会议对应的编辑按钮 */
|
|
edit_meeting(item) {
|
|
localStorage.setItem('objs', JSON.stringify(item))
|
|
this.fileListData = item
|
|
this.reData = item.files
|
|
this.editMeetForm = item
|
|
this.editMeetForm.contents = []
|
|
if (this.editMeetForm.content !== '') {
|
|
this.editMeetForm.content.split(';').forEach(item => {
|
|
this.editMeetForm.contents.push({
|
|
meetingTheme: item
|
|
})
|
|
})
|
|
}
|
|
this.meetFlag = true
|
|
},
|
|
|
|
/** 覆盖默认的上传行为,实现多个文件一起上传 */
|
|
httpRequest(params) {
|
|
const file = params.file
|
|
// 根据后台需求数据格式
|
|
const form = new FormData()
|
|
// 文件对象
|
|
form.append("file", file)
|
|
upFile(form).then(res=>{
|
|
if (res.ok) {
|
|
this.handleOnsuccess(res)
|
|
} else {
|
|
this.$message.warning('上传失败')
|
|
}
|
|
})
|
|
},
|
|
// 文件上传成功
|
|
handleOnsuccess(res, file, fileList) {
|
|
if (res.ok) {
|
|
if (this.reData !== undefined) {
|
|
this.newDataList = this.reData
|
|
this.newDataList.push({
|
|
id: res.data.attId,
|
|
name: res.data.name
|
|
})
|
|
} else {
|
|
this.newDataList.push({
|
|
id: res.data.attId,
|
|
name: res.data.name
|
|
})
|
|
}
|
|
|
|
this.fileListData.files = this.newDataList
|
|
this.$message({
|
|
showClose: true,
|
|
message: res.message,
|
|
type: 'success'
|
|
})
|
|
this.newDataList = []
|
|
this.fileMadel = false
|
|
}
|
|
},
|
|
// 文件上传限制条件
|
|
handleBeforeUpload(file) {
|
|
var filename = file.name
|
|
var index1 = filename.lastIndexOf('.')
|
|
var index2 = filename.length
|
|
var fileSuffix = filename.substring(index1, index2)
|
|
// const fileSuffix = file.name.split('.')[1] // 后缀名
|
|
// 判断上传文件格式
|
|
if (fileSuffix === '.ZIP' || fileSuffix === '.docx' || fileSuffix === '.DOCX' || fileSuffix === '.zip' || fileSuffix === '.xls' || fileSuffix === '.xlsx' || fileSuffix === '.pdf' || fileSuffix === '.PDF') {
|
|
return true
|
|
} else {
|
|
this.spinShow = false
|
|
this.$message.error('文件' + file.name + '格式不正确,请上传ZIP/DOCX/PDF或XLS文件')
|
|
return false
|
|
}
|
|
// 判断文件上传大小
|
|
// eslint-disable-next-line no-unreachable
|
|
if (file.size / 1024 / 1024 <= 200) {
|
|
return true
|
|
} else {
|
|
this.$message.error('文件' + file.name + '大小不超过200M')
|
|
return false
|
|
}
|
|
return true
|
|
},
|
|
// 移除上传的文件
|
|
handleBeforeRemove(file, fileList) {
|
|
this.reData.forEach((item, index) => {
|
|
if (item.name === file.name || item.id === file.id) {
|
|
this.reData.splice(index, 1)
|
|
}
|
|
})
|
|
this.fileListData.files = this.reData
|
|
},
|
|
|
|
add_partForm() {
|
|
var list = {
|
|
fillPeople: this.fillPeople,
|
|
fillUnit: this.fillUnit,
|
|
fillDept: this.fillDept,
|
|
fillPost: this.fillPost,
|
|
fillTel: this.fillTel,
|
|
fillMail: this.fillMail,
|
|
fillFile: this.fillFile = []
|
|
}
|
|
this.editMeetForm.attend.push(list)
|
|
this.dialogTitle = '新增人员信息'
|
|
this.add_partDialog(list)
|
|
},
|
|
|
|
add_partDialog(row) {
|
|
// 用来储存取消时原来的数据,防止取消时修改
|
|
localStorage.setItem('obj', JSON.stringify(row))
|
|
this.editForm = row
|
|
this.editFlag = true
|
|
},
|
|
// 编辑按钮
|
|
edit_partForm(row) {
|
|
this.dialogTitle = '编辑人员信息'
|
|
// 用来储存取消时原来的数据,防止取消时修改
|
|
localStorage.setItem('obj', JSON.stringify(row))
|
|
this.editForm = row
|
|
this.editFlag = true
|
|
},
|
|
selectedDelete(val) {
|
|
this.deleteDataList = val
|
|
},
|
|
/** 批量删除 */
|
|
del_partForm() {
|
|
if (this.deleteDataList.length < 1) {
|
|
this.$message.warning("请选择一条数据进行删除");
|
|
} else {
|
|
this.$confirm("您确认删除这些数据?", "提示", {
|
|
confirmButtonText: "确认",
|
|
confirmButtonClass: "common-button-primary",
|
|
cancelButtonText: "取消",
|
|
type: "warning"
|
|
}).then(() => {
|
|
let exits = [];
|
|
this.deleteDataList.map(item => {
|
|
let index;
|
|
index = this.editMeetForm.attend.findIndex(items => {
|
|
return items === item;
|
|
});
|
|
if (index > -1) {
|
|
this.editMeetForm.attend.splice(index, 1);
|
|
}
|
|
exits.push(item);
|
|
});
|
|
this.deleteDataList = [];
|
|
}).catch(() => {
|
|
});
|
|
}
|
|
},
|
|
|
|
// 编辑框选人
|
|
choiceRole(type, title, id) {
|
|
this.nodeList = []
|
|
this.nodeList.push(id)
|
|
this.type = type
|
|
this.roleShowflag = true
|
|
},
|
|
drawerCheck(data) {
|
|
if (data.length > 0) {
|
|
this.editForm.fillPeopleId = data[0].id
|
|
this.editForm.fillPeople = data[0].name
|
|
}
|
|
this.roleShowflag = false
|
|
},
|
|
|
|
// 编辑框确认按钮
|
|
OkDrawerTab() {
|
|
this.editFlag = false
|
|
},
|
|
falseDrawerTab() {
|
|
if (this.dialogTitle = '新增人员信息') {
|
|
let Items = JSON.parse(localStorage.getItem('objs'))
|
|
this.editMeetForm.attend = Items.attend
|
|
this.editMeetForm.content = Items.content
|
|
this.editMeetForm.date = Items.date
|
|
this.editMeetForm.files = Items.files
|
|
this.editMeetForm.id = Items.id
|
|
this.editMeetForm.partPeople = Items.partPeople
|
|
this.editMeetForm.place = Items.place
|
|
this.editMeetForm.title = Items.title
|
|
this.editMeetForm.type = Items.type
|
|
} else {
|
|
let Item = JSON.parse(localStorage.getItem('obj'))
|
|
this.editForm.fillPeopleId = Item.fillPeopleId
|
|
this.editForm.fillPeople = Item.fillPeople
|
|
this.editForm.fillUnit = Item.fillUnit
|
|
this.editForm.fillDept = Item.fillDept
|
|
this.editForm.fillTel = Item.fillTel
|
|
this.editForm.fillMail = Item.fillMail
|
|
}
|
|
this.editFlag = false
|
|
},
|
|
|
|
selectedTable(val) {
|
|
this.deleteTable = val
|
|
},
|
|
// 编辑框内议题相关
|
|
meeting_add() {
|
|
var list = {
|
|
meetingTheme: this.meetingTheme,
|
|
}
|
|
this.editMeetForm.contents.push(list)
|
|
},
|
|
meeting_delete() {
|
|
if (this.deleteTable.length < 1) {
|
|
this.$message.warning("请选择一条数据进行删除");
|
|
} else {
|
|
this.$confirm("您确认删除这些数据?", "提示", {
|
|
confirmButtonText: "确认",
|
|
confirmButtonClass: "common-button-primary",
|
|
cancelButtonText: "取消",
|
|
type: "warning"
|
|
}).then(() => {
|
|
let exits = [];
|
|
this.deleteTable.map(item => {
|
|
let index
|
|
index = this.content.findIndex(items => {
|
|
return items === item
|
|
})
|
|
if (index > -1) {
|
|
this.content.splice(index, 1)
|
|
}
|
|
exits.push(item)
|
|
})
|
|
this.deleteTable = []
|
|
}).catch(() => {
|
|
})
|
|
}
|
|
},
|
|
|
|
falseDrawer() {
|
|
let Items = JSON.parse(localStorage.getItem('objs'))
|
|
this.editMeetForm.attend = Items.attend
|
|
this.editMeetForm.content = Items.content
|
|
this.editMeetForm.date = Items.date
|
|
this.editMeetForm.files = Items.files
|
|
this.editMeetForm.id = Items.id
|
|
this.editMeetForm.partPeople = Items.partPeople
|
|
this.editMeetForm.place = Items.place
|
|
this.editMeetForm.title = Items.title
|
|
this.editMeetForm.type = Items.type
|
|
this.meetFlag = false
|
|
},
|
|
OkDrawer() {
|
|
let contentData = []
|
|
if (this.editMeetForm.contents.length > 0) {
|
|
this.editMeetForm.contents.forEach(item => {
|
|
if (item.meetingTheme.length > 0) {
|
|
contentData.push(item.meetingTheme)
|
|
}
|
|
})
|
|
}
|
|
let editForm = {
|
|
attend: JSON.stringify(this.editMeetForm.attend),
|
|
content: contentData.join(';'),
|
|
id: this.editMeetForm.id,
|
|
date: this.editMeetForm.date,
|
|
title: this.editMeetForm.title,
|
|
type: 1,
|
|
files: JSON.stringify(this.editMeetForm.files),
|
|
place: this.editMeetForm.place
|
|
}
|
|
this.loading = true
|
|
updateMeet(editForm).then(res => {
|
|
if (true) {
|
|
this.$message.success("编辑成功");
|
|
this.meetFlag = false
|
|
this.loading = false
|
|
/** 获取当前日期*/
|
|
let yy = new Date().getFullYear();
|
|
let mm = new Date().getMonth() + 1;
|
|
let dd = new Date().getDate();
|
|
if (mm < 10) {
|
|
mm = this.padding0(mm, 2)
|
|
}
|
|
if (dd < 10) {
|
|
dd = this.padding0(dd, 2)
|
|
}
|
|
this.nowDate = yy + '-' + mm + '-' + dd
|
|
this.formData.year = yy + '年'
|
|
this.formData.month = mm + '月'
|
|
this.lastYear = yy
|
|
this.lastMonth = mm
|
|
this.getMonthData()
|
|
this.init()
|
|
} else {
|
|
this.$message.warning("编辑失败");
|
|
this.loading = false
|
|
}
|
|
})
|
|
},
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style lang="less" scoped>
|
|
@import '~@/assets/styles/mixins';
|
|
@import '~@/assets/styles/style';
|
|
|
|
.standCalendar {
|
|
.content_form {
|
|
/deep/.el-input--suffix .el-input__inner {
|
|
border: 0;
|
|
color: #828387;
|
|
}
|
|
label-input-form {
|
|
.picker_style {
|
|
margin-bottom: 0;
|
|
min-height: 50px;
|
|
line-height: 50px;
|
|
border-bottom: 1px dashed #e5e5e5;
|
|
}
|
|
}
|
|
}
|
|
.date-picker {
|
|
.item {
|
|
/deep/ .el-input {
|
|
width: 88px;
|
|
}
|
|
|
|
/deep/ .el-input__icon {
|
|
line-height: 30px;
|
|
}
|
|
|
|
/deep/ .el-input--suffix .el-input__inner {
|
|
height: 30px;
|
|
padding-right: 0;
|
|
}
|
|
}
|
|
}
|
|
|
|
/deep/ .el-calendar-table td.is-selected {
|
|
background-color: #f9e3e3;
|
|
}
|
|
|
|
/deep/ .el-calendar__header {
|
|
display: none;
|
|
}
|
|
|
|
/deep/ .el-calendar-table thead th {
|
|
text-align: center;
|
|
}
|
|
|
|
.tagOne {
|
|
height: 15px;
|
|
width: 15px;
|
|
padding: 0;
|
|
background-color: #e6a23c
|
|
}
|
|
|
|
.tagTwo {
|
|
height: 15px;
|
|
width: 15px;
|
|
padding: 0;
|
|
background-color: #67c23a
|
|
}
|
|
|
|
.title_time {
|
|
font-weight: bold;
|
|
}
|
|
|
|
/deep/ .el-card__body {
|
|
padding: 5px 0px 10px 10px;
|
|
}
|
|
|
|
.card_info_empty {
|
|
margin-top: 50px;
|
|
}
|
|
|
|
|
|
.card_info {
|
|
height: 190px;
|
|
margin-top: 10px;
|
|
|
|
.content_style {
|
|
height: 150px;
|
|
overflow-y: auto;
|
|
width: 100%;
|
|
|
|
.content_text {
|
|
white-space: nowrap;
|
|
text-overflow: ellipsis;
|
|
overflow: hidden;
|
|
word-break: break-all;
|
|
line-height: normal;
|
|
margin-top: 10px;
|
|
font-size: 5px;
|
|
}
|
|
|
|
.content_text2 {
|
|
text-overflow: ellipsis;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
display: -webkit-box;
|
|
-webkit-box-orient: vertical;
|
|
line-height: normal;
|
|
margin-top: 10px;
|
|
font-size: 5px;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
</style>
|