添加项目文件。

This commit is contained in:
dell
2023-03-03 16:07:50 +08:00
parent 2c462551b6
commit 011039960e
585 changed files with 362460 additions and 0 deletions

View File

@ -0,0 +1,109 @@
@{
ViewBag.Title = "Details";
Layout = "~/Views/Shared/_Form.cshtml";
}
<script>
layui.use(['jquery', 'form', 'laydate', 'optimizeSelectOption', 'common'], function () {
var form = layui.form,
$ = layui.$,
common = layui.common,
laydate = layui.laydate;
//权限字段
common.authorizeFields('adminform');
//此处需修改
//类型为时间时
//laydate.render({
//elem: '#F_Birthday'
//, btns: ['clear', 'now']
//, trigger: 'click',
//format: 'yyyy-MM-dd',
//});
$(function () {
initControl();
common.setReadOnly('adminform');
common.val('adminform',common.parentWindow().dataJson);
form.render();
});
wcLoading.close();
function initControl() {
//此处需修改
//绑定数据源
//类型为下拉框时
}
});
</script>
<body>
<div class="layuimini-container">
<div class="layuimini-main">
<div class="layui-form layuimini-form" lay-filter="adminform">
<div class="layui-form-item layui-hide">
<label class="layui-form-label">类别名称</label>
<div class="layui-input-block">
<input type="text" id="F_FullName" name="F_FullName" autocomplete="off" lay-verify="required" class="layui-input">
</div>
</div>
<div class="layui-form-item layui-hide">
<label class="layui-form-label">上级</label>
<div class="layui-input-block">
<select id="F_ParentId" name="F_ParentId" lay-filter="F_ParentId" lay-verify="required" lay-search>
<option value="0">父级</option>
</select>
</div>
</div>
<div class="layui-form-item layui-hide">
<label class="layui-form-label">排序</label>
<div class="layui-input-block">
<input type="number" pattern="[0-9]*" id="F_SortCode" name="F_SortCode" lay-verify="required" value="99" autocomplete="off" class="layui-input ">
</div>
</div>
<div class="layui-form-item layui-hide">
<label class="layui-form-label">描述</label>
<div class="layui-input-block">
<input type="text" id="F_Description" name="F_Description" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-form-item layui-hide">
<label class="layui-form-label">链接地址</label>
<div class="layui-input-block">
<input type="text" id="F_LinkUrl" name="F_LinkUrl" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-form-item layui-hide">
<label class="layui-form-label">图片地址</label>
<div class="layui-input-block">
<input type="text" id="F_ImgUrl" name="F_ImgUrl" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-form-item layui-hide">
<label class="layui-form-label">Seo标题</label>
<div class="layui-input-block">
<input type="text" id="F_SeoTitle" name="F_SeoTitle" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-form-item layui-hide">
<label class="layui-form-label">Seo关键字</label>
<div class="layui-input-block">
<input type="text" id="F_SeoKeywords" name="F_SeoKeywords" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-form-item layui-hide">
<label class="layui-form-label">Seo描述</label>
<div class="layui-input-block">
<input type="text" id="F_SeoDescription" name="F_SeoDescription" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-form-item layui-hide">
<label class="layui-form-label">选项</label>
<div class="layui-input-block">
<input id="F_IsTop" name="F_IsTop" type="checkbox" value="true" title="是否置顶">
<input id="F_IsHot" name="F_IsHot" type="checkbox" value="true" title="是否热门">
<input id="F_EnabledMark" name="F_EnabledMark" type="checkbox" value="true" checked="checked" title="是否启用">
</div>
</div>
</div>
</div>
</div>
</body>

View File

