浏览代码

现场验证任务首页开发

zhangyu 5 年之前
父节点
当前提交
623c4bcc05

文件差异内容过多而无法显示
+ 62 - 6
src/assets/style/iconfont/iconfont.css


二进制
src/assets/style/iconfont/iconfont.eot


文件差异内容过多而无法显示
+ 42 - 0
src/assets/style/iconfont/iconfont.svg


二进制
src/assets/style/iconfont/iconfont.ttf


二进制
src/assets/style/iconfont/iconfont.woff


+ 85 - 0
src/components/data_admin/buildTask/dialog/addTaskDialog.vue

@@ -0,0 +1,85 @@
+<template>
+  <el-dialog :title="title" :visible.sync="addTaskDialog" :before-close="handleClose" width="500px">
+    <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="110px">
+      <el-form-item label="未验证任务" prop="isVerification">
+        <el-switch v-model="ruleForm.isVerification"></el-switch>
+      </el-form-item>
+      <el-form-item label="任务类型" prop="taskType">
+        <div><el-radio v-model="ruleForm.taskType" label="model">现场验证模型</el-radio></div>
+        <div><el-radio v-model="ruleForm.taskType" label="device">现场验证设备台账</el-radio></div>
+        <div><el-radio v-model="ruleForm.taskType" label="assets">现场验证资产台账</el-radio></div>
+      </el-form-item>
+    </el-form>
+    <!-- <el-row>
+      请选择新建现场验证任务的数据源:
+      <el-checkbox v-model="ruleForm.isVerification">只选择未验证的</el-checkbox>
+    </el-row>
+    <el-row style="margin-top:15px;padding-left:15px;">
+      <div><el-radio v-model="ruleForm.taskType" label="model">现场验证模型</el-radio></div>
+      <div><el-radio v-model="ruleForm.taskType" label="device">现场验证设备台账</el-radio></div>
+      <div><el-radio v-model="ruleForm.taskType" label="assets">现场验证资产台账</el-radio></div>
+    </el-row> -->
+    <span slot="footer" class="dialog-footer">
+				<el-button type="primary" @click="$emit('update:addTaskDialog',false)">取  消</el-button>
+				<el-button type="primary" @click="toAddTask()">确  认</el-button>
+			</span>
+  </el-dialog>
+</template>
+
+<script>
+import {  } from "@/api/scan/request";
+import { mapGetters } from "vuex";
+export default {
+  components: {
+    
+  },
+  computed: {
+    ...mapGetters("layout", ["projectId"])
+  },
+  data() {
+    return {
+      title: "添加验证任务",
+      dialogVisible: false,
+      ruleForm: {
+        delivery: false,
+        taskType: ''
+      },
+      rules: {
+        taskType: [
+          { required: true, message: '请选择任务类型', trigger: 'change' }
+        ]
+      }
+    };
+  },
+  props: {
+    addTaskDialog: Boolean //是否显示弹窗
+  },
+  created() { 
+    
+  },
+  methods: {
+    toAddTask() {
+      this.$refs.ruleForm.validate((valid) => {
+        if (valid) {
+          if (this.ruleForm.taskType == 'model') {
+
+          } else if (this.ruleForm.taskType == 'device') {
+
+          } else if (this.ruleForm.taskType == 'assets') {
+
+          }
+        } else {
+          console.log('error submit!!');
+          return false;
+        }
+      })
+    },
+    handleClose() {
+      this.$emit('update:addTaskDialog',this.dialogVisible)
+    },
+  }
+};
+</script>
+<style lang="less" scoped>
+
+</style>

+ 171 - 0
src/components/data_admin/buildTask/table/assetsTable.vue

