62,042
社区成员
发帖
与我相关
我的任务
分享
<script type="text/javascript">
function showSale(startTime, endTime) {
var saleChart;
$("#Loading").show();
var options = {
chart: {
renderTo: 'containerSale',
type: 'column'
},
title: {
text: '各销售团队销售量'
},
subtitle: {
text: '--数据为各团队成员销售量的总和'
},
xAxis: {
categories: []
},
yAxis: {
min: 0,
title: {
text: '单位 (单)'
}
},
legend: {
layout: 'vertical',
backgroundColor: '#FFFFFF',
align: 'left',
verticalAlign: 'top',
x: 100,
y: 70,
floating: true,
shadow: true
},
tooltip: {
formatter: function () {
return '' +
this.x + ': ' + this.y + ' 单';
}
},
plotOptions: {
column: {
pointPadding: 0.2,
borderWidth: 0
}
},
series: []
};
//读取部门数据
$.ajax({
type: "POST",
url: "/Tool/GetBusinessDept",
success: function (msg) {
dept = [];
$.each(msg, function (i, d) {
dept.push([d.DeptName]);
});
options.xAxis.categories = dept;
//读取销售数据
$.ajax({
type: "POST",
url: "/Tool/GetSaleByDept",
data: { startTime: startTime, endTime: endTime },
success: function (result) {
var series = { name: '销售量', data: [] };
$.each(result, function (itemNo, item) {
series.data.push(item.SaleCount);
});
options.series.push(series);
saleChart = new Highcharts.Chart(options);
$("#Loading").hide();
}
});
}
});
}
</script>
<div id="containerSale" style="min-width: 100%; height: 400px; margin: 0 auto;" ></div>
<div id="Loading" style="position: absolute; z-index: 100; top: 300px; left: 431.5px;
display: none; height: 25px;">
<table cellspacing="0" cellpadding="0" border="1" width="215" style="font-family: Arial;
background-color: #ffff99">
<tbody>
<tr>
<td>
<p align="center">
<img border="0" src="../../Content/loading.gif" alt="" />
<br />
<font color="Red">读取数据…</font>
</p>
</td>
</tr>
</tbody>
</table>
</div>
后端参考代码:
[HttpPost]
public ActionResult GetSaleByDept(string startTime, string endTime)
{
List<ListSaleByDept> listSaleCountByDept = new List<ListSaleByDept>();
DateTime start = System.DateTime.Now;
DateTime end = System.DateTime.Now;
if (startTime != "" && endTime != "")
{
start = DateTime.Parse(startTime);
end = DateTime.Parse(endTime);
}
string pid = IDepartmentsR.Departments.FirstOrDefault(x => x.DeptName == "业务部").ID.ToString();
var queryDept = IDepartmentsR.Departments.Where(x => x.ParentID == pid).OrderByDescending(x => x.CreateTime).ToList();
foreach (var itemDept in queryDept)
{
int saleCount = 0;
var deptUsers = IUsersR.Users.Where(x => x.Department.DeptName == itemDept.DeptName && x.UserState == "在职").ToList();
foreach (var itemUser in deptUsers)
{
var queryItem = ISaleItemLogR.SaleItemLogs.ToList();
List<SaleLog> querySale = new List<SaleLog>();
if (startTime != "" && endTime != "")
{
querySale = ISaleLogR.SaleLogs.Where(x => x.LadingBillType != "减工号" && x.LadingBillType != "转白银").
Where(x => x.LadingBillPeople == itemUser.UserName).
Where(x => x.LadingBillDate >= start && x.LadingBillDate < end).ToList();
}
else
{
querySale = ISaleLogR.SaleLogs.Where(x => x.LadingBillType != "减工号" && x.LadingBillType != "转白银").
Where(x => x.LadingBillPeople == itemUser.UserName).ToList();
}
int query = (from q in querySale
join s in queryItem
on q.ID equals s.saleLog.ID
select new
{
UserName = q.LadingBillPeople,
ActualIntegral = s.ActualIntegral
}).ToList().Count();
saleCount += query;
}
ListSaleByDept m = new ListSaleByDept();
m.DeptName = itemDept.DeptName;
m.SaleCount = saleCount;
listSaleCountByDept.Add(m);
}
return Json(listSaleCountByDept);
}
[HttpPost]
public ActionResult GetBusinessDept()
{
string pid = IDepartmentsR.Departments.FirstOrDefault(x => x.DeptName == "业务部").ID.ToString();
var queryDept = IDepartmentsR.Departments.Where(x => x.ParentID == pid).OrderByDescending(x=>x.CreateTime).ToList();
List<ListBusinessDept> listBusinessDept = new List<ListBusinessDept>();
foreach (var item in queryDept)
{
ListBusinessDept m = new ListBusinessDept();
m.DeptName = item.DeptName;
listBusinessDept.Add(m);
}
return Json(listBusinessDept);
}