feat(os-common): 优化 Excel导出功能

- 修改前端导入的权限,不下载模板,不更新原有数据
- 后端更新common,从ruoyi的gitee复制的

- 添加单元格样式封装,支持自定义样式
- 增加字典值和标签的互转方法
- 优化图片数据处理,支持多图片导出
- 改进下拉列表和提示信息的设置
- 修复导入导出的一些小问题
boardTest
zch 3 weeks ago
parent 44cad2be04
commit 63ba32711e

@ -66,6 +66,17 @@ export default {
downloadLoadingInstance.close();
})
},
// excel(data, name) {
// const isBlob = blobValidate(data);
// if (isBlob) {
// const blob = new Blob([data], {
// type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8'
// })
// this.saveAs(blob, name)
// } else {
// this.printErrMsg(data);
// }
// },
saveAs(text, name, opts) {
saveAs(text, name, opts);
},

@ -139,7 +139,7 @@
icon="el-icon-upload2"
size="mini"
@click="handleImport"
v-hasPermi="['ems/info:dailyFaultRecord:import']"
v-hasPermi="['ems/info:dailyFaultRecord:add']"
>导入</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList" :columns="columns"></right-toolbar>
@ -259,11 +259,11 @@
<i class="el-icon-upload"></i>
<div class="el-upload__text">将文件拖到此处<em>点击上传</em></div>
<div class="el-upload__tip text-center" slot="tip">
<div class="el-upload__tip" slot="tip">
<el-checkbox v-model="upload.updateSupport" /> 是否更新已经存在的数据
</div>
<!-- <div class="el-upload__tip" slot="tip">-->
<!-- <el-checkbox v-model="upload.updateSupport" /> 是否更新已经存在的数据-->
<!-- </div>-->
<span>仅允许导入xlsxlsx格式文件</span>
<el-link type="primary" :underline="false" style="font-size:12px;vertical-align: baseline;" @click="importTemplate"></el-link>
<!-- <el-link type="primary" :underline="false" style="font-size:12px;vertical-align: baseline;" @click="importTemplate"></el-link>-->
</div>
</el-upload>
<div slot="footer" class="dialog-footer">

@ -105,7 +105,7 @@
icon="el-icon-upload2"
size="mini"
@click="handleImport"
v-hasPermi="['ems/info:faultHandlingRecord:import']"
v-hasPermi="['ems/info:faultHandlingRecord:add']"
>导入</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList" :columns="columns"></right-toolbar>
@ -220,11 +220,11 @@
<i class="el-icon-upload"></i>
<div class="el-upload__text">将文件拖到此处<em>点击上传</em></div>
<div class="el-upload__tip text-center" slot="tip">
<div class="el-upload__tip" slot="tip">
<el-checkbox v-model="upload.updateSupport" /> 是否更新已经存在的数据
</div>
<!-- <div class="el-upload__tip" slot="tip">-->
<!-- <el-checkbox v-model="upload.updateSupport" /> 是否更新已经存在的数据-->
<!-- </div>-->
<span>仅允许导入xlsxlsx格式文件</span>
<el-link type="primary" :underline="false" style="font-size:12px;vertical-align: baseline;" @click="importTemplate"></el-link>
<!-- <el-link type="primary" :underline="false" style="font-size:12px;vertical-align: baseline;" @click="importTemplate"></el-link>-->
</div>
</el-upload>
<div slot="footer" class="dialog-footer">

@ -201,7 +201,7 @@
icon="el-icon-upload2"
size="mini"
@click="handleImport"
v-hasPermi="['ems/info:plcBufferBatteryLifecycle:import']"
v-hasPermi="['ems/info:plcBufferBatteryLifecycle:add']"
>导入</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList" :columns="columns"></right-toolbar>
@ -417,11 +417,11 @@
<i class="el-icon-upload"></i>
<div class="el-upload__text">将文件拖到此处<em>点击上传</em></div>
<div class="el-upload__tip text-center" slot="tip">
<div class="el-upload__tip" slot="tip">
<el-checkbox v-model="upload.updateSupport" /> 是否更新已经存在的数据
</div>
<!-- <div class="el-upload__tip" slot="tip">-->
<!-- <el-checkbox v-model="upload.updateSupport" /> 是否更新已经存在的数据-->
<!-- </div>-->
<span>仅允许导入xlsxlsx格式文件</span>
<el-link type="primary" :underline="false" style="font-size:12px;vertical-align: baseline;" @click="importTemplate"></el-link>
<!-- <el-link type="primary" :underline="false" style="font-size:12px;vertical-align: baseline;" @click="importTemplate"></el-link>-->
</div>
</el-upload>
<div slot="footer" class="dialog-footer">

