using Newtonsoft.Json.Linq; using ryCommon; using ryControls.Controls; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.Windows.Media; using System.Xml.Linq; using TheArtOfDev.HtmlRenderer.WinForms; namespace SuperDesign.Tools { public partial class FrmUpdateLog : Form { public FrmUpdateLog() { InitializeComponent(); } public void ShowLog(string LogJson) { try { JArray jarr = JArray.Parse(LogJson); for (int i = 0; i < jarr.Count; i++) { var item = jarr[i]; var ProjectName = item.GetJsonValue("ProjectChsName", ""); if(ProjectName.Length==0) { ProjectName = item.GetJsonValue("ProjectName", ""); } TabPage tab = new TabPage() { Text = ProjectName }; Label label = new Label { Parent = tab, Location = new Point(1, 4), AutoSize = true, Text = "版本号:" + item.GetJsonValue("VerStr", "") }; var LogTime = item.GetJsonValue("LogTime", ""); var now_jarr = LogTime.Length==0? new JArray(): JArray.Parse(LogTime); Dictionary dict = new Dictionary(); for (int j = 0; j < now_jarr.Count; j++) { var item_jarr = now_jarr[j]; dict[item_jarr.GetJsonValue("text", "")] = item_jarr.GetJsonValue("time", 0L); } var LogText_lines = item.GetJsonValue("LogText", "").Replace("\r", "\n").Replace("\n\n", "\n").Split('\n'); var LogText = ""; for (int l = 0; l < LogText_lines.Length; l++) { if (LogText_lines[l].Length == 0) { continue; } if (LogText.Length > 0) { LogText += "
"; } var line = ""; var log_line_n1 = ""; var n1_color = ""; var log_line_n2 = LogText_lines[l]; if(log_line_n2.StartsWith("*.[新增]")) { log_line_n1 = "*.[新增]"; n1_color = "blue"; log_line_n2 = log_line_n2.Substring(log_line_n1.Length); } else if (log_line_n2.StartsWith("*.[改进]")) { log_line_n1 = "*.[改进]"; n1_color = "green"; log_line_n2 = log_line_n2.Substring(log_line_n1.Length); } else if (log_line_n2.StartsWith("*.[修复]")) { log_line_n1 = "*.[修复]"; n1_color = "red"; log_line_n2 = log_line_n2.Substring(log_line_n1.Length); } line = (log_line_n1.Length==0?"":(""+log_line_n1+""))+ System.Web.HttpUtility.HtmlEncode(log_line_n2); if (dict.ContainsKey(LogText_lines[l])) { var dt = dict[LogText_lines[l]].ToDateTime(); var dt_str= dt.ToString("yyyy-MM-dd HH:mm"); if(dt.Date==DateTime.Now.Date) { dt_str = "今天 "+ dt.ToString("HH:mm"); } else if (dt.Date.AddDays(1) == DateTime.Now.Date) { dt_str = "昨天 " + dt.ToString("HH:mm"); } else { var index = (int)DateTime.Now.DayOfWeek; index = index == 0 ? 7 : index; //当前周的范围 DateTime retStartDay = DateTime.Now.Date.AddDays(-(index - 1)); if(dt >= retStartDay && dt < retStartDay.AddDays(7)) { dt_str = "本" + dt.ToString("ddd HH:mm"); } } line += "" + System.Web.HttpUtility.HtmlEncode("=>" + dt_str) + ""; } if(line.StartsWith("#### ")) { line ="
"+ line.Substring(5) + ""; } LogText += line; } HtmlPanel htmlPanel = new HtmlPanel { Parent = tab, Font = new Font("微软雅黑", 21), Dock = DockStyle.Fill, Location = new Point(label.Left, label.Top + label.Height + 4), Size = new Size(tab.ClientSize.Width, tab.ClientSize.Height - (label.Top + label.Height + 4)), Anchor = AnchorStyles.Left | AnchorStyles.Top | AnchorStyles.Right | AnchorStyles.Bottom, BaseStylesheet = "body { font:11pt Consolas }", Text = "" + LogText + "" }; //RichTextBox2 rich = new RichTextBox2 //{ // Parent = tab, // Dock = DockStyle.Fill, // Font = new Font("微软雅黑", 11), // ReadOnly=true, // BackColor=Color.White, // ScrollBars= RichTextBoxScrollBars.Both, // WordWrap=false, // Location = new Point(label.Left, label.Top + label.Height + 4), // Size = new Size(tab.ClientSize.Width, tab.ClientSize.Height - (label.Top + label.Height + 4)), // Anchor = AnchorStyles.Left | AnchorStyles.Top | AnchorStyles.Right | AnchorStyles.Bottom, // Text= LogText //}; tabControl1.TabPages.Add(tab); } } catch { } } } }