using AntDesign; using AntDesign.ProLayout; using AntDesign.TableModels; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Components; using Microsoft.AspNetCore.Components.Web; using System; using System.Collections.Generic; using System.Linq; using System.Text.Json; using System.Threading.Tasks; using wispro.sp.entity; using wispro.sp.share; using wispro.sp.web.Services; namespace wispro.sp.web.Pages.AppCase { [Authorize] public partial class MyCaselist { const string strAgentFeedbackMemo = "AgentFeedbackMemo"; const string strDoItemCoefficient = "DoItemCoefficient"; const string strReturnCasseNo = "ReturnCasseNo"; const string strCaseCoefficient = "CaseCoefficient"; const string strWordCount = "WordCount"; public TableFilter[] CaseCoeFilters = new TableFilter[] { new() { Text = "S", Value = "S" }, new() { Text = "A", Value = "A" }, new() { Text = "B", Value = "B" }, new() { Text = "C", Value = "C" }, new() { Text = "D", Value = "D" } }; class Reason { public string Value { get; set; } public string Name { get; set; } } List _Reasons = new List() { new Reason(){Name="PCT首次英文案",Value="PCT首次英文案"}, new Reason(){Name="我方转格式、复核",Value="我方转格式、复核"}, new Reason(){Name="台湾案转大陆案",Value="台湾案转大陆案"}, new Reason(){Name="大陆案转台湾案",Value="大陆案转台湾案"}, new Reason(){Name="同套大陆+台湾",Value="同套大陆+台湾"}, new Reason(){Name="不请款",Value="不请款"}, new Reason(){Name="撤回后重新递交",Value="撤回后重新递交"}, new Reason(){Name="发文后客户取消申请",Value="发文后客户取消申请"}, new Reason(){Name="发文后客户原因取消申请,系统结案",Value="发文后客户原因取消申请,系统结案"}, new Reason(){Name="改权",Value="改权"}, new Reason(){Name="改权+改说明书",Value="改权+改说明书"}, new Reason(){Name="客户不进行答辩",Value="客户不进行答辩"}, new Reason(){Name="客户提供答辩点,撰写英文报导函",Value="客户提供答辩点,撰写英文报导函"}, new Reason(){Name="客户未提供答辩点,撰写英文报导函",Value="客户未提供答辩点,撰写英文报导函辩"}, new Reason(){Name="内-外",Value="内-外"}, new Reason(){Name="外-内",Value="外-内"}, new Reason(){Name="外-内首次申请",Value="外-内首次申请"}, new Reason(){Name="请款",Value="请款"}, new Reason(){Name="涉外OA不答辩,发报导函结案",Value="涉外OA不答辩,发报导函结案"}, new Reason(){Name="涉外实质改权",Value="涉外实质改权"}, new Reason(){Name="首次中文案",Value="首次中文案"}, new Reason(){Name="我方转格式、复核",Value="我方转格式、复核"}, new Reason(){Name="外所/他人首次转入OA",Value="外所/他人首次转入OA"}, new Reason(){Name="我方代交",Value="我方代交"}, new Reason(){Name="转格式",Value="转格式"}, new Reason(){Name="撰写中客户取消申请",Value="撰写中客户取消申请"}, new Reason(){Name="中-英",Value="中-英"}, new Reason(){Name="英-中",Value="英-中"}, new Reason(){Name="英-德",Value="英-德"}, new Reason(){Name="已算绩效",Value="已算绩效"} }; private List _Datas; private List MyStatistics; IEnumerable selectedItems= new List(); private CalMonth HandlingCalMonth; int _pageIndex = 1; int _pageSize = 10; int _total; bool _loading = false; PerformanceItem EditingItem = null; bool _visible = false; bool _isAdd = false; List tabList = new List() { new TabPaneItem(){ Key ="myList", Tab ="本月待确认绩效" }, new TabPaneItem(){ Key ="myAll", Tab ="往期已计算绩效"}, }; [Inject] public PerformanceItemServices _ItemService { get; set; } [Inject] public MessageService _message { get; set; } [Inject] protected NavigationManager NavigationManager { get; set; } [Inject] protected IUserService _userService { get; set; } [Inject] protected CalMonthServices _CalMonthService { get; set; } private bool isFirstInit = true; private Table table; protected async override Task OnInitializedAsync() { if (isFirstInit) { _loading = true; await RefreshMyStatistics(); _Datas = new List();// data.Results; _total = 0;//data.TotalCount; _loading = false; } isFirstInit = false; StateHasChanged(); //Console.WriteLine($"OnInitializedAsync:[tota:{_total}\tPageIndex:{_pageIndex}\tPageSize:{_pageSize}]"); } private async Task RefreshMyStatistics() { var HandlingCalMonth = await _CalMonthService.GetHandlingMonth(); MyStatistics = await _ItemService.CalMyStatistics(HandlingCalMonth.Year, HandlingCalMonth.Month, _userService.CurrentUser.Userid.Value); } private string GetStatistics(string strType) { try { if (strType != "ALL") { var tem = MyStatistics.Where(s => s.jxType == strType).FirstOrDefault(); if (tem != null) { return (tem.totalBasePoint.HasValue ? tem.totalBasePoint.Value.ToString("0.00") : ""); } else { return ""; } } else { return MyStatistics.Select(s => s.totalBasePoint.Value).Sum().ToString("0.00"); } } catch { return ""; } } private int serialNumber(int pageIndex, int pageSize, int id) { int iIndex = 0; foreach (PerformanceItem sf in _Datas) { iIndex++; if (sf.Id == id) { break; } } return (pageIndex - 1) * pageSize + iIndex; } private async Task HandleTableChange(QueryModel queryModel) { Console.WriteLine(JsonSerializer.Serialize(queryModel)); if (_CurrentKey == tabList[0].Key) { _loading = true; var data = await _ItemService.Query(_userService.CurrentUser.Userid.Value, jxType.doing, queryModel); _Datas = data.Results; _total = data.TotalCount; _loading = false; StateHasChanged(); } else { _loading = true; var data = await _ItemService.Query(_userService.CurrentUser.Userid.Value, jxType.finished, queryModel); _Datas = data.Results; _total = data.TotalCount; _loading = false; StateHasChanged(); } } private void OnsubShensu(PerformanceItem Item) { EditingItem = Item; _visible = true; //return new EventCallback(); } bool _ShowJXModal = false; private void OnJXCal(PerformanceItem Item) { EditingItem = Item; _ShowJXModal = true; } #region 申诉窗口事件 private void HandleOk(MouseEventArgs e) { Console.WriteLine(e); _visible = false; } private void HandleCancel(MouseEventArgs e) { Console.WriteLine(e); _visible = false; } #endregion #region 绩效计算窗口事件 private async Task HandleOk1(MouseEventArgs e) { _ShowJXModal = false; var respone = await _ItemService.SaveFieldChange(EditingItem.Id, $"{strAgentFeedbackMemo}|{strWordCount}", $"{_calType.AgentMemo}|{_calType.wordCount}"); var HandlingCalMonth = await _CalMonthService.GetHandlingMonth(); MyStatistics = await _ItemService.CalMyStatistics(HandlingCalMonth.Year, HandlingCalMonth.Month, _userService.CurrentUser.Userid.Value); EditingItem.AgentFeedbackMemo = _calType.AgentMemo; StateHasChanged(); } private void HandleCancel1(MouseEventArgs e) { Console.WriteLine(e); _ShowJXModal = false; } #endregion public shensuType[] AvatarMenuItems { get; set; } = new shensuType[] { new() { ChangeField = "核稿人", Name = "核稿人申诉"}, new() { ChangeField = "处理人", Name = "处理人申诉"}, new() { ChangeField = "案件系数", Name = "案件系数申诉"}, new() { ChangeField = "处理事项系数", Name = "处理事项系数申诉"}, new() { Name = "严重超期说明"} }; private shensuType _SelectedItem; private void OnSelectedItemChangedHandler(shensuType value) { _SelectedItem = value; //StaffGradeIdChanged.InvokeAsync(_SelectedItem.Id); } #region 文件上传控件设定 List fileList = new List { new UploadFileItem { Id = "1", FileName = "客户往来邮件1.jpg", Url = "#", State = UploadState.Success }, new UploadFileItem { Id = "2", FileName = "与客户微信聊天图片.jpg", Url = "#", State = UploadState.Success }, new UploadFileItem { Id = "3", FileName = "附件.docx", Url = "#", State = UploadState.Success } }; Dictionary attrs = new Dictionary { {"Action", "#" }, {"Name", "files" }, {"Multiple", true } }; void HandleChange(UploadInfo fileinfo) { //if (fileList.Count > 5) //{ // fileList.RemoveRange(0, fileList.Count - 2); //} //fileList.Where(file => file.State == UploadState.Success && !string.IsNullOrWhiteSpace(file.Response)).ForEach(file => { // var result = file.GetResponse(); // file.Url = result.url; //}); } public class ResponseModel { public string name { get; set; } public string status { get; set; } public string url { get; set; } public string thumbUrl { get; set; } } #endregion CalType _calType = new CalType(); shenshou _shenshou = new shenshou(); List Reviewers = new List() { new Staff(){Id =1,Name ="钟子敏"}, new Staff(){Id =2,Name ="邢丽霞"}, new Staff(){Id =3,Name ="李丽"}, new Staff(){Id =4,Name ="贾凤涛"}, }; #region 特殊绩效字段选择框变更时处理代码 void SelectChanged(Reason value) { if (!_loading && EditingItem != null) { var respone = _ItemService.SaveFieldChange(EditingItem.Id, strAgentFeedbackMemo, EditingItem.AgentFeedbackMemo); EditingItem = null; RefreshMyStatistics(); table.ReloadData(); } } void ClearSelect(int itemId) { Console.WriteLine($"ClearSelcet:{itemId}"); var respone = _ItemService.SaveFieldChange(itemId, strAgentFeedbackMemo,""); EditingItem = null; RefreshMyStatistics(); table.ReloadData(); } #endregion Dictionary OnRow(RowData row) { Dictionary ret = new Dictionary(); ret.Add("onclick", ((Action)delegate { EditingItem = row.Data; })); return ret; } void OnFocus(PerformanceItem item) { EditingItem = item; } string _CurrentKey = "myList"; void OnTabChange(string key) { _CurrentKey = key; table.ReloadData(); StateHasChanged(); } } }