duheng
2025-02-17 26f45822a2a84af81e20ca543da98d3b822c5afd
WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/01-import/01-info/InputXhsProjectInfoWizardPage.cs
@@ -1,9 +1,6 @@
using DevExpress.XtraBars.Customization;
using Yw.CAL.HttpClient;
namespace HStation.WinFrmUI
namespace HStation.WinFrmUI
{
    public partial class InputXhsProjectInfoWizardPage : DevExpress.XtraEditors.XtraUserControl, Yw.WinFrmUI.IWizardPage<ImportXhsProjectViewModel>
    public partial class InputXhsProjectInfoWizardPage : DevExpress.XtraEditors.XtraUserControl, Yw.WinFrmUI.IWizardPageAsync<ImportXhsProjectViewModel>
    {
        public InputXhsProjectInfoWizardPage()
        {
@@ -16,30 +13,33 @@
        public event Action PageStateChangedEvent;
        private ImportXhsProjectViewModel _vm = null;//操作对象
        private bool _isInitialize = false;//是否初始化
        private Lazy<HStation.BLL.XhsProject> _bllProject = new(() => new HStation.BLL.XhsProject());//项目bll
        private Lazy<Yw.BLL.SysFlag> _bllFlag = new(() => new Yw.BLL.SysFlag());//标签bll
        public static Action AutoAddItem;
        public static Action DeleteItem;
        public static bool AllowImport = false;
        /// <summary>
        /// 初始化
        /// </summary>
        public async void InitialPage(ImportXhsProjectViewModel t)
        public async void InitialPage(ImportXhsProjectViewModel vm)
        {
            if (_isInitialize)
            if (vm == null)
            {
                return;
            }
            _vm = t;
            _isInitialize = true;
            var allFlagList = await _bllFlag.Value.GetBySysType(HStation.Xhs.DataType.XhsProject);
            if (allFlagList == null)
            _vm = vm;
            if (vm.Project == null)
            {
                return;
                vm.Project = new XhsProjectExtensionsVmo()
                {
                    SiteList = new List<XhsProjectSiteVmo>()
                    {
                        new()
                    }
                };
            }
            this.setFlagsEditCtrl1.SetBindingData(allFlagList.Select(x => x.Name).ToList(), null);
            this.txtName.EditValue = vm.Project.Name;
            this.txtCustomer.EditValue = vm.Project.Customer;
            var allFlagList = await BLLFactory<Yw.BLL.SysFlag>.Instance.GetBySysType(HStation.Xhs.DataType.XhsProject);
            this.setFlagsEditCtrl1.SetBindingData(allFlagList?.Select(x => x.Name).ToList(), vm.Project.Flags);
            this.txtTagNme.EditValue = vm.Project.TagName;
            this.txtDescription.EditValue = vm.Project.Description;
        }
        /// <summary>
@@ -60,7 +60,7 @@
        {
            get
            {
                return _isInitialize;
                return true;
            }
        }
@@ -69,7 +69,10 @@
        /// </summary>
        public bool AllowCancel
        {
            get { return true; }
            get
            {
                return true;
            }
        }
        /// <summary>
@@ -77,28 +80,32 @@
        /// </summary>
        public bool AllowComplete
        {
            get { return false; }
            get
            {
                return false;
            }
        }
        /// <summary>
        /// 能否上一步
        /// </summary>
        public bool CanPrev()
        public Task<bool> CanPrev()
        {
            return false;
            return Task.Run(() => false);
        }
        /// <summary>
        /// 能否下一步
        /// </summary>
        public bool CanNext()
        public async Task<bool> CanNext()
        {
            if (!_isInitialize)
            if (_vm == null)
            {
                return false;
            }
            this.dxErrorProvider1.ClearErrors();
            if (string.IsNullOrEmpty(this.txtName.Text.Trim()))
            var name = this.txtName.Text.Trim();
            if (string.IsNullOrEmpty(name))
            {
                this.dxErrorProvider1.SetError(this.txtName, "必填项");
                return false;
@@ -106,36 +113,49 @@
            var tagName = this.txtTagNme.Text.Trim();
            if (!string.IsNullOrEmpty(tagName))
            {
                if (_bllProject.Value.IsExistTagName(tagName).Result)
                if (_vm.Project.ID < 1)
                {
                    this.dxErrorProvider1.SetError(this.txtTagNme, "标记已存在");
                    return false;
                    if (await BLLFactory<HStation.BLL.XhsProject>.Instance.IsExistTagName(tagName))
                    {
                        this.dxErrorProvider1.SetError(this.txtTagNme, "标记已存在");
                        return false;
                    }
                }
                else
                {
                    if (await BLLFactory<HStation.BLL.XhsProject>.Instance.IsExistTagNameExceptID(tagName, _vm.Project.ID))
                    {
                        this.dxErrorProvider1.SetError(this.txtTagNme, "标记已存在");
                        return false;
                    }
                }
            }
            _vm.Name = this.txtName.Text.Trim();
            _vm.Customer = this.txtCustomer.Text.Trim();
            _vm.Flags = this.setFlagsEditCtrl1.SelectedFlagList;
            _vm.TagName = tagName;
            _vm.Description = this.txtDescription.Text.Trim();
            _vm.Project.Name = name;
            _vm.Project.Customer = this.txtCustomer.Text.Trim();
            _vm.Project.Flags = this.setFlagsEditCtrl1.SelectedFlagList;
            _vm.Project.TagName = tagName;
            _vm.Project.Description = this.txtDescription.Text.Trim();
            _vm.Project.SiteList.First().Name = name;
            return true;
        }
        /// <summary>
        /// 能否关闭
        /// </summary>
        public bool CanCancel()
        public Task<bool> CanCancel()
        {
            return true;
            return Task.Run(() => true);
        }
        /// <summary>
        /// 能否完成
        /// </summary>
        public bool CanComplete()
        public Task<bool> CanComplete()
        {
            return false;
            return Task.Run(() => false);
        }
        //选择文件
        private void btnEditSelectModelFile_ButtonClick(object sender, DevExpress.XtraEditors.Controls.ButtonPressedEventArgs e)
        {
            if (e.Button.Tag.ToString() == "Local")
@@ -156,7 +176,7 @@
            {
                var dlg = new SelectXhsProjectTransferFileDlg();
                dlg.SetBindingData();
                dlg.ReloadDataEvent += async (rhs) =>
                dlg.ReloadDataEvent += (rhs) =>
                {
                    this.btnEditSelectModelFile.EditValue = rhs.FileName;
                    _vm.IsLocal = false;
@@ -164,7 +184,6 @@
                };
                dlg.ShowDialog();
            }
        }