若依框架富文本框的实现

2023-11-05

若依框架富文本框的实现:

前端部分

  1. 引入summernote的js跟css
<head>
    <th:block th:include="include :: header('新增工程')" />
    <th:block th:include="include :: summernote-css" />
    <th:block th:include="include :: bootstrap-fileinput-css" />

</head>
<th:block th:include="include :: summernote-js" />
  1. 写入富文本样式的标签
<div class="col-sm-6">
                    <div class="form-group">
                        <label class="col-sm-3 control-label">现状描述:</label>
                        <div class="col-sm-8">
                            <input name="xzms" id="xzms"  type="hidden">
                            <div class="summernote"></div>
                        </div>
                    </div>
                </div>
  1. 写入js代码
$('.summernote').summernote({
            placeholder: '请输入现状描述',
            height: 150,
            lang: 'zh-CN',
            followingToolbar: false,
            callbacks: {
                onImageUpload: function (files){
                    sendFile(files[0],this);
                }
            }
       });

	    function sendFile(file,obj) {
    	    var data = new FormData();
    	    data.append('file',file);
    	    $.ajax({
        	    type: "POST",
        	    url: ctx + "common/upload",
        	    data: data,
        	    cache: false,
        	    contentType: false,
        	    processData: false,
        	    dataType: 'json',
        	    success: function(result) {
            	    if(result.code == web_status.SUCCESS){
                	    $(obj).summernote('editor.insertImage',result.url,result.fileName);
            	    }else    {
                	    $.modal.alertError('result.msg');
            	    }
        	    },
        	    error: function(error) {
            	    $.modal.alertWarning("图片上传失败!");
        	    }

    	    });
        }

后端部分

/**
     * 通用上传请求(单个)
     */
    @PostMapping("/upload")
    @ResponseBody
    public AjaxResult uploadFile(MultipartFile file) throws Exception
    {
        try
        {
            // 上传文件路径
            String filePath = RuoYiConfig.getUploadPath();
            // 上传并返回新文件名称
            String fileName = FileUploadUtils.upload(filePath, file);
            String url = serverConfig.getUrl() + fileName;
            AjaxResult ajax = AjaxResult.success();
            ajax.put("url", url);
            ajax.put("fileName", fileName);
            ajax.put("newFileName", FileUtils.getName(fileName));
            ajax.put("originalFilename", file.getOriginalFilename());
            return ajax;
        }
        catch (Exception e)
        {
            return AjaxResult.error(e.getMessage());
        }
    }

function submitHandler() {
            if ($.validate.form()) {
            var sHTML = $('.summernote').summernote('code');
            $("#xzms").val(sHTML);
            var data = $("#form-gongcheng-add").serializeArray();
                $.operate.saveTab(prefix + "/add", data);
            }
        }

实现效果

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

若依框架富文本框的实现 的相关文章

