|
@@ -90,18 +90,18 @@
|
|
|
:total="page.total">
|
|
|
</el-pagination>
|
|
|
</div>
|
|
|
- <el-dialog :title="title" custom-class="startToDia" v-model="dialogVisible" width="600px" :close-on-click-modal="false">
|
|
|
- <div class="periodFrom">
|
|
|
+ <el-dialog :title="title" custom-class="startToDia" v-model="dialogVisible" width="900px" :close-on-click-modal="false">
|
|
|
+ <div class="notifcaFrom">
|
|
|
<el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm" :validate-on-rule-change="false">
|
|
|
- <el-form-item label="通告标题" prop="noticeTitle">
|
|
|
- <el-input v-model="ruleForm.noticeTitle" placeholder="请输入通告标题" />
|
|
|
+ <el-form-item label="公告标题" prop="noticeTitle">
|
|
|
+ <el-input v-model="ruleForm.noticeTitle" placeholder="请输入公告标题" />
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="通告内容" prop="noticeContent">
|
|
|
+ <el-form-item label="公告内容" prop="noticeContent">
|
|
|
<el-input v-model="ruleForm.noticeContent"
|
|
|
- type="textarea" :rows="3" placeholder="请输入通告内容"></el-input>
|
|
|
+ type="textarea" :rows="10" placeholder="请输入公告内容"></el-input>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="通告对象" prop="sendTo">
|
|
|
- <el-select v-model="ruleForm.sendTo" placeholder="请选择通告对象">
|
|
|
+ <el-form-item label="发布对象" prop="sendTo">
|
|
|
+ <el-select v-model="ruleForm.sendTo" placeholder="请选择发布对象">
|
|
|
<el-option
|
|
|
v-for="item in sendToData"
|
|
|
:key="item.value"
|
|
@@ -110,21 +110,27 @@
|
|
|
</el-option>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="个别部门" prop="sendToContent" v-if="ruleForm.sendTo === '个别部门'">
|
|
|
- <el-select v-model="ruleForm.sendToContent" multiple collapse-tags placeholder="请选择部门">
|
|
|
- <el-option
|
|
|
- v-for="item in departData"
|
|
|
- :key="item.id"
|
|
|
- :label="item.keyName"
|
|
|
- :value="item.id">
|
|
|
- </el-option>
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="排序">
|
|
|
- <el-input-number v-model="ruleForm.serialNumber" :min="1" />
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="上传附件">
|
|
|
- <div>
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="12" v-if="ruleForm.sendTo === '个别部门'">
|
|
|
+ <el-form-item label="个别部门" prop="sendToContent">
|
|
|
+ <el-select v-model="ruleForm.sendToContent" multiple collapse-tags placeholder="请选择部门">
|
|
|
+ <el-option
|
|
|
+ v-for="item in departData"
|
|
|
+ :key="item.id"
|
|
|
+ :label="item.keyName"
|
|
|
+ :value="item.id">
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="排序">
|
|
|
+ <el-input-number v-model="ruleForm.serialNumber" :min="1" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-form-item label="">
|
|
|
+ <div class="uploadFiles">
|
|
|
<el-upload
|
|
|
:file-list="filesList"
|
|
|
multiple
|
|
@@ -132,38 +138,87 @@
|
|
|
:auto-upload="false"
|
|
|
:show-file-list="false"
|
|
|
>
|
|
|
- <el-button type="primary">选择上传文件</el-button>
|
|
|
+ <el-button
|
|
|
+ color="#3B7AD1"
|
|
|
+ size="mini"
|
|
|
+ >
|
|
|
+ <img :src="fileW" style="margin-right: 10px">
|
|
|
+ <span>添加附件</span>
|
|
|
+ </el-button>
|
|
|
<template #tip>
|
|
|
<div class="el-upload__tip">
|
|
|
最多上传3个文件
|
|
|
</div>
|
|
|
</template>
|
|
|
</el-upload>
|
|
|
- <div v-if="!isSave">
|
|
|
- <div v-for="it in filesList" :key="it.uid">
|
|
|
+ </div>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="">
|
|
|
+ <div class="fliesHeader">
|
|
|
+ <span>附件名</span>
|
|
|
+ <span>发送单位</span>
|
|
|
+ <span>操作</span>
|
|
|
+ </div>
|
|
|
+ <div v-if="!isSave" style="width: 100%">
|
|
|
+ <div v-for="it in filesList" :key="it.uid">
|
|
|
+ <div class="fliesMain">
|
|
|
<div>
|
|
|
- <span>{{it.name}}</span>
|
|
|
- <el-icon :size="20" color="#3B7AD1"
|
|
|
- @click="removeFile(it)"
|
|
|
- style="position: relative;top: 5px;left: 10px;cursor:pointer"><CircleClose /></el-icon>
|
|
|
+ <img :src="file" style="margin-right: 10px" >
|
|
|
+ <span class="fliesMainSpan spanOne">{{it.name}}</span>
|
|
|
+ </div>
|
|
|
+ <span class="fliesMainSpan spanTwo">国能(绥中)发电有限责任公司</span>
|
|
|
+ <!-- <span>{{userMes.unitName}}</span> -->
|
|
|
+ <div class="removeDiv">
|
|
|
+ <!-- <div @click="previewFile(it)" style="cursor:pointer">
|
|
|
+ <img :src="yulan" style="margin-right: 10px;" >
|
|
|
+ <span>预览</span>
|
|
|
+ </div> -->
|
|
|
+ <div @click="removeFile(it)" style="cursor:pointer">
|
|
|
+ <img :src="fileDelete" class="removeImg">
|
|
|
+ <span>删除</span>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div v-else>
|
|
|
- <div v-for="it in filesList" :key="it.uid">
|
|
|
+ </div>
|
|
|
+ <div v-else>
|
|
|
+ <div v-for="it in filesList" :key="it.uid">
|
|
|
+ <div class="fliesMain">
|
|
|
<div>
|
|
|
- <span>{{it.name}}</span>
|
|
|
- <el-icon :size="20" color="#3B7AD1"
|
|
|
- @click="removeFile(it)"
|
|
|
- style="position: relative;top: 5px;left: 10px;cursor:pointer"><CircleClose /></el-icon>
|
|
|
+ <img :src="file" style="margin-right: 10px" >
|
|
|
+ <span class="fliesMainSpan spanOne">{{it.name}}</span>
|
|
|
+ </div>
|
|
|
+ <span class="fliesMainSpan spanTwo">国能(绥中)发电有限责任公司</span>
|
|
|
+ <!-- <span>{{userMes.unitName}}</span> -->
|
|
|
+ <div class="removeDiv">
|
|
|
+ <!-- <div @click="previewFile(it)" style="cursor:pointer">
|
|
|
+ <img :src="yulan" style="margin-right: 10px;" >
|
|
|
+ <span>预览</span>
|
|
|
+ </div> -->
|
|
|
+ <div @click="removeFile(it)" style="cursor:pointer">
|
|
|
+ <img :src="fileDelete" class="removeImg">
|
|
|
+ <span>删除</span>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div v-for="it in filesListEdit" :key="it">
|
|
|
+ </div>
|
|
|
+ <div v-for="it in filesListEdit" :key="it">
|
|
|
+ <div class="fliesMain">
|
|
|
<div>
|
|
|
- <span>{{it}}</span>
|
|
|
- <el-icon :size="20" color="#3B7AD1"
|
|
|
- @click="removeFileFn(it)"
|
|
|
- style="position: relative;top: 5px;left: 10px;cursor:pointer"><CircleClose /></el-icon>
|
|
|
+ <img :src="file" style="margin-right: 10px" >
|
|
|
+ <span class="fliesMainSpan spanOne">{{it}}</span>
|
|
|
+ </div>
|
|
|
+ <span class="fliesMainSpan spanTwo">国能(绥中)发电有限责任公司</span>
|
|
|
+ <!-- <span>{{userMes.unitName}}</span> -->
|
|
|
+ <div class="fileOperate">
|
|
|
+ <div @click="previewFile(it)" style="cursor:pointer">
|
|
|
+ <img :src="yulan" style="margin-right: 10px;" >
|
|
|
+ <span>预览</span>
|
|
|
+ </div>
|
|
|
+ <div @click="removeFile(it)" style="cursor:pointer">
|
|
|
+ <img :src="fileDelete" class="removeImg">
|
|
|
+ <span>删除</span>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -179,6 +234,10 @@
|
|
|
</span>
|
|
|
</template>
|
|
|
</el-dialog>
|
|
|
+ <el-dialog title="预览" v-model="filesVisible" :fullscreen="true" :close-on-click-modal="false">
|
|
|
+ <!-- <div v-html="filesConcent"></div> -->
|
|
|
+ <iframe src="file:///C:/fakepath/数据导出 (29).xlsx" frameborder="0" width="100%" height="100%"></iframe>
|
|
|
+ </el-dialog>
|
|
|
</div>
|
|
|
</div>
|
|
|
</template>
|
|
@@ -189,8 +248,13 @@ import seachs from '../seachGroup.vue'
|
|
|
import fabuW from '../../assets/btnIcon/fabu.png'
|
|
|
import editW from '../../assets/btnIcon/edit.png'
|
|
|
import deleteW from '../../assets/btnIcon/delete.png'
|
|
|
+import fileW from '../../assets/btnIcon/fileW.png'
|
|
|
+import file from '../../assets/btnIcon/file.png'
|
|
|
+import yulan from '../../assets/btnIcon/yulan.png'
|
|
|
+import fileDelete from '../../assets/btnIcon/fileDelete.png'
|
|
|
import {apiGetevaluationdeptnoticeList, apiGetevaluationdeptnoticeSave,apievaluationdeptnoticeDelete,
|
|
|
-apiGetdatadictionaryList, apiPostevaluationdeptnoticeDelete, apiPostevaluationdeptnoticeModifiedState} from '../../api/api'
|
|
|
+apiGetdatadictionaryList, apiPostevaluationdeptnoticeDelete, apiPostevaluationdeptnoticeModifiedState,
|
|
|
+apiGetevaluationdeptnoticeFilePreview} from '../../api/api'
|
|
|
export default {
|
|
|
components: {
|
|
|
btns,
|
|
@@ -199,16 +263,22 @@ export default {
|
|
|
data() {
|
|
|
return {
|
|
|
dialogVisible: false,
|
|
|
+ filesVisible: false,
|
|
|
isSave: false,
|
|
|
title: '',
|
|
|
evalradio: {},
|
|
|
changeDateSelect: [],
|
|
|
notificationData:[],
|
|
|
+ filesData: [],
|
|
|
departData: [],
|
|
|
sendToData: [],
|
|
|
fabuW: fabuW,
|
|
|
editW: editW,
|
|
|
deleteW: deleteW,
|
|
|
+ fileW: fileW,
|
|
|
+ file: file,
|
|
|
+ yulan: yulan,
|
|
|
+ fileDelete: fileDelete,
|
|
|
page:{
|
|
|
pagesize: 12,
|
|
|
currentPage: 1,
|
|
@@ -225,6 +295,8 @@ export default {
|
|
|
},
|
|
|
filesList: [],
|
|
|
filesListEdit: [],
|
|
|
+ filesConcent: '',
|
|
|
+ filesUrl: '',
|
|
|
rules: {
|
|
|
noticeTitle: [
|
|
|
{ required: true, message: '请输入通告标题', trigger: 'blur' }
|
|
@@ -240,11 +312,13 @@ export default {
|
|
|
]
|
|
|
},
|
|
|
noticeTitle: '',
|
|
|
+ userMes: {},
|
|
|
headers: { "Content-Type": "multipart/form-data" },
|
|
|
fileType: [ "pdf", "doc", "docx", "xls", "xlsx","txt","png","jpg", "bmp", "jpeg"]
|
|
|
}
|
|
|
},
|
|
|
created() {
|
|
|
+ this.userMes = JSON.parse(window.sessionStorage.getItem('user'))
|
|
|
this.sendToData = [
|
|
|
{
|
|
|
label: '所有单位',
|
|
@@ -319,7 +393,6 @@ export default {
|
|
|
//新增/修改考评启动数据
|
|
|
saveAndEditnotificationData(type) {
|
|
|
let that = this
|
|
|
- // let userMes = JSON.parse(window.sessionStorage.getItem('user'))
|
|
|
let params = {
|
|
|
serialNumber: that.ruleForm.serialNumber,
|
|
|
noticeTitle: that.ruleForm.noticeTitle,
|
|
@@ -327,10 +400,10 @@ export default {
|
|
|
sendTo: that.ruleForm.sendTo,
|
|
|
sendToContent: that.ruleForm.sendToContent.join(','),
|
|
|
releaseState: type === '草稿'? '草稿': type === '发布'?'已发布':'未发布',
|
|
|
- // releaseDept: userMes.deptId,
|
|
|
- // releaseDeptName: userMes.deptName,
|
|
|
- // releasePeople: userMes.id,
|
|
|
- // releasePeopleName: userMes.name
|
|
|
+ // releaseDept: that.userMes.deptId,
|
|
|
+ // releaseDeptName: that.userMes.deptName,
|
|
|
+ // releasePeople: that.userMes.id,
|
|
|
+ // releasePeopleName: that.userMes.name
|
|
|
}
|
|
|
const formData = new FormData()
|
|
|
if (that.filesList.length>0) {
|
|
@@ -416,7 +489,7 @@ export default {
|
|
|
this.evalradio = this.changeDateSelect[0]
|
|
|
}
|
|
|
this.ruleForm = {
|
|
|
- serialNumber: this.evalradio.serialNumber,
|
|
|
+ serialNumber: this.evalradio.serialNumber*1,
|
|
|
noticeTitle: this.evalradio.noticeTitle,
|
|
|
noticeContent: this.evalradio.noticeContent,
|
|
|
sendTo: this.evalradio.sendTo,
|
|
@@ -425,10 +498,11 @@ export default {
|
|
|
releasePeople: this.evalradio.releasePeople
|
|
|
}
|
|
|
let filesArr = this.evalradio.noticeAnnex.split(',')
|
|
|
- filesArr.forEach(item =>{
|
|
|
- let str = item.substring(item.lastIndexOf('/')+1, item.length)
|
|
|
- this.filesListEdit.push(str)
|
|
|
- })
|
|
|
+ this.filesListEdit = filesArr
|
|
|
+ // filesArr.forEach(item =>{
|
|
|
+ // let str = item.substring(item.lastIndexOf('/')+1, item.length)
|
|
|
+ // this.filesListEdit.push(str)
|
|
|
+ // })
|
|
|
},
|
|
|
//删除
|
|
|
handleDelete(row) {
|
|
@@ -484,6 +558,18 @@ export default {
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
+ previewFile(it) {
|
|
|
+ this.filesVisible = true
|
|
|
+ let params = {
|
|
|
+ url: it
|
|
|
+ }
|
|
|
+ debugger
|
|
|
+ apiGetevaluationdeptnoticeFilePreview(params).then(datas =>{
|
|
|
+ if (datas) {
|
|
|
+ console.log('files', datas)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
//移除文件
|
|
|
removeFile(item) {
|
|
|
for (var i in this.filesList) {
|
|
@@ -636,15 +722,59 @@ export default {
|
|
|
}
|
|
|
.el-overlay{
|
|
|
.startToDia{
|
|
|
+ margin-top: 3vh;
|
|
|
+ background: #EDEFF5;
|
|
|
.el-dialog__body{
|
|
|
padding: 30px 60px 30px 20px !important;
|
|
|
- .periodFrom{
|
|
|
+ .notifcaFrom{
|
|
|
.el-select, .el-input{
|
|
|
width: 100%;
|
|
|
}
|
|
|
.el-input{
|
|
|
height: 30px;
|
|
|
}
|
|
|
+ .uploadFiles{
|
|
|
+ .el-button{
|
|
|
+ height: 25px !important;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .fliesHeader{
|
|
|
+ width: 100%;
|
|
|
+ display: flex;
|
|
|
+ justify-content: space-around;
|
|
|
+ }
|
|
|
+ .fliesMain{
|
|
|
+ width: 100%;
|
|
|
+ display: flex;
|
|
|
+ .fliesMainSpan{
|
|
|
+ display: inline-block;
|
|
|
+ width: 260px;
|
|
|
+ overflow: hidden;
|
|
|
+ text-overflow: ellipsis;
|
|
|
+ white-space: nowrap;
|
|
|
+ }
|
|
|
+ .spanOne{
|
|
|
+ color: #1063CB;
|
|
|
+ }
|
|
|
+ .fileOperate{
|
|
|
+ width: 160px;
|
|
|
+ display: flex;
|
|
|
+ justify-content: space-around;
|
|
|
+ .removeImg{
|
|
|
+ margin-right: 10px;
|
|
|
+ position: relative;
|
|
|
+ top: 2px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .removeDiv{
|
|
|
+ width: 160px;
|
|
|
+ .removeImg{
|
|
|
+ margin: 0 10px 0 20px;
|
|
|
+ position: relative;
|
|
|
+ top: 3px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
.flowSty{
|
|
|
width: 100%;
|