调整窗口打开方式,默认缺省设置会根据框架皮肤判断打开方式(目前只支持layui\ace自动判断)补充设置注释

This commit is contained in:
xiyunfei 2023-05-18 23:59:04 +08:00
parent 8283a7cbed
commit 584e705295
5 changed files with 71 additions and 11 deletions

View File

@ -3,6 +3,7 @@ using System.Collections.Generic;
using System.ComponentModel;
using Microsoft.AspNetCore.Mvc;
using NewLife.Cube;
using NewLife.Cube.ViewModels;
using NewLife.Log;
using NewLife.School.Entity;
using NewLife.Web;
@ -19,9 +20,23 @@ namespace CubeDemo.Areas.School.Controllers
{
{
var df = ListFields.AddListField("test", null, "ID");
df.DisplayName = "测试多标签";
df.Url = "/School/Class";
df.Target = "_frame";
df.DisplayName = "AJAX操作请求";
df.Url = "/School/Class/Hello";
df.DataAction = "action";
}
{
var df = ListFields.AddListField("test1", null, "ID");
df.DisplayName = "当前页打开";
df.Url = "/School/Student";
df.Target = TargetEnum._self + "";
}
{
var df = ListFields.AddListField("test1", null, "ID");
df.DisplayName = "浏览器多标签页打开";
df.Url = "/School/Student";
df.Target = TargetEnum._blank + "";
}
}
@ -32,6 +47,15 @@ namespace CubeDemo.Areas.School.Controllers
_tracer = provider?.GetService<ITracer>();
}
public IActionResult Hello()
{
return Json(new
{
code = "200",
data = "ok"
});
}
protected override IEnumerable<Class> Search(Pager p)
{
using var span = _tracer?.NewSpan(nameof(Search), p);

View File

@ -29,7 +29,11 @@ public class ListField : DataField
///// <summary>单元格图标。数据单元格前端显示时的图标或图片</summary>
//public String Icon { get; set; }
/// <summary>链接目标。_blank/_self/_parent/_top/_frame</summary>
/// <summary>
/// 链接目标。参考TargetEnum
/// _blank/_self/_parent/_top
/// 默认null,会根据皮肤自动判断打开方式layui:在框架页多标签打开ace:在当前页面进行跳转
/// </summary>
public String Target { get; set; }
/// <summary>头部文字</summary>
@ -41,7 +45,9 @@ public class ListField : DataField
///// <summary>头部链接。一般是排序</summary>
//public String HeaderUrl { get; set; }
/// <summary>数据动作。设为action时走ajax请求</summary>
/// <summary>
/// 数据动作。参考DataAction
/// 默认null 作为普通url操作action 走ajax请求</summary>
public String DataAction { get; set; }
/// <summary>获取数据委托。可用于自定义列表页单元格数值的显示</summary>

View File

@ -0,0 +1,28 @@
namespace NewLife.Cube.ViewModels
{
/// <summary>Url打开方式</summary>
public enum TargetEnum
{
/// <summary>浏览器新标签页</summary>
_blank,
/// <summary>当前页面</summary>
_self,
/// <summary></summary>
_parent,
/// <summary></summary>
_top
}
/// <summary>数据请求方法</summary>
public enum DataAction
{
/// <summary>以请求url方式直接打开</summary>
url,
/// <summary>以ajax方式请求url</summary>
action,
}
}

View File

@ -72,11 +72,11 @@
var title = df.GetTitle(entity);
if (!String.IsNullOrEmpty(name) && name.StartsWith("<") && name.EndsWith(">"))
{
<td class="text-center" title="@title"><a href="@Html.Raw(url)" target="@(nulti_tabs?df.Target:df.Target=="_frame"?"":df.Target)">@(Html.Raw(name))</a></td>
<td class="text-center" title="@title"><a href="@Html.Raw(url)" target="@(df.Target.IsNullOrEmpty()&&nulti_tabs?"_frame":df.Target)">@(Html.Raw(name))</a></td>
}
else
{
<td class="text-center" title="@title"><a href="@Html.Raw(url)" target="@(nulti_tabs?df.Target:df.Target=="_frame"?"":df.Target)">@name</a></td>
<td class="text-center" title="@title"><a href="@Html.Raw(url)" target="@(df.Target.IsNullOrEmpty()&&nulti_tabs?"_frame":df.Target)">@name</a></td>
}
}
else

View File

@ -7,8 +7,8 @@ $(function () {
window.confirmDialog = parent['confirmDialog'] || function (msg, func) { if (confirm(msg)) func(); };
window.tips = parent['tips'] || function (msg, modal, time, jumpUrl) { alert(msg); location.reload(); };
//根据data-action的值确定操作类型 action为请求后端执行业务操作url为直接跳转指定url地址
//按钮请求action
// 根据data-action的值确定操作类型 action为请求后端执行业务操作url为直接跳转指定url地址
// 按钮请求action
$(document).on('click',
'button[data-action="action"], input[data-action="action"], a[data-action="action"]',
function (e) {
@ -34,10 +34,11 @@ $(function () {
}
doClickAction($this);
//阻止按钮本身的事件冒泡
// 阻止按钮本身的事件冒泡
return false;
});
//直接执行Url地址
// 直接执行Url地址
$(document).on('click'
, 'button[data-action="url"],input[data-action="url"],a[data-action="url"]'
, function (data) {
@ -88,6 +89,7 @@ function doClickAction($this) {
var fields = $this.data('fields');
//参数
var parameter = '';
if (fields && fields.length > 0) {
var fieldArr = fields.split(',');
for (var i = 0; i < fieldArr.length; i++) {