tearTable.vue 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195
  1. <template>
  2. <div class="table-container">
  3. <div class="table-list" :style="tableData && tableData.length?'height:calc(100% - 50px);':'height:100%;'">
  4. <el-table :data="tableData" style="width: 100%" height="100%" v-loading="loading" :header-cell-style="headerStyle">
  5. <el-table-column label="所属建筑楼层" show-overflow-tooltip min-width="100">
  6. <template slot-scope="scope">
  7. <div>
  8. {{scope.row.Building?scope.row.Building.BuildLocalName?scope.row.Building.BuildLocalName:'':''}} -
  9. {{scope.row.Floor?scope.row.Floor.FloorLocalName?scope.row.Floor.FloorLocalName:'':''}}
  10. </div>
  11. </template>
  12. </el-table-column>
  13. <el-table-column prop="EquipLocalID" :label="`${inSpaceType}本地名称`" show-overflow-tooltip min-width="100"></el-table-column>
  14. <el-table-column prop="EquipLocalName" :label="`${inSpaceType}本地编码`" show-overflow-tooltip min-width="100"></el-table-column>
  15. <el-table-column prop="EquipFamily.FamilyName" label="设备族" show-overflow-tooltip min-width="100"></el-table-column>
  16. <el-table-column prop="InstallLocation" label="安装位置" show-overflow-tooltip min-width="100"></el-table-column>
  17. <el-table-column prop="TaskType" label="任务执行情况" show-overflow-tooltip min-width="100"></el-table-column>
  18. <!-- <el-table-column prop="action" label="操作" min-width="100">
  19. <template slot-scope="scope">
  20. <i v-if="scope.row.TaskState == '待验证' || scope.row.TaskState == '未找到'" title="查看详情" class="iconfont icon-xiangqing table-button" @click="handleDetail(scope.$index, scope.row)"></i>
  21. <i v-if="scope.row.TaskState == '未找到'" title="重新生成任务" class="iconfont icon-Update table-button" @click="handleRegenerate(scope.$index, scope.row)"></i>
  22. <i v-if="scope.row.TaskState == '待验证'" title="删除任务" class="iconfont icon-delete table-button" @click="handleDelete(scope.$index, scope.row)"></i>
  23. <i v-if="scope.row.TaskState == '未找到'" title="认可此任务执行情况" class="iconfont icon-lijiqueren table-button" @click="handleConfirm(scope.$index, scope.row)"></i>
  24. </template>
  25. </el-table-column> -->
  26. <template slot="empty">
  27. <div style="height: 60%;transform: translateY(50%);">
  28. <i class="icon-wushuju iconfont"></i>
  29. 数据暂无
  30. </div>
  31. </template>
  32. </el-table>
  33. </div>
  34. <el-pagination class="right" v-show="tableData && tableData.length" @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="page.pageNumber"
  35. :page-sizes="page.pageSizes" :page-size="page.pageSize" layout="total, sizes, prev, pager, next, jumper" :total="page.total">
  36. </el-pagination>
  37. <el-drawer title="任务详情" :visible.sync="drawer" direction="rtl" size="600px">
  38. <assets-detail :id="detailId"></assets-detail>
  39. </el-drawer>
  40. </div>
  41. </template>
  42. <script>
  43. import { queryAssetsTask, deleteAssetsTask } from "@/api/data_admin/buildTaskApi"
  44. import { mapGetters } from "vuex"
  45. import assetsDetail from '../detail/assetsDetail'
  46. export default {
  47. components: {
  48. assetsDetail
  49. },
  50. computed: {
  51. ...mapGetters("layout", ["projectId"])
  52. },
  53. props: {
  54. paramsData: Object,
  55. },
  56. data() {
  57. return {
  58. inSpaceType: '资产',
  59. loading: false, // loading
  60. drawer: false, // 详情侧弹窗
  61. detailId: '',
  62. tableData: [], //列表数据
  63. page: {
  64. pageSize: 50,
  65. pageSizes: [10, 20, 50, 100],
  66. pageNumber: 1,
  67. total: 0
  68. },
  69. taskTypeMap: {//待撕码,待换码
  70. '-5': '已撕码',
  71. '3': '待撕码',
  72. '2': '待换码',
  73. '0': '正常贴码'
  74. },
  75. taskStateMap: {
  76. '-1': '未找到',
  77. '0': '已完成',
  78. '1': '待验证'
  79. },
  80. headerStyle: {
  81. backgroundColor: '#e1e4e5',
  82. color: '#2b2b2b',
  83. lineHeight: '30px'
  84. }, // 列表样式
  85. };
  86. },
  87. created() {
  88. this.getTableData()
  89. },
  90. methods: {
  91. // 获取列表数据
  92. getTableData() {
  93. let params = {
  94. Filters: `ProjectId='${this.projectId}';TaskType in ['3','-5']`,
  95. Cascade: [
  96. {
  97. Name: 'equipFamily'
  98. }, {
  99. Name: 'building',
  100. }, {
  101. Name: 'floor',
  102. }
  103. ],
  104. Orders: "CreateTime desc, TaskId asc",
  105. PageNumber: this.page.pageNumber,
  106. PageSize: this.page.pageSize
  107. }
  108. // if (this.paramsData.buildfloor[0] == "noKnow") {
  109. // params.Filters += `;BuildingId isNull`
  110. // } else if (this.paramsData.buildfloor[0] && this.paramsData.buildfloor[0] != "all") {
  111. // params.Filters += `;BuildingId='${this.paramsData.buildfloor[0]}'`
  112. // if (this.paramsData.buildfloor[1] == "noKnow") {
  113. // params.Filters += `;FloorId isNull`
  114. // } else if (this.paramsData.buildfloor[1] && this.paramsData.buildfloor[1] != "all") {
  115. // params.Filters += `;FloorId='${this.paramsData.buildfloor[1]}'`
  116. // }
  117. // }
  118. // if(this.paramsData.taskState !== ''){
  119. // params.Filters += `;TaskState=${this.paramsData.taskState}`
  120. // }
  121. // if(this.paramsData.family){
  122. // params.Filters += `;Family='${this.paramsData.family}'`
  123. // }
  124. queryAssetsTask(params, res => {
  125. this.page.total = res.Total;
  126. this.tableData = res.Content.map(item => {
  127. item.TaskState = this.taskStateMap[item.TaskState]
  128. item.TaskType = this.taskTypeMap[item.TaskType]
  129. return item
  130. })
  131. })
  132. },
  133. // 删除关系
  134. handleDelete(index, row) {
  135. this.$confirm("确认删除该任务?", "提示", {
  136. confirmButtonText: '确定',
  137. cancelButtonText: '取消',
  138. type: 'warning'
  139. }).then(() => {
  140. let params = [{TaskId: row.TaskId}]
  141. deleteAssetsTask(params, res => {
  142. this.$message.success('删除成功')
  143. this.getTableData()
  144. })
  145. }).catch(() => {
  146. this.$message("取消删除")
  147. })
  148. },
  149. //查看任务详情
  150. handleDetail() {
  151. this.drawer = true
  152. this.detailId = row.TaskId
  153. },
  154. // 改变pagesize
  155. handleSizeChange(pageSize) {
  156. this.page.pageSize = pageSize;
  157. this.getTableData()
  158. },
  159. // 改变pageno
  160. handleCurrentChange(pageNo) {
  161. this.page.pageNumber = 1
  162. this.page.pageNumber = pageNo;
  163. this.getTableData()
  164. }
  165. },
  166. watch: {
  167. paramsData: {
  168. handler(newName, oldName) {
  169. this.page.pageNumber = 1
  170. this.getTableData()
  171. },
  172. immediate: true,
  173. deep: true
  174. }
  175. }
  176. };
  177. </script>
  178. <style lang="less" scoped>
  179. /deep/ .el-drawer__body {
  180. height: calc(100% - 80px);
  181. border-top: 1px solid #c9c9c9;
  182. }
  183. /deep/ .el-drawer__header {
  184. margin-bottom: 12px;
  185. }
  186. .table-container {
  187. height: 100%;
  188. background: #fff;
  189. .table-button{
  190. cursor: pointer;
  191. margin-right: 15px;
  192. }
  193. }
  194. </style>