添加项目文件。

This commit is contained in:
zel
2025-03-05 19:42:01 +08:00
parent 659f1a2ad9
commit 47dcdeb55d
582 changed files with 242004 additions and 0 deletions

View File

@@ -0,0 +1,295 @@
@{
ViewBag.Title = "Form";
Layout = "~/Views/Shared/_Form.cshtml";
}
<script>
layui.use(['jquery', 'table', 'form', 'commonTable', 'common', 'optimizeSelectOption'], function () {
var form = layui.form,
$ = layui.$,
common = layui.common,
table = layui.table,
commonTable = layui.commonTable;
var keyValue = $.request("keyValue");
if (!!keyValue) {
$('#F_ModuleId').prop('disabled', true);
}
//权限字段
common.authorizeFields('adminform');
$(function () {
initControl();
if (!!keyValue) {
common.ajax({
url: '/SystemOrganize/DataPrivilegeRule/GetFormJson',
dataType: 'json',
data: { keyValue: keyValue },
async: false,
success: function (data) {
common.val('adminform', data);
var datas = JSON.parse(data.F_PrivilegeRules);
for (var i = 0; i < datas.length; i++) {
datas[i]["F_Id"] = uuid();
}
table.reload('currentTableId', {
data: datas
});
}
});
}
else {
if (!$('#F_ModuleId').val()) {
$('#toolbar').addClass('layui-hide');
}
}
form.render();
});
wcLoading.close();
commonTable.rendertable({
elem: '#currentTableId',
id: 'currentTableId',
data: [],
search:false,
limit: 9999,//每页数据 默认
page: { //支持传入 laypage 组件的所有参数某些参数除外jump/elem - 详见文档
layout: ['count'] //自定义分页布局
, first: false //不显示首页
, last: false //不显示尾页
},
height: 'full-150',
cols: [[
{ type: "radio", width: 50 },
{ field: 'Operation', title: '规则间条件', width: 120 },
{ field: 'Filters', title: '规则内容', minWidth: 200 },
{ field: 'Description', title: '规则备注', minWidth: 200 },
{ title: '操作', width: 130, toolbar: '#currentTableBar', align: "center" }
]]
});
//行点击事件监听,控制按钮显示
var oneList = ["NF-edit", "NF-delete"];//选择1条显示
commonTable.tableRowClick("radio", "currentTableFilter", "currentTableId", oneList);
//toolbar监听事件
table.on('toolbar(currentTableFilter)', function (obj) {
var data = table.checkStatus('currentTableId').data;
var id = data.length > 0 ? data[0].F_Id : null;
var module = $('#F_ModuleId').val();
if (obj.event === 'add') { // 监听删除操作
if (!module) {
common.modalMsg("未选中模块", "warning");
return false;
}
common.modalOpen({
title: "添加规则",
url: "/SystemOrganize/DataPrivilegeRule/RuleForm?module=" + module,
width: "750px",
height: "500px",
});
}
else if (obj.event === 'delete') {
if (id == null) {
common.modalMsg("未选中数据", "warning");
return false;
}
common.modalConfirm("注:您确定要删除该项数据吗?", function (r) {
if (r) {
var index = parent.layer.load(0, {
shade: [0.5, '#000'], //0.1透明度的背景
});
try {
var cachedata = table.cache.currentTableId;
for (var i = 0; i < cachedata.length; i++) {
if (id == cachedata[i].F_Id) {
cachedata.splice(i, 1);
break;
}
}
table.reload('currentTableId', {
data: cachedata
});
entity = null;
common.modalMsg("操作成功", "success");
} catch (e) {
alert(e);
}
parent.layer.close(index);
}
else {
return false;
}
});
}
else if (obj.event === 'edit') {
if (id == null) {
common.modalMsg("未选中数据", "warning");
return false;
}
if (!module) {
common.modalMsg("未选中模块", "warning");
return false;
}
common.modalOpen({
title: "编辑规则",
url: "/SystemOrganize/DataPrivilegeRule/RuleForm?keyValue=" + id + "&module=" + module,
width: "750px",
height: "500px",
});
}
return false;
});
//toolrow监听事件
table.on('tool(currentTableFilter)', function (obj) {
var id = obj.data.F_Id;
var module = $('#F_ModuleId').val();
if (obj.event === 'delete') {
common.modalConfirm("注:您确定要删除该项数据吗?", function (r) {
if (r) {
var index = parent.layer.load(0, {
shade: [0.5, '#000'], //0.1透明度的背景
});
try {
var cachedata = table.cache.currentTableId;
for (var i = 0; i < cachedata.length; i++) {
if (id == cachedata[i].F_Id) {
cachedata.splice(i, 1);
break;
}
}
table.reload('currentTableId', {
data: cachedata
});
entity = null;
common.modalMsg("操作成功", "success");
} catch (e) {
alert(e);
}
parent.layer.close(index);
}
else {
return false;
}
});
}
else if (obj.event === 'edit') {
if (!module) {
common.modalMsg("未选中模块", "warning");
return false;
}
common.modalOpen({
title: "编辑规则",
url: "/SystemOrganize/DataPrivilegeRule/RuleForm?keyValue=" + id + "&module=" + module,
width: "750px",
height: "500px",
});
}
return false;
});
function initControl() {
//绑定数据源
//类型为下拉框时
if (!!keyValue) {
$("#F_ModuleId").bindSelect({
url: "/SystemManage/Module/GetSelectMunuJson",
});
}
else {
$("#F_ModuleId").bindSelect({
url: "/SystemManage/Module/GetSelectMunuBesidesJson",
});
}
}
//select验证
form.verify({
required: function (value, item) {
var msg = "必填项不能为空";
value = $.trim(value);
var isEmpty = !value || value.length < 1;
// 当前验证元素是select且为空时,将页面定位至layui渲染的select处或自定义想定位的位置
if (item.tagName == 'SELECT' && isEmpty) {
$("html").animate({
scrollTop: $(item).siblings(".layui-form-select").offset().top - 74
}, 50);
}
if (isEmpty) {
return msg;
}
}
});
//监听select
form.on('select(F_ModuleId)', function (data) {
if (!!data.value) {
$('#toolbar').removeClass('layui-hide');
}
else {
$('#toolbar').addClass('layui-hide');
}
return false;
});
//监听提交
form.on('submit(saveBtn)', function (data) {
var cachedata = table.cache.currentTableId
if (cachedata.length == 0) {
common.modalMsg("未添加规则", "warning");
return false;
}
var postData = data.field;
if (!postData["F_EnabledMark"]) postData["F_EnabledMark"] = false;
postData.listData = JSON.stringify(cachedata);
common.submitForm({
url: '/SystemOrganize/DataPrivilegeRule/SubmitForm?keyValue=' + keyValue,
param: postData,
success: function () {
common.reloadIframe("/SystemOrganize/DataPrivilegeRule/Index", 'data-search-btn');
}
})
return false;
});
});
</script>
<body>
<div class="layuimini-container">
<div class="layuimini-main">
<fieldset class="table-search-fieldset">
<div class="layui-form layuimini-form" lay-filter="adminform">
<div class="layui-form-item">
<div class="layui-col-md4 layui-hide">
<label class="layui-form-label required">模块编号</label>
<div class="layui-input-block">
<select id="F_ModuleId" name="F_ModuleId" lay-filter="F_ModuleId" lay-verify="required" lay-search>
<option value="">请选择</option>
</select>
</div>
</div>
<div class="layui-col-md4 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)" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-col-md4 layui-hide">
<label class="layui-form-label">选项</label>
<div class="layui-input-block">
<input type="checkbox" name="F_EnabledMark" id="F_EnabledMark" checked="" value="true" title="有效标识">
</div>
</div>
</div>
<div class="layui-form-item text-right">
<button class="layui-btn site-demo-active" lay-submit id="submit" lay-filter="saveBtn">确认保存</button>
</div>
</div>
</fieldset>
<script type="text/html" id="toolbarDemo">
<div class="layui-btn-container" id="toolbar">
<button id="NF-add" authorize="yes" class="layui-btn layui-btn-sm" lay-event="add"><i class="layui-icon">&#xe654;</i>新增</button>
<button id="NF-edit" name="NF-edit" authorize="yes" 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="yes" class="layui-btn layui-btn-sm layui-btn-danger layui-hide" lay-event="delete"> <i class="layui-icon">&#xe640;</i>删除</button>
</div>
</script>
<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>
</script>
<table class="layui-hide" id="currentTableId" lay-filter="currentTableFilter"></table>
</div>
</div>
</body>

