saturation_warning.vue 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201
  1. <template>
  2. <div class="body-wrapper">
  3. <div style="color: white;font-size: 23px;margin-bottom: 20px">全市停车饱和度</div>
  4. <el-form class="form-wrapper" :inline="true" :model="formInline">
  5. <el-form-item label="区县:">
  6. <el-select v-model="formInline.region0" placeholder="区县" popper-class="cur-select">
  7. <el-option label="源汇区" value="源汇区"></el-option>
  8. <el-option label="郾城区" value="郾城区"></el-option>
  9. <el-option label="召陵区" value="召陵区"></el-option>
  10. <el-option label="舞阳县" value="舞阳县"></el-option>
  11. <el-option label="临颍县" value="临颍县"></el-option>
  12. </el-select>
  13. </el-form-item>
  14. <el-form-item label="街道:">
  15. <el-select v-model="formInline.region1" placeholder="街道" popper-class="cur-select">
  16. <el-option label="老街街道" value="老街街道"></el-option>
  17. <el-option label="马路街街道" value="马路街街道"></el-option>
  18. <el-option label="顺河街街道" value="顺河街街道"></el-option>
  19. <el-option label="干河陈街道" value="干河陈街道"></el-option>
  20. <el-option label="大刘镇" value="大刘镇"></el-option>
  21. <el-option label="阴阳赵镇" value="阴阳赵镇"></el-option>
  22. <el-option label="空冢郭镇" value="空冢郭镇"></el-option>
  23. <el-option label="问十乡" value="问十乡"></el-option>
  24. </el-select>
  25. </el-form-item>
  26. <el-form-item label="路内停车场:">
  27. <el-select v-model="formInline.region2" placeholder="路内停车场" popper-class="cur-select">
  28. <el-option label="南街村景区-停车场" value="南街村景区-停车场"></el-option>
  29. <el-option label="漯河市中医院-地上停车场" value="漯河市中医院-地上停车场"></el-option>
  30. </el-select>
  31. </el-form-item>
  32. <el-form-item label="路外停车场:">
  33. <el-select v-model="formInline.region3" placeholder="路外停车场" popper-class="cur-select">
  34. <el-option label="市图书馆停车场" value="市图书馆停车场"></el-option>
  35. <el-option label="中山公园停车场" value="中山公园停车场"></el-option>
  36. <el-option label="市中心医院停车场" value="市中心医院停车场"></el-option>
  37. <el-option label="妇幼保健院停车场" value="妇幼保健院停车场"></el-option>
  38. </el-select>
  39. </el-form-item>
  40. </el-form>
  41. <div class="body-wrapper" style="height: 300px;">
  42. <linechart
  43. :autoStop="false"
  44. :top="30"
  45. :bottom="30"
  46. :left="40"
  47. :legendTop="0"
  48. yAxisName="(%)"
  49. :dataset="linedata"
  50. :tooltipFormat="lineTooltipFormat"
  51. :encode="[
  52. { x: 'month', y: 'thisAmount', seriesName: '预警值',col:'red' },
  53. { x: 'month', y: 'lastAmount', seriesName: '饱和度',bool:'true' },
  54. ]"
  55. id="sxcyfzqk"
  56. />
  57. <div class="body-wrapper" style=" height: 450px">
  58. <div style="color: white;font-size: 23px;margin-bottom: 20px">网格化停车饱和预警</div>
  59. <el-table :data="tableData" style="background: #2a2a2a;border-color: #333;">
  60. <el-table-column v-for="(item, index) in columns" :key="index" :label="item.label" :prop="item.key">
  61. </el-table-column>
  62. </el-table>
  63. <div class="table-pagination">
  64. <el-pagination :background="false" layout="total, prev, pager, next" :total="total" @current-change="handlePageChange"
  65. :current-page.sync="pageNum" :page-size.sync="pageSize">
  66. </el-pagination>
  67. </div>
  68. </div>
  69. </div>
  70. </div>
  71. </template>
  72. <script>
  73. import linechart from "@/components/lineChart";
  74. import vtable from "@/components/vtableNew";
  75. import api from '@/api/audit'
  76. export default {
  77. components: {
  78. linechart,
  79. vtable,
  80. },
  81. data() {
  82. return {
  83. formInline: {
  84. region0: '',
  85. region1: '',
  86. region2: '',
  87. region3: '',
  88. },
  89. linedata: [],
  90. columns: [
  91. {
  92. label: '街道名称',
  93. key: 'jd'
  94. },
  95. {
  96. label: '剩余停车位',
  97. key: 'sy'
  98. }
  99. ],
  100. tableData: [{"jd": '老街街道',"sy": 30}
  101. ,{"jd":'马路街街道',"sy": 70}
  102. ,{"jd":'顺河街街道',"sy": 80}
  103. ,{"jd":'干河陈街道',"sy": 30}
  104. ,{"jd":'大刘镇',"sy": 62}
  105. ,{"jd":'阴阳赵镇',"sy": 44}
  106. ,{"jd":'空冢郭镇',"sy": 30}
  107. ,{"jd":'问十乡',"sy": 97}],
  108. total: 3,
  109. pageSize: 10,
  110. pageNum: 1,
  111. radio: '2',
  112. dialogVisible: false,
  113. selRow: {}
  114. }
  115. },
  116. mounted() {
  117. this.getTcbhyj()
  118. this.getTableData()
  119. },
  120. watch: {
  121. },
  122. methods: {
  123. getTcbhyj() {
  124. api.tcbhyj().then(res => {
  125. this.linedata = res.data.map(item => ({...item, thisAmount: 30})) || []
  126. })
  127. },
  128. handlePageChange() {
  129. this.getTableData()
  130. },
  131. getTableData() {
  132. const {pageNum, pageSize} = this
  133. // api.applyList({pageNum, pageSize}).then(res => {
  134. // this.tableData = []
  135. // res.data.records.map((item, index) => {
  136. // const newItem = {...item}
  137. // newItem.applyTypeText = this.getApplyTypeText(item.applyType)
  138. // this.tableData.push(newItem)
  139. // })
  140. // this.total = res.data.total
  141. // })
  142. },
  143. lineTooltipFormat(params) {
  144. const data = params[0].data;
  145. return `<div class="line-tooltip">
  146. <div style="color: ${params[1].color}">${params[1].seriesName}: ${
  147. params[0].data.lastAmount || "--"
  148. }(%)</div>
  149. <div style="color: red">${params[0].seriesName}: ${
  150. params[0].data.thisAmount || "--"
  151. }(%)</div>
  152. </div>`;
  153. },
  154. }
  155. }
  156. </script>
  157. <style lang="scss" scoped>
  158. .form-wrapper {
  159. margin-bottom: 20px;
  160. }
  161. /deep/ .el-input__inner {
  162. background: #2d3744;
  163. border: none;
  164. border-radius: 0;
  165. }
  166. /deep/ .el-select {
  167. height: 40px;
  168. .el-input__inner {
  169. height: 40px;
  170. }
  171. .el-input__prefix, .el-input__suffix {
  172. height: 40px;
  173. }
  174. /* 下面设置右侧按钮居中 */
  175. .el-input__suffix {
  176. top: 0px;
  177. display: flex;
  178. justify-content: center;
  179. align-items: center;
  180. flex-wrap: nowrap;
  181. flex-direction: row;
  182. align-content: flex-start;
  183. }
  184. /* 输入框加上上下边是 32px + 2px =34px */
  185. .el-input__icon {
  186. line-height: 0px;
  187. }
  188. }
  189. .body-wrapper {
  190. width: 100%;
  191. height: 100%;
  192. box-sizing: border-box;
  193. background: #0c0c0c;
  194. .table-pagination{
  195. text-align: right;
  196. }
  197. }
  198. </style>