DeviceManager/DeviceRepairAndOptimization/Pages/page_PlanDialog.cs

201 lines
7.6 KiB
C#
Raw Normal View History

2024-05-28 14:36:38 +00:00
using DevExpress.XtraEditors;
using DevExpress.XtraGrid.Views.Tile;
using DeviceRepair.Models;
using DeviceRepairAndOptimization.Biz;
using DeviceRepairAndOptimization.Common;
using DeviceRepairAndOptimization.Pages.DriveMaintenance;
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Windows.Forms;
namespace DeviceRepairAndOptimization.Pages
{
public partial class page_PlanDialog : Form
{
public List<View_CurrentMonthPlanTips> Datas { get; set; }
public page_PlanDialog()
{
SetStyle(ControlStyles.UserPaint, true);
InitializeComponent();
}
/// <summary>
/// 程序加载
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void page_PlanDialog_Load(object sender, EventArgs e)
{
DataBind();
//if (Datas.IsNullOrZero())
// this.Close();
//gridControl1.DataSource = Datas;
}
void DataBind()
{
#region
APIResponseData apiResponseData = PlanManager.Instance.GetCurrentMonthPlanTips();
List<View_CurrentMonthPlanTips> lst = apiResponseData.ToDeserializeObject<List<View_CurrentMonthPlanTips>>();
Datas = lst;
#endregion
//如果tips数据为空则跳过
if (lst == null || lst.Count == 0)
this.DialogResult = DialogResult.OK;
gridControl1.DataSource = Datas;
}
private void btn_Ignore_Click(object sender, EventArgs e)
{
this.DialogResult = DialogResult.OK;
this.Close();
}
private void tableLayoutPanel1_Paint(object sender, PaintEventArgs e)
{
Rectangle tang = this.ClientRectangle; //获取窗口矩形 为了下面得到窗口的宽高
Graphics g3 = e.Graphics; //新建一个画布
Color c3 = Color.FromArgb(183, 183, 183); //声明一个 颜色
Pen p3 = new Pen(c3); //新建一支画笔
g3.SmoothingMode = SmoothingMode.HighQuality; //抗锯齿 使得线条变柔顺 在画斜线或者曲线的时候使用
g3.InterpolationMode = InterpolationMode.HighQualityBicubic; //使得画出来的效果高质量
g3.CompositingQuality = CompositingQuality.HighQuality; //高质量画图
g3.DrawLine(p3, 0, 0, 0, tang.Height - 1); //在00tang.Width - 1, 0这两点间画一条直线
g3.DrawLine(p3, 0, tang.Height - 1, tang.Width - 1,
tang.Height -
1); //注意必须减1 不然显示不出来 因为 如果假设窗口的高度是3像素 我们知道00位置代表 窗口最左上角的像素点 那么最左下角的像素点应该是02 而不是03 因为012 已经三个像素点了
g3.DrawLine(p3, tang.Width - 1, tang.Height - 1, tang.Width - 1, 0);
g3.DrawLine(p3, tang.Width - 1, 0, 0, 0);
//操作栏 上 边框线
g3.DrawLine(p3, tang.Width - 1, tableLayoutPanel1.Height - 60, 0, tableLayoutPanel1.Height - 60); //上
}
/// <summary>
/// 标题栏 - 鼠标拖动
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void lb_Caption_MouseMove(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
Win32ApiHelper.ReleaseCapture();
Win32ApiHelper.PostMessage((int)this.Handle, 0x0112, 0xf017, 0);
}
}
private void simpleButton1_Click(object sender, EventArgs e)
{
DialogResult = DialogResult.OK;
this.Close();
}
private void tileView1_ContextButtonClick(object sender, DevExpress.Utils.ContextItemClickEventArgs e)
{
switch (e.Item.Name)
{
//忽略一条数据
case "btn_Igore":
ItemIgore((TileViewItem)e.DataItem);
break;
//保养一条数据
case "btn_Maintenance":
ItemMaintenence((TileViewItem)e.DataItem);
break;
default:
break;
}
}
/// <summary>
/// 忽略该条保修集合
/// </summary>
/// <param name="item"></param>
void ItemIgore(TileViewItem item)
{
int handle = item.RowHandle;
View_CurrentMonthPlanTips dmp = (View_CurrentMonthPlanTips)tileView1.GetRow(handle);
Datas.Remove(dmp);
if (Datas.Count == 0)
{
DialogResult = DialogResult.OK;
this.Close();
}
tileView1.RefreshData();
gridControl1.RefreshDataSource();
}
/// <summary>
/// 保养一条数据
/// </summary>
/// <param name="item"></param>
void ItemMaintenence(TileViewItem item)
{
try
{
if (!GlobalInfo.HasRole("BIZ_MAINTENANCE_ADD"))
{
XtraMessageBoxHelper.Error($"当前账号缺少此操作的权限");
return;
}
int handle = item.RowHandle;
View_CurrentMonthPlanTips dmp = (View_CurrentMonthPlanTips)tileView1.GetRow(handle);
if (dmp != null)
{
this.Hide();
//此处应通过webpi下载xls逻辑
APIResponseData apiResponseData = DeviceManager.Instance.GetModelByEquipmentID(dmp.EquipmentID);
if (!apiResponseData.IsSuccess)
throw new Exception(apiResponseData.Message);
DeviceInformationInfo entity = apiResponseData.ToDeserializeObject<DeviceInformationInfo>();
if (entity == null || entity.MaintenanceFormVersion == 0)
{
XtraMessageBox.Show("该设备未绑定点检表,请先绑定点检表。", "出错", MessageBoxButtons.OK, MessageBoxIcon.Error);
this.Show();
return;
}
page_DriveMaintenance view = new page_DriveMaintenance(entity, dmp.AutoID);
DialogResult dr = view.ShowDialog();
if (dr == DialogResult.OK)
{
ItemIgore(item);
XtraMessageBoxHelper.Info("操作成功!");
2024-06-10 17:33:11 +00:00
foreach (Form form in Application.OpenForms)
{
if (form.GetType() == typeof(page_MaintenancePlan))
(new Action(((page_MaintenancePlan)form).InitializeGridData)).Invoke();
}
2024-05-28 14:36:38 +00:00
}
else if (dr == DialogResult.Abort)
{
XtraMessageBoxHelper.Info(view.apiResponseData.Message);
}
this.Show();
}
else
{
XtraMessageBox.Show("未能获取到设备信息,请重试。", "出错", MessageBoxButtons.OK, MessageBoxIcon.Error);
this.Show();
}
}
catch (Exception ex)
{
XtraMessageBox.Show(ex.Message, "出错", MessageBoxButtons.OK, MessageBoxIcon.Error);
this.Show();
}
}
}
}