View File

@@ -0,0 +1,155 @@
@{
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" id="toolbar">
<button id="NF-add" authorize="yes" class="layui-btn layui-btn-sm" lay-event="add"><i class="layui-icon">&#xe654;</i>新增</button>
<button id="NF-edit" name="NF-edit" authorize="yes" 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="yes" class="layui-btn layui-btn-sm layui-btn-danger layui-hide" lay-event="delete"> <i class="layui-icon">&#xe640;</i>删除</button>
</div>
</script>
<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>
</script>
<table class="layui-hide" id="currentTableId" lay-filter="currentTableFilter"></table>
</div>
</div>
<script>
layui.use(['form', 'table', 'common', 'commonTable', 'optimizeSelectOption'], function () {
var form = layui.form,
table = layui.table,
commonTable = layui.commonTable,
common = layui.common;
wcLoading.close();
//权限控制(js是值传递)
currentTableBar.innerHTML = common.authorizeButtonNew(currentTableBar.innerHTML);
toolbarDemo.innerHTML = common.authorizeButtonNew(toolbarDemo.innerHTML);
commonTable.rendertable({
elem: '#currentTableId',
id: 'currentTableId',
url: '/SystemOrganize/DataPrivilegeRule/GetGridJson',
filter: {
clearFilter: false
},
cols: [[
{ type: "radio", width: 50, fixed: 'left' },
{ field: 'F_ModuleCode', title: '模块编号', width: 120, sort: true, filter: true },
{ field: 'F_PrivilegeRules', title: '权限规则', width: 200, sort: true, filter: true },
{ field: 'F_SortCode', title: '排序号', width: 120, sort: true, filter: true },
{
field: 'F_EnabledMark', title: '状态', width: 80, sort: true, 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: '创建时间', width: 160, sort: true, filter: { type: 'date[yyyy/MM/dd HH:mm:ss]' }
},
{ field: 'F_Description', title: '备注', minWidth: 150, sort: true, filter: true },
{ title: '操作', width: 120, toolbar: '#currentTableBar', align: "center", fixed: 'right' }
]]
});
// 监听搜索操作
form.on('submit(data-search-btn)', function (data) {
//执行搜索重载
commonTable.reloadtable({
elem: 'currentTableId',
curr: 1,
where: { keyword: data.field.txt_keyword}
});
return false;
});
//行点击事件监听,控制按钮显示
var oneList = ["NF-edit", "NF-delete"];//选择1条显示
commonTable.tableRowClick("radio", "currentTableFilter", "currentTableId", oneList);
//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: "/SystemOrganize/DataPrivilegeRule/Form",
});
}
else if (obj.event === 'delete') {
if (id == null) {
common.modalMsg("未选中数据", "warning");
return false;
}
common.deleteForm({
url: "/SystemOrganize/DataPrivilegeRule/DeleteForm",
param: { keyValue: id },
success: function () {
common.reload('data-search-btn');
}
});
}
else if (obj.event === 'edit') {
if (id == null) {
common.modalMsg("未选中数据", "warning");
return false;
}
common.openNewTabByIframe({
title: "修改规则",
href: "/SystemOrganize/DataPrivilegeRule/Form?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: "/SystemOrganize/DataPrivilegeRule/DeleteForm",
param: { keyValue: id },
success: function () {
obj.del();
}
});
}
else if (obj.event === 'edit') {
common.openNewTabByIframe({
title: "修改规则",
href: "/SystemOrganize/DataPrivilegeRule/Form?keyValue=" + id,
});
}
return false;
});
});
</script>

