duheng
2025-01-17 89b928115c2309c6548b096b4d71c0dedbcaa2db
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
using DevExpress.XtraDiagram.Bars;
using HStation.WinFrmUI.Dict.Core;
using Yw;
 
namespace HStation.WinFrmUI.Dict
{
    public partial class DictManageMainPanel : DocumentPage
    {
        public DictManageMainPanel()
        {
            InitializeComponent();
            this.PageTitle.Caption = "字典管理";
            this.gridView1.SetNormalView();
            this.gridView1.RegistCustomDrawRowIndicator();
            this.PageTitle.HeaderSvgImage = this.svgImageCollection1[0];
            this.PageTitle.SvgImageSize = new Size(24, 24);
            this.dictGroupTreeListCtrl1.RloadEvent += DictTreeListCtrl1_RloadEvent;
        }
 
        private List<DictTypeViewModel> _allBindingList = null;
 
        private Yw.BLL.SysDictType _bll = null;
 
        private long _groupId;
 
        //初始化数据
        public override void InitialDataSource()
        {
            _bll = new Yw.BLL.SysDictType();
            _allBindingList = new List<DictTypeViewModel>();
            this.dictTypeViewModelBindingSource.DataSource = _allBindingList;
            this.dictTypeViewModelBindingSource.ResetBindings(false);
            this.dictGroupTreeListCtrl1.SetBindingData();
        }
 
        private async void DictTreeListCtrl1_RloadEvent(long groupId)
        {
            _groupId = groupId;
            var alllist = await _bll.GetByGroupID(groupId);
            _allBindingList.Clear();
            if (alllist != null)
            {
                foreach (var item in alllist)
                {
                    _allBindingList.Add(new DictTypeViewModel(item));
                }
            }
            this.dictTypeViewModelBindingSource.ResetBindings(false);
        }
 
        //添加字典类型
        private void BtnAdd_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            var dlg = new AddDictTypeDlg();
            var groupId = this.dictGroupTreeListCtrl1.GetCurrentGroupID();
            if (groupId <= 0)
            {
                MessageBoxHelper.ShowWarning("请先选择字典组!");
                return;
            }
            dlg.SetBindingData(groupId);
            dlg.ReloadDataEvent += async (rhs) =>
            {
                var id = await BLLFactory<Yw.BLL.SysDictType>.Instance.Insert(rhs);
                if (id > 0)
                {
                    rhs.ID = id;
                    _allBindingList.Add(new DictTypeViewModel(await _bll.GetByID(id)));
                    this.dictTypeViewModelBindingSource.ResetBindings(false);
                    return true;
                }
                return false;
            };
            dlg.ShowDialog();
        }
 
        //编辑
        private async void BtnEdit_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            var vm = this.gridView1.GetCurrentViewModel(_allBindingList);
            if (vm == null)
            {
                MessageBoxHelper.ShowWarning("请选择数据行!");
                return;
            }
            var dlg = new EditDictTypeDlg();
            var type = await BLLFactory<Yw.BLL.SysDictType>.Instance.GetByID(vm.ID);
            if (type == null)
                return;
 
            dlg.SetBindingData(type);
            dlg.ReloadDataEvent += async (rhs) =>
            {
                if (await _bll.Update(rhs))
                {
                    vm.Reset(rhs);
                    this.dictTypeViewModelBindingSource.ResetBindings(false);
                    return true;
                }
                return false;
            };
            dlg.ShowDialog();
        }
 
        //删除
        private async void BtnDelete_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            var currentVm = this.gridView1.GetCurrentViewModel(_allBindingList);
            if (currentVm == null)
            {
                MessageBoxHelper.ShowWarning("请选择数据行!");
                return;
            }
            if (MessageBoxHelper.IsClickOk($"确认删除数据行?", "提示"))
                return;
            var groupresult = await BLLFactory<Yw.BLL.SysDictType>.Instance.DeleteByID(currentVm.ID);
            if (groupresult)
            {
                _allBindingList.Remove(currentVm);
                this.dictTypeViewModelBindingSource.ResetBindings(false);
                TipFormHelper.ShowSucceed("删除成功!");
            }
            else
            {
                TipFormHelper.ShowSucceed("删除失败!");
                return;
            }
        }
 
        //属性选项
        private void gridView1_RowCellClick(object sender, DevExpress.XtraGrid.Views.Grid.RowCellClickEventArgs e)
        {
            if (_allBindingList == null || _allBindingList.Count < 1)
                return;
            var row = this.gridView1.GetCurrentViewModel(_allBindingList);
            if (row == null)
                return;
            if (e.Column == this.colDictValue)
            {
                var dlg = new SetDictDataDlg();
                dlg.SetBindingData(row.ID);
                dlg.ShowDialog();
            }
        }
 
        private void btnRefresh_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            DictTreeListCtrl1_RloadEvent(_groupId);
        }
    }
}