hc-table.vue 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. <template>
  2. <div class="hc-layout-box">
  3. <HcCard>
  4. <template #header>
  5. <el-button hc-btn type="primary" @click="toBackClick">
  6. <HcIcon name="arrow-go-back"/>
  7. <span>返回上一级</span>
  8. </el-button>
  9. </template>
  10. <el-table v-loading="isLoading" :data="tableData" :load="loadData" border height="100%" lazy
  11. row-key="primaryKeyId">
  12. <el-table-column label="节点名称" prop="title"></el-table-column>
  13. <el-table-column align="center" label="施工台账">
  14. <el-table-column align="center" label="未开始" prop="standingBookNotAmount"
  15. width="80"></el-table-column>
  16. <el-table-column align="center" label="已完成" prop="standingBookEndAmount"
  17. width="80"></el-table-column>
  18. </el-table-column>
  19. <el-table-column align="center" label="开工报告">
  20. <el-table-column align="center" label="未开始" prop="workStartNotSubmitAmount"
  21. width="80"></el-table-column>
  22. <el-table-column align="center" label="未上报" prop="workStartNotTaskAmount"
  23. width="80"></el-table-column>
  24. <el-table-column align="center" label="待审批" prop="workStartAwaitAmount"
  25. width="80"></el-table-column>
  26. <el-table-column align="center" label="已审批" prop="workStartApprovalAmount"
  27. width="80"></el-table-column>
  28. </el-table-column>
  29. <el-table-column align="center" label="工序资料">
  30. <el-table-column align="center" label="未开始" prop="processNotSubmitAmount"
  31. width="80"></el-table-column>
  32. <el-table-column align="center" label="未上报" prop="processNotTaskAmount"
  33. width="80"></el-table-column>
  34. <el-table-column align="center" label="待审批" prop="processAwaitAmount"
  35. width="80"></el-table-column>
  36. <el-table-column align="center" label="已审批" prop="processApprovalAmount"
  37. width="80"></el-table-column>
  38. </el-table-column>
  39. <el-table-column align="center" label="质量评定">
  40. <el-table-column align="center" label="未开始" prop="evaluationNotSubmitAmount"
  41. width="80"></el-table-column>
  42. <el-table-column align="center" label="未上报" prop="evaluationNotTaskAmount"
  43. width="80"></el-table-column>
  44. <el-table-column align="center" label="待审批" prop="evaluationAwaitAmount"
  45. width="80"></el-table-column>
  46. <el-table-column align="center" label="已审批" prop="evaluationApprovalAmount"
  47. width="80"></el-table-column>
  48. </el-table-column>
  49. <el-table-column align="center" label="中间交工">
  50. <el-table-column align="center" label="未开始" prop="completionNotSubmitAmount"
  51. width="80"></el-table-column>
  52. <el-table-column align="center" label="未上报" prop="completionNotTaskAmount"
  53. width="80"></el-table-column>
  54. <el-table-column align="center" label="待审批" prop="completionAwaitAmount"
  55. width="80"></el-table-column>
  56. <el-table-column align="center" label="已审批" prop="completionApprovalAmount"
  57. width="80"></el-table-column>
  58. </el-table-column>
  59. </el-table>
  60. </HcCard>
  61. </div>
  62. </template>
  63. <script setup>
  64. import {ref, onMounted} from "vue";
  65. import {useRouter} from 'vue-router'
  66. import {useAppStore} from "~src/store";
  67. import DataApi from "~api/schedule/data"
  68. import {getArrValue} from "js-fast-way"
  69. //变量
  70. const router = useRouter()
  71. const useAppState = useAppStore()
  72. const projectId = ref(useAppState.getProjectId);
  73. const contractId = ref(useAppState.getContractId);
  74. //渲染完成
  75. onMounted(() => {
  76. if (contractId.value) {
  77. getTableData()
  78. }
  79. })
  80. //初始数据获取
  81. const isLoading = ref(false)
  82. const tableData = ref([])
  83. const getTableData = async () => {
  84. isLoading.value = true
  85. const {error, code, data} = await DataApi.queryContractTreeMaterialProgress({
  86. projectId: projectId.value,
  87. contractId: contractId.value,
  88. parentId: ''
  89. });
  90. isLoading.value = false
  91. if (!error && code === 200) {
  92. tableData.value = getArrValue(data['treeMaterialProgressList']);
  93. } else {
  94. tableData.value = [];
  95. }
  96. }
  97. //懒加载数据
  98. const loadData = async (row, treeNode, resolve) => {
  99. const {error, code, data} = await DataApi.queryContractTreeMaterialProgress({
  100. projectId: projectId.value,
  101. contractId: row.contractId || contractId.value,
  102. parentId: row.id
  103. });
  104. if (!error && code === 200) {
  105. resolve(getArrValue(data['treeMaterialProgressList']))
  106. } else {
  107. resolve([])
  108. }
  109. }
  110. //返回上级
  111. const toBackClick = () => {
  112. router.push({
  113. path: '/schedule/data'
  114. })
  115. }
  116. </script>
  117. <style lang="scss" scoped>
  118. @import '../../styles/schedule/hc-table.scss';
  119. </style>