Vue.use(Vuedals.default); new Vue({ el: "#main", data: { height:"", isloading:false, //加载中 start:"", end:"", tabledata:[], //表格数据 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:"", years:[], chooseYear: '', userRole: '', treedata: [], tableHeader:[], defaultProps: { children: 'children', label: 'label' }, pickerOptions:{ disabledDate(time) { return time.getTime() > Date.now() }, }, radio:'1', timeLevel: 2, searchJson:{}, currentPage:1, currentSize:10, datatotal:0, rangeList:[], rangeCode:"", areaList:[], areaCode:"", communityList:[{code:"",name:"全部"}], communityCode:"", teamList:[{code:"",name:"全部"}], teamCode:"", data: [{ label: '明细查询', children: [ {label: '咨询分析', }, {label: '签约分析', }, {label: '专病分析', }, {label: '生日祝福分析', }, {label: '上门服务分析', }, {label: '长处方分析', }, ] }], handleNodeShow:1, handleNodeId:0, radio1:'', radio2:'', radio3:'', radio4:'', radio5:'', radio6:'', radio7:'', radio8:'', cities:[{value:'高血压',num:'1'}, {value:'糖尿病',num:'2'}, {value:'65岁以上人群',num:'3'}, {value:'0-6岁小孩',num:'4'}, {value:'计划生育家庭',num:'5'}, {value:'严重精神障碍',num:'6'}, {value:'残疾人',num:'7'}, {value:'普通人群',num:'8'}, {value:'结核病',num:'9'}, {value:'低保人群',num:'10'}, {value:'孕产妇',num:'11'}, ], checkedCities: [], specialCities:[{value:'冠心病',num:'1'}, {value:'慢性前列腺',num:'2'}, {value:'脑卒中',num:'3'}, {value:'慢性乳腺疾病',num:'4'}, {value:'慢性阻塞性肺病',num:'5'}, {value:'慢性肝病',num:'6'}, {value:'肺癌',num:'7'}, {value:'慢性肾病',num:'8'}, {value:'慢性胃肠病',num:'9'}, {value:'慢性妇科炎症',num:'10'}, ], specialCheckedCities:[], serveCities:[{value:'残疾人',num:'1'}, {value:'失能/半失能老人',num:'2'}, {value:'80岁以上老人',num:'3'}, {value:'肺结核患者',num:'4'}, {value:'计生特殊家庭',num:'5'}, {value:'重性精神病',num:'6'}, {value:'其他',num:'7'}, ], serveSpecialCities:[], options: [{ value: '请选择', label: '' }, { value: '是', label: '1' }, { value: '否', label: '0' },], value: '', form:{ endorseTheTicket:'', renew:'', backToSign:'', WeChat:'', }, form2:{ juniorCollege:'', family:'', resident:'', }, form3:{ family:'', resident:'', }, form4:{ family:'', resident:'', }, form5:{ family:'', resident:'', }, handleData:[], diseaseData:[], serviceTypeData:[], analyseData:[], //分析数据 }, components: { vuedals: Vuedals.Component }, watch: { rangeCode: function (val) { var vm=this if(vm.initlevel != 2){ vm.communityCode="" } vm.teamCode="" vm.getTreeList() }, areaCode:function(val){ var vm=this vm.selChange(3) }, communityCode:function(val){ var vm=this vm.selChange(5) }, }, mounted: function () { var vm=this //初始化数据 initData(vm); vm.height = document.body.offsetHeight - 85 window.onresize = function () { vm.height = document.body.offsetHeight - 85 console.log(vm.height) } }, methods: { // 签约人群 handleCheckedCitiesChange:function(value) { var vm = this vm.handleData = value }, // 下转病种 diseaseChange:function(value) { var vm = this vm.diseaseData = value }, // 服务类型 serviceTypeChange:function(value) { var vm = this vm.serviceTypeData = value }, treedataClick:function(name,data) { var vm = this vm.handleNodeShow = 1 vm.handleNodeId = 0 vm.radio = '1' // initTime(vm) // initScope(vm) }, handleNodeClick:function(name,data) { var vm = this if(data.id>=3) { vm.handleNodeShow = 2 vm.tableHeader = [] vm.analyseData = [] } vm.handleNodeId = data.id vm.radio = '1' initTime(vm) initScope(vm) vm.analysFunction(vm.handleNodeId) }, analysFunction:function(id) { // idcard = idcard.replace(/^(.{6})(?:\d+)(.{4})$/,"$1****$2") 身份证 医保卡 脱敏显示 if(id == 3) { // 咨询分析 }else if(id == 4) { // 签约分析 }else if(id == 5) { // 专病分析 }else if(id == 6) { // 生日祝福分析 }else if(id == 7) { // 上门服务分析 }else if(id == 8) { // 长处方分析 } }, getTreeList:function(){ var vm=this statisticAPI.exportTreeList({rang:vm.rangeCode}).then(function(res){ if(res.status == 200){ vm.treedata = [],jindex=0 _.each(res.data,function(item,index){ vm.treedata.push({ id:"p_"+jindex, label:index, children:[] }) _.each(item,function(citem,cindex){ vm.treedata[jindex].children.push({ id:cindex, label:citem, }) }) jindex++ }) } }) }, beforeReq:function(flag){ var vm=this,startDate="",endDate="",checked=[] if(vm.radio=="1"){ startDate = getStartDate(vm.chooseYear-1) endDate = getEndDate(vm.chooseYear) vm.timeLevel = 2 }else{ if(!vm.start&&!vm.end){ this.$message({ message: '请选择创建时间', type: 'warning' }); return false }else{ if(vm.start>vm.end){ this.$message({ message: '开始时间应早于结束时间', type: 'warning' }); return false }else{ startDate = vm.start endDate = vm.end vm.timeLevel = 1 } } } if(vm.handleNodeId == 0) { var checkTree = vm.$refs.tree.getCheckedNodes(true); if(checkTree.length){ if(!flag){ vm.tableHeader = [] } _.each(checkTree,function(item,index){ if(!flag){ vm.tableHeader.push({prop:item.label,label:item.label}) } checked.push(item.id) }) }else{ this.$message({ message: '请选择搜索指标!', type: 'warning' }); return false } }else if(vm.handleNodeId == 2) { this.$message({ message: '请选择明细查询!', type: 'warning' }); return false } return {start:startDate,end:endDate,checked:checked.join(",")} }, // 查询 searchHandle:function(){ var vm = this,searchJson=undefined console.log("before-pass") searchJson = vm.beforeReq() if(vm.handleNodeId == 0) { if(searchJson){ vm.currentPage = 1 vm.searchJson = { startDate:searchJson.start, endDate:searchJson.end, quotaStr:searchJson.checked, range:vm.rangeCode, team:vm.teamCode, hospital:vm.communityCode, area:vm.areaCode=="350200"?"":vm.areaCode, size:vm.currentSize, page:vm.currentPage, timeLevel: vm.timeLevel } console.log(vm.searchJson,"vm.searchJson") vm.getStatisticDataList() } }else if(vm.handleNodeId == 3) { // 咨询分析 var par = { '开始时间':searchJson.start, '结束时间':searchJson.end, '咨询状态':vm.radio1, '数据范围':vm.rangeCode, '地区':vm.areaCode=="350200"?"":vm.areaCode, '社区':vm.communityCode, '团队':vm.teamCode, } console.log(par,'查询') }else if(vm.handleNodeId == 4) { // 签约分析 var par = { '开始时间':searchJson.start, '结束时间':searchJson.end, '咨询状态':vm.radio2, '签约人群':vm.handleData, "是否改签":vm.form.endorseTheTicket, "是否续签":vm.form.renew, "是否退签":vm.form.backToSign, "绑定微信":vm.form.WeChat, '数据范围':vm.rangeCode, '地区':vm.areaCode=="350200"?"":vm.areaCode, '社区':vm.communityCode, '团队':vm.teamCode, } console.log(vm.handleData,"签约人群多选") console.log(par,'查询') }else if(vm.handleNodeId == 5) { // 专病分析 var par = { '开始时间':searchJson.start, '结束时间':searchJson.end, '下转状态':vm.radio3, '下转病种':vm.diseaseData, "专科医生":vm.form2.juniorCollege, "家庭医生":vm.form2.family, "居民姓名":vm.form2.resident, '数据范围':vm.rangeCode, '地区':vm.areaCode=="350200"?"":vm.areaCode, '社区':vm.communityCode, '团队':vm.teamCode, } console.log(vm.diseaseData,"下转病种多选") console.log(par,'查询') }else if(vm.handleNodeId == 6) { // 生日祝福分析 var par = { '开始时间':searchJson.start, '结束时间':searchJson.end, '发送状态':vm.radio4, "家庭医生":vm.form3.family, "居民姓名":vm.form3.resident, '数据范围':vm.rangeCode, '地区':vm.areaCode=="350200"?"":vm.areaCode, '社区':vm.communityCode, '团队':vm.teamCode, } console.log(par,'查询') }else if(vm.handleNodeId == 7) { // 上门服务分析 var par = { '开始时间':searchJson.start, '结束时间':searchJson.end, '工单状态':vm.radio5, '服务类型':vm.serviceTypeData, "家庭医生":vm.form4.family, "居民姓名":vm.form4.resident, '数据范围':vm.rangeCode, '地区':vm.areaCode=="350200"?"":vm.areaCode, '社区':vm.communityCode, '团队':vm.teamCode, } console.log(vm.serviceTypeData,"服务类型多选") console.log(par,'查询') }else if(vm.handleNodeId == 8) { // 长处方分析 var par = { '开始时间':searchJson.start, '结束时间':searchJson.end, '续方状态':vm.radio6, '疾病类型':vm.radio7, '取药方式':vm.radio8, "家庭医生":vm.form5.family, "居民姓名":vm.form5.resident, '数据范围':vm.rangeCode, '地区':vm.areaCode=="350200"?"":vm.areaCode, '社区':vm.communityCode, '团队':vm.teamCode, } console.log(par,'查询') } }, getStatisticDataList:function(){ var vm = this vm.isloading = true var params=JSON.parse(JSON.stringify(vm.searchJson)) params.page = vm.currentPage statisticAPI.getStatisticDataList(params).then(function(res){ if(res.status == 200) { vm.tabledata = res.data.data vm.datatotal = res.data.total if(vm.tabledata.length){ vm.tableHeader=[] _.each(vm.tabledata[0],function(item,index){ if(index!="town"&&index!="townName"&&index!="hospital"&&index!="hospitalName"&&index!="area"&&index!="areaName"&&index!="code"&&index!="name") vm.tableHeader.push({prop:index,label:index}) }) } } else { vm.$message.error(res.msg) } vm.isloading = false }) }, // 导出 exportHandle:function(){ var vm =this var vm = this,searchJson=undefined searchJson = vm.beforeReq('export') if(vm.handleNodeId == 0) { if(searchJson){ var areaCode = vm.areaCode=="350200"?"":vm.areaCode let str = httpRequest.server + 'statisticsExport/export?startDate='+searchJson.start+'&endDate='+searchJson.end+'"aStr='+searchJson.checked+'&range='+vm.rangeCode+'&area='+areaCode+'&hospital='+vm.communityCode+'&team='+vm.teamCode+'&timeLevel='+vm.timeLevel console.log(str) window.location.href = str } }else if(vm.handleNodeId == 3) { // 咨询分析 }else if(vm.handleNodeId == 4) { // 签约分析 }else if(vm.handleNodeId == 5) { // 专病分析 }else if(vm.handleNodeId == 6) { // 生日祝福分析 }else if(vm.handleNodeId == 7) { // 上门服务分析 }else if(vm.handleNodeId == 8) { // 长处方分析 } }, backClick:function(){ history.go(-1); }, 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', {}); //更新统计时间 initData(vm) }); $("#main").removeClass("c-hide"); }, // 下一页 上一页 handleCurrentChange:function(val) { this.currentPage = val if(vm.handleNodeId == 0) { this.getStatisticDataList() }else if(vm.handleNodeId == 3) { // 咨询分析 }else if(vm.handleNodeId == 4) { // 签约分析 }else if(vm.handleNodeId == 5) { // 专病分析 }else if(vm.handleNodeId == 6) { // 生日祝福分析 }else if(vm.handleNodeId == 7) { // 上门服务分析 }else if(vm.handleNodeId == 8) { // 长处方分析 } }, //获取省市区 type:区3 getDistrict: function(type,code,name) { var vm=this,list = [],param="" if(type == 3){ list = [{code:code,name:name}] param = "area" }else if(type == 5){ list = [{code:"",name:"全部"}] param = "community" } var params={ type:type,code:code } homeAPI.getDistrict(params).then(function(res) { if(res.status == 200) { vm[param+"List"]=list.concat(res.list) vm[param+"Code"]=vm[param+"List"][0].code } else { vm.$message.error(res.msg) } }) }, selChange:function(type){ var vm=this,name="" if(type == 3){ vm.initSelOption("community") vm.initSelOption("team") vm.getCommunityHospital() }else if(type == 5){ vm.initSelOption("team") vm.teamListByArea() } }, initSelOption:function(param){ var vm=this vm[param+"List"]=[{code:"",name:"全部"}] if(param == "team"){ vm[param+"List"]=[{id:"",name:"全部"}] } vm[param+"Code"]=vm[param+"List"][0].code||vm[param+"List"][0].id }, getCommunityHospital:function() { var vm=this,list = [{code:"",name:"全部"}],param="community" homeAPI.getCommunityHospital({area:vm.areaCode=='350200'?"":vm.areaCode}).then(function(res) { if(res.status == 200) { vm[param+"List"]=list.concat(res.data) vm[param+"Code"]=vm[param+"List"][0].code } else { vm.$message.error(res.msg) } }) }, teamListByArea:function() { var vm=this,list = [{id:"",name:"全部"}],param="team" homeAPI.teamListByArea({area:vm.areaCode=='350200'?"":vm.areaCode,hospital:vm.communityCode}).then(function(res) { if(res.status == 200) { vm[param+"List"]=list.concat(res.data) vm[param+"Code"]=vm[param+"List"][0].id } else { vm.$message.error(res.msg) } }) } }, }) // 初始化时间 function initTime(vm){ var now = new Date(); vm.end = now.format("yyyy-MM-dd") var start = now.getTime() - 30*24*60*60*1000 vm.start = new Date(start).format("yyyy-MM-dd") vm.nowyear = vm.chooseYear = now.getFullYear() vm.nowmonth = now.getMonth()+1 vm.years = [] for(i=vm.nowyear; i>=2016; i--){ vm.years.push(i) } } // 数据范围初始化 function initScope(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.rangeList=[{name:"按区",code:"town"},{name:"按社区",code:"hospital"},{name:"按团队",code:"team"}] if(vm.initlevel == 4){ //市获取区 vm.getDistrict(3,vm.initarea,vm.areaTitle.substr(0,3)) vm.rangeCode = vm.rangeList[0].code }else if(vm.initlevel == 3){ //区获取社区 vm.areaList = [{code:vm.initarea,name:vm.areaTitle}] vm.areaCode = vm.initarea vm.rangeCode = vm.rangeList[0].code }else if(vm.initlevel == 2){ //社区获取团队 vm.communityList = [{code:vm.initarea,name:vm.areaTitle}] vm.communityCode = vm.initarea vm.rangeList.shift() vm.rangeCode = vm.rangeList[0].code } vm.searchJson.range = vm.rangeCode } function initData(vm) { initScope(vm) //初始化时间 initTime(vm) vm.tabledata = [] vm.bindEvent() }