You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

356 lines
11 KiB
Plaintext

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

using System;
using System.Data;
using BP.DA;
using BP.Sys;
namespace BP.WF.HttpHandler
{
/// <summary>
/// 页面功能实体
/// </summary>
public class WF_Admin_FoolFormDesigner_StyletDfine : BP.WF.HttpHandler.DirectoryPageBase
{
/// <summary>
/// 构造函数
/// </summary>
public WF_Admin_FoolFormDesigner_StyletDfine()
{
}
#region GloValStyles.htm
public string GloValStyles_PinYin()
{
string name = this.GetRequestVal("TB_Name");
//表单No长度最大100因有前缀CCFrm_因此此处设置最大94added by liuxc,2017-9-25
string str = BP.Sys.CCFormAPI.ParseStringToPinyinField(name, true, true, 94);
GloVar en = new GloVar();
en.No = str;
if (en.RetrieveFromDBSources() == 0)
return str;
return "err@标签:" + str + "已经被使用.";
}
public string GloValStyles_Init()
{
string val = this.GetRequestVal("CSS");
if (DataType.IsNullOrEmpty(val) == true)
return "";
BP.Sys.GloVar en = new GloVar(val);
//生成风格文件.
string docs = GenerStyleDocs(en);
//内容.
docs = docs.Replace(en.No, "GloValsTemp");
//要去掉.
docs = docs.Replace("!important", "");
//保存一个临时文件,
string path = BP.Difference.SystemConfig.PathOfDataUser + "Style/GloVarsCSSTemp.css";
BP.DA.DataType.SaveAsFile(path, docs);
return "风格文件已经生成:" + path;
}
/// <summary>
/// 应用.
/// </summary>
/// <returns></returns>
public string GloValStyles_App()
{
BP.Sys.GloVars ens = new GloVars();
ens.Retrieve(GloVarAttr.GroupKey, "CSS");
string html = "";
foreach (BP.Sys.GloVar item in ens)
{
//生成风格文件.
html += GenerStyleDocs(item);
}
//保存一个临时文件,
string path = BP.Difference.SystemConfig.PathOfDataUser + "Style/GloVarsCSS.css";
BP.DA.DataType.SaveAsFile(path, html);
return "执行成功.";
}
#endregion
#region Default.htm 风格设计页面..
/// <summary>
/// 保存为模版.
/// </summary>
/// <returns></returns>
public string Default_SaveAsTemplate()
{
try
{
BP.Sys.GloVars ens = new GloVars();
ens.Retrieve("GroupKey", "FoolFrmStyle", "Idx");
string myName = this.GetRequestVal("TemplateName");
if (DataType.IsNullOrEmpty(myName) == true)
myName = DateTime.Now.ToString("MM月dd日HH时mm分ss秒");
string path = BP.Difference.SystemConfig.PathOfDataUser + "Style/TemplateFoolFrm/" + myName + ".xml";
ens.SaveToXml(path);
return "模版创建成功.";
}
catch (Exception ex)
{
return "err@" + ex.Message;
}
}
/// <summary>
/// 模版选择
/// </summary>
/// <returns></returns>
public string Default_Template_Selected()
{
return Default_Selected_Ext(false);
}
/// <summary>
/// 初始化表单风格
/// </summary>
/// <returns></returns>
public string Default_GenerGloVars()
{
//获得标准的配置文件,用于比较缺少或者删除的标记.
string path = BP.Difference.SystemConfig.PathOfWebApp + "WF/Admin/FoolFormDesigner/StyletDfine/DefaultStyle.xml";
DataSet ds = new DataSet();
ds.ReadXml(path);
DataTable dt = ds.Tables[0];
GloVars ens = new GloVars();
ens.Retrieve("GroupKey", "FoolFrmStyle", "Idx");
#region 检查是否有新增的标签,如果有就 insert 一个。
int idx = 0;
foreach (DataRow dr in dt.Rows)
{
idx++;
string no = dr[0].ToString();
string name = dr[1].ToString();
string val = dr[2].ToString();
if (ens.Contains(no) == false)
{
GloVar myen = new GloVar();
myen.No = no;
myen.Name = name;
myen.Val = val;
myen.GroupKey = "FoolFrmStyle";
myen.Idx = idx;
myen.Insert();
ens.AddEntity(myen);
}
}
#endregion 检查是否有新增的标签,如果有就insert一个。
#region 检查是否有 多余 的标签,如果有就 Delete .
bool isChange = false;
foreach (GloVar item in ens)
{
bool isHave = false;
foreach (DataRow dr in dt.Rows)
{
string no = dr[0].ToString();
if (item.No.Equals(no) == false)
continue;
isHave = true;
}
if (isHave == false)
{
item.Delete();
isChange = true;
}
}
//如果发生了变化,就重新查询.
if (isChange == true)
ens.Retrieve("GroupKey", "FoolFrmStyle", "Idx");
#endregion 检查是否有 多余 的标签,如果有就Delete 。
Default_App_Ext(ens, false);
return ens.ToJson();
}
/// <summary>
/// 应用
/// </summary>
/// <returns></returns>
public string Default_App()
{
string docs = "";
//查询出来所有的.
BP.Sys.GloVars ens = new GloVars();
ens.Retrieve("GroupKey", "FoolFrmStyle", "Idx");
return Default_App_Ext(ens, true);
}
/// <summary>
/// 生成
/// </summary>
/// <param name="ens"></param>
/// <param name="isApp"></param>
/// <returns></returns>
public string Default_App_Ext(GloVars ens, bool isApp = false)
{
string docs = "";
foreach (GloVar en in ens)
{
docs += GenerStyleDocs(en);
}
//保存.
if (isApp == true)
{
string pathDefault = BP.Difference.SystemConfig.PathOfDataUser + "Style/FoolFrmStyle/Default.css";
BP.DA.DataType.SaveAsFile(pathDefault, docs);
GloVar gen = new GloVar();
// gen.No = "Sys";
//gen.Nem
}
//保存一个临时文件,
string path = BP.Difference.SystemConfig.PathOfDataUser + "Style/FoolFrmStyle/DefaultPreview.css";
BP.DA.DataType.SaveAsFile(path, docs);
return "info@风格文件已经生成:" + path;
}
private string GenerStyleDocs(GloVar en)
{
string docs = "";
docs += "\t\n/* " + en.Name + " */";
docs += "\t\n." + en.No;
docs += "\t\n{ ";
AtPara ap = new AtPara(en.Val);
foreach (string item in ap.HisHT.Keys)
{
//特殊标记.
if (item.Contains("_Temp") == true)
continue;
docs += "\t\n " + item + ":" + ap.GetValStrByKey(item).Trim().Replace(" ", "") + " !important;";
//docs += "\t\n " + item + ":" + ap.GetValStrByKey(item).Trim().Replace(" ", "") + " ;";
}
docs += "\t\n }";
return docs;
}
#endregion 风格设计页面..
#region Template.htm 模版页面.
/// <summary>
/// 应用
/// </summary>
/// <returns></returns>
public string Template_App()
{
string str = Default_Selected_Ext(true);
return str;
}
/// <summary>
/// 删除文件.
/// </summary>
/// <returns></returns>
public string Default_Template_Delete()
{
string path = BP.Difference.SystemConfig.PathOfDataUser + "Style/TemplateFoolFrm/";
System.IO.File.Delete(path + this.Name);
return "删除成功.";
}
/// <summary>
/// 初始化数据
/// </summary>
/// <returns></returns>
public string Default_GenerTemplate()
{
string path = BP.Difference.SystemConfig.PathOfDataUser + "Style/TemplateFoolFrm/";
string[] fls = BP.Tools.BaseFileUtils.getFiles(path);
DataTable dt = new DataTable();
dt.Columns.Add("No");
dt.Columns.Add("Name");
foreach (string item in fls)
{
System.IO.FileInfo info = new System.IO.FileInfo(item);
DataRow dr = dt.NewRow();
string name = info.Name;
if (name.Contains("Default") == true)
continue;
if (name.Contains("Sys.xml") == true)
name = info.Name.Replace("Sys.xml", "[系统]");
else
name = info.Name.Replace(".xml", "[自定义]");
dr[1] = name;
dr[0] = info.Name;
dt.Rows.Add(dr);
}
return BP.Tools.Json.ToJson(dt);
}
/// <summary>
/// 模版选择.
/// </summary>
/// <returns></returns>
public string Default_Selected_Ext(bool isApp)
{
string filePath = BP.Difference.SystemConfig.PathOfDataUser + "Style/TemplateFoolFrm/" + this.Name;
DataSet ds = new DataSet();
ds.ReadXml(filePath);
DataTable dt = ds.Tables[0];
BP.Sys.GloVars ens = new GloVars();
int idx = 0;
foreach (DataRow dr in dt.Rows)
{
string key = dr["No"].ToString();
string name = dr["Name"].ToString();
string val = dr["Val"].ToString();
idx++;
BP.Sys.GloVar en = new GloVar();
en.No = key;
en.Name = name;
en.GroupKey = "FoolFrmStyle";
en.Val = val;
en.Idx = idx;
ens.AddEntity(en);
}
ens.Delete("GroupKey", "FoolFrmStyle");
foreach (BP.Sys.GloVar en in ens)
en.Insert();
//生成临时文件. 如果是 isApp==true ,就生成正式的风格文件.
Default_App_Ext(ens, isApp);
return "执行成功.";
}
#endregion 模版页面.
}
}