123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387 |
- 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,
- reqListLength:1,
- },
- 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);
- vm.reqListLength=reqList.length
- }else{
- reqList[reqList.length-1]=params
- vm.reqListLength=reqList.length
- }
- },
- //加载上边三个表格
- 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(){
- },
- backClick:function(){
- var vm=this
- 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
- }
- },
- bindEvent:function(){
- var vm=this
- //监听后退按钮的操作
- EventBus.$on("back-click", function (arg) {
- EventBus.$emit('update-statistics-time', {}); //更新统计时间
- vm.backClick()
- });
- //监听页面刷新
- 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,style:{width:'260px'}},{thead:"工单量(个)",param:"orderCount"}],
- })
- vm.$refs.tableRef2.initTable({
- //表格表头
- headers:[{thead:"服务项目",param:"name",canclick:true,style:{width:'260px'}},{thead:"使用人数(人)",param:"patientCount"},{thead:"工单量(个)",param:"orderCount"}],
- })
- vm.$refs.tableRef3.initTable({
- //表格表头
- headers:[{thead:"药品",param:"name",canclick:true,style:{width:'260px'}},{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"},{thead:"待派单(个)",param:"waitinglist"},{thead:"待接单(个)",param:"waitingorder"},
- // {thead:"已接单(个)",param:"waitingservice"},
- {thead:"待服务(个)",param:"waitingpay"},{thead:"待评价(个)",param:"waitingcomment"},{thead:"已完成(个)",param:"completed"},{thead:"评价均分(分)",param:"evaluateSplit"}],
- 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,
- startDate:vm.start,
- 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",
- startDate:vm.start,
- endDate:vm.end,
- },
- },{
- 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",
- startDate:vm.start,
- endDate:vm.end,
- },
- },{
- 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
- // vm.topData.evaluateSplit=parseFloat(vm.topData.evaluateSplit).toFixed(2)
- 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
- }
|