Procházet zdrojové kódy

Merge branch 'dataType' of http://39.106.8.246:3003/web/adm into dataType

haojianlong před 4 roky
rodič
revize
8bd4fc59cc

+ 26 - 26
src/components/dialogs/list/batchDialog.vue

@@ -22,32 +22,32 @@
       v-show="active === 0"
       style="overflow: hidden"
     >
-      <section>
-        <p class="text-message">维护只有单值的信息点</p>
-        <span class="small">请选择需维护的信息点</span>
-        <el-checkbox
-          :indeterminate="isIndeterminate"
-          v-model="checkAll"
-          @change="handleCheckChange"
-        >
-          全部选择
-        </el-checkbox>
-
-        <div style="margin: 15px "></div>
-        <el-checkbox-group
-          v-model="checkedCities"
-          @change="handleCheckedCitiesChange"
-        >
-          <el-checkbox
-            v-for="(city,index) in newFirm"
-            :label="city"
-            :key="index"
-          >
-            <span @click="fourVendors(city.code)"> {{ city.name }}:</span>
-            <span :title="city.rname">{{ city.rname | filterImgNames }}</span>
-          </el-checkbox>
-        </el-checkbox-group>
-      </section>
+      <!--      <section>-->
+      <!--        <p class="text-message">维护只有单值的信息点</p>-->
+      <!--        <span class="small">请选择需维护的信息点</span>-->
+      <!--        <el-checkbox-->
+      <!--          :indeterminate="isIndeterminate"-->
+      <!--          v-model="checkAll"-->
+      <!--          @change="handleCheckChange"-->
+      <!--        >-->
+      <!--          全部选择-->
+      <!--        </el-checkbox>-->
+
+      <!--        <div style="margin: 15px "></div>-->
+      <!--        <el-checkbox-group-->
+      <!--          v-model="checkedCities"-->
+      <!--          @change="handleCheckedCitiesChange"-->
+      <!--        >-->
+      <!--          <el-checkbox-->
+      <!--            v-for="(city,index) in newFirm"-->
+      <!--            :label="city"-->
+      <!--            :key="index"-->
+      <!--          >-->
+      <!--            <span @click="fourVendors(city.code)"> {{ city.name }}:</span>-->
+      <!--            <span :title="city.rname">{{ city.rname | filterImgNames }}</span>-->
+      <!--          </el-checkbox>-->
+      <!--        </el-checkbox-group>-->
+      <!--      </section>-->
       <!--维护有多个值的信息-->
       <section>
         <p class="text-message">维护有多个值的信息点</p>

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

@@ -0,0 +1,108 @@
+<template>
+  <el-dialog title="深化点表导入" :visible.sync="dialogFormVisible" class="dialogFormVisible" @close="messageKey = ''">
+    <h5 class="title">深化点表中必须包含四列,表头分别是$唯一识别码$、¥动态信息点名称¥、表号、功能号,每列可以在表中任意位置,不受前后排序的影响。$唯一识别码$使用的设备信息点,由项目的实际需求决定。</h5>
+    <p class="time">
+      <el-button type="text" :disabled="!messageKey" @click="download">下载导入结果</el-button>
+    </p>
+    <el-upload
+      class="upload-demo"
+      v-loading='loading'
+      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: '',
+      loading: false
+    }
+  },
+  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) {
+      this.loading = true
+    },
+    success(event, file, fileList) {
+      if (event.result == 'success') {
+        this.loading = false
+        this.messageKey = event.message
+        this.$message.success('上传成功')
+      } else {
+        this.loading = false
+        this.messageKey =''
+        this.$message.error('目前只支持.xlsx格式,请重新上传')
+      }
+    },
+    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>

+ 21 - 4
src/views/ledger/facility/index.vue

@@ -6,13 +6,19 @@
     <div class="table-main">
       <div class="search-header">
         <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-tooltip class="item" effect="dark" content="请选择建筑楼层和设备类" placement="top-start">
+          <el-button type="primary" class="deviceList-excel" @click="handleSurface">
+            深化点表导入
+          </el-button>
+        </el-tooltip>
       </div>
       <hanson-table @close="close" :graphyId="graphyId" ref="tableMain"></hanson-table>
     </div>
     <!-- <table-transfers></table-transfers> -->
     <linkassets-dialog :dialog="dialog"></linkassets-dialog>
+    <excelDialog ref="handleExcel"/>
   </div>
 </template>
 <script>
@@ -22,8 +28,9 @@ import myCascader from "@/components/ledger/lib/cascader";
 import hansonTable from "@/components/ledger/handsontables/device";
 import tableTransfers from "@/components/ledger/tableTransfers";
 import linkassetsDialog from "@/components/ledger/lib/linkassets";
-import { countEquip } from "@/api/object/equip";
-import { mapGetters } from "vuex";
+import {countEquip} from "@/api/object/equip";
+import excelDialog from "@/components/ledger/lib/excelDialog";
+import {mapGetters} from "vuex";
 
 export default {
   components: {
@@ -32,7 +39,8 @@ export default {
     myCascader,
     hansonTable,
     tableTransfers,
-    linkassetsDialog
+    linkassetsDialog,
+    excelDialog
   },
   data() {
     return {
@@ -170,7 +178,11 @@ export default {
     },
     // 批量关联资产
     handleLinkAssets() {
+
       this.dialog.linkAssets = true
+    },
+    handleSurface() {
+      this.$refs.handleExcel.openDialog()
     }
   }
 };
@@ -199,6 +211,11 @@ export default {
     margin: 0 10px;
     border-bottom: 1px solid #bcbcbc;
 
+    .deviceList-excel {
+      float: right;
+      margin-right: 15px;
+    }
+
     .icon-batchassociation {
       float: right;
       font-size: 12px;