|
|
@ -2,28 +2,49 @@ |
|
|
<div class="mod-oss"> |
|
|
<div class="mod-oss"> |
|
|
<el-form :inline="true" :model="dataForm"> |
|
|
<el-form :inline="true" :model="dataForm"> |
|
|
<el-form-item> |
|
|
<el-form-item> |
|
|
<el-button type="primary" @click="configHandle()">云存储配置</el-button> |
|
|
|
|
|
<el-button type="primary" @click="uploadHandle()">上传文件</el-button> |
|
|
|
|
|
|
|
|
<el-input v-model="dataForm.fileName"></el-input> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
<el-form-item> |
|
|
|
|
|
<el-button @click="getDataList()">查询</el-button> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
<el-form-item> |
|
|
|
|
|
<Upload @refreshDataList="getDataList"></Upload> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
<el-form-item> |
|
|
<el-button type="danger" @click="deleteHandle()" :disabled="dataListSelections.length <= 0">批量删除</el-button> |
|
|
<el-button type="danger" @click="deleteHandle()" :disabled="dataListSelections.length <= 0">批量删除</el-button> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
</el-form> |
|
|
</el-form> |
|
|
<el-table |
|
|
<el-table |
|
|
:data="dataList" |
|
|
:data="dataList" |
|
|
border |
|
|
border |
|
|
|
|
|
:height="tableHeight" |
|
|
v-loading="dataListLoading" |
|
|
v-loading="dataListLoading" |
|
|
@selection-change="selectionChangeHandle" |
|
|
@selection-change="selectionChangeHandle" |
|
|
style="width: 100%;"> |
|
|
style="width: 100%;"> |
|
|
<el-table-column type="selection" header-align="center" align="center" width="50"></el-table-column> |
|
|
<el-table-column type="selection" header-align="center" align="center" width="50"></el-table-column> |
|
|
|
|
|
<el-table-column |
|
|
|
|
|
prop="fileName" |
|
|
|
|
|
header-align="center" |
|
|
|
|
|
align="left" |
|
|
|
|
|
label="文件名"> |
|
|
|
|
|
</el-table-column> |
|
|
<el-table-column |
|
|
<el-table-column |
|
|
prop="url" |
|
|
prop="url" |
|
|
header-align="center" |
|
|
header-align="center" |
|
|
align="center" |
|
|
|
|
|
|
|
|
align="left" |
|
|
label="URL地址"> |
|
|
label="URL地址"> |
|
|
</el-table-column> |
|
|
</el-table-column> |
|
|
|
|
|
<el-table-column |
|
|
|
|
|
prop="createdBy" |
|
|
|
|
|
header-align="center" |
|
|
|
|
|
align="left" |
|
|
|
|
|
width="180" |
|
|
|
|
|
label="创建人"> |
|
|
|
|
|
</el-table-column> |
|
|
<el-table-column |
|
|
<el-table-column |
|
|
prop="createDate" |
|
|
prop="createDate" |
|
|
header-align="center" |
|
|
header-align="center" |
|
|
align="center" |
|
|
|
|
|
|
|
|
align="left" |
|
|
width="180" |
|
|
width="180" |
|
|
label="创建时间"> |
|
|
label="创建时间"> |
|
|
</el-table-column> |
|
|
</el-table-column> |
|
|
@ -35,7 +56,7 @@ |
|
|
label="操作"> |
|
|
label="操作"> |
|
|
<template slot-scope="scope"> |
|
|
<template slot-scope="scope"> |
|
|
<a type="text" size="small" @click="deleteHandle(scope.row.id)">删除</a> |
|
|
<a type="text" size="small" @click="deleteHandle(scope.row.id)">删除</a> |
|
|
<a @click="downloadFile(scope.row.fileName, scope.row.url)" >下载</a> |
|
|
|
|
|
|
|
|
<a @click="fileDownload(scope.row)">下载</a> |
|
|
</template> |
|
|
</template> |
|
|
</el-table-column> |
|
|
</el-table-column> |
|
|
</el-table> |
|
|
</el-table> |
|
|
@ -48,20 +69,22 @@ |
|
|
:total="totalPage" |
|
|
:total="totalPage" |
|
|
layout="total, sizes, prev, pager, next, jumper"> |
|
|
layout="total, sizes, prev, pager, next, jumper"> |
|
|
</el-pagination> |
|
|
</el-pagination> |
|
|
<!-- 弹窗, 云存储配置 --> |
|
|
|
|
|
<config v-if="configVisible" ref="config"></config> |
|
|
|
|
|
<!-- 弹窗, 上传文件 --> |
|
|
|
|
|
<upload v-if="uploadVisible" ref="upload" @refreshDataList="getDataList"></upload> |
|
|
|
|
|
</div> |
|
|
</div> |
|
|
</template> |
|
|
</template> |
|
|
|
|
|
|
|
|
<script> |
|
|
<script> |
|
|
import Config from './oss-config' |
|
|
|
|
|
import Upload from './oss-upload' |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import Upload from '../common/upload' |
|
|
|
|
|
import axios from "axios"; |
|
|
|
|
|
import Vue from "vue"; |
|
|
|
|
|
|
|
|
export default { |
|
|
export default { |
|
|
data() { |
|
|
data() { |
|
|
return { |
|
|
return { |
|
|
dataForm: {}, |
|
|
|
|
|
|
|
|
tableHeight: 0, |
|
|
|
|
|
dataForm: { |
|
|
|
|
|
fileName: '' |
|
|
|
|
|
}, |
|
|
dataList: [], |
|
|
dataList: [], |
|
|
pageIndex: 1, |
|
|
pageIndex: 1, |
|
|
pageSize: 20, |
|
|
pageSize: 20, |
|
|
@ -73,13 +96,48 @@ |
|
|
} |
|
|
} |
|
|
}, |
|
|
}, |
|
|
components: { |
|
|
components: { |
|
|
Config, |
|
|
|
|
|
Upload |
|
|
Upload |
|
|
}, |
|
|
}, |
|
|
activated() { |
|
|
activated() { |
|
|
this.getDataList() |
|
|
this.getDataList() |
|
|
|
|
|
|
|
|
|
|
|
}, |
|
|
|
|
|
mounted() { |
|
|
|
|
|
this.$nextTick(() => { |
|
|
|
|
|
this.tableHeight = window.innerHeight - 166; |
|
|
|
|
|
}) |
|
|
}, |
|
|
}, |
|
|
methods: { |
|
|
methods: { |
|
|
|
|
|
// 文件下载 |
|
|
|
|
|
fileDownload(row) { |
|
|
|
|
|
axios.get('/proxyApi/ftp/file/downFtpFile/' + row.id, { |
|
|
|
|
|
responseType: 'blob', |
|
|
|
|
|
headers: { |
|
|
|
|
|
'Content-Type': 'application/json', |
|
|
|
|
|
'token':Vue.cookie.get('token') |
|
|
|
|
|
} |
|
|
|
|
|
}).then(({data}) => { |
|
|
|
|
|
// 不限制文件下载类型 |
|
|
|
|
|
const blob = new Blob([data], {type: "application/octet-stream"}) |
|
|
|
|
|
// 下载文件名称 |
|
|
|
|
|
const fileName = row.fileName |
|
|
|
|
|
// a标签下载 |
|
|
|
|
|
const linkNode = document.createElement('a') |
|
|
|
|
|
linkNode.download = fileName // a标签的download属性规定下载文件的名称 |
|
|
|
|
|
linkNode.style.display = 'none' |
|
|
|
|
|
linkNode.href = URL.createObjectURL(blob) // 生成一个Blob URL |
|
|
|
|
|
// if(val == 'Y'){ |
|
|
|
|
|
// this.pdfVisible = true |
|
|
|
|
|
// this.pdfUrl = linkNode.href |
|
|
|
|
|
// }else { |
|
|
|
|
|
document.body.appendChild(linkNode) |
|
|
|
|
|
linkNode.click() // 模拟在按钮上的一次鼠标单击 |
|
|
|
|
|
URL.revokeObjectURL(linkNode.href) // 释放URL 对象 |
|
|
|
|
|
document.body.removeChild(linkNode) |
|
|
|
|
|
// } |
|
|
|
|
|
}) |
|
|
|
|
|
}, |
|
|
|
|
|
|
|
|
downloadFile(fileName, data) { |
|
|
downloadFile(fileName, data) { |
|
|
if (!data) { |
|
|
if (!data) { |
|
|
return; |
|
|
return; |
|
|
@ -92,6 +150,7 @@ |
|
|
document.body.appendChild(link); |
|
|
document.body.appendChild(link); |
|
|
link.click(); |
|
|
link.click(); |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
// 获取数据列表 |
|
|
// 获取数据列表 |
|
|
getDataList() { |
|
|
getDataList() { |
|
|
this.dataListLoading = true |
|
|
this.dataListLoading = true |
|
|
@ -100,7 +159,8 @@ |
|
|
method: 'get', |
|
|
method: 'get', |
|
|
params: this.$http.adornParams({ |
|
|
params: this.$http.adornParams({ |
|
|
'page': this.pageIndex, |
|
|
'page': this.pageIndex, |
|
|
'limit': this.pageSize |
|
|
|
|
|
|
|
|
'limit': this.pageSize, |
|
|
|
|
|
'fileName': this.dataForm.fileName |
|
|
}) |
|
|
}) |
|
|
}).then(({data}) => { |
|
|
}).then(({data}) => { |
|
|
if (data && data.code === 0) { |
|
|
if (data && data.code === 0) { |
|
|
@ -128,26 +188,12 @@ |
|
|
selectionChangeHandle(val) { |
|
|
selectionChangeHandle(val) { |
|
|
this.dataListSelections = val |
|
|
this.dataListSelections = val |
|
|
}, |
|
|
}, |
|
|
// 云存储配置 |
|
|
|
|
|
configHandle () { |
|
|
|
|
|
this.configVisible = true |
|
|
|
|
|
this.$nextTick(() => { |
|
|
|
|
|
this.$refs.config.init() |
|
|
|
|
|
}) |
|
|
|
|
|
}, |
|
|
|
|
|
// 上传文件 |
|
|
|
|
|
uploadHandle () { |
|
|
|
|
|
this.uploadVisible = true |
|
|
|
|
|
this.$nextTick(() => { |
|
|
|
|
|
this.$refs.upload.init() |
|
|
|
|
|
}) |
|
|
|
|
|
}, |
|
|
|
|
|
// 删除 |
|
|
// 删除 |
|
|
deleteHandle(id) { |
|
|
deleteHandle(id) { |
|
|
var ids = id ? [id] : this.dataListSelections.map(item => { |
|
|
var ids = id ? [id] : this.dataListSelections.map(item => { |
|
|
return item.id |
|
|
return item.id |
|
|
}) |
|
|
}) |
|
|
this.$confirm(`确定对[id=${ids.join(',')}]进行[${id ? '删除' : '批量删除'}]操作?`, '提示', { |
|
|
|
|
|
|
|
|
this.$confirm(`确定进行删除操作?`, '提示', { |
|
|
confirmButtonText: '确定', |
|
|
confirmButtonText: '确定', |
|
|
cancelButtonText: '取消', |
|
|
cancelButtonText: '取消', |
|
|
type: 'warning' |
|
|
type: 'warning' |
|
|
@ -170,7 +216,8 @@ |
|
|
this.$message.error(data.msg) |
|
|
this.$message.error(data.msg) |
|
|
} |
|
|
} |
|
|
}) |
|
|
}) |
|
|
}).catch(() => {}) |
|
|
|
|
|
|
|
|
}).catch(() => { |
|
|
|
|
|
}) |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|