新增读取文档帮助

This commit is contained in:
hogan
2019-01-28 17:30:59 +08:00
parent 054f85de36
commit 0d427e0b8a
139 changed files with 4384 additions and 1146 deletions

View File

@ -60,7 +60,8 @@ namespace FreeSql.Site.UI.Areas.Admin.Controllers
if (!string.IsNullOrEmpty(model.DocTitle))
searchPredicate = searchPredicate.And(u => u.DocTitle.IndexOf(model.DocTitle) != -1);
}
var contents = DocumentContentDAL.Query(searchPredicate);
PageInfo pageinfo = new PageInfo() { IsPaging = true, PageIndex = page, PageSize = limit };
var contents = DocumentContentDAL.Query(searchPredicate, null, pageinfo);
return Json(new DataPage<DocumentContent>
{
@ -74,8 +75,8 @@ namespace FreeSql.Site.UI.Areas.Admin.Controllers
public ActionResult DocContentEditModule(string id)
{
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))
DocumentContent model = new DocumentContent() { OriginType = 0};
if (!string.IsNullOrEmpty(id) && id != "0")
{
int _id = Convert.ToInt32(id);
model = DocumentContentDAL.GetByOne(w => w.ID == _id);
@ -234,7 +235,7 @@ namespace FreeSql.Site.UI.Areas.Admin.Controllers
return Json(resdata);
}
[HttpPost]
[HttpPost]
//[ValidateAntiForgeryToken]
public ActionResult DocTypeDelete(int id, IFormCollection collection)
{

View File

@ -3,30 +3,19 @@
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>@ViewData["Title"] - FreeSql.Site.UI</title>
<title>@ViewData["Title"]</title>
<environment include="Development">
<link href="~/layui/css/layui.css" rel="stylesheet" />
<link href="~/lib/editormd/css/editormd.min.css" rel="stylesheet" />
<link href="~/lib/editormd/css/editormd.preview.min.css" rel="stylesheet" />
<link href="~/layui/lay/modules/preview.css" rel="stylesheet" />
<link href="~/css/admin.css" rel="stylesheet" />
<script src="~/lib/jquery/dist/jquery.js"></script>
<script src="~/js/common.js"></script>
@*<script src="~/lib/bootstrap/dist/js/bootstrap.js"></script>*@
<script src="~/lib/editormd/src/editormd.js"></script>
<!-- 页面markdown解析成HTML需要的js -->
<script src="~/lib/editormd/lib/marked.min.js"></script>
<script src="~/lib/editormd/lib/prettify.min.js"></script>
<script src="~/lib/editormd/lib/raphael.min.js"></script>
<script src="~/lib/editormd/lib/underscore.min.js"></script>
<script src="~/lib/editormd/lib/sequence-diagram.min.js"></script>
<script src="~/lib/editormd/lib/flowchart.min.js"></script>
<script src="~/lib/editormd/lib/jquery.flowchart.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/marked/marked.min.js"></script>
<script src="https://cdn.bootcss.com/highlight.js/9.13.1/highlight.min.js"></script>
<script src="~/layui/lay/modules/layer.js"></script>
<script src="~/layui/layui.js"></script>
</environment>
<environment exclude="Development">

View File

@ -35,10 +35,22 @@
<script>
var contentEdit;
layui.use(['form', 'table'], function () {
layui.use(['layer', 'laymd', 'form', 'table'], function () {
var table = layui.table;
var form = layui.form
, layer = layui.layer;
, layer = layui.layer, laymd = layui.laymd;
var loadMarkDown = function () {
//实例化编辑器,可以多个实例
var md = laymd.init('DocContent', {});
//内容改变事件
md.on('change', function () {
//这里借用marked.js解析效率比HyperDown快,用户可自行找解析器
this.setPreview(marked(this.getText()));
});
//初始化数据预览
md.do('change');
};
table.render({
@ -97,14 +109,39 @@
switch (obj.event) {
case 'add':
var options = {
url: "/Admin/Document/DocContentEditModule", paramters: { id: "" },
url: "/Admin/Document/DocContentEditModule", paramters: { id: "0" },
title: "新增文档",
area: ['1100px', '660px'],
submit: {
url: "/Admin/Document/DocContentCreate",
},
elmid: "docContentEdit",
callback: reloadTable
callback: reloadTable,
loadBefore: function () {
//监听指定开关
form.on('switch(switchTest)', function (data) {
if (this.checked) {
$("#OriginUrlArea").hide();
$("#DocContentArea").show();
}
else {
$("#OriginUrlArea").show();
$("#DocContentArea").hide();
}
});
//contentEdit = editormd("md_DocContent", {
// width: "96%",
// height: 640,
// syncScrolling: "single",
// path: "../../lib/editormd/lib/"
//});
loadMarkDown();
},
submitBefore: function (data) {
data.field.OriginType = data.field.OriginType == "on" ? 1 : 0;
return data;
}
};
freejs.dialogWindow.create(options, form);
break;
@ -149,7 +186,33 @@
url: "/Admin/Document/DocContentUpdate",
},
elmid: "docContentEdit",
callback: reloadTable
callback: reloadTable,
loadBefore: function () {
//监听指定开关
form.on('switch(switchTest)', function (data) {
if (this.checked) {
$("#OriginUrlArea").hide();
$("#DocContentArea").show();
}
else {
$("#OriginUrlArea").show();
$("#DocContentArea").hide();
}
});
//contentEdit = editormd("md_DocContent", {
// width: "96%",
// height: 640,
// syncScrolling: "single",
// path: "../../lib/editormd/lib/"
//});
loadMarkDown();
},
submitBefore: function (data) {
var _origintype = $(".layui-tab-title").find('.layui-this').attr("origintype");
data.field.OriginType = _origintype;
return data;
}
};
freejs.dialogWindow.create(options, form);
}

View File

@ -2,23 +2,17 @@
@model FreeSql.Site.Entity.DocumentContent
<form class="layui-form" action="" id="frm_DocContentEdit">
@Html.HiddenFor(m => m.ID)
@Html.HiddenFor(m => m.CreateBy)
@Html.HiddenFor(m => m.CreateDt)
@Html.HiddenFor(m => m.WatchCount)
@Html.HiddenFor(m => m.StarCount)
<div class="form-module-content">
<div class="layui-form-item">
<label class="layui-form-label">文章分类</label>
<label class="layui-form-label">文章分类 </label>
<div class="layui-input-block">
@Html.HiddenFor(m => m.ID)
@Html.HiddenFor(m => m.OriginType)
@Html.HiddenFor(m => m.WatchCount)
@Html.HiddenFor(m => m.StarCount)
@Html.HiddenFor(m => m.CreateBy)
@Html.HiddenFor(m => m.CreateDt)
@Html.DropDownList("TypeID", ViewBag.DocumentTypeList as List<SelectListItem>, "", new Dictionary<string, object> { { "class", "plate_text" } })
@*<select name="TypeID" lay-filter="aihao">
<option value="0" selected="selected">--请选择--</option>
@foreach (var item in (List<SelectListItem>)ViewBag.DocumentTypeList)
{
<option value="@item.Value">@item.Text</option>
}
</select>*@
</div>
</div>
@ -51,16 +45,38 @@
<input type="radio" name="status" value="0" title="关闭">
</div>
</div>
<div class="layui-form-item layui-form-text">
<label class="layui-form-label">文本域</label>
<div class="layui-input-block" id="md_DocContent">
@Html.TextAreaFor(m => m.DocContent, new Dictionary<string, object> { { "autocomplete", "off" }, { "placeholder", "请输入内容" } })
@*<textarea style="display:none;" placeholder="请输入内容" name="DocContent"></textarea>*@
@*<div class="layui-form-item">
<label class="layui-form-label">来源类型</label>
<div class="layui-input-block">
<input type="checkbox" id="OriginType" @(Model.OriginType == 1 ? "checked=''" : "") name="OriginType" lay-skin="switch" lay-filter="switchTest" lay-text="当前内容|URL地址">
</div>
</div>*@
<div class="layui-tab">
<ul class="layui-tab-title">
<li class=' @(Model.OriginType == 1 ? "" : "layui-this")' origintype="0">自有内容</li>
<li class=' @(Model.OriginType == 1 ? "layui-this" : "")' origintype="1">外部来源</li>
</ul>
<div class="layui-tab-content">
<div class='layui-tab-item @(Model.OriginType == 1 ? "" : "layui-show")'>
<div class="layui-form-item layui-form-text" id="DocContentArea">
<div id="DocContent">@Model.DocContent</div>
@*@Html.TextAreaFor(m => m.DocContent, new Dictionary<string, object> { { "autocomplete", "off" }, { "placeholder", "请输入内容" } })*@
@*<textarea style="display:none;" placeholder="请输入内容" name="DocContent"></textarea>*@
</div>
</div>
<div class='layui-tab-item @(Model.OriginType == 1 ? "layui-show" : "")'>
<div class="layui-form-item" id="OriginUrlArea">
<label class="layui-form-label">外部来源</label>
<div class="layui-input-block">
@Html.TextBoxFor(m => m.OriginUrl, "", new Dictionary<string, object> { { "autocomplete", "off" }, { "class", "layui-input " }, { "lay-verify", "title" }, { "placeholder", "请输入标题" } })
</div>
</div>
</div>
</div>
</div>
</div>
<div class="form-module-footer">
@*<div class="form-module-footer">
<button class="layui-btn" lay-submit lay-filter="formDemo">立即提交</button>
</div>
</div>*@
</form>

View File

@ -11,8 +11,8 @@
<script>
var dialog_Paramters = { height: 460, width: 600 };
</script>
<button class="layui-btn layui-btn-primary layui-btn-xs down-up-all">全部收起/展开</button>
<button class="layui-btn layui-btn-primary layui-btn-xs get-checked">获取选中</button>
<button class="layui-btn layui-btn-sm down-up-all" expandStatus="down">全部收起/展开</button>
<button class="layui-btn layui-btn-sm get-checked">获取选中</button>
<table class="layui-table layui-form" id="doctype-tree-table"></table>
@ -42,7 +42,7 @@
{
field: 'title',
title: '标题',
width: '40%',
width: '45%',
template: function (item) {
if (item.level == 1) {
return '<span style="color:red;">' + item.title + '</span>';
@ -53,11 +53,6 @@
return item.title;
}
},
{
field: 'id',
title: '编号',
width: '10%'
},
{
title: '标签',
width: '10%',

View File

@ -33,7 +33,7 @@
</div>
</div>
</div>
<div class="form-module-footer">
@*<div class="form-module-footer">
<button class="layui-btn" lay-submit lay-filter="formDemo">立即提交</button>
</div>
</div>*@
</form>

View File

@ -1,5 +1,5 @@
@{
ViewBag.Title = "";
ViewData["Title"] = ".NETCore最方便的ORM";
Layout = "~/Areas/Admin/Shared/_Layout.cshtml";
}
<div class="layui-side layui-bg-black">
@ -21,7 +21,7 @@
<div class="layui-body">
<!-- 内容主体区域 -->
<div style="padding: 15px;" id="page_content">
文档主页引导
</div>
</div>
@ -32,7 +32,7 @@
var index = freejs.showLoading({ msg: "数据加载中......" });
var options = {
url: path_item, paramters: $.parseJSON(path_json), loadIndex: index
url: path_item, paramters: $.parseJSON(path_json), loadIndex: index, elm: "page_content"
};
freejs.loadHtml(options);

View File

@ -1,3 +1,4 @@
@{
Layout = null;
ViewData["Title"] = ".NETCore最方便的ORM";
}