Parcourir la source

:sparkles: 添加新特性。文件管理

huangxutao il y a 6 ans
Parent
commit
faa97a5069

+ 56 - 0
src/api/admin/sys-file.js

@@ -0,0 +1,56 @@
+/*
+ *    Copyright (c) 2018-2025, lengleng All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * Neither the name of the pig4cloud.com developer nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ * Author: lengleng (wangiegie@gmail.com)
+ */
+
+import request from '@/router/axios'
+
+export function fetchList(query) {
+  return request({
+    url: '/admin/sysfile/page',
+    method: 'get',
+    params: query
+  })
+}
+
+export function addObj(obj) {
+  return request({
+    url: '/admin/sysfile',
+    method: 'post',
+    data: obj
+  })
+}
+
+export function getObj(id) {
+  return request({
+    url: '/admin/sysfile/' + id,
+    method: 'get'
+  })
+}
+
+export function delObj(id) {
+  return request({
+    url: '/admin/sysfile/' + id,
+    method: 'delete'
+  })
+}
+
+export function putObj(obj) {
+  return request({
+    url: '/admin/sysfile',
+    method: 'put',
+    data: obj
+  })
+}

+ 71 - 0
src/const/crud/admin/sys-file.js

@@ -0,0 +1,71 @@
+/*
+ *    Copyright (c) 2018-2025, lengleng All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * Neither the name of the pig4cloud.com developer nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ * Author: lengleng (wangiegie@gmail.com)
+ */
+
+export const tableOption = {
+  border: true,
+  index: true,
+  indexLabel: '序号',
+  stripe: true,
+  menuAlign: 'center',
+  align: 'center',
+  editBtn: false,
+  delBtn: false,
+  addBtn: false,
+  viewBtn:true,
+  column: [
+	  /*{
+      label: '编号',
+      prop: 'id'
+    },*/
+	  {
+      label: '文件名',
+      prop: 'name'
+    },
+	  /*{
+      label: '保存路径',
+      prop: 'path'
+    },
+	  {
+      label: '绝对路径',
+      prop: 'absolutePath'
+    },
+	  {
+      label: '上传服务器前缀地址',
+      prop: 'prefix'
+    },*/
+	  {
+      label: '原文件名',
+      prop: 'original'
+    },
+	  {
+      label: '后缀名',
+      prop: 'suffix'
+    },
+	  {
+      label: '文件类型',
+      prop: 'type'
+    },
+	  /*{
+      label: '文件大小',
+      prop: 'fileSize'
+    },*/
+	  {
+      label: '显示大小',
+      prop: 'displaySize'
+    },
+  ]
+}

+ 1 - 1
src/const/crud/daemon/sys-job.js

@@ -192,7 +192,7 @@ export const tableOption = {
           [{
             required: true,
             max: 200,
-            message: '请输入cron表达式',
+            message: '请输入2cron表达式',
             trigger: 'change'
           }]
     },

+ 171 - 0
src/views/admin/file/index.vue

