response-speed-analysis.js 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196
  1. var reqList = [];
  2. var util = {};
  3. util.treeTableXcode = function(data, xcode) {
  4. xcode = xcode || "";
  5. for(var i = 0; i < data.length; i++) {
  6. var item = data[i];
  7. item.xcode = xcode + i;
  8. if(item.children && item.children.length > 0) {
  9. util.treeTableXcode(item.children, item.xcode + "-");
  10. }
  11. }
  12. };
  13. Vue.use(Vuedals.default);
  14. new Vue({
  15. el: "#main",
  16. data: {
  17. tableData: [],
  18. valueArea: "350203",
  19. optionsArea: [{code:"350203",name:"思明区"}],
  20. roleType:"1", //1、调度员,2、服务医生
  21. dateValue: "",
  22. defaultValue: ['00:00:00', '23:59:59'],
  23. pickerOptions: {
  24. shortcuts: [{
  25. text: '最近一周',
  26. onClick: function(picker) {
  27. var end = new Date();
  28. var start = new Date();
  29. start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
  30. picker.$emit('pick', [start, end]);
  31. }
  32. }, {
  33. text: '最近一个月',
  34. onClick: function(picker) {
  35. var end = new Date();
  36. var start = new Date();
  37. start.setMonth(start.getMonth() - 1);
  38. picker.$emit('pick', [start, end]);
  39. }
  40. }, {
  41. text: '最近三个月',
  42. onClick: function(picker) {
  43. var end = new Date();
  44. var start = new Date();
  45. start.setMonth(start.getMonth() - 3);
  46. picker.$emit('pick', [start, end]);
  47. },
  48. }, {
  49. text: '最近半年',
  50. onClick: function(picker) {
  51. var end = new Date();
  52. var start = new Date();
  53. start.setMonth(start.getMonth() - 6);
  54. picker.$emit('pick', [start, end]);
  55. },
  56. }, {
  57. text: '最近一年',
  58. onClick: function(picker) {
  59. var end = new Date();
  60. var start = new Date();
  61. start.setFullYear(start.getFullYear() - 1);
  62. picker.$emit('pick', [start, end]);
  63. },
  64. }],
  65. disabledDate: function(d) {
  66. return d > new Date();
  67. }
  68. }
  69. },
  70. components: {
  71. vuedals: Vuedals.Component
  72. },
  73. mounted: function() {
  74. var vm = this
  75. //初始化时间
  76. var end = new Date();
  77. var start = new Date();
  78. start.setFullYear(start.getFullYear() - 1);
  79. vm.dateValue = [start, end]
  80. //初始化数据
  81. vm.initData()
  82. // vm.getDistrict()
  83. $("#main").removeClass("c-hide");
  84. //监听后退按钮的操作
  85. EventBus.$on("back-click", function(arg) {
  86. history.go(-1);
  87. });
  88. //监听页面刷新
  89. EventBus.$on("refresh-click", function(arg) {
  90. // alert("刷新")
  91. vm.initData()
  92. });
  93. window.onresize = function() {
  94. }
  95. },
  96. methods: {
  97. initData: function() {
  98. var vm=this
  99. var startDate,endDate
  100. if(typeof(vm.dateValue[0])!="string"){
  101. startDate=vm.dateValue[0].format("yyyy-MM-dd")
  102. endDate=vm.dateValue[1].format("yyyy-MM-dd")
  103. }else{
  104. startDate=vm.dateValue[0]
  105. endDate=vm.dateValue[1]
  106. }
  107. var params={
  108. userAgent:localStorage.getItem('wlyyAgentForDoc'),
  109. area:vm.valueArea,startDate:startDate,endDate:endDate,roleType:vm.roleType
  110. }
  111. statisticAPI.doorResponseAnalyze(params).then(function(res) {
  112. if(res.status == 200) {
  113. vm.tableData=res.data
  114. util.treeTableXcode(vm.tableData);
  115. } else {
  116. vm.$message.error(res.msg)
  117. }
  118. })
  119. },
  120. changeDateValue: function() {
  121. alert(JSON.stringify(this.dateValue))
  122. },
  123. getDistrict: function() {
  124. var vm=this
  125. var params={
  126. type:3,code:"350200"
  127. }
  128. homeAPI.getDistrict(params).then(function(res) {
  129. if(res.status == 200) {
  130. vm.optionsArea=res.list
  131. vm.valueArea=vm.optionsArea[0].code
  132. vm.initData()
  133. } else {
  134. vm.$message.error(res.msg)
  135. }
  136. })
  137. },
  138. exportData: function() {
  139. var vm=this
  140. var startDate,endDate
  141. if(typeof(vm.dateValue[0])!="string"){
  142. startDate=vm.dateValue[0].format("yyyy-MM-dd")
  143. endDate=vm.dateValue[1].format("yyyy-MM-dd")
  144. }else{
  145. startDate=vm.dateValue[0]
  146. endDate=vm.dateValue[1]
  147. }
  148. var params={
  149. userAgent:localStorage.getItem('wlyyAgentForDoc'),
  150. area:vm.valueArea,startDate:startDate,endDate:endDate,
  151. }
  152. var str = statisticAPI.doorResponseAnalyzeExport+"?area="+vm.valueArea+"&startDate="+startDate+"&endDate="+endDate+"&roleType="+vm.roleType;
  153. window.open(str, "接收包数据导出")//导出数据
  154. },
  155. treeClick: function(item, index) {
  156. if(item.open) {
  157. this.collapse(item, index);
  158. } else {
  159. this.expand(item, index);
  160. }
  161. },
  162. expand: function(item, index) {
  163. if(!item.children) {
  164. return index;
  165. }
  166. //展开
  167. for(var i = 0; item.children && i < item.children.length; i++) {
  168. var child = item.children[i];
  169. this.tableData.splice(++index, 0, child);
  170. if(child.children && child.children.length > 0 && child.open) {
  171. index = this.expand(child, index);
  172. }
  173. }
  174. item.open = true;
  175. return index;
  176. },
  177. collapse: function(item, index) {
  178. if(!item.children) {
  179. return index;
  180. }
  181. //收缩
  182. item.open = false;
  183. var len = 0;
  184. for(var i = index + 1; i < this.tableData.length - 1; i++) {
  185. var xcode = this.tableData[i].xcode;
  186. if(xcode.startsWith(item.xcode + "-")) {
  187. len++;
  188. } else {
  189. break;
  190. }
  191. }
  192. this.tableData.splice(index + 1, len);
  193. }
  194. }
  195. });