tableformcp.vue 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371
  1. <template>
  2. <div class="data-table">
  3. <div
  4. :style="dataTableContentStyle"
  5. v-loading="loading"
  6. element-loading-text="拼命加载中"
  7. element-loading-spinner="el-icon-loading"
  8. element-loading-background="rgba(0, 0, 0, 0.8)"
  9. class="data-table-content"
  10. >
  11. <template v-if="tableData.length">
  12. <el-table
  13. ref="userTableDatas"
  14. :data="tableData"
  15. style="width: 100%"
  16. :show-summary="true"
  17. :summary-method="getSummaries"
  18. >
  19. <el-table-column
  20. prop="1"
  21. label="日期"
  22. >
  23. </el-table-column>
  24. <el-table-column label="中转行李流向">
  25. <el-table-column label="D-D">
  26. <el-table-column
  27. prop="2"
  28. label="转出"
  29. >
  30. </el-table-column>
  31. <el-table-column
  32. prop="3"
  33. label="未转出"
  34. >
  35. </el-table-column>
  36. <el-table-column
  37. prop="4"
  38. label="转出成功率"
  39. >
  40. </el-table-column>
  41. </el-table-column>
  42. <el-table-column label="D-I">
  43. <el-table-column
  44. prop="5"
  45. label="转出"
  46. >
  47. </el-table-column>
  48. <el-table-column
  49. prop="6"
  50. label="未转出"
  51. >
  52. </el-table-column>
  53. <el-table-column
  54. prop="7"
  55. label="转出成功率"
  56. >
  57. </el-table-column>
  58. </el-table-column>
  59. <el-table-column label="I-I">
  60. <el-table-column
  61. prop="8"
  62. label="转出"
  63. >
  64. </el-table-column>
  65. <el-table-column
  66. prop="9"
  67. label="未转出"
  68. >
  69. </el-table-column>
  70. <el-table-column
  71. prop="10"
  72. label="转出成功率"
  73. >
  74. </el-table-column>
  75. </el-table-column>
  76. <el-table-column label="I-D">
  77. <el-table-column
  78. prop="11"
  79. label="转出"
  80. >
  81. </el-table-column>
  82. <el-table-column
  83. prop="12"
  84. label="未转出"
  85. >
  86. </el-table-column>
  87. <el-table-column
  88. prop="13"
  89. label="转出成功率"
  90. >
  91. </el-table-column>
  92. </el-table-column>
  93. </el-table-column>
  94. <el-table-column
  95. prop="14"
  96. label="进港中转航班数"
  97. >
  98. </el-table-column>
  99. <el-table-column
  100. prop="15"
  101. label="中转总件数"
  102. >
  103. </el-table-column>
  104. <el-table-column
  105. prop="16"
  106. label="未转出总件数"
  107. >
  108. </el-table-column>
  109. <el-table-column
  110. prop="17"
  111. label="转出成功率"
  112. >
  113. </el-table-column>
  114. </el-table>
  115. </template>
  116. <template v-else>
  117. <NoData
  118. image-width="auto"
  119. image-height="100%"
  120. />
  121. </template>
  122. </div>
  123. </div>
  124. </template>
  125. <script>
  126. import NoData from '@/components/nodata'
  127. import { exportToExcel } from '@/utils/table'
  128. export default {
  129. props: {
  130. isloadings: {
  131. type: Number,
  132. },
  133. },
  134. data() {
  135. return {
  136. loading: false,
  137. tableData: [
  138. {
  139. 1: '10月7日',
  140. 2: '161',
  141. 3: '2',
  142. 4: '98.77%',
  143. 5: '64',
  144. 6: '0',
  145. 7: '100%',
  146. 8: '0',
  147. 9: '0',
  148. 10: '#DV0.!',
  149. 11: '0',
  150. 12: '0',
  151. 13: '#DV0.!',
  152. 14: '55',
  153. 15: '227',
  154. 16: '2',
  155. 17: '92.12%',
  156. },
  157. {
  158. 1: '10月8日',
  159. 2: '254',
  160. 3: '1',
  161. 4: '99.61%',
  162. 5: '66',
  163. 6: '0',
  164. 7: '100%',
  165. 8: '0',
  166. 9: '0',
  167. 10: '#DV0.!',
  168. 11: '0',
  169. 12: '0',
  170. 13: '#DV0.!',
  171. 14: '41',
  172. 15: '321',
  173. 16: '1',
  174. 17: '99.69%',
  175. },
  176. {
  177. 1: '10月9日',
  178. 2: '176',
  179. 3: '0',
  180. 4: '100%',
  181. 5: '36',
  182. 6: '0',
  183. 7: '100%',
  184. 8: '0',
  185. 9: '0',
  186. 10: '#DV0.!',
  187. 11: '0',
  188. 12: '0',
  189. 13: '#DV0.!',
  190. 14: '45',
  191. 15: '213',
  192. 16: '0',
  193. 17: '100%',
  194. },
  195. {
  196. 1: '10月',
  197. 2: '199',
  198. 3: '0',
  199. 4: '100%',
  200. 5: '53',
  201. 6: '0',
  202. 7: '100%',
  203. 8: '0',
  204. 9: '0',
  205. 10: '#DV0.!',
  206. 11: '0',
  207. 12: '0',
  208. 13: '#DV0.!',
  209. 14: '42',
  210. 15: '252',
  211. 16: '0',
  212. 17: '100%',
  213. },
  214. {
  215. 1: '11月',
  216. 2: '159',
  217. 3: '0',
  218. 4: '100%',
  219. 5: '42',
  220. 6: '0',
  221. 7: '100%',
  222. 8: '0',
  223. 9: '0',
  224. 10: '#DV0.!',
  225. 11: '0',
  226. 12: '0',
  227. 13: '#DV0.!',
  228. 14: '40',
  229. 15: '201',
  230. 16: '0',
  231. 17: '100%',
  232. },
  233. {
  234. 1: '2020年',
  235. 2: '172',
  236. 3: '3',
  237. 4: '98.29%',
  238. 5: '181',
  239. 6: '0',
  240. 7: '100%',
  241. 8: '0',
  242. 9: '0',
  243. 10: '#DV0.!',
  244. 11: '0',
  245. 12: '0',
  246. 13: '#DV0.!',
  247. 14: '26',
  248. 15: '356',
  249. 16: '3',
  250. 17: '99.16%',
  251. },
  252. {
  253. 1: '2021年',
  254. 2: '194',
  255. 3: '0',
  256. 4: '100%',
  257. 5: '22',
  258. 6: '0',
  259. 7: '100%',
  260. 8: '0',
  261. 9: '0',
  262. 10: '#DV0.!',
  263. 11: '0',
  264. 12: '0',
  265. 13: '#DV0.!',
  266. 14: '26',
  267. 15: '216',
  268. 16: '0',
  269. 17: '100%',
  270. },
  271. ],
  272. }
  273. },
  274. watch: {
  275. isloadings: {
  276. handler(val) {
  277. this.downFile()
  278. },
  279. },
  280. },
  281. components: {
  282. NoData,
  283. },
  284. computed: {
  285. dataTableContentStyle() {
  286. const style = {}
  287. if (this.minHeight) {
  288. style['min-height'] = this.minHeight
  289. }
  290. if (this.tableHeight) {
  291. style['height'] = this.tableHeight
  292. }
  293. return style
  294. },
  295. },
  296. methods: {
  297. getSummaries() {
  298. let arr = [
  299. '合计',
  300. '1315',
  301. '6',
  302. '99.55%',
  303. '464',
  304. '0',
  305. '100%',
  306. '0',
  307. '0',
  308. '#DV0.!',
  309. '0',
  310. '0',
  311. '#DV0.!',
  312. '275',
  313. '1785',
  314. '6',
  315. '99.66%',
  316. ]
  317. // {
  318. // 1: "合计",
  319. // 2: "218",
  320. // 3: "557",
  321. // 4: "###",
  322. // 5: "12",
  323. // 6: "99.32%",
  324. // 7: "1",
  325. // 8: "1",
  326. // 9: "3",
  327. // 10: "0",
  328. // 11: "######",
  329. // 12: "0",
  330. // 13: "0",
  331. // 14: "0",
  332. // 15: "0",
  333. // 16: "#DV0.!",
  334. // 17: "87",
  335. // 18: "131",
  336. // 19: "##",
  337. // 20: "0",
  338. // 21: "100%",
  339. // 22: "15",
  340. // 23: "17",
  341. // 24: "33",
  342. // 25: "0",
  343. // 26: "100%",
  344. // 27: "0",
  345. // 28: "0",
  346. // 29: "0",
  347. // 30: "0",
  348. // 31: "100%",
  349. // 32: "59",
  350. // 33: "147",
  351. // 34: "311",
  352. // 35: "5",
  353. // 36: "98.42%",
  354. // 37: "380",
  355. // 38: "853",
  356. // 39: "2426",
  357. // 40: "17",
  358. // 41: "99.30%",
  359. // },
  360. return arr
  361. },
  362. downFile() {
  363. let tableName = '中转专项报表'
  364. const table = this.$refs['userTableDatas'].$el.cloneNode(true)
  365. const fileName = `${tableName}.xlsx`
  366. exportToExcel(table, tableName, fileName)
  367. },
  368. },
  369. }
  370. </script>
  371. <style lang="scss" scoped></style>