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