@@ -0,0 +1,171 @@
+<!--
+  -    Copyright (c) 2018-2025, lengleng All rights reserved.
+  -
+  - Redistribution and use in source and binary forms, with or without
+  - modification, are permitted provided that the following conditions are met:
+  -
+  - Redistributions of source code must retain the above copyright notice,
+  - this list of conditions and the following disclaimer.
+  - Redistributions in binary form must reproduce the above copyright
+  - notice, this list of conditions and the following disclaimer in the
+  - documentation and/or other materials provided with the distribution.
+  - Neither the name of the pig4cloud.com developer nor the names of its
+  - contributors may be used to endorse or promote products derived from
+  - this software without specific prior written permission.
+  - Author: lengleng (wangiegie@gmail.com)
+  -->
+<template>
+    <div class="execution">
+        <basic-container>
+            <avue-crud ref="crud"
+                       :page="page"
+                       :data="tableData"
+                       :permission="permissionList"
+                       :table-loading="tableLoading"
+                       :option="tableOption"
+                       @on-load="getList"
+                       @search-change="searchChange"
+                       @refresh-change="refreshChange"
+                       @row-update="handleUpdate"
+                       @row-save="handleSave"
+                       @row-del="rowDel">
+            </avue-crud>
+        </basic-container>
+    </div>
+</template>
+
+<script>
+    import {
+        fetchList,
+        getObj,
+        addObj,
+        putObj,
+        delObj
+    } from '@/api/admin/sys-file'
+    import {
+        tableOption
+    } from '@/const/crud/admin/sys-file'
+    import {
+        mapGetters
+    } from 'vuex'
+
+    export default {
+        name: 'sysfile',
+        data() {
+            return {
+                tableData: [],
+                page: {
+                    total: 0, // 总页数
+                    currentPage: 1, // 当前页数
+                    pageSize: 20 // 每页显示多少条
+                },
+                tableLoading: false,
+                tableOption: tableOption
+            }
+        },
+    created() {
+    },
+    mounted: function () {
+    },
+        computed: {
+            ...mapGetters(['permissions']),
+            permissionList() {
+                return {
+                    addBtn: this.vaildData(this.permissions.admin_sysfile_add, false),
+                    delBtn: this.vaildData(this.permissions.admin_sysfile_del, true),
+                    editBtn: this.vaildData(this.permissions.admin_sysfile_edit, true)
+                };
+            }
+        },
+        methods: {
+            getList(page, params) {
+                this.tableLoading = true
+                fetchList(Object.assign({
+                    current: page.currentPage,
+                    size: page.pageSize
+                }, params)).then(response => {
+                    this.tableData = response.data.data.records
+                    this.page.total = response.data.data.total
+                    this.tableLoading = false
+                }).catch(() => {
+                    this.tableLoading=false
+                })
+            },
+            rowDel: function (row, index) {
+                var _this = this
+                this.$confirm('是否确认删除ID为' + row.id, '提示', {
+                    confirmButtonText: '确定',
+                    cancelButtonText: '取消',
+                    type: 'warning'
+                }).then(function () {
+                    return delObj(row.id)
+                }).then(data => {
+                    _this.tableData.splice(index, 1)
+                    _this.$message({
+                        showClose: true,
+                        message: '删除成功',
+                        type: 'success'
+                    })
+                    this.getList(this.page)
+                })
+            },
+            /**
+             * @title 数据更新
+             * @param row 为当前的数据
+             * @param index 为当前更新数据的行数
+             * @param done 为表单关闭函数
+             *
+             **/
+            handleUpdate: function (row, index, done,loading) {
+                putObj(row).then(data => {
+                    this.tableData.splice(index, 1, Object.assign({}, row))
+                    this.$message({
+                        showClose: true,
+                        message: '修改成功',
+                        type: 'success'
+                    })
+                    done()
+                    this.getList(this.page)
+                }).catch(() => {
+                    loading();
+                });
+            },
+            /**
+             * @title 数据添加
+             * @param row 为当前的数据
+             * @param done 为表单关闭函数
+             *
+             **/
+            handleSave: function (row, done,loading) {
+                addObj(row).then(data => {
+                    this.tableData.push(Object.assign({}, row))
+                    this.$message({
+                        showClose: true,
+                        message: '添加成功',
+                        type: 'success'
+                    })
+                    done()
+                    this.getList(this.page)
+                }).catch(() => {
+                    loading();
+                });
+            },
+            /**
+             * 搜索回调
+             */
+            searchChange(form) {
+                this.getList(this.page,  this.filterForm(form))
+            },
+            /**
+             * 刷新回调
+             */
+            refreshChange() {
+                this.getList(this.page)
+            }
+        }
+    }
+</script>
+
+<style lang="scss" scoped>
+</style>
+