feat: support BS menu opening mode
This commit is contained in:
@@ -663,6 +663,37 @@ namespace Lskj.Business.Impl
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
/// 获取菜单是否使用 BS 网页方式打开。
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="menuId">菜单 ID。</param>
|
||||||
|
/// <returns>1 表示使用 BS 网页方式打开;其他值按原 CS 方式打开。</returns>
|
||||||
|
public static int GetBsOpenMode(string menuId)
|
||||||
|
{
|
||||||
|
if (string.IsNullOrWhiteSpace(menuId) || !HasExistsColumn("P_FormMenuConfigTab", "BsOpenMode"))
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
const string sqlValue = @"select ISNULL(BsOpenMode,0) as BsOpenMode
|
||||||
|
from P_FormMenuConfigTab
|
||||||
|
where MenuId=@MenuId";
|
||||||
|
DataTable dataTable = SqlHelper.ExecuteDataTable(
|
||||||
|
sqlValue,
|
||||||
|
new SqlParameter("@MenuId", menuId));
|
||||||
|
int bsOpenMode;
|
||||||
|
return dataTable.Rows.Count > 0 &&
|
||||||
|
int.TryParse(dataTable.Rows[0]["BsOpenMode"] + "", out bsOpenMode)
|
||||||
|
? bsOpenMode
|
||||||
|
: 0;
|
||||||
|
}
|
||||||
|
catch (Exception)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
/// <para>说明:根据配置MenuType加载菜单</para>
|
/// <para>说明:根据配置MenuType加载菜单</para>
|
||||||
/// <para>创建人:龚宇超</para>
|
/// <para>创建人:龚宇超</para>
|
||||||
/// <para>创建日期:2017-08-16 </para>
|
/// <para>创建日期:2017-08-16 </para>
|
||||||
@@ -1358,4 +1389,4 @@ namespace Lskj.Business.Impl
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -315,7 +315,12 @@ namespace Lskj.Main.Model
|
|||||||
}
|
}
|
||||||
//验证是否设置不能打开多个相同模块
|
//验证是否设置不能打开多个相同模块
|
||||||
bool SingleOpenMode = MainImpl.GetOpenRestrictions(menuId);
|
bool SingleOpenMode = MainImpl.GetOpenRestrictions(menuId);
|
||||||
|
bool openInBsMode = MainImpl.GetBsOpenMode(menuId) == 1;
|
||||||
|
string configuredDllName = dllName;
|
||||||
|
if (openInBsMode)
|
||||||
|
{
|
||||||
|
dllName = "Lskj.PubBrower2.dll";
|
||||||
|
}
|
||||||
|
|
||||||
LogUtil.WriteDebug(modelFlag.ToString(), "操作模块", menuName, menuName, menuId.ToString());
|
LogUtil.WriteDebug(modelFlag.ToString(), "操作模块", menuName, menuName, menuId.ToString());
|
||||||
DllModule module = new DllModule
|
DllModule module = new DllModule
|
||||||
@@ -333,6 +338,21 @@ namespace Lskj.Main.Model
|
|||||||
urlParams,
|
urlParams,
|
||||||
menuId
|
menuId
|
||||||
};
|
};
|
||||||
|
if (openInBsMode)
|
||||||
|
{
|
||||||
|
string bsUrl = BuildBsMenuUrl(configuredDllName, modelFlag);
|
||||||
|
args = new string[]
|
||||||
|
{
|
||||||
|
menuName,
|
||||||
|
ERPInfo.Instance.UserId,
|
||||||
|
ERPInfo.Instance.UserName,
|
||||||
|
purview + "",
|
||||||
|
"",
|
||||||
|
menuId,
|
||||||
|
"",
|
||||||
|
bsUrl
|
||||||
|
};
|
||||||
|
}
|
||||||
dllName = MainImpl.GetDefaultValue(dllName);
|
dllName = MainImpl.GetDefaultValue(dllName);
|
||||||
if (SystemInfo.Instance.SoftOpenMode || SingleOpenMode)
|
if (SystemInfo.Instance.SoftOpenMode || SingleOpenMode)
|
||||||
{
|
{
|
||||||
@@ -439,6 +459,16 @@ namespace Lskj.Main.Model
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static string BuildBsMenuUrl(string dllName, string dllCoid)
|
||||||
|
{
|
||||||
|
return string.Format(
|
||||||
|
"pages/app/app.html?xtype={0}&dllcoid={1}&username={2}&password={3}",
|
||||||
|
dllName,
|
||||||
|
dllCoid,
|
||||||
|
ERPInfo.Instance.UserName,
|
||||||
|
ERPInfo.Instance.Password);
|
||||||
|
}
|
||||||
|
|
||||||
private static string BuildOpeningModuleKey(
|
private static string BuildOpeningModuleKey(
|
||||||
string menuId,
|
string menuId,
|
||||||
string dllName,
|
string dllName,
|
||||||
|
|||||||
Reference in New Issue
Block a user