special-analysis.js 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757
  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. startDate:vm.start,
  265. endDate:vm.end,
  266. });
  267. },300)
  268. },
  269. showtTab:function(ttab){
  270. var vm=this
  271. },
  272. showtbTab:function(tbtab){
  273. var vm=this
  274. },
  275. backClick:function(){
  276. var vm=this
  277. if(vm.isHospital){
  278. initData(vm)
  279. }else{
  280. history.go(-1);
  281. }
  282. // if (reqList.length == 1) {
  283. // history.go(-1);
  284. // } else {
  285. // var lastInfo = reqList[reqList.length-1]
  286. // if(lastInfo.index){
  287. // var idx = lastInfo.index - 8
  288. // vm["backClick"+idx]()
  289. // }
  290. // }
  291. },
  292. bindEvent:function(){
  293. var vm=this
  294. //监听后退按钮的操作
  295. EventBus.$on("back-click", function (arg) {
  296. EventBus.$emit('update-statistics-time', {}); //更新统计时间
  297. vm.backClick()
  298. });
  299. //监听页面刷新
  300. EventBus.$on("refresh-click", function (arg) {
  301. EventBus.$emit('update-statistics-time', {}); //更新统计时间
  302. initData(vm)
  303. });
  304. //弹出筛选框
  305. EventBus.$on('filter-click', function(arg) {
  306. //弹框显示筛选条件
  307. Vuedals.Bus.$emit('new', {
  308. title: '条件筛选',
  309. onClose:function(data){
  310. vm.chooseYear = data.chooseYear;
  311. if(vm.chooseYear){
  312. vm.selDateType = undefined
  313. vm.end = getEndDate(vm.chooseYear)
  314. vm.start = getStartDate(vm.chooseYear)
  315. }else{
  316. vm.selDateType = "按"+data.dimensionVal
  317. vm.end = getDateBefore(0)
  318. if(data.dimensionVal == '日'){
  319. vm.start = getDateBefore(1)
  320. }else if(data.dimensionVal == '周'){
  321. vm.start = getDateBefore(7)
  322. }else if(data.dimensionVal == '月'){
  323. vm.start = getDateBefore(30)
  324. }
  325. }
  326. vm.changeDate()
  327. EventBus.$emit('update-statistics-time', {});//更新统计时间
  328. //更新维度名称
  329. EventBus.$emit('update-dimension-name', {
  330. "dimensionVal" : vm.selDateType
  331. });
  332. },
  333. component: 'special-filter',
  334. props: {
  335. selectedYear: vm.chooseYear,
  336. minYear:2020,
  337. dimensionValList:['日','周','月'],
  338. }
  339. });
  340. });
  341. $("#main").removeClass("c-hide");
  342. },
  343. initTable:function(){
  344. var vm=this
  345. var tabList1 = [{name:"各区",level:"4",lowlevel:"3",isShow:true},{name:"医院",level:"3",lowlevel:"4",isShow:true},{name:"团队",level:"2",lowlevel:"5",isShow:true}]
  346. var tabList2 = [{name:"各区",level:"4",lowlevel:"3",isShow:true},{name:"社区",level:"3",lowlevel:"4",isShow:true},{name:"团队",level:"2",lowlevel:"5",isShow:true}]
  347. var tabList01 = JSON.parse(JSON.stringify(tabList1)),tabList02 = JSON.parse(JSON.stringify(tabList2))
  348. vm.$refs.tableRef_01.initTable({
  349. //表格表头
  350. tabList:tabList01,
  351. headers:[{thead:"地区",param:"name",canclick:true},{thead:"共管患者数",param:"coManagementNum"},
  352. {thead:"转诊人数",param:"referralNum"},{thead:"下转人数",param:"rehabilitationNum"},{thead:"总服务人数",param:"totalServiceNum"}],
  353. tabnumber:vm.tabnumber,
  354. })
  355. vm.$refs.tableRef_02.initTable({
  356. //表格表头
  357. tabList:tabList02,
  358. headers:[{thead:"地区",param:"name",canclick:true},{thead:"共管患者数",param:"coManagementNum"},
  359. {thead:"转诊人数",param:"referralNum"},{thead:"下转人数",param:"rehabilitationNum"},{thead:"总服务人数",param:"totalServiceNum"}],
  360. tabnumber:vm.tabnumber,
  361. })
  362. var tabItem = {name:"服务项名称"}
  363. tabList1.splice(3-vm.tabnumber,0,tabItem)
  364. tabList2.splice(3-vm.tabnumber,0,tabItem)
  365. vm.$refs.tableRef_1.initTable({
  366. //表格表头
  367. tabList:tabList1,
  368. headers:[{thead:"服务项名称",param:"name",canclick:true},{thead:"合计",param:"num"}],
  369. tabnumber:vm.tabnumber+1,
  370. })
  371. vm.$refs.tableRef_2.initTable({
  372. //表格表头
  373. tabList:tabList2,
  374. headers:[{thead:"服务项名称",param:"name",canclick:true},{thead:"合计",param:"num"}],
  375. tabnumber:vm.tabnumber+1,
  376. })
  377. },
  378. comfireHospital:function(){
  379. var vm = this
  380. if(vm.hospitalCode){
  381. vm.loadding = true
  382. vm.isHospital = true
  383. //level:2、市,3、区,4、社区,5、团队
  384. vm.initareaLevel = vm.areaLevel = vm.hospitalCode == '350200' ? 2 : vm.hospitalCode.length == 6 ? 3 : 4;
  385. vm.initlevel = vm.level = vm.hospitalCode == '350200' ? 4 : vm.hospitalCode.length == 6 ? 3 : 2;
  386. vm.initlowLevel = vm.lowLevel = vm.hospitalCode == '350200' ? 3 : vm.hospitalCode.length == 6 ? 4 : 5;
  387. vm.initarea =vm.area = vm.hospitalCode;
  388. vm.areaTitle = vm.hospitalItem.name;
  389. if(vm.activeAreaIndex=="1"){ //0:等级医院 1社区医院
  390. vm.tbtab = 2
  391. }else{
  392. vm.tbtab = 1
  393. }
  394. vm.tabnumber=vm.areaLevel==4?1:vm.areaLevel==3?2:3 //表格显示的tab数
  395. //初始化时间
  396. vm.chooseYear = getSignDate()
  397. vm.selDateType = undefined
  398. vm.end = getEndDate(vm.chooseYear)
  399. vm.start = getStartDate(vm.chooseYear)
  400. vm.changeDate()
  401. vm.getOptionsName() //获取搜索疾病列表
  402. vm.initTable()
  403. }
  404. },
  405. hopitalListShow:function(){
  406. var vm = this
  407. //弹框显示筛选条件
  408. Vuedals.Bus.$emit('new', {
  409. title: '条件筛选',
  410. onClose:function(data){
  411. if(data){
  412. vm.hospitalItem = data.hospitalItem
  413. vm.hospitalCode = data.hospitalCode
  414. vm.activeAreaIndex = data.activeName
  415. vm.comfireHospital()
  416. }
  417. },
  418. component: 'hospital-filter',
  419. props: {
  420. chopitalList:vm.chopitalList,
  421. hopitalList:vm.hopitalList,
  422. }
  423. });
  424. }
  425. }
  426. })
  427. function initData(vm) {
  428. //获得缓存中缓存的角色权限
  429. var userRole = window.sessionStorage.getItem("selectedRole");
  430. if (!userRole) {
  431. return false;
  432. }
  433. vm.userRole = JSON.parse(userRole);
  434. //level:2、市,3、区,4、社区,5、团队
  435. vm.initareaLevel = vm.areaLevel = vm.userRole.code == '350200' ? 2 : vm.userRole.code.length == 6 ? 3 : 4;
  436. vm.initlevel = vm.level = vm.userRole.code == '350200' ? 4 : vm.userRole.code.length == 6 ? 3 : 2;
  437. vm.initlowLevel = vm.lowLevel = vm.userRole.code == '350200' ? 3 : vm.userRole.code.length == 6 ? 4 : 5;
  438. vm.initarea =vm.area = vm.userRole.code;
  439. vm.areaTitle = vm.userRole.name;
  440. if(vm.initlevel==2){
  441. if(vm.userRole.roleType == '2'){
  442. vm.tbtab = 2
  443. }else if(vm.userRole.roleType == '1'){
  444. vm.tbtab = 1
  445. }
  446. }else{
  447. if(vm.isHospital){
  448. vm.isHospital = false
  449. vm.hospitalCode = ""
  450. vm.hospitalItem = {}
  451. }else{
  452. selectHospital(vm,1,'hopitalList')
  453. selectHospital(vm,2,'chopitalList')
  454. }
  455. }
  456. vm.tabnumber=vm.areaLevel==4?1:vm.areaLevel==3?2:3 //表格显示的tab数
  457. //初始化时间
  458. vm.chooseYear = getSignDate()
  459. vm.selDateType = undefined
  460. vm.end = getEndDate(vm.chooseYear)
  461. vm.start = getStartDate(vm.chooseYear)
  462. vm.changeDate()
  463. vm.getOptionsName() //获取搜索疾病列表
  464. vm.initTable()
  465. }
  466. function reqHistoryInit(vm){
  467. reqList = []
  468. reqLists = [[],[],[],[]]
  469. _.each(reqLists,function(item,idx){
  470. var index = 8+idx
  471. vm["reqListLength"+index] = item.length+1
  472. })
  473. vm.slaveKey1_1 = ""
  474. vm.slaveKey1_2 = ""
  475. vm.hastopbar1 = true
  476. vm.hastopbar2 = true
  477. }
  478. function initReqParams(vm) {
  479. var param = {
  480. startDate: vm.start,
  481. endDate: vm.end,
  482. area: vm.area,
  483. level: vm.areaLevel,
  484. diseaseType:vm.valueName,
  485. }
  486. var reqParam = [{
  487. url: "/specialistStatistics/specialistAnalysisHead", //头部
  488. reqType: 'get',
  489. data:{
  490. diseaseType:vm.valueName,
  491. area: vm.area,
  492. level: vm.areaLevel, //2、市,3、区,4、社区,5、团队
  493. },
  494. },{
  495. url: "/specialistStatistics/specialistAnalysisHeadCount", //头部统计
  496. reqType: 'get',
  497. data:param,
  498. },{
  499. url: "/specialistStatistics/diagnosisTreatment", //分级诊疗形式(转诊趋势)
  500. reqType: 'get',
  501. data:{
  502. startDate: vm.start,
  503. endDate: vm.end,
  504. area: vm.area,
  505. level: vm.areaLevel,
  506. diseaseType:vm.valueName,
  507. interval:1,
  508. type:1, //转诊趋势
  509. },
  510. },{
  511. url: "/specialistStatistics/diagnosisTreatment", //分级诊疗形式(服务人数)
  512. reqType: 'get',
  513. data:{
  514. startDate: vm.start,
  515. endDate: vm.end,
  516. area: vm.area,
  517. level: vm.areaLevel,
  518. diseaseType:vm.valueName,
  519. interval:1,
  520. type:2, //服务人数
  521. },
  522. },{
  523. url: "/specialistStatistics/diseaseTypeAnalysis", //疾病类型分析
  524. reqType: 'get',
  525. data:param,
  526. },{
  527. url: "/specialistStatistics/dailyHealthServices", //日常健康服务
  528. reqType: 'get',
  529. data:param,
  530. },{
  531. url: "/specialistStatistics/onlineDiagnosisTreatment", //在线诊疗情况
  532. reqType: 'get',
  533. data:param,
  534. },{
  535. url: "/specialistStatistics/rehabilitationPhoneRange", //电话/短信关怀率
  536. reqType: 'get',
  537. data:param,
  538. },{
  539. url: "/specialistStatistics/coManagementRehabilitation", //康复共管情况
  540. reqType: 'get',
  541. data:{
  542. startDate: vm.start,
  543. endDate: vm.end,
  544. area: vm.area,
  545. level: vm.areaLevel,
  546. diseaseType:vm.valueName,
  547. type:1, //等级医院
  548. slaveKey1:vm.slaveKey1_1,
  549. lowLevel:vm.slaveKey1_1?vm.lowLevel:""
  550. },
  551. },{
  552. url: "/specialistStatistics/coManagementRehabilitation", //康复共管情况
  553. reqType: 'get',
  554. data:{
  555. startDate: vm.start,
  556. endDate: vm.end,
  557. area: vm.area,
  558. level: vm.areaLevel,
  559. diseaseType:vm.valueName,
  560. type:2, //社区医院
  561. slaveKey1:vm.slaveKey1_2,
  562. lowLevel:vm.slaveKey1_2?vm.lowLevel:""
  563. },
  564. },{
  565. url: "/specialistStatistics/serviceRankingAnalysis", //-专病服务排名分析/医院总体服务情况
  566. reqType: 'get',
  567. data:{
  568. startDate: vm.start,
  569. endDate: vm.end,
  570. area: vm.area,
  571. level: vm.areaLevel,
  572. diseaseType:vm.valueName,
  573. type:1,
  574. lowLevel:vm.lowLevel
  575. },
  576. },{
  577. url: "/specialistStatistics/serviceRankingAnalysis", //-专病服务排名分析/医院总体服务情况
  578. reqType: 'get',
  579. data:{
  580. startDate: vm.start,
  581. endDate: vm.end,
  582. area: vm.area,
  583. level: vm.areaLevel,
  584. diseaseType:vm.valueName,
  585. type:2,
  586. lowLevel:vm.lowLevel
  587. },
  588. }];
  589. return reqParam;
  590. }
  591. function loadData(loadArr, vm) {
  592. //获取其他请求的参数
  593. var reqParams = initReqParams(vm),
  594. reqPromise = [],
  595. newArr = []; //记录非顶部请求的请求数组
  596. for (i = 0; i < loadArr.length; i++) {
  597. var j = loadArr[i];
  598. var param = reqParams[j];
  599. reqPromise.push(httpRequest.get(param.url, {
  600. data: param.data
  601. }));
  602. newArr.push(loadArr[i]);
  603. }
  604. vm.isloading=true
  605. if (reqPromise.length > 0) {
  606. Promise.all(reqPromise).then(function (ress) {
  607. var res1, res2, res3, res4, res5, res6, res7, res8, res9, res10, res11, res12;
  608. for (var i = 0; i < loadArr.length; i++) {
  609. var j = loadArr[i] + 1;
  610. if (j == 1) { res1 = ress[i]; }
  611. if (j == 2) { res2 = ress[i]; }
  612. if (j == 3) { res3 = ress[i]; }
  613. if (j == 4) { res4 = ress[i]; }
  614. if (j == 5) { res5 = ress[i]; }
  615. if (j == 6) { res6 = ress[i]; }
  616. if (j == 7) { res7 = ress[i]; }
  617. if (j == 8) { res8 = ress[i]; }
  618. if (j == 9) { res9 = ress[i]; }
  619. if (j == 10) { res10 = ress[i]; }
  620. if (j == 11) { res11 = ress[i]; }
  621. if (j == 12) { res12 = ress[i]; }
  622. }
  623. if(res1&& res1.status == 200){
  624. vm.pageData=res1.data
  625. }
  626. if(res2&& res2.status == 200){
  627. vm.pageData1=res2.data
  628. }
  629. if(res3&& res3.status == 200){
  630. handleSecondPanelData(res3.data ,1, vm)
  631. }
  632. if(res4&& res4.status == 200){
  633. handleSecondPanelData(res4.data ,2, vm)
  634. }
  635. if(res5&& res5.status == 200){
  636. var barData = {rehabilitationNum:[],rehabilitationTimes:[]}
  637. _.each(res5.data,function(item,index){
  638. barData.rehabilitationNum.push({
  639. range:item.name,
  640. amount:item.num
  641. })
  642. barData.rehabilitationTimes.push({
  643. range:item.name,
  644. amount:item.times
  645. })
  646. })
  647. getBarData({elId:'barChart', data:barData,
  648. indexNames:{"rehabilitationNum":"下转人数","rehabilitationTimes":"下转人次"},selectedDateType:vm.selectedDateType,hasLegend:true,colors:["#17b3ec",'#20D7AD'],units:{"下转人数":"人","下转人次":"人次"}})
  649. }
  650. if(res6&& res6.status == 200){
  651. vm.pageData2=res6.data
  652. }
  653. if(res7&& res7.status == 200){
  654. vm.pageData3=res7.data
  655. }
  656. if(res8&& res8.status == 200){
  657. vm.pageData4=res8.data
  658. }
  659. if(res9&& res9.status == 200){
  660. var data9 = _.map(res9.data,function(item){
  661. item.num = item.num||item.amount||0
  662. return item
  663. })
  664. vm.tabledata1=listHandle(data9,"num");
  665. }
  666. if(res10&& res10.status == 200){
  667. var data10 = _.map(res10.data,function(item){
  668. item.num = item.num||item.amount||0
  669. return item
  670. })
  671. vm.tabledata2=listHandle(data10,"num");
  672. }
  673. if(res11&& res11.status == 200){
  674. vm.tabledata01=listHandle(res11.data,"totalServiceNum");
  675. }
  676. if(res12&& res12.status == 200){
  677. vm.tabledata02=listHandle(res12.data,"totalServiceNum");
  678. }
  679. vm.isloading=false
  680. })
  681. }
  682. }
  683. function handleSecondPanelData(data,index, vm) {
  684. var xDatas = [],
  685. yDatas = [],
  686. names = []
  687. for(var p in data){
  688. names.push(vm.ltabList[index].indexNames[p]);
  689. xData = _.map(data[p], function(o){
  690. return o.range;
  691. });
  692. yData = _.map(data[p], function(o){
  693. return o.amount;
  694. });
  695. xDatas.push(xData);
  696. yDatas.push(yData);
  697. }
  698. vm.ltabList[index].xDatas = xDatas
  699. vm.ltabList[index].yDatas = yDatas
  700. vm.ltabList[index].names = names
  701. if(vm.ptab == index){
  702. vm.showTab()
  703. }
  704. }
  705. function listHandle(list, sort){
  706. var topArr = [],newList=[];
  707. if(list.length==1&&!list[0].name){
  708. list=[]
  709. }
  710. topArr = soreRank(getKeyValueArr(list, sort||'total'));
  711. newList = _.map(list, function(o, index){
  712. o.rank=topArr[index]
  713. return o
  714. });
  715. return newList
  716. }
  717. function selectHospital(vm,index,param) {
  718. var url = "/specialistStatistics/selectHospital",
  719. params = {
  720. town:vm.initarea,
  721. level:index
  722. };
  723. statisticAPI.selectHospital(params).then(function(res) {
  724. if(res.status == 200) {
  725. vm[param] = res.data
  726. } else {
  727. vm.$message.error(res.msg)
  728. }
  729. })
  730. }