日历议题编辑、未符合项整改修改

This commit is contained in:
shenyanpei
2021-12-22 16:45:41 +08:00
parent 6b7af8ad84
commit 86a2d0fc49
6 changed files with 542 additions and 42 deletions
+1
View File
@@ -1,5 +1,6 @@
import axios from "@/common/axiosV2";
// 手机端查询人
export function phoneUser(params) {
return axios({
url: "api/sys/user/getUserByPhone",
+18 -1
View File
@@ -713,7 +713,7 @@ export function workGroup(data) {
params: data
})
}
//
// 手机端查询token
export function loginMobile(data) {
return axios({
url: 'api/lawss/activiti/loginMobile',
@@ -721,3 +721,20 @@ export function loginMobile(data) {
params: data
})
}
// 日历信息编辑
export function updateMeet(data) {
return axios({
url: '/api/sapMeetInfo/updateMeeting',
method: 'post',
params: data
})
}
export function upFile(data) {
return axios({
url: '/api/att/attFile/upload',
method: 'post',
data
})
}
+516 -39
View File
@@ -17,8 +17,8 @@
</el-select>
</span>
</div>
<div style="float: right;display: inline;height: 30px;">
<el-button size="mini" @click="today">今天</el-button>
<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">
@@ -61,41 +61,228 @@
<el-tag v-if="userId === res.fillPeopleId" type="success" size="mini">会议</el-tag>
<el-tag v-else 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_text">
<span>会议时间 : {{ $moment(item.date).format('YYYY-MM-DD HH:mm') }} </span>
</div>
<div class="content_text">
<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">
<div class="content_style">
<div class="content_text">
<span>会议时间 : {{ $moment(item.date).format('YYYY-MM-DD HH:mm:ss') }} </span>
</div>
<div class="content_text">
<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>
<span v-else v-for="res in item.files" :key="res.id" style="color: #409EFF;" @click="previews(res.id)">
<div v-else v-for="res in item.files" :key="res.id" style="color: #409EFF;margin-left: 55px;margin-top: -25px;line-height: 35px" @click="previews(res.id)">
<a v-if="res.name.length > 30" style="cursor: pointer">
{{ res.name.slice(0, 30) + '...' }} {{ ';' }}
</a>
<a v-else style="cursor: pointer">
{{ res.name }} {{ ';' }}
</a>
</span>
</div>
</span>
</div>
</div>
</el-card>
</el-card>
</el-col>
</el-row>
<!-- 会议编辑抽屉 -->
<el-drawer
title="编辑人员信息"
:visible.sync="meetFlag"
size="600px"
>
<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"
height="49%"
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="add-form-item" label="会议时间:">
<el-date-picker
v-model="editMeetForm.date"
type="datetime"
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"
: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>
<el-drawer
title="编辑人员信息"
:visible.sync="editFlag"
size="500px"
: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} from '@/api/process.js'
export default {
name: "calendar",
@@ -122,6 +309,29 @@ export default {
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
}
},
mounted() {
@@ -285,7 +495,268 @@ export default {
if (attId != null && attId !== "") {
window.location.href = "/api/att/attFile/downloadFileForSar?fileId=" + attId;
}
}
},
/** 每个会议对应的编辑按钮 */
edit_meeting(item) {
this.editMeetForm.contents = []
console.log(item)
localStorage.setItem('objs', JSON.stringify(item))
this.fileListData = item
this.reData = item.files
this.editMeetForm = item
this.editMeetForm.contents
this.editMeetForm.contents = []
if (this.editMeetForm.content !== '') {
this.editMeetForm.content.split(';').forEach(item => {
this.editMeetForm.contents.push({
meetingTheme: item
})
})
}
this.meetFlag = true
},
// 文件上传成功
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)
},
// 编辑按钮
edit_partForm(row) {
// 用来储存取消时原来的数据,防止取消时修改
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() {
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>
@@ -343,7 +814,7 @@ export default {
}
/deep/ .el-card__body {
padding: 10px;
padding: 5px 0px 10px 10px;
}
.card_info_empty {
@@ -354,27 +825,33 @@ export default {
height: 190px;
margin-top: 10px;
.content_text {
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
word-break: break-all;
line-height: normal;
margin-top: 10px;
font-size: 5px;
}
.content_style {
height: 150px;
overflow-y: auto;
width: 100%;
.content_text2 {
text-overflow: ellipsis;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 4;
line-clamp: 4;
-webkit-box-orient: vertical;
line-height: normal;
margin-top: 10px;
font-size: 5px;
.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-line-clamp: 4;
line-clamp: 4;
-webkit-box-orient: vertical;
line-height: normal;
margin-top: 10px;
font-size: 5px;
}
}
}
}
@@ -199,6 +199,7 @@
</div>
</div>
<el-table
class="table_info"
ref="searchTable"
:data="unqualidiedData"
tooltip-effect="dark"
@@ -593,6 +594,9 @@ export default {
<style lang="less" scoped>
@import '~@/assets/styles/style';
.wfhxzgStep1 {
/deep/.el-table--scrollable-y .el-table__body-wrapper {
height: calc(100% - 80px) !important;
}
/deep/.el-drawer__container {
.prc-content-border {
border: none;
@@ -262,6 +262,8 @@ export default {
this.$nextTick(() => {
if (item.passInfo !== 0) {
this.passInfo = JSON.parse(JSON.stringify(item)).passInfo
let fileData = JSON.parse(JSON.stringify(item)).dockUserList
this.dataList = fileData[0].standardInfoList
} else {
let fileData = JSON.parse(JSON.stringify(item)).dockUserList
for (let i = 0; i<fileData.length; i++) {
@@ -84,9 +84,8 @@
</el-collapse>
</div>
<div class="content" v-show="active === '3'">
<div class="flow-list">
<div>
<el-table
height="100%"
ref="selection"
:data="detailData"
tooltip-effect="dark"