@ -205,7 +205,7 @@
icon="el-icon-upload2"
size="mini"
@click="handleImport"
v-hasPermi="['ems/info:securityDoorBatteryLifecycle:import']"
v-hasPermi="['ems/info:securityDoorBatteryLifecycle:add']"
>导入</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList" :columns="columns"></right-toolbar>
@ -439,11 +439,11 @@
<i class="el-icon-upload"></i>
<div class="el-upload__text">将文件拖到此处<em>点击上传</em></div>
<div class="el-upload__tip text-center" slot="tip">
<div class="el-upload__tip" slot="tip">
<el-checkbox v-model="upload.updateSupport" /> 是否更新已经存在的数据
</div>
<!-- <div class="el-upload__tip" slot="tip">-->
<!-- <el-checkbox v-model="upload.updateSupport" /> 是否更新已经存在的数据-->
<!-- </div>-->
<span>仅允许导入xlsxlsx格式文件</span>
<el-link type="primary" :underline="false" style="font-size:12px;vertical-align: baseline;" @click="importTemplate"></el-link>
<!-- <el-link type="primary" :underline="false" style="font-size:12px;vertical-align: baseline;" @click="importTemplate"></el-link>-->
</div>
</el-upload>
<div slot="footer" class="dialog-footer">

@ -121,7 +121,7 @@
icon="el-icon-upload2"
size="mini"
@click="handleImport"
v-hasPermi="['ems/info:sparePartsInventory:import']"
v-hasPermi="['ems/info:sparePartsInventory:add']"
>导入</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList" :columns="columns"></right-toolbar>
@ -227,11 +227,11 @@
<i class="el-icon-upload"></i>
<div class="el-upload__text">将文件拖到此处<em>点击上传</em></div>
<div class="el-upload__tip text-center" slot="tip">
<div class="el-upload__tip" slot="tip">
<el-checkbox v-model="upload.updateSupport" /> 是否更新已经存在的数据
</div>
<!-- <div class="el-upload__tip" slot="tip">-->
<!-- <el-checkbox v-model="upload.updateSupport" /> 是否更新已经存在的数据-->
<!-- </div>-->
<span>仅允许导入xlsxlsx格式文件</span>
<el-link type="primary" :underline="false" style="font-size:12px;vertical-align: baseline;" @click="importTemplate"></el-link>
<!-- <el-link type="primary" :underline="false" style="font-size:12px;vertical-align: baseline;" @click="importTemplate"></el-link>-->
</div>
</el-upload>
<div slot="footer" class="dialog-footer">

@ -89,7 +89,7 @@
icon="el-icon-upload2"
size="mini"
@click="handleImport"
v-hasPermi="['ems/info:sparePartsInventoryCheck:import']"
v-hasPermi="['ems/info:sparePartsInventoryCheck:add']"
>导入</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList" :columns="columns"></right-toolbar>
@ -175,11 +175,11 @@
<i class="el-icon-upload"></i>
<div class="el-upload__text">将文件拖到此处<em>点击上传</em></div>
<div class="el-upload__tip text-center" slot="tip">
<div class="el-upload__tip" slot="tip">
<el-checkbox v-model="upload.updateSupport" /> 是否更新已经存在的数据
</div>
<!-- <div class="el-upload__tip" slot="tip">-->
<!-- <el-checkbox v-model="upload.updateSupport" /> 是否更新已经存在的数据-->
<!-- </div>-->
<span>仅允许导入xlsxlsx格式文件</span>
<el-link type="primary" :underline="false" style="font-size:12px;vertical-align: baseline;" @click="importTemplate"></el-link>
<!-- <el-link type="primary" :underline="false" style="font-size:12px;vertical-align: baseline;" @click="importTemplate"></el-link>-->
</div>
</el-upload>
<div slot="footer" class="dialog-footer">

@ -209,7 +209,7 @@
icon="el-icon-upload2"
size="mini"
@click="handleImport"
v-hasPermi="['ems/info:sparePartsRegistration:import']"
v-hasPermi="['ems/info:sparePartsRegistration:add']"
>导入</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList" :columns="columns"></right-toolbar>
@ -425,11 +425,11 @@
<i class="el-icon-upload"></i>
<div class="el-upload__text">将文件拖到此处<em>点击上传</em></div>
<div class="el-upload__tip text-center" slot="tip">
<div class="el-upload__tip" slot="tip">
<el-checkbox v-model="upload.updateSupport" /> 是否更新已经存在的数据
</div>
<!-- <div class="el-upload__tip" slot="tip">-->
<!-- <el-checkbox v-model="upload.updateSupport" /> 是否更新已经存在的数据-->
<!-- </div>-->
<span>仅允许导入xlsxlsx格式文件</span>
<el-link type="primary" :underline="false" style="font-size:12px;vertical-align: baseline;" @click="importTemplate"></el-link>
<!-- <el-link type="primary" :underline="false" style="font-size:12px;vertical-align: baseline;" @click="importTemplate"></el-link>-->
</div>
</el-upload>
<div slot="footer" class="dialog-footer">

