From c7e313032056ea83f01289e69324b2bac2988aec Mon Sep 17 00:00:00 2001 From: paidaxing444 <12qwaszx> Date: Wed, 12 Aug 2020 18:02:58 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=87=E4=BB=B6=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ruoyi-ui/src/views/benyi/files/index.vue | 349 ++++++++++++++++++ .../benyi/controller/ByFilesController.java | 4 + 2 files changed, 353 insertions(+) create mode 100644 ruoyi-ui/src/views/benyi/files/index.vue diff --git a/ruoyi-ui/src/views/benyi/files/index.vue b/ruoyi-ui/src/views/benyi/files/index.vue new file mode 100644 index 000000000..1d8557c9d --- /dev/null +++ b/ruoyi-ui/src/views/benyi/files/index.vue @@ -0,0 +1,349 @@ +<template> + <div class="app-container"> + <el-form :model="queryParams" ref="queryForm" :inline="true" label-width="68px"> + <el-form-item label="文件名称" prop="name"> + <el-input + v-model="queryParams.name" + placeholder="请输入文件名称" + clearable + size="small" + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label="所属类型" prop="type"> + <el-select v-model="queryParams.type" placeholder="请选择文件所属类型" clearable size="small"> + <el-option + v-for="dict in typeOptions" + :key="dict.dictValue" + :label="dict.dictLabel" + :value="dict.dictValue" + /> + </el-select> + </el-form-item> + <el-form-item> + <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button> + <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button> + </el-form-item> + </el-form> + + <el-row :gutter="10" class="mb8"> + <el-col :span="1.5"> + <el-button + type="primary" + icon="el-icon-plus" + size="mini" + @click="handleAdd" + v-hasPermi="['benyi:files:add']" + >新增</el-button> + </el-col> + <el-col :span="1.5"> + <el-button + type="success" + icon="el-icon-edit" + size="mini" + :disabled="single" + @click="handleUpdate" + v-hasPermi="['benyi:files:edit']" + >修改</el-button> + </el-col> + <el-col :span="1.5"> + <el-button + type="danger" + icon="el-icon-delete" + size="mini" + :disabled="multiple" + @click="handleDelete" + v-hasPermi="['benyi:files:remove']" + >删除</el-button> + </el-col> + </el-row> + + <el-table v-loading="loading" :data="filesList" @selection-change="handleSelectionChange"> + <el-table-column type="selection" width="55" align="center" /> + <el-table-column label="编号" align="center" prop="id" /> + <el-table-column label="文件名称" align="center" prop="name" /> + <el-table-column label="文件类型" align="center" prop="filetype" /> + <el-table-column label="文件所属类型" align="center" prop="type" :formatter="typeFormat" /> + <el-table-column label="操作" align="center" class-name="small-padding fixed-width"> + <template slot-scope="scope"> + <el-button + size="mini" + type="text" + icon="el-icon-edit" + @click="handleUpdate(scope.row)" + v-hasPermi="['benyi:files:edit']" + >修改</el-button> + <el-button + size="mini" + type="text" + icon="el-icon-delete" + @click="handleDelete(scope.row)" + v-hasPermi="['benyi:files:remove']" + >删除</el-button> + </template> + </el-table-column> + </el-table> + + <pagination + v-show="total>0" + :total="total" + :page.sync="queryParams.pageNum" + :limit.sync="queryParams.pageSize" + @pagination="getList" + /> + + <!-- 添加或修改文件管理对话框 --> + <el-dialog :title="title" :visible.sync="open" width="600px" append-to-body> + <el-form ref="form" :model="form" :rules="rules" label-width="90px"> + <el-form-item label="文件名称" prop="name"> + <el-input v-model="form.name" placeholder="请输入文件名称" /> + </el-form-item> + <el-form-item label="所属类型" prop="type"> + <el-select v-model="form.type" placeholder="请选择文件所属类型"> + <el-option + v-for="dict in typeOptions" + :key="dict.dictValue" + :label="dict.dictLabel" + :value="dict.dictValue" + /> + </el-select> + </el-form-item> + <el-form-item label="选择文件" prop="fileurl"> + <el-input v-model="form.fileurl" v-if="false" /> + <el-upload + class="upload-demo" + :action="uploadFileUrl" + :headers="headers" + :on-preview="handlePreview" + :on-remove="handleRemove" + :before-remove="beforeRemove" + :limit="1" + :on-exceed="handleExceed" + :file-list="fileList" + :on-success="handleAvatarSuccess" + > + <el-button size="small" type="primary">选择文件</el-button> + </el-upload> + </el-form-item> + </el-form> + <div slot="footer" class="dialog-footer"> + <el-button type="primary" @click="submitForm">确 定</el-button> + <el-button @click="cancel">取 消</el-button> + </div> + </el-dialog> + </div> +</template> + +<script> +import { + listFiles, + getFiles, + delFiles, + addFiles, + updateFiles, +} from "@/api/benyi/files"; + +import { getToken } from "@/utils/auth"; + +export default { + name: "Files", + data() { + return { + // 遮罩层 + loading: true, + // 选中数组 + ids: [], + // 非单个禁用 + single: true, + // 非多个禁用 + multiple: true, + // 总条数 + total: 0, + // 文件管理表格数据 + filesList: [], + fileList: [], + //文件类型 + typeOptions: [], + uploadFileUrl: process.env.VUE_APP_BASE_API + "/common/upload", // 上传的图片服务器地址 + headers: { + Authorization: "Bearer " + getToken(), + }, + // 弹出层标题 + title: "", + // 是否显示弹出层 + open: false, + // 查询参数 + queryParams: { + pageNum: 1, + pageSize: 10, + name: undefined, + filetype: undefined, + type: undefined, + fileurl: undefined, + createuserid: undefined, + }, + // 表单参数 + form: {}, + // 表单校验 + rules: { + name: [ + { required: true, message: "文件名称不能为空", trigger: "blur" }, + ], + type: [ + { required: true, message: "所属类型不能为空", trigger: "blur" }, + ], + fileurl: [{ required: true, message: "文件不能为空", trigger: "blur" }], + }, + }; + }, + created() { + this.getList(); + this.getDicts("sys_dm_filecenter").then((response) => { + this.typeOptions = response.data; + }); + }, + methods: { + handleAvatarSuccess(res, file) { + console.log(res); + if (res.code == "200") { + this.form.fileurl = res.fileName; + this.form.filetype = res.fileName.split(".")[1]; + } else { + this.msgError(res.msg); + } + }, + handleRemove(file, fileList) { + console.log(file, fileList); + if (file.response.code == "200") { + this.form.fileurl = ""; + } + }, + handlePreview(file) { + console.log(file); + }, + handleExceed(files, fileList) { + this.$message.warning( + `当前限制选择 1 个文件,本次选择了 ${files.length} 个文件,共选择了 ${ + files.length + fileList.length + } 个文件` + ); + }, + beforeRemove(file, fileList) { + return this.$confirm(`确定移除 ${file.name}?`); + }, + // 类型--字典状态字典翻译 + typeFormat(row, column) { + return this.selectDictLabel(this.typeOptions, row.type); + }, + /** 查询文件管理列表 */ + getList() { + this.loading = true; + listFiles(this.queryParams).then((response) => { + this.filesList = response.rows; + this.total = response.total; + this.loading = false; + }); + }, + // 取消按钮 + cancel() { + this.open = false; + this.reset(); + }, + // 表单重置 + reset() { + this.form = { + id: undefined, + name: undefined, + filetype: undefined, + type: undefined, + fileurl: undefined, + createuserid: undefined, + createTime: undefined, + }; + this.resetForm("form"); + this.fileList = []; + }, + /** 搜索按钮操作 */ + handleQuery() { + this.queryParams.pageNum = 1; + this.getList(); + }, + /** 重置按钮操作 */ + resetQuery() { + this.resetForm("queryForm"); + this.handleQuery(); + }, + // 多选框选中数据 + handleSelectionChange(selection) { + this.ids = selection.map((item) => item.id); + this.single = selection.length != 1; + this.multiple = !selection.length; + }, + /** 新增按钮操作 */ + handleAdd() { + this.reset(); + this.open = true; + this.title = "添加文件管理"; + }, + /** 修改按钮操作 */ + handleUpdate(row) { + this.reset(); + const id = row.id || this.ids; + getFiles(id).then((response) => { + this.form = response.data; + this.open = true; + this.title = "修改文件管理"; + this.fileList.push({ + name: response.data.name, + url: response.data.fileurl, + }); + }); + }, + /** 提交按钮 */ + submitForm: function () { + this.$refs["form"].validate((valid) => { + if (valid) { + if (this.form.id != undefined) { + updateFiles(this.form).then((response) => { + if (response.code === 200) { + this.msgSuccess("修改成功"); + this.open = false; + this.getList(); + } + }); + } else { + addFiles(this.form).then((response) => { + if (response.code === 200) { + this.msgSuccess("新增成功"); + this.open = false; + this.getList(); + } + }); + } + } + }); + }, + /** 删除按钮操作 */ + handleDelete(row) { + const ids = row.id || this.ids; + this.$confirm( + '是否确认删除文件管理编号为"' + ids + '"的数据项?', + "警告", + { + confirmButtonText: "确定", + cancelButtonText: "取消", + type: "warning", + } + ) + .then(function () { + return delFiles(ids); + }) + .then(() => { + this.getList(); + this.msgSuccess("删除成功"); + }) + .catch(function () {}); + }, + }, +}; +</script> \ No newline at end of file diff --git a/ruoyi/src/main/java/com/ruoyi/project/benyi/controller/ByFilesController.java b/ruoyi/src/main/java/com/ruoyi/project/benyi/controller/ByFilesController.java index b05510925..b02a948c9 100644 --- a/ruoyi/src/main/java/com/ruoyi/project/benyi/controller/ByFilesController.java +++ b/ruoyi/src/main/java/com/ruoyi/project/benyi/controller/ByFilesController.java @@ -2,6 +2,7 @@ package com.ruoyi.project.benyi.controller; import java.util.List; +import com.ruoyi.common.utils.SecurityUtils; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; @@ -72,6 +73,9 @@ public class ByFilesController extends BaseController { @Log(title = "文件管理", businessType = BusinessType.INSERT) @PostMapping public AjaxResult add(@RequestBody ByFiles byFiles) { + + byFiles.setCreateuserid(SecurityUtils.getLoginUser().getUser().getUserId()); + return toAjax(byFilesService.insertByFiles(byFiles)); }