2020-02-26 15:38:56 +08:00
|
|
|
|
<template>
|
2020-03-03 21:05:13 +08:00
|
|
|
|
<div class="export-xlsx">
|
2020-04-21 22:39:07 +08:00
|
|
|
|
<div class="nz-btn-group nz-btn-group-size-normal nz-btn-group-light">
|
2020-12-08 21:53:37 +08:00
|
|
|
|
<slot name="optionZone"></slot><button @mouseenter="exportMenuHandler(true)" @mouseleave="exportMenuHandler(false)" class="nz-btn nz-btn-size-normal nz-btn-style-light export-dropdown-btn" id="browser-go" style="padding: 0" v-has="[permissions.import, permissions.export]">
|
2020-09-10 17:00:32 +08:00
|
|
|
|
<i class="nz-icon nz-icon-arrow-down"></i>
|
2020-04-21 22:39:07 +08:00
|
|
|
|
<transition name="el-zoom-in-top">
|
2020-11-22 16:51:30 +08:00
|
|
|
|
<ul class="el-dropdown-menu el-popper el-dropdown-menu--mini export-dropdown" style="z-index: 101" v-show="exportShow">
|
2020-12-08 21:53:37 +08:00
|
|
|
|
<li @click="showImportBox(1)" class="el-dropdown-menu__item dropdown-content" v-has="permissions.import"><i class="nz-icon nz-icon-upload"></i>{{$t('overall.importExcel')}}</li>
|
|
|
|
|
|
<li @click="showImportBox(2)" class="el-dropdown-menu__item dropdown-content" v-has="permissions.export"><i class="nz-icon nz-icon-download1"></i>{{$t('overall.exportExcel')}}</li>
|
2020-04-21 22:39:07 +08:00
|
|
|
|
</ul>
|
|
|
|
|
|
</transition>
|
|
|
|
|
|
</button>
|
2020-02-26 15:38:56 +08:00
|
|
|
|
</div>
|
2020-04-21 22:39:07 +08:00
|
|
|
|
|
2020-09-18 15:08:19 +08:00
|
|
|
|
<el-dialog :visible.sync="importBox.show" :title="importBox.title" modal-append-to-body append-to-body :modal-append-to-body='false' :show-close="true" :width="importBox.width" @close="closeDialog" class="nz-dialog" :close-on-click-modal="importBox.type!=3">
|
2020-05-21 19:59:17 +08:00
|
|
|
|
<div v-if="importBox.type==1">
|
|
|
|
|
|
<div class="upload-body">
|
|
|
|
|
|
<el-upload drag class="upload-demo" ref="uploadExcel" action="" :file-list="importFileList" :on-change="importChange" :auto-upload="false" accept=".xlsx,.xls">
|
|
|
|
|
|
<div slot="tip" class="el-upload__tip" >{{$t('overall.importTip')}}</div>
|
2020-09-10 17:00:32 +08:00
|
|
|
|
<i class="nz-icon nz-icon-upload"></i>
|
2020-05-21 19:59:17 +08:00
|
|
|
|
<div class="el-upload__text">{{$t('overall.dragFileTip')}},{{$t('overall.or')}} <em>{{$t('overall.clickUpload')}}</em></div>
|
|
|
|
|
|
<!--<button type="button" class="nz-btn nz-btn-size-normal nz-btn-style-normal">
|
|
|
|
|
|
<span class="top-tool-btn-txt" >{{$t('overall.upload')}}</span>
|
|
|
|
|
|
</button>-->
|
|
|
|
|
|
</el-upload>
|
2020-02-26 15:38:56 +08:00
|
|
|
|
</div>
|
2020-05-21 19:59:17 +08:00
|
|
|
|
<div slot="footer" class="footer">
|
|
|
|
|
|
<div class="el-message-box__btns" style="text-align: right;">
|
|
|
|
|
|
<button @click="downloadTemplate" class="el-button el-button--default el-button--small">
|
|
|
|
|
|
<span>{{$t('overall.template')}}</span>
|
2020-02-26 15:38:56 +08:00
|
|
|
|
</button>
|
2020-05-21 19:59:17 +08:00
|
|
|
|
<button @click="importExcel" class="el-button el-button--default el-button--small">
|
|
|
|
|
|
<span>{{$t('overall.importExcel')}}</span>
|
|
|
|
|
|
</button>
|
|
|
|
|
|
<button @click="closeDialog" class="el-button el-button--default el-button--small" >
|
|
|
|
|
|
<span>{{$t('overall.cancel')}}</span>
|
2020-02-26 15:38:56 +08:00
|
|
|
|
</button>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
2020-05-21 19:59:17 +08:00
|
|
|
|
</div>
|
|
|
|
|
|
<div v-if="importBox.type == 2">
|
|
|
|
|
|
<div class="upload-body">
|
|
|
|
|
|
<button @click="exportCur" class="el-button el-button--default el-button--small">
|
|
|
|
|
|
<span>{{$t('overall.exportCur')}}</span>
|
|
|
|
|
|
</button>
|
|
|
|
|
|
<button @click="exportAll" class="el-button el-button--default el-button--small">
|
|
|
|
|
|
<span>{{$t('overall.exportAll')}}</span>
|
|
|
|
|
|
</button>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div slot="footer" class="footer">
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div v-if="importBox.type==3">
|
|
|
|
|
|
<div class="upload-body result-body">
|
|
|
|
|
|
<div>
|
|
|
|
|
|
<span class="result-title">{{$t('overall.result.total')}}:</span>
|
|
|
|
|
|
<span>{{importResult&&importResult.totalNum?importResult.totalNum:0}}</span>
|
2020-02-26 15:38:56 +08:00
|
|
|
|
</div>
|
2020-05-21 19:59:17 +08:00
|
|
|
|
<div>
|
|
|
|
|
|
<span class="result-title">{{$t('overall.result.failed')}}:</span>
|
|
|
|
|
|
<span>{{importResult&&importResult.failNum?importResult.failNum:0}}</span>
|
|
|
|
|
|
<span class="result-title">{{$t('overall.result.success')}}:</span>
|
|
|
|
|
|
<span>{{importResult&&importResult.successNum?importResult.successNum:0}}</span>
|
2020-02-26 15:38:56 +08:00
|
|
|
|
</div>
|
2020-05-21 19:59:17 +08:00
|
|
|
|
<div>
|
|
|
|
|
|
<div class="result-title">{{$t('overall.result.failedDetail')}}:</div>
|
|
|
|
|
|
<div class="result-detail" v-if="importResult&&importResult.failDetail">
|
2020-12-14 20:25:24 +08:00
|
|
|
|
<div style="height: 100%; overflow: auto;">
|
2020-11-04 13:52:35 +08:00
|
|
|
|
<!-- <ul>
|
2020-10-16 19:46:48 +08:00
|
|
|
|
<li v-for="(item,index) in importResult.failDetail"><span>{{item.lineNo}}</span>:<span>{{item.errorMsg}}</span> </li>
|
2020-11-04 13:52:35 +08:00
|
|
|
|
</ul>-->
|
|
|
|
|
|
<template v-for="(item,index) in importResult.failDetail">
|
|
|
|
|
|
<div class="import-result-block">
|
|
|
|
|
|
<div class="import-result-item">
|
|
|
|
|
|
<div class="line-num">{{$t('overall.result.line',[item.lineNo])}}</div>
|
|
|
|
|
|
<div>{{item.errorMsg}}</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</template>
|
2020-12-14 20:25:24 +08:00
|
|
|
|
</div>
|
2020-05-21 19:59:17 +08:00
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div slot="footer" class="footer">
|
|
|
|
|
|
<div class="el-message-box__btns">
|
2020-10-27 11:27:16 +08:00
|
|
|
|
<button @click="rollbackImport" class="nz-btn nz-btn-size-normal-new nz-btn-style-error-new">
|
2020-05-21 19:59:17 +08:00
|
|
|
|
<span>{{$t('overall.rollbackImport')}}</span>
|
|
|
|
|
|
</button>
|
2020-10-27 11:27:16 +08:00
|
|
|
|
<!--<button @click="closeDialog" class="el-button el-button--default el-button--small">-->
|
|
|
|
|
|
<!--<span>{{$t('overall.cancel')}}</span>-->
|
|
|
|
|
|
<!--</button>-->
|
2020-05-21 19:59:17 +08:00
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</el-dialog>
|
2020-02-26 15:38:56 +08:00
|
|
|
|
</div>
|
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
|
|
<script>
|
|
|
|
|
|
import axios from 'axios'
|
2020-04-21 22:39:07 +08:00
|
|
|
|
var timeout;
|
2020-02-26 15:38:56 +08:00
|
|
|
|
export default {
|
|
|
|
|
|
name: "exportXLSX",
|
|
|
|
|
|
props:{
|
|
|
|
|
|
exportUrl:{type:String,required:true},
|
|
|
|
|
|
params:{type:Object},
|
|
|
|
|
|
exportFileName:{type:String},
|
2020-05-08 16:10:04 +08:00
|
|
|
|
importUrl: {type:String,required:true},
|
2020-10-19 18:33:18 +08:00
|
|
|
|
link:{type:Object},
|
2020-12-08 21:53:37 +08:00
|
|
|
|
permissions: {type: Object}
|
2020-02-26 15:38:56 +08:00
|
|
|
|
},
|
|
|
|
|
|
data:function(){
|
2020-04-21 22:39:07 +08:00
|
|
|
|
return {
|
|
|
|
|
|
importBox:{show:false,title:this.$t('overall.importExcel'),type:1},
|
|
|
|
|
|
importFile:null,
|
|
|
|
|
|
importFileList:[],
|
|
|
|
|
|
importResult:null,
|
|
|
|
|
|
exportShow: false,
|
2020-12-08 21:53:37 +08:00
|
|
|
|
paramsType:'',
|
2020-04-21 22:39:07 +08:00
|
|
|
|
}
|
2020-02-26 15:38:56 +08:00
|
|
|
|
},
|
|
|
|
|
|
created(){
|
|
|
|
|
|
},
|
2020-09-29 17:02:45 +08:00
|
|
|
|
mounted(){
|
|
|
|
|
|
this.getParamsType();
|
|
|
|
|
|
},
|
2020-12-08 21:53:37 +08:00
|
|
|
|
/*watch: {
|
|
|
|
|
|
permissions: {
|
|
|
|
|
|
immediate: true,
|
|
|
|
|
|
deep: true,
|
|
|
|
|
|
handler(n) {
|
|
|
|
|
|
this.permission = Object(n);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
},*/
|
2020-02-26 15:38:56 +08:00
|
|
|
|
methods: {
|
|
|
|
|
|
importChange:function(file,fileList){
|
|
|
|
|
|
if (fileList.length > 0) {
|
|
|
|
|
|
this.importFileList = [fileList[fileList.length - 1]]
|
|
|
|
|
|
}
|
|
|
|
|
|
this.importFile = this.importFileList[0];
|
|
|
|
|
|
this.validateFile();
|
|
|
|
|
|
},
|
|
|
|
|
|
validateFile:function(){
|
|
|
|
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
rollbackImport:function(){
|
2020-05-08 16:10:04 +08:00
|
|
|
|
let url;
|
|
|
|
|
|
if (this.importUrl.indexOf("asset") > -1) {
|
|
|
|
|
|
url = "/asset/cancelImport";
|
|
|
|
|
|
} else if (this.importUrl.indexOf("endpoint") > -1) {
|
|
|
|
|
|
url = "/endpoint/cancelImport";
|
2020-09-09 11:15:35 +08:00
|
|
|
|
} else if (this.importUrl.indexOf("rule") > -1) {
|
|
|
|
|
|
url = "/alert/rule/cancelImport";
|
2020-09-16 14:59:27 +08:00
|
|
|
|
} else if(this.importUrl.indexOf("panel") > -1){
|
|
|
|
|
|
url = "/panel/cancelImport";
|
2020-05-08 16:10:04 +08:00
|
|
|
|
}
|
|
|
|
|
|
this.$delete(url + '?seq='+this.importResult.seq).then(response=>{
|
2020-02-26 15:38:56 +08:00
|
|
|
|
if(response.code == 200 ){
|
|
|
|
|
|
this.$message({duration: 2000, type: 'success', message: this.$t("tip.saveSuccess")});
|
2020-09-21 17:57:38 +08:00
|
|
|
|
this.$emit('afterImport')
|
2020-02-26 15:38:56 +08:00
|
|
|
|
}else{
|
|
|
|
|
|
this.$message.error(response.msg);
|
|
|
|
|
|
}
|
|
|
|
|
|
this.closeDialog();
|
|
|
|
|
|
})
|
|
|
|
|
|
},
|
|
|
|
|
|
importExcel:function(){
|
|
|
|
|
|
if(this.importFile && this.importFile.raw){
|
|
|
|
|
|
let form = new FormData();
|
2020-05-08 16:10:04 +08:00
|
|
|
|
form.append('excelFile',this.importFile.raw);
|
2020-09-29 17:02:45 +08:00
|
|
|
|
if(this.paramsType){
|
|
|
|
|
|
form.append('type',this.paramsType);
|
2020-10-19 18:33:18 +08:00
|
|
|
|
if(this.paramsType==='asset' || this.paramsType==='model'){
|
|
|
|
|
|
form.append('linkId',this.link?this.link.id:'');
|
|
|
|
|
|
}
|
2020-09-29 17:02:45 +08:00
|
|
|
|
}
|
2020-10-14 16:14:52 +08:00
|
|
|
|
form.append('language',localStorage.getItem("nz-language") ? localStorage.getItem("nz-language") : 'en')
|
2020-05-08 16:10:04 +08:00
|
|
|
|
this.$post(this.importUrl,form,{'Content-Type': 'multipart/form-data'}).then(response=>{
|
2020-02-26 15:38:56 +08:00
|
|
|
|
if(response.code==200 && response.msg=='success'){
|
|
|
|
|
|
this.importResult=response.data;
|
|
|
|
|
|
this.$emit('afterImport')
|
|
|
|
|
|
this.importBox.type=3;
|
|
|
|
|
|
this.importBox.width='600px';
|
2020-08-14 17:24:47 +08:00
|
|
|
|
}else{
|
|
|
|
|
|
this.$message.error(response.msg);
|
2020-02-26 15:38:56 +08:00
|
|
|
|
}
|
|
|
|
|
|
})
|
2020-09-21 18:08:35 +08:00
|
|
|
|
}else{
|
|
|
|
|
|
this.$message.error(this.$t('tip.noImportFile'));
|
2020-02-26 15:38:56 +08:00
|
|
|
|
}
|
2020-04-21 22:39:07 +08:00
|
|
|
|
},
|
|
|
|
|
|
exportMenuHandler(show) {
|
|
|
|
|
|
if (show) {
|
|
|
|
|
|
clearTimeout(timeout);
|
|
|
|
|
|
this.exportShow = true;
|
|
|
|
|
|
} else {
|
|
|
|
|
|
timeout = setTimeout(() => {
|
|
|
|
|
|
this.exportShow = false;
|
|
|
|
|
|
}, 700);
|
|
|
|
|
|
}
|
2020-02-26 15:38:56 +08:00
|
|
|
|
},
|
|
|
|
|
|
closeDialog:function(){
|
|
|
|
|
|
this.importBox.show=false;
|
|
|
|
|
|
this.importResult=null;
|
|
|
|
|
|
this.importFileList=[];
|
|
|
|
|
|
this.importFile=null;
|
|
|
|
|
|
},
|
|
|
|
|
|
downloadTemplate:function(){
|
2020-09-04 12:40:39 +08:00
|
|
|
|
let language=localStorage.getItem('nz-language') || 'en'; //初始未选择默认 en 英文
|
|
|
|
|
|
let fileName=this.exportFileName+'-'+this.$t('overall.template')+'-'+this.getTimeString()+'.xlsx';
|
2020-08-24 11:48:48 +08:00
|
|
|
|
|
|
|
|
|
|
let url=null;
|
|
|
|
|
|
if (this.importUrl.indexOf("asset") > -1) {
|
|
|
|
|
|
url = "/asset/template";
|
2020-09-09 11:15:35 +08:00
|
|
|
|
} else if (this.importUrl.indexOf("rule") > -1) {
|
|
|
|
|
|
url = "/alert/rule/template";
|
2020-09-16 14:59:27 +08:00
|
|
|
|
} else if (this.importUrl.indexOf('panel') > -1){
|
|
|
|
|
|
url = "/panel/template";
|
2020-09-28 10:19:14 +08:00
|
|
|
|
}else if(this.importUrl.indexOf('endpoint') > -1){
|
|
|
|
|
|
url = '/endpoint/template'
|
2020-09-09 11:15:35 +08:00
|
|
|
|
}
|
2020-08-24 11:48:48 +08:00
|
|
|
|
|
|
|
|
|
|
let param={language:language}
|
|
|
|
|
|
if(!url){
|
|
|
|
|
|
console.error('no interface support')
|
2020-02-26 15:38:56 +08:00
|
|
|
|
}
|
2020-08-24 11:48:48 +08:00
|
|
|
|
this.exportExcel(url,param,fileName)
|
2020-02-26 15:38:56 +08:00
|
|
|
|
},
|
|
|
|
|
|
formatJson(filterVal, jsonData) {
|
|
|
|
|
|
return jsonData.map(v => filterVal.map(j => v[j]))
|
|
|
|
|
|
},
|
|
|
|
|
|
exportCur:function(){
|
2020-09-04 12:40:39 +08:00
|
|
|
|
let params=Object.assign({},this.params);
|
|
|
|
|
|
params.language=localStorage.getItem('nz-language') || 'en';
|
|
|
|
|
|
this.exportExcel(this.exportUrl,params,this.exportFileName+'-'+this.getTimeString()+'.xlsx');
|
2020-02-26 15:38:56 +08:00
|
|
|
|
this.closeDialog();
|
|
|
|
|
|
},
|
|
|
|
|
|
exportAll:function(){
|
|
|
|
|
|
let params=JSON.parse(JSON.stringify(this.params));
|
|
|
|
|
|
params.pageSize=-1;
|
2020-09-18 10:53:09 +08:00
|
|
|
|
if (this.importUrl.indexOf('panel') > -1){
|
|
|
|
|
|
delete params.panelId
|
|
|
|
|
|
}
|
2020-09-27 17:56:28 +08:00
|
|
|
|
if (this.importUrl.indexOf('endpoint') > -1){
|
|
|
|
|
|
delete params.moduleId
|
|
|
|
|
|
}
|
2020-09-04 12:40:39 +08:00
|
|
|
|
params.language=localStorage.getItem('nz-language') || 'en';
|
|
|
|
|
|
|
2020-08-24 11:48:48 +08:00
|
|
|
|
this.exportExcel(this.exportUrl,params,this.exportFileName+'-'+this.getTimeString()+'.xlsx');
|
2020-02-26 15:38:56 +08:00
|
|
|
|
this.closeDialog();
|
|
|
|
|
|
},
|
2020-08-24 11:48:48 +08:00
|
|
|
|
exportExcel:function(url,params,fileName){
|
2020-02-26 15:38:56 +08:00
|
|
|
|
let temp=this;
|
2020-09-29 17:02:45 +08:00
|
|
|
|
if(this.paramsType){
|
|
|
|
|
|
params.type=this.paramsType;
|
|
|
|
|
|
}
|
2020-08-24 11:48:48 +08:00
|
|
|
|
axios.get(url,{responseType:'blob',params:params}).then(res=>{
|
2020-02-26 15:38:56 +08:00
|
|
|
|
if(window.navigator.msSaveOrOpenBlob){
|
|
|
|
|
|
// 兼容ie11
|
|
|
|
|
|
let blobObject = new Blob([res.data]);
|
|
|
|
|
|
window.navigator.msSaveOrOpenBlob(blobObject, fileName);
|
|
|
|
|
|
}else{
|
|
|
|
|
|
let url = URL.createObjectURL(new Blob([res.data]));
|
|
|
|
|
|
let a = document.createElement('a');
|
|
|
|
|
|
document.body.appendChild(a); //此处增加了将创建的添加到body当中
|
|
|
|
|
|
a.href = url;
|
|
|
|
|
|
a.download = fileName;
|
|
|
|
|
|
a.target = '_blank';
|
|
|
|
|
|
a.click();
|
|
|
|
|
|
a.remove(); //将a标签移除
|
|
|
|
|
|
}
|
2020-11-20 21:11:42 +08:00
|
|
|
|
},error=>{
|
|
|
|
|
|
let $self=this;
|
|
|
|
|
|
let reader = new FileReader();
|
|
|
|
|
|
reader.onload = function(event){
|
|
|
|
|
|
let responseText = reader.result;
|
|
|
|
|
|
let exception = JSON.parse(responseText);
|
|
|
|
|
|
if(exception.message){
|
|
|
|
|
|
$self.$message.error(exception.message)
|
|
|
|
|
|
}else{
|
|
|
|
|
|
console.error(error)
|
|
|
|
|
|
}
|
|
|
|
|
|
};
|
|
|
|
|
|
reader.readAsText(error.response.data);
|
2020-02-26 15:38:56 +08:00
|
|
|
|
})
|
|
|
|
|
|
},
|
|
|
|
|
|
showImportBox:function(type){
|
|
|
|
|
|
this.importBox.show=true;
|
|
|
|
|
|
this.importBox.type=type;
|
2020-09-29 17:02:45 +08:00
|
|
|
|
if(type == 2&&(this.$route.path==='/asset'|| this.$route.path==='/model')){
|
|
|
|
|
|
this.exportCur()
|
|
|
|
|
|
return
|
|
|
|
|
|
}
|
2020-02-26 15:38:56 +08:00
|
|
|
|
if(type == 1){//import
|
|
|
|
|
|
this.importBox.title=this.$t('overall.importExcel');
|
|
|
|
|
|
this.importBox.width='600px';
|
|
|
|
|
|
}else if(type == 2){//export
|
|
|
|
|
|
this.importBox.title=this.$t('overall.exportExcel');
|
|
|
|
|
|
this.importBox.width='300px';
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
getTimeString:function(){
|
|
|
|
|
|
let split='-';
|
|
|
|
|
|
let date=new Date();
|
|
|
|
|
|
let year=date.getFullYear();
|
|
|
|
|
|
let month=this.formatNum(date.getMonth()+1);
|
2020-02-28 17:09:38 +08:00
|
|
|
|
let day=this.formatNum(date.getDate());
|
2020-02-26 15:38:56 +08:00
|
|
|
|
let hours=this.formatNum(date.getHours());
|
|
|
|
|
|
let minutes=this.formatNum(date.getMinutes());
|
|
|
|
|
|
let seconds=this.formatNum(date.getSeconds());
|
|
|
|
|
|
return year + split + month + split + day + ' ' + hours + split + minutes + split + seconds;
|
|
|
|
|
|
},
|
|
|
|
|
|
formatNum:function(num){
|
|
|
|
|
|
return num>9?num:'0'+num;
|
2020-09-29 17:02:45 +08:00
|
|
|
|
},
|
|
|
|
|
|
getParamsType(){
|
|
|
|
|
|
let path=this.$route.path;
|
|
|
|
|
|
switch(path){
|
|
|
|
|
|
case '/panel': this.paramsType='dashboard';break;
|
|
|
|
|
|
case '/asset': this.paramsType='asset';break;
|
|
|
|
|
|
case '/model': this.paramsType='model';break;
|
|
|
|
|
|
default: this.paramsType='';break;
|
|
|
|
|
|
}
|
2020-02-26 15:38:56 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
|
|
<style scoped>
|
|
|
|
|
|
/*去除上传文件动画start*/
|
|
|
|
|
|
/*.upload-demo {*/
|
|
|
|
|
|
/* display: flex;*/
|
|
|
|
|
|
/*}*/
|
|
|
|
|
|
/deep/ .el-list-enter-active,
|
|
|
|
|
|
/deep/ .el-list-leave-active {
|
|
|
|
|
|
transition: none;
|
|
|
|
|
|
}
|
|
|
|
|
|
.nz-tab {
|
|
|
|
|
|
margin-bottom: 22px;
|
|
|
|
|
|
margin-left: 13px;
|
|
|
|
|
|
}
|
|
|
|
|
|
/deep/ .el-list-enter,
|
|
|
|
|
|
/deep/ .el-list-leave-active {
|
|
|
|
|
|
opacity: 0;
|
|
|
|
|
|
}
|
|
|
|
|
|
/deep/ .el-upload-list {
|
|
|
|
|
|
height: 40px;
|
|
|
|
|
|
}
|
|
|
|
|
|
/*去除上传文件动画end*/
|
|
|
|
|
|
</style>
|
2020-11-04 13:52:35 +08:00
|
|
|
|
|
|
|
|
|
|
<style>
|
|
|
|
|
|
.result-detail .import-result-block{
|
|
|
|
|
|
}
|
|
|
|
|
|
.result-detail .import-result-block .import-result-item{
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
}
|
|
|
|
|
|
.import-result-item .line-num{
|
|
|
|
|
|
width: 55px;
|
|
|
|
|
|
}
|
|
|
|
|
|
</style>
|