@ -1,6 +1,6 @@
<template>
<div class="app-container">
<!-- <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="100px">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="100px">
<el-form-item label="日期" prop="date">
<el-input
v-model="queryParams.date"
@ -25,22 +25,22 @@
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="使用数量" prop="quantityUsed">
<el-input
v-model="queryParams.quantityUsed"
placeholder="请输入使用数量"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="剩余数量" prop="remainingQuantity">
<el-input
v-model="queryParams.remainingQuantity"
placeholder="请输入剩余数量"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<!-- <el-form-item label="使用数量" prop="quantityUsed">-->
<!-- <el-input-->
<!-- v-model="queryParams.quantityUsed"-->
<!-- placeholder="请输入使用数量"-->
<!-- clearable-->
<!-- @keyup.enter.native="handleQuery"-->
<!-- />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="剩余数量" prop="remainingQuantity">-->
<!-- <el-input-->
<!-- v-model="queryParams.remainingQuantity"-->
<!-- placeholder="请输入剩余数量"-->
<!-- clearable-->
<!-- @keyup.enter.native="handleQuery"-->
<!-- />-->
<!-- </el-form-item>-->
<el-form-item label="领用库房" prop="issuingWarehouse">
<el-input
v-model="queryParams.issuingWarehouse"
@ -49,51 +49,51 @@
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="更换位置" prop="replacementLocation">
<el-input
v-model="queryParams.replacementLocation"
placeholder="请输入更换位置"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="领用人" prop="personReceived">
<el-input
v-model="queryParams.personReceived"
placeholder="请输入领用人"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="库管确认人" prop="warehouseManagerConfirmation">
<el-input
v-model="queryParams.warehouseManagerConfirmation"
placeholder="请输入库管确认人"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="库存表状态" prop="inventoryStatus">
<el-input
v-model="queryParams.inventoryStatus"
placeholder="请输入库存表状态"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="部门仓库" prop="departmentWarehouse">
<el-input
v-model="queryParams.departmentWarehouse"
placeholder="请输入部门仓库"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<!-- <el-form-item label="更换位置" prop="replacementLocation">-->
<!-- <el-input-->
<!-- v-model="queryParams.replacementLocation"-->
<!-- placeholder="请输入更换位置"-->
<!-- clearable-->
<!-- @keyup.enter.native="handleQuery"-->
<!-- />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="领用人" prop="personReceived">-->
<!-- <el-input-->
<!-- v-model="queryParams.personReceived"-->
<!-- placeholder="请输入领用人"-->
<!-- clearable-->
<!-- @keyup.enter.native="handleQuery"-->
<!-- />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="库管确认人" prop="warehouseManagerConfirmation">-->
<!-- <el-input-->
<!-- v-model="queryParams.warehouseManagerConfirmation"-->
<!-- placeholder="请输入库管确认人"-->
<!-- clearable-->
<!-- @keyup.enter.native="handleQuery"-->
<!-- />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="库存表状态" prop="inventoryStatus">-->
<!-- <el-input-->
<!-- v-model="queryParams.inventoryStatus"-->
<!-- placeholder="请输入库存表状态"-->
<!-- clearable-->
<!-- @keyup.enter.native="handleQuery"-->
<!-- />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="部门仓库" prop="departmentWarehouse">-->
<!-- <el-input-->
<!-- v-model="queryParams.departmentWarehouse"-->
<!-- placeholder="请输入部门仓库"-->
<!-- clearable-->
<!-- @keyup.enter.native="handleQuery"-->
<!-- />-->
<!-- </el-form-item>-->
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"></el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"></el-button>
</el-form-item>
</el-form> -->
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
@ -135,7 +135,7 @@
icon="el-icon-upload2"
size="mini"
@click="handleImport"
v-hasPermi="['ems/info:sparePartsUsageRecord:import']"
v-hasPermi="['ems/info:sparePartsUsageRecord:add']"
>导入</el-button>
</el-col>
<el-col :span="1.5">

@ -143,7 +143,7 @@
icon="el-icon-upload2"
size="mini"
@click="handleImport"
v-hasPermi="['ems/info:supervisionChecklist:import']"
v-hasPermi="['ems/info:supervisionChecklist:add']"
>导入</el-button>
</el-col>
<el-col :span="1.5">
@ -287,11 +287,11 @@
<i class="el-icon-upload"></i>
<div class="el-upload__text">将文件拖到此处<em>点击上传</em></div>
<div class="el-upload__tip text-center" slot="tip">
<div class="el-upload__tip" slot="tip">
<el-checkbox v-model="upload.updateSupport" /> 是否更新已经存在的数据
</div>
<!-- <div class="el-upload__tip" slot="tip">-->
<!-- <el-checkbox v-model="upload.updateSupport" /> 是否更新已经存在的数据-->
<!-- </div>-->
<span>仅允许导入xlsxlsx格式文件</span>
<el-link type="primary" :underline="false" style="font-size:12px;vertical-align: baseline;" @click="importTemplate"></el-link>
<!-- <el-link type="primary" :underline="false" style="font-size:12px;vertical-align: baseline;" @click="importTemplate"></el-link>-->
</div>
</el-upload>
<div slot="footer" class="dialog-footer">

@ -209,7 +209,7 @@
icon="el-icon-upload2"
size="mini"
@click="handleImport"
v-hasPermi="['ems/info:upsBatteryLifecycle:import']"
v-hasPermi="['ems/info:upsBatteryLifecycle:add']"
>导入</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList" :columns="columns"></right-toolbar>

Loading…
Cancel
Save