index.vue 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158
  1. <template>
  2. <div>
  3. <task-statistics></task-statistics>
  4. <div class="hanson-bar">
  5. <el-cascader v-model="taskTypes" :options="taskTypeList" filterable @change="handleChangeTask"></el-cascader>
  6. <el-divider direction="vertical"></el-divider>
  7. <div class="condition-list">
  8. <floor-cascader v-show="taskType == 'device' || taskType == 'assets'" :isWidth="false" @change="changeFloor"></floor-cascader>
  9. <task-state v-show="taskType == 'model' || taskType == 'device' || taskType == 'assets'" ref="taskState" @change="changeState"></task-state>
  10. <model-file v-show="taskType == 'model'" ref="modelFile" @change="handleChangeModel"></model-file>
  11. <model-cascader v-show="taskType == 'model'" :isWidth="false" ref="modelCascader" @change="changeModelCascader"></model-cascader>
  12. <device-cascader v-show="taskType == 'device'" :isWidth="false" ref="deviceCascader" @change="changeDeviceCascader"></device-cascader>
  13. <assets-cascader v-show="taskType == 'assets'" :isWidth="false" ref="assets" @change="changeAssetsCascader"></assets-cascader>
  14. </div>
  15. <el-button class="add-task" @click="addTaskDialog = true">添加验证任务</el-button>
  16. </div>
  17. <div class="tabel-box">
  18. <model-table :paramsData="{taskState, modelFile, modelCategory}" v-if="taskType == 'model'"></model-table>
  19. <device-table :paramsData="{buildfloor, taskState, deviceCategory}" v-else-if="taskType == 'device'"></device-table>
  20. <assets-table :paramsData="{buildfloor, taskState, family}" v-else-if="taskType == 'assets'"></assets-table>
  21. <tear-table v-else-if="taskType == 'tear'"></tear-table>
  22. <replace-table v-else-if="taskType == 'replace'"></replace-table>
  23. </div>
  24. <add-task :addTaskDialog.sync="addTaskDialog" :newTaskTypes="newTaskTypes"></add-task>
  25. </div>
  26. </template>
  27. <script>
  28. import { mapGetters } from "vuex"
  29. import taskStatistics from '@/components/data_admin/buildTask/taskStatistics'
  30. import floorCascader from "@/components/ledger/lib/floorCascader"
  31. import taskState from "@/components/data_admin/buildTask/lib/taskState"
  32. import modelFile from "@/components/data_admin/buildTask/lib/modelFile"
  33. import modelCascader from "@/components/data_admin/buildTask/lib/modelCascader"
  34. import deviceCascader from "@/components/data_admin/buildTask/lib/deviceCascader"
  35. import assetsCascader from "@/components/data_admin/buildTask/lib/assetsCascader"
  36. import modelTable from "@/components/data_admin/buildTask/table/modelTable"
  37. import deviceTable from "@/components/data_admin/buildTask/table/deviceTable"
  38. import assetsTable from "@/components/data_admin/buildTask/table/assetsTable"
  39. import tearTable from "@/components/data_admin/buildTask/table/tearTable"
  40. import replaceTable from "@/components/data_admin/buildTask/table/replaceTable"
  41. import addTask from "@/components/data_admin/buildTask/dialog/addTaskDialog"
  42. export default {
  43. components: {
  44. taskState,
  45. modelCascader,
  46. taskStatistics,
  47. floorCascader,
  48. modelFile,
  49. deviceCascader,
  50. assetsCascader,
  51. modelTable,
  52. deviceTable,
  53. assetsTable,
  54. tearTable,
  55. replaceTable,
  56. addTask
  57. },
  58. computed: {
  59. ...mapGetters("layout", [ "projectId", "secret", "userId" ]),
  60. taskType(){
  61. return this.taskTypes.slice(-1)[0]
  62. }
  63. },
  64. data() {
  65. return {
  66. taskTypeList: [
  67. { value: "verification", label: '现场验证任务', children:[
  68. {value: "model", label: '现场验证模型'},
  69. {value: "device", label: '现场验证设备台账'},
  70. {value: "assets", label: '现场验证资产台账'}
  71. ]},
  72. { value: "tear", label: '现场撕码任务' },
  73. { value: "replace", label: '现场换码任务' }
  74. ],
  75. taskStateList: [{
  76. value: '',
  77. label: '全部'
  78. }, {
  79. value: 1,
  80. label: '待验证'
  81. }, {
  82. value: 0,
  83. label: '已完成'
  84. }, {
  85. value: -1,
  86. label: '未找到'
  87. }],
  88. taskState: '',//任务执行情况
  89. modelFile: '',//模型文件
  90. modelCategory: '',//模型-设备类型
  91. deviceCategory: '',//设备-设备类型
  92. family: '',//设备族
  93. buildfloor: ['all'],//建筑楼层
  94. taskTypes: [],
  95. addTaskDialog: false, //是否显示添加任务弹窗
  96. newTaskTypes:''
  97. }
  98. },
  99. created(){
  100. this.$route.query.newTaskTypes?this.newTaskTypes = this.$route.query.newTaskTypes:this.newTaskTypes = ['verification','model']
  101. this.taskTypes = this.newTaskTypes
  102. },
  103. methods: {
  104. handleChangeTask(val){//切换任务类型
  105. this.newTaskTypes = val
  106. },
  107. handleChangeModel(val) {//修改模型文件
  108. if(val[1]){
  109. this.modelFile = val[1]
  110. } else {
  111. this.modelFile = ''
  112. }
  113. },
  114. changeState(val) {//修改任务执行情况
  115. this.taskState = val
  116. },
  117. changeFloor(val){//修改建筑楼层
  118. this.buildfloor = val
  119. },
  120. changeModelCascader(val){//修改模型-设备类型
  121. this.modelCategory = val.Code
  122. },
  123. changeDeviceCascader(val){//修改设备-设备类型
  124. this.deviceCategory = val.Code
  125. },
  126. changeAssetsCascader(val){//修改设备族
  127. this.family = val.Code
  128. }
  129. }
  130. }
  131. </script>
  132. <style lang="scss" scoped>
  133. .hanson-bar {
  134. height: 40px;
  135. padding: 5px 0;
  136. font-size: 14px;
  137. overflow: hidden;
  138. margin-top: 0;
  139. line-height: 40px;
  140. position: relative;
  141. .condition-list{
  142. display: inline-block;
  143. vertical-align: middle;
  144. line-height: 32px;
  145. }
  146. .add-task{
  147. position: absolute;
  148. right: 0;
  149. top: 9px;
  150. }
  151. }
  152. .tabel-box{
  153. height: calc(100% - 170px);
  154. }
  155. </style>