From cead786fbe7e63100b27b5d7be63645b347df93e Mon Sep 17 00:00:00 2001
From: "506583276@qq.com" <506583276@qq.com>
Date: Thu, 25 May 2023 13:30:14 +0800
Subject: [PATCH] 1
---
BBWY.Client/APIServices/PackTaskService.cs | 48 ++--
BBWY.Client/BBWYAppSettings.json | 4 +-
.../PackTask/TotalPackUserSalaryResponse.cs | 72 ++++++
BBWY.Client/ViewModels/MainViewModel.cs | 24 +-
.../PackTask/PackTaskTotalViewModel.cs | 1 -
.../TotalPackTask/PackUserSalaryViewModel.cs | 185 ++++++++++++++
BBWY.Client/ViewModels/ViewModelLocator.cs | 11 +
.../TotalPackTask/PackUserSalaryControl.xaml | 10 +
.../PackUserSalaryControl.xaml.cs | 234 ++++++++++++++++++
.../TotalPackTask/PackUserSalaryList.xaml | 170 +++++++++++++
.../TotalPackTask/PackUserSalaryList.xaml.cs | 109 ++++++++
11 files changed, 825 insertions(+), 43 deletions(-)
create mode 100644 BBWY.Client/Models/APIModel/Response/PackTask/TotalPackUserSalaryResponse.cs
create mode 100644 BBWY.Client/ViewModels/TotalPackTask/PackUserSalaryViewModel.cs
create mode 100644 BBWY.Client/Views/TotalPackTask/PackUserSalaryControl.xaml
create mode 100644 BBWY.Client/Views/TotalPackTask/PackUserSalaryControl.xaml.cs
create mode 100644 BBWY.Client/Views/TotalPackTask/PackUserSalaryList.xaml
create mode 100644 BBWY.Client/Views/TotalPackTask/PackUserSalaryList.xaml.cs
diff --git a/BBWY.Client/APIServices/PackTaskService.cs b/BBWY.Client/APIServices/PackTaskService.cs
index 2ef1068c..8ec75749 100644
--- a/BBWY.Client/APIServices/PackTaskService.cs
+++ b/BBWY.Client/APIServices/PackTaskService.cs
@@ -276,6 +276,24 @@ namespace BBWY.Client.APIServices
}, null, HttpMethod.Post);
}
+ ///
+ /// 取消拳探任务
+ ///
+ ///
+ ///
+ public ApiResponse TotalPackUserSalary(string PackUserName = null, DateTime? StartTime = null, DateTime? EndTime=null, int PageIndex=1
+ , int PageSize=10)
+ {
+ return SendRequest(globalContext.QKApiHost, "api/PackTask/TotalPackUserSalary", new
+ {
+ PackUserName,
+ StartTime,
+ EndTime,
+ PageIndex,
+ PageSize
+ }, null, HttpMethod.Post);
+ }
+
}
@@ -454,35 +472,7 @@ namespace BBWY.Client.APIServices
public ServiceType ServiceType { get; set; }
}
- //public class IncreateMemberModel
- //{
- // public decimal Price { get; set; }
-
- // public string UserId { get; set; }
- // ///
- // /// 增值服务Id
- // ///
- // public long IncreateId { get; set; }
- // ///
- // /// 数量
- // ///
- // public int IncreateCount { get; set; }
-
- //}
- //public class ProcessMemberModel
- //{
- // public decimal Price { get; set; }
- // public string UserId { get; set; }
- // ///
- // /// 工序服务Id
- // ///
- // public long ProcessId { get; set; }
-
- // ///
- // /// 工序服务数量
- // ///
- // public int ProcessCount { get; set; }
- //}
+
diff --git a/BBWY.Client/BBWYAppSettings.json b/BBWY.Client/BBWYAppSettings.json
index ef760e08..34888905 100644
--- a/BBWY.Client/BBWYAppSettings.json
+++ b/BBWY.Client/BBWYAppSettings.json
@@ -4,6 +4,6 @@
"MDSApiHost": "http://mdsapi.qiyue666.com",
"JOSApiHost": "",
"1688ApiHost": "",
- // "QKApiHost": "http://localhost:8080"
- "QKApiHost": "http://qiku.qiyue666.com"
+ "QKApiHost": "http://localhost:8080"
+ // "QKApiHost": "http://qiku.qiyue666.com"
}
\ No newline at end of file
diff --git a/BBWY.Client/Models/APIModel/Response/PackTask/TotalPackUserSalaryResponse.cs b/BBWY.Client/Models/APIModel/Response/PackTask/TotalPackUserSalaryResponse.cs
new file mode 100644
index 00000000..5c8f2a89
--- /dev/null
+++ b/BBWY.Client/Models/APIModel/Response/PackTask/TotalPackUserSalaryResponse.cs
@@ -0,0 +1,72 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace BBWY.Client.Models.APIModel
+{
+ public class TotalPackUserSalaryResponse
+ {
+ ///
+ /// 数量
+ ///
+ public int TotalCount { get; set; }
+
+ ///
+ /// 明细
+ ///
+ public List PackUserSalaries { get; set; }
+ }
+ ///
+ /// 打包人日薪
+ ///
+ public class PackUserSalary
+ {
+ ///
+ /// 日期
+ ///
+ public DateTime Date { get; set; }
+
+ ///
+ /// 花名
+ ///
+ public string PackUserName { get; set; }
+
+ ///
+ /// 总收益
+ ///
+ public decimal TotalIncome { get; set; }
+
+ ///
+ /// 收益项目明细
+ ///
+ public List IncomeItems { get; set; }
+ }
+
+ ///
+ /// 收益项目
+ ///
+ public class IncomeItem
+ {
+ ///
+ /// 项目Id
+ ///
+ public long ServiceId { get; set; }
+ ///
+ /// 项目名称
+ ///
+ public string Name { get; set; }
+ ///
+ /// 单价价格
+ ///
+ public decimal Price { get; set; }
+ ///
+ /// 数量
+ ///
+ public int ServiceCount { get; set; }
+
+ ///
+ /// 总计
+ ///
+ public decimal TotalPrice { get; set; }
+ }
+}
diff --git a/BBWY.Client/ViewModels/MainViewModel.cs b/BBWY.Client/ViewModels/MainViewModel.cs
index 0fc9c5ad..c36d866a 100644
--- a/BBWY.Client/ViewModels/MainViewModel.cs
+++ b/BBWY.Client/ViewModels/MainViewModel.cs
@@ -92,8 +92,8 @@ namespace BBWY.Client.ViewModels
{
this.w2m = w2m;
this.managerDepartment = new List() { "董事办", "财务部", "技术部", "总经办" };
- this.packDepartment = new List() { "打包组" ,"发货组" , "仓储部" };
-
+ this.packDepartment = new List() { "打包组", "发货组", "仓储部" };
+
this.httpClientFactory = httpClientFactory;
this.mdsApiService = mdsApiService;
@@ -135,7 +135,8 @@ namespace BBWY.Client.ViewModels
{
new MenuModel(){ Name="打包任务",Url="/Views/PackTask/WareHouseList.xaml" },
new MenuModel(){ Name="耗材管理",Url="/Views/PackTask/Consumable.xaml" },
- new MenuModel(){ Name="账单管理",Url="/Views/PackTask/PackTaskTotal.xaml" }
+ new MenuModel(){ Name="账单管理",Url="/Views/PackTask/PackTaskTotal.xaml" },
+ new MenuModel(){ Name="收益账单",Url="/Views/TotalPackTask/PackUserSalaryList.xaml" }
}
});
@@ -199,7 +200,7 @@ namespace BBWY.Client.ViewModels
}
});
-
+
});
if (managerDepartment.Contains(GlobalContext.User.TeamName) || managerDepartment.Any(m => GlobalContext.User.SonDepartmentNames.Contains(m)))
@@ -212,10 +213,11 @@ namespace BBWY.Client.ViewModels
Name = "齐库仓库端",
ChildList = new List()
{
- new MenuModel(){ Name="打包任务",Url="/Views/PackTask/WareHouseList.xaml" },
- new MenuModel(){ Name="耗材管理",Url="/Views/PackTask/Consumable.xaml" },
- new MenuModel(){ Name="账单管理",Url="/Views/PackTask/PackTaskTotal.xaml" }
- }
+ new MenuModel(){ Name="打包任务",Url="/Views/PackTask/WareHouseList.xaml" },
+ new MenuModel(){ Name="耗材管理",Url="/Views/PackTask/Consumable.xaml" },
+ new MenuModel(){ Name="账单管理",Url="/Views/PackTask/PackTaskTotal.xaml" },
+ new MenuModel(){ Name="收益账单",Url="/Views/TotalPackTask/PackUserSalaryList.xaml" }
+ }
});
});
@@ -272,7 +274,7 @@ namespace BBWY.Client.ViewModels
CreateMenu();
-
+
IList departmentList = null;
if (GlobalContext.User.TeamName == "刷单组" || this.packDepartment.Contains(GlobalContext.User.TeamName) ||
@@ -349,7 +351,7 @@ namespace BBWY.Client.ViewModels
if (this.packDepartment.Contains(GlobalContext.User.TeamName))
return;
-
+
if (GlobalContext.User.TeamName == "刷单组")
return;
@@ -391,7 +393,7 @@ namespace BBWY.Client.ViewModels
vm.WareManager.Refresh();
if (vm.IsCreateWareStock)
vm.WareStock.Refresh();
- if(vm.IsCreateBatchPurchaseOrderList)
+ if (vm.IsCreateBatchPurchaseOrderList)
vm.BatchPurchaseOrderListVM.Refresh();
try
{
diff --git a/BBWY.Client/ViewModels/PackTask/PackTaskTotalViewModel.cs b/BBWY.Client/ViewModels/PackTask/PackTaskTotalViewModel.cs
index af420084..f40b43c8 100644
--- a/BBWY.Client/ViewModels/PackTask/PackTaskTotalViewModel.cs
+++ b/BBWY.Client/ViewModels/PackTask/PackTaskTotalViewModel.cs
@@ -24,7 +24,6 @@ namespace BBWY.Client.ViewModels.PackTask
public class PackTaskTotalViewModel : BaseVM, IDenpendency
{
private readonly PackTaskService packTaskService;
-
private bool isLoading;
private DateTime startDate;
private DateTime endDate;
diff --git a/BBWY.Client/ViewModels/TotalPackTask/PackUserSalaryViewModel.cs b/BBWY.Client/ViewModels/TotalPackTask/PackUserSalaryViewModel.cs
new file mode 100644
index 00000000..98b91264
--- /dev/null
+++ b/BBWY.Client/ViewModels/TotalPackTask/PackUserSalaryViewModel.cs
@@ -0,0 +1,185 @@
+using BBWY.Client.APIServices;
+using BBWY.Client.Models.APIModel;
+using BBWY.Client.Models.PackTask;
+using BBWY.Common.Models;
+using BBWY.Controls;
+using GalaSoft.MvvmLight.Command;
+using Microsoft.Win32;
+using NPOI.SS.Formula.Functions;
+using System;
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Controls;
+using System.Windows.Input;
+
+namespace BBWY.Client.ViewModels.TotalPackTask
+{
+ public class PackUserSalaryViewModel : BaseVM, IDenpendency
+ {
+ public PackTaskService packTaskService;
+ private bool isLoading;
+ private DateTime startTime;
+ private DateTime endTime;
+ private int pageIndex = 1;
+ private int pageSize = 20;
+ private int orderCount;
+ private List packUserSalaryList;
+
+ private string searchUserName;
+
+
+ public string SearchUserName { get => searchUserName; set { Set(ref searchUserName, value); } }
+ public List PackUserSalaryList { get => packUserSalaryList; set { Set(ref packUserSalaryList, value); } }
+
+ public bool IsLoading { get => isLoading; set { Set(ref isLoading, value); } }
+
+ public DateTime StartTime { get => startTime; set { Set(ref startTime, value); } }
+
+ public DateTime EndTime { get => endTime; set { Set(ref endTime, value); } }
+
+ public int PageIndex { get => pageIndex; set { Set(ref pageIndex, value); } }
+
+ public int PageSize { get => pageSize; set { Set(ref pageSize, value); } }
+
+ public int OrderCount { get => orderCount; set { Set(ref orderCount, value); } }
+
+ public ICommand SearchPackUserSalaryCommand { get; set; }
+
+ public ICommand ExportCommand { get; set; }
+
+ public ICommand OrderPageIndexChangedCommand { get; set; }
+
+ public ICommand SetSearchDateCommand { get; set; }
+
+ public PackUserSalaryViewModel(PackTaskService packTaskService)
+ {
+ this.packTaskService = packTaskService;
+
+ OrderPageIndexChangedCommand = new RelayCommand(p =>
+ {
+ LoadOrder(p.PageIndex);
+ });
+
+ SearchPackUserSalaryCommand = new RelayCommand(SearchPackUserSalary);
+
+ StartTime = DateTime.Now;
+ EndTime = DateTime.Now;
+ SearchPackUserSalary();
+ SetSearchDateCommand = new RelayCommand(d =>
+ {
+ EndTime = d == 1 ? DateTime.Now.Date.AddDays(-1) : DateTime.Now;
+ StartTime = DateTime.Now.Date.AddDays(d * -1);
+ PageIndex = 1;
+ Task.Factory.StartNew(() => LoadOrder(1)); //点击日期查询订单
+ });
+ ExportCommand = new RelayCommand(Export);
+ }
+
+ private void LoadOrder(int pageIndex)
+ {
+ PageIndex = pageIndex;
+ SearchPackUserSalary();
+ }
+ private void SearchPackUserSalary()
+ {
+ PackUserSalaryList = new List();
+ Task.Factory.StartNew(() =>
+ {
+ IsLoading = true;
+ var res = packTaskService.TotalPackUserSalary(searchUserName, StartTime, EndTime, PageIndex, PageSize);
+ if (res != null && res.Success)
+ {
+ OrderCount = res.Data.TotalCount;
+
+ App.Current.Dispatcher.Invoke(() =>
+ {
+ PackUserSalaryList = res.Data.PackUserSalaries;
+ });
+
+
+
+
+ //foreach (var packUserSalary in res.Data.PackUserSalaries)
+ //{
+ // App.Current.Dispatcher.Invoke(() =>
+ // {
+ // PackUserSalaryList.Add(packUserSalary);
+ // });
+ //}
+ }
+ else
+ {
+ App.Current.Dispatcher.Invoke(() =>
+ {
+ PackUserSalaryList = new List();
+ });
+ }
+
+ IsLoading = false;
+ });
+
+ }
+
+ private void Export()
+ {
+
+ SaveFileDialog save = new SaveFileDialog();
+ save.Filter = "csv files(*.csv)|*.csv";
+ var result = save.ShowDialog();
+ if (result == null || !result.Value)
+ {
+ return;
+ }
+
+ string fileName = save.FileName;
+
+ Task.Factory.StartNew(() =>
+ {
+ IsLoading = true;
+ var res = packTaskService.TotalPackUserSalary(SearchUserName, StartTime, EndTime, 0, 0);//获取全部数据
+ if (res.Success)
+ {
+ //string title = "任务ID,日期,是否结清,部门,店铺,对接人,sku名称,sku数量,增值服务,打包服务,耗材服务,原价,促销折扣,结算价格,对接备注";
+ List exportList = new List();
+ string title = "日期,花名,总收益";
+ if (res.Data.TotalCount > 0)
+ {
+ foreach (var item in res.Data.PackUserSalaries[0].IncomeItems)
+ {
+ title += $",{item.Name}";
+ }
+ exportList.Add(title);
+
+ foreach (var packUserSalary in res.Data.PackUserSalaries)
+ {
+ List rowList =new List();
+ rowList.Add(packUserSalary.Date.ToString("yyyy-MM-dd"));
+ rowList.Add(packUserSalary.PackUserName);
+ rowList.Add(packUserSalary.TotalIncome.ToString("0.00"));
+ foreach (var incomeItem in packUserSalary.IncomeItems)
+ {
+ rowList.Add(incomeItem.TotalPrice.ToString() );
+ }
+
+ exportList.Add(string.Join(",", rowList));
+ }
+
+
+ }
+ //var excelList = res.Data.ShopTotals.Select(x => x.ToString()).ToList();
+ //excelList.Insert(0, title);
+ System.IO.File.WriteAllLines(fileName, exportList, Encoding.UTF8);
+ }
+ IsLoading = false;
+
+ });
+
+ }
+
+
+ }
+
+}
diff --git a/BBWY.Client/ViewModels/ViewModelLocator.cs b/BBWY.Client/ViewModels/ViewModelLocator.cs
index 980ebe4c..af467f81 100644
--- a/BBWY.Client/ViewModels/ViewModelLocator.cs
+++ b/BBWY.Client/ViewModels/ViewModelLocator.cs
@@ -1,4 +1,5 @@
using BBWY.Client.ViewModels.PackTask;
+using BBWY.Client.ViewModels.TotalPackTask;
using GalaSoft.MvvmLight.Ioc;
using Microsoft.Extensions.DependencyInjection;
using System;
@@ -305,6 +306,7 @@ namespace BBWY.Client.ViewModels
}
+
public QualityViewModel QualityTask
{
get
@@ -313,5 +315,14 @@ namespace BBWY.Client.ViewModels
return s.ServiceProvider.GetRequiredService();
}
}
+
+ public PackUserSalaryViewModel PackUserSalary
+ {
+ get
+ {
+ using var s = sp.CreateScope();
+ return s.ServiceProvider.GetRequiredService();
+ }
+ }
}
}
diff --git a/BBWY.Client/Views/TotalPackTask/PackUserSalaryControl.xaml b/BBWY.Client/Views/TotalPackTask/PackUserSalaryControl.xaml
new file mode 100644
index 00000000..d1b4149e
--- /dev/null
+++ b/BBWY.Client/Views/TotalPackTask/PackUserSalaryControl.xaml
@@ -0,0 +1,10 @@
+
+
+
diff --git a/BBWY.Client/Views/TotalPackTask/PackUserSalaryControl.xaml.cs b/BBWY.Client/Views/TotalPackTask/PackUserSalaryControl.xaml.cs
new file mode 100644
index 00000000..e52ba4f6
--- /dev/null
+++ b/BBWY.Client/Views/TotalPackTask/PackUserSalaryControl.xaml.cs
@@ -0,0 +1,234 @@
+using BBWY.Client.Models.APIModel;
+using BBWY.Client.Models.APIModel.Response.PackTask;
+using BBWY.Client.Views.PackTask;
+using System;
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+using System.Text;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Markup;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+
+namespace BBWY.Client.Views.TotalPackTask
+{
+ ///
+ /// PackUserSalaryControl.xaml 的交互逻辑
+ ///
+ public partial class PackUserSalaryControl : UserControl
+ {
+ public PackUserSalaryControl()
+ {
+ InitializeComponent();
+ }
+
+
+
+ public List PackUserSalaries
+ {
+ get
+ {
+ return (List)GetValue(PackUserSalariesProperty);
+
+ }
+ set
+ {
+ SetValue(PackUserSalariesProperty, value);
+ }
+ }
+
+
+ public static readonly DependencyProperty PackUserSalariesProperty =
+ DependencyProperty.Register("PackUserSalaries", typeof(List), typeof(PackUserSalaryControl), new PropertyMetadata(ChangedProperty));
+
+
+
+
+ private static void ChangedProperty(DependencyObject d, DependencyPropertyChangedEventArgs e)
+ {
+ var control = d as PackUserSalaryControl;
+ // control.Str
+ var newValue = e.NewValue as List;
+ control.PackUserSalaries = newValue;
+
+ control.LoadData();
+ }
+
+ string xaml = @"
+
+
+ [:Row:]
+
+
+
+
+
+
+ [:Column:]
+
+
+
+
+
+ [:HeaderNameList:]
+
+
+
+
+
+
+ [:BorderHeaderList:]
+
+
+
+
+
+ [:DataList:]
+
+ ";
+
+
+ const string rows = @"";
+ string columns = @"";
+ string headName = @"";
+ string borderColumns = @" ";
+ ///
+ /// index 从1开始 0+1
+ ///
+ string rowStr = @"
+
+
+
+
+ [:HeaderPriceList:]
+
+
+
+
+
+ [:BorderDataList:]
+ ";
+
+
+
+ string serviceText = @" ";
+ string serviceBorder = @" ";
+
+ public void LoadData()
+ {
+
+ if (PackUserSalaries == null )
+ return;
+
+ if ( PackUserSalaries.Count <= 0)
+ {
+ App.Current.Dispatcher.Invoke(() =>
+ {
+ gd.Children.Clear();
+ });
+ }
+
+
+ try
+ {
+
+ App.Current.Dispatcher.Invoke(() =>
+ {
+ gd.Children.Clear();
+ });
+
+
+ var count = PackUserSalaries.Count;
+
+ StringBuilder sbRow =new StringBuilder();
+ for (int i = 0; i < count; i++)
+ {
+ sbRow.AppendLine(rows);
+ }
+ string rowDefinition = sbRow.ToString();
+
+ StringBuilder sbColumn = new StringBuilder();
+ var packServices = PackUserSalaries[0].IncomeItems;//服务项目列表
+ var packServiceCount = packServices.Count; //服务项目数量
+
+
+
+ StringBuilder sbHeaderNameList = new StringBuilder();
+ StringBuilder sbBorderHeaderList=new StringBuilder();
+
+ for (int i = 0; i < packServiceCount; i++)
+ {
+ sbColumn.AppendLine(columns);
+ sbHeaderNameList.AppendLine(headName.Replace("[:ServiceName:]", packServices[i].Name)
+ .Replace("[:ColumnIndex:]", (i+4).ToString())
+ .Replace("[:RowIndex:]", "0"));
+ sbBorderHeaderList.AppendLine(borderColumns.Replace("[:ColumnIndex:]", (i + 4).ToString())
+ .Replace("[:RowIndex:]", "0"));
+ }
+
+ string columnDefinition = sbColumn.ToString();
+ string HeaderNameList= sbHeaderNameList.ToString();
+
+
+ StringBuilder dataListSB= new StringBuilder();
+ for (int i = 0; i < PackUserSalaries.Count; i++)
+ {
+
+ var rowIndex = 1 + i;
+ StringBuilder headerPriceListSB = new StringBuilder();
+ StringBuilder serviceBorderSB = new StringBuilder();
+ for (int j = 0; j < PackUserSalaries[i].IncomeItems.Count; j++)
+ {
+ var columnIndex = 4 + j;//[:HeaderPriceList:]
+ headerPriceListSB.AppendLine(serviceText.Replace("[:ServicePrice:]", PackUserSalaries[i].IncomeItems[j].TotalPrice.ToString())
+ .Replace("[:ColumnIndex:]", columnIndex.ToString())
+ .Replace("[:RowIndex:]", rowIndex.ToString()));
+
+ serviceBorderSB.AppendLine(serviceBorder.Replace("[:ColumnIndex:]", columnIndex.ToString())
+ .Replace("[:RowIndex:]", rowIndex.ToString()));
+ }
+ dataListSB.AppendLine(rowStr.Replace("[:Date:]", PackUserSalaries[i].Date.ToString("yyyy-MM-dd"))
+ .Replace("[:PackUserName:]", PackUserSalaries[i].PackUserName)
+ .Replace("[:TotalIncome:]", PackUserSalaries[i].TotalIncome.ToString("0.00"))
+ .Replace("[:HeaderPriceList:]", headerPriceListSB.ToString())
+ .Replace("[:BorderDataList:]", serviceBorderSB.ToString())
+ .Replace("[:RowIndex:]", rowIndex.ToString())
+ .Replace("[:4+DataItemCount:]", (packServiceCount+4).ToString())
+ );
+ }
+
+
+ var newGrid = xaml.Replace("[:Row:]", rowDefinition)
+ .Replace("[:Column:]", columnDefinition)
+ .Replace("[:HeaderNameList:]", HeaderNameList)
+ .Replace("[:DataCount+1:]", (count+1).ToString())
+ .Replace("[:4+DataItemCount:]", (packServiceCount + 4).ToString())
+ .Replace("[:BorderHeaderList:]", sbBorderHeaderList.ToString())
+ .Replace("[:DataList:]", dataListSB.ToString());
+
+
+
+ var grid = XamlReader.Parse(newGrid) as Grid;
+ App.Current.Dispatcher.Invoke(() =>
+ {
+ gd.Children.Add(grid);
+ });
+
+ }
+ catch
+ {
+
+
+ }
+
+
+
+ }
+ }
+}
diff --git a/BBWY.Client/Views/TotalPackTask/PackUserSalaryList.xaml b/BBWY.Client/Views/TotalPackTask/PackUserSalaryList.xaml
new file mode 100644
index 00000000..d08c87ac
--- /dev/null
+++ b/BBWY.Client/Views/TotalPackTask/PackUserSalaryList.xaml
@@ -0,0 +1,170 @@
+
+
+
+
+ 0
+ 1
+ 2
+ 6
+ 14
+ 29
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/BBWY.Client/Views/TotalPackTask/PackUserSalaryList.xaml.cs b/BBWY.Client/Views/TotalPackTask/PackUserSalaryList.xaml.cs
new file mode 100644
index 00000000..012cc85b
--- /dev/null
+++ b/BBWY.Client/Views/TotalPackTask/PackUserSalaryList.xaml.cs
@@ -0,0 +1,109 @@
+using BBWY.Client.APIServices;
+using BBWY.Client.ViewModels;
+using BBWY.Client.ViewModels.TotalPackTask;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+
+namespace BBWY.Client.Views.TotalPackTask
+{
+ ///
+ /// PackUserSalaryList.xaml 的交互逻辑
+ ///
+ public partial class PackUserSalaryList : Page
+ {
+ public PackUserSalaryList()
+ {
+ InitializeComponent();
+ this.Loaded += PackUserSalaryList_Loaded;
+ }
+
+ private void PackUserSalaryList_Loaded(object sender, RoutedEventArgs e)
+ {
+ var packUserSalaryViewModel = new ViewModelLocator().PackUserSalary;
+ packTaskService = packUserSalaryViewModel.packTaskService;
+ var packUser = packTaskService.GetPackMembers();
+ if (packUser != null && packUser.Success) users = packUser.Data.Select(p => p.UserName).ToList();
+ }
+ List users =new List();
+ PackTaskService packTaskService;
+ private void tbUserName_TextChanged(object sender, TextChangedEventArgs e)
+ {
+ try
+ {
+ var textBoxt = (TextBox)sender;
+ //创建一个ListBox
+
+ if (tipBoxUserName != null && tipBoxUserName.Items.Count > 0)
+ {
+ tipBoxUserName.Items.Clear();
+
+ }
+
+ if (users.Count <= 0)
+ {
+ var packUser = packTaskService.GetPackMembers();
+ if (packUser != null && packUser.Success) users = packUser.Data.Select(p => p.UserName).ToList();
+ }
+
+ if (string.IsNullOrEmpty(textBoxt.Text))
+ {
+ tipBoxUserName.Visibility = Visibility.Collapsed;
+ return;
+ }
+ foreach (var department in users)
+ {
+ if (department.Contains(textBoxt.Text))
+ {
+ ListBoxItem item = new ListBoxItem();
+ Label lb = new Label();
+ lb.Content = department;
+ item.Content = lb;
+ tipBoxUserName.Items.Add(item);
+ }
+
+ }
+
+ tipBoxUserName.Visibility = Visibility.Visible;
+ }
+ catch (Exception)
+ {
+
+
+ }
+ }
+
+ private void tipBoxUserName_SelectionChanged(object sender, SelectionChangedEventArgs e)
+ {
+ try
+ {
+ var list = (ListBox)sender;
+ if (list.Items.Count <= 0)
+ {
+ return;
+ }
+ var value = (ListBoxItem)list.SelectedValue;
+ var content = (Label)value.Content;
+ tbUserName.Text = content.Content.ToString();
+ tipBoxUserName.Visibility = Visibility.Collapsed;
+ }
+ catch (Exception)
+ {
+
+
+ }
+ }
+
+
+ }
+}