@ -0,0 +1,135 @@
@{
ViewBag.Title = "Form";
Layout = "~/Views/Shared/_Form.cshtml";
}
<script>
layui.use(['jquery', 'form', 'laydate', 'optimizeSelectOption', 'common'], function () {
var form = layui.form,
$ = layui.$,
common = layui.common,
laydate = layui.laydate;
var keyValue = $.request("keyValue");
//权限字段
common.authorizeFields('adminform');
//此处需修改
//类型为时间时
//laydate.render({
//elem: '#F_Birthday'
//, btns: ['clear', 'now']
//, trigger: 'click',
//format: 'yyyy-MM-dd',
//});
$(function () {
initControl();
$('#F_ParentId').val("0");
common.val('adminform',common.parentWindow().dataJson);
form.render();
});
wcLoading.close();
function initControl() {
//此处需修改
//绑定数据源
//类型为下拉框时
$("#F_ParentId").bindSelect({
url: "/ContentManage/ArticleCategory/GetListJson",
id: "F_Id",
text: "F_FullName",
search: true,
});
}
//监听提交
form.on('submit(saveBtn)', function (data) {
var postData = data.field;
if (!postData["F_IsTop"]) postData["F_IsTop"] = false;
if (!postData["F_IsHot"]) postData["F_IsHot"] = false;
if (!postData["F_EnabledMark"]) postData["F_EnabledMark"] = false;
common.submitForm({
url: '/ContentManage/ArticleCategory/SubmitForm?keyValue=' + keyValue,
param: postData,
success: function () {
common.parentreload('data-search-btn');
}
})
return false;
});
});
</script>
<body>
<div class="layuimini-container">
<div class="layuimini-main">
<div class="layui-form layuimini-form" lay-filter="adminform">
<div class="layui-form-item layui-hide">
<label class="layui-form-label required">上级</label>
<div class="layui-input-block">
<select id="F_ParentId" name="F_ParentId" lay-filter="F_ParentId" lay-verify="required" lay-search>
<option value="0">父级</option>
</select>
</div>
</div>
<div class="layui-form-item layui-hide">
<label class="layui-form-label required">类别名称</label>
<div class="layui-input-block">
<input type="text" id="F_FullName" name="F_FullName" autocomplete="off" maxlength="50" lay-verify="required" class="layui-input">
</div>
</div>
<div class="layui-form-item layui-hide">
<label class="layui-form-label required">排序</label>
<div class="layui-input-block">
<input type="number" pattern="[0-9]*" id="F_SortCode" name="F_SortCode" lay-verify="required|number" oninput="if(value.length>8)value=value.slice(0,8)" value="99" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-form-item layui-hide">
<label class="layui-form-label">描述</label>
<div class="layui-input-block">
<input type="text" id="F_Description" name="F_Description" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-form-item layui-hide">
<label class="layui-form-label">链接地址</label>
<div class="layui-input-block">
<input type="text" id="F_LinkUrl" name="F_LinkUrl" autocomplete="off" lay-verify="url" maxlength="255" class="layui-input">
</div>
</div>
<div class="layui-form-item layui-hide">
<label class="layui-form-label">图片地址</label>
<div class="layui-input-block">
<input type="text" id="F_ImgUrl" name="F_ImgUrl" autocomplete="off" lay-verify="url" maxlength="255" class="layui-input">
</div>
</div>
<div class="layui-form-item layui-hide">
<label class="layui-form-label">Seo标题</label>
<div class="layui-input-block">
<input type="text" id="F_SeoTitle" name="F_SeoTitle" autocomplete="off" maxlength="255" class="layui-input">
</div>
</div>
<div class="layui-form-item layui-hide">
<label class="layui-form-label">Seo关键字</label>
<div class="layui-input-block">
<input type="text" id="F_SeoKeywords" name="F_SeoKeywords" autocomplete="off" maxlength="255" class="layui-input">
</div>
</div>
<div class="layui-form-item layui-hide">
<label class="layui-form-label">Seo描述</label>
<div class="layui-input-block">
<input type="text" id="F_SeoDescription" name="F_SeoDescription" autocomplete="off" maxlength="255" class="layui-input">
</div>
</div>
<div class="layui-form-item layui-hide">
<label class="layui-form-label">选项</label>
<div class="layui-input-block">
<input id="F_IsTop" name="F_IsTop" type="checkbox" value="true" title="是否置顶">
<input id="F_IsHot" name="F_IsHot" type="checkbox" value="true" title="是否热门">
<input id="F_EnabledMark" name="F_EnabledMark" type="checkbox" value="true" checked="checked" title="是否启用">
</div>
</div>
<div class="layui-form-item layui-hide">
<button class="layui-btn site-demo-active" lay-submit id="submit" lay-filter="saveBtn">确认保存</button>
</div>
</div>
</div>
</div>
</body>

View File

