|
@ -0,0 +1,372 @@
|
|
|
|
var reqList = [{}]; //记录请求的参数和url,用于后退时使用
|
|
|
|
|
|
|
|
var colors={"0":"#5b9db5","1":"#ed7d31","2":"#a5a5a5",
|
|
|
|
"3":"#ffc000","4":"#44c274","5":"#70ad47",
|
|
|
|
"6":"#255e91","7":"#9e480e","8":"#7e7e7e","9":"#997300","10":"#264478","11":"#43682b","12":"#5b9db5"}
|
|
|
|
|
|
|
|
Vue.use(Vuedals.default);
|
|
|
|
new Vue({
|
|
|
|
el: "#main",
|
|
|
|
data: {
|
|
|
|
isloading:false, //加载中
|
|
|
|
start:"",
|
|
|
|
end:"",
|
|
|
|
dateValue: "",
|
|
|
|
initDate:"",
|
|
|
|
pickerOptions: {
|
|
|
|
disabledDate: function(d) {
|
|
|
|
return d > new Date();
|
|
|
|
}
|
|
|
|
},
|
|
|
|
pieData:[], //饼图数据
|
|
|
|
tabnumber:0,
|
|
|
|
diagnosisList:[], //疾病分析列表
|
|
|
|
itemList:[], //服务项目列表
|
|
|
|
drugList:[], //药品分析列表
|
|
|
|
tabledata0:[], //表格数据
|
|
|
|
topData:{},
|
|
|
|
//请求页面所需参数
|
|
|
|
levelList:[{level:"4",areaLevel:"2"},{level:"3",areaLevel:"3"},{level:"2",areaLevel:"4"}], //两种搜索,地区等级对比
|
|
|
|
areaLevel:"", // 2、市,3、区,4、社区,5、团队
|
|
|
|
initareaLevel:"",
|
|
|
|
initlevel: '',
|
|
|
|
initarea: '',
|
|
|
|
level: '',
|
|
|
|
area: '',
|
|
|
|
areaTitle: '',
|
|
|
|
index: '121',
|
|
|
|
lowLevel: '',
|
|
|
|
initlowLevel:"",
|
|
|
|
lowCode: '',
|
|
|
|
chooseYear: '',
|
|
|
|
userRole: '',
|
|
|
|
ptab:"1",
|
|
|
|
tableParams:[{isloading:false,noMore:false,page:1}, //疾病分析
|
|
|
|
{isloading:false,noMore:false,page:1},//药品分析
|
|
|
|
{isloading:false,noMore:false,page:1}], //服务项分析
|
|
|
|
pieShow:true,
|
|
|
|
pageSize:100,
|
|
|
|
},
|
|
|
|
components: {
|
|
|
|
vuedals: Vuedals.Component
|
|
|
|
},
|
|
|
|
mounted: function () {
|
|
|
|
var vm=this
|
|
|
|
//初始化数据
|
|
|
|
initData(vm);
|
|
|
|
vm.getData()
|
|
|
|
vm.bindEvent()
|
|
|
|
},
|
|
|
|
methods: {
|
|
|
|
getData:function(isNext,type){ //是否下转
|
|
|
|
var vm = this
|
|
|
|
var params={
|
|
|
|
areaLevel: vm.areaLevel,
|
|
|
|
level: vm.level,
|
|
|
|
area: vm.area,
|
|
|
|
endDate: vm.start,
|
|
|
|
startDate: vm.end,
|
|
|
|
lowLevel: vm.lowLevel
|
|
|
|
}
|
|
|
|
_.each(vm.tableParams,function(item,index){
|
|
|
|
vm.tableParams[index].page=1 //重新搜索时,上边三个表格重新加载
|
|
|
|
})
|
|
|
|
loadData([0,1,2,3,4], vm); //刷新数据
|
|
|
|
if(isNext){
|
|
|
|
//存储请求所带的参数
|
|
|
|
reqList.push(params);
|
|
|
|
}else{
|
|
|
|
reqList[reqList.length-1]=params
|
|
|
|
}
|
|
|
|
},
|
|
|
|
//加载上边三个表格
|
|
|
|
loadTableData:function(index){
|
|
|
|
var vm = this
|
|
|
|
vm.tableParams[index].isloading=true
|
|
|
|
vm.tableParams[index].page++
|
|
|
|
loadData([index], vm); //刷新数据
|
|
|
|
},
|
|
|
|
//表格tab切换/下转
|
|
|
|
getnewdata:function(arg){
|
|
|
|
var vm = this
|
|
|
|
vm.lowLevel=arg.lowLevel||""
|
|
|
|
if(arg.level){
|
|
|
|
vm.level = arg.level
|
|
|
|
vm.areaLevel = _.find(vm.levelList,{level:vm.level}).areaLevel
|
|
|
|
}
|
|
|
|
if(arg.area){
|
|
|
|
vm.area = arg.area
|
|
|
|
}
|
|
|
|
if(arg.areaTitle){
|
|
|
|
vm.areaTitle = arg.areaTitle
|
|
|
|
}
|
|
|
|
vm.getData(arg.level) //有传level,说明是下转
|
|
|
|
},
|
|
|
|
//时间选择
|
|
|
|
changeDate: function () {
|
|
|
|
var vm=this
|
|
|
|
if(vm.dateValue){
|
|
|
|
if(vm.initDate==vm.dateValue){
|
|
|
|
vm.end = new Date().format("yyyy-MM-dd");
|
|
|
|
var start= new Date();
|
|
|
|
start.setDate(1)
|
|
|
|
vm.start = start.format("yyyy-MM-dd")
|
|
|
|
}else{
|
|
|
|
var year=vm.dateValue.split("-")[0]
|
|
|
|
var month=vm.dateValue.split("-")[1]
|
|
|
|
vm.start=new Date(vm.dateValue).format("yyyy-MM-dd")
|
|
|
|
vm.end=new Date(year,month,0).format("yyyy-MM-dd")
|
|
|
|
}
|
|
|
|
//搜索时,取消下转记录
|
|
|
|
vm.area=vm.initarea
|
|
|
|
vm.areaLevel=vm.initareaLevel
|
|
|
|
vm.level=vm.initlevel
|
|
|
|
vm.lowLevel = vm.initlowLevel
|
|
|
|
reqList=[{}]; //搜索时清空历史记录,重新搜索
|
|
|
|
vm.getData()
|
|
|
|
vm.initTable()
|
|
|
|
}
|
|
|
|
},
|
|
|
|
showTab:function(){
|
|
|
|
},
|
|
|
|
bindEvent:function(){
|
|
|
|
var vm=this
|
|
|
|
//监听后退按钮的操作
|
|
|
|
EventBus.$on("back-click", function (arg) {
|
|
|
|
EventBus.$emit('update-statistics-time', {}); //更新统计时间
|
|
|
|
if (reqList.length == 1) {
|
|
|
|
history.go(-1);
|
|
|
|
} else {
|
|
|
|
var preInfo = reqList.pop();
|
|
|
|
var info = reqList[reqList.length - 1];
|
|
|
|
vm.areaLevel = info.areaLevel;
|
|
|
|
vm.level = info.level;
|
|
|
|
vm.area = info.area;
|
|
|
|
vm.lowLevel = info.lowLevel;
|
|
|
|
|
|
|
|
vm.getData()
|
|
|
|
|
|
|
|
vm.$refs.tableRef0.changeTab({level:vm.level,lowlevel:vm.lowLevel}) //表格tab
|
|
|
|
}
|
|
|
|
});
|
|
|
|
//监听页面刷新
|
|
|
|
EventBus.$on("refresh-click", function (arg) {
|
|
|
|
EventBus.$emit('update-statistics-time', {}); //更新统计时间
|
|
|
|
loadData([0, 1,2,3,4], vm);
|
|
|
|
});
|
|
|
|
$("#main").removeClass("c-hide");
|
|
|
|
},
|
|
|
|
initTable:function(){
|
|
|
|
var vm=this
|
|
|
|
vm.$refs.tableRef1.initTable({
|
|
|
|
//表格表头
|
|
|
|
headers:[{thead:"排名",param:"name",canclick:true},{thead:"工单量(个)",param:"orderCount"}],
|
|
|
|
})
|
|
|
|
vm.$refs.tableRef2.initTable({
|
|
|
|
//表格表头
|
|
|
|
headers:[{thead:"排名",param:"name",canclick:true},{thead:"使用人数(人)",param:"patientCount"},{thead:"工单量(个)",param:"orderCount"}],
|
|
|
|
})
|
|
|
|
vm.$refs.tableRef3.initTable({
|
|
|
|
//表格表头
|
|
|
|
headers:[{thead:"排名",param:"name",canclick:true},{thead:"使用人数(人)",param:"patientCount"},{thead:"工单量(个)",param:"orderCount"}],
|
|
|
|
})
|
|
|
|
vm.$refs.tableRef0.initTable({
|
|
|
|
tabList:[{name:"各区",level:"4",lowlevel:"3",isShow:true},{name:"社区",level:"3",lowlevel:"2",isShow:true},{name:"团队",level:"2",lowlevel:"1",isShow:true}],
|
|
|
|
//表格表头
|
|
|
|
headers:[{thead:"排名",param:"name",canclick:true},{thead:"合计工单(个)",param:"all"}],
|
|
|
|
tabnumber:vm.tabnumber
|
|
|
|
})
|
|
|
|
},
|
|
|
|
},
|
|
|
|
})
|
|
|
|
|
|
|
|
function initData(vm) {
|
|
|
|
//获得缓存中缓存的角色权限
|
|
|
|
var userRole = window.sessionStorage.getItem("selectedRole");
|
|
|
|
if (!userRole) {
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
vm.userRole = JSON.parse(userRole);
|
|
|
|
//level:2、市,3、区,4、社区,5、团队
|
|
|
|
vm.initareaLevel = vm.areaLevel = vm.userRole.code == '350200' ? 2 : vm.userRole.code.length == 6 ? 3 : 4;
|
|
|
|
vm.initlevel = vm.level = vm.userRole.code == '350200' ? 4 : vm.userRole.code.length == 6 ? 3 : 2;
|
|
|
|
// vm.lowLevel = vm.initlowLevel = vm.userRole.code == '350200' ? 3 : vm.userRole.code.length == 6 ? 2 : 1;
|
|
|
|
|
|
|
|
vm.initarea =vm.area = vm.userRole.code;
|
|
|
|
vm.areaTitle = vm.userRole.name;
|
|
|
|
|
|
|
|
vm.tabnumber=vm.areaLevel==4?1:vm.areaLevel==3?2:3 //表格显示的tab数
|
|
|
|
|
|
|
|
//初始化时间
|
|
|
|
var now = new Date();
|
|
|
|
vm.end = new Date().format("yyyy-MM-dd");
|
|
|
|
var start= new Date();
|
|
|
|
start.setDate(1)
|
|
|
|
vm.start = start.format("yyyy-MM-dd")
|
|
|
|
|
|
|
|
vm.initDate=vm.dateValue=now.format("yyyy-MM")
|
|
|
|
|
|
|
|
vm.initTable()
|
|
|
|
}
|
|
|
|
|
|
|
|
function initReqParams(vm) {
|
|
|
|
var reqParam = [{
|
|
|
|
url: "doctor/statisticAnalyze/getDoorDiagnosisAnalysis", //疾病列表
|
|
|
|
reqType: 'get',
|
|
|
|
data:{
|
|
|
|
area: vm.area,
|
|
|
|
level: vm.areaLevel, //等级,2市 3区 4社区 5团队
|
|
|
|
page: vm.tableParams[0].page,
|
|
|
|
pageSize: vm.pageSize,
|
|
|
|
endDate: vm.end
|
|
|
|
},
|
|
|
|
},{
|
|
|
|
url: "doctor/statisticAnalyze/getDoorDrugCodeAnalysis", //药品分析列表
|
|
|
|
reqType: 'get',
|
|
|
|
data:{
|
|
|
|
area: vm.area,
|
|
|
|
level: vm.areaLevel, //等级,2市 3区 4社区 5团队
|
|
|
|
page: vm.tableParams[1].page,
|
|
|
|
pageSize: vm.pageSize,
|
|
|
|
subjectClass: "010"
|
|
|
|
},
|
|
|
|
},{
|
|
|
|
url: "doctor/statisticAnalyze/getDoorDrugCodeAnalysis", //服务项列表
|
|
|
|
reqType: 'get',
|
|
|
|
data:{
|
|
|
|
area: vm.area,
|
|
|
|
level: vm.areaLevel, //等级,2市 3区 4社区 5团队
|
|
|
|
page: vm.tableParams[2].page,
|
|
|
|
pageSize: vm.pageSize,
|
|
|
|
subjectClass: "020"
|
|
|
|
},
|
|
|
|
},{
|
|
|
|
url: "doctor/statisticAnalyze/doorAggregateAnalysis", //头中部数据
|
|
|
|
reqType: 'get',
|
|
|
|
data:{
|
|
|
|
startDate: vm.start,
|
|
|
|
endDate: vm.end,
|
|
|
|
area: vm.area,
|
|
|
|
level: vm.areaLevel, //2、市,3、区,4、社区,5、团队
|
|
|
|
},
|
|
|
|
},{
|
|
|
|
url: "doctor/statisticAnalyze/order_lowlevel_all", //工单列表--表格
|
|
|
|
reqType: 'get',
|
|
|
|
data:{
|
|
|
|
startDate: vm.start,
|
|
|
|
endDate: vm.end,
|
|
|
|
area: vm.area,
|
|
|
|
level: vm.level, //2、市,3、区,4、社区,5、团队
|
|
|
|
sort: 1,
|
|
|
|
lowLevel:vm.lowLevel||"", //等级 1:团队 2社区机构 3区级 4市级
|
|
|
|
},
|
|
|
|
},]
|
|
|
|
return reqParam;
|
|
|
|
}
|
|
|
|
function loadData(loadArr, vm) {
|
|
|
|
//获取其他请求的参数
|
|
|
|
var reqParams = initReqParams(vm),
|
|
|
|
reqPromise = [],
|
|
|
|
newArr = []; //记录非顶部请求的请求数组
|
|
|
|
for (i = 0; i < loadArr.length; i++) {
|
|
|
|
var j = loadArr[i];
|
|
|
|
var param = reqParams[j];
|
|
|
|
reqPromise.push(httpRequest.get(param.url, {
|
|
|
|
data: param.data
|
|
|
|
}));
|
|
|
|
newArr.push(loadArr[i]);
|
|
|
|
}
|
|
|
|
vm.isloading=true
|
|
|
|
if (reqPromise.length > 0) {
|
|
|
|
Promise.all(reqPromise).then(function (ress) {
|
|
|
|
var res1, res2, res3, res4, res5;
|
|
|
|
for (var i = 0; i < loadArr.length; i++) {
|
|
|
|
var j = loadArr[i] + 1;
|
|
|
|
if (j == 1) { res1 = ress[i]; }
|
|
|
|
if (j == 2) { res2 = ress[i]; }
|
|
|
|
if (j == 3) { res3 = ress[i]; }
|
|
|
|
if (j == 4) { res4 = ress[i]; }
|
|
|
|
if (j == 5) { res5 = ress[i]; }
|
|
|
|
}
|
|
|
|
|
|
|
|
if (res4 && res4.status == 200) {
|
|
|
|
vm.topData=res4.data
|
|
|
|
var voucherList=_.map(vm.topData.voucherList,function(item,index){
|
|
|
|
return {
|
|
|
|
code:item.slaveKey1,
|
|
|
|
amount:item.result1,
|
|
|
|
name:item.slaveKey1Name,
|
|
|
|
}
|
|
|
|
})
|
|
|
|
if(voucherList.length==0||(voucherList.length==1&&!voucherList.name)){
|
|
|
|
vm.pieShow=false
|
|
|
|
}else{
|
|
|
|
vm.pieShow=true
|
|
|
|
}
|
|
|
|
setTimeout(function(){
|
|
|
|
//服务人群分析-饼图
|
|
|
|
handlePieData({elId:"pieChart",arry: voucherList, title:{},colors: colors,param:"total",position:['30%', '51%']})
|
|
|
|
},10)
|
|
|
|
}
|
|
|
|
if (res5 && res5.status == 200) {
|
|
|
|
vm.tabledata0=listHandle(res5.data["index_121"],"all", vm);
|
|
|
|
}
|
|
|
|
if (res1 && res1.status == 200) {
|
|
|
|
if(vm.tableParams[0].page==1){
|
|
|
|
vm.diagnosisList=[]
|
|
|
|
}
|
|
|
|
vm.diagnosisList=listHandle(vm.diagnosisList.concat(res1.data),"orderCount",vm)
|
|
|
|
vm.tableParams[0].isloading=false
|
|
|
|
if(res1.data.length<vm.pageSize){
|
|
|
|
vm.tableParams[0].noMore=true
|
|
|
|
}else{
|
|
|
|
vm.tableParams[0].noMore=false
|
|
|
|
}
|
|
|
|
vm.tableParams[0].isloading=false
|
|
|
|
}
|
|
|
|
if (res2 && res2.status == 200) {
|
|
|
|
if(vm.tableParams[1].page==1){
|
|
|
|
vm.drugList=[]
|
|
|
|
}
|
|
|
|
vm.drugList=listHandle(vm.drugList.concat(res2.data),"orderCount",vm)
|
|
|
|
vm.tableParams[1].isloading=false
|
|
|
|
if(res2.data.length< vm.pageSize){
|
|
|
|
vm.tableParams[1].noMore=true
|
|
|
|
}else{
|
|
|
|
vm.tableParams[1].noMore=false
|
|
|
|
}
|
|
|
|
vm.tableParams[1].isloading=false
|
|
|
|
}
|
|
|
|
if (res3 && res3.status == 200) {
|
|
|
|
if(vm.tableParams[2].page==1){
|
|
|
|
vm.itemList=[]
|
|
|
|
}
|
|
|
|
vm.itemList=listHandle(vm.itemList.concat(res3.data),"orderCount",vm)
|
|
|
|
vm.tableParams[2].isloading=false
|
|
|
|
if(res3.data.length< vm.pageSize){
|
|
|
|
vm.tableParams[2].noMore=true
|
|
|
|
}else{
|
|
|
|
vm.tableParams[2].noMore=false
|
|
|
|
}
|
|
|
|
vm.tableParams[0].isloading=false
|
|
|
|
}
|
|
|
|
vm.isloading=false
|
|
|
|
})
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
function listHandle(list,param, vm){
|
|
|
|
var topArr = [];
|
|
|
|
if(list.length==1&&!list[0].name){
|
|
|
|
list=[]
|
|
|
|
}
|
|
|
|
topArr = soreRank(getKeyValueArr(list, param||"amount"));
|
|
|
|
var newlist = _.map(list, function(o, index){
|
|
|
|
o.rank=topArr[index]
|
|
|
|
return o
|
|
|
|
});
|
|
|
|
EventBus.$emit("render-area-data",{
|
|
|
|
});
|
|
|
|
return newlist
|
|
|
|
}
|