Browse Source

adm:fix> 开发v3.9.1

shaun-sheep 4 years ago
parent
commit
5d013b6551
2 changed files with 115 additions and 1 deletions
  1. 101 0
      src/components/ledger/lib/excelDialog.vue
  2. 14 1
      src/views/ledger/facility/index.vue

+ 101 - 0
src/components/ledger/lib/excelDialog.vue

@@ -0,0 +1,101 @@
+<template>
+  <el-dialog title="深化点表导入" :visible.sync="dialogFormVisible" class="dialogFormVisible">
+    <h5 class="title">深化点表中必须包含四列,表头分别是$唯一识别码$、¥动态信息点名称¥、表号、功能号,每列可以在表中任意位置,不受前后排序的影响。$唯一识别码$使用的设备信息点,由项目的实际需求决定。</h5>
+    <p class="time">
+      <el-button type="text" :disabled="!messageKey" @click="download">下载导入结果</el-button>
+    </p>
+    <el-upload
+      class="upload-demo"
+      drag
+      action="/api/datacenter/graphic/import/point"
+      :show-file-list='false'
+      :headers="headers"
+      name="file"
+      multiple
+      :on-progress="progress"
+      :on-success="success"
+      :on-error="error">
+      <i class="el-icon-upload"></i>
+      <div class="el-upload__text">将Excel文件拖到此处,或<em>点击上传Excel文件</em></div>
+      <div class="el-upload__tip tips" slot="tip">上传的Excel数据将完全覆盖当前设备信息点(原有数据不会保留)</div>
+    </el-upload>
+
+  </el-dialog>
+</template>
+
+<script>
+import storage from '@/framework/utils/storage'
+import {mapGetters} from 'vuex'
+
+export default {
+  name: "excelDialog",
+  data() {
+    return {
+      dialogFormVisible: false,
+      messageKey: ''
+    }
+  },
+  computed: {
+    ...mapGetters('layout', ['projectId']),
+    headers() {
+      return {
+        'ProjectId': this.projectId,
+        'Comming': 'adm',
+        'Account': storage.get("user_name")
+      }
+    },
+  },
+  methods: {
+    openDialog() {
+      this.dialogFormVisible = true
+    },
+    progress(event, file, fileList) {
+      // console.log(event.file, fileList)
+    },
+    success(event, file, fileList) {
+      if(event.Result == 'success') {
+      this.messageKey = event.Message
+        this.$message.success('上传成功')
+      }
+    },
+    error(event, file, fileList) {
+    },
+    download() {
+      const url = '/api/datacenter/graphic/downloads/point?key=' + this.messageKey
+      let a = document.createElement("a");
+      a.href = url;
+      a.download =`${this.messageKey}.xlsx`;
+      a.click();
+    }
+  }
+}
+</script>
+
+<style scoped lang="less">
+.dialogFormVisible {
+  .time {
+    margin: 10px 0;
+    font-size: 15px;
+
+    .text {
+      margin-right: 10px;
+      font-size: 14px;
+    }
+  }
+
+  .tips {
+    color: red;
+    font-size: 14px;
+    font-weight: bold;
+  }
+
+  /deep/ .el-upload {
+    width: 100%;
+  }
+
+  /deep/ .el-upload-dragger {
+    margin: 0 auto;
+    width: 100%;
+  }
+}
+</style>

+ 14 - 1
src/views/ledger/facility/index.vue

@@ -8,11 +8,19 @@
         <floor-cascader @change="changeFloor"></floor-cascader>
         <floor-cascader @change="changeFloor"></floor-cascader>
         <my-cascader ref="cascader" @change="changeDevice"></my-cascader>
         <my-cascader ref="cascader" @change="changeDevice"></my-cascader>
         <el-button size="small" @click="handleLinkAssets" class="iconfont icon-batchassociation">批量关联资产</el-button>
         <el-button size="small" @click="handleLinkAssets" class="iconfont icon-batchassociation">批量关联资产</el-button>
+        <el-tooltip class="item" effect="dark" content="请选择建筑楼层和设备类" placement="top-start">
+          <el-button type="primary" class="deviceList-excel"
+                     :disabled="!((param.buildId != '' || param.buildId != 'all') && param.deviceId !='')"
+          @click="handleSurface">
+            深化点表导入
+          </el-button>
+        </el-tooltip>
       </div>
       </div>
       <hanson-table @close="close" :graphyId="graphyId" ref="tableMain"></hanson-table>
       <hanson-table @close="close" :graphyId="graphyId" ref="tableMain"></hanson-table>
     </div>
     </div>
     <!-- <table-transfers></table-transfers> -->
     <!-- <table-transfers></table-transfers> -->
     <linkassets-dialog :dialog="dialog"></linkassets-dialog>
     <linkassets-dialog :dialog="dialog"></linkassets-dialog>
+    <excelDialog ref="handleExcel"/>
   </div>
   </div>
 </template>
 </template>
 <script>
 <script>
@@ -22,6 +30,7 @@ import myCascader from "@/components/ledger/lib/cascader";
 import hansonTable from "@/components/ledger/handsontables/device";
 import hansonTable from "@/components/ledger/handsontables/device";
 import tableTransfers from "@/components/ledger/tableTransfers";
 import tableTransfers from "@/components/ledger/tableTransfers";
 import linkassetsDialog from "@/components/ledger/lib/linkassets";
 import linkassetsDialog from "@/components/ledger/lib/linkassets";
+import excelDialog from "@/components/ledger/lib/excelDialog";
 import {
 import {
   getSpaceName,
   getSpaceName,
   getGraphyId,
   getGraphyId,
@@ -40,7 +49,8 @@ export default {
     myCascader,
     myCascader,
     hansonTable,
     hansonTable,
     tableTransfers,
     tableTransfers,
-    linkassetsDialog
+    linkassetsDialog,
+    excelDialog
   },
   },
   data() {
   data() {
     return {
     return {
@@ -184,6 +194,9 @@ export default {
     // 批量关联资产
     // 批量关联资产
     handleLinkAssets() {
     handleLinkAssets() {
       this.dialog.linkAssets = true
       this.dialog.linkAssets = true
+    },
+    handleSurface() {
+      this.$refs.handleExcel.openDialog()
     }
     }
   }
   }
 };
 };