index.vue 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209
  1. <template>
  2. <div class="draught-fan-list">
  3. <div class="query mg-b-8">
  4. <div class="query-items">
  5. <div class="query-item">
  6. <div class="lable">维度:</div>
  7. <div class="search-input">
  8. <el-select v-model="typeId" clearable placeholder="请选择"
  9. popper-class="select" @change="renderWprray">
  10. <el-option v-for="item in typeArray" :key="item.id" :value="item.id" :label="item.name" />
  11. </el-select>
  12. </div>
  13. </div>
  14. <div class="query-item">
  15. <div class="lable">开始日期:</div>
  16. <div class="search-input">
  17. <el-date-picker v-model="beginDate" type="date"
  18. value-format="YYYY-MM-DD" placeholder="选择日期" popper-class="date-select">
  19. </el-date-picker>
  20. </div>
  21. </div>
  22. <div class="query-item">
  23. <div class="lable">结束日期:</div>
  24. <div class="search-input">
  25. <el-date-picker v-model="endDate" type="date"
  26. value-format="YYYY-MM-DD" placeholder="选择日期" popper-class="date-select">
  27. </el-date-picker>
  28. </div>
  29. </div>
  30. </div>
  31. <div class="query-actions">
  32. <button class="btn green" @click="search()">搜索</button>
  33. </div>
  34. </div>
  35. <div class="df-table">
  36. <ComTable height="100vh" :data="tableData"></ComTable>
  37. </div>
  38. <!-- <Mlc height="650px" :list="chartData" :units="chartUnit" :showLegend="true" /> -->
  39. <Lbc height="650px" :list="chartData" :units="chartUnit" :showLegend="true" :barMaxWidth="'4%'" :barGap="'150%'" />
  40. </div>
  41. </template>
  42. <script>
  43. import ComTable from "@com/coms/table/table.vue";
  44. import Lbc from "@com/chart/bar/multiple-bar-chart.vue";
  45. export default {
  46. // 名称
  47. name: "cutAnalyse",
  48. // 使用组件
  49. components: {
  50. ComTable,
  51. Lbc
  52. },
  53. // 数据
  54. data() {
  55. const that = this;
  56. return {
  57. isAsc:"asc",
  58. typeArray:[{
  59. id:"1",
  60. name:"按报警统计"
  61. },{
  62. id:"2",
  63. name:"按报警分类统计"
  64. },{
  65. id:"3",
  66. name:"按厂家统"
  67. }],
  68. typeId:"1",
  69. wpArray:[],
  70. wpId:"",
  71. beginDate:new Date((new Date().getTime() - 3600 * 1000 * 24)).formatDate("yyyy-MM-dd"),
  72. endDate:new Date().formatDate("yyyy-MM-dd"),
  73. dialogShow:false,
  74. tableData: {
  75. column: [
  76. {
  77. name: "序号",
  78. field: "index",
  79. is_num: false,
  80. is_light: false,
  81. sortable: true
  82. },
  83. {
  84. name: "名称",
  85. field: "name",
  86. is_num: false,
  87. is_light: false,
  88. sortable: true
  89. },
  90. {
  91. name: "频率(次)",
  92. field: "frequencyday",
  93. is_num: false,
  94. is_light: false,
  95. sortable: true
  96. }
  97. ],
  98. data: [],
  99. },
  100. chartData: [{
  101. title: "",
  102. yAxisIndex: 0,
  103. value: []
  104. }],
  105. chartUnit: ["(次)"]
  106. };
  107. },
  108. // 函数
  109. methods: {
  110. // 请求服务
  111. requestData() {
  112. let that = this;
  113. if(!that.typeId || !that.beginDate || !that.endDate){
  114. that.BASE.showMsg({
  115. msg:"维度与日期不可为空"
  116. });
  117. }else{
  118. that.API.requestData({
  119. method: "POST",
  120. subUrl: "leaderboard/querywarningStatistical",
  121. data:{
  122. type:that.typeId,
  123. isAsc:that.isAsc,
  124. beginDate:that.beginDate,
  125. endDate:that.endDate,
  126. orderByColumn:"",
  127. },
  128. success(res) {
  129. console.log('res:',res)
  130. let chartData = [];
  131. res.data.forEach((ele, index) => {
  132. ele.index = (index + 1);
  133. chartData.push({
  134. title: ele.name,
  135. yAxisIndex: 0,
  136. value: [{
  137. text: ele.name,
  138. value: ele.frequencyday,
  139. }]
  140. });
  141. });
  142. that.chartData = chartData;
  143. that.tableData.data = res.data;
  144. }
  145. });
  146. }
  147. },
  148. search(){
  149. this.requestData();
  150. }
  151. },
  152. created() {
  153. this.requestData();
  154. },
  155. mounted() {},
  156. unmounted() {},
  157. };
  158. </script>
  159. <style lang="less" scoped>
  160. .draught-fan-list {
  161. width: 100%;
  162. height: 100%;
  163. display: flex;
  164. flex-direction: column;
  165. .btn-group-tabs {
  166. display: flex;
  167. flex-direction: row;
  168. .photovoltaic {
  169. margin-left: 1.481vh;
  170. }
  171. }
  172. .df-table {
  173. border: 0.093vh solid fade(@darkgray, 50%);
  174. position: relative;
  175. overflow: hidden;
  176. flex-grow: 1;
  177. margin-top: 1.481vh;
  178. height:80vh;
  179. &:before {
  180. content: "";
  181. width: 0.37vh;
  182. height: 0.37vh;
  183. background: @write;
  184. position: absolute;
  185. left: 0.278vh;
  186. top: 0.278vh;
  187. }
  188. tbody {
  189. height: calc(100vh - 166px);
  190. }
  191. }
  192. }
  193. </style>