@ -0,0 +1,203 @@
@{
ViewBag.Title = "Index";
Layout = "~/Views/Shared/_Index.cshtml";
}
<div class="layuimini-container">
<div class="layuimini-main">
<fieldset class="table-search-fieldset layui-hide" id="searchField">
<div>
<form class="layui-form layui-form-pane">
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">关键字:</label>
<div class="layui-input-inline">
<input type="text" id="txt_keyword" name="txt_keyword" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-inline">
<button type="submit" class="layui-btn layui-btn-primary" lay-submit lay-filter="data-search-btn"><i class="layui-icon">&#xe615;</i> 搜 索</button>
</div>
</div>
</form>
</div>
</fieldset>
<script type="text/html" id="toolbarDemo">
<div class="layui-btn-container">
<button id="NF-add" name="NF-add" authorize class="layui-btn layui-btn-sm" lay-event="add"><i class="layui-icon">&#xe654;</i>新增</button>
<button id="NF-edit" name="NF-edit" authorize class="layui-btn layui-btn-sm layui-btn-warm layui-hide" lay-event="edit"><i class="layui-icon">&#xe642;</i>修改</button>
<button id="NF-delete" name="NF-delete" authorize class="layui-btn layui-btn-sm layui-btn-danger layui-hide" lay-event="delete"> <i class="layui-icon">&#xe640;</i>删除</button>
<button id="NF-details" name="NF-details" authorize class="layui-btn layui-btn-sm layui-btn-normal layui-hide" lay-event="details"> <i class="layui-icon">&#xe60b;</i>查看</button>
</div>
</script>
<table class="layui-hide" id="currentTableId" lay-filter="currentTableFilter"></table>
<script type="text/html" id="currentTableBar">
<a id="NF-edit" authorize class="layui-btn layui-btn-xs layui-btn-warm" lay-event="edit">修改</a>
<a id="NF-delete" authorize class="layui-btn layui-btn-xs layui-btn-danger" lay-event="delete">删除</a>
<a id="NF-details" authorize class="layui-btn layui-btn-xs layui-btn-normal" lay-event="details">查看</a>
</script>
</div>
</div>
<script>
layui.use(['jquery', 'form', 'common', 'table', 'commonTable', 'layer'], function () {
var $ = layui.jquery,
form = layui.form,
layer = layui.layer,
table = layui.table,
commonTable = layui.commonTable,
common = layui.common;
//行操作权限控制(js是值传递)
currentTableBar.innerHTML = common.authorizeButtonNew(currentTableBar.innerHTML);
toolbarDemo.innerHTML = common.authorizeButtonNew(toolbarDemo.innerHTML);
wcLoading.close();
var options = {
elem: '#currentTableId',
url: '/ContentManage/ArticleCategory/GetTreeGridJson',
treeIdName: 'F_Id', // id字段名称
treePidName: 'F_ParentId', // pid字段名称
cols: [[
{ type: "radio", width: 50, fixed: 'left' },
{ field: 'F_FullName', title: '类别名称', width: 200, filter: true },
{ field: 'F_SortCode', title: '排序', width: 80, filter: true},
{ field: 'F_Description', title: '描述', minWidth: 220, filter: true },
{
field: 'F_EnabledMark', title: '状态', width: 80, filter: true,
templet: function (d) {
if (d.F_EnabledMark == true) {
return "<span class='layui-btn layui-btn-normal layui-btn-xs'>有效</span>";
} else {
return "<span class='layui-btn layui-btn-warm layui-btn-xs'>无效</span>";
}
}
},
{
field: 'F_CreatorTime', title: '创建时间', minWidth: 160, sort: true, filter: { type: 'date[yyyy/MM/dd HH:mm:ss]' }
},
{ field: 'F_CreatorUserId', title: '创建人', width: 120, hide: true },
{ title: '操作', width: 160, toolbar: '#currentTableBar', align: "center", fixed: 'right' }//插件没有fixed参数
]],
};
commonTable.rendertreetable(options);
// 监听搜索操作
form.on('submit(data-search-btn)', function (data) {
queryJson = data.field.txt_keyword;
options.where = { keyword: queryJson };
commonTable.rendertreetable(options);
return false;
});
//行点击事件监听,控制按钮显示
var oneList = ["NF-edit", "NF-details", "NF-delete"];//选择1条显示
//var morerList = ["NF-delete"];//选中1条以上
commonTable.tableRowClick("radio", "currentTableFilter", "currentTableId", oneList);
//common.treeTableRowClick("radio", rendertree, "currentTableId", oneList, morerList);
//toolbar监听事件
table.on('toolbar(currentTableFilter)', function (obj) {
var data = table.checkStatus('currentTableId').data;
var id = data.length > 0 ? data[0].F_Id : null;
if (obj.event === 'add') { // 监听添加操作
common.modalOpen({
title: "添加界面",
url: "/ContentManage/ArticleCategory/Form",
width: "500px",
height: "500px",
});
}
else if (obj.event === 'delete') {
if (data.length == 0) {
common.modalMsg("未选中数据", "warning");
return false;
}
var ids = [];
for (var i = 0; i < data.length; i++) {
ids.push(data[i].F_Id);
}
common.deleteForm({
url: "/ContentManage/ArticleCategory/DeleteForm",
param: { keyValue: ids.join(',') },
success: function () {
common.reload('data-search-btn');
}
});
}
else if (obj.event === 'edit') {
var data = table.checkStatus('currentTableId').data;
if (data.length == 0) {
common.modalMsg("未选中数据", "warning");
return false;
}
if (data.length > 1) {
common.modalMsg("只能选择一条编辑", "warning");
return false;
}
common.modalOpen({
title: "编辑界面",
url: "/ContentManage/ArticleCategory/Form?keyValue=" + id,
width: "500px",
height: "500px",
dataJson: data[0],
});
}
else if (obj.event === 'details') {
var data = table.checkStatus('currentTableId').data;
if (data.length == 0) {
common.modalMsg("未选中数据", "warning");
return false;
}
if (data.length > 1) {
common.modalMsg("只能选择一条查看", "warning");
return false;
}
common.modalOpen({
title: "查看界面",
url: "/ContentManage/ArticleCategory/Details?keyValue=" + id,
width: "500px",
height: "500px",
dataJson: data[0],
btn: []
});
}
else if (obj.event === 'TABLE_SEARCH') {
var _that = $("#searchField");
if (_that.hasClass("layui-hide")) {
_that.removeClass('layui-hide');
} else {
_that.addClass('layui-hide');
}
table.resize();
}
return false;
});
//toolbar监听事件
table.on('tool(currentTableFilter)', function (obj) {
var id = obj.data.F_Id;
if (obj.event === 'delete') {
common.deleteForm({
url: "/ContentManage/ArticleCategory/DeleteForm",
param: { keyValue: obj.data.F_Id },
success: function () {
obj.del();
}
});
}
else if (obj.event === 'edit') {
common.modalOpen({
title: "编辑界面",
url: "/ContentManage/ArticleCategory/Form?keyValue=" + id,
width: "500px",
height: "500px",
dataJson: obj.data,
});
}
else if (obj.event === 'details') {
common.modalOpen({
title: "查看界面",
url: "/ContentManage/ArticleCategory/Details?keyValue=" + id,
width: "500px",
height: "500px",
dataJson: obj.data,
btn: []
});
}
return false;
});
});
</script>

View File

