提交 0fb6ad5d 编写于 作者: lzlhxj's avatar lzlhxj

修改文件处理接口方式

上级 0742f15f
......@@ -33,7 +33,9 @@
:file-list="uploadFileList"
:show-file-list="false"
:http-request="customUploadFile">
<el-button type="primary" size="small" icon="el-icon-upload">{{$t('components.diskFileUpload.clickUpload')}}</el-button>
<el-button type="primary" size="small" icon="el-icon-upload">
{{$t('components.diskFileUpload.clickUpload')}}
</el-button>
</el-upload>
</el-col>
<!--文件操作-->
......@@ -43,8 +45,11 @@
<span>{{item.name}}</span>
</div>
<div class="fileMain">
<el-link type="success" icon="el-icon-download" @click="onDownload(item)">{{$t('components.diskFileUpload.load')}}</el-link>
<el-link type="warning" icon="el-icon-view" v-show="showPreview" @click="onPreview(item)">{{$t('components.diskFileUpload.preview')}}
<el-link type="success" icon="el-icon-download" @click="onDownload(item)">
{{$t('components.diskFileUpload.load')}}
</el-link>
<el-link type="warning" icon="el-icon-view" v-show="showPreview" @click="onPreview(item)">
{{$t('components.diskFileUpload.preview')}}
</el-link>
<el-link type="primary" icon="el-icon-edit"
v-show="showEdit && (item.name.match(/^.+\.(doc|DOC|docx|DOCX|wps|WPS|xls|XLS|xlsx|XLSX|ppt|PPT|et|ET)$/))"
......@@ -54,21 +59,38 @@
v-show="showOcrview && (item.name.match(/^.+\.(gif|GIF|jpg|JPG|jpeg|JPEG|png|PNG|bmp|BMP|pdf|PDF)$/))"
@click="onOcr(item)">OCR
</el-link>
<el-link type="danger" icon="el-icon-delete" @click="onRemove(item,index)">{{$t('components.diskFileUpload.delete')}}</el-link>
<el-link type="danger" icon="el-icon-delete" @click="onRemove(item,index)">
{{$t('components.diskFileUpload.delete')}}
</el-link>
</div>
</el-col>
</el-row>
<!-- 自定义弹框 -->
<div class="dialogDiv">
<el-dialog
width="70%"
top="5vh"
:visible="showDialog"
:close-on-click-modal="true"
:show-close="true"
:before-close="dialogClose"
:modal-append-to-body="false">
<div style="height: 100%;">
<iframe id="fileIframe" :src="iframeUrl" frameborder="0" width="100%"></iframe>
</div>
</el-dialog>
</div>
</div>
</template>
<script lang="ts">
import { Component, Vue, Prop, Watch } from 'vue-property-decorator';
import {Button, Row, Col, Link, Icon, Upload, Message, MessageBox} from 'element-ui';
import Axios from 'axios';
import {Subject, Unsubscribable} from 'rxjs';
import {Component, Vue, Prop, Watch} from 'vue-property-decorator';
import {Button, Row, Col, Link, Icon, Upload, Message, MessageBox} from 'element-ui';
import Axios from 'axios';
import {Subject, Unsubscribable} from 'rxjs';
@Component({})
export default class DiskFileUpload extends Vue {
@Component({})
export default class DiskFileUpload extends Vue {
/**
* 当前表单对象
......@@ -223,14 +245,33 @@ export default class DiskFileUpload extends Vue {
*/
public isCreate: boolean = true;
/**
* 是否显示自定义弹框
*/
public showDialog = false;
/**
* 嵌入自定义弹框中iframe的url
*/
public iframeUrl: any = '';
/**
* 关闭自定义弹框
*/
public dialogClose() {
this.showDialog = false;
this.iframeUrl = '';
let iframe:any = document.getElementById("fileIframe");
iframe.parentNode.removeChild("fileIframe");
}
/**
* 拼接上传路径
*
* @memberof DiskFileUpload
*/
public getAction() {
const uploadUrl = '/net-disk/upload/' + this.getFolder() + '?ownertype=' + this.getOwnertype() + '&ownerid=' + this.getOwnerid();
return uploadUrl;
return '/net-disk/upload/' + this.getFolder() + '?ownertype=' + this.getOwnertype() + '&ownerid=' + this.getOwnerid();
}
/**
......@@ -239,8 +280,7 @@ export default class DiskFileUpload extends Vue {
* @memberof DiskFileUpload
*/
public getFolder() {
const folder = typeof this.folder == "string" ? this.folder : JSON.stringify(this.folder);
return folder;
return typeof this.folder == "string" ? this.folder : JSON.stringify(this.folder);
}
/**
......@@ -249,8 +289,7 @@ export default class DiskFileUpload extends Vue {
* @memberof DiskFileUpload
*/
public getOwnertype() {
const ownertype = typeof this.ownertype == "string" ? this.ownertype : JSON.stringify(this.ownertype);
return ownertype;
return typeof this.ownertype == "string" ? this.ownertype : JSON.stringify(this.ownertype);
}
/**
......@@ -259,8 +298,7 @@ export default class DiskFileUpload extends Vue {
* @memberof DiskFileUpload
*/
public getOwnerid() {
const ownerid = typeof this.ownerid == "string" ? this.ownerid : JSON.stringify(this.ownerid);
return ownerid;
return typeof this.ownerid == "string" ? this.ownerid : JSON.stringify(this.ownerid);
}
/**
......@@ -268,7 +306,7 @@ export default class DiskFileUpload extends Vue {
*
* @memberof DiskFileUpload
*/
public created(){
public created() {
this.formStateEvent = this.formState.subscribe(($event: any) => {
// 表单加载完成
if (Object.is($event.type, 'load')) {
......@@ -307,9 +345,9 @@ export default class DiskFileUpload extends Vue {
*
* @memberof DiskFileUpload
*/
public getFiles(){
public getFiles() {
// 拼接url
let _this:any = this;
let _this: any = this;
const getUrl = '/net-disk/files/' + this.getFolder();
// 发送get请求
Axios.get(getUrl, {
......@@ -319,7 +357,7 @@ export default class DiskFileUpload extends Vue {
},
}).then(response => {
if (!response || response.status != 200) {
Message.error(_this.$t('components.diskFileUpload.getFileFailure')+'!');
Message.error(_this.$t('components.diskFileUpload.getFileFailure') + '!');
return;
}
// 返回的是一个jsonArray
......@@ -330,7 +368,7 @@ export default class DiskFileUpload extends Vue {
}
}
}).catch(error => {
Message.error(_this.$t('components.diskFileUpload.getFileFailure')+':'+ error);
Message.error(_this.$t('components.diskFileUpload.getFileFailure') + ':' + error);
});
}
......@@ -352,7 +390,7 @@ export default class DiskFileUpload extends Vue {
// 发送post请求
Axios.post(uploadUrl, formData, {timeout: 2000}).then(response => {
if (!response || response.status != 200) {
Message.error(_this.$t('components.diskFileUpload.loadFailure')+'!');
Message.error(_this.$t('components.diskFileUpload.loadFailure') + '!');
}
// 返回的是一个jsonobject
if (response.data) {
......@@ -369,7 +407,7 @@ export default class DiskFileUpload extends Vue {
}
}
}).catch(err => {
Message.error(_this.$t('components.diskFileUpload.loadFailure')+':'+ err);
Message.error(_this.$t('components.diskFileUpload.loadFailure') + ':' + err);
})
}
......@@ -393,7 +431,7 @@ export default class DiskFileUpload extends Vue {
responseType: 'arraybuffer',
}).then(response => {
if (!response || response.status != 200) {
Message.error(_this.$t('components.diskFileUpload.downloadFile')+'!');
Message.error(_this.$t('components.diskFileUpload.downloadFile') + '!');
return;
}
// 请求成功,后台返回的是一个文件流
......@@ -421,7 +459,7 @@ export default class DiskFileUpload extends Vue {
Message.error(_this.$t('components.diskFileUpload.downloadFile1'));
}
}).catch(error => {
Message.error(_this.$t('components.diskFileUpload.downloadFile')+':'+ error);
Message.error(_this.$t('components.diskFileUpload.downloadFile') + ':' + error);
});
}
......@@ -436,8 +474,9 @@ export default class DiskFileUpload extends Vue {
const id = typeof item.id == "string" ? item.id : JSON.stringify(item.id);
const name = typeof item.name == "string" ? item.name : JSON.stringify(item.name);
const previewUrl = '/net-disk/preview/' + this.getFolder() + '/' + id + '/' + name + '?authcode=' + item.authcode;
// 新窗口打开url
window.open(previewUrl);
// 自定义弹框打开url
this.showDialog = true;
this.iframeUrl = previewUrl;
}
/**
......@@ -451,7 +490,7 @@ export default class DiskFileUpload extends Vue {
const id = typeof item.id == "string" ? item.id : JSON.stringify(item.id);
const name = typeof item.name == "string" ? item.name : JSON.stringify(item.name);
const editUrl = '/net-disk/editview/' + this.getFolder() + '/' + id + '/' + name + '?authcode=' + item.authcode;
// 新窗口打开url
// TODO:暂时用window.open
window.open(editUrl);
}
......@@ -466,8 +505,9 @@ export default class DiskFileUpload extends Vue {
const id = typeof item.id == "string" ? item.id : JSON.stringify(item.id);
const name = typeof item.name == "string" ? item.name : JSON.stringify(item.name);
const ocrUrl = '/net-disk/ocrview/' + this.getFolder() + '/' + id + '/' + name + '?authcode=' + item.authcode;
// 新窗口打开url
window.open(ocrUrl);
// 自定义弹框打开url
this.showDialog = true;
this.iframeUrl = ocrUrl;
}
/**
......@@ -478,7 +518,7 @@ export default class DiskFileUpload extends Vue {
* @memberof DiskFileUpload
*/
public onRemove(item: any, index: number) {
let _this:any = this;
let _this: any = this;
if (item) {
MessageBox.confirm(_this.$t('components.diskFileUpload.deleteFile'), _this.$t('components.diskFileUpload.deleteFilePrompt'), {
confirmButtonText: _this.$t('components.diskFileUpload.true'),
......@@ -490,7 +530,7 @@ export default class DiskFileUpload extends Vue {
// 发送delete请求
Axios.delete(deleteUrl).then(response => {
if (!response || response.status != 200) {
Message.error(_this.$t('components.diskFileUpload.deleteFileFailure')+'!');
Message.error(_this.$t('components.diskFileUpload.deleteFileFailure') + '!');
}
// 从文件列表中删除
this.uploadFileList.splice(index, 1);
......@@ -501,7 +541,7 @@ export default class DiskFileUpload extends Vue {
}
}).catch(error => {
// 提示删除失败
Message.error(_this.$t('components.diskFileUpload.deleteFileFailure')+':'+ error);
Message.error(_this.$t('components.diskFileUpload.deleteFileFailure') + ':' + error);
});
});
}
......@@ -513,7 +553,7 @@ export default class DiskFileUpload extends Vue {
* @memberof DiskFileUpload
*/
public updateFileBatch(files: any, opt: any) {
let _this:any = this;
let _this: any = this;
// 拼接url
const updateUrl = '/net-disk/files/' + this.getFolder() + '?ownertype=' + this.getOwnertype() + "&ownerid=" + this.getOwnerid();
// requestBody参数
......@@ -529,63 +569,89 @@ export default class DiskFileUpload extends Vue {
timeout: 2000
}).then(response => {
if (!response || response.status != 200) {
Message.error(_this.$t('components.diskFileUpload.updateFailure')+'!');
Message.error(_this.$t('components.diskFileUpload.updateFailure') + '!');
return;
}
}).catch(error => {
Message.error(_this.$t('components.diskFileUpload.updateFailure')+':'+ error);
Message.error(_this.$t('components.diskFileUpload.updateFailure') + ':' + error);
});
}
}
}
</script>
<style lang="less">
#file-upload {
#file-upload {
width: auto;
height: auto;
border: 0px solid black;
}
}
#el-row {
#el-row {
border: 0px solid red;
width: 400px;
}
}
.withDrag {
.withDrag {
border: 0px solid grey;
width: 400px;
}
}
.withoutDrag {
.withoutDrag {
border: 0px solid grey;
width: 400px;
text-align: left;
padding-left: 0px;
padding-top: 0px;
margin-top: 0px;
}
}
.fileList {
.fileList {
width: 400px;
border: 0px solid grey;
margin-top: 0px;
}
}
.fileTitle {
.fileTitle {
text-align: left;
margin-left: 0px;
}
}
.fileTitle i {
.fileTitle i {
margin-right: 5px;
}
}
.fileMain {
.fileMain {
text-align: left;
margin-left: 0px;
margin-top: -10px;
}
}
.fileMain .el-link:nth-child(n+2) {
.fileMain .el-link:nth-child(n+2) {
margin-left: 10px;
}
}
.dialogDiv{
// el-dialog头部
.el-dialog__header{
height:40px;
}
// el-dialog面板
.el-dialog__wrapper {
height: 90vh;
overflow: visible;
}
// el-dialog
.el-dialog {
height: 100%;
}
// el-dailog内容
.el-dialog__body {
height: inherit;
}
#fileIframe{
height: calc(100% - 40px);
}
}
</style>
\ No newline at end of file
......@@ -14,40 +14,60 @@
<img class="el-upload-list__item-thumbnail" :src="file.url">
<span class="el-upload-list__item-actions">
<!--预览按钮-->
<span class="el-upload-list__item-preview" @click="onPreview(file)" :title="$t('components.diskImageUpload.preview')"
<span class="el-upload-list__item-preview" @click="onPreview(file)"
:title="$t('components.diskImageUpload.preview')"
v-show="showPreview">
<i class="el-icon-view"></i>
</span>
<!--OCR按钮-->
<span class="el-upload-list__item-delete" @click="onOcr(file)" :title="$t('components.diskImageUpload.OCRdiscern')"
<span class="el-upload-list__item-delete" @click="onOcr(file)"
:title="$t('components.diskImageUpload.OCRdiscern')"
v-show="showOcrview && (file.name.match(/^.+\.(gif|GIF|jpg|JPG|jpeg|JPEG|png|PNG|bmp|BMP)$/))">
<i class="el-icon-camera"></i>
</span>
<!--下载按钮-->
<span class="el-upload-list__item-delete" @click="onDownload(file)" :title="$t('components.diskImageUpload.load')">
<span class="el-upload-list__item-delete" @click="onDownload(file)"
:title="$t('components.diskImageUpload.load')">
<i class="el-icon-download"></i>
</span>
<!--删除按钮-->
<span class="el-upload-list__item-delete" @click="onRemove(file)" :title="$t('components.diskImageUpload.delete')">
<span class="el-upload-list__item-delete" @click="onRemove(file)"
:title="$t('components.diskImageUpload.delete')">
<i class="el-icon-delete"></i>
</span>
</span>
</div>
</el-upload>
<!-- 预览弹框 -->
<el-dialog :visible.sync="dialogVisible" :modal="false">
<img width="100%" :src="dialogImageUrl" alt="">
</el-dialog>
<!-- 自定义弹框 -->
<div class="dialogDiv">
<el-dialog
width="70%"
top="5vh"
:visible="showDialog"
:close-on-click-modal="true"
:show-close="true"
:before-close="dialogClose"
:modal-append-to-body="false">
<div style="height: 100%;">
<iframe id="fileIframe" :src="iframeUrl" frameborder="0" width="100%"></iframe>
</div>
</el-dialog>
</div>
</div>
</template>
<script lang="ts">
import {Component, Vue, Prop, Watch} from 'vue-property-decorator';
import {Message, MessageBox} from 'element-ui';
import Axios from 'axios';
import {Subject, Unsubscribable} from 'rxjs';
import {Component, Vue, Prop, Watch} from 'vue-property-decorator';
import {Message, MessageBox} from 'element-ui';
import Axios from 'axios';
import {Subject, Unsubscribable} from 'rxjs';
@Component({})
export default class DiskImageUplaod extends Vue {
@Component({})
export default class DiskImageUplaod extends Vue {
/**
* 当前表单对象
......@@ -211,6 +231,26 @@ export default class DiskImageUplaod extends Vue {
*/
public imageFileids: Array<any> = [];
/**
* 是否显示自定义弹框
*/
public showDialog = false;
/**
* 嵌入自定义弹框中iframe的url
*/
public iframeUrl: any = '';
/**
* 关闭自定义弹框
*/
public dialogClose() {
this.showDialog = false;
this.iframeUrl = '';
let iframe:any = document.getElementById("fileIframe");
iframe.parentNode.removeChild("fileIframe");
}
/**
* 拼接上传路径
*
......@@ -296,7 +336,7 @@ export default class DiskImageUplaod extends Vue {
*/
public getFiles() {
// 拼接url
let _this:any = this;
let _this: any = this;
const getUrl = '/net-disk/files/' + this.getFolder();
// 发送get请求
Axios.get(getUrl, {
......@@ -306,7 +346,7 @@ export default class DiskImageUplaod extends Vue {
},
}).then(response => {
if (!response || response.status != 200) {
Message.error(_this.$t('components.diskImageUpload.getImageFailure')+"!");
Message.error(_this.$t('components.diskImageUpload.getImageFailure') + "!");
return;
}
// 返回的是一个jsonArray
......@@ -322,7 +362,7 @@ export default class DiskImageUplaod extends Vue {
}
}
}).catch(error => {
Message.error(_this.$t('components.diskImageUpload.getImageFailure')+':'+ error);
Message.error(_this.$t('components.diskImageUpload.getImageFailure') + ':' + error);
});
}
......@@ -344,7 +384,7 @@ export default class DiskImageUplaod extends Vue {
responseType: 'blob',
}).then(res => {
if (!res || res.status != 200) {
Message.error(_this.$t('components.diskImageUpload.loadImageFailure')+'!');
Message.error(_this.$t('components.diskImageUpload.loadImageFailure') + '!');
}
// 请求成功,后台返回的是一个文件流
if (res.data) {
......@@ -369,7 +409,7 @@ export default class DiskImageUplaod extends Vue {
Message.error(_this.$t('components.diskImageUpload.loadImageFailure1'));
}
}).catch(error => {
Message.error(_this.$t('components.diskImageUpload.loadImageFailure')+':' + error);
Message.error(_this.$t('components.diskImageUpload.loadImageFailure') + ':' + error);
});
}
......@@ -404,7 +444,7 @@ export default class DiskImageUplaod extends Vue {
// 发送post请求
Axios.post(uploadUrl, formData, {timeout: 2000}).then(response => {
if (!response || response.status != 200) {
Message.error(_this.$t('components.diskImageUpload.uploadImageFailure')+"!");
Message.error(_this.$t('components.diskImageUpload.uploadImageFailure') + "!");
}
// 返回的是一个jsonobject
if (response.data) {
......@@ -419,7 +459,7 @@ export default class DiskImageUplaod extends Vue {
responseType: 'blob',
}).then(res => {
if (!res || res.status != 200) {
Message.error(_this.$t('components.diskImageUpload.loadImageFailure')+"!");
Message.error(_this.$t('components.diskImageUpload.loadImageFailure') + "!");
return;
}
// 请求成功,后台返回的是一个文件流
......@@ -454,11 +494,11 @@ export default class DiskImageUplaod extends Vue {
Message.error(_this.$t('components.diskImageUpload.loadImageFailure1'));
}
}).catch(error => {
Message.error(_this.$t('components.diskImageUpload.loadImageFailure')+':' + error);
Message.error(_this.$t('components.diskImageUpload.loadImageFailure') + ':' + error);
});
}
}).catch(err => {
Message.error(_this.$t('components.diskImageUpload.uploadImageFailure')+':' + err);
Message.error(_this.$t('components.diskImageUpload.uploadImageFailure') + ':' + err);
});
}
......@@ -488,8 +528,9 @@ export default class DiskImageUplaod extends Vue {
const id = typeof file.id == "string" ? file.id : JSON.stringify(file.id);
const name = typeof file.name == "string" ? file.name : JSON.stringify(file.name);
const ocrUrl = '/net-disk/ocrview/' + this.getFolder() + '/' + id + '/' + name + '?authcode=' + file.authcode;
// 新窗口打开url
window.open(ocrUrl);
// 自定义弹框打开url
this.showDialog = true;
this.iframeUrl = ocrUrl;
}
/**
......@@ -511,7 +552,7 @@ export default class DiskImageUplaod extends Vue {
responseType: 'blob',
}).then(response => {
if (!response || response.status != 200) {
Message.error(_this.$t('components.diskImageUpload.loadImageFailure2')+'!');
Message.error(_this.$t('components.diskImageUpload.loadImageFailure2') + '!');
return;
}
// 请求成功,后台返回的是一个文件流
......@@ -539,7 +580,7 @@ export default class DiskImageUplaod extends Vue {
Message.error(_this.$t('components.diskImageUpload.loadImageFailure3'));
}
}).catch(error => {
Message.error(_this.$t('components.diskImageUpload.loadImageFailure2')+':' + error);
Message.error(_this.$t('components.diskImageUpload.loadImageFailure2') + ':' + error);
});
}
......@@ -552,7 +593,7 @@ export default class DiskImageUplaod extends Vue {
public onRemove(file: any) {
let _this: any = this;
if (file) {
MessageBox.confirm(_this.$t('components.diskImageUpload.deleteFile'),_this.$t('components.diskImageUpload.deleteFilePrompt'), {
MessageBox.confirm(_this.$t('components.diskImageUpload.deleteFile'), _this.$t('components.diskImageUpload.deleteFilePrompt'), {
confirmButtonText: _this.$t('components.diskImageUpload.true'),
cancelButtonText: _this.$t('components.diskImageUpload.false'),
type: 'warning'
......@@ -565,7 +606,7 @@ export default class DiskImageUplaod extends Vue {
// 发送delete请求
Axios.delete(deleteUrl).then(response => {
if (!response || response.status != 200) {
Message.error(_this.$t('components.diskImageUpload.deleteImageFailure')+'!');
Message.error(_this.$t('components.diskImageUpload.deleteImageFailure') + '!');
}
// 从fileid数组中删除
this.imageFileids.splice(index, 1);
......@@ -578,7 +619,7 @@ export default class DiskImageUplaod extends Vue {
}
}).catch(error => {
// 提示删除失败
Message.error(_this.$t('components.diskImageUpload.deleteImageFailure')+':' + error);
Message.error(_this.$t('components.diskImageUpload.deleteImageFailure') + ':' + error);
});
}
});
......@@ -608,18 +649,43 @@ export default class DiskImageUplaod extends Vue {
timeout: 2000
}).then(response => {
if (!response || response.status != 200) {
Message.error(_this.$t('components.diskImageUpload.updateFailure')+'!');
Message.error(_this.$t('components.diskImageUpload.updateFailure') + '!');
return;
}
}).catch(error => {
Message.error(_this.$t('components.diskImageUpload.updateFailure')+':' + error);
Message.error(_this.$t('components.diskImageUpload.updateFailure') + ':' + error);
});
}
}
}
</script>
<style scoped>
<style lang="less">
.dialogDiv {
// el-dialog头部
.el-dialog__header {
height: 40px;
}
// el-dialog面板
.el-dialog__wrapper {
height: 90vh;
overflow: visible;
}
// el-dialog
.el-dialog {
height: 100%;
}
// el-dailog内容
.el-dialog__body {
height: inherit;
}
#fileIframe {
height: calc(100% - 40px);
}
}
</style>
\ No newline at end of file
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册