101 lines
3.1 KiB
Vue
101 lines
3.1 KiB
Vue
<template>
|
|
<div>
|
|
<el-dialog
|
|
:title="importCaseDialog.title"
|
|
:visible="true"
|
|
width="480px"
|
|
append-to-body
|
|
:close-on-click-modal="false"
|
|
@close="handleClose"
|
|
>
|
|
|
|
<div class="dialog-content">
|
|
<upload-import :file-list="fileList" :max-count="1"
|
|
:show-file-name="true"
|
|
accept=".xls,.xlsx"
|
|
@handleUploadFile="handleUploadFile"
|
|
@handleImport="handleImport">
|
|
</upload-import>
|
|
</div>
|
|
|
|
<span slot="footer" class="dialog-footer">
|
|
<el-button @click="handleClose()">取消</el-button>
|
|
<el-button @click="handleDownload()">下载</el-button>
|
|
<el-button type="primary" @click="handleSubmit()">确认</el-button>
|
|
</span>
|
|
</el-dialog>
|
|
|
|
</div>
|
|
</template>
|
|
<script>
|
|
import api from "@/services/caseManagement";
|
|
export default {
|
|
components: {
|
|
uploadImport:() => import('@/components/uploadImport.vue'),//导入上传
|
|
},
|
|
props: {
|
|
importCaseDialog: {
|
|
type: Object,
|
|
default: () => {
|
|
return {}
|
|
},
|
|
},
|
|
},
|
|
data() {
|
|
return {
|
|
|
|
fileList:[],
|
|
|
|
};
|
|
},
|
|
mounted () {
|
|
|
|
},
|
|
methods: {
|
|
handleUploadFile(fileList){
|
|
console.log('获取上传文件信息',fileList)
|
|
fileList = JSON.parse(JSON.stringify(fileList))
|
|
this.fileList = fileList.map((item,i) => {
|
|
let time = this.$util.getTimestamp()
|
|
let fileType = this.$util.getFileExtension(item.url)
|
|
let fileName = `${time}.${fileType}`
|
|
return {
|
|
url: item.url,
|
|
fileName:fileName,
|
|
}
|
|
})
|
|
},
|
|
handleImport(file){
|
|
let formdata = new FormData();
|
|
formdata.append("file", file)
|
|
console.log(formdata)
|
|
api.getImportCase(formdata).then(res => {
|
|
this.$parent.getCaseInfoList(1)
|
|
this.$message.success("导入成功");
|
|
})
|
|
|
|
},
|
|
handleSubmit(){
|
|
if(!this.$clickThrottle()) { return }//防止重复点击
|
|
this.handleClose()
|
|
},
|
|
// 下载
|
|
handleDownload(){
|
|
if(!this.$clickThrottle()) { return }//防止重复点击
|
|
api.getExportTemplate({}).then(res => {
|
|
this.$util.downloadFileByBlob(res.data, '案件.xlsx')
|
|
})
|
|
},
|
|
handleClose() {
|
|
this.$emit('update:importCaseDialog', null)
|
|
},
|
|
}
|
|
};
|
|
</script>
|
|
<style scoped lang="scss">
|
|
.dialog-content{
|
|
padding: 16px 64px;
|
|
max-height:500px
|
|
}
|
|
|
|
</style> |