index.vue 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. <template>
  2. <div class="page_list">
  3. <nav-bar :go="{ type: 'push', path: '/menu' }"></nav-bar>
  4. <van-row>
  5. <van-col span="24">
  6. <org-tree v-model="search.orgId" @changeItem="changeTree" @checked="orgCheckChanged" showChecked defaultChecked></org-tree>
  7. </van-col>
  8. <van-col span="24" class="search-state">
  9. <span @click="onStatusChanged(1)" :class="`${search.state === 1 ? 'alarm_state_selected' : ''}`">异常</span>
  10. <span @click="onStatusChanged(0)" :class="`${search.state === 0 ? 'alarm_state_selected' : ''}`">正常</span>
  11. <span @click="onStatusChanged(2)" :class="`${search.state === 2 ? 'alarm_state_selected' : ''}`">未知</span>
  12. </van-col>
  13. </van-row>
  14. <div class="container">
  15. <k-list :list="list" :params="search" :auto="false" ref="list">
  16. <template slot-scope="{ data }">
  17. <item :data="data"></item>
  18. </template>
  19. </k-list>
  20. </div>
  21. </div>
  22. </template>
  23. <script>
  24. import NavBar from '@/components/NavBar'
  25. import { mapGetters } from 'vuex'
  26. import { deptTreeList } from '@/api/public'
  27. import { list } from '@/api/iot/videoDiagnosis.js'
  28. import KList from '@/components/list/index.vue'
  29. import Item from './components/item.vue'
  30. import OrgTree from '@/components/orgTree'
  31. export default {
  32. components: { NavBar, KList, Item, OrgTree },
  33. name:'iot_videoDiagnosis',
  34. data() {
  35. return {
  36. options: [],
  37. search: {
  38. orgId: this.orgId,
  39. checkSub: true,
  40. state: null,
  41. pageNum: 1,
  42. pageSize: 10
  43. },
  44. showOrg: false,
  45. dicts: []
  46. }
  47. },
  48. watch: {},
  49. created() {},
  50. mounted() {
  51. this.getTreeList()
  52. this.search.orgId = this.orgId
  53. },
  54. computed: {
  55. ...mapGetters(['orgName', 'orgId', 'dictionary'])
  56. // statusOptions() {
  57. // let r = [
  58. // { value: null, text: '布撤防状态' }
  59. // ]
  60. // let dict = this.getDictItem('protection_status');
  61. // if (dict) {
  62. // dict.forEach(element => {
  63. // r.push({ value: element.dictValue, text: element.dictLabel })
  64. // });
  65. // }
  66. // return r;
  67. // }
  68. },
  69. methods: {
  70. list,
  71. //获取机构树
  72. getTreeList() {
  73. deptTreeList(this.orgId).then(res => {
  74. this.options = res.data
  75. // this.orgInfo.orgId = this.orgId;
  76. // this.orgInfo.orgName = this.orgName;
  77. // console.log(res,'3333')
  78. })
  79. },
  80. // refreshData(){
  81. // this.search.pageNum=0;
  82. // },
  83. //改变机构后将重新发起请求
  84. changeTree(node) {
  85. // console.log(selectedOptions,'aaaaaa')
  86. // this.search.orgId = selectedOptions[selectedOptions.length-1].id;
  87. // let option = selectedOptions[selectedOptions.length - 1]
  88. this.search.orgId = node.id
  89. },
  90. orgCheckChanged(v) {
  91. this.search.checkSub = v
  92. },
  93. onStatusChanged(state) {
  94. if(this.search.state===state){
  95. this.search.state=null;
  96. }else{
  97. this.search.state = state
  98. }
  99. }
  100. }
  101. }
  102. </script>
  103. <style lang="scss" scoped>
  104. .page_list {
  105. background-color: transparent;
  106. display: block;
  107. .container {
  108. // overflow: auto;
  109. // height: calc(100vh - 11rem);
  110. .k-content-repair {
  111. display: flex;
  112. flex-direction: column;
  113. justify-content: space-between;
  114. flex: 1;
  115. }
  116. }
  117. }
  118. .search-state {
  119. width: 100%;
  120. > span {
  121. width: 33.333333%;
  122. border: solid 1px rgb(196,196,196);
  123. display: inline-block;
  124. text-align: center;
  125. padding-top: 1.2vw;
  126. padding-bottom: 1.2vw;
  127. }
  128. }
  129. .alarm_state_selected {
  130. background-color: #409eff;
  131. border-color: #409eff;
  132. color: white;
  133. font-weight: 700;
  134. }
  135. </style>