<template>
<div class="wrapper wrapper-content" id="notes" v-cloak>
<div class="row">
<div class="col-sm-12 animated fadeInRight">
<div class="mail-box-header">
<h2 langCode="Notification" params="通知发布">通知发布</h2>
</div>
<div class="mail-box">
<div class="mail-body">
<form class="form-horizontal" method="get">
<div class="form-group" style=" margin-bottom: 15px">
<label class="col-sm-1 control-label" :langCode="'Subject'" params="主题">主题:</label>
<div class="col-sm-5" style="position: relative">
<input type="text" class="form-control" value="" v-model="theme" maxlength="32">
</div>
<label class="col-sm-1 control-label" :langCode="'Recipient'" params="接收者">接收者:</label>
</div>
<div class="form-group" style=" margin-bottom: 15px">
<label class="col-sm-1 control-label" :langCode="'Publisher'" params="发布者">发布者:</label>
<div class="col-sm-5" style="position: relative">
<input type="text" class="form-control" value="" v-model="departmentName" maxlength="32" @focus="treeShowHide()">
<div id="treeDepartment" v-show="treeShow" style="height: 320px;width:400px;overflow-y: scroll;position: absolute;z-index: 9999;border: 1px solid #ccc">
<el-tree :data="data2" default-expand-all="" node-key="id" ref="tree" check-strictly :props="defaultProps" @node-click="getNodeData">
</el-tree>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-1 control-label" :langCode="'Content'" params="内容">内容:</label>
<div class="col-sm-6">
<vue-editor v-model="content"></vue-editor>
</div>
<div class="col-sm-5">
<div id="treeDepartment1" style="height: 376px;width:400px;overflow-y: scroll;position: absolute;top:-90px;z-index: 9999;border: 1px solid #ccc">
<el-tree :data="data1" show-checkbox="" default-expand-all="" node-key="id" ref="tree" highlight-current :props="defaultProps">
</el-tree>
</div>
</div>
</div>
</form>
<form class="uploadForm" style="padding-left: 150px">
<input type ="file" name="file" class="fileContent hiddenClass" onchange="doUpload(this)"/>
<input type ="text" name="sessionId" class="hiddenClass"/>
<input type ="text" name="areaCode" class="hiddenClass"/>
</form>
<span langCode="Add_attachments">添加附件</span>
<span class="triggerUpLoad fa fa-paperclip" style="cursor: pointer;color:#78BC27" onclick="triggerUpLoad(this)"></span>
<div class="picC">
<ul class="picContent"></ul>
<ul class="fileContent"></ul>
</div>
</div>
<div class="mail-body text-right tooltip-demo">
<a class="btn btn-sm zbtn-bg" data-toggle="tooltip" data-placement="top" title="Send" @click='getCheckedKeys'><i class="fa fa-reply"></i> <span :langCode="'Send'" params="发送">发送</span></a>
<a class="btn btn-white btn-sm" data-toggle="tooltip" data-placement="top" title="Discard email" @click='cancle'><i class="fa fa-times" ></i> <span :langCode="'Give_up'" params="放弃">放弃</span></a>
<!--<a class="btn btn-white btn-sm" data-toggle="tooltip" data-placement="top" title="Move to draft folder"><i class="fa fa-pencil"></i> 存为草稿</a>-->
</div>
<div class="clearfix"></div>
</div>
</div>
</div>
</div>
</template>
<script>
import Vue from 'vue'
import '../../common/js/z_packge.js'
import { modal } from '../../common/js/modal.js'
import VueEditor from 'vue2-editor'
Vue.use(VueEditor);
export default {
name: "createNews",
data(){
return {
content: '',
theme:'' ,
brief:'',
data1: [],
data2: [],
defaultProps: {
children: 'children',
label: 'departName'
},
departmentId:'',
departmentName:'',
receiveDeptIds:'',
treeShow:false,
treeShowReceive:true,
}
},
methods:{
treeShowHide(){
let vm=this;
vm.treeShow=true;
},
getNodeData(data){
var vm=this;
vm.departmentName=data.departName;
vm.departmentId=data.id;
vm.treeShow=false;
},
getData(){
var getRoleListUrl = '/department/list';
var thisM = this;
$.ajaxSend(getRoleListUrl,{}).done(function (data) {
thisM.data2.push(data.payload.results.root);
thisM.data1.push(data.payload.results.root);
});
},
getCheckedKeys(){
let vm=this;
let receiveDept= this.$refs.tree.getCheckedKeys();
vm.receiveDeptIds=receiveDept.join(',');
if(vm.theme==''||typeof(vm.theme)==undefined){
modal.error($.i18n.prop('Please_fill_in_the_notice_heading'));
return false;
}
if(vm.departmentName==''||typeof(vm.departmentName)==undefined){
modal.error($.i18n.prop('Please_select_the_publisher'));
return false;
}
if(vm.receiveDeptIds==''||typeof(vm.receiveDeptIds)==undefined){
modal.error($.i18n.prop('Please_select_the_notification_recipient'));
return false;
}
if(vm.content==''||typeof(vm.content)==undefined){
modal.error($.i18n.prop('Please_fill_in_the_contents_of_the_notice'));
return false;
}
/**添加附件处理字段**picIds*/
var files = $('.picC').find('li');
let fileIds=[];
$.each(files, function (index, item) {
fileIds.push($(item).attr('picIds'));
});
var params ={
title: vm.theme,
publishName: vm.departmentName,
publishDeptId: vm.departmentId,
content: vm.content,
receiveDeptIds: vm.receiveDeptIds,
brief: vm.ctbrife(this.content),
attachmentIds:fileIds
};
let url = '/notice/save';
$.ajaxSend(url,params).done(function (data) {
if (data.code==='00000000') {
modal.success($.i18n.prop('Publish_successfully'));
vm.content ='';
vm.theme = '';
vm.$router.push('/notice')
}
});
},
cancle(){
window.history.back(-1);
},
ctbrife(str){
// str = str.replace(/\<c:if\b[^>]*>([\s\S]*?)</c:if>/g,'')
str = str.replace(/<\/?[^>]*>/g,''); //去除HTML tag
str = str.replace(/[ | ]*\n/g,'\n'); //去除行尾空白
//str = str.replace(/\n[\s| | ]*\r/g,'\n'); //去除多余空行
str=str.replace(/ /ig,'');//去掉 
return str.substring(0,40);
}
},
filters:{
ctbrife: function(str){
str = str.replace(/<\/?[^>]*>/g,''); //去除HTML tag
str = str.replace(/[ | ]*\n/g,'\n'); //去除行尾空白
//str = str.replace(/\n[\s| | ]*\r/g,'\n'); //去除多余空行
str=str.replace(/ /ig,'');//去掉 
return str.substring(0,40);
}
},
mounted(){
this.getData();
}
}
</script>

