Browse Source

添加模型文件筛选

zhangyu 5 năm trước cách đây
mục cha
commit
b31c635093

+ 108 - 0
src/components/ready/buildfloor/modelFile.vue

@@ -0,0 +1,108 @@
+<template>
+    <div id="modelFile">
+        <span class="modelFile" style="margin-right: 12px;">模型文件</span>
+        <el-cascader :options="options" :show-all-levels="false" @change="handleChange" style="width:160px;"
+        @active-item-change='handleItemChange' clearable placeholder="请选择模型文件" v-model="casVal"></el-cascader>
+        <!-- <el-cascader placeholder="请选择建筑楼层" :options="options" v-model="value" filterable size="small" :style="isWidth ? '' : 'width:160px;'" @change="changeCascader"></el-cascader> -->
+    </div>
+</template>
+<script>
+import tools from "@/utils/scan/tools"
+import request from "@/api/model/file.js";
+import { mapGetters, mapActions } from "vuex"
+
+export default {
+  computed: {
+    ...mapGetters("layout", [ "projectId", "secret", "userId" ])
+  },
+  data() {
+    return {
+      casVal: [],
+      options: [],
+      modelIdToFloorId: {}
+    };
+  },
+  created() {
+    this.init()
+  },
+  watch: {
+    projectId() {
+      this.casVal =[]
+      this.options = []
+      this.init()
+    }
+  },
+  methods: {
+    //设置默认选项
+    setValue(val) {
+        if (val && val.length) {
+          this.casVal = val
+        }
+    },
+    //获取数据
+    init() {
+      this.getDirectory()
+    },
+    // 获取文件夹
+    getDirectory() {
+      request.queryModel("", res => {
+        this.options = res.Content.map(t => {
+          return {
+            value: t.Id,
+            label: t.Name,
+            children: []
+          }
+        })
+      });
+    },
+    // 通过id查询文件夹下模型文件
+    handleItemChange(val) {
+      let data = {
+        FolderId: val[0],
+        ProjectId: this.projectId
+      };
+      request.queryFloorList(data, res => {
+        let tempArr = res.Content.map(t => {
+          this.modelIdToFloorId[t.CurrentModelId] = t.Id;
+          return {
+            value: t.CurrentModelId,
+            label: t.FloorName
+          }
+        })
+        this.pushChild(this.options, tempArr, val[0])
+      })
+    },
+    // 将模型文件list填到相应的文件夹下
+    pushChild(options, arr, Code) {
+      options.map(option => {
+        if (option.value == Code) {
+          option.children = arr;
+        } else {
+          if (option.children) {
+            this.pushChild(option.children, arr, Code)
+          }
+        }
+      })    
+    },
+    //改变item
+    handleChange(value) {
+      this.$emit("change", value)
+    }
+  }
+};
+</script>
+<style lang="less">
+    .el-cascader .el-input .el-input__inner {
+        vertical-align: bottom;
+    }
+</style>
+<style lang="less" scoped>
+    #modelFile {
+        margin-left: 10px;
+        float: left;
+        .modelFile {
+            color: #999999;
+            font-size: 14px;
+        }
+    }
+</style>

+ 36 - 1
src/views/data_admin/buildTask/index.vue

@@ -6,6 +6,13 @@
 			<el-divider direction="vertical"></el-divider>
 			<div class="condition-list">
 				<floor-cascader :isWidth="false" @change="changeFloor"></floor-cascader>
+				<div class="task-state" v-show="taskType == 'model' || taskType == 'device' || taskType == 'assets'">
+					<span class="task-stete-title" style="margin-right: 12px;">任务执行情况</span>
+					<el-select v-model="taskState" placeholder="请选择" filterable style="width:120px;" size="small" @change="changeState">
+						<el-option  v-for="item in taskStateList" :key="item.code" :label="item.label" :value="item.value"></el-option>
+					</el-select>
+				</div>
+				<model-file ref="modelFile" @change="handleChangeModel"></model-file>
 				<my-cascader :isWidth="false" ref="cascader" @change="changeDevice"></my-cascader>
 				<assets-cascader :isWidth="false" ref="assets" @change="changeAssets"></assets-cascader>
 			</div>
@@ -14,7 +21,7 @@
 		<div class="tabel-box">
 			<model-table v-if="taskType == 'model'"></model-table>
 			<device-table v-else-if="taskType == 'device'"></device-table>
-			<assets-device v-else-if="taskType == 'assets'"></assets-device>
+			<assets-table v-else-if="taskType == 'assets'"></assets-table>
 			<tear-table v-else-if="taskType == 'tear'"></tear-table>
 			<replace-table v-else-if="taskType == 'replace'"></replace-table>
 		</div>
@@ -28,6 +35,7 @@ import taskStatistics from '@/components/data_admin/buildTask/taskStatistics'
 import floorCascader from "@/components/ledger/lib/floorCascader"
 import assetsCascader from "@/components/ledger/lib/assets"
 import myCascader from "@/components/ledger/lib/cascader"
+import modelFile from "@/components/ready/buildfloor/modelFile"
 import modelTable from "@/components/data_admin/buildTask/table/modelTable"
 import deviceTable from "@/components/data_admin/buildTask/table/deviceTable"
 import assetsTable from "@/components/data_admin/buildTask/table/assetsTable"
@@ -38,6 +46,7 @@ export default {
   components: {
 		taskStatistics,
 		floorCascader,
+		modelFile,
 		myCascader,
 		assetsCascader,
 		modelTable,
@@ -64,6 +73,18 @@ export default {
 				{ value: "tear", label: '现场撕码任务' }, 
 				{ value: "replace", label: '现场换码任务' }
 			],
+			taskStateList: [{
+				value: 'wait',
+				label: '待验证'
+			}, {
+				value: 'already',
+				label: '已验证'
+			}, {
+				value: 'notFound',
+				label: '未找到'
+			}],
+			taskState: 'wait',//任务执行情况
+			modelValue: [],//模型文件
 			taskTypes: ['verification','model'],
 			addTaskDialog: false, //是否显示添加任务弹窗
     }
@@ -73,6 +94,9 @@ export default {
 		handleChangeTask(val){
 			
 		},
+		changeState() {
+
+		},
 		changeFloor(){
 
 		},
@@ -82,6 +106,9 @@ export default {
 		changeAssets(){
 
 		},
+		handleChangeModel() {
+			
+		}
   }
 }
 </script>
@@ -98,6 +125,14 @@ export default {
 			display: inline-block;
 			vertical-align: middle;
 			line-height: 32px;
+			.task-state{
+				float: left;
+  			margin-left: 10px;
+				.task-stete-title{
+					color: #999999;
+    			font-size: 14px;
+				}
+			}
 		}
 		.add-task{
 			position: absolute;