jeecgboot 可编辑表格弹窗富文本框

        最近使用jeecgboot框架的JEditableTable做一个数据维护,有一个需求是用户要录入SQL语句,帮他顺序执行SQL,由于SQL又臭又长,小小的input框没办法显示全,导致每次需要在txt里编辑好了再贴进去,修改也是一样。

       如图,只能显示几个字,多了就看不到了。jeecgboot 可编辑表格弹窗富文本框_第1张图片

        于是乎,测试的胖子提出需求,需要点击弹出一个框,完全显示编辑内容。

        实现步骤:

  1. 给可编辑表格特定类型的框添加事件监听,不能影响可编辑表格现有的功能
  2. 做一个模态框组件,用于显示和编辑
  3. 完善父页面和模态框组件之间的数据通信

        直接上代码:

源码里没有点击事件,需要自己加

jeecgboot 可编辑表格弹窗富文本框_第2张图片

 源码里增加一个处理函数,用于父子组件传值

jeecgboot 可编辑表格弹窗富文本框_第3张图片

 父组件中的column,增加使能点击事件的属性

jeecgboot 可编辑表格弹窗富文本框_第4张图片

 父组件监听子组件的事件

 jeecgboot 可编辑表格弹窗富文本框_第5张图片

父组件处理子组件传过来的数据

jeecgboot 可编辑表格弹窗富文本框_第6张图片

最后再新建一个弹窗页面即可

这里使用了compute,用于防止子组件直接修改父组件的值



 效果图:

jeecgboot 可编辑表格弹窗富文本框_第7张图片

 jeecgboot 可编辑表格弹窗富文本框_第8张图片

全屏效果

jeecgboot 可编辑表格弹窗富文本框_第9张图片 

这样保存后会有很多HTML后台处理的时候需要去除,附上工具类:

 

public class FckEditorUtil {

    public static Pattern p = Pattern.compile("\\s*|\t|\r|\n|");

    /**
     * 去掉字符串中的 \t \r \n
     * 

* param str * * @return * @author Rex */ public static String replaceBlank(String str) { String dest = ""; if (str != null) { Matcher m = p.matcher(str); dest = m.replaceAll(""); } return dest; } /** * 删除Html标签 *

* param inputString * * @return * @author Rex */ public static String removeHtmlTag(String inputString) { if (inputString == null) { return null; } String htmlStr = inputString; // 含html标签的字符串 String textStr = ""; try { //定义script的正则表达式{或]*?>[\\s\\S]*?<\\/script> String regEx_script = "<[\\s]*?script[^>]*?>[\\s\\S]*?<[\\s]*?\\/[\\s]*?script[\\s]*?>"; //定义style的正则表达式{或]*?>[\\s\\S]*?<\\/style> String regEx_style = "<[\\s]*?style[^>]*?>[\\s\\S]*?<[\\s]*?\\/[\\s]*?style[\\s]*?>"; // 定义HTML标签的正则表达式 String regEx_html = "<[^>]+>"; // 定义一些特殊字符的正则表达式 如:      String regEx_special = "\\&[a-zA-Z]{1,10};"; textStr = getString(htmlStr, regEx_script, regEx_style, regEx_html, regEx_special); } catch (Exception e) { e.printStackTrace(); } return textStr;// 返回文本字符串 } private static String getString(String htmlStr, String... args) { Pattern p_script; Matcher m_script; for (String regEx: args) { p_script = Pattern.compile(regEx, Pattern.CASE_INSENSITIVE); m_script = p_script.matcher(htmlStr); htmlStr = m_script.replaceAll(" "); // 过滤 } return htmlStr; } }

你可能感兴趣的:(Vue,jeecgboot,前端,java,javascript)