<template> <div class="page"> <LayoutTable :data="tableData" :config="tableConfig"> <el-button slot="table-head-left2" style="margin-left: 10px" icon="el-icon-tickets" size="mini" @click="handleImport" >导入</el-button> <el-button slot="table-head-left2" style="margin-left: 10px" icon="el-icon-tickets" size="mini" @click="doExport" :disabled="isExport" >导出</el-button> </LayoutTable> <!-- 设备管理导入对话框 --> <el-dialog :title="upload.title" :visible.sync="upload.open" width="400px" append-to-body > <el-upload ref="upload" :limit="1" accept=".xlsx, .xls" :headers="upload.headers" :action="upload.url + '?updateSupport=' + upload.updateSupport" :disabled="upload.isUploading" :on-progress="handleFileUploadProgress" :on-success="handleFileSuccess" :auto-upload="false" drag > <i class="el-icon-upload"></i> <div class="el-upload__text"> 将文件拖到此处,或 <em>点击上传</em> </div> <div class="el-upload__tip" slot="tip"> <el-checkbox v-model="upload.updateSupport" />是否更新已经存在的数据 <el-link type="primary" style="font-size: 14px" @click="downloadTemplate" >下载模板</el-link > </div> <div class="el-upload__tip" style="color: red" slot="tip"> 提示:仅允许导入“xls”或“xlsx”格式文件! </div> </el-upload> <div slot="footer" class="dialog-footer"> <el-button type="primary" @click="submitFileForm">确 定</el-button> <el-button @click="upload.open = false">取 消</el-button> </div> </el-dialog> <drawer-show ref="drawerform" @ok="getData" /> </div> </template> <script> /** 表单弹出框模式需引入 */ import drawerShow from "./drawershow"; import table from "@/assets/mixins/table"; export default { name: "DeviceList", components: { drawerShow }, mixins: [table], created() { }, methods: { /** 导入 */ handleImport() { this.upload.title = "设备管理导入"; this.upload.open = true; }, /** 下载模板操作 */ downloadTemplate() { this.isExport = true; this.$download("/device/downloadTemplate", {}, { type: "excel" }) .then(() => (this.isExport = false)) .catch((error) => { this.isExport = false; this.$message.error(error.message); }); }, /** 文件上传中处理 */ handleFileUploadProgress(event, file, fileList) { this.upload.isUploading = true; }, /** 文件上传成功处理 */ handleFileSuccess(response, file, fileList) { this.upload.open = false; this.upload.isUploading = false; this.$refs.upload.clearFiles(); this.$alert(response.msg, "导入结果", { dangerouslyUseHTMLString: true }); this.getData(); }, /** 提交上传文件 */ submitFileForm() { this.$refs.upload.submit(); }, /** 导出Excel */ doExport() { this.isExport = true; this.$download("/device/exportExcel", { "idList": this.selection, }, { type: "excel" }).then(() => this.isExport = false).catch(error => { this.isExport = false; this.$message.error(error.message); }); }, /** 重写新增方法 */ toAdd(row) { this.$refs.drawerform.add(row); }, /** 重写编辑方法 */ toEdit(row) { this.$refs.drawerform.edit(row); }, /** 重写查看方法 */ toView(row) { this.$refs.drawerform.view(row); }, }, data() { return { // 用户导入参数 upload: { // 是否显示弹出层(设备管理导入) open: false, // 弹出层标题(设备管理导入) title: "导入设备管理数据", // 是否禁用上传 isUploading: false, // 是否更新已经存在的数据 updateSupport: 0, // 上传的地址 url: "/m/device/importData", }, isExport: false, config: { search: [ ], columns: [ {type: "selection", width: 60}, {type: "index",label: "序号",width: 50}, {label: "设备名称", prop: "deviceName"}, {label: "所属房间id", prop: "roomId", formatter: this.formatter}, {label: "所属房间名称", prop: "roomName"}, {label: "设备编码,SN码等,默认为MAC地址", prop: "deviceCode"}, {label: "设备的MAC地址", prop: "deviceMac"}, {label: "设备位置", prop: "deviceAddr"}, {label: "联系电话", prop: "leadingOfficialTelephone"}, {label: "设备状态 ", prop: "deviceStatus",formatter: this.formatter}, {label: "启用状态 ", prop: "enabled",formatter: this.formatter}, {label: "创建用户", prop: "createUserId", formatter: this.formatter}, { label: "操作", width: 240, formatter: row => { return ( <table-buttons noAdd row={row} onEdit={this.toEdit} onView={this.toView} onDel={this.toDel} /> ); } } ] } }; } }; </script>