tableformbrs.vue 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  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 :data="tableData" style="width: 100%">
  13. <el-table-column label="PEK国航行李BRS扫描数据统计表">
  14. <el-table-column prop="A" label="航站"> </el-table-column>
  15. <el-table-column label="出港航班量">
  16. <el-table-column prop="flightno" label="航班(架次)" width="240">
  17. </el-table-column>
  18. <el-table-column prop="bagsno" label="行李(件数)" width="240">
  19. </el-table-column>
  20. </el-table-column>
  21. <el-table-column label="扫描航班量">
  22. <el-table-column prop="loadflightno" label="航班(架次)">
  23. </el-table-column>
  24. <el-table-column prop="loadbagsno" label="行李(件数)">
  25. </el-table-column>
  26. </el-table-column>
  27. <el-table-column label="扫描率">
  28. <el-table-column prop="flightscan" label="航班">
  29. </el-table-column>
  30. <el-table-column prop="bagsscan" label="行李"> </el-table-column>
  31. </el-table-column>
  32. </el-table-column>
  33. </el-table>
  34. </template>
  35. <template v-else>
  36. <NoData image-width="auto" image-height="100%" />
  37. </template>
  38. </div>
  39. </div>
  40. </template>
  41. <script>
  42. import NoData from "@/components/nodata";
  43. import { Query } from "@/api/dataIntegration";
  44. export default {
  45. props: {
  46. //接口ID
  47. dataId: {
  48. type: [String, Number],
  49. default: "",
  50. },
  51. dataContent: {
  52. type: Array,
  53. default: () => [],
  54. },
  55. },
  56. data() {
  57. return {
  58. loading: false,
  59. page: 0,
  60. serviceId: null,
  61. rowTitle: "",
  62. tableCols: [], //表头数据
  63. tableData: [
  64. // {
  65. // date: "wnz(7月)",
  66. // name: "409",
  67. // province: "18946",
  68. // city: "409",
  69. // address: "18294",
  70. // zip: "100%",
  71. // cp: "96.56%",
  72. // },
  73. ],
  74. };
  75. },
  76. components: {
  77. NoData,
  78. },
  79. watch: {
  80. dataContent: {
  81. handler(val) {
  82. if (val) {
  83. this.getQuery();
  84. }
  85. },
  86. deep: true,
  87. },
  88. },
  89. computed: {
  90. dataTableContentStyle() {
  91. const style = {};
  92. if (this.minHeight) {
  93. style["min-height"] = this.minHeight;
  94. }
  95. if (this.tableHeight) {
  96. style["height"] = this.tableHeight;
  97. }
  98. return style;
  99. },
  100. },
  101. mounted() {
  102. // this.getQuery();
  103. },
  104. methods: {
  105. //获取表格数据
  106. async getQuery() {
  107. try {
  108. this.loading = true;
  109. const { code, returnData } = await Query({
  110. id: this.dataId,
  111. needPage: ++this.page,
  112. dataContent: this.dataContent,
  113. });
  114. if (code == 0) {
  115. if (returnData.listValues.length === 0) {
  116. this.page--;
  117. this.noMore = true;
  118. this.loading = false;
  119. }
  120. const titleColumn = returnData.columnSet.find(
  121. (item) => item.needShow === 1
  122. );
  123. if (titleColumn) {
  124. this.rowTitle = titleColumn.columnName;
  125. }
  126. this.tableData.push(...returnData.listValues);
  127. this.tableCols = returnData.columnSet;
  128. this.serviceId = returnData.submitID;
  129. this.loading = false;
  130. // setTimeout(() => {
  131. // this.initTableData();
  132. // this.loading = false;
  133. // }, 100);
  134. } else {
  135. this.page--;
  136. this.loading = false;
  137. this.$message.error("获取表格数据失败");
  138. }
  139. } catch (error) {
  140. this.page--;
  141. this.loading = false;
  142. console.log(error);
  143. }
  144. },
  145. },
  146. };
  147. </script>
  148. <style lang="scss" scoped>
  149. </style>