随机推荐

  • 未能加载项目文件。缺少根元素。

    问题 项目无法加载或者无法打开 方法 删除项目的 Debug 和 Release 目录 或者删除 user 配置软件
  • 使用和生成库

    使用和生成库 基本概念 库有动态与静态两种 动态通常用 so为后缀 静态用 a为后缀 例如 libhello so libhello a 为了在同一系统中使用不同版本的库 可以在库文件名后加上版本号为后缀 例如 libhello so 1
  • 【Leetcode】145. 二叉树的后序遍历

    题目描述 给定一个二叉树 返回它的 后序 遍历 题解 递归法 执行用时 0 ms 在所有 Java 提交中击败了100 00 的用户 内存消耗 36 8 MB 在所有 Java 提交中击败了29 78 的用户 Definition for
  • 【深度学习】迁移学习

    什么是迁移学习 迁移学习 Transfer Learning 是一种机器学习方法 就是把为任务 A 开发的模型作为初始点 重新使用在为任务 B 开发模型的过程中 迁移学习是通过从已学习的相关任务中转移知识来改进学习的新任务 虽然大多数机器学
  • 服务器当然选算力强大、换“芯”成本低的

    有一句净水器的广告语人们耳熟能详 选净水器 当然选净化效果好 换芯成本低的 随着各行各业对算力需求的不断高涨 服务器的更新换代速度也越来越快 而除了常规的换 芯 以外 服务器系统在整体设计上如何更好地满足算力多样化 管理智能化 运营安全性和
  • 分享一个数据产品的PRD

    作者 LineLian 微信 firstbodytm 随着年龄的增长会越来越重视道 重视产品成功的系统原因 重视产品的团体环境 重视还原用户的真实因子 对于术比如用啥工具 写那些文档怎么写 交互方式是多么的酷炫 界面设计的是多么的棒 流程设
  • upstream模块(开发)

    http tengine taobao org book chapter 5 html upstream模块 100 nginx模块一般被分成三大类 handler filter和upstream 前面的章节中 读者已经了解了handler
  • 使用gdb调试多进程及多线程程序

    多进程调试 首先来了解下会可能会用到的调试命令 1 默认设置下 在调试多进程程序时GDB只会调试主进程 但是如果设置follow fork mode的话 就可调试多个进程 set follow fork mode parent child
  • 直角坐标系中点的旋转【点绕点旋转】

    前言 本文整理在平面直角系中 坐标系旋转 某点绕着坐标系旋转 坐标点A 绕着点B旋转 求旋转后的点坐标 看了网上好的文章 发现部分有误或不完整 这里简单总结一下 一 点绕坐标系旋转 坐标系不变 某点 绕坐标系 原点 旋转 角度 求旋转后点的
  • GET和POST的区别,java模拟postman发post请求

    目录 一 先说一下get和post 1 看一下人畜无害的w3schools怎么说 2 问一下文心你言哥 轻轻松松给你一个标准答案 3 卧槽 懂了 好像又没懂 二 让我们扒下GET和POST的外衣 坦诚相见吧 三 我们的大BOSS还等着出场呢
  • STM32Lx在低功耗下使用软件看门狗

    看门狗对于防止程序跑死是很关键的 很多时候我们的产品需要进入低功耗 而且唤醒间隔也比较长 此时如果看门狗启动了 那么就会导致处在低功耗的MCU发生复位 解决这个问题的方法有两种 一种是增加看门狗的喂狗时间间隔 保证此间隔大于MCU唤醒间隔
  • Person Search论文——《Query-guided End-to-End Person Search》CVPR 2019笔记

    1 论文主要思想 这篇论文是以 Joint Detection and Identification Feature Learning for Person Search 作为baseline进行改进的 在保持baseline中joint
  • 关于软件开发外包,你应该注意的细节

    伴随着社会的发展 许多公司都急需一款归属于自身的软件 或是别的对自身有价值的软件 当企业沒有自身的软件开发团队 或有团队但团队无法实现这一项目时 大家的另一个解决方案便是把这个软件开发项目外包给专业的软件开发公司 并给与合理的资金和酬劳 让
  • python socket监听端口_python 用socket模块实现检测端口和检测web服务

    以下程序均来自 Python UNIX和Linux系统管理指南 检测端口 check tcp port py usr bin env python import socket import re import sys def check s
  • Java——eclipse常用的调试debug的方法

    1 输出查看debug信息 1 System err println 以红色字体输出 例如以下一段代码 int ints new int 20 for int i 0 i lt 21 i ints i i 1 System out prin
  • CPU虚拟化技术

    基本概念 物理CPU数量 实际服务器插槽上的CPU个数 核 一块CPU上面能处理数据的芯片组的数量 超线程 在一个实体芯片组中提供两个逻辑线程 逻辑CPU数量 物理CPU数量 核 超线程 若支持超线程 该值为2 vCPU 虚机分配的CPU
  • KOA框架编程25 文件下载

    目录 1 前言 2 文件下载 1 前言 koa这个框架确实好玩 跟express相比有比较大的不一样 express更像是一个大杂烩 所有的功能都冗杂在一块 而koa更像是一个灵活性很高个体 所有的功能都以独立组件的形式存在 2 文件下载
  • vite + vue报错:TypeError: The argument ‘id‘ must be a non-empty string. Received ‘‘

    vite vue项目开发环境运行正常 打包后报错 知道是图片的原因导致报错 却不知道具体原因是啥 用了电脑系统路径的图片 如 home xxx aa png file home xxx aa png base64等等 网上找这种情况 一般都
  • java多线程同步以及线程间通信

    文章目录 1 线程同步问题的产生 2 解决线程同步的两种典型方案 2 1 通过锁 Lock 对象的方式解决线程安全问题 2 2 synchronied关键字 2 2 1 同步方法 2 2 2 同步块 2 2 3 通过synchronied关
  • 若依框架富文本框的实现

    若依框架富文本框的实现 前端部分 引入summernote的js跟css