mirror of
				https://github.com/nsnail/FreeSql.git
				synced 2025-11-04 17:20:49 +08:00 
			
		
		
		
	新增文档分类列表树
This commit is contained in:
		@@ -35,15 +35,6 @@ namespace FreeSql.Site.UI.Areas.Admin.Controllers
 | 
			
		||||
            return View(model);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        #region 文档分类
 | 
			
		||||
        public IActionResult DocType()
 | 
			
		||||
        {
 | 
			
		||||
            DocumentType model = new DocumentType();
 | 
			
		||||
            return View(model);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        #endregion
 | 
			
		||||
 | 
			
		||||
        #region 文档内容
 | 
			
		||||
        public IActionResult DocContent()
 | 
			
		||||
        {
 | 
			
		||||
@@ -82,7 +73,7 @@ namespace FreeSql.Site.UI.Areas.Admin.Controllers
 | 
			
		||||
 | 
			
		||||
        public ActionResult DocContentEditModule(string id)
 | 
			
		||||
        {
 | 
			
		||||
            ViewBag.DocumentTypeList = DocumentTypeDAL.Query(w => w.Status == 1).Select(s => new SelectListItem { Text = s.TypeName, Value = s.ID.ToString() }).ToList();
 | 
			
		||||
            ViewBag.DocumentTypeList = DocumentTypeDAL.Query(w => w.Status == 1).list.Select(s => new SelectListItem { Text = s.TypeName, Value = s.ID.ToString() }).ToList();
 | 
			
		||||
            DocumentContent model = new DocumentContent();
 | 
			
		||||
            if (!string.IsNullOrEmpty(id))
 | 
			
		||||
            {
 | 
			
		||||
@@ -140,6 +131,109 @@ namespace FreeSql.Site.UI.Areas.Admin.Controllers
 | 
			
		||||
            return Json(resdata);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        #endregion
 | 
			
		||||
 | 
			
		||||
        #region 文档分类
 | 
			
		||||
        public IActionResult DocType()
 | 
			
		||||
        {
 | 
			
		||||
            DocumentType model = new DocumentType();
 | 
			
		||||
 | 
			
		||||
            ViewBag.TypeList = DocumentTypeDAL.Query(w => w.Status == 1).list.Select(s => new DocumentTypeTreeNode
 | 
			
		||||
            {
 | 
			
		||||
                id = s.ID.ToString(),
 | 
			
		||||
                pid = (s.UpID ?? 0).ToString(),
 | 
			
		||||
                title = s.TypeName,
 | 
			
		||||
                tag = s.Tag,
 | 
			
		||||
                createdt = s.CreateDt
 | 
			
		||||
            }).ToList();
 | 
			
		||||
 | 
			
		||||
            return View(model);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        [HttpGet]
 | 
			
		||||
        public IActionResult DocTypeList(string searchContent, string seniorQueryJson, int page = 1, int limit = 10)
 | 
			
		||||
        {
 | 
			
		||||
            DocumentType model = null;
 | 
			
		||||
            if (!string.IsNullOrWhiteSpace(seniorQueryJson))
 | 
			
		||||
            {
 | 
			
		||||
                model = Newtonsoft.Json.JsonConvert.DeserializeObject<DocumentType>(seniorQueryJson);
 | 
			
		||||
            }
 | 
			
		||||
            Expression<Func<DocumentType, bool>> predicate = i => 1 == 0;
 | 
			
		||||
            var searchPredicate = PredicateExtensions.True<DocumentType>();
 | 
			
		||||
            if (model != null)
 | 
			
		||||
            {
 | 
			
		||||
                searchPredicate = searchPredicate.And(u => u.Status == 1);
 | 
			
		||||
            }
 | 
			
		||||
            var contents = DocumentTypeDAL.Query(searchPredicate);
 | 
			
		||||
 | 
			
		||||
            return Json(new DataPage<DocumentType>
 | 
			
		||||
            {
 | 
			
		||||
                code = "0",
 | 
			
		||||
                msg = "",
 | 
			
		||||
                count = contents.count,
 | 
			
		||||
                data = contents.list
 | 
			
		||||
            });
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public ActionResult DocTypeEditModule(string id)
 | 
			
		||||
        {
 | 
			
		||||
            DocumentType model = new DocumentType();
 | 
			
		||||
            if (!string.IsNullOrEmpty(id))
 | 
			
		||||
            {
 | 
			
		||||
                int _id = Convert.ToInt32(id);
 | 
			
		||||
                model = DocumentTypeDAL.GetByOne(w => w.ID == _id);
 | 
			
		||||
            }
 | 
			
		||||
            return View(model);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        // POST: Documents/Create
 | 
			
		||||
        [HttpPost]
 | 
			
		||||
        //[ValidateAntiForgeryToken]
 | 
			
		||||
        public ActionResult DocTypeCreate([FromBody]DocumentContent model)
 | 
			
		||||
        {
 | 
			
		||||
            var resdata = AutoException.Excute<long>((result) =>
 | 
			
		||||
            {
 | 
			
		||||
                result.Data = DocumentContentDAL.Insert(model);
 | 
			
		||||
                if (result.Data == 0)
 | 
			
		||||
                {
 | 
			
		||||
                    throw new Exception("数据新增异常,JSON:" + Newtonsoft.Json.JsonConvert.SerializeObject(model));
 | 
			
		||||
                }
 | 
			
		||||
            }, false);
 | 
			
		||||
            return Json(resdata);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        // POST: Documents/Create
 | 
			
		||||
        [HttpPost]
 | 
			
		||||
        //[ValidateAntiForgeryToken]
 | 
			
		||||
        public ActionResult DocTypeUpdate([FromBody]DocumentContent model)
 | 
			
		||||
        {
 | 
			
		||||
            var resdata = AutoException.Excute<bool>((result) =>
 | 
			
		||||
            {
 | 
			
		||||
                model.UpdateBy = "admin";
 | 
			
		||||
                model.UpdateDt = DateTime.Now;
 | 
			
		||||
                result.Data = DocumentContentDAL.Update(model);
 | 
			
		||||
                if (result.Data == false)
 | 
			
		||||
                {
 | 
			
		||||
                    throw new Exception("数据新增异常,JSON:" + Newtonsoft.Json.JsonConvert.SerializeObject(model));
 | 
			
		||||
                }
 | 
			
		||||
            }, false);
 | 
			
		||||
            return Json(resdata);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        [HttpPost]
 | 
			
		||||
        [ValidateAntiForgeryToken]
 | 
			
		||||
        public ActionResult DocTypeDelete(int id, IFormCollection collection)
 | 
			
		||||
        {
 | 
			
		||||
            var resdata = AutoException.Excute<long>((result) =>
 | 
			
		||||
            {
 | 
			
		||||
                if (!DocumentContentDAL.Delete(id))
 | 
			
		||||
                {
 | 
			
		||||
                    throw new Exception("数据删除异常,ID:" + id);
 | 
			
		||||
                }
 | 
			
		||||
            }, false);
 | 
			
		||||
            return Json(resdata);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        #endregion 
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -16,7 +16,7 @@
 | 
			
		||||
    <div class="layui-btn-container">
 | 
			
		||||
        <button class="layui-btn layui-btn-sm" lay-event="add">添加</button>
 | 
			
		||||
        @*<button class="layui-btn layui-btn-sm" lay-event="delete">删除</button>
 | 
			
		||||
        <button class="layui-btn layui-btn-sm" lay-event="update">编辑</button>*@
 | 
			
		||||
            <button class="layui-btn layui-btn-sm" lay-event="update">编辑</button>*@
 | 
			
		||||
        <div style="float:right;border:0px solid red;">
 | 
			
		||||
            <input type="text" name="search_txt" lay-verify="title" autocomplete="off" placeholder="标题" class="layui-input" style="height: 30px;width:160px;float:left;">
 | 
			
		||||
            <a href="#" style="line-height:30px;margin-left:8px;">高级查询</a>
 | 
			
		||||
@@ -30,21 +30,11 @@
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
    var testEditor;
 | 
			
		||||
    layui.use(['form', 'layedit', 'laydate', 'table'], function () {
 | 
			
		||||
    var contentEdit;
 | 
			
		||||
    layui.use(['form', 'table'], function () {
 | 
			
		||||
        var table = layui.table;
 | 
			
		||||
        var form = layui.form
 | 
			
		||||
            , layer = layui.layer
 | 
			
		||||
            , layedit = layui.layedit
 | 
			
		||||
            , laydate = layui.laydate;
 | 
			
		||||
 | 
			
		||||
        //日期
 | 
			
		||||
        laydate.render({
 | 
			
		||||
            elem: '#date'
 | 
			
		||||
        });
 | 
			
		||||
        laydate.render({
 | 
			
		||||
            elem: '#date1'
 | 
			
		||||
        });
 | 
			
		||||
            , layer = layui.layer;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        table.render({
 | 
			
		||||
@@ -65,7 +55,7 @@
 | 
			
		||||
                , { fixed: 'right', title: '操作', toolbar: '#barDemo', width: 150 }
 | 
			
		||||
            ]]
 | 
			
		||||
            , page: true
 | 
			
		||||
            , id : 'docContentTable'
 | 
			
		||||
            , id: 'docContentTable'
 | 
			
		||||
        });
 | 
			
		||||
 | 
			
		||||
        var reloadTable = function () {
 | 
			
		||||
@@ -77,6 +67,26 @@
 | 
			
		||||
            });
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
        var deleteObj = function (removeRowDatas) {
 | 
			
		||||
            layer.confirm('确定要删除吗?', function (index) {
 | 
			
		||||
                //调用删除
 | 
			
		||||
                $.ajax({
 | 
			
		||||
                    type: "POST",
 | 
			
		||||
                    url: "/Admin/Document/DocContentDelete",
 | 
			
		||||
                    data: { id: rowid },
 | 
			
		||||
                    dataType: "html",
 | 
			
		||||
                    success: function (data) {
 | 
			
		||||
                        obj.del();
 | 
			
		||||
                        layer.close(index);
 | 
			
		||||
                    },
 | 
			
		||||
                    error: function () {
 | 
			
		||||
                        layer.close(index);
 | 
			
		||||
                        layer.alert("删除失败!");
 | 
			
		||||
                    }
 | 
			
		||||
                });
 | 
			
		||||
            });
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        //监听事件
 | 
			
		||||
        table.on('toolbar(test)', function (obj) {
 | 
			
		||||
            var checkStatus = table.checkStatus(obj.config.id);
 | 
			
		||||
@@ -91,10 +101,11 @@
 | 
			
		||||
                        },
 | 
			
		||||
                        callback: reloadTable
 | 
			
		||||
                    };
 | 
			
		||||
                    dialogWindow.create(options);
 | 
			
		||||
                    freejs.dialogWindow.create(options);
 | 
			
		||||
                    break;
 | 
			
		||||
                case 'delete':
 | 
			
		||||
                    layer.msg('删除');
 | 
			
		||||
                    var data = checkStatus.data;
 | 
			
		||||
                    deleteObj(data);
 | 
			
		||||
                    break;
 | 
			
		||||
                case 'update':
 | 
			
		||||
                    layer.msg('编辑');
 | 
			
		||||
@@ -106,6 +117,7 @@
 | 
			
		||||
        table.on('tool(test)', function (obj) {
 | 
			
		||||
            var data = obj.data;
 | 
			
		||||
            if (obj.event === 'del') {
 | 
			
		||||
                deleteObj(obj.data);
 | 
			
		||||
                layer.confirm('确定要删除吗?', function (index) {
 | 
			
		||||
                    //调用删除
 | 
			
		||||
                    $.ajax({
 | 
			
		||||
@@ -133,92 +145,10 @@
 | 
			
		||||
                    },
 | 
			
		||||
                    callback: reloadTable
 | 
			
		||||
                };
 | 
			
		||||
                dialogWindow.create(options);
 | 
			
		||||
 | 
			
		||||
                //form.render();
 | 
			
		||||
                //layer.prompt({
 | 
			
		||||
                //    formType: 2
 | 
			
		||||
                //    , value: data.email
 | 
			
		||||
                //}, function (value, index) {
 | 
			
		||||
                //    obj.update({
 | 
			
		||||
                //        email: value
 | 
			
		||||
                //    });
 | 
			
		||||
                //    layer.close(index);
 | 
			
		||||
                //});
 | 
			
		||||
                freejs.dialogWindow.create(options);
 | 
			
		||||
            }
 | 
			
		||||
        });
 | 
			
		||||
 | 
			
		||||
        //先简单封装下
 | 
			
		||||
        var dialogWindow = {
 | 
			
		||||
            create: function (options, formpage) {
 | 
			
		||||
                $("#docContentEdit").load(options.url, options.paramters, function (responseText, textStatus, jqXHR) {
 | 
			
		||||
                    switch (textStatus) {
 | 
			
		||||
                        case "success":
 | 
			
		||||
                            dialogWindow.open($.extend({
 | 
			
		||||
                                type: 1,
 | 
			
		||||
                                maxmin: true,
 | 
			
		||||
                                title: "编辑",
 | 
			
		||||
                                area: ['1100px', '660px'],
 | 
			
		||||
                                shadeClose: false, //点击遮罩关闭
 | 
			
		||||
                                content: responseText,
 | 
			
		||||
                                submit: {
 | 
			
		||||
                                    url: "/Admin/Document/DocContentCreate",
 | 
			
		||||
                                }
 | 
			
		||||
                            }, options), form);
 | 
			
		||||
                            break;
 | 
			
		||||
                        case "error":
 | 
			
		||||
                            freejs.showMessage({ title: "提示", msg: "页面加载失败", type: 2 });
 | 
			
		||||
                            break;
 | 
			
		||||
                    }
 | 
			
		||||
                });
 | 
			
		||||
            },
 | 
			
		||||
            open: function (options, form) {
 | 
			
		||||
                var base_options = {
 | 
			
		||||
                    type: 1,
 | 
			
		||||
                    maxmin: true,
 | 
			
		||||
                    title: "编辑",
 | 
			
		||||
                    area: ['1100px', '660px'],
 | 
			
		||||
                    shadeClose: false //点击遮罩关闭
 | 
			
		||||
                };
 | 
			
		||||
                var new_options = $.extend(base_options, options);
 | 
			
		||||
                new_options.success = function (layero, index) {
 | 
			
		||||
                    form.render();
 | 
			
		||||
                    $(".form-module-content").height(dialog_Paramters.height - 110);
 | 
			
		||||
                    testEditor = editormd("md_DocContent", {
 | 
			
		||||
                        width: "96%",
 | 
			
		||||
                        height: 640,
 | 
			
		||||
                        syncScrolling: "single",
 | 
			
		||||
                        path: "../../lib/editormd/lib/"
 | 
			
		||||
                    });
 | 
			
		||||
                    //监听提交
 | 
			
		||||
                    form.on('submit(formDemo)', function (data) {
 | 
			
		||||
                        $.ajax({
 | 
			
		||||
                            type: 'POST',
 | 
			
		||||
                            url: options.submit.url,//"/Admin/Document/DocContentCreate",
 | 
			
		||||
                            data: JSON.stringify(data.field),
 | 
			
		||||
                            contentType: "application/json; charset=utf-8",
 | 
			
		||||
                            dataType: "json",
 | 
			
		||||
                            success: function (e) {
 | 
			
		||||
                                if (e.Status == 1) {
 | 
			
		||||
                                    freejs.showMessage({ title: "提示", msg: e.Msg || "保存成功", type: 1 });
 | 
			
		||||
                                    if ($.isFunction(new_options.callback)) new_options.callback();
 | 
			
		||||
                                    layer.close(index);
 | 
			
		||||
                                }
 | 
			
		||||
                                else {
 | 
			
		||||
                                    freejs.showMessage({ title: "提示", msg: e.Msg, type: 2 });
 | 
			
		||||
                                }
 | 
			
		||||
                            }
 | 
			
		||||
                        });
 | 
			
		||||
                        return false;
 | 
			
		||||
                    });
 | 
			
		||||
                }
 | 
			
		||||
                layer.open(new_options);
 | 
			
		||||
            },
 | 
			
		||||
            close: function () {
 | 
			
		||||
 | 
			
		||||
            }
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
        $(document).on('click', '#btnSubmit', function () {
 | 
			
		||||
            layer.msg('响应点击事件');
 | 
			
		||||
        });
 | 
			
		||||
 
 | 
			
		||||
@@ -3,125 +3,108 @@
 | 
			
		||||
 | 
			
		||||
    //Layout = "~/Areas/Admin/Shared/_Layout.cshtml";
 | 
			
		||||
}
 | 
			
		||||
<style>
 | 
			
		||||
    body {
 | 
			
		||||
        padding: 10px 30px;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
<div id="myeditor" style="display: none">
 | 
			
		||||
    <!-- 富文本编辑器 -->
 | 
			
		||||
    <div id="test-editormd"></div>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<div id="markdownToHTML" style="margin-left: 100px">
 | 
			
		||||
    <textarea id="content" style="display:none;" placeholder="markdown语言"></textarea>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<div class="layui-btn-container" style="margin: 10px">
 | 
			
		||||
    <button id="showEditor" class="layui-btn">显示编辑器</button>
 | 
			
		||||
    <button id="getMarkdownContent" class="layui-btn">获取Markdown源码</button>
 | 
			
		||||
    <button id="getHtmlContent" class="layui-btn">获取Html源码</button>
 | 
			
		||||
    <button id="showHTML" class="layui-btn">Markdown解析成HTML</button>
 | 
			
		||||
</div>
 | 
			
		||||
    .hide {
 | 
			
		||||
        display: none
 | 
			
		||||
    }
 | 
			
		||||
</style>
 | 
			
		||||
<button class="layui-btn layui-btn-primary down-up-all">全部收起/展开</button>
 | 
			
		||||
<button class="layui-btn layui-btn-primary get-checked">获取选中</button>
 | 
			
		||||
 | 
			
		||||
<table class="layui-table layui-form" id="doctype-tree-table"></table>
 | 
			
		||||
 | 
			
		||||
<script type="text/javascript">
 | 
			
		||||
    layui.use(['layer', 'jquery'], function () {
 | 
			
		||||
        var layer = layui.layer
 | 
			
		||||
            , $ = layui.jquery;
 | 
			
		||||
    layui.use(['treetable', 'form'], function () {
 | 
			
		||||
        var data = @Html.Raw(Html.ToJson(ViewBag.TypeList as List<DocumentTypeTreeNode>));
 | 
			
		||||
 | 
			
		||||
        var testEditor;
 | 
			
		||||
        $('#showEditor').on('click', function () {
 | 
			
		||||
            // 弹出框
 | 
			
		||||
            layer.open({
 | 
			
		||||
                type: 1
 | 
			
		||||
                , content: $('#myeditor')
 | 
			
		||||
                , btn: '关闭全部'
 | 
			
		||||
                , btnAlign: 'c' //按钮居中
 | 
			
		||||
                , shade: 0 //不显示遮罩
 | 
			
		||||
                , area: ['800px', '600px']
 | 
			
		||||
                , yes: function () {
 | 
			
		||||
                    layer.closeAll();
 | 
			
		||||
                },
 | 
			
		||||
                success: function () {
 | 
			
		||||
                    testEditor = editormd("test-editormd", {
 | 
			
		||||
                        width: "90%",
 | 
			
		||||
                        height: 740,
 | 
			
		||||
                        path: "../../lib/editormd/lib/",
 | 
			
		||||
                        theme: "default",
 | 
			
		||||
                        previewTheme: "default",
 | 
			
		||||
                        editorTheme: "default",
 | 
			
		||||
                        //markdown : md,             // 初始化编辑区的内容
 | 
			
		||||
                        codeFold: true,
 | 
			
		||||
                        //syncScrolling : false,
 | 
			
		||||
                        saveHTMLToTextarea: true,    // 保存 HTML 到 Textarea
 | 
			
		||||
                        searchReplace: true,
 | 
			
		||||
                        //watch : false,                // 关闭实时预览
 | 
			
		||||
                        htmlDecode: "style,script,iframe|on*",            // 开启 HTML 标签解析,为了安全性,默认不开启
 | 
			
		||||
                        //toolbar  : false,             //关闭工具栏
 | 
			
		||||
                        //previewCodeHighlight : false, // 关闭预览 HTML 的代码块高亮,默认开启
 | 
			
		||||
                        emoji: true,
 | 
			
		||||
                        taskList: true,
 | 
			
		||||
                        tocm: true,         // Using [TOCM]
 | 
			
		||||
                        tex: true,                   // 开启科学公式TeX语言支持,默认关闭
 | 
			
		||||
                        flowChart: true,             // 开启流程图支持,默认关闭
 | 
			
		||||
                        sequenceDiagram: true,       // 开启时序/序列图支持,默认关闭,
 | 
			
		||||
                        //dialogLockScreen : false,   // 设置弹出层对话框不锁屏,全局通用,默认为true
 | 
			
		||||
                        //dialogShowMask : false,     // 设置弹出层对话框显示透明遮罩层,全局通用,默认为true
 | 
			
		||||
                        //dialogDraggable : false,    // 设置弹出层对话框不可拖动,全局通用,默认为true
 | 
			
		||||
                        //dialogMaskOpacity : 0.4,    // 设置透明遮罩层的透明度,全局通用,默认值为0.1
 | 
			
		||||
                        //dialogMaskBgColor : "#000", // 设置透明遮罩层的背景颜色,全局通用,默认为#fff
 | 
			
		||||
                        imageUpload: true,
 | 
			
		||||
                        imageFormats: ["jpg", "jpeg", "gif", "png", "bmp", "webp"],
 | 
			
		||||
                        imageUploadURL: "./php/upload.php", // 文件上传路径,返回值为图片加载的路径
 | 
			
		||||
                        onload: function () {
 | 
			
		||||
                            // 加载后富文本编辑器成功后的回调
 | 
			
		||||
                            console.log('onload', this);
 | 
			
		||||
                            //this.fullscreen();
 | 
			
		||||
                            //this.unwatch();
 | 
			
		||||
                            //this.watch().fullscreen();
 | 
			
		||||
 | 
			
		||||
                            //this.setMarkdown("#PHP");
 | 
			
		||||
                            //this.width("100%");
 | 
			
		||||
                            //this.height(480);
 | 
			
		||||
                            //this.resize("100%", 640);
 | 
			
		||||
 | 
			
		||||
                            // 异步请求md文件,用于编辑时的数据回显
 | 
			
		||||
                            $.get('test.md', function (md) {
 | 
			
		||||
                                testEditor.setMarkdown(md);
 | 
			
		||||
                            });
 | 
			
		||||
        var o = layui.$, treetable = layui.treetable;
 | 
			
		||||
        var form = layui.form, layer = layui.layer;
 | 
			
		||||
        treetable.render({
 | 
			
		||||
            elem: '#doctype-tree-table',
 | 
			
		||||
            data: data,
 | 
			
		||||
            field: 'title',
 | 
			
		||||
            is_checkbox: true,
 | 
			
		||||
            checked: [1, 2, 3, 4],
 | 
			
		||||
            /*icon_val: {
 | 
			
		||||
                open: "",
 | 
			
		||||
                close: ""
 | 
			
		||||
            },
 | 
			
		||||
            space: 4,*/
 | 
			
		||||
            cols: [
 | 
			
		||||
                {
 | 
			
		||||
                    field: 'title',
 | 
			
		||||
                    title: '标题',
 | 
			
		||||
                    width: '40%',
 | 
			
		||||
                    template: function (item) {
 | 
			
		||||
                        if (item.level == 1) {
 | 
			
		||||
                            return '<span style="color:red;">' + item.title + '</span>';
 | 
			
		||||
                        }
 | 
			
		||||
                    });
 | 
			
		||||
                }
 | 
			
		||||
            });
 | 
			
		||||
                        if (item.level == 2) {
 | 
			
		||||
                            return '<span style="color:green;">' + item.title + '</span>';
 | 
			
		||||
                        }
 | 
			
		||||
                        return item.title;
 | 
			
		||||
                    }
 | 
			
		||||
                },
 | 
			
		||||
                {
 | 
			
		||||
                    field: 'id',
 | 
			
		||||
                    title: '编号',
 | 
			
		||||
                    width: '10%'
 | 
			
		||||
                },
 | 
			
		||||
                {
 | 
			
		||||
                    title: '标签',
 | 
			
		||||
                    width: '10%',
 | 
			
		||||
                    template: function (item) {
 | 
			
		||||
                        return item.tag||"";//'<input type="checkbox" lay-skin="switch" lay-filter="status" lay-text="开启|关闭">';
 | 
			
		||||
                    }
 | 
			
		||||
                },
 | 
			
		||||
                {
 | 
			
		||||
                    title: '创建时间',
 | 
			
		||||
                    width: '20%',
 | 
			
		||||
                    template: function (item) {
 | 
			
		||||
                        return item.createdt.replace('T',' ') || "";//'<input type="checkbox" lay-skin="switch" lay-filter="status" lay-text="开启|关闭">';
 | 
			
		||||
                    }
 | 
			
		||||
                },
 | 
			
		||||
                {
 | 
			
		||||
                    field: 'actions',
 | 
			
		||||
                    title: '操作',
 | 
			
		||||
                    width: '20%',
 | 
			
		||||
                    template: function (item) {
 | 
			
		||||
                        var tem = [];
 | 
			
		||||
                        tem.push('<button class="layui-btn layui-btn-xs layui-btn-normal">添加子级</button>');
 | 
			
		||||
                        tem.push('<button class="layui-btn layui-btn-xs">编辑</button>');
 | 
			
		||||
                        return tem.join(' ')
 | 
			
		||||
                    },
 | 
			
		||||
                },
 | 
			
		||||
            ]
 | 
			
		||||
        });
 | 
			
		||||
 | 
			
		||||
        // 获取markdown源码
 | 
			
		||||
        $('#getMarkdownContent').on('click', function () {
 | 
			
		||||
            var mdContent = $('.editormd-markdown-textarea').val();
 | 
			
		||||
            console.log(mdContent);
 | 
			
		||||
            var content = testEditor.getMarkdown();
 | 
			
		||||
            console.log(content);
 | 
			
		||||
        });
 | 
			
		||||
        // 获取解析后的html
 | 
			
		||||
        $('#getHtmlContent').on('click', function () {
 | 
			
		||||
            var content = testEditor.getHTML();
 | 
			
		||||
        treetable.on('treetable(add)', function (data) {
 | 
			
		||||
            layer.msg('添加操作');
 | 
			
		||||
            console.log(data);
 | 
			
		||||
        })
 | 
			
		||||
 | 
			
		||||
            console.log(content);
 | 
			
		||||
        });
 | 
			
		||||
        treetable.on('treetable(edit)', function (data) {
 | 
			
		||||
            layer.msg('编辑操作');
 | 
			
		||||
            console.log(data);
 | 
			
		||||
        })
 | 
			
		||||
 | 
			
		||||
        // 页面解析markdown为html进行显示
 | 
			
		||||
        $('#showHTML').on('click', function () {
 | 
			
		||||
            // 模拟从数据库中取内容
 | 
			
		||||
            $.get('test.md', function (md) {
 | 
			
		||||
                // 给textarea赋值
 | 
			
		||||
                $('#content').val(md);
 | 
			
		||||
                // 解析
 | 
			
		||||
                editormd.markdownToHTML("markdownToHTML", {
 | 
			
		||||
                    htmlDecode: "style,script,iframe",
 | 
			
		||||
                    emoji: true,  // 解析表情
 | 
			
		||||
                    taskList: true,  // 解析列表
 | 
			
		||||
                    tex: true,  // 默认不解析
 | 
			
		||||
                    flowChart: true,  // 默认不解析
 | 
			
		||||
                    sequenceDiagram: true  // 默认不解析
 | 
			
		||||
                });
 | 
			
		||||
            });
 | 
			
		||||
        });
 | 
			
		||||
        o('.down-up-all').click(function () {
 | 
			
		||||
            var expandStatus = o(this).attr("expandStatus");
 | 
			
		||||
            expandStatus == "down" ? treetable.all('up') : treetable.all('down');
 | 
			
		||||
            expandStatus == "down" ? o(this).attr('expandStatus', 'up') : o(this).attr('expandStatus', 'down');
 | 
			
		||||
        })
 | 
			
		||||
 | 
			
		||||
        o('.get-checked').click(function () {
 | 
			
		||||
            console.log(treetable.all('checked'));
 | 
			
		||||
        })
 | 
			
		||||
 | 
			
		||||
        form.on('switch(status)', function (data) {
 | 
			
		||||
            layer.msg('监听状态操作');
 | 
			
		||||
            console.log(data);
 | 
			
		||||
        })
 | 
			
		||||
    });
 | 
			
		||||
</script>
 | 
			
		||||
@@ -0,0 +1,5 @@
 | 
			
		||||
@using FreeSql.Site.UI
 | 
			
		||||
@using FreeSql.Site.UI.Models
 | 
			
		||||
@using FreeSql.Site.Entity
 | 
			
		||||
@using FreeSql.Site.UI.Common
 | 
			
		||||
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
 | 
			
		||||
		Reference in New Issue
	
	Block a user