@ -0,0 +1,285 @@
@{
ViewBag.Title = "Form";
Layout = "~/Views/Shared/_Form.cshtml";
}
<style>
.layui-form-label {
float: left;
display: block;
padding: 9px 15px;
width: 60px;
font-weight: 400;
line-height: 20px;
text-align: right;
}
.lay-step {
font-size: 0;
width: 400px;
margin: 0 auto;
max-width: 100%;
padding-left: 30px;
}
.layui-table-view {
margin-left: 30px;
margin-right: 10px;
}
.layui-input-block {
margin-left: 90px;
min-height: 36px;
margin-right: 10px;
}
.layui-card > .layui-card-body {
position: relative;
padding: 10px 15px;
line-height: 24px;
overflow: auto;
height: 300px;
}
</style>
<script>
layui.use(['jquery', 'form', 'laydate', 'optimizeSelectOption', 'common', 'step','wangEditor'], function () {
var form = layui.form,
$ = layui.$,
common = layui.common,
wangEditor = layui.wangEditor,
step = layui.step;
var editor = new wangEditor("#editor");
editor.create();
var keyValue = $.request("keyValue");
//权限字段
common.authorizeFields('stepForm');
wcLoading.close();
step.render({
elem: '#stepForm',
filter: 'stepForm',
width: '100%', //设置容器宽度
stepWidth: '750px',
height: '600px',
stepItems: [{
title: '基本信息'
}, {
title: '详细描述'
}, {
title: 'SEO选项'
}]
});
form.on('submit(formStep)', function (data) {
step.next('#stepForm');
return false;
});
form.on('submit(formStep2)', function (data) {
step.next('#stepForm');
return false;
});
$('.pre').click(function () {
step.pre('#stepForm');
});
$('.next').click(function () {
step.next('#stepForm');
});
$(function () {
initControl();
if (!!keyValue) {
common.ajax({
url: '/ContentManage/ArticleNews/GetFormJson',
dataType: 'json',
data: { keyValue: keyValue },
async: false,
success: function (data) {
common.val('stepForm', data);
$('#F_ImgUrlPic').attr('src', data.F_ImgUrl); //图片链接
editor.txt.text($("#F_Description").val());
common.setReadOnly('adminform');
}
});
}
common.setReadOnly('stepForm');
form.render();
});
function initControl() {
//绑定数据源
//类型为下拉框时
$("#F_CategoryId").bindSelect({
url: "/ContentManage/ArticleCategory/GetListJson",
id: "F_Id",
text: "F_FullName",
search: true,
});
}
});
function previewImg(obj) {
var img = new Image();
img.src = obj.src;
var height = img.height + 50; //获取图片高度
var width = img.width; //获取图片宽度
if (height > 500) { height = 500; };
if (width > 500) { width = 500; };
var imgHtml = "<img src='" + obj.src + "' style=\"height: " + (height - 43) + "px; width: " + width + "px; line-height: 25px!important;\"/>";
//弹出层
layer.open({
type: 1,
shade: 0.8,
offset: 'auto',
area: [width + 'px', height + 'px'],
shadeClose: true,//点击外围关闭弹窗
scrollbar: false,//不现实滚动条
title: "图片预览", //不显示标题
content: imgHtml, //捕获的元素注意最好该指定的元素要存放在body最外层否则可能被其它的相对元素所影响
cancel: function () {
//layer.msg('捕获就是从页面已经存在的元素上包裹layer的结构', { time: 5000, icon: 6 });
}
});
}
</script>
<body>
<div class="layuimini-container">
<div class="layuimini-main">
<div class="layui-carousel" id="stepForm" lay-filter="stepForm">
<div carousel-item>
<div>
<form class="layui-form layuimini-form">
<div class="layui-form-item layui-hide">
<label class="layui-form-label">新闻类别</label>
<div class="layui-input-block">
<select id="F_CategoryId" name="F_CategoryId" lay-filter="F_CategoryId" lay-search>
<option value="">请选择</option>
</select>
</div>
</div>
<div class="layui-form-item layui-hide">
<label class="layui-form-label">内容标题</label>
<div class="layui-input-block">
<input type="text" id="F_Title" name="F_Title" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-form-item layui-hide">
<label class="layui-form-label">URL链接</label>
<div class="layui-input-block">
<input type="text" id="F_LinkUrl" name="F_LinkUrl" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-form-item layui-hide">
<label class="layui-form-label">封面图片</label>
<div class="layui-input-block">
<input type="text" class="layui-input" name="F_ImgUrl" id="F_ImgUrl" readonly="readonly">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"></label>
<div class="layui-input-block">
<div class="layui-upload-list">
<img id="F_ImgUrlPic" width="200" height="200" onclick="previewImg(this)" />
</div>
</div>
</div>
<div class="layui-form-item layui-hide">
<label class="layui-form-label">排序数字</label>
<div class="layui-input-block">
<input type="number" pattern="[0-9]*" id="F_SortCode" name="F_SortCode" lay-verify="required" class="layui-input ">
</div>
</div>
<div class="layui-form-item layui-hide">
<label class="layui-form-label">选项</label>
<div class="layui-input-block">
<input id="F_IsTop" name="F_IsTop" type="checkbox" value="true" title="是否置顶">
<input id="F_IsRed" name="F_IsRed" type="checkbox" value="true" title="是否热门">
<input id="F_IsHot" name="F_IsHot" type="checkbox" value="true" title="是否推荐">
<input id="F_EnabledMark" name="F_EnabledMark" type="checkbox" value="true" checked="checked" title="是否发布">
</div>
</div>
<div class="layui-form-item layui-hide">
<label class="layui-form-label">点击次数</label>
<div class="layui-input-block">
<input type="number" pattern="[0-9]*" id="F_Click" name="F_Click" lay-verify="required" class="layui-input" value="0">
</div>
</div>
<div class="form-group-bottom text-right">
<div class="layui-input-block">
<button class="layui-btn" lay-submit lay-filter="formStep">
&emsp;下一步&emsp;
</button>
</div>
</div>
</form>
</div>
<div>
<form class="layui-form layuimini-form">
<div class="layui-form-item layui-hide">
<label class="layui-form-label">内容描述</label>
<div class="layui-input-block">
<textarea class=" layui-hide" id="F_Description" name="F_Description" type="text/plain" style="width:100%;height:400px;"></textarea>
<div id="editor"></div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">摘要</label>
<div class="layui-input-block">
<input type="text" id="F_Zhaiyao" name="F_Zhaiyao" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-form-item layui-hide">
<label class="layui-form-label">来源</label>
<div class="layui-input-block">
<input type="text" id="F_Source" name="F_Source" autocomplete="off" value="本站" class="layui-input">
</div>
</div>
<div class="layui-form-item layui-hide">
<label class="layui-form-label">作者</label>
<div class="layui-input-block">
<input type="text" id="F_Author" name="F_Author" autocomplete="off" class="layui-input">
</div>
</div>
<div class="form-group-bottom text-right">
<div class="layui-input-block">
<button type="button" class="layui-btn layui-btn-primary pre">上一步</button>
<button class="layui-btn" lay-submit lay-filter="formStep2">
&emsp;下一步&emsp;
</button>
</div>
</div>
</form>
</div>
<div>
<form class="layui-form layuimini-form">
<div class="layui-form-item layui-hide">
<label class="layui-form-label">Seo标题</label>
<div class="layui-input-block">
<input type="text" id="F_SeoTitle" name="F_SeoTitle" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-form-item layui-hide">
<label class="layui-form-label">Seo关键字</label>
<div class="layui-input-block">
<input type="text" id="F_SeoKeywords" name="F_SeoKeywords" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-form-item layui-hide">
<label class="layui-form-label">Seo描述</label>
<div class="layui-input-block">
<input type="text" id="F_SeoDescription" name="F_SeoDescription" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-form-item layui-hide">
<label class="layui-form-label">Tags标签</label>
<div class="layui-input-block">
<input type="text" id="F_Tags" name="F_Tags" autocomplete="off" class="layui-input">
</div>
</div>
<div class="form-group-bottom text-right">
<div class="layui-input-block">
<button type="button" class="layui-btn layui-btn-primary pre">上一步</button>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</body>

