tijian_tieying/web/dccdc/Views/Kpi/kpi.cshtml
2025-02-20 12:14:39 +08:00

550 lines
20 KiB
Plaintext

@{
ViewBag.Title = "领导决策";
}
<div>
<script src="@Url.Content("~/Scripts/echarts.min.js")"></script>
<div style="width:32%;float:left;height:250px; background-color: #ffffff;
box-shadow: 0px 4px 12px rgba(34, 25, 25, 0.2);
margin: 0.25rem;
margin-top: 0.5rem;" id="sftj">
</div>
<div style="width:32%;float:left;height:250px; background-color: #ffffff;
box-shadow: 0px 4px 12px rgba(34, 25, 25, 0.2);
margin: 0.25rem;
margin-top: 0.5rem;" id="monthjfs">
</div>
<div style="width:32%;float:left;height:250px; background-color: #ffffff;
box-shadow: 0px 4px 12px rgba(34, 25, 25, 0.2);
margin: 0.25rem;
margin-top: 0.5rem;" id="ymdj">
</div>
<div style="clear:both"></div>
<div style="width:32%;float:left;height:250px; background-color: #ffffff;
box-shadow: 0px 4px 12px rgba(34, 25, 25, 0.2);
margin: 0.25rem;
margin-top: 0.5rem;" id="jkzdy">
</div>
<div style="width:32%;float:left;height:250px; background-color: #ffffff;
box-shadow: 0px 4px 12px rgba(34, 25, 25, 0.2);
margin: 0.25rem;
margin-top: 0.5rem;" id="wlyyrs">
</div>
<div style="width:32%;float:left;height:250px; background-color: #ffffff;
box-shadow: 0px 4px 12px rgba(34, 25, 25, 0.2);
margin: 0.25rem;
margin-top: 0.5rem;" id="yyrs">
</div>
<div style="clear:both"></div>
<div style="width:32%;float:left;height:250px; background-color: #ffffff;
box-shadow: 0px 4px 12px rgba(34, 25, 25, 0.2);
margin: 0.25rem;
margin-top: 0.5rem;" id="yylx">
</div>
<div style="width:32%;float:left;height:250px; background-color: #ffffff;
box-shadow: 0px 4px 12px rgba(34, 25, 25, 0.2);
margin: 0.25rem;
margin-top: 0.5rem;">
</div>
<div style="width:32%;float:left;height:250px; background-color: #ffffff;
box-shadow: 0px 4px 12px rgba(34, 25, 25, 0.2);
margin: 0.25rem;
margin-top: 0.5rem;">
</div>
</div>
<script>
function GetDateStr(AddDayCount) {
var dd = new Date();
dd.setDate(dd.getDate() + AddDayCount);//获取AddDayCount天后的日期
var y = dd.getFullYear();
var m = dd.getMonth() + 1;//获取当前月份的日期
var d = dd.getDate();
return y + "-" + (m>9?m:"0"+m) + "-" + (d>9?d:"0"+d);
}
function finit(){
$.ajax({
url: "@Url.Action("init")", type: "post", dataType: "json",
success: function (d) {
var sftjdata = d.sftj;
var total = 0;
var sftjJson = {
'现金': 0,
'转账': 0,
'微信': 0,
'支付宝':0
};
for (var i = 0; i < sftjdata.length; i++) {
total = total + sftjdata[i].count;
sftjJson[sftjdata[i].method] = sftjdata[i].count;
}
var sftjoption = {
title: {
text: "今日收费情况"
},
color: ['#3398DB'],
tooltip: {
trigger: 'axis',
axisPointer: { // 坐标轴指示器,坐标轴触发有效
type: 'shadow' // 默认为直线,可选为:'line' | 'shadow'
}
},
grid: {
left: '3%',
right: '4%',
bottom: '3%',
containLabel: true
},
xAxis: [
{
type: 'category',
data: ['总计', '现金', '转账', '微信', '支付宝'],
axisTick: {
alignWithLabel: true
}
}
],
yAxis: [
{
type: 'value',
axisLabel: {
formatter: '{value} 元'
}
}
],
series: [
{
name: '金额',
type: 'bar',
barWidth: '60%',
data: [total, sftjJson["现金"], sftjJson["转账"], sftjJson["微信"], sftjJson["支付宝"]]
}
]
};
//echarts.();
var sftjdiv = document.getElementById("sftj");
var sftjchart = echarts.init(sftjdiv);
sftjchart.dispose();
sftjchart = echarts.init(sftjdiv);
sftjchart.setOption(sftjoption);
//sftjchart.clear();
sftjchart.on("click", function (params) {
$.ligerDialog.open({url:"@Url.Action("mrsfhzQuery", "QueryStatistics")",title:"每日收费分类汇总",width:1024,height:768});
});
var jkzdy = d.jkzdy;
var jkzdyXais = [];
for (var i = 0; i < 7; i++) {
jkzdyXais.push(GetDateStr(0-i));
}
jkzdyXais.reverse();
var jkzdydata = [];
for (var i = 0; i < jkzdyXais.length; i++) {
var hasData = false;
for (var j = 0; j < jkzdy.length; j++) {
if (jkzdy[j].date == jkzdyXais[i]) {
jkzdydata.push(jkzdy[j].count);
hasData = true;
break;
}
}
if (!hasData) {
jkzdydata.push(0);
}
}
var jkzdyoption = {
title: {
text: '健康证打印人数',
},
tooltip: {
trigger: 'axis'
},
legend: {
data: ['打印人数']
},
xAxis: {
type: 'category',
boundaryGap: false,
data: jkzdyXais
},
yAxis: {
type: 'value',
axisLabel: {
formatter: '{value} 人'
}
},
series: [
{
name: '打印人数',
type: 'line',
data: jkzdydata,
markPoint: {
data: [
{ type: 'max', name: '最大人数' },
{ type: 'min', name: '最小人数' }
]
},
},
]
};
var jkzdydiv = document.getElementById("jkzdy");
var jkzdychart = echarts.init(jkzdydiv);
jkzdychart.dispose();
jkzdychart = echarts.init(jkzdydiv);
jkzdychart.setOption(jkzdyoption);
jkzdychart.on("click", function () {
$.ligerDialog.open({url:"@Url.Action("JKZDYRSQuery", "QueryStatistics")",title:"健康证发证统计",width:1024,height:768});
});
var yyrs = d.yyrs;
var yyrsdata = [];
var djrsdata = [];
for (var i = 0; i < jkzdyXais.length; i++) {
var hasData = false;
for (var j = 0; j < yyrs.length; j++) {
if (yyrs[j].date == jkzdyXais[i]) {
yyrsdata.push(yyrs[j].count);
djrsdata.push(yyrs[j].come);
hasData = true;
break;
}
}
if (!hasData) {
yyrsdata.push(0);
djrsdata.push(0)
}
}
var yyrsoption = {
title: {
text: '过去七天预约人数',
},
tooltip: {
trigger: 'axis'
},
legend: {
data: ['预约人数',"到检人数"]
},
xAxis: {
type: 'category',
boundaryGap: false,
data: jkzdyXais
},
yAxis: {
type: 'value',
axisLabel: {
formatter: '{value} 人'
}
},
series: [
{
name: '预约人数',
type: 'line',
data: yyrsdata,
markPoint: {
data: [
{ type: 'max', name: '最大人数' },
{ type: 'min', name: '最小人数' }
]
},
},
{
name: '到检人数',
type: 'line',
data: djrsdata,
markPoint: {
data: [
{ type: 'max', name: '最大人数' },
{ type: 'min', name: '最小人数' }
]
},
},
]
};
var yyrsdiv = document.getElementById("yyrs");
var yyrschart = echarts.init(yyrsdiv);
yyrschart.dispose();
yyrschart = echarts.init(yyrsdiv);
yyrschart.setOption(yyrsoption);
yyrschart.on("click", function (parms) {
$.ligerDialog.open({url:"@Url.Action("yyqktjQuery", "QueryStatistics")?b=@(DateTime.Now.AddDays(-8).ToString("yyyy-MM-dd"))&e=@DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd")",title:"过去七天预约情况",width:1024,height:768});
});
var wlyyrsXAis = [];
for (var i = 0; i < 7; i++) {
wlyyrsXAis.push(GetDateStr(i));
}
var wlyyrsdata = [];
for (var i = 0; i < wlyyrsXAis.length; i++) {
var hasData = false;
for (var j = 0; j < yyrs.length; j++) {
if (yyrs[j].date == wlyyrsXAis[i]) {
wlyyrsdata.push(yyrs[j].count);
hasData = true;
break;
}
}
if (!hasData) {
wlyyrsdata.push(0);
}
}
var wlyyrsoption = {
title: {
text: '未来七天预约人数',
},
tooltip: {
trigger: 'axis'
},
legend: {
data: ['预约人数']
},
xAxis: {
type: 'category',
boundaryGap: false,
data: wlyyrsXAis
},
yAxis: {
type: 'value',
axisLabel: {
formatter: '{value} 人'
}
},
series: [
{
name: '预约人数',
type: 'line',
data: wlyyrsdata,
markPoint: {
data: [
{ type: 'max', name: '最大人数' },
{ type: 'min', name: '最小人数' }
]
},
},
]
};
var wlyyrsdiv = document.getElementById("wlyyrs");
var wlyyrschart = echarts.init(wlyyrsdiv);
wlyyrschart.dispose();
wlyyrschart = echarts.init(wlyyrsdiv);
wlyyrschart.setOption(wlyyrsoption);
wlyyrschart.on("click", function (parms) {
$.ligerDialog.open({url:"@Url.Action("yyqktjQuery", "QueryStatistics")?b=@(DateTime.Now.ToString("yyyy-MM-dd"))&e=@DateTime.Now.AddDays(7).ToString("yyyy-MM-dd")",title:"未来七天预约情况",width:1024,height:768});
});
var yylx = d.yylx;
var zzjData = [];
var wxData = [];
for (var i = 0; i < wlyyrsXAis.length; i++) {
var wxHasData = false;
var zzjHasData = false;
for (var j = 0; j < yylx.length; j++) {
if (yylx[j].date == wlyyrsXAis[i]) {
if (yylx[j].YYType == "1") {
wxData.push(yylx[j].count);
wxHasData = true;
} else if (yylx[j].YYType == "2") {
zzjData.push(yylx[j].count);
zzjHasData = true;
}
if (wxHasData && zzjHasData) {
break;
}
}
}
if (!wxHasData) {
wxData.push(0);
}
if (!zzjHasData) {
zzjData.push(0);
}
}
var yylxoption = {
title: { text: "预约分类情况" },
tooltip: {
trigger: 'axis',
axisPointer: { // 坐标轴指示器,坐标轴触发有效
type: 'shadow' // 默认为直线,可选为:'line' | 'shadow'
}
},
legend: {
data: ['自助机',"微信"]
},
grid: {
left: '3%',
right: '4%',
bottom: '3%',
containLabel: true
},
xAxis: [
{
type: 'category',
data: wlyyrsXAis,
boundaryGap: false,
}
],
yAxis: [
{
type: 'value'
}
],
series: [
{
name: '自助机',
type: 'bar',
barWidth:20,
data: zzjData
},
{
name: '微信',
type: 'bar',
barWidth: 20,
data: wxData
}
]
};
var yylxdiv = document.getElementById("yylx");
var yylxchart = echarts.init(yylxdiv);
yylxchart.dispose();
yylxchart = echarts.init(yylxdiv);
yylxchart.on("click", function (parms) {
$.ligerDialog.open({url:"@Url.Action("yyqktjQuery", "QueryStatistics")?b=@(DateTime.Now.ToString("yyyy-MM-dd"))&e=@DateTime.Now.AddDays(7).ToString("yyyy-MM-dd")",title:"未来七天预约情况",width:1024,height:768});
});
yylxchart.setOption(yylxoption);
var monthjfXais = [];
var nowDate = new Date();
var date = nowDate.getDate();
for (var i = 1; i <= date; i++) {
//yyqktjQuery
monthjfXais.push(nowDate.getFullYear() + "-" + ((nowDate.getMonth() + 1) > 9 ? (nowDate.getMonth() + 1) : "0" + (nowDate.getMonth() + 1)) + "-" + (i > 9 ? i : "0" + i));
}
var monthjf = d.monthjf;
var monthjfdata = [];
for (var i = 0; i < monthjfXais.length; i++) {
var hasData = false;
for (var j = 0; j < monthjf.length; j++) {
if (monthjf[j].date == monthjfXais[i]) {
monthjfdata.push(monthjf[j].sum);
hasData = true;
break;
}
}
if (!hasData) {
monthjfdata.push(0);
}
}
var monthjfsoption = {
title: {
text: '本月缴费情况',
},
tooltip: {
trigger: 'axis'
},
legend: {
data: ['缴费金额']
},
xAxis: {
type: 'category',
boundaryGap: false,
data: monthjfXais
},
yAxis: {
type: 'value',
axisLabel: {
formatter: '{value}万元'
}
},
series: [
{
name: '缴费金额',
type: 'line',
data: monthjfdata,
markPoint: {
data: [
{ type: 'max', name: '最大缴费' },
{ type: 'min', name: '最小缴费' }
]
},
},
]
};
var monthjfsdiv = document.getElementById("monthjfs");
var monthjfschart = echarts.init(monthjfsdiv);
monthjfschart.dispose();
monthjfschart = echarts.init(monthjfsdiv);
monthjfschart.setOption(monthjfsoption);
monthjfschart.on("click", function (params) {
//ymsftjQuery
$.ligerDialog.open({url:"@Url.Action("mrsfhzQuery", "QueryStatistics")?b=@(DateTime.Now.ToString("yyyy-MM")+"-01")&e=@DateTime.Parse(DateTime.Now.AddMonths(1).ToString("yyyy-MM")+"-01").AddDays(-1).ToString("yyyy-MM-dd")",title:"每日收费分类汇总",width:1024,height:768});
});
var ymdj = d.ymdj;
var ymdjXais = [];
var ymdjData = [];
for (var i = 0; i < ymdj.length; i++) {
ymdjXais.push(ymdj[i].name);
ymdjData.push(ymdj[i].num);
}
var ymdjoption = {
title: {
text: "今日疫苗收费情况"
},
color: ['#3398DB'],
tooltip: {
trigger: 'axis',
axisPointer: { // 坐标轴指示器,坐标轴触发有效
type: 'shadow' // 默认为直线,可选为:'line' | 'shadow'
}
},
grid: {
left: '3%',
right: '4%',
bottom: '3%',
containLabel: true
},
xAxis: [
{
type: 'category',
data: ymdjXais,
axisTick: {
alignWithLabel: true
}
}
],
yAxis: [
{
type: 'value',
axisLabel: {
formatter: '{value} 元'
}
}
],
series: [
{
name: '金额',
type: 'bar',
barWidth: '60%',
data: ymdjData
}
]
};
var ymdjdiv = document.getElementById("ymdj");
var ymdjchart = echarts.init(ymdjdiv);
ymdjchart.dispose();
ymdjchart = echarts.init(ymdjdiv);
ymdjchart.setOption(ymdjoption);
ymdjchart.on("click", function (parms) {
//ymsftjQuery
$.ligerDialog.open({url:"@Url.Action("ymsftjQuery", "QueryStatistics")",title:"疫苗收费统计",width:1024,height:768});
});
},
});
}
$(function () {
finit();
setInterval(finit, 60000);
});
</script>