RUOYI框架教程(二)

 期待已久的系列,又双给你们见面啦javascript


本系列纯干货!!有想了解的小伙伴,欢迎加微信v5coding_com(非官方)~~~
css


01html

java

上期回顾jquery

上期推文中,咱们就若依框架进行了简单的介绍与初步上手操做。传送门:RUOYI框架教程(一)web


光说不干假把式,本期以常见的笔记功能进行讲解,功能简单,参考勿喷~~ajax

实战项目:《笔记管理》涉及框架内容:1、字典管理;2、菜单管理;3、代码生成;4、富文本编辑器;5、全屏展现设置;


02sql

数据库

功能实现
json

  1. 启动项目,访问系统,以下所示。具体方法,请参考RUOYI框架教程(一)

  2. 打开系统管理,点击菜单管理,新建菜单。我这里,建立了一个空目录,【笔记箱】。

  3. 打开系统管理,点击字典管理,新建字典。我这里,建立了一个字典,【笔记本】。

  4. 打开navicate,建立数据库表。我这里只建立了单表,信息以下:


    须要注意的是:建立者、建立时间、更新者、更新时间、用户ID等信息,可使用框架自己的设置,系统会获取并自动插入。但字段名称固定,需按固定建立。

    建立者  create_by  varchar建立时间 create_time datetime更新者 update_by varchar更新时间 update_time datetime用户ID user_id bigint部门ID  dept_id  bigint
  5. 打开系统工具,点击代码生成。在页面,点击导入,选择数据库表

  6. 选择导入的表,点击编辑,查看字段信息。这里我使用到了前面配置的字典。

    具体操做为:选择显示类型为下拉框,字典类型为配置的【笔记本】。

  7. 选择导入的表,点击编辑,查看生成信息。这里能够进行包名、业务名、菜单位置等信息配置。

  8. 完成配置后,点击生成代码。系统会生成后台方法及前台页面。

  9. 导出后,点击下载位置,将生成的main替换原有项目路径下文件。将sql在navicate中执行。


  10. 重启项目,查看生成的项目功能,此时项目功能已经可使用。

    截止到目前为止,系统尚未一步代码的编写,功能已经可用。

03

自定义功能-富文本编辑器


功能介绍:


生成的功能中,内容为输入框,显然是不合适的。我使用框架中现有功能,改成了富文本编辑器。效果以下:


实现原理:

  • 打开生成的html页面,我这里是add.html页面。找到内容的代码,将type值由“text”,改成“hidden”,同时设置div属性,具体以下:

    <div class="form-group">  <label class="col-sm-3 control-label">内容:</label> <div class="col-sm-8"> <input id="content" name="content" class="form-control" type="hidden"> <div class="summernote"></div> </div></div>
  • 在代码中,增长css及js引用,具体以下:

     <th:block th:include="include :: summernote-css" /> <th:block th:include="include :: summernote-js" />
  • 在代码中,增长jquery引用(修改替换原有),具体以下:

    <script th:inline="javascript">        var prefix = ctx + "hp/notecopy"
    $('.summernote').summernote({ placeholder: '请输入内容', height : 192, 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("图片上传失败。"); } }); }
    $("#form-notecopy-add").validate({ focusCleanup: true });
    function submitHandler() { if ($.validate.form()) { var sHTML = $('.summernote').summernote('code'); $("#content").val(sHTML); $.operate.save(prefix + "/add", $('#form-notecopy-add').serialize()); } }</script>


04

自定义功能-全屏查看详情


功能介绍:


生成的代码中,没有查看功能,而通常系统都须要的。因此,在这里我新增了查看详情的功能。效果以下:

实现原理:

  • 复制一份页面,我用的是edit.html,重命名为detail.html,修改原有页面信息,包括:

        一、去掉富文本编辑器,将input改成p标签,将th:field改成th:utext

<div class="form-group">  <label class="col-sm-3 control-label">内容:</label> <div class="col-sm-8">         <p id="content" name="content"  th:utext="*{content}"></p>          </div></div>

        二、去掉jquery配置,保留信息以下

<script th:inline="javascript">        var prefix = ctx + "hp/notecopy"; $("#form-notecopy-detail").validate({ focusCleanup: true });
function submitHandler() { if ($.validate.form()) { $.operate.cancel(prefix + "/detail", $('#form-notecopy-detail').serialize()); } }</script>

        三、框内信息不容许编辑,即input增长disabled="disabled"

 <input name="label" th:field="*{label}" class="form-control" type="text" disabled="disabled">
  • 在总页面中,配置页面请求和跳转,我这里是notecopy.html,将如下内容,增长到对于位置便可。

    var detailFlag = [[${@permission.hasPermi('hp:notecopy:detail')}]];
    var options = {detailUrl: prefix + "/detail/{id}"}
    actions.push('<a class="btn btn-success btn-xs ' +detailFlag + '" href="javascript:void(0)" onclick="detl(\'' + row.notesId + '\')"><i class="fa fa-edit"></i>查看</a> ');                      

    在这里,我还用到了全屏页面的一个处理,因此,也加上如下内容,若是不须要全屏,能够不加:

    function detl( id) {  $.modal.openFull("Dtail",ctx+"hp/notecopy/detail/"+id); }
  • 在controll中,配置对于请求处理

    /** * 查看笔记信息*/@RequestMapping("/detail/{notesId}")public String detail(@PathVariable("notesId") Long notesId, ModelMap mmap){ RecNotesConCopy recNotesConCopy = recNotesConCopyService.selectRecNotesConCopyById(notesId);  mmap.put("recNotesConCopy", recNotesConCopy);  return prefix + "/detial";}

06

微信交流群


最近b站视频被下架、csdn博客被封,被迫转战社群~果有视频或技术交流需求,请联系微信或者直接加群交流。

微信号:v5coding_com




本文分享自微信公众号 - V5codings(gh_c1ec2d16ec93)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。

相关文章
相关标签/搜索