|
@ -1,7 +1,6 @@
|
|
|
<template>
|
|
|
<a-spin :spinning="cardLoading">
|
|
|
<a-card :bordered="false">
|
|
|
|
|
|
<div class="table-page-search-wrapper" v-if="hasPerm('sysFileInfo:page')">
|
|
|
<a-form layout="inline">
|
|
|
<a-row :gutter="48">
|
|
@ -16,7 +15,6 @@
|
|
|
<a-form-item label="文件仓库">
|
|
|
<a-input v-model="queryParam.fileBucket" placeholder="请输入文件仓库"/>
|
|
|
</a-form-item>
|
|
|
|
|
|
</a-col>
|
|
|
<template v-if="advanced">
|
|
|
<a-col :md="8" :sm="24">
|
|
@ -38,9 +36,9 @@
|
|
|
</a-row>
|
|
|
</a-form>
|
|
|
</div>
|
|
|
|
|
|
<div class="table-operator" v-if="hasPerm('sysFileInfo:upload')">
|
|
|
<a-upload
|
|
|
v-if="hasPerm('sysFileInfo:upload')"
|
|
|
name="file"
|
|
|
:multiple="true"
|
|
|
:customRequest="customRequest"
|
|
@ -49,63 +47,59 @@
|
|
|
<a-button> <a-icon type="upload" />上传文件</a-button>
|
|
|
</a-upload>
|
|
|
</div>
|
|
|
|
|
|
<s-table
|
|
|
ref="table"
|
|
|
size="default"
|
|
|
:columns="columns"
|
|
|
:data="loadData"
|
|
|
:alert="true"
|
|
|
:rowKey="(record) => record.id"
|
|
|
:rowSelection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"
|
|
|
>
|
|
|
<span slot="fileLocation" slot-scope="text">
|
|
|
{{ fileLocationFilter(text) }}
|
|
|
</span>
|
|
|
|
|
|
<span slot="fileSuffix" slot-scope="text">
|
|
|
<a-tag color="blue">{{ text }}</a-tag>
|
|
|
</span>
|
|
|
|
|
|
<span slot="action" slot-scope="text, record">
|
|
|
|
|
|
<a v-if="hasPerm('sysFileInfo:download')" @click="sysFileInfoDownload(record)">下载</a>
|
|
|
<a-divider type="vertical" v-if="hasPerm('sysFileInfo:download') & hasPerm('sysFileInfo:detail')"/>
|
|
|
<a v-if="hasPerm('sysFileInfo:detail')" @click="$refs.detailForm.detail(record)">详情</a>
|
|
|
<a-divider type="vertical" v-if="hasPerm('sysFileInfo:detail') & hasPerm('sysFileInfo:delete')"/>
|
|
|
<a-popconfirm v-if="hasPerm('sysFileInfo:delete')" placement="topRight" title="确认删除?" @confirm="() => sysFileInfoDelete(record)">
|
|
|
<a>删除</a>
|
|
|
</a-popconfirm>
|
|
|
<a-divider type="vertical" v-if="(hasPerm('sysFileInfo:preview') & record.fileSuffix === 'png' || record.fileSuffix === 'jpeg' || record.fileSuffix === 'jpg'|| record.fileSuffix === 'gif'|| record.fileSuffix === 'tif' || record.fileSuffix === 'bmp' ) & hasPerm('sysFileInfo:delete')"/>
|
|
|
<a v-if="(hasPerm('sysFileInfo:preview') & record.fileSuffix === 'png' || record.fileSuffix === 'jpeg'|| record.fileSuffix === 'jpg'|| record.fileSuffix === 'gif'|| record.fileSuffix === 'tif' || record.fileSuffix === 'bmp' )" @click="$refs.previewForm.preview(record)">预览</a>
|
|
|
</span>
|
|
|
|
|
|
</s-table>
|
|
|
|
|
|
<detail-form ref="detailForm" @ok="handleOk" />
|
|
|
<preview-form ref="previewForm"/>
|
|
|
|
|
|
<s-table
|
|
|
ref="table"
|
|
|
size="default"
|
|
|
:columns="columns"
|
|
|
:data="loadData"
|
|
|
:alert="true"
|
|
|
:rowKey="(record) => record.id"
|
|
|
:rowSelection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"
|
|
|
>
|
|
|
<span slot="fileOriginName" slot-scope="text">
|
|
|
<ellipsis :length="10" tooltip>{{text}}</ellipsis>
|
|
|
</span>
|
|
|
<span slot="fileObjectName" slot-scope="text">
|
|
|
<ellipsis :length="10" tooltip>{{text}}</ellipsis>
|
|
|
</span>
|
|
|
<span slot="fileLocation" slot-scope="text">
|
|
|
{{ fileLocationFilter(text) }}
|
|
|
</span>
|
|
|
<span slot="fileSuffix" slot-scope="text">
|
|
|
<a-tag color="blue">{{ text }}</a-tag>
|
|
|
</span>
|
|
|
<span slot="action" slot-scope="text, record">
|
|
|
<a v-if="hasPerm('sysFileInfo:download')" @click="sysFileInfoDownload(record)">下载</a>
|
|
|
<a-divider type="vertical" v-if="hasPerm('sysFileInfo:download') & hasPerm('sysFileInfo:detail')"/>
|
|
|
<a v-if="hasPerm('sysFileInfo:detail')" @click="$refs.detailForm.detail(record)">详情</a>
|
|
|
<a-divider type="vertical" v-if="hasPerm('sysFileInfo:detail') & hasPerm('sysFileInfo:delete')"/>
|
|
|
<a-popconfirm v-if="hasPerm('sysFileInfo:delete')" placement="topRight" title="确认删除?" @confirm="() => sysFileInfoDelete(record)">
|
|
|
<a>删除</a>
|
|
|
</a-popconfirm>
|
|
|
<a-divider type="vertical" v-if="(hasPerm('sysFileInfo:preview') & record.fileSuffix === 'png' || record.fileSuffix === 'jpeg' || record.fileSuffix === 'jpg'|| record.fileSuffix === 'gif'|| record.fileSuffix === 'tif' || record.fileSuffix === 'bmp' ) & hasPerm('sysFileInfo:delete')"/>
|
|
|
<a v-if="(hasPerm('sysFileInfo:preview') & record.fileSuffix === 'png' || record.fileSuffix === 'jpeg'|| record.fileSuffix === 'jpg'|| record.fileSuffix === 'gif'|| record.fileSuffix === 'tif' || record.fileSuffix === 'bmp' )" @click="$refs.previewForm.preview(record)">预览</a>
|
|
|
</span>
|
|
|
</s-table>
|
|
|
<detail-form ref="detailForm" @ok="handleOk" v-if="hasPerm('sysFileInfo:detail')"/>
|
|
|
<preview-form ref="previewForm" v-if="hasPerm('sysFileInfo:preview')"/>
|
|
|
</a-card>
|
|
|
</a-spin>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
import { STable } from '@/components'
|
|
|
import { STable,Ellipsis } from '@/components'
|
|
|
import { sysDictTypeDropDown } from '@/api/modular/system/dictManage'
|
|
|
import { sysFileInfoPage ,sysFileInfoDelete ,sysFileInfoUpload ,sysFileInfoDownload} from '@/api/modular/system/fileManage'
|
|
|
import detailForm from './detailForm'
|
|
|
import previewForm from './previewForm'
|
|
|
|
|
|
export default {
|
|
|
components: {
|
|
|
STable,
|
|
|
Ellipsis,
|
|
|
detailForm,
|
|
|
previewForm
|
|
|
},
|
|
|
|
|
|
data () {
|
|
|
return {
|
|
|
|
|
|
// 高级搜索 展开/关闭
|
|
|
advanced: false,
|
|
|
// 查询参数
|
|
@ -123,7 +117,8 @@
|
|
|
},
|
|
|
{
|
|
|
title: '文件名称',
|
|
|
dataIndex: 'fileOriginName'
|
|
|
dataIndex: 'fileOriginName',
|
|
|
scopedSlots: { customRender: 'fileOriginName' },
|
|
|
},
|
|
|
{
|
|
|
title: '文件后缀',
|
|
@ -136,7 +131,8 @@
|
|
|
},
|
|
|
{
|
|
|
title: '唯一标识id',
|
|
|
dataIndex: 'fileObjectName'
|
|
|
dataIndex: 'fileObjectName',
|
|
|
scopedSlots: { customRender: 'fileObjectName' },
|
|
|
},
|
|
|
|
|
|
],
|
|
@ -150,11 +146,8 @@
|
|
|
fileLocationDictTypeDropDown:[],
|
|
|
selectedRowKeys: [],
|
|
|
selectedRows: [],
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
},
|
|
|
|
|
|
created(){
|
|
|
this.sysDictTypeDropDown()
|
|
|
if(this.hasPerm('sysPos:edit') || this.hasPerm('sysPos:delete')){
|
|
@ -166,16 +159,13 @@
|
|
|
})
|
|
|
}
|
|
|
},
|
|
|
|
|
|
methods: {
|
|
|
|
|
|
fileLocationFilter (fileLocation) {
|
|
|
const fileLocation_value = this.fileLocationDictTypeDropDown.filter(item => item.code == fileLocation)
|
|
|
if(fileLocation_value.length>0){
|
|
|
return fileLocation_value[0].value
|
|
|
}
|
|
|
},
|
|
|
|
|
|
/**
|
|
|
* 获取字典数据
|
|
|
*/
|
|
@ -184,7 +174,6 @@
|
|
|
this.fileLocationDictTypeDropDown=res.data
|
|
|
})
|
|
|
},
|
|
|
|
|
|
/**
|
|
|
* 下载文件(所有文件)
|
|
|
*/
|
|
@ -215,8 +204,6 @@
|
|
|
document.body.removeChild(downloadElement); //下载完成移除元素
|
|
|
window.URL.revokeObjectURL(href);
|
|
|
},
|
|
|
|
|
|
|
|
|
sysFileInfoDelete(record){
|
|
|
sysFileInfoDelete(record).then((res)=>{
|
|
|
if(res.success) {
|
|
@ -229,28 +216,24 @@
|
|
|
this.$message.error('删除错误:'+err.message)
|
|
|
})
|
|
|
},
|
|
|
|
|
|
toggleAdvanced () {
|
|
|
this.advanced = !this.advanced
|
|
|
},
|
|
|
|
|
|
/**
|
|
|
* 上传文件
|
|
|
*/
|
|
|
customRequest(data){
|
|
|
const formData = new FormData()
|
|
|
formData.append('file', data.file)
|
|
|
sysFileInfoUpload(formData).then((res) => {
|
|
|
if (res.success) {
|
|
|
this.$message.success('上传成功');
|
|
|
this.$refs.table.refresh()
|
|
|
} else {
|
|
|
this.$message.error('上传失败:' + res.message);
|
|
|
}
|
|
|
})
|
|
|
const formData = new FormData()
|
|
|
formData.append('file', data.file)
|
|
|
sysFileInfoUpload(formData).then((res) => {
|
|
|
if (res.success) {
|
|
|
this.$message.success('上传成功');
|
|
|
this.$refs.table.refresh()
|
|
|
} else {
|
|
|
this.$message.error('上传失败:' + res.message);
|
|
|
}
|
|
|
})
|
|
|
},
|
|
|
|
|
|
|
|
|
handleOk () {
|
|
|
this.$refs.table.refresh()
|
|
|
},
|
|
@ -259,10 +242,8 @@
|
|
|
this.selectedRows = selectedRows
|
|
|
}
|
|
|
}
|
|
|
|
|
|
}
|
|
|
</script>
|
|
|
|
|
|
<style lang="less">
|
|
|
.table-operator {
|
|
|
margin-bottom: 18px;
|
|
@ -270,5 +251,4 @@
|
|
|
button {
|
|
|
margin-right: 8px;
|
|
|
}
|
|
|
|
|
|
</style>
|