View File

@ -0,0 +1,338 @@
@{
ViewBag.Title = "Form";
Layout = "~/Views/Shared/_Form.cshtml";
}
<link href="~/css/stepcss.css" rel="stylesheet" />
<body>
<div class="layuimini-container">
<div class="layuimini-main">
<div class="layui-carousel" id="stepForm" lay-filter="stepForm">
<div carousel-item>
<div>
<form class="layui-form layuimini-form">
<div class="layui-form-item layui-hide">
<label class="layui-form-label required">新闻类别</label>
<div class="layui-input-block">
<select id="F_CategoryId" name="F_CategoryId" lay-filter="F_CategoryId" lay-verify="required" lay-search>
<option value="">请选择</option>
</select>
</div>
</div>
<div class="layui-form-item layui-hide">
<label class="layui-form-label required">内容标题</label>
<div class="layui-input-block">
<input type="text" id="F_Title" name="F_Title" autocomplete="off" maxlength="200" lay-verify="required" class="layui-input">
</div>
</div>
<div class="layui-form-item layui-hide">
<label class="layui-form-label">URL链接</label>
<div class="layui-input-block">
<input type="text" id="F_LinkUrl" name="F_LinkUrl" autocomplete="off" maxlength="255" class="layui-input" placeholder="填写后直接跳转到该网址">
</div>
</div>
<div class="layui-form-item layui-hide">
<label class="layui-form-label">封面图片</label>
<div class="layui-input-block">
<input type="text" class="layui-input" name="F_ImgUrl" id="F_ImgUrl" maxlength="255" readonly="readonly">
<button type="button" class="layui-btn" id="upload" style=" margin-top: 10px">上传图片</button>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"></label>
<div class="layui-input-block">
<div class="layui-upload-list">
<img id="F_ImgUrlPic" width="200" height="200" onclick="previewImg(this)" />
<p id="demoText"></p>
</div>
</div>
</div>
<div class="layui-form-item layui-hide">
<label class="layui-form-label required">排序数字</label>
<div class="layui-input-block">
<input type="number" pattern="[0-9]*" id="F_SortCode" name="F_SortCode" lay-verify="required|number" oninput="if(value.length>8)value=value.slice(0,8)" class="layui-input ">
</div>
</div>
<div class="layui-form-item layui-hide">
<label class="layui-form-label">选项</label>
<div class="layui-input-block">
<input id="F_IsTop" name="F_IsTop" type="checkbox" value="true" title="是否置顶">
<input id="F_IsRed" name="F_IsRed" type="checkbox" value="true" title="是否热门">
<input id="F_IsHot" name="F_IsHot" type="checkbox" value="true" title="是否推荐">
<input id="F_EnabledMark" name="F_EnabledMark" type="checkbox" value="true" checked="checked" title="是否发布">
</div>
</div>
<div class="layui-form-item layui-hide">
<label class="layui-form-label">点击次数</label>
<div class="layui-input-block">
<input type="number" pattern="[0-9]*" id="F_Click" name="F_Click" lay-verify="required" class="layui-input" value="0">
</div>
</div>
<div class="form-group-bottom text-right">
<div class="layui-input-block">
<button class="layui-btn" lay-submit lay-filter="formStep">
&emsp;下一步&emsp;
</button>
</div>
</div>
</form>
</div>
<div>
<form class="layui-form layuimini-form">
<div class="layui-form-item layui-hide">
<label class="layui-form-label required">内容描述</label>
<div class="layui-input-block">
<textarea class=" layui-hide" id="F_Description" name="F_Description" lay-verify="required" type="text/plain" style="width:100%;height:400px;"></textarea>
<div id="editor"></div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">摘要</label>
<div class="layui-input-block">
<input type="text" id="F_Zhaiyao" name="F_Zhaiyao" autocomplete="off" class="layui-input" placeholder="不填写则自动截取内容前255字符">
</div>
</div>
<div class="layui-form-item layui-hide">
<label class="layui-form-label required">来源</label>
<div class="layui-input-block">
<input type="text" id="F_Source" name="F_Source" autocomplete="off" value="本站" lay-verify="required" class="layui-input">
</div>
</div>
<div class="layui-form-item layui-hide">
<label class="layui-form-label required">作者</label>
<div class="layui-input-block">
<input type="text" id="F_Author" name="F_Author" autocomplete="off" value="@ViewBag.UserName" lay-verify="required" class="layui-input">
</div>
</div>
<div class="form-group-bottom text-right">
<div class="layui-input-block">
<button type="button" class="layui-btn layui-btn-primary pre">上一步</button>
<button class="layui-btn" lay-submit lay-filter="formStep2">
&emsp;下一步&emsp;
</button>
</div>
</div>
</form>
</div>
<div>
<form class="layui-form layuimini-form">
<div class="layui-form-item layui-hide">
<label class="layui-form-label">Seo标题</label>
<div class="layui-input-block">
<input type="text" id="F_SeoTitle" name="F_SeoTitle" autocomplete="off" class="layui-input" placeholder="不填写则默认为网站标题">
</div>
</div>
<div class="layui-form-item layui-hide">
<label class="layui-form-label">Seo关键字</label>
<div class="layui-input-block">
<input type="text" id="F_SeoKeywords" name="F_SeoKeywords" autocomplete="off" class="layui-input" placeholder="不填写则默认为网站摘要">
</div>
</div>
<div class="layui-form-item layui-hide">
<label class="layui-form-label">Seo描述</label>
<div class="layui-input-block">
<input type="text" id="F_SeoDescription" name="F_SeoDescription" autocomplete="off" class="layui-input" placeholder="不填写则自动截取内容前255字符">
</div>
</div>
<div class="layui-form-item layui-hide">
<label class="layui-form-label">Tags标签</label>
<div class="layui-input-block">
<input type="text" id="F_Tags" name="F_Tags" autocomplete="off" class="layui-input" placeholder="多个可用英文逗号分隔开a,b">
</div>
</div>
<div class="form-group-bottom text-right">
<div class="layui-input-block">
<button type="button" class="layui-btn layui-btn-primary pre">上一步</button>
<button class="layui-btn site-demo-active" lay-submit lay-filter="saveBtn">
&emsp;保存&emsp;
</button>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
<script>
layui.use(['jquery', 'form', 'laydate', 'optimizeSelectOption', 'common', 'step', 'wangEditor', 'upload'], function () {
var form = layui.form,
$ = layui.$,
common = layui.common,
upload = layui.upload,
step = layui.step,
wangEditor = layui.wangEditor;
var editor = new wangEditor("#editor");
// 配置服务器端地址
editor.config.uploadImgServer = '/FileManage/Uploadfile/Upload';
editor.config.uploadImgMaxSize = 3 * 1024 * 1024;
editor.config.uploadImgMaxLength = 5;
editor.config.uploadImgParams = { filetype: 1, fileby: '新闻管理/编辑器'};
editor.config.showLinkImg = false;
editor.config.uploadImgHooks =
{
customInsert: function (insertImg, result, editor2) {
uploadResult(result);
if (!!result.data) {
for (var i = 0; i < result.data.length; i++) {
insertImg(result.data[i].src);
};
}
}
}
editor.config.onchange = function (newHtml) {
$("#F_Description").val(newHtml);
}
function uploadResult(res) {
if (res.code == 0) {
layer.msg("上传图片成功", { icon: 1, time: 1000 });//使用layui的弹窗提示
} else {
layer.msg("上传图片失败", { icon: 1, time: 1000 });
}
};
editor.create();
//普通图片上传
var uploadInst = upload.render({
elem: '#upload'
, url: '/FileManage/Uploadfile/Upload' //改成您自己的上传接口
, size: 1024
, accept: 'file'
, data: { filetype: 1, fileby: '新闻管理' }
, choose: function (obj) {
//预读本地文件示例不支持ie8
obj.preview(function (index, file, result) {
$('#F_ImgUrlPic').attr('src', result); //图片链接base64
});
}
, done: function (res) {
//如果上传失败
if (res.code > 0) {
//失败状态,并实现重传
var demoText = $('#demoText');
demoText.html('<span style="color: #FF5722;">上传失败</span> <a class="layui-btn layui-btn-xs demo-reload">重试</a>');
demoText.find('.demo-reload').on('click', function () {
uploadInst.upload();
});
common.modalMsg(res.msg, "warning");
return false;
}
$('#F_ImgUrl').val(res.data[0].src);
}
, error: function () {
//演示失败状态,并实现重传
var demoText = $('#demoText');
demoText.html('<span style="color: #FF5722;">上传失败</span> <a class="layui-btn layui-btn-xs demo-reload">重试</a>');
demoText.find('.demo-reload').on('click', function () {
uploadInst.upload();
});
}
});
var keyValue = $.request("keyValue");
//权限字段
common.authorizeFields('stepForm');
wcLoading.close();
var postData = {};//分步骤表单,最终提交只能获取最后一个表单的数据,所以定义全局数组保存表单数据
step.render({
elem: '#stepForm',
filter: 'stepForm',
width: '100%', //设置容器宽度
stepWidth: '750px',
height: '600px',
stepItems: [{
title: '基本信息'
}, {
title: '详细描述'
}, {
title: 'SEO选项'
}]
});
form.on('submit(formStep)', function (data) {
postData = $.extend(postData, data.field);
step.next('#stepForm');
return false;
});
form.on('submit(formStep2)', function (data) {
postData = $.extend(postData, data.field);
step.next('#stepForm');
return false;
});
$('.pre').click(function () {
step.pre('#stepForm');
});
$('.next').click(function () {
step.next('#stepForm');
});
$(function () {
initControl();
if (!!keyValue) {
common.ajax({
url: '/ContentManage/ArticleNews/GetFormJson',
dataType: 'json',
data: { keyValue: keyValue },
async: false,
success: function (data) {
common.val('stepForm', data);
$('#F_ImgUrlPic').attr('src', data.F_ImgUrl); //图片链接
editor.txt.text($("#F_Description").val());
}
});
}
form.render();
});
function initControl() {
//绑定数据源
//类型为下拉框时
$("#F_CategoryId").bindSelect({
url: "/ContentManage/ArticleCategory/GetListJson",
id: "F_Id",
text: "F_FullName",
search: true,
});
}
//监听提交
form.on('submit(saveBtn)', function (data) {
postData = $.extend(postData, data.field);
if (!postData["F_IsTop"]) postData["F_IsTop"] = false;
if (!postData["F_IsHot"]) postData["F_IsHot"] = false;
if (!postData["F_IsRed"]) postData["F_IsRed"] = false;
if (!postData["F_EnabledMark"]) postData["F_EnabledMark"] = false;
postData["F_Description"] = postData["F_Description"];
common.submitForm({
url: '/ContentManage/ArticleNews/SubmitForm?keyValue=' + keyValue,
param: postData,
success: function () {
common.reloadIframe("/ContentManage/ArticleNews/Index", 'data-search-btn');
}
})
return false;
});
});
function previewImg(obj) {
var img = new Image();
img.src = obj.src;
var height = img.height + 50; //获取图片高度
var width = img.width; //获取图片宽度
if (height > 500) { height = 500; };
if (width > 500) { width = 500; };
var imgHtml = "<img src='" + obj.src + "' style=\"height: " + (height - 43) + "px; width: " + width + "px; line-height: 25px!important;\"/>";
//弹出层
layer.open({
type: 1,
shade: 0.8,
offset: 'auto',
area: [width + 'px', height + 'px'],
shadeClose: true,//点击外围关闭弹窗
scrollbar: false,//不现实滚动条
title: "图片预览", //不显示标题
content: imgHtml, //捕获的元素注意最好该指定的元素要存放在body最外层否则可能被其它的相对元素所影响
cancel: function () {
//layer.msg('捕获就是从页面已经存在的元素上包裹layer的结构', { time: 5000, icon: 6 });
}
});
}
</script>
</body>