vue2-editor使用的更多相关文章

  1. vue2.0+elementUI构建单页面后台管理平台

    git:https://github.com/reg21st/vue2-management-platform 访问:https://reg21st.github.io/vue2-management ...

  2. vue2组件之select2调用

    目前,项目中使用了纯前端的静态项目+RESTFul接口的模式.为了更好的对数据进行操作,前端使用了vue2的mvvm功能,但是由于不是单页面应用,所以,并没有涉及到其它的如vue-route等功能,也 ...

  3. Vue2 后台管理系统解决方案

    基于Vue.js 2.x系列 + Element UI 的后台管理系统解决方案. github地址:https://github.com/lin-xin/manage-system demo地址:ht ...

  4. CKEditor5 + vue2.0 自定义图片上传、highlight、字体等用法

    因业务需求,要在 vue2.0 的项目里使用富文本编辑器,经过调研多个编辑器,CKEditor5 支持 vue,遂采用.因 CKEditor5 文档比较少,此处记录下引用和一些基本用法. CKEdit ...

  5. 用vue2.0+vuex+vue-router+element-ui+mockjs实现后台管理系统的实践探索

    A magical vue element touzi admin. 效果演示地址 更多demo展示 分支说明 master分支:前后端统一开发的版本:可以用于学习nodejs+mongodb+exp ...

  6. Vue2/3 项目中的 ESLint + Prettier 代码检测格式化风格指南

    Vue2/3 项目中的 ESLint + Prettier 代码检测格式化风格指南 因为平时都是使用 VSCode ESLint + Prettier 检测格式化不规范代码,但是随着接手的项目越来越多 ...

  7. 从零开始搭建Vue2.0项目(一)之快速开始

    从零开始搭建Vue2.0项目(一)之项目快速开始 前言 该样板适用于大型,严肃的项目,并假定您对Webpack和有所了解vue-loader.确保还阅读vue-loader的文档,了解常见的工作流程配 ...

  8. vue2.0实践的一些细节

    最近用vue2.0做了个活动.做完了回头发现,好像并没有太多的技术难点,而自己好像又做了比较久...只能说效率有待提升啊...简单总结了一些比较细节的点. 1.对于一些已知肯定会有数据的模块,先用一个 ...

  9. 用FSM一键制作逐帧动画雪碧图 Vue2 + webpack

    因为工作需要要将五六十张逐帧图拼成雪碧图,网上想找到一件制作工具半天没有找到,就自己用canvas写了一个. 写成之后就再没有什么机会使用了,因此希望有人使用的时候如果遇到bug了能及时反馈给我. 最 ...

  10. vue2.0构建淘票票webapp

    项目描述 之前一直用vue1.x写项目,最近为了过渡到vue2.0,特易用vue2.0栈仿写了淘票票页面,而且加入了express作为后台服务. 前端技术栈:vue2.0 + vue-router + ...

