mzfV1rzReport.js 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408
  1. var template = ''
  2. $.ajax('../html/mzfv1rzReport.html',{
  3. data: {},
  4. dataType: 'html',
  5. cache: false,
  6. timeout: 60000,
  7. async: false,
  8. error: function(res) {
  9. },
  10. success: function(res) {
  11. template = res
  12. }
  13. })
  14. var date = new Date();
  15. var today = date.toISOString().split('T')[0];
  16. var oneWeekBeforeDate = new Date(date.getTime() - (7 * 24 * 60 * 60 * 1000));
  17. Vue.component('mzf-v1rzreport', {
  18. props: [],
  19. template: template,
  20. data: function() {
  21. return {
  22. mzfWorksheetData:[],
  23. list:[], // 已选列表
  24. startTime: oneWeekBeforeDate, //new Date('2023','05','26'),
  25. endTime: new Date(),
  26. regionList:[], // 地区
  27. regionData:[],
  28. threeHospitalList:[], // 三级医院
  29. tertiaryHospitalsData:[],
  30. communityHospitalsList:[], //社区医院
  31. communityHospitalsData:[],
  32. groupingList:[], // 分组
  33. groupingData:[],
  34. administrationStatusList:[], // 管理状态
  35. administrationStatusData:[
  36. {label:'全部',id:'8',type:'5', disabled: true, checked: false},
  37. {label:'已管理',id:'7',type:'5', disabled: true, checked: false},
  38. {label:'在管',id:'1',type:'5', disabled: true, checked: false},
  39. {label:'未管理',id:'0',type:'5', disabled: true, checked: false},
  40. {label:'不纳入管理',id:'4',type:'5', disabled: true, checked: false},
  41. {label:'入组',id:'5',type:'5', disabled: false , checked: false},
  42. {label:'出组',id:'3',type:'5', disabled: true, checked: false},
  43. {label:'失访',id:'2',type:'5', disabled: true, checked: false},
  44. {label:'死亡',id:'6',type:'5', disabled: true, checked: false},
  45. ],
  46. show:false,
  47. showTwo:false,
  48. showThree:false,
  49. currentPage:1,
  50. currentSize:10,
  51. datatotal:10, //总数
  52. loadingTwo:false,
  53. setDisabled:{
  54. disabledDate:function(time) {
  55. return time.getTime() < new Date('2023','05','26') || time.getTime() > Date.now();
  56. }
  57. },
  58. s:'',
  59. e:'',
  60. findType: 1,
  61. groupState: '',
  62. copdState: false
  63. }
  64. },
  65. created: function(){
  66. // 初始化时间条件
  67. this.s = this.startTime.format('yyyy-MM-dd')
  68. this.e = this.endTime.format('yyyy-MM-dd')
  69. this.list.unshift({type:'0',id:'time',label:this.s +"~"+ this.e})
  70. // this.cascadingFindHosptail() // 地区
  71. // this.threeHospital() // 三级医院
  72. // this.communityHospital() // 社区医院
  73. // this.group() // 分组
  74. this.findHospitalEntryCount() // 表单
  75. },
  76. watch:{
  77. 'startTime':{
  78. handler:function(o) {
  79. if(!o) {
  80. this.list.splice(0,1)
  81. }
  82. },
  83. deep: true,
  84. immediate: true
  85. },
  86. 'endTime':{
  87. handler:function(o) {
  88. if(!o) {
  89. this.list.splice(0,1)
  90. }
  91. },
  92. deep: true,
  93. immediate: true
  94. },
  95. },
  96. methods: {
  97. // 级联查询医院
  98. // cascadingFindHosptail: function(type, areaCode, hospitalCode) {
  99. // var vm = this
  100. // var data = {
  101. // findType: type ? type : 1, // findType 1查地区 2查三级医院 3社区医院 4 分组【对照组、康复组】
  102. // areaCode: areaCode || '',
  103. // hosptialCode: hospitalCode || '',
  104. // }
  105. // var jsonStr = JSON.stringify(data)
  106. // statisticAPI.cascadingFindHosptail({
  107. // jsonStr
  108. // }).then(res => {
  109. // if(res.status == 200) {
  110. // console.log(res);
  111. // if(vm.findType == 1) {
  112. // res.data.forEach(v => {
  113. // v.checked = false
  114. // })
  115. // this.regionData = [{areaCode:'', areaName:'全市', checked: true}].concat(res.data)
  116. // }else if(vm.findType == 2) {
  117. // this.tertiaryHospitalsData = [{areaCode:'', areaName:'', hospitalCode: '', hospitalName: '全部'}].concat(res.data)
  118. // }else if(vm.findType == 3) {
  119. // this.communityHospitalsData = [{areaCode:'', areaName:'', hospitalCode: '', hospitalName: '全部'}].concat(res.data)
  120. // }
  121. // else if (vm.findType == 4) {
  122. // var data = _.map(res.data, function(v) {
  123. // var temp = {}
  124. // for(var k in v) {
  125. // temp.code = k
  126. // temp.label = v[k]
  127. // }
  128. // return temp
  129. // })
  130. // console.log(data, 'fenzu');
  131. // this.groupingData = [{label:'全部',id:'1',type:'4'}].concat(data)
  132. // }
  133. // }
  134. // }).catch(function(err){
  135. // console.log(err);
  136. // })
  137. // },
  138. // // 获取全部三级医院
  139. // threeHospital: function() {
  140. // var vm = this
  141. // var data = {
  142. // findType: 2, // findType 1查地区 2查三级医院 3社区医院 4 分组【对照组、康复组】
  143. // areaCode: '',
  144. // hosptialCode: '',
  145. // }
  146. // var jsonStr = JSON.stringify(data)
  147. // statisticAPI.cascadingFindHosptail({
  148. // jsonStr
  149. // }).then(res => {
  150. // if(res.status == 200) {
  151. // // this.tertiaryHospitalsData = [{areaCode:'', areaName:'', hospitalCode: '', hospitalName: '全部'}].concat(res.data)
  152. // this.tertiaryHospitalsData = res.data
  153. // }
  154. // })
  155. // },
  156. // // 获取全部社区医院
  157. // communityHospital: function() {
  158. // var vm = this
  159. // var data = {
  160. // findType: 3, // findType 1查地区 2查三级医院 3社区医院 4 分组【对照组、康复组】
  161. // areaCode: '',
  162. // hosptialCode: '',
  163. // }
  164. // var jsonStr = JSON.stringify(data)
  165. // statisticAPI.cascadingFindHosptail({
  166. // jsonStr
  167. // }).then(res => {
  168. // if(res.status == 200) {
  169. // // this.communityHospitalsData = [{areaCode:'', areaName:'', hospitalCode: '', hospitalName: '全部'}].concat(res.data)
  170. // this.communityHospitalsData = res.data
  171. // }
  172. // })
  173. // },
  174. // // 获取分组
  175. // group: function() {
  176. // var vm = this
  177. // var data = {
  178. // findType: 4, // findType 1查地区 2查三级医院 3社区医院 4 分组【对照组、康复组】
  179. // areaCode: '',
  180. // hosptialCode: '',
  181. // }
  182. // var jsonStr = JSON.stringify(data)
  183. // statisticAPI.cascadingFindHosptail({
  184. // jsonStr
  185. // }).then(res => {
  186. // if(res.status == 200) {
  187. // var data = _.map(res.data, function(v) {
  188. // var temp = {}
  189. // for(var k in v) {
  190. // temp.code = k
  191. // temp.label = v[k]
  192. // }
  193. // return temp
  194. // })
  195. // console.log(data, 'fenzu');
  196. // // this.groupingData = [{label:'全部',id:'1',type:'4'}].concat(data)
  197. // this.groupingData = data
  198. // }
  199. // })
  200. // },
  201. // 查询数据接口 1默认时间,和 三级医院
  202. findHospitalEntryCount: function(code, hospitalCode, communityHospitalCode,groupingCode) {
  203. var vm = this
  204. vm.loadingTwo = true
  205. var data = {
  206. startTime:this.startTime.format('yyyy-MM-dd'),
  207. endTime:this.endTime.format('yyyy-MM-dd'),
  208. areaCode: code || '', // 地区code
  209. hosptialCode: hospitalCode || '', // 医院code
  210. communityHospitalCode: communityHospitalCode || '', // 社区医院code
  211. groupState: groupingCode || '', // 3 康复组 4 对照组
  212. copdState: 5
  213. }
  214. statisticAPI.findHospitalEntryCount({
  215. jsonStr:JSON.stringify(data)
  216. }).then(function(res){
  217. if(res.status == 200) {
  218. console.log(res);
  219. vm.loadingTwo = false
  220. vm.mzfWorksheetData = res.data
  221. vm.datatotal = res.total
  222. }
  223. }).catch(function(err){
  224. console.log(err);
  225. })
  226. },
  227. // 开始时间
  228. startTimeChange:function(o) {
  229. if(!this.list[0] || this.list[0].type!=0) {
  230. this.list.unshift({type:'0',id:'time',label:o.format('yyyy-MM-dd') +"~"+ this.endTime.format('yyyy-MM-dd')})
  231. }else{
  232. this.list[0].label = o.format('yyyy-MM-dd') +"~"+ this.endTime.format('yyyy-MM-dd')
  233. }
  234. },
  235. // 结束时间
  236. endTimeChange:function(o) {
  237. if(!this.list[0] || this.list[0].type!=0) {
  238. this.list.unshift({type:'0',id:'time',label:this.startTime.format('yyyy-MM-dd') +"~"+ o.format('yyyy-MM-dd')})
  239. }else{
  240. this.list[0].label = this.startTime.format('yyyy-MM-dd') +"~"+ o.format('yyyy-MM-dd')
  241. }
  242. },
  243. // 删除所选的条件
  244. deleteClick:function(item) {
  245. // 如果id==time 删除时间选择
  246. if(item.id == "time") {
  247. this.startTime = ''
  248. this.endTime = ''
  249. this.list.splice(0,1)
  250. }
  251. // 找对应当前点击的index 进行移除
  252. var index = this.list.findIndex(function(v){
  253. return item.id == v.id
  254. })
  255. this.list.splice(index,1)
  256. },
  257. // 下一页 上一页
  258. handleCurrentChange:function(val) {
  259. var vm = this
  260. vm.currentPage = val
  261. },
  262. // // 选择地区
  263. // change:function(val) {
  264. // console.log(val, '选择的数据');
  265. // var code = [] // 地区code
  266. // val.forEach(v => {
  267. // v.type = 1
  268. // v.label = v.areaName
  269. // code.push(v.areaCode)
  270. // })
  271. // this.findType = 2
  272. // this.cascadingFindHosptail(this.findType, code.join(',') , '',)
  273. // this.list = Array.from(new Set(this.list.concat(val)))
  274. // },
  275. // // 选择三级医院
  276. // changeHospital(val) {
  277. // var hospitalCode = [] // 三级医院code
  278. // val.forEach(v => {
  279. // v.type = 2
  280. // v.label = v.hospitalName
  281. // hospitalCode.push(v.hospitalCode)
  282. // })
  283. // this.findType = 3
  284. // this.cascadingFindHosptail(this.findType, '', hospitalCode.join(','))
  285. // this.list = Array.from(new Set(this.list.concat(val)))
  286. // },
  287. // // 选择社区
  288. // changeCommunityHospitals(val) {
  289. // console.log(val)
  290. // var communityHospitalCode = []
  291. // val.forEach(v => {
  292. // v.type = 3
  293. // v.label = v.hospitalName
  294. // communityHospitalCode.push(v.hospitalCode)
  295. // })
  296. // this.findType = 4
  297. // this.cascadingFindHosptail(this.findType, '', '')
  298. // this.list = Array.from(new Set(this.list.concat(val)))
  299. // },
  300. // // 分组
  301. // changeGroup(val) {
  302. // val.forEach(v => {
  303. // v.type = 4
  304. // })
  305. // this.list = Array.from(new Set(this.list.concat(val)))
  306. // },
  307. // // 管理状态
  308. // changeStatus(val) {
  309. // console.log(val);
  310. // this.list = Array.from(new Set(this.list.concat(val)))
  311. // },
  312. // 确定
  313. confirm:function() {
  314. // // 地区
  315. // var regionCode = []
  316. // this.regionList.forEach(v => {
  317. // regionCode.push(v.areaCode)
  318. // })
  319. // // 三级医院
  320. // var threeHospitaCode = []
  321. // this.threeHospitalList.forEach(v => {
  322. // threeHospitaCode.push(v.hospitalCode)
  323. // })
  324. // // 社区医院
  325. // var communityHospitalCode = []
  326. // this.communityHospitalsList.forEach(v => {
  327. // communityHospitalCode.push(v.hospitalCode)
  328. // })
  329. // var groupingCode = []
  330. // this.groupingList.forEach(v => {
  331. // groupingCode.push(v.code)
  332. // })
  333. // this.findHospitalEntryCount(regionCode.join(','), threeHospitaCode.join(','), communityHospitalCode.join(','), groupingCode.join(','))
  334. this.findHospitalEntryCount()
  335. },
  336. // 取消
  337. cancel:function() {
  338. this.startTime = oneWeekBeforeDate
  339. this.endTime = new Date()
  340. if(!this.list[0] || this.list[0].type!=0) {
  341. this.list.unshift({type:'0',id:'time',label:this.startTime.format('yyyy-MM-dd') +"~"+ this.endTime.format('yyyy-MM-dd')})
  342. }else{
  343. this.list[0].label = this.startTime.format('yyyy-MM-dd') +"~"+ this.endTime.format('yyyy-MM-dd')
  344. }
  345. // this.list = []
  346. // this.regionList = []
  347. // this.threeHospitalList = []
  348. // this.communityHospitalsList = []
  349. // this.groupingList = []
  350. // this.administrationStatusList = []
  351. // this.list.unshift({type:'0',id:'time',label:this.s +"~"+ this.e},{type:'2', id:'1', label:'全部'})
  352. // this.findHospitalEntryCount()
  353. },
  354. // 导出
  355. exportHandle:function() {
  356. // // 地区
  357. // var regionCode = []
  358. // // 三级医院
  359. // var threeHospitaCode = []
  360. // // 社区医院
  361. // var communityHospitalCode = []
  362. // // 分组
  363. // var groupingCode = []
  364. // this.list.forEach(v => {
  365. // regionCode.push(v.areaCode)
  366. // threeHospitaCode.push(v.hospitalCode)
  367. // communityHospitalCode.push(v.hospitalCode)
  368. // groupingCode.push(v.code)
  369. // })
  370. var vm = this
  371. vm.loadingTwo = true
  372. var data = {
  373. startTime: vm.startTime.format('yyyy-MM-dd'),
  374. endTime: vm.endTime.format('yyyy-MM-dd'),
  375. areaCode: '', // 地区code
  376. hosptialCode: '', // 医院code
  377. communityHospitalCode: '', // 社区医院code
  378. groupState: '', // 3 康复组 4 对照组
  379. }
  380. var jsonStr = JSON.stringify(data)
  381. statisticAPI.exportHospitalEntryCount({
  382. jsonStr: encodeURIComponent(jsonStr)
  383. },'v1\入组情况报表.xls').then(function(res){
  384. vm.loadingTwo = false
  385. })
  386. },
  387. }
  388. })