index.vue 6.2 KB

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