随机推荐

  1. iOS tableHeaderView有默认高度?

    在给tableView设置tableHeaderView的时候发现,如果设置tableView.tableHeaderView = [UIView new] , 这里未设置tableView的高度,但 ...

  2. 一首好听的摇滚歌曲(Ever Dream),以及优美的译作

     送上一首好听的摇滚歌曲,以及优美的译作.祝大家新年快乐.happy new year!  [ti:Ever Dream][ar:Nightwish][al:Century Child][by:吖光] ...

  3. Microsoft 防跨站点脚本库AntiXSS Library

    AntiXSS 库目前处于版本 4.2.1,下载地址:http://www.microsoft.com/download/en/details.aspx?id=28589.它经历了一次非常棒的重新编写 ...

  4. WPF学习笔记 - 数据绑定(在代码中)

    在程序代码里,有两种设置绑定的方法,一种是调用FrameworkElement或FrameContentElement对象的SetBinding实例方法. 例如: Public MainWindow( ...

  5. mysql 严重锁表解决方案

    转自 http://blog.csdn.net/miltonzhong/article/details/20562587 http://wangwei3.iteye.com/blog/784435

  6. K8s+dashboard安装部署【h】

    系统安装使用虚拟机安装两个centos系统,在/etc/hosts里增加两行192.168.140.128 kuber-master192.168.140.129 kuber-node1 关闭防火墙s ...

  7. 论UT阶段重要性

    测试与开发这对立的命运啊 如果是对测试从业者心存鄙视的朋友啊,请关掉此页,带着偏见不好看的~ 人生就像一个旅途,每个人看到风景不一样,世界观.人生观.价值观也就不同.不要试着去改变别人,因为你的观点在 ...

  8. A Mixed Flash Translation Layer Structure for SLC-MLC Combined Flash Memory System

    http://blog.sina.com.cn/s/blog_502c8cc40100pztk.html 摘要 1.In this paper, we propose the SLC-MLC mixe ...

  9. 关于js中this指向的问题

    this的绑定规则有4种 默认绑定 隐性绑定 显性绑定 new绑定 this绑定优先级 new 绑定 > 显性绑定 > 隐性绑定 > 默认绑定 1.如果函数被new 修饰 this绑 ...

  10. Linux、Aix(unix)、Oracle 银行外包开发运维常用命令

    我一直是银行外包开发人员,常用的操作命令固然少不了,这是我一次自己边添加边使用的笔记.内容有点乱,希望可以帮到你. rm 文件或目录rm -f 文件或目录rm -rf * 跑路的时候用du -h 文件 ...