special-analysis.js 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755
  1. var reqList = [],reqLists = [[],[],[],[]]; //记录请求的参数和url,用于后退时使用
  2. var colors={"0":"#5b9db5","1":"#ed7d31","2":"#a5a5a5",
  3. "3":"#ffc000","4":"#44c274","5":"#70ad47",
  4. "6":"#255e91","7":"#9e480e","8":"#7e7e7e","9":"#997300","10":"#264478","11":"#43682b","12":"#5b9db5"}
  5. Vue.use(Vuedals.default);
  6. new Vue({
  7. el: "#main",
  8. data: {
  9. isloading:false, //加载中
  10. pageData4:{},
  11. pageData3:{},
  12. pageData2:{},
  13. pageData1:{},
  14. pageData:{},
  15. tabledata01:[],
  16. tabledata02:[],
  17. tabledata1:[],
  18. tabledata2:[],
  19. hastopbar1:true,
  20. hastopbar2:true,
  21. slaveKey1_1:"",
  22. slaveKey1_2:"",
  23. reqListLength8:1,
  24. reqListLength9:1,
  25. reqListLength10:1,
  26. reqListLength11:1,
  27. ttab:1,
  28. tbtab:1,
  29. ltabList:[{},{indexNames:{'turnUpList':"上转人次",'rehabilitationList':'康复下转人次'},xDatas:{},yDatas:{},names:[]},
  30. {indexNames:{'totalServiceList':"总服务人次"},xDatas:{},yDatas:{},names:[]},],
  31. selDateType:undefined, // 1-日,2-周, 3-月
  32. informationShow:true,
  33. information:{code:"1",title:"专病分析",name:"zbfx",tip:"专病分析为统计当前年度至今各个专病康复管理业务动态"},
  34. optionsName:[],
  35. valueName:"",
  36. ptab:1,
  37. //请求页面所需参数
  38. levelList:[{level:"4",areaLevel:"2"},{level:"3",areaLevel:"3"},{level:"2",areaLevel:"4"}], //两种搜索,地区等级对比
  39. areaLevel:"", // 2、市,3、区,4、社区,5、团队\
  40. initareaLevel:"",
  41. initlevel: '',
  42. initarea: '',
  43. level: '',
  44. area: '',
  45. areaTitle: '',
  46. lowLevel:3,
  47. initlowLevel:3,
  48. selectedDateType: 1, //折线图坐标值1-日,2-周,3-月
  49. lowCode: '',
  50. chooseYear: '',
  51. start: "",
  52. end: "",
  53. userRole: '',
  54. reqListLength:1,
  55. activeAreaIndex:0,
  56. hopitalList:[],
  57. chopitalList:[],
  58. hospitalItem:{},
  59. hospitalCode:"",
  60. tabnumber:3,
  61. activeIndex:0,
  62. isHospital:false, //判断是否切换到医院权限
  63. },
  64. components: {
  65. vuedals: Vuedals.Component
  66. },
  67. mounted: function () {
  68. var vm=this
  69. //初始化数据
  70. initData(vm);
  71. vm.bindEvent()
  72. },
  73. watch:{
  74. areaTitle:function(val){
  75. //更新区域名称
  76. EventBus.$emit('update-area-name', {
  77. 'areaName': val
  78. });
  79. },
  80. chooseYear:function(val){
  81. //更新年份
  82. EventBus.$emit('update-statistics-year', {
  83. 'selectDate': val
  84. });
  85. },
  86. },
  87. methods: {
  88. getData:function(isNext,index){ //是否下转
  89. var vm = this
  90. var params={
  91. areaLevel: vm.areaLevel,
  92. level: vm.level,
  93. area: vm.area,
  94. endDate: vm.end,
  95. startDate: vm.start,
  96. lowLevel: vm.lowLevel,
  97. index:index
  98. }
  99. if(index){
  100. loadData([index], vm);
  101. }else{
  102. loadData([0,1,2,3,4,5,6,7,8,9,10,11], vm); //刷新数据
  103. }
  104. if(isNext){
  105. //存储请求所带的参数
  106. reqList.push(params);
  107. if(index){
  108. reqLists[index-8].push(params)
  109. vm["reqListLength"+index] = reqLists[index-8].length+1
  110. }
  111. }
  112. },
  113. //表格tab切换/下转
  114. getnewdata:function(arg,index){
  115. var vm = this
  116. if(arg.level){
  117. vm.level = arg.level
  118. vm.areaLevel = _.find(vm.levelList,{level:vm.level}).areaLevel
  119. }
  120. if(arg.area){
  121. vm.area = arg.area
  122. }
  123. if(arg.areaTitle){
  124. vm.areaTitle = arg.areaTitle
  125. }
  126. if(arg.lowLevel){
  127. vm.lowLevel=arg.lowLevel
  128. }else{
  129. if(vm.areaLevel){
  130. vm.lowLevel=arg.area == '350200' ? 3 : vm.area.length == 6 ? 4 : 5;
  131. }else{
  132. vm.lowLevel = arg.lowLevel || ""
  133. }
  134. }
  135. vm.getData(arg.level,index) //有传level,说明是下转
  136. },
  137. getnewdata1:function(arg){
  138. var vm = this
  139. if(vm.hastopbar1){ //服务项时
  140. vm.hastopbar1 = false
  141. vm.slaveKey1_1 = arg.area
  142. vm.area=vm.initarea
  143. vm.areaLevel=vm.initareaLevel
  144. vm.level=vm.initlevel
  145. vm.lowLevel = vm.initlowLevel
  146. vm.getData(true,8)
  147. }else{
  148. vm.getnewdata(arg,8)
  149. }
  150. },
  151. getnewdata2:function(arg){
  152. var vm = this
  153. if(vm.hastopbar2){ //服务项时
  154. vm.hastopbar2 = false
  155. vm.slaveKey1_2 = arg.area
  156. vm.area=vm.initarea
  157. vm.areaLevel=vm.initareaLevel
  158. vm.level=vm.initlevel
  159. vm.lowLevel = vm.initlowLevel
  160. vm.getData(true,9)
  161. }else{
  162. vm.getnewdata(arg,9)
  163. }
  164. },
  165. getnewdata01:function(arg){
  166. var vm = this
  167. vm.getnewdata(arg,10)
  168. },
  169. getnewdata02:function(arg){
  170. var vm = this
  171. vm.getnewdata(arg,11)
  172. },
  173. backClickHandel:function(index,lIndex,refIndex){
  174. var vm=this
  175. var hasIndex = _.findLastIndex(reqList,{index:index})
  176. reqList.splice(hasIndex,1);
  177. var preInfo = reqLists[lIndex].pop();
  178. var info = reqLists[lIndex][reqLists[lIndex].length - 1];
  179. if(reqLists[lIndex].length==0){
  180. if(refIndex=='1'||refIndex=='2'){
  181. vm["hastopbar"+refIndex] = true
  182. vm["slaveKey1_"+refIndex] = ""
  183. info = preInfo
  184. }else{
  185. info = reqList[0]
  186. }
  187. }
  188. vm.areaLevel = info.areaLevel;
  189. vm.level = info.level;
  190. vm.area = info.area;
  191. vm.lowLevel = info.lowLevel;
  192. vm["reqListLength"+index] = reqLists[lIndex].length+1
  193. vm.getData(false,index)
  194. vm.$refs["tableRef_"+refIndex].changeTab({level:vm.level,lowlevel:vm.lowLevel}) //表格tab
  195. },
  196. backClick2:function(){
  197. var vm=this
  198. vm.backClickHandel(10,2,'01')
  199. },
  200. backClick3:function(){
  201. var vm=this
  202. vm.backClickHandel(11,3,'02')
  203. },
  204. backClick0:function(){
  205. var vm=this
  206. vm.backClickHandel(8,0,'1')
  207. },
  208. backClick1:function(){
  209. var vm=this
  210. vm.backClickHandel(9,1,'2')
  211. },
  212. //时间选择
  213. changeDate: function () {
  214. var vm=this
  215. //搜索时,取消下转记录
  216. vm.area=vm.initarea
  217. vm.areaLevel=vm.initareaLevel
  218. vm.level=vm.initlevel
  219. vm.lowLevel = vm.initlowLevel
  220. reqHistoryInit(vm)
  221. vm.getData(true)
  222. vm.initTable()
  223. },
  224. //获取疾病筛查表
  225. getOptionsName:function(){
  226. var vm=this
  227. vm.optionsName = [{code:"",name:"全部病种"}]
  228. params = {
  229. area:vm.initarea,
  230. level:vm.initareaLevel
  231. };
  232. statisticAPI.specialistAnalysisDiseaseType(params).then(function(res) {
  233. if(res.status == 200) {
  234. vm.optionsName = [{code:"",name:"全部病种("+res.data.length+"个)"}]
  235. vm.optionsName=vm.optionsName.concat(res.data)
  236. } else {
  237. vm.$message.error(res.msg)
  238. }
  239. })
  240. },
  241. //筛查表切换
  242. seleName:function(){
  243. var vm=this
  244. vm.changeDate()
  245. },
  246. //切换line
  247. showTab:function(ptab){
  248. var vm=this
  249. if(ptab){
  250. vm.ptab=ptab
  251. }
  252. setTimeout(function(){
  253. EventBus.$emit("draw-line-chart", {
  254. panelName : "分级诊疗情况",
  255. quotaNames : vm.ltabList[vm.ptab].names,
  256. xData : vm.ltabList[vm.ptab].xDatas[0],
  257. yDatas : vm.ltabList[vm.ptab].yDatas,
  258. colors : ["#17b3ec",'#FF9526'],
  259. nowlineid : 'lineChart'+vm.ptab,
  260. noDateType: true,
  261. chartheight:"260",
  262. unit:"人",
  263. noshowDate:false,
  264. });
  265. },300)
  266. },
  267. showtTab:function(ttab){
  268. var vm=this
  269. },
  270. showtbTab:function(tbtab){
  271. var vm=this
  272. },
  273. backClick:function(){
  274. var vm=this
  275. if(vm.isHospital){
  276. initData(vm)
  277. }else{
  278. history.go(-1);
  279. }
  280. // if (reqList.length == 1) {
  281. // history.go(-1);
  282. // } else {
  283. // var lastInfo = reqList[reqList.length-1]
  284. // if(lastInfo.index){
  285. // var idx = lastInfo.index - 8
  286. // vm["backClick"+idx]()
  287. // }
  288. // }
  289. },
  290. bindEvent:function(){
  291. var vm=this
  292. //监听后退按钮的操作
  293. EventBus.$on("back-click", function (arg) {
  294. EventBus.$emit('update-statistics-time', {}); //更新统计时间
  295. vm.backClick()
  296. });
  297. //监听页面刷新
  298. EventBus.$on("refresh-click", function (arg) {
  299. EventBus.$emit('update-statistics-time', {}); //更新统计时间
  300. initData(vm)
  301. });
  302. //弹出筛选框
  303. EventBus.$on('filter-click', function(arg) {
  304. //弹框显示筛选条件
  305. Vuedals.Bus.$emit('new', {
  306. title: '条件筛选',
  307. onClose:function(data){
  308. vm.chooseYear = data.chooseYear;
  309. if(vm.chooseYear){
  310. vm.selDateType = undefined
  311. vm.end = getEndDate(vm.chooseYear)
  312. vm.start = getStartDate(vm.chooseYear)
  313. }else{
  314. vm.selDateType = "按"+data.dimensionVal
  315. vm.end = getDateBefore(0)
  316. if(data.dimensionVal == '日'){
  317. vm.start = getDateBefore(1)
  318. }else if(data.dimensionVal == '周'){
  319. vm.start = getDateBefore(7)
  320. }else if(data.dimensionVal == '月'){
  321. vm.start = getDateBefore(30)
  322. }
  323. }
  324. vm.changeDate()
  325. EventBus.$emit('update-statistics-time', {});//更新统计时间
  326. //更新维度名称
  327. EventBus.$emit('update-dimension-name', {
  328. "dimensionVal" : vm.selDateType
  329. });
  330. },
  331. component: 'special-filter',
  332. props: {
  333. selectedYear: vm.chooseYear,
  334. minYear:2020,
  335. dimensionValList:['日','周','月'],
  336. }
  337. });
  338. });
  339. $("#main").removeClass("c-hide");
  340. },
  341. initTable:function(){
  342. var vm=this
  343. var tabList1 = [{name:"各区",level:"4",lowlevel:"3",isShow:true},{name:"医院",level:"3",lowlevel:"4",isShow:true},{name:"团队",level:"2",lowlevel:"5",isShow:true}]
  344. var tabList2 = [{name:"各区",level:"4",lowlevel:"3",isShow:true},{name:"社区",level:"3",lowlevel:"4",isShow:true},{name:"团队",level:"2",lowlevel:"5",isShow:true}]
  345. var tabList01 = JSON.parse(JSON.stringify(tabList1)),tabList02 = JSON.parse(JSON.stringify(tabList2))
  346. vm.$refs.tableRef_01.initTable({
  347. //表格表头
  348. tabList:tabList01,
  349. headers:[{thead:"地区",param:"name",canclick:true},{thead:"共管患者数",param:"coManagementNum"},
  350. {thead:"转诊人数",param:"referralNum"},{thead:"下转人数",param:"rehabilitationNum"},{thead:"总服务人数",param:"totalServiceNum"}],
  351. tabnumber:vm.tabnumber,
  352. })
  353. vm.$refs.tableRef_02.initTable({
  354. //表格表头
  355. tabList:tabList02,
  356. headers:[{thead:"地区",param:"name",canclick:true},{thead:"共管患者数",param:"coManagementNum"},
  357. {thead:"转诊人数",param:"referralNum"},{thead:"下转人数",param:"rehabilitationNum"},{thead:"总服务人数",param:"totalServiceNum"}],
  358. tabnumber:vm.tabnumber,
  359. })
  360. var tabItem = {name:"服务项名称"}
  361. tabList1.splice(3-vm.tabnumber,0,tabItem)
  362. tabList2.splice(3-vm.tabnumber,0,tabItem)
  363. vm.$refs.tableRef_1.initTable({
  364. //表格表头
  365. tabList:tabList1,
  366. headers:[{thead:"服务项名称",param:"name",canclick:true},{thead:"合计",param:"num"}],
  367. tabnumber:vm.tabnumber+1,
  368. })
  369. vm.$refs.tableRef_2.initTable({
  370. //表格表头
  371. tabList:tabList2,
  372. headers:[{thead:"服务项名称",param:"name",canclick:true},{thead:"合计",param:"num"}],
  373. tabnumber:vm.tabnumber+1,
  374. })
  375. },
  376. comfireHospital:function(){
  377. var vm = this
  378. if(vm.hospitalCode){
  379. vm.loadding = true
  380. vm.isHospital = true
  381. //level:2、市,3、区,4、社区,5、团队
  382. vm.initareaLevel = vm.areaLevel = vm.hospitalCode == '350200' ? 2 : vm.hospitalCode.length == 6 ? 3 : 4;
  383. vm.initlevel = vm.level = vm.hospitalCode == '350200' ? 4 : vm.hospitalCode.length == 6 ? 3 : 2;
  384. vm.initlowLevel = vm.lowLevel = vm.hospitalCode == '350200' ? 3 : vm.hospitalCode.length == 6 ? 4 : 5;
  385. vm.initarea =vm.area = vm.hospitalCode;
  386. vm.areaTitle = vm.hospitalItem.name;
  387. if(vm.activeAreaIndex=="1"){ //0:等级医院 1社区医院
  388. vm.tbtab = 2
  389. }else{
  390. vm.tbtab = 1
  391. }
  392. vm.tabnumber=vm.areaLevel==4?1:vm.areaLevel==3?2:3 //表格显示的tab数
  393. //初始化时间
  394. vm.chooseYear = getSignDate()
  395. vm.selDateType = undefined
  396. vm.end = getEndDate(vm.chooseYear)
  397. vm.start = getStartDate(vm.chooseYear)
  398. vm.changeDate()
  399. vm.getOptionsName() //获取搜索疾病列表
  400. vm.initTable()
  401. }
  402. },
  403. hopitalListShow:function(){
  404. var vm = this
  405. //弹框显示筛选条件
  406. Vuedals.Bus.$emit('new', {
  407. title: '条件筛选',
  408. onClose:function(data){
  409. if(data){
  410. vm.hospitalItem = data.hospitalItem
  411. vm.hospitalCode = data.hospitalCode
  412. vm.activeAreaIndex = data.activeName
  413. vm.comfireHospital()
  414. }
  415. },
  416. component: 'hospital-filter',
  417. props: {
  418. chopitalList:vm.chopitalList,
  419. hopitalList:vm.hopitalList,
  420. }
  421. });
  422. }
  423. }
  424. })
  425. function initData(vm) {
  426. //获得缓存中缓存的角色权限
  427. var userRole = window.sessionStorage.getItem("selectedRole");
  428. if (!userRole) {
  429. return false;
  430. }
  431. vm.userRole = JSON.parse(userRole);
  432. //level:2、市,3、区,4、社区,5、团队
  433. vm.initareaLevel = vm.areaLevel = vm.userRole.code == '350200' ? 2 : vm.userRole.code.length == 6 ? 3 : 4;
  434. vm.initlevel = vm.level = vm.userRole.code == '350200' ? 4 : vm.userRole.code.length == 6 ? 3 : 2;
  435. vm.initlowLevel = vm.lowLevel = vm.userRole.code == '350200' ? 3 : vm.userRole.code.length == 6 ? 4 : 5;
  436. vm.initarea =vm.area = vm.userRole.code;
  437. vm.areaTitle = vm.userRole.name;
  438. if(vm.initlevel==2){
  439. if(vm.userRole.roleType == '2'){
  440. vm.tbtab = 2
  441. }else if(vm.userRole.roleType == '1'){
  442. vm.tbtab = 1
  443. }
  444. }else{
  445. if(vm.isHospital){
  446. vm.isHospital = false
  447. vm.hospitalCode = ""
  448. vm.hospitalItem = {}
  449. }else{
  450. selectHospital(vm,1,'hopitalList')
  451. selectHospital(vm,2,'chopitalList')
  452. }
  453. }
  454. vm.tabnumber=vm.areaLevel==4?1:vm.areaLevel==3?2:3 //表格显示的tab数
  455. //初始化时间
  456. vm.chooseYear = getSignDate()
  457. vm.selDateType = undefined
  458. vm.end = getEndDate(vm.chooseYear)
  459. vm.start = getStartDate(vm.chooseYear)
  460. vm.changeDate()
  461. vm.getOptionsName() //获取搜索疾病列表
  462. vm.initTable()
  463. }
  464. function reqHistoryInit(vm){
  465. reqList = []
  466. reqLists = [[],[],[],[]]
  467. _.each(reqLists,function(item,idx){
  468. var index = 8+idx
  469. vm["reqListLength"+index] = item.length+1
  470. })
  471. vm.slaveKey1_1 = ""
  472. vm.slaveKey1_2 = ""
  473. vm.hastopbar1 = true
  474. vm.hastopbar2 = true
  475. }
  476. function initReqParams(vm) {
  477. var param = {
  478. startDate: vm.start,
  479. endDate: vm.end,
  480. area: vm.area,
  481. level: vm.areaLevel,
  482. diseaseType:vm.valueName,
  483. }
  484. var reqParam = [{
  485. url: "/specialistStatistics/specialistAnalysisHead", //头部
  486. reqType: 'get',
  487. data:{
  488. diseaseType:vm.valueName,
  489. area: vm.area,
  490. level: vm.areaLevel, //2、市,3、区,4、社区,5、团队
  491. },
  492. },{
  493. url: "/specialistStatistics/specialistAnalysisHeadCount", //头部统计
  494. reqType: 'get',
  495. data:param,
  496. },{
  497. url: "/specialistStatistics/diagnosisTreatment", //分级诊疗形式(转诊趋势)
  498. reqType: 'get',
  499. data:{
  500. startDate: vm.start,
  501. endDate: vm.end,
  502. area: vm.area,
  503. level: vm.areaLevel,
  504. diseaseType:vm.valueName,
  505. interval:1,
  506. type:1, //转诊趋势
  507. },
  508. },{
  509. url: "/specialistStatistics/diagnosisTreatment", //分级诊疗形式(服务人数)
  510. reqType: 'get',
  511. data:{
  512. startDate: vm.start,
  513. endDate: vm.end,
  514. area: vm.area,
  515. level: vm.areaLevel,
  516. diseaseType:vm.valueName,
  517. interval:1,
  518. type:2, //服务人数
  519. },
  520. },{
  521. url: "/specialistStatistics/diseaseTypeAnalysis", //疾病类型分析
  522. reqType: 'get',
  523. data:param,
  524. },{
  525. url: "/specialistStatistics/dailyHealthServices", //日常健康服务
  526. reqType: 'get',
  527. data:param,
  528. },{
  529. url: "/specialistStatistics/onlineDiagnosisTreatment", //在线诊疗情况
  530. reqType: 'get',
  531. data:param,
  532. },{
  533. url: "/specialistStatistics/rehabilitationPhoneRange", //电话/短信关怀率
  534. reqType: 'get',
  535. data:param,
  536. },{
  537. url: "/specialistStatistics/coManagementRehabilitation", //康复共管情况
  538. reqType: 'get',
  539. data:{
  540. startDate: vm.start,
  541. endDate: vm.end,
  542. area: vm.area,
  543. level: vm.areaLevel,
  544. diseaseType:vm.valueName,
  545. type:1, //等级医院
  546. slaveKey1:vm.slaveKey1_1,
  547. lowLevel:vm.slaveKey1_1?vm.lowLevel:""
  548. },
  549. },{
  550. url: "/specialistStatistics/coManagementRehabilitation", //康复共管情况
  551. reqType: 'get',
  552. data:{
  553. startDate: vm.start,
  554. endDate: vm.end,
  555. area: vm.area,
  556. level: vm.areaLevel,
  557. diseaseType:vm.valueName,
  558. type:2, //社区医院
  559. slaveKey1:vm.slaveKey1_2,
  560. lowLevel:vm.slaveKey1_2?vm.lowLevel:""
  561. },
  562. },{
  563. url: "/specialistStatistics/serviceRankingAnalysis", //-专病服务排名分析/医院总体服务情况
  564. reqType: 'get',
  565. data:{
  566. startDate: vm.start,
  567. endDate: vm.end,
  568. area: vm.area,
  569. level: vm.areaLevel,
  570. diseaseType:vm.valueName,
  571. type:1,
  572. lowLevel:vm.lowLevel
  573. },
  574. },{
  575. url: "/specialistStatistics/serviceRankingAnalysis", //-专病服务排名分析/医院总体服务情况
  576. reqType: 'get',
  577. data:{
  578. startDate: vm.start,
  579. endDate: vm.end,
  580. area: vm.area,
  581. level: vm.areaLevel,
  582. diseaseType:vm.valueName,
  583. type:2,
  584. lowLevel:vm.lowLevel
  585. },
  586. }];
  587. return reqParam;
  588. }
  589. function loadData(loadArr, vm) {
  590. //获取其他请求的参数
  591. var reqParams = initReqParams(vm),
  592. reqPromise = [],
  593. newArr = []; //记录非顶部请求的请求数组
  594. for (i = 0; i < loadArr.length; i++) {
  595. var j = loadArr[i];
  596. var param = reqParams[j];
  597. reqPromise.push(httpRequest.get(param.url, {
  598. data: param.data
  599. }));
  600. newArr.push(loadArr[i]);
  601. }
  602. vm.isloading=true
  603. if (reqPromise.length > 0) {
  604. Promise.all(reqPromise).then(function (ress) {
  605. var res1, res2, res3, res4, res5, res6, res7, res8, res9, res10, res11, res12;
  606. for (var i = 0; i < loadArr.length; i++) {
  607. var j = loadArr[i] + 1;
  608. if (j == 1) { res1 = ress[i]; }
  609. if (j == 2) { res2 = ress[i]; }
  610. if (j == 3) { res3 = ress[i]; }
  611. if (j == 4) { res4 = ress[i]; }
  612. if (j == 5) { res5 = ress[i]; }
  613. if (j == 6) { res6 = ress[i]; }
  614. if (j == 7) { res7 = ress[i]; }
  615. if (j == 8) { res8 = ress[i]; }
  616. if (j == 9) { res9 = ress[i]; }
  617. if (j == 10) { res10 = ress[i]; }
  618. if (j == 11) { res11 = ress[i]; }
  619. if (j == 12) { res12 = ress[i]; }
  620. }
  621. if(res1&& res1.status == 200){
  622. vm.pageData=res1.data
  623. }
  624. if(res2&& res2.status == 200){
  625. vm.pageData1=res2.data
  626. }
  627. if(res3&& res3.status == 200){
  628. handleSecondPanelData(res3.data ,1, vm)
  629. }
  630. if(res4&& res4.status == 200){
  631. handleSecondPanelData(res4.data ,2, vm)
  632. }
  633. if(res5&& res5.status == 200){
  634. var barData = {rehabilitationNum:[],rehabilitationTimes:[]}
  635. _.each(res5.data,function(item,index){
  636. barData.rehabilitationNum.push({
  637. range:item.name,
  638. amount:item.num
  639. })
  640. barData.rehabilitationTimes.push({
  641. range:item.name,
  642. amount:item.times
  643. })
  644. })
  645. getBarData({elId:'barChart', data:barData,
  646. indexNames:{"rehabilitationNum":"下转人数","rehabilitationTimes":"下转人次"},selectedDateType:vm.selectedDateType,hasLegend:true,colors:["#17b3ec",'#20D7AD'],units:{"下转人数":"人","下转人次":"人次"}})
  647. }
  648. if(res6&& res6.status == 200){
  649. vm.pageData2=res6.data
  650. }
  651. if(res7&& res7.status == 200){
  652. vm.pageData3=res7.data
  653. }
  654. if(res8&& res8.status == 200){
  655. vm.pageData4=res8.data
  656. }
  657. if(res9&& res9.status == 200){
  658. var data9 = _.map(res9.data,function(item){
  659. item.num = item.num||item.amount||0
  660. return item
  661. })
  662. vm.tabledata1=listHandle(data9,"num");
  663. }
  664. if(res10&& res10.status == 200){
  665. var data10 = _.map(res10.data,function(item){
  666. item.num = item.num||item.amount||0
  667. return item
  668. })
  669. vm.tabledata2=listHandle(data10,"num");
  670. }
  671. if(res11&& res11.status == 200){
  672. vm.tabledata01=listHandle(res11.data,"totalServiceNum");
  673. }
  674. if(res12&& res12.status == 200){
  675. vm.tabledata02=listHandle(res12.data,"totalServiceNum");
  676. }
  677. vm.isloading=false
  678. })
  679. }
  680. }
  681. function handleSecondPanelData(data,index, vm) {
  682. var xDatas = [],
  683. yDatas = [],
  684. names = []
  685. for(var p in data){
  686. names.push(vm.ltabList[index].indexNames[p]);
  687. xData = _.map(data[p], function(o){
  688. return o.range;
  689. });
  690. yData = _.map(data[p], function(o){
  691. return o.amount;
  692. });
  693. xDatas.push(xData);
  694. yDatas.push(yData);
  695. }
  696. vm.ltabList[index].xDatas = xDatas
  697. vm.ltabList[index].yDatas = yDatas
  698. vm.ltabList[index].names = names
  699. if(vm.ptab == index){
  700. vm.showTab()
  701. }
  702. }
  703. function listHandle(list, sort){
  704. var topArr = [],newList=[];
  705. if(list.length==1&&!list[0].name){
  706. list=[]
  707. }
  708. topArr = soreRank(getKeyValueArr(list, sort||'total'));
  709. newList = _.map(list, function(o, index){
  710. o.rank=topArr[index]
  711. return o
  712. });
  713. return newList
  714. }
  715. function selectHospital(vm,index,param) {
  716. var url = "/specialistStatistics/selectHospital",
  717. params = {
  718. town:vm.initarea,
  719. level:index
  720. };
  721. statisticAPI.selectHospital(params).then(function(res) {
  722. if(res.status == 200) {
  723. vm[param] = res.data
  724. } else {
  725. vm.$message.error(res.msg)
  726. }
  727. })
  728. }