View File

@@ -0,0 +1,259 @@
@{
ViewBag.Title = "Form";
Layout = "~/Views/Shared/_Form.cshtml";
}
<script>
layui.use(['jquery', 'form', 'laydate', 'common', 'xmSelect', 'optimizeSelectOption'], function () {
var form = layui.form,
$ = layui.$,
common = layui.common,
xmSelect = layui.xmSelect;
var keyValue = $.request("keyValue");
var module = $.request("module");
var cout = 0;
$(function () {
initControl();
if (!!keyValue) {
var tempdata = common.parentWindow().layui.table.cache.currentTableId;
var Filters = [];
for (var i = 0; i < tempdata.length; i++) {
if (keyValue == tempdata[i].F_Id) {
Filters = JSON.parse(tempdata[i].Filters);
$('#Description').val(tempdata[i].Description);
break;
}
}
for (var i = 0; i < Filters.length; i++) {
$('#NF-add').click();
$('#fields' + i).val(Filters[i].Key);
$('#symbol' + i).val(Filters[i].Contrast);
$('#lookname' + i).val(Filters[i].Text);
$('#values' + i).val(Filters[i].Value);
}
form.render();
}
else {
$('#NF-add').click();
form.render();
}
form.render();
});
wcLoading.close();
function initControl() {
$("#fields").bindSelect({
url: "/SystemManage/ModuleFields/GetSelectJson?moduleId=" + module,
});
}
$(document).on('click', '#NF-add', function () {
var target = $('#ruledata');
var html = $("#divInputTemplate").prop("outerHTML");
html = html.replace(/rulecontext/g, "rulecontext" + cout); // 替换多个
html = html.replace(/条件规则/g, "条件规则" + (cout + 1)); // 替换多个
html = html.replace(/fields/g, "fields" + cout); // 替换多个
html = html.replace(/symbol/g, "symbol" + cout); // 替换多个
html = html.replace(/lookname/g, "lookname" + cout); // 替换多个
html = html.replace(/condition/g, "condition" + cout); // 替换多个
html = html.replace(/divInputTemplate/g, "divInput" + cout);
html = html.replace(/values/g, "values" + cout);
html = html.replace(/searchCout/g, cout);
var obj = $(html);
obj.removeClass("layui-hide");
obj.appendTo(target);
cout++;
form.render();
});
//select验证
form.verify({
required: function (value, item) {
var msg = "必填项不能为空";
value = $.trim(value);
var isEmpty = !value || value.length < 1;
// 当前验证元素是select且为空时,将页面定位至layui渲染的select处或自定义想定位的位置
if (item.tagName == 'SELECT' && isEmpty) {
$("html").animate({
scrollTop: $(item).siblings(".layui-form-select").offset().top - 74
}, 50);
}
if (isEmpty) {
return msg;
}
}
});
//监听提交
var lock = false;
form.on('submit(saveBtn)', function (data) {
if (!lock) {
var index = parent.layer.load(0, {
shade: [0.5, '#000'], //0.1透明度的背景
});
var postData = {};
postData.Operation = data.field.Operation;
postData.Description = data.field.Description;
if (!!keyValue) {
postData.F_Id = keyValue;
}
else {
postData.F_Id = uuid();
}
var Filters = [];
for (var i = 0; i < cout; i++) {
var temp = {};
temp["Key"] = $('#fields' + + i).val();
temp["Contrast"] = $('#symbol' + + i).val();
temp["Text"] = $('#lookname' + + i).val();
temp["Value"] = $('#values' + + i).val();
if(temp["Key"]!="{loginRole}" && temp["Key"]!="{loginUser}" && temp["Key"]!="{loginOrg}")
{
temp["Value"] = null;
}
if (!temp["Value"]) {
temp["Value"] = temp["Text"];
}
if (!!temp["Key"]) {
Filters.push(temp);
}
}
postData.Filters = JSON.stringify(Filters);
var tempdata = common.parentWindow().layui.table.cache.currentTableId;
if (!!keyValue) {
for (var i = 0; i < tempdata.length; i++) {
if (keyValue == tempdata[i].F_Id) {
tempdata[i].Filters = postData.Filters;
tempdata[i].Description = postData.Description;
break;
}
}
}
else {
tempdata.push(postData);
}
common.modalMsg("操作成功", "success");
common.parentWindow().layui.table.reload('currentTableId', {
data: tempdata
});
parent.layer.close(index);
common.modalClose();
lock = false;
}
return false;
});
});
function deleteRule(data) {
var obj = document.getElementById(data);//建议使用ID
if (obj != null) {
obj.parentNode.removeChild(obj);
}
layui.use(['jquery', 'form', 'laydate', 'common'], function () {
layui.form.render();
});
}
function search(data) {
var fields = $('#fields' + data).val();
if (fields != '{loginRole}' && fields != '{loginUser}' && fields != '{loginOrg}') {
return false;
}
$('#lookname' + data).val(null);
$('#values' + data).val(null);
layui.use(['jquery', 'form', 'common'], function () {
var form = layui.form,
$ = layui.$,
common = layui.common;
//不同弹窗
if (fields == '{loginRole}') {
common.modalOpen({
title: "选择角色",
url: "/SystemOrganize/Role/AddForm?name=" + "lookname" + data + "&value=" + "values" + data,
width: "650px",
height: "600px",
});
}
else if (fields == '{loginUser}') {
common.modalOpen({
title: "选择用户",
url: "/SystemOrganize/User/AddForm?name=" + "lookname" + data + "&value=" + "values" + data,
width: "650px",
height: "600px",
});
}
else if (fields == '{loginOrg}') {
common.modalOpen({
title: "选择组织",
url: "/SystemOrganize/Organize/AddForm?name=" + "lookname" + data + "&value=" + "values" + data,
width: "650px",
height: "600px",
});
}
else {
return false;
}
});
}
</script>
<body>
<div class="layui-input-item layui-hide" id="divInputTemplate">
<label class="layui-form-label required">条件规则</label>
<div class="layui-input-block" style="padding-right: 70px;">
<div class="layui-input-block" style="margin-left:0px">
<select id="condition" name="condition" lay-verify="required" disabled lay-search>
<option value="and" selected>并且</option>
<option value="or">或者</option>
</select>
</div>
<div class="layui-input-inline" style="width:145px">
<select id="fields" name="fields" lay-verify="required" lay-search>
<option value="">请选择</option>
<option value="{loginRole}">{当前登录用户的角色}</option>
<option value="{loginUser}">{当前登录的用户}</option>
<option value="{loginOrg}">{当前登录用户的部门}</option>
</select>
</div>
<div class="layui-input-inline" style="width:100px">
<select id="symbol" name="symbol" lay-verify="required" lay-search>
<option value="">请选择</option>
<option value=">=">大于等于</option>
<option value="<=">小于等于</option>
<option value="==">等于</option>
<option value="!=">不等于</option>
<option value="contains">包含</option>
<option value="in">属于</option>
<option value="intersect">含有任意一个</option>
</select>
</div>
<div class="layui-input-inline" style="width:180px">
<input type="text" id="lookname" name="lookname" class="layui-input" lay-verify="required" maxlength="50" value="" placeholder="请输入值">
<input type="text" id="values" name="values" class="layui-input layui-hide">
</div>
<button class="layui-btn layui-btn-danger" style="position: absolute;top: 0;right: 6px;cursor: pointer;" onclick="deleteRule('divInputTemplate')"><i class="layui-icon">&#xe67e;</i></button>
<button class="layui-btn layui-btn-primary" style="position: absolute;top: 0;right: 6px;cursor: pointer;margin-top:40px" onclick="search(searchCout)">...</button>
</div>
</div>
<div class="layuimini-container">
<div class="layuimini-main">
<blockquote class="layui-elem-quote layui-text">
当前登录的用户{loginUser},当前登录用户的角色{loginRole},当前用户的部门{loginOrg}
</blockquote>
<div class="layui-form layuimini-form" lay-filter="adminform">
<div class="layui-form-item layui-form-text">
<label class="layui-form-label">规则备注</label>
<div class="layui-input-block">
<textarea id="Description" name="Description" class="layui-textarea" placeholder="请输入规则备注"></textarea>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">规则条件</label>
<div class="layui-input-block" style="padding-right: 70px;">
<input id="Operation" name="Operation" lay-verify="required" value="and" disabled class="layui-hide">
<button id="NF-add" class="layui-btn"><i class="layui-icon">&#xe654;</i></button>
</div>
</div>
<div id="ruledata">
</div>
<div class="layui-form-item layui-hide">
<button class="layui-btn" lay-submit id="submit" lay-filter="saveBtn">确认保存</button>
</div>
</div>
</div>
</div>
</body>