Jelajahi Sumber

现场任务模型:添加TaskState=-1,修改通过模型创建参数(通过平面图区域查询),对模型表格的 el-badge做统一样式调整,修改详情页部件显示规则,修改台账参数排序条件,Outline转换

shaun-sheep 4 tahun lalu
induk
melakukan
28a545365f

+ 36 - 17
src/api/data_admin/buildTaskApi.js

@@ -1,11 +1,12 @@
 import http from '../scan/httpUtil'
+
 const baseUrl = '/api';
 
 /**
  * info: 查询统计数量(查询总数量不传参数,查询已完成数量TaskState=0,查询未找到TaskState=-1,查询未验证TaskState=1)
  * @param {Filters:string} param 查询参数
  * @param {*} success  成功的回调函数
- * 
+ *
  */
 export function queryTaskCount(param, success) {
     let url = `${baseUrl}/datacenter/scan-task-base/count`;
@@ -38,53 +39,71 @@ export function updateModelTask(param, success) {
     let url = `${baseUrl}/datacenter/model-scan-task/update`;
     http.postJson(url, param, success)
 }
+
 //查询设备分类
 export function queryModelCategory(param, success) {
-    let url = `${baseUrl}/datacenter/model-scan-task/model-category-query`;
-    http.postJson(url, param, success)
+  let url = `${baseUrl}/datacenter/model-scan-task/model-category-query`;
+  http.postJson(url, param, success)
 }
+
 //查询模型文件夹和文件
 export function queryModelFile(param, success) {
-    let url = `${baseUrl}/datacenter/model-scan-task/model-file-query`;
-    http.postJson(url, param, success)
+  let url = `${baseUrl}/datacenter/model-scan-task/model-file-query`;
+  http.postJson(url, param, success)
+}
+
+//查询模型任务下的部件类型及数量
+export function modelCategoryCount(param, success) {
+  let url = `${baseUrl}/datacenter/model-scan-task/category-count`;
+  http.postJson(url, param, success)
 }
 
 /*************************设备台账任务接口****************************/
 //创建设备台账任务
 export function createDeviceTask(param, success) {
-    let url = `${baseUrl}/datacenter/equip-scan-task/create`;
-    http.postJson(url, param, success)
+  let url = `${baseUrl}/datacenter/equip-scan-task/create`;
+  http.postJson(url, param, success)
 }
+
 //根据id删除设备台账任务
 export function deleteDeviceTask(param, success) {
-    let url = `${baseUrl}/datacenter/equip-scan-task/delete`;
-    http.postJson(url, param, success)
+  let url = `${baseUrl}/datacenter/equip-scan-task/delete`;
+  http.postJson(url, param, success)
 }
 //查询设备台账任务
 export function queryDeviceTask(param, success) {
     let url = `${baseUrl}/datacenter/equip-scan-task/page-query`;
     http.postJson(url, param, success)
 }
+
 //更新设备台账任务
 export function updateDeviceTask(param, success) {
-    let url = `${baseUrl}/datacenter/equip-scan-task/update`;
-    http.postJson(url, param, success)
+  let url = `${baseUrl}/datacenter/equip-scan-task/update`;
+  http.postJson(url, param, success)
 }
+
 //查询设备分类
 export function queryDeviceCategory(param, success) {
-    let url = `${baseUrl}/datacenter/equip-scan-task/equip-category-query`;
-    http.postJson(url, param, success)
+  let url = `${baseUrl}/datacenter/equip-scan-task/equip-category-query`;
+  http.postJson(url, param, success)
+}
+
+//查询设备任务下的部件类型及数量
+export function categoryCount(param, success) {
+  let url = `${baseUrl}/datacenter/equip-scan-task/category-count`
+  http.postJson(url, param, success)
 }
 
 /*************************资产台账任务接口****************************/
 //统计数量
 export function countAssetsTask(param, success) {
-    let url = `${baseUrl}/datacenter/property-scan-task/count`;
-    http.postJson(url, param, success)
+  let url = `${baseUrl}/datacenter/property-scan-task/count`;
+  http.postJson(url, param, success)
 }
+
 //创建设备台账任务
 export function createAssetsTask(param, success) {
-    let url = `${baseUrl}/datacenter/property-scan-task/create`;
+  let url = `${baseUrl}/datacenter/property-scan-task/create`;
     http.postJson(url, param, success)
 }
 //根据id删除设备台账任务
@@ -106,4 +125,4 @@ export function updateAssetsTask(param, success) {
 export function queryAssetsFamily(param, success) {
     let url = `${baseUrl}/datacenter/property-scan-task/property-category-query`;
     http.postJson(url, param, success)
-}
+}

+ 6 - 2
src/components/business_space/business/handsontable.vue

@@ -258,7 +258,9 @@
     },
     //查询空间信息
     getZoneMessage(param) {
-      zoneQuery(param, res => {
+      let params = param
+      params.Orders = "createTime desc, RoomID asc, RoomLocalName desc, RoomLocalID desc"
+      zoneQuery(params, res => {
         this.page.total = res.Total;
         this.main = res.Content.map((item) => {
           if (item.hasOwnProperty("BuildingId") && item.hasOwnProperty("FloorId")) {
@@ -266,7 +268,7 @@
           } else if (item.hasOwnProperty("BuildingId") && !item.hasOwnProperty("FloorId")) {
             item.flowBuild = item.BuildingId
           }
-          if(item.Outline) {
+          if (item.Outline) {
             item.Outline = JSON.stringify(item.Outline)
           }
           return item
@@ -647,6 +649,7 @@
         handleZoneUpdateBd(pa, res => {
           this.$message.success('修改成功')
         })
+        // Orders: "createTime desc, EquipLocalName desc, EquipLocalID desc, EquipID desc"
         // updateRelateInSpAndBuild(pa, res => {
         //   this.$message.success('修改成功')
         // })
@@ -654,6 +657,7 @@
         // updateZone(param, (res) => {
         // })
         let obj = param.data.Content.map(i => {
+          i.Outline = typeof i.Outline == 'string' ? JSON.parse(i.Outline) : i.Outline
           return {
             ...i,
             ObjectType: this.zoneParam.ZoneType || i.ObjectType

+ 46 - 9
src/components/data_admin/buildTask/detail/deviceDetail.vue

@@ -21,13 +21,7 @@
           <el-form-item label="型号:">{{ detail.Specification || '--' }}</el-form-item>
           <el-form-item label="供应商:">{{ detail.Supplier || '--' }}</el-form-item>
           <el-form-item label="包含部件:">
-            <div v-if="detail.Component && detail.Component.length">
-              <p v-for="(item, index) in detail.Component?detail.Component:[]" :key="index"
-                 show-overflow-tooltip>
-                {{ item.EquipName }}
-              </p>
-            </div>
-            <div v-else>--</div>
+            {{Name ? Name :'-'}}{{Count ? ':' + Count +'个' :'-'}}
           </el-form-item>
         </el-form>
       </div>
@@ -119,6 +113,7 @@
 
 <script>
   import {mapGetters} from "vuex"
+  import {categoryCount, modelCategoryCount} from "@/api/data_admin/buildTaskApi"
 
   export default {
     components: {},
@@ -234,19 +229,61 @@
       }
     },
     props: {
-      detail: Object
+      detail: Object,
+      type: String
     },
     data() {
       return {
         dialogVisible: false,//全景图弹出框
         nowUrl: '',//当前正在显示的图
         arr: [],
+        Name: '',
+        Count: '', //包含部件
       };
     },
-    methods: {},
+    methods: {
+      //  查询设备部件数量
+      handleContent() {
+        let param = {
+          TaskId: this.detail.TaskId,
+          EquipId: this.detail.EquipId
+        }
+        this.Name = ''
+        this.Count = ''
+        categoryCount(param, res => {
+          if (res.Content.length) {
+            this.Name = res.Content[0].Name
+            this.Count = res.Content[0].Count
+          }
+
+        })
+      },
+      //  查询模型部件数量
+      handleModelContent() {
+
+        let param = {
+          TaskId: this.detail.TaskId,
+          EquipId: this.detail.EquipId
+        }
+        this.Name = ''
+        this.Count = ''
+        modelCategoryCount(param, res => {
+          if (res.Content.length) {
+            this.Name = res.Content[0].Name
+            this.Count = res.Content[0].Count
+          }
+
+        })
+      }
+    },
     watch: {
       'detail.TaskId'() {
         console.log(this.detail)
+        if (this.type == 'model') {
+          this.handleModelContent()
+        } else {
+          this.handleContent()
+        }
       }
     }
   };

+ 40 - 28
src/components/data_admin/buildTask/dialog/modelTaskDialog.vue

@@ -48,30 +48,30 @@
 </template>
 
 <script>
-import { queryEquip } from "@/api/scan/request"
-import { createModelTask, queryModelDiglog } from "@/api/data_admin/buildTaskApi"
-import { mapGetters } from "vuex"
-export default {
-  components: {
-  },
-  computed: {
-    ...mapGetters("layout", ["projectId"])
-  },
-  data() {
-    return {
-      title: "确认创建任务",
-      options: [{//方案
-        value: '1',
-        label: '极简'
-      }, {
-        value: '2',
-        label: '标准'
-      }],
-      tableData: [],
-      loading: false,
-      selections: [], // 选中项
-      page: {
-        pageSize: 50,
+  import {queryEquip} from "@/api/scan/request"
+  import {createModelTask, queryModelDiglog} from "@/api/data_admin/buildTaskApi"
+  import {mapGetters} from "vuex"
+
+  export default {
+    components: {},
+    computed: {
+      ...mapGetters("layout", ["projectId"])
+    },
+    data() {
+      return {
+        title: "确认创建任务",
+        options: [{//方案
+          value: '1',
+          label: '极简'
+        }, {
+          value: '2',
+          label: '标准'
+        }],
+        tableData: [],
+        loading: false,
+        selections: [], // 选中项
+        page: {
+          pageSize: 50,
         pageSizes: [10, 20, 50, 100],
         pageNumber: 1,
         total: 0
@@ -94,6 +94,7 @@ export default {
   methods: {
     getTableData() {
       this.loading = true
+
       let params = {
         Cascade: [
           {
@@ -120,7 +121,7 @@ export default {
       }
 
       if (this.params.isVerification) {
-        params.Filters += `;(TaskState isNull || TaskState=0)`
+        params.Filters += `;(TaskState isNull || TaskState=0 || TaskState=-1)`
       }
 
       if (this.params.device) {
@@ -129,8 +130,19 @@ export default {
 
       if (this.params.spaceList && this.params.spaceList.length) {
         //通过平面图区域查询
-        params.IdList = this.params.spaceList
-        queryModelDiglog(params, res => {
+        // console.log(this.params,'this.params')
+        let arr = []
+        this.params.spaceList.forEach(i => {
+          let list = `${this.projectId}${this.params.modelFolderId}${this.params.modelFileName}:${i}`
+          arr.push(list)
+        })
+        let param = {
+          ModelId: this.params.CurrentModelId,
+          IdList: arr
+        }
+        // console.log(param,'param')
+        queryModelDiglog(param, res => {
+          this.loading = false
           this.dataFormatter(res)
         })
       } else {
@@ -267,4 +279,4 @@ export default {
   margin-left: 120px;
   width: 100%;
 }
-</style>
+</style>

+ 1 - 1
src/components/data_admin/buildTask/table/deviceTable.vue

@@ -45,7 +45,7 @@
      :page-sizes="page.pageSizes" :page-size="page.pageSize" layout="total, sizes, prev, pager, next, jumper" :total="page.total">
     </el-pagination>
     <el-drawer title="任务详情" :visible.sync="drawer" direction="rtl" size="600px">
-      <device-detail :detail="detailDevice"></device-detail>
+      <device-detail :detail="detailDevice" type="device"></device-detail>
     </el-drawer>
   </div>
 </template>

+ 23 - 18
src/components/data_admin/buildTask/table/modelTable.vue

@@ -8,8 +8,9 @@
           <template slot-scope="scope">
             <div>
               {{scope.row.EquipLocalName}}
-              <el-badge v-if="scope.row.Equipment?scope.row.Equipment.Component?scope.row.Equipment.Component.length:false:false"
-                :value="scope.row.Equipment?scope.row.Equipment.Component?scope.row.Equipment.Component.length:0:0" class="item" type="warning">
+              <el-badge v-if="scope.row.Component&&scope.row.Component.length?true:false"
+                        :value="scope.row.Component&&scope.row.Component.length?scope.row.Component.length:0"
+                        class="item" type="warning">
               </el-badge>
             </div>
           </template>
@@ -38,27 +39,28 @@
      :page-sizes="page.pageSizes" :page-size="page.pageSize" layout="total, sizes, prev, pager, next, jumper" :total="page.total">
     </el-pagination>
     <el-drawer title="任务详情" :visible.sync="drawer" direction="rtl" size="600px">
-      <device-detail :detail="detailModel"></device-detail>
+      <device-detail :detail="detailModel" type="model"></device-detail>
     </el-drawer>
   </div>
 </template>
 
 <script>
-import { queryModelTask, deleteModelTask, updateModelTask, createModelTask } from "@/api/data_admin/buildTaskApi"
-import tools from "@/utils/tools"
-import { mapGetters } from "vuex"
-import deviceDetail from '../detail/deviceDetail'
-export default {
-  components: {
-    deviceDetail
-  },
-  computed: {
-    ...mapGetters("layout", ["projectId", "userInfo"])
-  },
-  props: {
-    paramsData: Object,
-  },
-  data() {
+  import {createModelTask, deleteModelTask, queryModelTask, updateModelTask} from "@/api/data_admin/buildTaskApi"
+  import tools from "@/utils/tools"
+  import {mapGetters} from "vuex"
+  import deviceDetail from '../detail/deviceDetail'
+
+  export default {
+    components: {
+      deviceDetail
+    },
+    computed: {
+      ...mapGetters("layout", ["projectId", "userInfo"])
+    },
+    props: {
+      paramsData: Object,
+    },
+    data() {
     return {
       inSpaceType: '设备',
       loading: false, // loading
@@ -231,6 +233,9 @@ export default {
 /deep/ .el-drawer__header {
   margin-bottom: 12px;
 }
+/deep/ .el-badge__content{
+  width: 20px;
+}
 .table-container {
   height: 100%;
   background: #fff;

+ 20 - 19
src/views/data_admin/buildTask/addTask/addModelTask.vue

@@ -27,24 +27,24 @@
 </template>
 
 <script>
-import modelFolder from "@/components/ready/buildfloor/modelFolder"
-import myCascader from "@/components/ledger/lib/cascader"
-import drawModel from "@/components/data_admin/buildTask/draw/drawModel"
-import modelTaskDialog from "@/components/data_admin/buildTask/dialog/modelTaskDialog"
-import { mapGetters, mapActions } from "vuex";
-import request from "@/api/model/file.js";
-import {} from "@/api/scan/request";
-export default {
-  components: {
-    modelFolder,
-    myCascader,
-    drawModel,
-    modelTaskDialog
-  },
-  data() {
-    return {
-      isLight: false,//是否高亮未完成验证区块
-      query: {},//query信息
+  import modelFolder from "@/components/ready/buildfloor/modelFolder"
+  import myCascader from "@/components/ledger/lib/cascader"
+  import drawModel from "@/components/data_admin/buildTask/draw/drawModel"
+  import modelTaskDialog from "@/components/data_admin/buildTask/dialog/modelTaskDialog"
+  import {mapGetters} from "vuex";
+  import request from "@/api/model/file.js";
+
+  export default {
+    components: {
+      modelFolder,
+      myCascader,
+      drawModel,
+      modelTaskDialog
+    },
+    data() {
+      return {
+        isLight: false,//是否高亮未完成验证区块
+        query: {},//query信息
       dialogVisible: false,//是否显示弹窗
       modelFolderName: '',//模型文件夹名字
       modelFolderId: '',//模型文件夹的id
@@ -64,6 +64,7 @@ export default {
         device: this.device,
         CurrentModelId: this.CurrentModelId,
         modelFolderName: this.modelFolderName,
+        modelFolderId: this.modelFolderId,
         modelFileName: this.modelFileName,
         spaceList: this.spaceList,
         isVerification: this.query.isVerification
@@ -73,7 +74,7 @@ export default {
       return `${this.modelFolderName}-${this.modelFileName}`
     },
   },
-  created() { 
+  created() {
     this.query = this.$route.query
   },
   methods: {

+ 3 - 3
src/views/ready/buildfloor/index.vue

@@ -321,7 +321,7 @@
         setTimeout(() => {
           this.handleBuildQuery()
           this.init()
-        })
+        },500)
       },
       //delete floor
       handleDelete(floor) {
@@ -367,9 +367,9 @@
         this.buildDisabled = true
         if (this.delText == "楼层") {
           let delParam = [{FloorID: this.curFloorId}];
-          this.$message.success("删除成功");
           this.delDialogVis = false;
           manageDeleteFloor(delParam, res => {
+            this.$message.success("删除成功");
             this.buildDisabled = false
             this.init();
           });
@@ -381,9 +381,9 @@
             this.delDialogVis = false;
           } else {
             let param = [{BuildId: this.curBuildId}];
-            this.$message.success("删除成功");
             this.delDialogVis = false;
             objectDeleteBuild(param, res => {
+              this.$message.success("删除成功");
               this.buildDisabled = false
               this.handleBuildQuery()
               this.init()