index.vue 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178
  1. <template>
  2. <div id="deviceList">
  3. <saga-title :mess="mess"></saga-title>
  4. <div class="table-main">
  5. <div class="search-header">
  6. <floor-cascader @change="changeFloor"></floor-cascader>
  7. <my-cascader ref="cascader" @change="changeDevice"></my-cascader>
  8. </div>
  9. <hanson-table @getJson="change" ref="tableMain"></hanson-table>
  10. </div>
  11. <!-- <table-transfers></table-transfers> -->
  12. </div>
  13. </template>
  14. <script>
  15. import sagaTitle from "@/components/ledger/lib/title";
  16. import floorCascader from "@/components/ledger/lib/floorCascader";
  17. import myCascader from "@/components/ledger/lib/assets";
  18. import hansonTable from "@/components/ledger/handsontables/assets";
  19. import tableTransfers from "@/components/ledger/tableTransfers";
  20. import {
  21. mapGetters,
  22. mapActions
  23. } from "vuex";
  24. import { countProperty, queryProperty } from "@/api/scan/request"
  25. import "./../index.scss"
  26. export default {
  27. components: {
  28. sagaTitle,
  29. floorCascader,
  30. myCascader,
  31. hansonTable,
  32. tableTransfers
  33. },
  34. computed: {
  35. ...mapGetters("layout", [
  36. "projectId",
  37. "projects",
  38. "secret",
  39. "userId"
  40. ])
  41. },
  42. data() {
  43. return {
  44. mess: {
  45. perjectName: "",
  46. name: [
  47. {
  48. key: "资产",
  49. num: 0
  50. },
  51. {
  52. key: "岗位",
  53. num: 0
  54. }
  55. ]
  56. },
  57. param: {
  58. buildId: "",
  59. floorId: "",
  60. deviceId: "",
  61. ProjId: '',
  62. secret: ''
  63. },
  64. list: []
  65. };
  66. },
  67. created() {
  68. this.param.ProjId = this.projectId
  69. this.param.secret = this.secret
  70. this.getProjName()
  71. },
  72. watch: {
  73. projectId() {
  74. this.param.ProjId = this.projectId
  75. this.param.secret = this.secret
  76. this.getProjName()
  77. }
  78. },
  79. methods: {
  80. getProjName() {
  81. this.projects.forEach((item) => {
  82. if(item.id == this.projectId)
  83. this.mess.perjectName = item.name
  84. })
  85. this.getNumber()
  86. },
  87. getFamilyList() {
  88. let param = {
  89. Distinct: true,
  90. PageNumber: 1,
  91. PageSize: 500,
  92. Projection: [
  93. "Family"
  94. ]
  95. }
  96. queryProperty(param, res => {
  97. if (this.$refs.cascader) {
  98. this.$refs.cascader.pushData(res.Content)
  99. }
  100. })
  101. },
  102. //获取header的list
  103. getNumber() {
  104. countProperty({}, res => {
  105. this.mess.name[0].num = res.Count
  106. })
  107. countProperty({"Filters": "not EquipId isNull"}, res => {
  108. this.mess.name[1].num = res.Count
  109. this.getFamilyList()
  110. })
  111. },
  112. //修改楼层
  113. changeFloor(value) {
  114. if (value[0]) {
  115. this.param.buildId = value[0]
  116. }
  117. if (value[1]) {
  118. this.param.floorId = value[1]
  119. } else {
  120. this.param.floorId = null
  121. }
  122. if (!!this.param.deviceId) {
  123. if(this.$refs.tableMain)
  124. this.$refs.tableMain.getHeaderData(this.param);
  125. } else {
  126. return;
  127. }
  128. },
  129. //新建资产后进行刷新
  130. change(val) {
  131. console.log(val)
  132. this.$refs.cascader.setValue([val.code])
  133. this.param.deviceId = val.code
  134. this.getNumber()
  135. if (!!this.param.deviceId) {
  136. if(this.$refs.tableMain)
  137. this.$refs.tableMain.getHeaderData(this.param);
  138. }
  139. },
  140. //修改设备族
  141. changeDevice(value) {
  142. console.log(value)
  143. this.param.deviceId = value.code
  144. if (!!value) {
  145. if(this.$refs.tableMain)
  146. this.$refs.tableMain.getHeaderData(this.param);
  147. } else {
  148. return;
  149. }
  150. }
  151. }
  152. };
  153. </script>
  154. <style lang="scss" scoped>
  155. #deviceList {
  156. overflow: hidden;
  157. height: 100%;
  158. background-color: #fff;
  159. position: relative;
  160. .table-main {
  161. position: absolute;
  162. top: 87px;
  163. bottom: 0;
  164. left: 0;
  165. right: 0;
  166. background-color: #fff;
  167. // border-radius: 5px;
  168. // padding: 10px 0;
  169. }
  170. .search-header {
  171. overflow: hidden;
  172. padding:0 10px 10px 10px;
  173. border-bottom: 1px solid #bcbcbc;
  174. }
  175. }
  176. </style>