Forráskód Böngészése

添加文件上传接口和页面 demo

reghao 2 éve
szülő
commit
abf67b76af

+ 16 - 3
oss-console/src/main/java/cn/reghao/oss/console/app/controller/page/StoreObjectPageController.java

@@ -1,5 +1,6 @@
 package cn.reghao.oss.console.app.controller.page;
 
+import cn.reghao.jutil.jdk.result.WebResult;
 import cn.reghao.oss.console.app.db.repository.UploadChannelRepository;
 import cn.reghao.oss.console.app.model.po.UploadChannel;
 import cn.reghao.oss.console.app.service.StoreNodeService;
@@ -11,9 +12,8 @@ import org.springframework.data.domain.Page;
 import org.springframework.data.domain.PageRequest;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.Model;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
 
 /**
  * @author reghao
@@ -53,4 +53,17 @@ public class StoreObjectPageController {
         model.addAttribute("list", page.getContent());
         return "/object/index";
     }
+
+    @ApiOperation(value = "文件上传页面")
+    @GetMapping(value = "/upload")
+    public String uploadPage(Model model) {
+        return "/object/upload";
+    }
+
+    @ApiOperation(value = "文件上传接口")
+    @PostMapping(value = "/upload")
+    @ResponseBody
+    public String uploadFile(MultipartFile[] files) {
+        return WebResult.success();
+    }
 }

+ 0 - 67
oss-console/src/main/resources/templates/object/deploy.html

@@ -1,67 +0,0 @@
-<!DOCTYPE html>
-<html xmlns:th="http://www.thymeleaf.org">
-<head th:replace="/common/template :: header(~{::title},~{::link},~{::style})"></head>
-<body class="timo-layout-page">
-<div class="layui-card">
-    <div class="layui-card-body">
-        <div class="timo-table-wrap">
-            <table class="layui-table timo-table">
-                <thead>
-                <tr>
-                    <th class="sortable" data-field="machineIpv4">机器地址</th>
-                    <th class="sortable" data-field="machineStatus">机器状态</th>
-                    <th class="sortable" data-field="commitId">当前版本</th>
-                    <th class="sortable" data-field="packagePath">包路径</th>
-                    <th class="sortable" data-field="deployBy">部署用户</th>
-                    <th class="sortable" data-field="deployTime">部署时间</th>
-                    <th class="sortable" data-field="deployResult">部署结果</th>
-                    <th>操作</th>
-                </tr>
-                </thead>
-                <tbody>
-                <tr th:each="item:${list}">
-                    <td th:text="${item.machineIpv4}">机器地址</td>
-                    <td class="machine-status" th:text="${item.machineStatus}">机器状态</td>
-                    <td th:text="${item?.commitId}">当前版本</td>
-                    <td th:text="${item?.packagePath}">包路径</td>
-                    <td th:text="${item?.deployBy}">部署用户</td>
-                    <td th:text="${item?.deployTime}">部署时间</td>
-                    <td class="deploy-result" th:text="${item?.deployResult}">部署结果</td>
-                    <td>
-                        <a class="ajax-post"
-                           th:href="@{'/api/app/bd/deploy/'+${buildLogId}+'/'+${item.machineId}}">部署</a>
-                    </td>
-                </tr>
-                </tbody>
-            </table>
-        </div>
-    </div>
-</div>
-
-<script th:replace="/common/template :: script"></script>
-<script type="text/javascript" th:src="@{/js/plugins/jquery-2.2.4.min.js}"></script>
-<script type="text/javascript">
-    $(".deploy-result").each(function () {
-        var text = $(this).text().trim()
-        if (text === '尚未部署') {
-            $(this).css("color", "#4169e1")
-        } else if (text === '正在部署') {
-            $(this).css("color", "#e3cf57")
-        } else if (text === '部署成功') {
-            $(this).css("color", "#009688")
-        } else if (text === '部署失败') {
-            $(this).css("color", "#ff0000")
-        }
-    })
-
-    $(".machine-status").each(function () {
-        var text = $(this).text().trim()
-        if (text === 'Online') {
-            $(this).css("color", "#009688")
-        } else {
-            $(this).css("color", "#ff0000")
-        }
-    })
-</script>
-</body>
-</html>

+ 77 - 0
oss-console/src/main/resources/templates/object/upload.html

@@ -0,0 +1,77 @@
+<!DOCTYPE html>
+<html xmlns:th="http://www.thymeleaf.org">
+<head th:replace="/common/template :: header(~{::title},~{::link},~{::style})"></head>
+
+<body class="timo-layout-page">
+<div class="layui-row layui-col-space20">
+    <div class="layui-col-md4">
+        <div class="layui-card">
+            <div class="layui-card-header timo-card-header">
+                <span><i class="fa fa-bars"></i> 表单元素</span>
+            </div>
+            <div class="layui-card-body">
+                <div class="layui-form timo-compile element-panel">
+                    <div class="layui-form-item">
+                        <label class="layui-form-label">选择框</label>
+                        <div class="layui-input-inline">
+                            <select name="interest" lay-filter="aihao">
+                                <option value=""></option>
+                                <option value="0">写作</option>
+                                <option value="1">阅读</option>
+                                <option value="2">游戏</option>
+                                <option value="3">音乐</option>
+                                <option value="4">旅行</option>
+                            </select>
+                        </div>
+                    </div>
+                    <div class="layui-form-item">
+                        <label class="layui-form-label">上传文件</label>
+                        <div class="layui-input-inline">
+                            <button type="button" class="layui-btn upload-file" name="files[]"
+                                    th:attr="up-url=@{/store/object/upload}" up-field="path">
+                                <i class="layui-icon">&#xe67c;</i>上传图片
+                            </button>
+                        </div>
+                        <div class="upload-show"></div>
+                    </div>
+                    <div class="layui-form-item">
+                        <label class="layui-form-label">时间选择</label>
+                        <div class="layui-input-inline">
+                            <input type="text" class="layui-input" id="laydate" placeholder="yyyy-MM-dd">
+                        </div>
+                    </div>
+                    <div class="layui-form-item">
+                        <label class="layui-form-label">开关</label>
+                        <div class="layui-input-block">
+                            <input type="checkbox" name="close" lay-skin="switch" lay-text="ON|OFF">
+                        </div>
+                    </div>
+                    <div class="layui-form-item layui-form-text">
+                        <label class="layui-form-label">文本域</label>
+                        <div class="layui-input-block">
+                            <textarea placeholder="请输入内容" class="layui-textarea" name="desc"></textarea>
+                        </div>
+                    </div>
+                    <div class="layui-form-item timo-finally">
+                        <button class="layui-btn ajax-submit"><i class="fa fa-check-circle"></i> 保存</button>
+                        <button class="layui-btn btn-secondary close-popup"><i class="fa fa-times-circle"></i> 关闭</button>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+    <div class="layui-col-md4">
+        <div class="layui-card build-card">
+            <div class="layui-card-header timo-card-header">
+                <span><i class="fa fa-bars"></i> 构建面板</span>
+                <button class="layui-btn layui-btn-primary layui-btn-sm build-generate">生成HTML</button>
+            </div>
+            <div class="layui-card-body layui-form timo-compile build-panel"></div>
+        </div>
+    </div>
+</div>
+</body>
+
+<script th:replace="/common/template :: script"></script>
+<script type="text/javascript" th:src="@{/js/build.js}"></script>
+</html>