index.vue 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341
  1. <template>
  2. <div class="table-box">
  3. <div class="card table-main">
  4. <!-- 表格头部 操作按钮 -->
  5. <div class="table-header">
  6. <div class="header-button-lf">
  7. <el-form :model="queryParams" label-width="auto" :inline="true">
  8. <el-form-item label="自动站:">
  9. <el-select v-model="queryParams.name" placeholder="请选择自动站" clearable style="width: 200px">
  10. <el-option label="站1" value="1" />
  11. <el-option label="站2" value="2" />
  12. </el-select>
  13. </el-form-item>
  14. <el-form-item>
  15. <el-button type="primary" @click="handleQuery"> 查询 </el-button>
  16. <el-button style="margin-left: 10px" @click="resetQuery"> 重置 </el-button>
  17. </el-form-item>
  18. </el-form>
  19. </div>
  20. <div class="header-button-ri">
  21. <slot name="toolButton">
  22. <img class="setting" src="@/assets/images/setting2.png" />
  23. </slot>
  24. </div>
  25. </div>
  26. <!-- 表格主体 -->
  27. <el-table stripe ref="tableRef" :border="true" :data="processTableData" size="small">
  28. <el-table-column align="left" label="序号" width="80px" :show-overflow-tooltip="true">
  29. <template #default="scope">
  30. {{ (queryParams.pageNum - 1) * queryParams.pageSize + scope.$index + 1 }}
  31. </template>
  32. </el-table-column>
  33. <template v-for="item in columns" :key="item">
  34. <el-table-column v-bind="item" :align="item.align ?? 'left'" :reserve-selection="item.type == 'selection'" :show-overflow-tooltip="true">
  35. </el-table-column>
  36. </template>
  37. <!-- 无数据 -->
  38. <template #empty>
  39. <div class="table-empty">
  40. <slot name="empty">
  41. <img src="@/assets/images/notData.png" alt="notData" />
  42. <div>暂无数据</div>
  43. </slot>
  44. </div>
  45. </template>
  46. </el-table>
  47. <!-- 分页组件 -->
  48. <Pagination :pageable="pageable" :handle-size-change="handleSizeChange" :handle-current-change="handleCurrentChange" />
  49. </div>
  50. </div>
  51. </template>
  52. <script setup lang="ts" name="useProTable">
  53. import Pagination from "@/components/ProTable/components/Pagination.vue";
  54. import { ref, reactive } from "vue";
  55. import { ColumnProps } from "@/components/ProTable/interface";
  56. const pageable = ref<any>({
  57. pageNum: 1,
  58. pageSize: 20,
  59. total: 1
  60. });
  61. const queryParams = ref({
  62. name: "",
  63. pageNum: 1,
  64. pageSize: 20,
  65. total: 1
  66. });
  67. // 查询功能
  68. const handleQuery = () => {
  69. queryParams.value.pageNum = 1;
  70. };
  71. //搜索功能
  72. const resetQuery = () => {
  73. queryParams.value.pageNum = 1;
  74. };
  75. /**
  76. * @description 每页条数改变
  77. * @param {Number} val 当前条数
  78. * @return void
  79. * */
  80. const handleSizeChange = (val: number) => {
  81. console.log(val);
  82. };
  83. /**
  84. * @description 当前页改变
  85. * @param {Number} val 当前页
  86. * @return void
  87. * */
  88. const handleCurrentChange = (val: number) => {
  89. console.log(val);
  90. };
  91. const processTableData = ref([
  92. {
  93. id: "681913747276782417",
  94. a: "测试本地",
  95. b: "RS001",
  96. c: "公园",
  97. d: "2024-09-02 22:57",
  98. e: "0.2",
  99. f: "150",
  100. g: "25.3",
  101. h: "61",
  102. i: "17.2"
  103. },
  104. {
  105. id: "681913747276782417",
  106. a: "测试本地",
  107. b: "RS001",
  108. c: "公园",
  109. d: "2024-09-02 22:57",
  110. e: "0.2",
  111. f: "150",
  112. g: "25.3",
  113. h: "61",
  114. i: "17.2"
  115. },
  116. {
  117. id: "681913747276782417",
  118. a: "测试本地",
  119. b: "RS001",
  120. c: "公园",
  121. d: "2024-09-02 22:57",
  122. e: "0.2",
  123. f: "150",
  124. g: "25.3",
  125. h: "61",
  126. i: "17.2"
  127. },
  128. {
  129. id: "681913747276782417",
  130. a: "测试本地",
  131. b: "RS001",
  132. c: "公园",
  133. d: "2024-09-02 22:57",
  134. e: "0.2",
  135. f: "150",
  136. g: "25.3",
  137. h: "61",
  138. i: "17.2"
  139. },
  140. {
  141. id: "681913747276782417",
  142. a: "测试本地",
  143. b: "RS001",
  144. c: "公园",
  145. d: "2024-09-02 22:57",
  146. e: "0.2",
  147. f: "150",
  148. g: "25.3",
  149. h: "61",
  150. i: "17.2"
  151. },
  152. {
  153. id: "681913747276782417",
  154. a: "测试本地",
  155. b: "RS001",
  156. c: "公园",
  157. d: "2024-09-02 22:57",
  158. e: "0.2",
  159. f: "150",
  160. g: "25.3",
  161. h: "61",
  162. i: "17.2"
  163. },
  164. {
  165. id: "681913747276782417",
  166. a: "测试本地",
  167. b: "RS001",
  168. c: "公园",
  169. d: "2024-09-02 22:57",
  170. e: "0.2",
  171. f: "150",
  172. g: "25.3",
  173. h: "61",
  174. i: "17.2"
  175. },
  176. {
  177. id: "681913747276782417",
  178. a: "测试本地",
  179. b: "RS001",
  180. c: "公园",
  181. d: "2024-09-02 22:57",
  182. e: "0.2",
  183. f: "150",
  184. g: "25.3",
  185. h: "61",
  186. i: "17.2"
  187. },
  188. {
  189. id: "681913747276782417",
  190. a: "测试本地",
  191. b: "RS001",
  192. c: "公园",
  193. d: "2024-09-02 22:57",
  194. e: "0.2",
  195. f: "150",
  196. g: "25.3",
  197. h: "61",
  198. i: "17.2"
  199. },
  200. {
  201. id: "681913747276782417",
  202. a: "测试本地",
  203. b: "RS001",
  204. c: "公园",
  205. d: "2024-09-02 22:57",
  206. e: "0.2",
  207. f: "150",
  208. g: "25.3",
  209. h: "61",
  210. i: "17.2"
  211. },
  212. {
  213. id: "681913747276782417",
  214. a: "测试本地",
  215. b: "RS001",
  216. c: "公园",
  217. d: "2024-09-02 22:57",
  218. e: "0.2",
  219. f: "150",
  220. g: "25.3",
  221. h: "61",
  222. i: "17.2"
  223. },
  224. {
  225. id: "681913747276782417",
  226. a: "测试本地",
  227. b: "RS001",
  228. c: "公园",
  229. d: "2024-09-02 22:57",
  230. e: "0.2",
  231. f: "150",
  232. g: "25.3",
  233. h: "61",
  234. i: "17.2"
  235. },
  236. {
  237. id: "681913747276782417",
  238. a: "测试本地",
  239. b: "RS001",
  240. c: "公园",
  241. d: "2024-09-02 22:57",
  242. e: "0.2",
  243. f: "150",
  244. g: "25.3",
  245. h: "61",
  246. i: "17.2"
  247. },
  248. {
  249. id: "681913747276782417",
  250. a: "测试本地",
  251. b: "RS001",
  252. c: "公园",
  253. d: "2024-09-02 22:57",
  254. e: "0.2",
  255. f: "150",
  256. g: "25.3",
  257. h: "61",
  258. i: "17.2"
  259. },
  260. {
  261. id: "681913747276782417",
  262. a: "测试本地",
  263. b: "RS001",
  264. c: "公园",
  265. d: "2024-09-02 22:57",
  266. e: "0.2",
  267. f: "150",
  268. g: "25.3",
  269. h: "61",
  270. i: "17.2"
  271. },
  272. {
  273. id: "681913747276782417",
  274. a: "测试本地",
  275. b: "RS001",
  276. c: "公园",
  277. d: "2024-09-02 22:57",
  278. e: "0.2",
  279. f: "150",
  280. g: "25.3",
  281. h: "61",
  282. i: "17.2"
  283. },
  284. {
  285. id: "681913747276782417",
  286. a: "测试本地",
  287. b: "RS001",
  288. c: "公园",
  289. d: "2024-09-02 22:57",
  290. e: "0.2",
  291. f: "150",
  292. g: "25.3",
  293. h: "61",
  294. i: "17.2"
  295. },
  296. {
  297. id: "681913747276782417",
  298. a: "测试本地",
  299. b: "RS001",
  300. c: "公园",
  301. d: "2024-09-02 22:57",
  302. e: "0.2",
  303. f: "150",
  304. g: "25.3",
  305. h: "61",
  306. i: "17.2"
  307. },
  308. {
  309. id: "681913747276782417",
  310. a: "测试本地",
  311. b: "RS001",
  312. c: "公园",
  313. d: "2024-09-02 22:57",
  314. e: "0.2",
  315. f: "150",
  316. g: "25.3",
  317. h: "61",
  318. i: "17.2"
  319. }
  320. ]);
  321. // 表格配置项
  322. const columns = reactive<ColumnProps[]>([
  323. { prop: "a", label: "站名" },
  324. { prop: "b", label: "站号" },
  325. { prop: "c", label: "地址" },
  326. { prop: "d", label: "观测时间" },
  327. { prop: "e", label: "瞬风风速(m/s)" },
  328. { prop: "f", label: "瞬风方向(°)" },
  329. { prop: "g", label: "气温(℃)" },
  330. { prop: "h", label: "相对湿度(%)" },
  331. { prop: "i", label: "漏点温度(℃)" }
  332. ]);
  333. </script>