new Vue({ el: '#main', data: { roles: [], selectedRole: '', isopen: true, signAnalysis: [ { photo: '../../../images/qianyujingzhan_icon.png', label: '签约进展', url: 'sign-progress.html', allowArea: '' }, { photo: '../../../images/xuqianjingzhan_icon.png', label: '续签进展', url: 'renew-progress.html', allowArea: '' }, { photo: '../../../images/jumingfenxi_icon.png', label: '居民分析', url: 'resident-analysis.html', allowArea: '' }, { photo: '../../../images/jiankangguanli_icon.png', label: '健康管理', url: 'health-management-analysis.html', allowArea: '' }, { photo: '../../../images/tuigaiqian_icon.png', label: '退改签', url: 'change-back.html', allowArea: '' }, { photo: '../../../images/lianglvfenxi_icon.png', label: '两率分析', url: 'two-rate-analysis.html', allowArea: '' } ], serviceAnalysis: [ { photo: '../../../images/zongtifenxi_icon.png', label: '总体分析', url: 'comprehensive-analysis.html', allowArea: '' }, { photo: '../../../images/zixunfenxi_icon.png', label: '咨询分析', url: 'consulting-analysis.html', allowArea: '' }, { photo: '../../../images/pijianfenxi_icon.png', label: '评价分析', url: 'estimate-analysis.html', allowArea: '' }, { photo: '../../../images/changcufangfenxi_icon.png', label: '长处方分析', url: 'prescription-analysis.html', allowArea: '' }, { photo: '../../../images/zhufufenxi_icon_pc.png', label: '祝福分析', url: 'blessing-analysis.html', allowArea: '' }, { photo: '../../../images/shangmenfuwu_icon.png', label: '上门服务', url: 'smfw-analysis.html', allowArea: '' }, { photo: '../../../images/shaichafenxin_icon.png', label: '筛查分析', url: 'jbsc-analysis.html', allowArea: '' }, { photo: '../../../images/zhuanbingfenxi_icon.png', label: '专病分析', url: 'special-analysis.html', allowArea: '' } ], signRateData: { signTask: { text: '', rate: '0.00', sign: 0, people: 0 }, sign: { text: '', rate: '0.00', sign: 0, people: 0 }, renew: { text: '', rate: '0.00', sign: 0, people: 0 } }, dataQuery: [ { photo: '../../../images/shujudaochu_icon.png', label: '数据查询', url: 'comprehensive-query.html', allowArea: '' }, { photo: '../../../images/weijishihuifu_icon.png', label: '咨询未及时回复', url: 'consult-not-reply.html', allowArea: '' }, { photo: '../../../images/icon-baobiao.png', label: '年度考核报表', url: 'annual-appraisal-report.html', allowArea: '' } ], paramValue: '', paramType: '', isGugan: false }, methods: { open: function () { EventBus.$emit('open-click', {}) }, showDetail: function (url) { window.location.href = url }, goToPage: function (val) { var url = 'sign-progress.html' if (val == 2) { url = 'renew-progress.html' } else if (val == 3) { url = 'comprehensive-query.html' } window.location.href = url }, userRoleData: function (v) { var vm = this var roles = window.sessionStorage.getItem('userRole') //如果没有缓存userRole,则说明是第一次进入统计页面,需要重新请求患者信息 // if(!roles){ var vm = this httpRequest.getDoctorInfo().then(function (res) { var docInfo = res.data, userRole = docInfo.userRole if (docInfo.expandLevelName) { vm.isGugan = docInfo.expandLevelName.indexOf('慢病骨干') > -1 } _.each(userRole, function (item, index) { if (item.areas != '350200') { item.roleType = '2' } }) if (docInfo.specialistRole && docInfo.specialistRole.length) { //如果有专科权限 _.each(docInfo.specialistRole, function (item, index) { var hasIndex = _.findIndex(userRole, { areas: item.areas }) if (hasIndex == -1) { //去重 item.roleType = '1' userRole.push(item) } }) } if (userRole.length > 0) { window.sessionStorage.setItem('userRole', JSON.stringify(userRole)) window.localStorage.setItem('docInfo', JSON.stringify(docInfo)) window.sessionStorage.setItem('docInfo', JSON.stringify(docInfo)) vm.roles = userRole vm.selectedRole = vm.getHighestRole(userRole).code var selected = vm.getHighestRole(userRole) window.sessionStorage.setItem('selectedRole', JSON.stringify(selected)) $('#main').removeClass('c-hide') } else if (vm.isGugan) { window.localStorage.setItem('docInfo', JSON.stringify(docInfo)) window.sessionStorage.setItem('docInfo', JSON.stringify(docInfo)) var selected = { code: docInfo.town, areas: docInfo.town, name: docInfo.hospitalName } window.sessionStorage.setItem('selectedRole', JSON.stringify(selected)) $('#main').removeClass('c-hide') } if (userRole.length == 0 && docInfo.specialistRole && docInfo.specialistRole.length == 0 && !vm.isGugan) { top.toastr.warning('您没有权限查看该页面') } }) // }else{ // this.roles = JSON.parse(roles); // if(this.roles.length>0){ // var selected = window.sessionStorage.getItem("selectedRole"); // if(selected && selected!= "undefined") { // this.selectedRole = JSON.parse(selected).code; // } else { // this.selectedRole = this.roles[0].code; // var selected = this.roles[0]; // window.sessionStorage.setItem("selectedRole", JSON.stringify(selected)); // } // $("#main").removeClass("c-hide") // }else{ // top.toastr.warning("您没有权限查看该页面"); // } // } }, paramClick: function (v) { if (v == 'ztfx') { this.showDetail(this.serviceAnalysis[0].url) } else if (v == 'zxfx') { this.showDetail(this.serviceAnalysis[1].url) } else if (v == 'pjfx') { this.showDetail(this.serviceAnalysis[2].url) } else if (v == 'ccffx') { this.showDetail(this.serviceAnalysis[3].url) } else if (v == 'zffx') { this.showDetail(this.serviceAnalysis[4].url) } else if (v == 'smfw') { this.showDetail(this.serviceAnalysis[5].url) } else if (v == 'scfx') { this.showDetail(this.serviceAnalysis[6].url) } else if (v == 'zbfx') { if (this.paramType) { this.showDetail('special-analysis.html?type=' + this.paramType) } else { this.showDetail(this.serviceAnalysis[7].url) } } else if (v == 'sjcx') { this.showDetail(this.dataQuery[0].url) } else if (v == 'jkmzf') { this.showDetail('comprehensive-query.html?iSearch=1') } else if (v == 'gxb') { this.showDetail('comprehensive-query.html?selectType=gxb&iSearch=1') } else if (v == 'ndkhbb') { this.showDetail(this.dataQuery[2].url) } else if (v == 'jmfx') { this.showDetail(this.signAnalysis[2].url) } else if (v == 'jkgl') { this.showDetail(this.signAnalysis[3].url) } else if (v == 'tgq') { this.showDetail(this.signAnalysis[4].url) } }, getHighestRole(userRole) { var vm = this var index = userRole.findIndex(function (item) { return item.code.indexOf(350200) > -1 }) if (index > -1) { return userRole[index] } index = userRole.findIndex(function (item) { return item.code.indexOf('jk_') > -1 }) if (index > -1) { return userRole[index] } index = userRole.findIndex(function (item) { return item.code.length == 6 }) if (index > -1) { return userRole[index] } return userRole[0] } }, mounted: function () { //获取缓存里面的userRole this.userRoleData() //TODO 发布删除这个 // window.location.href = 'comprehensive-query.html' // 获取URL地址 var url = window.location.href // 获取参数部分 var params = url.split('?')[1] // 将参数部分转换为对象 var paramsObj = {} if (params) { var paramsArr = params.split('&') for (var i = 0; i < paramsArr.length; i++) { var param = paramsArr[i].split('=') paramsObj[param[0]] = param[1] } } // 获取指定参数的值 this.paramValue = paramsObj['name'] this.paramType = paramsObj['type'] }, watch: { selectedRole: function (val) { var vm = this var selected = _.findWhere(this.roles, { code: val }) window.sessionStorage.setItem('selectedRole', JSON.stringify(selected)) getSignData(this) console.log(this.selectedRole) if (vm.selectedRole) { vm.paramClick(vm.paramValue) } } // "paramValue":{ // handler:function(v) { // this.paramClick(v) // }, // }, } }) function getSignData(vm) { var code = vm.selectedRole, now = new Date(), params = { area: code, level: code == '350200' ? 4 : code.length == 6 ? 3 : 2, endDate: now.format('yyyy-MM-dd') } statisticAPI.getSignInfo(params).then(function (res) { if (res.status == 200) { var data = res.data vm.signRateData = { signTask: { text: formatRate(data.signTaskRate.rate), rate: '0.00', sign: data.signTaskRate.sign, people: data.signTaskRate.people }, sign: { text: formatRate(data.signRate.rate), rate: '0.00', sign: data.signRate.sign, people: data.signRate.people }, renew: { text: data.renewRange, rate: '0.00', sign: data.renew.split('/')[0], people: data.renew.split('/')[1] } } var val1 = data.signRate.people - data.signRate.sign, val2 = data.signTaskRate.people - data.signTaskRate.sign var signArr = [ { name: '签约数', value: data.signRate.sign }, { name: '未签约数', value: val1 > 0 ? val1 : 0 } ], signTaskArr = [ { name: '签约数', value: data.signTaskRate.sign }, { name: '未达标数', value: val2 > 0 ? val2 : 0 } ], val = data.renew.split('/')[1] - data.renew.split('/')[0], renewArr = [ { name: '续签数', value: data.renew.split('/')[0] }, { name: '未达标数', value: val < 0 ? 0 : val } ], color = ['#12b7f5', '#EBEBF5'] var signChart = drawPieChart('signMain', signArr, color, true) var completeChart = drawPieChart('completeMain', signTaskArr, color, true) var renewChart = drawPieChart('renewMain', renewArr, color, true) window.onresize = function () { signChart.resize() completeChart.resize() renewChart.resize() } } else { console.log(res.msg) } }) } function formatRate(str) { var val = parseFloat(str) return val.toFixed(2) + '%' }