@@ -0,0 +1,171 @@
+<template>
+  <div class="table-container">
+    <div class="table-list" :style="tableData && tableData.length?'height:calc(100% - 50px);':'height:100%;'">
+      <el-table :data="tableData" style="width: 100%" height="100%" v-loading="loading" :header-cell-style="headerStyle">
+        <el-table-column label="所属建筑楼层" show-overflow-tooltip min-width="100">
+          <template slot-scope="scope">
+            <div>{{scope.row.build}}-{{scope.row.floor}}</div>
+          </template>
+        </el-table-column>
+        <el-table-column :label="`${inSpaceType}本地名称`" show-overflow-tooltip min-width="100">
+          <template slot-scope="scope">
+            <div>
+              {{scope.row.EquipLocalName}}
+              <el-badge :value="scope.row.partsNum" class="item" type="warning"></el-badge>
+            </div>
+          </template>
+        </el-table-column>
+        <el-table-column prop="EquipLocalID" :label="`${inSpaceType}本地编码`" show-overflow-tooltip min-width="100"></el-table-column>
+        <el-table-column prop="EquipCategory.EquipName" label="设备族" show-overflow-tooltip min-width="100"></el-table-column>
+        <el-table-column prop="CADID" label="安装位置" show-overflow-tooltip min-width="100"></el-table-column>
+        <el-table-column prop="taskTyepe" label="任务执行情况" show-overflow-tooltip min-width="100"></el-table-column>
+        <el-table-column prop="action" label="操作" min-width="100">
+          <template slot-scope="scope">
+            <i title="查看详情" class="iconfont icon-xiangqing table-button" @click="handleDetail(scope.$index, scope.row)"></i>
+            <i title="重新生成任务" class="iconfont icon-Update table-button" @click="handleRegenerate(scope.$index, scope.row)"></i>
+            <i title="删除任务" class="iconfont icon-delete table-button" @click="handleDelete(scope.$index, scope.row)"></i>
+            <i title="认可此任务执行情况" class="iconfont icon-lijiqueren table-button" @click="handleConfirm(scope.$index, scope.row)"></i>
+          </template>
+        </el-table-column>
+        <template slot="empty">
+          <div style="height: 60%;transform: translateY(50%);">
+            <i class="icon-wushuju iconfont"></i>
+            数据暂无
+          </div>
+        </template>
+      </el-table>
+    </div>
+    <el-pagination class="right" v-show="tableData && tableData.length" @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="page.pageNumber"
+     :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">
+      <span>我来啦!</span>
+    </el-drawer>
+  </div>
+</template>
+
+<script>
+import {  } from "@/api/scan/request";
+import { mapGetters } from "vuex";
+export default {
+  components: {
+    
+  },
+  computed: {
+    ...mapGetters("layout", ["projectId"])
+  },
+  data() {
+    return {
+      inSpaceType: '资产',
+      loading: false, // loading
+      drawer: false, // 详情侧弹窗
+      page: {
+        pageSize: 50,
+        pageSizes: [10, 20, 50, 100],
+        pageNumber: 1,
+        total: 0
+      },
+      tableData: [{
+        build: 'A栋',
+        floor: '3F',
+        EquipLocalName: '风机',
+        partsNum: 8,
+        EquipLocalID: 'AS123124343',
+        EquipCategory: {
+          EquipName: '风机'
+        },
+        CADID: '6486416846184879',
+        taskType: '未找到'
+      }], //列表数据
+      headerStyle: {
+        backgroundColor: '#e1e4e5',
+        color: '#2b2b2b',
+        lineHeight: '30px'
+      }, // 列表样式
+    };
+  },
+  props: {
+    // params: Object,
+    // type: String
+  },
+  created() {
+    // this.getTableData()
+  },
+  methods: {
+    // 获取列表数据
+    getTableData() {
+      let params = {
+        Filters: `ShaftID='${this.params.ShaftID}'`,
+        Cascade: [
+          {
+            Name: 'equipmentList',
+            Cascade: [{ Name: 'equipCategory' }]
+          }
+        ],
+        Orders: "createTime desc, EquipID asc",
+        PageNumber: this.page.pageNumber,
+        PageSize: this.page.pageSize
+      }
+      queryCenoteTableData(params, res => {
+        this.tableData = res.Content[0].EquipmentList || []
+      })
+    },
+    // 删除关系
+    handleDelete(index, row) {
+      this.$confirm("确认删除该任务?", "提示", {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(() => {
+        // let params = {
+        //   EquipId: row.EquipID,
+        //   ShaftId: this.params.ShaftID
+        // }
+        // this.deleteEqInSh(params);
+      }).catch(() => {
+        this.$message("取消删除")
+      })
+    },
+    // 删除设备所在竖井关系
+    deleteEqInSh(params) {
+      // eqinshUnlink(params, res => {
+      //   this.$message.success('删除成功')
+      //   this.getTableData()
+      // })
+    },
+    //查看任务详情
+    handleDetail() {
+      this.drawer = true
+    },
+    // 改变pagesize
+    handleSizeChange(pageSize) {
+      this.page.pageSize = pageSize;
+      this.getTableData()
+    },
+    // 改变pageno
+    handleCurrentChange(pageNo) {
+      this.page.pageNumber = pageNo;
+      this.getTableData()
+    }
+  },
+  watch: {
+    params: {
+      handler(newName, oldName) {
+        this.page.pageNumber = 1
+        this.getTableData()
+      },
+      deep: true
+    }
+  }
+};
+</script>
+<style lang="less" scoped>
+.table-container {
+  height: 100%;
+  background: #fff;
+  .table-button{
+    cursor: pointer;
+    margin-right: 15px;
+  }
+}
+</style>

+ 171 - 0
src/components/data_admin/buildTask/table/deviceTable.vue

@@ -0,0 +1,171 @@
+<template>
+  <div class="table-container">
+    <div class="table-list" :style="tableData && tableData.length?'height:calc(100% - 50px);':'height:100%;'">
+      <el-table :data="tableData" style="width: 100%" height="100%" v-loading="loading" :header-cell-style="headerStyle">
+        <el-table-column label="所属建筑楼层" show-overflow-tooltip min-width="100">
+          <template slot-scope="scope">
+            <div>{{scope.row.build}}-{{scope.row.floor}}</div>
+          </template>
+        </el-table-column>
+        <el-table-column :label="`${inSpaceType}本地名称`" show-overflow-tooltip min-width="100">
+          <template slot-scope="scope">
+            <div>
+              {{scope.row.EquipLocalName}}
+              <el-badge :value="scope.row.partsNum" class="item" type="warning"></el-badge>
+            </div>
+          </template>
+        </el-table-column>
+        <el-table-column prop="EquipLocalID" :label="`${inSpaceType}本地编码`" show-overflow-tooltip min-width="100"></el-table-column>
+        <el-table-column prop="EquipCategory.EquipName" :label="`${inSpaceType}类型`" show-overflow-tooltip min-width="100"></el-table-column>
+        <el-table-column prop="CADID" label="安装位置" show-overflow-tooltip min-width="100"></el-table-column>
+        <el-table-column prop="taskTyepe" label="任务执行情况" show-overflow-tooltip min-width="100"></el-table-column>
+        <el-table-column prop="action" label="操作" min-width="100">
+          <template slot-scope="scope">
+            <i title="查看详情" class="iconfont icon-xiangqing table-button" @click="handleDetail(scope.$index, scope.row)"></i>
+            <i title="重新生成任务" class="iconfont icon-Update table-button" @click="handleRegenerate(scope.$index, scope.row)"></i>
+            <i title="删除任务" class="iconfont icon-delete table-button" @click="handleDelete(scope.$index, scope.row)"></i>
+            <i title="认可此任务执行情况" class="iconfont icon-lijiqueren table-button" @click="handleConfirm(scope.$index, scope.row)"></i>
+          </template>
+        </el-table-column>
+        <template slot="empty">
+          <div style="height: 60%;transform: translateY(50%);">
+            <i class="icon-wushuju iconfont"></i>
+            数据暂无
+          </div>
+        </template>
+      </el-table>
+    </div>
+    <el-pagination class="right" v-show="tableData && tableData.length" @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="page.pageNumber"
+     :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">
+      <span>我来啦!</span>
+    </el-drawer>
+  </div>
+</template>
+
+<script>
+import {  } from "@/api/scan/request";
+import { mapGetters } from "vuex";
+export default {
+  components: {
+    
+  },
+  computed: {
+    ...mapGetters("layout", ["projectId"])
+  },
+  data() {
+    return {
+      inSpaceType: '设备',
+      loading: false, // loading
+      drawer: false, // 详情侧弹窗
+      page: {
+        pageSize: 50,
+        pageSizes: [10, 20, 50, 100],
+        pageNumber: 1,
+        total: 0
+      },
+      tableData: [{
+        build: 'A栋',
+        floor: '3F',
+        EquipLocalName: '风机',
+        partsNum: 8,
+        EquipLocalID: 'AS123124343',
+        EquipCategory: {
+          EquipName: '风机'
+        },
+        CADID: '6486416846184879',
+        taskType: '未找到'
+      }], //列表数据
+      headerStyle: {
+        backgroundColor: '#e1e4e5',
+        color: '#2b2b2b',
+        lineHeight: '30px'
+      }, // 列表样式
+    };
+  },
+  props: {
+    // params: Object,
+    // type: String
+  },
+  created() {
+    // this.getTableData()
+  },
+  methods: {
+    // 获取列表数据
+    getTableData() {
+      let params = {
+        Filters: `ShaftID='${this.params.ShaftID}'`,
+        Cascade: [
+          {
+            Name: 'equipmentList',
+            Cascade: [{ Name: 'equipCategory' }]
+          }
+        ],
+        Orders: "createTime desc, EquipID asc",
+        PageNumber: this.page.pageNumber,
+        PageSize: this.page.pageSize
+      }
+      queryCenoteTableData(params, res => {
+        this.tableData = res.Content[0].EquipmentList || []
+      })
+    },
+    // 删除关系
+    handleDelete(index, row) {
+      this.$confirm("确认删除该任务?", "提示", {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(() => {
+        // let params = {
+        //   EquipId: row.EquipID,
+        //   ShaftId: this.params.ShaftID
+        // }
+        // this.deleteEqInSh(params);
+      }).catch(() => {
+        this.$message("取消删除")
+      })
+    },
+    // 删除设备所在竖井关系
+    deleteEqInSh(params) {
+      // eqinshUnlink(params, res => {
+      //   this.$message.success('删除成功')
+      //   this.getTableData()
+      // })
+    },
+    //查看任务详情
+    handleDetail() {
+      this.drawer = true
+    },
+    // 改变pagesize
+    handleSizeChange(pageSize) {
+      this.page.pageSize = pageSize;
+      this.getTableData()
+    },
+    // 改变pageno
+    handleCurrentChange(pageNo) {
+      this.page.pageNumber = pageNo;
+      this.getTableData()
+    }
+  },
+  watch: {
+    params: {
+      handler(newName, oldName) {
+        this.page.pageNumber = 1
+        this.getTableData()
+      },
+      deep: true
+    }
+  }
+};
+</script>
+<style lang="less" scoped>
+.table-container {
+  height: 100%;
+  background: #fff;
+  .table-button{
+    cursor: pointer;
+    margin-right: 15px;
+  }
+}
+</style>

+ 168 - 0
src/components/data_admin/buildTask/table/modelTable.vue

@@ -0,0 +1,168 @@
+<template>
+  <div class="table-container">
+    <div class="table-list" :style="tableData && tableData.length?'height:calc(100% - 50px);':'height:100%;'">
+      <el-table :data="tableData" style="width: 100%" height="100%" v-loading="loading" :header-cell-style="headerStyle">
+        <el-table-column prop="build" label="所属模型文件夹" show-overflow-tooltip min-width="100"></el-table-column>
+        <el-table-column prop="floor" label="模型文件名" show-overflow-tooltip min-width="100"></el-table-column>
+        <el-table-column :label="`${inSpaceType}本地名称`" show-overflow-tooltip min-width="100">
+          <template slot-scope="scope">
+            <div>
+              {{scope.row.EquipLocalName}}
+              <el-badge :value="scope.row.partsNum" class="item" type="warning"></el-badge>
+            </div>
+          </template>
+        </el-table-column>
+        <el-table-column prop="EquipLocalID" :label="`${inSpaceType}本地编码`" show-overflow-tooltip min-width="100"></el-table-column>
+        <el-table-column prop="EquipCategory.EquipName" :label="`${inSpaceType}类型`" show-overflow-tooltip min-width="100"></el-table-column>
+        <el-table-column prop="CADID" label="BIM ID" show-overflow-tooltip min-width="100"></el-table-column>
+        <el-table-column prop="taskTyepe" label="任务执行情况" show-overflow-tooltip min-width="100"></el-table-column>
+        <el-table-column prop="action" label="操作" min-width="100">
+          <template slot-scope="scope">
+            <i title="查看详情" class="iconfont icon-xiangqing table-button" @click="handleDetail(scope.$index, scope.row)"></i>
+            <i title="重新生成任务" class="iconfont icon-Update table-button" @click="handleRegenerate(scope.$index, scope.row)"></i>
+            <i title="删除任务" class="iconfont icon-delete table-button" @click="handleDelete(scope.$index, scope.row)"></i>
+            <i title="认可此任务执行情况" class="iconfont icon-lijiqueren table-button" @click="handleConfirm(scope.$index, scope.row)"></i>
+          </template>
+        </el-table-column>
+        <template slot="empty">
+          <div style="height: 60%;transform: translateY(50%);">
+            <i class="icon-wushuju iconfont"></i>
+            数据暂无
+          </div>
+        </template>
+      </el-table>
+    </div>
+    <el-pagination class="right" v-show="tableData && tableData.length" @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="page.pageNumber"
+     :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">
+      <span>我来啦!</span>
+    </el-drawer>
+  </div>
+</template>
+
+<script>
+import {  } from "@/api/scan/request";
+import { mapGetters } from "vuex";
+export default {
+  components: {
+    
+  },
+  computed: {
+    ...mapGetters("layout", ["projectId"])
+  },
+  data() {
+    return {
+      inSpaceType: '设备',
+      loading: false, // loading
+      drawer: false, // 详情侧弹窗
+      page: {
+        pageSize: 50,
+        pageSizes: [10, 20, 50, 100],
+        pageNumber: 1,
+        total: 0
+      },
+      tableData: [{
+        build: 'A栋',
+        floor: '3F',
+        EquipLocalName: '风机',
+        partsNum: 8,
+        EquipLocalID: 'AS123124343',
+        EquipCategory: {
+          EquipName: '风机'
+        },
+        CADID: '6486416846184879',
+        taskType: '未找到'
+      }], //列表数据
+      headerStyle: {
+        backgroundColor: '#e1e4e5',
+        color: '#2b2b2b',
+        lineHeight: '30px'
+      }, // 列表样式
+    };
+  },
+  props: {
+    // params: Object,
+    // type: String
+  },
+  created() {
+    // this.getTableData()
+  },
+  methods: {
+    // 获取列表数据
+    getTableData() {
+      let params = {
+        Filters: `ShaftID='${this.params.ShaftID}'`,
+        Cascade: [
+          {
+            Name: 'equipmentList',
+            Cascade: [{ Name: 'equipCategory' }]
+          }
+        ],
+        Orders: "createTime desc, EquipID asc",
+        PageNumber: this.page.pageNumber,
+        PageSize: this.page.pageSize
+      }
+      queryCenoteTableData(params, res => {
+        this.tableData = res.Content[0].EquipmentList || []
+      })
+    },
+    // 删除关系
+    handleDelete(index, row) {
+      this.$confirm("确认删除该任务?", "提示", {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(() => {
+        // let params = {
+        //   EquipId: row.EquipID,
+        //   ShaftId: this.params.ShaftID
+        // }
+        // this.deleteEqInSh(params);
+      }).catch(() => {
+        this.$message("取消删除")
+      })
+    },
+    // 删除设备所在竖井关系
+    deleteEqInSh(params) {
+      // eqinshUnlink(params, res => {
+      //   this.$message.success('删除成功')
+      //   this.getTableData()
+      // })
+    },
+    //查看任务详情
+    handleDetail() {
+      this.drawer = true
+    },
+    // 改变pagesize
+    handleSizeChange(pageSize) {
+      this.page.pageSize = pageSize;
+      this.getTableData()
+    },
+    // 改变pageno
+    handleCurrentChange(pageNo) {
+      this.page.pageNumber = pageNo;
+      this.getTableData()
+    }
+  },
+  watch: {
+    params: {
+      handler(newName, oldName) {
+        this.page.pageNumber = 1
+        this.getTableData()
+      },
+      deep: true
+    }
+  }
+};
+</script>
+<style lang="less" scoped>
+.table-container {
+  height: 100%;
+  background: #fff;
+  .table-button{
+    cursor: pointer;
+    margin-right: 15px;
+  }
+}
+</style>

+ 171 - 0
src/components/data_admin/buildTask/table/replaceTable.vue

@@ -0,0 +1,171 @@
+<template>
+  <div class="table-container">
+    <div class="table-list" :style="tableData && tableData.length?'height:calc(100% - 50px);':'height:100%;'">
+      <el-table :data="tableData" style="width: 100%" height="100%" v-loading="loading" :header-cell-style="headerStyle">
+        <el-table-column label="所属建筑楼层" show-overflow-tooltip min-width="100">
+          <template slot-scope="scope">
+            <div>{{scope.row.build}}-{{scope.row.floor}}</div>
+          </template>
+        </el-table-column>
+        <el-table-column :label="`${inSpaceType}本地名称`" show-overflow-tooltip min-width="100">
+          <template slot-scope="scope">
+            <div>
+              {{scope.row.EquipLocalName}}
+              <el-badge :value="scope.row.partsNum" class="item" type="warning"></el-badge>
+            </div>
+          </template>
+        </el-table-column>
+        <el-table-column prop="EquipLocalID" :label="`${inSpaceType}本地编码`" show-overflow-tooltip min-width="100"></el-table-column>
+        <el-table-column prop="EquipCategory.EquipName" label="设备族" show-overflow-tooltip min-width="100"></el-table-column>
+        <el-table-column prop="CADID" label="安装位置" show-overflow-tooltip min-width="100"></el-table-column>
+        <el-table-column prop="taskTyepe" label="任务执行情况" show-overflow-tooltip min-width="100"></el-table-column>
+        <el-table-column prop="action" label="操作" min-width="100">
+          <template slot-scope="scope">
+            <i title="查看详情" class="iconfont icon-xiangqing table-button" @click="handleDetail(scope.$index, scope.row)"></i>
+            <i title="重新生成任务" class="iconfont icon-Update table-button" @click="handleRegenerate(scope.$index, scope.row)"></i>
+            <i title="删除任务" class="iconfont icon-delete table-button" @click="handleDelete(scope.$index, scope.row)"></i>
+            <i title="认可此任务执行情况" class="iconfont icon-lijiqueren table-button" @click="handleConfirm(scope.$index, scope.row)"></i>
+          </template>
+        </el-table-column>
+        <template slot="empty">
+          <div style="height: 60%;transform: translateY(50%);">
+            <i class="icon-wushuju iconfont"></i>
+            数据暂无
+          </div>
+        </template>
+      </el-table>
+    </div>
+    <el-pagination class="right" v-show="tableData && tableData.length" @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="page.pageNumber"
+     :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">
+      <span>我来啦!</span>
+    </el-drawer>
+  </div>
+</template>
+
+<script>
+import {  } from "@/api/scan/request";
+import { mapGetters } from "vuex";
+export default {
+  components: {
+    
+  },
+  computed: {
+    ...mapGetters("layout", ["projectId"])
+  },
+  data() {
+    return {
+      inSpaceType: '设备',
+      loading: false, // loading
+      drawer: false, // 详情侧弹窗
+      page: {
+        pageSize: 50,
+        pageSizes: [10, 20, 50, 100],
+        pageNumber: 1,
+        total: 0
+      },
+      tableData: [{
+        build: 'A栋',
+        floor: '3F',
+        EquipLocalName: '风机',
+        partsNum: 8,
+        EquipLocalID: 'AS123124343',
+        EquipCategory: {
+          EquipName: '风机'
+        },
+        CADID: '6486416846184879',
+        taskType: '未找到'
+      }], //列表数据
+      headerStyle: {
+        backgroundColor: '#e1e4e5',
+        color: '#2b2b2b',
+        lineHeight: '30px'
+      }, // 列表样式
+    };
+  },
+  props: {
+    // params: Object,
+    // type: String
+  },
+  created() {
+    // this.getTableData()
+  },
+  methods: {
+    // 获取列表数据
+    getTableData() {
+      let params = {
+        Filters: `ShaftID='${this.params.ShaftID}'`,
+        Cascade: [
+          {
+            Name: 'equipmentList',
+            Cascade: [{ Name: 'equipCategory' }]
+          }
+        ],
+        Orders: "createTime desc, EquipID asc",
+        PageNumber: this.page.pageNumber,
+        PageSize: this.page.pageSize
+      }
+      queryCenoteTableData(params, res => {
+        this.tableData = res.Content[0].EquipmentList || []
+      })
+    },
+    // 删除关系
+    handleDelete(index, row) {
+      this.$confirm("确认删除该任务?", "提示", {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(() => {
+        // let params = {
+        //   EquipId: row.EquipID,
+        //   ShaftId: this.params.ShaftID
+        // }
+        // this.deleteEqInSh(params);
+      }).catch(() => {
+        this.$message("取消删除")
+      })
+    },
+    // 删除设备所在竖井关系
+    deleteEqInSh(params) {
+      // eqinshUnlink(params, res => {
+      //   this.$message.success('删除成功')
+      //   this.getTableData()
+      // })
+    },
+    //查看任务详情
+    handleDetail() {
+      this.drawer = true
+    },
+    // 改变pagesize
+    handleSizeChange(pageSize) {
+      this.page.pageSize = pageSize;
+      this.getTableData()
+    },
+    // 改变pageno
+    handleCurrentChange(pageNo) {
+      this.page.pageNumber = pageNo;
+      this.getTableData()
+    }
+  },
+  watch: {
+    params: {
+      handler(newName, oldName) {
+        this.page.pageNumber = 1
+        this.getTableData()
+      },
+      deep: true
+    }
+  }
+};
+</script>
+<style lang="less" scoped>
+.table-container {
+  height: 100%;
+  background: #fff;
+  .table-button{
+    cursor: pointer;
+    margin-right: 15px;
+  }
+}
+</style>

+ 171 - 0
src/components/data_admin/buildTask/table/tearTable.vue

@@ -0,0 +1,171 @@
+<template>
+  <div class="table-container">
+    <div class="table-list" :style="tableData && tableData.length?'height:calc(100% - 50px);':'height:100%;'">
+      <el-table :data="tableData" style="width: 100%" height="100%" v-loading="loading" :header-cell-style="headerStyle">
+        <el-table-column label="所属建筑楼层" show-overflow-tooltip min-width="100">
+          <template slot-scope="scope">
+            <div>{{scope.row.build}}-{{scope.row.floor}}</div>
+          </template>
+        </el-table-column>
+        <el-table-column :label="`${inSpaceType}本地名称`" show-overflow-tooltip min-width="100">
+          <template slot-scope="scope">
+            <div>
+              {{scope.row.EquipLocalName}}
+              <el-badge :value="scope.row.partsNum" class="item" type="warning"></el-badge>
+            </div>
+          </template>
+        </el-table-column>
+        <el-table-column prop="EquipLocalID" :label="`${inSpaceType}本地编码`" show-overflow-tooltip min-width="100"></el-table-column>
+        <el-table-column prop="EquipCategory.EquipName" label="设备族" show-overflow-tooltip min-width="100"></el-table-column>
+        <el-table-column prop="CADID" label="安装位置" show-overflow-tooltip min-width="100"></el-table-column>
+        <el-table-column prop="taskTyepe" label="任务执行情况" show-overflow-tooltip min-width="100"></el-table-column>
+        <el-table-column prop="action" label="操作" min-width="100">
+          <template slot-scope="scope">
+            <i title="查看详情" class="iconfont icon-xiangqing table-button" @click="handleDetail(scope.$index, scope.row)"></i>
+            <i title="重新生成任务" class="iconfont icon-Update table-button" @click="handleRegenerate(scope.$index, scope.row)"></i>
+            <i title="删除任务" class="iconfont icon-delete table-button" @click="handleDelete(scope.$index, scope.row)"></i>
+            <i title="认可此任务执行情况" class="iconfont icon-lijiqueren table-button" @click="handleConfirm(scope.$index, scope.row)"></i>
+          </template>
+        </el-table-column>
+        <template slot="empty">
+          <div style="height: 60%;transform: translateY(50%);">
+            <i class="icon-wushuju iconfont"></i>
+            数据暂无
+          </div>
+        </template>
+      </el-table>
+    </div>
+    <el-pagination class="right" v-show="tableData && tableData.length" @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="page.pageNumber"
+     :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">
+      <span>我来啦!</span>
+    </el-drawer>
+  </div>
+</template>
+
+<script>
+import {  } from "@/api/scan/request";
+import { mapGetters } from "vuex";
+export default {
+  components: {
+    
+  },
+  computed: {
+    ...mapGetters("layout", ["projectId"])
+  },
+  data() {
+    return {
+      inSpaceType: '资产',
+      loading: false, // loading
+      drawer: false, // 详情侧弹窗
+      page: {
+        pageSize: 50,
+        pageSizes: [10, 20, 50, 100],
+        pageNumber: 1,
+        total: 0
+      },
+      tableData: [{
+        build: 'A栋',
+        floor: '3F',
+        EquipLocalName: '风机',
+        partsNum: 8,
+        EquipLocalID: 'AS123124343',
+        EquipCategory: {
+          EquipName: '风机'
+        },
+        CADID: '6486416846184879',
+        taskType: '未找到'
+      }], //列表数据
+      headerStyle: {
+        backgroundColor: '#e1e4e5',
+        color: '#2b2b2b',
+        lineHeight: '30px'
+      }, // 列表样式
+    };
+  },
+  props: {
+    // params: Object,
+    // type: String
+  },
+  created() {
+    // this.getTableData()
+  },
+  methods: {
+    // 获取列表数据
+    getTableData() {
+      let params = {
+        Filters: `ShaftID='${this.params.ShaftID}'`,
+        Cascade: [
+          {
+            Name: 'equipmentList',
+            Cascade: [{ Name: 'equipCategory' }]
+          }
+        ],
+        Orders: "createTime desc, EquipID asc",
+        PageNumber: this.page.pageNumber,
+        PageSize: this.page.pageSize
+      }
+      queryCenoteTableData(params, res => {
+        this.tableData = res.Content[0].EquipmentList || []
+      })
+    },
+    // 删除关系
+    handleDelete(index, row) {
+      this.$confirm("确认删除该任务?", "提示", {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(() => {
+        // let params = {
+        //   EquipId: row.EquipID,
+        //   ShaftId: this.params.ShaftID
+        // }
+        // this.deleteEqInSh(params);
+      }).catch(() => {
+        this.$message("取消删除")
+      })
+    },
+    // 删除设备所在竖井关系
+    deleteEqInSh(params) {
+      // eqinshUnlink(params, res => {
+      //   this.$message.success('删除成功')
+      //   this.getTableData()
+      // })
+    },
+    //查看任务详情
+    handleDetail() {
+      this.drawer = true
+    },
+    // 改变pagesize
+    handleSizeChange(pageSize) {
+      this.page.pageSize = pageSize;
+      this.getTableData()
+    },
+    // 改变pageno
+    handleCurrentChange(pageNo) {
+      this.page.pageNumber = pageNo;
+      this.getTableData()
+    }
+  },
+  watch: {
+    params: {
+      handler(newName, oldName) {
+        this.page.pageNumber = 1
+        this.getTableData()
+      },
+      deep: true
+    }
+  }
+};
+</script>
+<style lang="less" scoped>
+.table-container {
+  height: 100%;
+  background: #fff;
+  .table-button{
+    cursor: pointer;
+    margin-right: 15px;
+  }
+}
+</style>

+ 1 - 1
src/components/data_admin/buildTask/taskStatistics.vue

@@ -6,7 +6,7 @@
           <p>25%</p>
           <p>完成情况</p>
         </div>
-        <el-progress width="90" type="circle" :percentage="25" :show-text="false"></el-progress>
+        <el-progress :width="90" type="circle" :percentage="25" :show-text="false"></el-progress>
       </div>
       <div class="statistics-all-box flex-col">
         <span>总任务:<b>2000</b></span>

+ 1 - 1
src/components/ledger/handsontables/device.vue

@@ -60,7 +60,7 @@
     <change-rea @changeProperty="changeProperty" :dialog="myDialog" :category="deviceType"></change-rea>
     <look-pic :dialog="myDialog" :keysArr="picsArr"></look-pic>
     <!-- 新增设备 -->
-    <el-dialog title="确定新增设备的类型" :visible.sync="myDialog.addDevice" width="30%">
+    <el-dialog title="确定新增设备的类型" :visible.sync="myDialog.addDevice" width="670px">
       <el-row>
         <my-cascader ref="cascader" @change="changeAddType" :all="true"></my-cascader>
       </el-row>

+ 43 - 5
src/views/data_admin/buildTask/index.vue

@@ -2,15 +2,23 @@
 	<div>
 		<task-statistics></task-statistics>
 		<div class="hanson-bar">
-			<el-cascader v-model="taskType" :options="taskTypeList" filterable></el-cascader>
+			<el-cascader v-model="taskTypes" :options="taskTypeList" filterable @change="handleChangeTask"></el-cascader>
 			<el-divider direction="vertical"></el-divider>
 			<div class="condition-list">
 				<floor-cascader :isWidth="false" @change="changeFloor"></floor-cascader>
 				<my-cascader :isWidth="false" ref="cascader" @change="changeDevice"></my-cascader>
 				<assets-cascader :isWidth="false" ref="assets" @change="changeAssets"></assets-cascader>
 			</div>
-			<el-button class="add-task">添加任务</el-button>
+			<el-button class="add-task" @click="addTaskDialog = true">添加验证任务</el-button>
 		</div>
+		<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>
+			<tear-table v-else-if="taskType == 'tear'"></tear-table>
+			<replace-table v-else-if="taskType == 'replace'"></replace-table>
+		</div>
+		<add-task :addTaskDialog.sync="addTaskDialog"></add-task>
 	</div>
 </template>
 
@@ -20,15 +28,30 @@ 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 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"
+import tearTable from "@/components/data_admin/buildTask/table/tearTable"
+import replaceTable from "@/components/data_admin/buildTask/table/replaceTable"
+import addTask from "@/components/data_admin/buildTask/dialog/addTaskDialog"
 export default {
   components: {
 		taskStatistics,
 		floorCascader,
 		myCascader,
-		assetsCascader
+		assetsCascader,
+		modelTable,
+		deviceTable,
+		assetsTable,
+		tearTable,
+		replaceTable,
+		addTask
 	},
 	computed: {
-		...mapGetters("layout", [  "projectId",  "secret", "userId" ])
+		...mapGetters("layout", [  "projectId",  "secret", "userId" ]),
+		taskType(){
+			return this.taskTypes.slice(-1)[0]
+		}
 	},
   data() {
     return {
@@ -41,12 +64,24 @@ export default {
 				{ value: "tear", label: '现场撕码任务' }, 
 				{ value: "replace", label: '现场换码任务' }
 			],
-			taskType: 'model'
+			taskTypes: ['verification','model'],
+			addTaskDialog: false, //是否显示添加任务弹窗
     }
   },
   mounted() { },
   methods: {
+		handleChangeTask(val){
+			
+		},
+		changeFloor(){
+
+		},
+		changeDevice(){
 
+		},
+		changeAssets(){
+
+		},
   }
 }
 </script>
@@ -70,4 +105,7 @@ export default {
 			top: 9px;
 		}
 	}
+	.tabel-box{
+		height: calc(100% - 170px);
+	}
 </style>