SuperDesign/Source/开发辅助工具/Tools/UpLog/FrmGroupSelected.cs
zilinsoft 1f8c54fe38 - *.[改进]项目支持自动打包功能。
### RySmartEditor    V1.0.2501.2701
- *.[改进]FTP上传时限制300毫秒内只能刷新一次UI进度。
### SuperDesign    V3.0.2501.2701
- *.[新增]新增支持在线升级功能。
#### 项目功能->项目管理
- *.[新增]FTP上传文件列表和打包文件列表支持在软件里直接编辑。
- *.[改进]更新dll版本将比对版本号,只更新版本号更新或者更新日期更新的dll。
#### 项目功能->更新日志
- *.[新增]新增支持自动记录过的分组信息,然后可以进行选择快速插入。
- *.[新增]记录使用过的项目信息到总数据库,以方便总览。
- *.[改进]右键插入日志时直接对富文本框进行编辑,而不是替换内容,从而具备撤销功能。
- *.[改进]改进MD日志输出的样式设计。
- *.[修复]修复《确认日志覆盖》窗口里的按钮,随着窗口大小变化,按钮会错乱的BUG。
- *.[修复]修复双击日志列表显示日志时,针对本周的时间显示不正确的BUG。
- *.[修复]修复右键新增日志时,如果没有分组,插入的行可能不正确的BUG。
- *.[修复]修复设为开发日志后,鼠标指针变到文本开头的问题。
#### 网页抓取工具
- *.[新增]新增多个常用UA。
- *.[新增]切换Url时如果存在Cookie和Header时,则提示是否清空。
- *.[新增]保存记录时新增支持保存UA。
- *.[新增]Url列表支持图标展示。
2025-01-27 15:41:54 +08:00

129 lines
4.7 KiB
C#

using Newtonsoft.Json.Linq;
using ryCommon;
using ryCommonDb;
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;
namespace SuperDesign.Tools.UpLog
{
public partial class FrmGroupSelected : Form
{
public FrmGroupSelected()
{
InitializeComponent();
OlvGroup.AspectGetter = delegate (object x) { return ((GroupInfo)x).GroupName; };
}
public string ProjectName { get; set; }
public string DbPath { get; set; }
public string SelectedGroupName { get; private set; } = "";
class GroupInfo
{
public string GroupName { get; set; }
public long Time { get; set; }
}
private void ObjectListView1_MouseDoubleClick(object sender, MouseEventArgs e)
{
if (objectListView1.SelectedObject == null) { return; }
var item = (GroupInfo)objectListView1.SelectedObject;
SelectedGroupName = item.GroupName;
DialogResult = DialogResult.OK;
}
private void FrmGroupSelected_Load(object sender, EventArgs e)
{
IDbInterface db = new SQLiteDataProvider();
if (db.ConnDb(DbPath) == 1)
{
JObject jo_group;
try
{
var ds_group = db.ReadData("select * from Settings where Name='GroupList'");
if (ds_group.HaveData())
{
jo_group = JObject.Parse(ds_group.GetRow(0)["Value"].ToString());
}
else
{
jo_group = new JObject();
}
ds_group?.Dispose();
}
catch { jo_group = new JObject(); }
var jarr_group = jo_group.GetJsonValue("group_" +ProjectName, new JArray());
List<GroupInfo> list = new List<GroupInfo>();
for (int i = 0; i < jarr_group.Count; i++)
{
list.Add(new GroupInfo()
{
GroupName = jarr_group[i].GetJsonValue("text",""),
Time = jarr_group[i].GetJsonValue("time", 0L),
});
}
objectListView1.AddObjects(list);
}
db.Free();
}
private void BtnDel_Click(object sender, EventArgs e)
{
if (objectListView1.SelectedObject == null) {
MessageBox.Show("请选择分组。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
if (MessageBox.Show("是否确认要删除该分组?", "询问", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2) != DialogResult.OK)
{
return;
}
var item = (GroupInfo)objectListView1.SelectedObject;
IDbInterface db = new SQLiteDataProvider();
if (db.ConnDb(DbPath) == 1)
{
JObject jo_group;
try
{
var ds_group = db.ReadData("select * from Settings where Name='GroupList'");
if (ds_group.HaveData())
{
jo_group = JObject.Parse(ds_group.GetRow(0)["Value"].ToString());
}
else
{
jo_group = new JObject();
}
ds_group?.Dispose();
}
catch { jo_group = new JObject(); }
var jarr_group = jo_group.GetJsonValue("group_" + ProjectName, new JArray());
for (int i = 0; i < jarr_group.Count; i++)
{
if(jarr_group[i].GetJsonValue("text", "")==item.GroupName)
{
jarr_group[i].Remove();
objectListView1.RemoveObject(item);
break;
}
}
jo_group["group_" + ProjectName] = jarr_group;
RyQuickSQL MySQL_Setting = new RyQuickSQL("Settings");
MySQL_Setting.AddField("Name", "GroupList");
MySQL_Setting.AddField("Value", jo_group.ToString());
MySQL_Setting.AddField("EditTime", DateTime.Now);
if (db.Update(MySQL_Setting, "Name=@Name") == 0)
{
MySQL_Setting.AddField("AddTime", DateTime.Now);
db.Insert(MySQL_Setting);
}
}
db.Free();
}
}
}