|
|
@ -1,8 +1,22 @@
|
|
|
|
<template>
|
|
|
|
<template>
|
|
|
|
<anji-crud ref="listPage" :option="crudOption">
|
|
|
|
<anji-crud ref="listPage" :option="crudOption">
|
|
|
|
<template v-slot:buttonLeftOnTable>
|
|
|
|
<template v-slot:buttonLeftOnTable>
|
|
|
|
<el-upload class="el-upload" :action="uploadUrl" :headers="headers" :on-success="handleUpload" :on-error="handleUpload" :show-file-list="false" :limit="1">
|
|
|
|
<el-upload
|
|
|
|
<el-button type="primary" icon="el-icon" v-permission="'fileManage:upload'">文件上传</el-button>
|
|
|
|
ref="upload"
|
|
|
|
|
|
|
|
class="el-upload"
|
|
|
|
|
|
|
|
:action="uploadUrl"
|
|
|
|
|
|
|
|
:headers="headers"
|
|
|
|
|
|
|
|
:on-success="handleUpload"
|
|
|
|
|
|
|
|
:on-error="handleUpload"
|
|
|
|
|
|
|
|
:show-file-list="false"
|
|
|
|
|
|
|
|
:limit="1"
|
|
|
|
|
|
|
|
>
|
|
|
|
|
|
|
|
<el-button
|
|
|
|
|
|
|
|
type="primary"
|
|
|
|
|
|
|
|
icon="el-icon"
|
|
|
|
|
|
|
|
v-permission="'fileManage:upload'"
|
|
|
|
|
|
|
|
>文件上传</el-button
|
|
|
|
|
|
|
|
>
|
|
|
|
</el-upload>
|
|
|
|
</el-upload>
|
|
|
|
</template>
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
|
@ -12,173 +26,203 @@
|
|
|
|
</anji-crud>
|
|
|
|
</anji-crud>
|
|
|
|
</template>
|
|
|
|
</template>
|
|
|
|
<script>
|
|
|
|
<script>
|
|
|
|
import { fileList, fileAdd, fileDel, fileUpdate, fileDetail } from '@/api/file'
|
|
|
|
import { fileList, fileAdd, fileDel, fileUpdate, fileDetail } from "@/api/file";
|
|
|
|
import { getToken } from '@/utils/auth'
|
|
|
|
import { getToken } from "@/utils/auth";
|
|
|
|
export default {
|
|
|
|
export default {
|
|
|
|
name: 'File',
|
|
|
|
name: "File",
|
|
|
|
components: {
|
|
|
|
components: {
|
|
|
|
anjiCrud: require('@/components/AnjiPlus/anji-crud/anji-crud').default,
|
|
|
|
anjiCrud: require("@/components/AnjiPlus/anji-crud/anji-crud").default
|
|
|
|
},
|
|
|
|
},
|
|
|
|
data() {
|
|
|
|
data() {
|
|
|
|
return {
|
|
|
|
return {
|
|
|
|
selectedList: [],
|
|
|
|
selectedList: [],
|
|
|
|
uploadUrl: process.env.BASE_API + '/file/upload',
|
|
|
|
uploadUrl: process.env.BASE_API + "/file/upload",
|
|
|
|
crudOption: {
|
|
|
|
crudOption: {
|
|
|
|
// 使用菜单做为页面标题
|
|
|
|
// 使用菜单做为页面标题
|
|
|
|
title: '文件管理',
|
|
|
|
title: "文件管理",
|
|
|
|
// 详情页中输入框左边文字宽度
|
|
|
|
// 详情页中输入框左边文字宽度
|
|
|
|
labelWidth: '120px',
|
|
|
|
labelWidth: "120px",
|
|
|
|
// 查询表单条件
|
|
|
|
// 查询表单条件
|
|
|
|
queryFormFields: [
|
|
|
|
queryFormFields: [
|
|
|
|
{
|
|
|
|
{
|
|
|
|
inputType: 'input',
|
|
|
|
inputType: "input",
|
|
|
|
label: '文件路径',
|
|
|
|
label: "文件路径",
|
|
|
|
field: 'filePath',
|
|
|
|
field: "filePath"
|
|
|
|
},
|
|
|
|
}
|
|
|
|
],
|
|
|
|
],
|
|
|
|
// 操作按钮
|
|
|
|
// 操作按钮
|
|
|
|
buttons: {
|
|
|
|
buttons: {
|
|
|
|
query: {
|
|
|
|
query: {
|
|
|
|
api: fileList,
|
|
|
|
api: fileList,
|
|
|
|
permission: 'fileManage:query',
|
|
|
|
permission: "fileManage:query",
|
|
|
|
sort: 'create_time',
|
|
|
|
sort: "create_time",
|
|
|
|
order: 'DESC',
|
|
|
|
order: "DESC"
|
|
|
|
},
|
|
|
|
},
|
|
|
|
queryByPrimarykey: {
|
|
|
|
queryByPrimarykey: {
|
|
|
|
api: fileDetail,
|
|
|
|
api: fileDetail,
|
|
|
|
permission: 'fileManage:query',
|
|
|
|
permission: "fileManage:query"
|
|
|
|
},
|
|
|
|
},
|
|
|
|
add: {
|
|
|
|
add: {
|
|
|
|
api: fileAdd,
|
|
|
|
api: fileAdd,
|
|
|
|
permission: 'fileManage:upload',
|
|
|
|
permission: "fileManage:upload",
|
|
|
|
isShow: false,
|
|
|
|
isShow: false
|
|
|
|
},
|
|
|
|
},
|
|
|
|
delete: {
|
|
|
|
delete: {
|
|
|
|
api: fileDel,
|
|
|
|
api: fileDel,
|
|
|
|
permission: 'fileManage:delete',
|
|
|
|
permission: "fileManage:delete"
|
|
|
|
},
|
|
|
|
},
|
|
|
|
edit: {
|
|
|
|
edit: {
|
|
|
|
api: fileUpdate,
|
|
|
|
api: fileUpdate,
|
|
|
|
permission: 'fileManage:update',
|
|
|
|
permission: "fileManage:update",
|
|
|
|
isShow: false,
|
|
|
|
isShow: false
|
|
|
|
},
|
|
|
|
},
|
|
|
|
// 自定义按钮
|
|
|
|
// 自定义按钮
|
|
|
|
customButton: {
|
|
|
|
customButton: {
|
|
|
|
operationWidth: 100, // row自定义按钮表格宽度
|
|
|
|
operationWidth: 100 // row自定义按钮表格宽度
|
|
|
|
},
|
|
|
|
}
|
|
|
|
},
|
|
|
|
},
|
|
|
|
// 表格列
|
|
|
|
// 表格列
|
|
|
|
columns: [
|
|
|
|
columns: [
|
|
|
|
{
|
|
|
|
{
|
|
|
|
label: '',
|
|
|
|
label: "",
|
|
|
|
field: 'id',
|
|
|
|
field: "id",
|
|
|
|
primaryKey: true, // 根据主键查询详情或者根据主键删除时, 主键的
|
|
|
|
primaryKey: true, // 根据主键查询详情或者根据主键删除时, 主键的
|
|
|
|
tableHide: true, // 表格中不显示
|
|
|
|
tableHide: true, // 表格中不显示
|
|
|
|
editHide: true, // 编辑弹框中不显示
|
|
|
|
editHide: true // 编辑弹框中不显示
|
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
{
|
|
|
|
// 以下为表格的配置
|
|
|
|
// 以下为表格的配置
|
|
|
|
label: '图片缩略图', // 列名称,必填
|
|
|
|
label: "图片缩略图", // 列名称,必填
|
|
|
|
field: 'urlPath', // 字段名,必填
|
|
|
|
field: "urlPath", // 字段名,必填
|
|
|
|
columnType: 'imgPreview', // 图片 不设置默认text
|
|
|
|
columnType: "imgPreview", // 图片 不设置默认text
|
|
|
|
editHide: true, // 编辑弹框中不显示
|
|
|
|
editHide: true, // 编辑弹框中不显示
|
|
|
|
// 以下为编辑查看弹框的配置
|
|
|
|
// 以下为编辑查看弹框的配置
|
|
|
|
// inputType: 'input', // 编辑查看表单组件类型 input anji-select
|
|
|
|
// inputType: 'input', // 编辑查看表单组件类型 input anji-select
|
|
|
|
|
|
|
|
|
|
|
|
placeholder: '',
|
|
|
|
placeholder: "",
|
|
|
|
disabled: false,
|
|
|
|
disabled: false
|
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
{
|
|
|
|
label: '文件标识', // 文件标识
|
|
|
|
label: "文件标识", // 文件标识
|
|
|
|
placeholder: '',
|
|
|
|
placeholder: "",
|
|
|
|
field: 'fileId',
|
|
|
|
field: "fileId",
|
|
|
|
editField: 'fileId',
|
|
|
|
editField: "fileId",
|
|
|
|
tableHide: true, // 表格中不显示
|
|
|
|
tableHide: true, // 表格中不显示
|
|
|
|
inputType: 'input',
|
|
|
|
inputType: "input",
|
|
|
|
rules: [{ min: 1, max: 64, message: '不超过64个字符', trigger: 'blur' }],
|
|
|
|
rules: [
|
|
|
|
disabled: false,
|
|
|
|
{ min: 1, max: 64, message: "不超过64个字符", trigger: "blur" }
|
|
|
|
|
|
|
|
],
|
|
|
|
|
|
|
|
disabled: false
|
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
{
|
|
|
|
label: '文件类型', // 文件路径
|
|
|
|
label: "文件类型", // 文件路径
|
|
|
|
placeholder: '',
|
|
|
|
placeholder: "",
|
|
|
|
field: 'fileType',
|
|
|
|
field: "fileType",
|
|
|
|
editField: 'fileType',
|
|
|
|
editField: "fileType",
|
|
|
|
inputType: 'input',
|
|
|
|
inputType: "input",
|
|
|
|
rules: [{ min: 1, max: 1024, message: '不超过1024个字符', trigger: 'blur' }],
|
|
|
|
rules: [
|
|
|
|
disabled: false,
|
|
|
|
{
|
|
|
|
|
|
|
|
min: 1,
|
|
|
|
|
|
|
|
max: 1024,
|
|
|
|
|
|
|
|
message: "不超过1024个字符",
|
|
|
|
|
|
|
|
trigger: "blur"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
],
|
|
|
|
|
|
|
|
disabled: false
|
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
{
|
|
|
|
label: '文件路径', // 文件路径
|
|
|
|
label: "文件路径", // 文件路径
|
|
|
|
placeholder: '',
|
|
|
|
placeholder: "",
|
|
|
|
field: 'filePath',
|
|
|
|
field: "filePath",
|
|
|
|
editField: 'filePath',
|
|
|
|
editField: "filePath",
|
|
|
|
inputType: 'input',
|
|
|
|
inputType: "input",
|
|
|
|
rules: [{ min: 1, max: 1024, message: '不超过1024个字符', trigger: 'blur' }],
|
|
|
|
rules: [
|
|
|
|
disabled: false,
|
|
|
|
{
|
|
|
|
|
|
|
|
min: 1,
|
|
|
|
|
|
|
|
max: 1024,
|
|
|
|
|
|
|
|
message: "不超过1024个字符",
|
|
|
|
|
|
|
|
trigger: "blur"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
],
|
|
|
|
|
|
|
|
disabled: false
|
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
{
|
|
|
|
label: 'url路径', // url路径
|
|
|
|
label: "url路径", // url路径
|
|
|
|
placeholder: '',
|
|
|
|
placeholder: "",
|
|
|
|
field: 'urlPath',
|
|
|
|
field: "urlPath",
|
|
|
|
editField: 'urlPath',
|
|
|
|
editField: "urlPath",
|
|
|
|
inputType: 'input',
|
|
|
|
inputType: "input",
|
|
|
|
rules: [{ min: 1, max: 1024, message: '不超过1024个字符', trigger: 'blur' }],
|
|
|
|
rules: [
|
|
|
|
disabled: false,
|
|
|
|
{
|
|
|
|
|
|
|
|
min: 1,
|
|
|
|
|
|
|
|
max: 1024,
|
|
|
|
|
|
|
|
message: "不超过1024个字符",
|
|
|
|
|
|
|
|
trigger: "blur"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
],
|
|
|
|
|
|
|
|
disabled: false
|
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
{
|
|
|
|
label: '内容说明', // 内容说明
|
|
|
|
label: "内容说明", // 内容说明
|
|
|
|
placeholder: '',
|
|
|
|
placeholder: "",
|
|
|
|
field: 'fileInstruction',
|
|
|
|
field: "fileInstruction",
|
|
|
|
editField: 'fileInstruction',
|
|
|
|
editField: "fileInstruction",
|
|
|
|
inputType: 'input',
|
|
|
|
inputType: "input",
|
|
|
|
rules: [{ min: 1, max: 1024, message: '不超过1024个字符', trigger: 'blur' }],
|
|
|
|
rules: [
|
|
|
|
disabled: false,
|
|
|
|
{
|
|
|
|
|
|
|
|
min: 1,
|
|
|
|
|
|
|
|
max: 1024,
|
|
|
|
|
|
|
|
message: "不超过1024个字符",
|
|
|
|
|
|
|
|
trigger: "blur"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
],
|
|
|
|
|
|
|
|
disabled: false
|
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
{
|
|
|
|
label: '创建人',
|
|
|
|
label: "创建人",
|
|
|
|
field: 'createByView',
|
|
|
|
field: "createByView",
|
|
|
|
columnType: 'expand', // 表格中放在可展开行中
|
|
|
|
columnType: "expand", // 表格中放在可展开行中
|
|
|
|
|
|
|
|
|
|
|
|
inputType: 'input', // 编辑和查看详情中显示的input
|
|
|
|
inputType: "input", // 编辑和查看详情中显示的input
|
|
|
|
disabled: true, // 编辑和查看详情中不可编辑
|
|
|
|
disabled: true // 编辑和查看详情中不可编辑
|
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
{
|
|
|
|
label: '创建时间',
|
|
|
|
label: "创建时间",
|
|
|
|
field: 'createTime',
|
|
|
|
field: "createTime",
|
|
|
|
columnType: 'expand',
|
|
|
|
columnType: "expand",
|
|
|
|
|
|
|
|
|
|
|
|
inputType: 'input',
|
|
|
|
inputType: "input",
|
|
|
|
disabled: true,
|
|
|
|
disabled: true
|
|
|
|
},
|
|
|
|
|
|
|
|
],
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
]
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
};
|
|
|
|
},
|
|
|
|
},
|
|
|
|
computed: {
|
|
|
|
computed: {
|
|
|
|
headers() {
|
|
|
|
headers() {
|
|
|
|
return {
|
|
|
|
return {
|
|
|
|
Authorization: getToken(), // 直接从本地获取token就行
|
|
|
|
Authorization: getToken() // 直接从本地获取token就行
|
|
|
|
|
|
|
|
};
|
|
|
|
}
|
|
|
|
}
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
created() {},
|
|
|
|
created() {},
|
|
|
|
methods: {
|
|
|
|
methods: {
|
|
|
|
// 上传成功的回调
|
|
|
|
// 上传成功的回调
|
|
|
|
handleUpload(response) {
|
|
|
|
handleUpload(response) {
|
|
|
|
console.log(this)
|
|
|
|
this.$refs.upload.clearFiles();
|
|
|
|
// 触发查询按钮
|
|
|
|
// 触发查询按钮
|
|
|
|
this.$refs.listPage.handleQueryForm()
|
|
|
|
this.$refs.listPage.handleQueryForm();
|
|
|
|
},
|
|
|
|
},
|
|
|
|
handleError() {},
|
|
|
|
handleError() {},
|
|
|
|
async downloadFile(row) {
|
|
|
|
async downloadFile(row) {
|
|
|
|
window.open(row.urlPath)
|
|
|
|
window.open(row.urlPath);
|
|
|
|
},
|
|
|
|
},
|
|
|
|
customButtom(val) {
|
|
|
|
customButtom(val) {
|
|
|
|
this.downloadFile(val.msg)
|
|
|
|
this.downloadFile(val.msg);
|
|
|
|
},
|
|
|
|
}
|
|
|
|
},
|
|
|
|
}
|
|
|
|
}
|
|
|
|
};
|
|
|
|
</script>
|
|
|
|
</script>
|
|
|
|
<style scoped lang="scss">
|
|
|
|
<style scoped lang="scss">
|
|
|
|
.el-upload {
|
|
|
|
.el-upload {
|
|
|
|