View File

@ -0,0 +1,259 @@
@{
ViewBag.Title = "Index";
Layout = "~/Views/Shared/_Index.cshtml";
}
<div class="layuimini-container">
<div class="layuimini-main">
<fieldset class="table-search-fieldset layui-hide" id="searchField">
<div>
<form class="layui-form layui-form-pane" action="">
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label required">新闻类别:</label>
<div class="layui-input-block">
<select id="CategoryId" name="CategoryId" lay-filter="CategoryId" lay-search>
<option value="">请选择</option>
</select>
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">关键字:</label>
<div class="layui-input-inline">
<input type="text" id="txt_keyword" name="txt_keyword" autocomplete="off" class="layui-input" placeholder="">
</div>
</div>
<div class="layui-inline">
<button type="submit" class="layui-btn layui-btn-primary" lay-submit lay-filter="data-search-btn"><i class="layui-icon"></i> 搜 索</button>
</div>
</div>
</form>
</div>
</fieldset>
<script type="text/html" id="toolbarDemo">
<div class="layui-btn-container" id="toolbar">
<button id="NF-add" name="NF-add" authorize class="layui-btn layui-btn-sm" lay-event="add"><i class="layui-icon">&#xe654;</i>新增</button>
<button id="NF-edit" name="NF-edit" authorize class="layui-btn layui-btn-sm layui-btn-warm layui-hide" lay-event="edit"><i class="layui-icon">&#xe642;</i>修改</button>
<button id="NF-delete" name="NF-delete" authorize class="layui-btn layui-btn-sm layui-btn-danger layui-hide" lay-event="delete"> <i class="layui-icon">&#xe640;</i>删除</button>
<button id="NF-details" name="NF-details" authorize class="layui-btn layui-btn-sm layui-btn-normal layui-hide" lay-event="details"> <i class="layui-icon">&#xe60b;</i>查看</button>
</div>
</script>
<table class="layui-hide" id="currentTableId" lay-filter="currentTableFilter"></table>
<script type="text/html" id="currentTableBar">
<a id="NF-edit" authorize class="layui-btn layui-btn-xs layui-btn-warm" lay-event="edit">修改</a>
<a id="NF-delete" authorize class="layui-btn layui-btn-xs layui-btn-danger" lay-event="delete">删除</a>
<a id="NF-details" authorize class="layui-btn layui-btn-xs layui-btn-normal" lay-event="details">查看</a>
</script>
</div>
</div>
<script>
layui.use(['jquery', 'form', 'table', 'common', 'commonTable'], function () {
var $ = layui.jquery,
form = layui.form,
table = layui.table,
commonTable = layui.commonTable,
common = layui.common;
//权限控制(js是值传递)
currentTableBar.innerHTML = common.authorizeButtonNew(currentTableBar.innerHTML);
toolbarDemo.innerHTML = common.authorizeButtonNew(toolbarDemo.innerHTML);
wcLoading.close();
commonTable.rendertable({
elem: '#currentTableId',
id: 'currentTableId',
url: '/ContentManage/ArticleNews/GetGridJson',
filter: {
clearFilter: false,
},
cols: [[
{ type: "checkbox", width: 50, fixed: 'left' },
{ field: 'F_CategoryName', title: '新闻类别', width: 120, filter: true },
{ field: 'F_Title', title: '标题', width: 160, filter: true },
{
field: ' F_ImgUrl ', title: '封面', width: 60,
templet: function (d) {
if (!!d.F_ImgUrl) {
return '<img src="' + d.F_ImgUrl + '" style="height: 25px; width: 25px; line- height: 25 px!important;" onclick="previewImg(this)">'
}
else {
return '';
}
}
},
{ field: 'F_Zhaiyao', title: '摘要', minWidth: 220, filter: true },
{ field: 'F_SortCode', title: '排序', width: 80, filter: true },
{
field: 'F_IsTop', title: '置顶', width: 80, filter: true,
templet: function (d) {
if (d.F_IsTop == true) {
return "<span class='layui-btn layui-btn-normal layui-btn-xs'>是</span>";
} else {
return "<span class='layui-btn layui-btn-warm layui-btn-xs'>否</span>";
}
}
},
{
field: 'F_IsHot', title: '热门', width: 80, filter: true,
templet: function (d) {
if (d.F_IsHot == true) {
return "<span class='layui-btn layui-btn-normal layui-btn-xs'>是</span>";
} else {
return "<span class='layui-btn layui-btn-warm layui-btn-xs'>否</span>";
}
}
},
{ field: 'F_Click', title: '点击次数', width: 120, filter: true },
{ field: 'F_Source', title: '来源', width: 120, filter: true },
{ field: 'F_Author', title: '作者', width: 120, filter: true },
{
field: 'F_CreatorTime', title: '创建时间', width: 160, sort: true, filter: { type: 'date[yyyy/MM/dd HH:mm:ss]' }
},
{ field: 'F_CreatorUserId', title: '创建人', width: 120, filter: true, hide: true },
{ title: '操作', width: 160, toolbar: '#currentTableBar', align: "center", fixed: 'right' }
]]
});
$(function () {
initControl();
form.render();
});
function initControl() {
//绑定数据源
//类型为下拉框时
$("#CategoryId").bindSelect({
url: "/ContentManage/ArticleCategory/GetListJson",
id: "F_Id",
text: "F_FullName",
search: true,
});
}
// 监听搜索操作
form.on('submit(data-search-btn)', function (data) {
//执行搜索重载
commonTable.reloadtable({
elem: 'currentTableId',
curr: 1,
where: { CategoryId: data.field.CategoryId, keyword: data.field.txt_keyword }
});
return false;
});
//行点击事件监听,控制按钮显示
var oneList = ["NF-edit", "NF-details"];//选择1条显示
var morerList = ["NF-delete"];//选中1条以上显示
commonTable.tableRowClick("checkbox", "currentTableFilter", "currentTableId", oneList, morerList);
//toolbar监听事件
table.on('toolbar(currentTableFilter)', function (obj) {
var data = table.checkStatus('currentTableId').data;
var id = data.length > 0 ?data[0].F_Id:null;
if (obj.event === 'add') { // 监听添加操作
common.openNewTabByIframe({
title: "添加文章",
href: "/ContentManage/ArticleNews/Form",
});
}
else if (obj.event === 'delete') {
if (data.length == 0) {
common.modalMsg("未选中数据", "warning");
return false;
}
var ids = [];
for (var i = 0; i < data.length; i++) {
ids.push(data[i].F_Id);
}
common.deleteForm({
url: "/ContentManage/ArticleNews/DeleteForm",
param: { keyValue: ids.join(',') },
success: function () {
common.reload('data-search-btn');
}
});
}
else if (obj.event === 'edit') {
if (data.length == 0) {
common.modalMsg("未选中数据", "warning");
return false;
}
if (data.length > 1) {
common.modalMsg("只能选择一条编辑", "warning");
return false;
}
common.openNewTabByIframe({
title: "编辑文章",
href: "/ContentManage/ArticleNews/Form?keyValue=" + id,
});
}
else if (obj.event === 'details') {
if (data.length == 0) {
common.modalMsg("未选中数据", "warning");
return false;
}
if (data.length > 1) {
common.modalMsg("只能选择一条查看", "warning");
return false;
}
common.openNewTabByIframe({
title: "查看文章",
href: "/ContentManage/ArticleNews/Details?keyValue=" + id,
});
}
else if (obj.event === 'TABLE_SEARCH') {
var _that = $("#searchField");
if (_that.hasClass("layui-hide")) {
_that.removeClass('layui-hide');
} else {
_that.addClass('layui-hide');
}
table.resize();
}
return false;
});
//toolrow监听事件
table.on('tool(currentTableFilter)', function (obj) {
var id = obj.data.F_Id;
if (obj.event === 'delete') {
common.deleteForm({
url: "/ContentManage/ArticleNews/DeleteForm",
param: { keyValue: id },
success: function () {
obj.del();
}
});
}
else if (obj.event === 'edit') {
common.openNewTabByIframe({
title: "编辑文章",
href: "/ContentManage/ArticleNews/Form?keyValue=" + id,
});
}
else if (obj.event === 'details') {
common.openNewTabByIframe({
title: "查看文章",
href: "/ContentManage/ArticleNews/Details?keyValue=" + id,
});
}
return false;
});
});
function previewImg(obj) {
var img = new Image();
img.src = obj.src;
var height = (!!img.height ? img.height:100) + 50; //获取图片高度
var width = (!!img.width ? img.width : 100); //获取图片宽度
if (height > 500) { height = 500; };
if (width > 500) { width = 500; };
var imgHtml = "<img src='" + obj.src + "' style=\"height: " + (height - 43) + "px; width: " + width + "px; line-height: 25px!important;\"/>";
//弹出层
layer.open({
type: 1,
shade: 0.8,
offset: 'auto',
area: [width + 'px', height + 'px'],
shadeClose: true,//点击外围关闭弹窗
scrollbar: false,//不现实滚动条
title: "图片预览", //不显示标题
content: imgHtml, //捕获的元素注意最好该指定的元素要存放在body最外层否则可能被其它的相对元素所影响
cancel: function () {
//layer.msg('捕获就是从页面已经存在的元素上包裹layer的结构', { time: 5000, icon: 6 });
}
});
}
</script>