|
|
@ -3,33 +3,45 @@ |
|
|
|
<el-form :model="form" :rules="rules" ref="ruleForm"> |
|
|
|
<el-row> |
|
|
|
<el-col :span="11" style="padding-right:30px;"> |
|
|
|
<el-form-item label="标题:" :label-width="formLabelWidth" prop="username"> |
|
|
|
<el-form-item label="标题:" :label-width="formLabelWidth" prop="title"> |
|
|
|
<el-input v-model="form.title" autocomplete="off" placeholder="请输入标题"></el-input> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="公告类别:" :label-width="formLabelWidth" prop="sort"> |
|
|
|
<el-select v-model="form.sort" placeholder="请选择公告类别"> |
|
|
|
<el-option label="新闻" :value="0"></el-option> |
|
|
|
<el-option label="通告" :value="1"></el-option> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="公告级别:" :label-width="formLabelWidth" prop="level"> |
|
|
|
<el-select v-model="form.level" placeholder="请选择公告级别"> |
|
|
|
<el-option label="紧急" :value="0"></el-option> |
|
|
|
<el-option label="高" :value="1"></el-option> |
|
|
|
<el-option label="中" :value="2"></el-option> |
|
|
|
<el-option label="低" :value="3"></el-option> |
|
|
|
</el-select> |
|
|
|
<el-form-item label="标题图片:" :label-width="formLabelWidth" prop="imgUrl"> |
|
|
|
<el-upload |
|
|
|
class="avatar-uploader" |
|
|
|
:action="upload_action" |
|
|
|
:headers="upload_headers" |
|
|
|
:data="upload_data" |
|
|
|
:show-file-list="false" |
|
|
|
:on-success="handleTitleSuccess" |
|
|
|
:before-upload="beforeAvatarUpload" |
|
|
|
> |
|
|
|
<img v-if="titleUrl" :src="titleUrl" class="avatar"/> |
|
|
|
<i v-else class="el-icon-plus avatar-uploader-icon"></i> |
|
|
|
</el-upload> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="接收人:" :label-width="formLabelWidth" prop="identityType"> |
|
|
|
<el-select v-model="form.identityType" multiple placeholder="请选择接收人"> |
|
|
|
<el-form-item label="文章类别:" :label-width="formLabelWidth" prop="type"> |
|
|
|
<el-select v-model="form.type" placeholder="请选择文章类型"> |
|
|
|
<el-option |
|
|
|
v-for="item in sendUser" |
|
|
|
:key="item" |
|
|
|
:label="userLevel.get(parseInt(item))" |
|
|
|
:value="item"> |
|
|
|
v-for="item in sortType" |
|
|
|
:key="item.value" |
|
|
|
:label="item.name" |
|
|
|
:value="parseInt(item.value)"> |
|
|
|
</el-option> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="优先级:" :label-width="formLabelWidth" prop="sort"> |
|
|
|
<el-input v-model.number="form.sort" autocomplete="off" placeholder="请输入优先级"></el-input> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="是否发布:" :label-width="formLabelWidth" prop="isIssue"> |
|
|
|
<el-switch |
|
|
|
v-model="form.isIssue" |
|
|
|
active-color="#13ce66" |
|
|
|
inactive-color="#ff4949" |
|
|
|
:active-value="1" |
|
|
|
:inactive-value="0"> |
|
|
|
</el-switch> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="生效时间:" :label-width="formLabelWidth" prop="time"> |
|
|
|
<el-date-picker |
|
|
|
v-model="form.time" |
|
|
@ -40,18 +52,20 @@ |
|
|
|
end-placeholder="结束日期"> |
|
|
|
</el-date-picker> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="作者:" :label-width="formLabelWidth" prop="name"> |
|
|
|
<el-input v-model="form.sender" autocomplete="off" placeholder="请输入作者"></el-input> |
|
|
|
<el-form-item label="作者:" :label-width="formLabelWidth" prop="author"> |
|
|
|
<el-input v-model="form.author" autocomplete="off" placeholder="请输入作者"></el-input> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="文章摘要:" :label-width="formLabelWidth" prop="description"> |
|
|
|
<el-input type="textarea" v-model="form.description" autocomplete="off" placeholder="请输入文章摘要"></el-input> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
</el-row> |
|
|
|
<el-row> |
|
|
|
<el-form-item label="内容:" :label-width="formLabelWidth" prop="name"> |
|
|
|
<!-- <input type="file" id="quill-img" class="quill-img" @change="fileChange($event)"> --> |
|
|
|
<el-form-item label="内容:" :label-width="formLabelWidth" prop="content"> |
|
|
|
<el-upload |
|
|
|
id="quill-img" |
|
|
|
class="avatar-uploader" |
|
|
|
:action="upload_file" |
|
|
|
:action="upload_action" |
|
|
|
:show-file-list="false" |
|
|
|
:on-success="fileChange" |
|
|
|
style="display: none;width:0"> |
|
|
@ -63,7 +77,6 @@ |
|
|
|
:options="editorOption" |
|
|
|
> |
|
|
|
</quill-editor> |
|
|
|
<!-- <vue-ueditor-wrap v-model="UEMsg" :config="UEConfig"></vue-ueditor-wrap> --> |
|
|
|
</el-form-item> |
|
|
|
</el-row> |
|
|
|
<div class="form-footer"> |
|
|
@ -77,64 +90,66 @@ |
|
|
|
import {quillEditor} from 'vue-quill-editor'; |
|
|
|
import * as Quill from 'quill' // 引入编辑器 |
|
|
|
|
|
|
|
|
|
|
|
// import {ImageExtend} from 'quill-image-extend-module' |
|
|
|
// Quill.register('modules/ImageExtend', ImageExtend) |
|
|
|
|
|
|
|
import {ImageDrop} from 'quill-image-drop-module'; //编辑器拖拽 |
|
|
|
import ImageResize from 'quill-image-resize-module'; //编辑器改变大小 |
|
|
|
Quill.register('modules/imageDrop', ImageDrop); |
|
|
|
Quill.register('modules/imageResize', ImageResize); |
|
|
|
|
|
|
|
// import VueUeditorWrap from 'vue-ueditor-wrap' |
|
|
|
import {addNoticeInfo, getNoticeInfo, editNoticeInfo, identitytypeList} from "@/api/notice" |
|
|
|
|
|
|
|
import {addNoticeInfo, getNoticeInfo, editNoticeInfo,getNoticeTypeList} from "@/api/notice" |
|
|
|
import { getToken } from '@/utils/auth' |
|
|
|
export default { |
|
|
|
name: 'noticeDetail', |
|
|
|
// components: { |
|
|
|
// VueUeditorWrap |
|
|
|
// }, |
|
|
|
data() { |
|
|
|
return { |
|
|
|
ID: this.$route.query.id || '', //修改公告所传的id |
|
|
|
isEdit: false, //添加 or 修改 |
|
|
|
upload_file: config.UPLOAD_URL, //上传文件的地址 |
|
|
|
upload_action: config.UPLOAD_URL, //上传文件的地址 |
|
|
|
upload_headers:{ |
|
|
|
token: '800580795f01449f9100c4d2983d13c9' || getToken() |
|
|
|
}, |
|
|
|
upload_data:{ |
|
|
|
uploadType:'1', |
|
|
|
suffixType:'8', |
|
|
|
folder:'notice' |
|
|
|
}, |
|
|
|
formLabelWidth: '180px', //form的lable宽度 |
|
|
|
userLevel: new Map([ //用户类型键值对 |
|
|
|
[1, '系统用户'], |
|
|
|
[2, '公众用户'], |
|
|
|
[3, '企业用户'], |
|
|
|
[4, '政府用户'] |
|
|
|
]), |
|
|
|
sendUser: [], //接受人列表 |
|
|
|
sortType:[], |
|
|
|
form: { //form表单 |
|
|
|
title: '', |
|
|
|
sort: '', |
|
|
|
level: '', |
|
|
|
identityType: '', |
|
|
|
imgUrl:'', |
|
|
|
type: '', |
|
|
|
time: '', |
|
|
|
sender: '', |
|
|
|
content: '' |
|
|
|
author: '', |
|
|
|
description:'', |
|
|
|
content: '', |
|
|
|
isIssue:'1', |
|
|
|
sort:'' |
|
|
|
}, |
|
|
|
rules: { //form校验规则 |
|
|
|
title: [ |
|
|
|
{required: true, message: '请输入标题', trigger: 'blur'} |
|
|
|
], |
|
|
|
sort: [ |
|
|
|
type: [ |
|
|
|
{required: true, message: '请选择公告类别', trigger: 'click'} |
|
|
|
], |
|
|
|
level: [ |
|
|
|
{required: true, message: '请选择公告级别', trigger: 'click'} |
|
|
|
], |
|
|
|
identityType: [ |
|
|
|
{required: true, message: '请选择接收人', trigger: 'click'} |
|
|
|
isIssue: [ |
|
|
|
{required: true} |
|
|
|
], |
|
|
|
time: [ |
|
|
|
{required: true, message: '请选择生效日期', trigger: 'click'} |
|
|
|
], |
|
|
|
sort: [ |
|
|
|
{required: true, message: '请输入数字类型优先级', trigger: 'blur'} |
|
|
|
], |
|
|
|
sender: [ |
|
|
|
{required: true, message: '请输入作者'} |
|
|
|
] |
|
|
|
{message: '请输入作者', trigger: 'blur'} |
|
|
|
], |
|
|
|
description: [ |
|
|
|
{required: true, message: '请输入文章摘要', trigger: 'blur'} |
|
|
|
], |
|
|
|
content: [ |
|
|
|
{required: true, message: '请输入内容', trigger: 'blur'} |
|
|
|
], |
|
|
|
}, |
|
|
|
editorOption: { //quillEditor编辑器配置项 |
|
|
|
modules: { |
|
|
@ -175,21 +190,7 @@ export default { |
|
|
|
theme: 'snow', //主题 snow/bubble |
|
|
|
syntax: true, //语法检测 |
|
|
|
}, |
|
|
|
// //Ueditor富文本编辑的配置 |
|
|
|
// UEConfig: { |
|
|
|
// // 编辑器不自动被内容撑高 |
|
|
|
// autoHeightEnabled: false, |
|
|
|
// // 初始容器高度 |
|
|
|
// initialFrameHeight: 240, |
|
|
|
// // 初始容器宽度 |
|
|
|
// initialFrameWidth: '100%', |
|
|
|
// // 上传文件接口(这个地址是我为了方便各位体验文件上传功能搭建的临时接口,请勿在生产环境使用!!!) |
|
|
|
// // serverUrl: config.API_URL+config.UPLOAD_URL, |
|
|
|
// // UEditor 资源文件的存放路径,如果你使用的是 vue-cli 生成的项目,通常不需要设置该选项,vue-ueditor-wrap 会自动处理常见的情况,如果需要特殊配置,参考下方的常见问题2 |
|
|
|
// UEDITOR_HOME_URL: '/UEditor/' |
|
|
|
// }, |
|
|
|
// //Ueditor富文本编辑的内容 |
|
|
|
// UEMsg:`` |
|
|
|
titleUrl:'' |
|
|
|
} |
|
|
|
}, |
|
|
|
computed: { |
|
|
@ -198,7 +199,7 @@ export default { |
|
|
|
} |
|
|
|
}, |
|
|
|
created() { |
|
|
|
this.getIdentitytypeList() |
|
|
|
this.getNoticeType() |
|
|
|
}, |
|
|
|
mounted() { |
|
|
|
//存在id即为修改公告 |
|
|
@ -208,35 +209,20 @@ export default { |
|
|
|
} |
|
|
|
}, |
|
|
|
methods: { |
|
|
|
//获取文章类型列表 |
|
|
|
getNoticeType(){ |
|
|
|
getNoticeTypeList().then(res => { |
|
|
|
this.sortType = res.data |
|
|
|
}) |
|
|
|
}, |
|
|
|
//根据id获取公告详情 |
|
|
|
initData() { |
|
|
|
getNoticeInfo({'id': this.ID}).then(res => { |
|
|
|
getNoticeInfo(this.ID).then(res => { |
|
|
|
if (res.data) { |
|
|
|
this.form = res.data |
|
|
|
this.form.identityType = this.form.identityType.split(',').map((item) => { |
|
|
|
return +item |
|
|
|
}) |
|
|
|
this.form.time = [this.form.sendtime, this.form.endTime] |
|
|
|
if(this.form.imgUrl) this.titleUrl = this.form.imgUrl |
|
|
|
this.form.time = [this.form.issueStartTime, this.form.issueEndTime] |
|
|
|
} |
|
|
|
|
|
|
|
// this.form = { |
|
|
|
// title:res.data.title, |
|
|
|
// sort:res.data.sort, |
|
|
|
// level:res.data.level, |
|
|
|
// identityType:res.data.identityType.split(',').map((item)=>{ |
|
|
|
// return +item |
|
|
|
// }), |
|
|
|
// time:[res.data.sendtime,res.data.endTime], |
|
|
|
// sender:res.data.sender, |
|
|
|
// content: res.data.content |
|
|
|
// } |
|
|
|
// this.UEMsg = res.data.content |
|
|
|
}) |
|
|
|
}, |
|
|
|
//获取接收人列表 |
|
|
|
getIdentitytypeList() { |
|
|
|
identitytypeList().then(res => { |
|
|
|
this.sendUser = res.data |
|
|
|
}) |
|
|
|
}, |
|
|
|
//被隐藏的上传图片组件-成功接口 |
|
|
@ -257,23 +243,20 @@ export default { |
|
|
|
vm.$Message.error('图片插入失败') |
|
|
|
} |
|
|
|
}, |
|
|
|
// onEditorReady(editor) { // 准备编辑器 |
|
|
|
// }, |
|
|
|
// onEditorBlur(){}, // 失去焦点事件 |
|
|
|
// onEditorFocus(){}, // 获得焦点事件 |
|
|
|
// onEditorChange(){}, // 内容改变事件 |
|
|
|
|
|
|
|
onEditorChange(){}, // 内容改变事件 |
|
|
|
//发送添加请求 |
|
|
|
addNotice() { |
|
|
|
const param = { |
|
|
|
title: this.form.title, |
|
|
|
sort: this.form.sort, |
|
|
|
level: this.form.level, |
|
|
|
identityType: this.form.identityType.join(','), //接收人以 ‘,’ 拼接 |
|
|
|
sendtime: this.form.time[0], |
|
|
|
endTime: this.form.time[1], |
|
|
|
sender: this.form.sender, |
|
|
|
content: this.form.content |
|
|
|
type: this.form.type, |
|
|
|
issueStartTime: this.form.time[0], |
|
|
|
issueEndTime: this.form.time[1], |
|
|
|
author: this.form.author, |
|
|
|
imgUrl:this.form.imgUrl, |
|
|
|
description: this.form.description, |
|
|
|
content: this.form.content, |
|
|
|
isIssue:this.form.isIssue, |
|
|
|
sort:this.form.sort |
|
|
|
} |
|
|
|
addNoticeInfo(param).then(res => { |
|
|
|
this.$message({ |
|
|
@ -285,12 +268,11 @@ export default { |
|
|
|
}, |
|
|
|
//发送修改请求 |
|
|
|
editNotice() { |
|
|
|
delete (this.form.createTime) //去除多余字段,否则后台报错 |
|
|
|
delete (this.form.updateTime) //去除多余字段,否则后台报错 |
|
|
|
this.form.identityType = this.form.identityType.join(',') |
|
|
|
this.form.sendtime = this.form.time[0] |
|
|
|
this.form.endTime = this.form.time[1] |
|
|
|
editNoticeInfo(this.form).then(res => { |
|
|
|
this.form.issueStartTime = this.form.time[0] |
|
|
|
this.form.issueEndTime = this.form.time[1] |
|
|
|
let params = JSON.parse(JSON.stringify(this.form)) |
|
|
|
delete(params.time) |
|
|
|
editNoticeInfo(params).then(res => { |
|
|
|
this.$message({ |
|
|
|
message: '修改成功!', |
|
|
|
type: 'success' |
|
|
@ -319,6 +301,19 @@ export default { |
|
|
|
this.$refs[formName].resetFields(); |
|
|
|
this.$router.go(-1) |
|
|
|
}, |
|
|
|
//组织/单位营业执照图片上传成功的回调 |
|
|
|
handleTitleSuccess(res, file) { |
|
|
|
this.titleUrl = URL.createObjectURL(file.raw); |
|
|
|
this.form.imgUrl = res.data; |
|
|
|
}, |
|
|
|
//图片上传前的检测 |
|
|
|
beforeAvatarUpload(file) { |
|
|
|
const isLt2M = file.size / 1024 / 1024 < 2; |
|
|
|
if (!isLt2M) { |
|
|
|
this.$message.error("上传图片大小不能超过 2MB!"); |
|
|
|
} |
|
|
|
return isLt2M; |
|
|
|
}, |
|
|
|
} |
|
|
|
} |
|
|
|
</script> |
|
|
|