Explorar el Código

更新 BiliController 接口和页面

reghao hace 2 años
padre
commit
aaf5023897

+ 21 - 0
manager/pom.xml

@@ -173,6 +173,27 @@
             <artifactId>commons-io</artifactId>
             <version>2.6</version>
         </dependency>
+
+        <!--<dependency>
+            <groupId>org.apache.dubbo</groupId>
+            <artifactId>dubbo-spring-boot-starter</artifactId>
+            <version>2.7.8</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.curator</groupId>
+            <artifactId>curator-recipes</artifactId>
+            <version>2.12.0</version>
+        </dependency>
+        <dependency>
+            <groupId>cn.reghao.tnb.account</groupId>
+            <artifactId>account-api</artifactId>
+            <version>1.0.0-SNAPSHOT</version>
+        </dependency>
+        <dependency>
+            <groupId>cn.reghao.tnb.content</groupId>
+            <artifactId>content-api</artifactId>
+            <version>1.0.0-SNAPSHOT</version>
+        </dependency>-->
     </dependencies>
 
     <profiles>

+ 60 - 18
manager/src/main/java/cn/reghao/devops/manager/admin/controller/BiliController.java

@@ -2,6 +2,7 @@ package cn.reghao.devops.manager.admin.controller;
 
 import cn.reghao.devops.manager.util.db.PageSort;
 import cn.reghao.jutil.jdk.db.PageList;
+import cn.reghao.jutil.jdk.result.WebResult;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
@@ -10,9 +11,10 @@ import org.springframework.data.domain.PageImpl;
 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 javax.ws.rs.Path;
+import java.util.Collections;
 
 /**
  * @author reghao
@@ -23,6 +25,11 @@ import org.springframework.web.bind.annotation.RequestParam;
 @Controller
 @RequestMapping("/bili")
 public class BiliController {
+    /*@DubboReference(check = false)
+    private UserQuery userQuery;
+    @DubboReference(check = false)
+    private PostQuery postQuery;*/
+
     @ApiOperation(value = "站点配置")
     @GetMapping(value = "/site/config")
     public String siteConfig(String username, Model model) {
@@ -39,27 +46,37 @@ public class BiliController {
 
     @ApiOperation(value = "账户")
     @GetMapping(value = "/site/account")
-    public String appLogPage(String username, Model model) {
+    public String appLogPage(String screenName, Model model) {
         PageRequest pageRequest = PageSort.pageRequest();
         int pageNumber = pageRequest.getPageNumber();
         int pageSize = pageRequest.getPageSize();
-        PageList<?> pageList = PageList.empty();
-        Page<?> page = new PageImpl<>(pageList.getList(), pageRequest, pageList.getTotalSize());
 
+        /*PageList<UserInfo> pageList = userQuery.getUsers(pageNumber+1);
+        Page<UserInfo> page = new PageImpl<>(pageList.getList(), pageRequest, pageList.getTotalSize());
         model.addAttribute("page", page);
-        model.addAttribute("list", page.getContent());
+        model.addAttribute("list", page.getContent());*/
+
+        model.addAttribute("page", Page.empty());
+        model.addAttribute("list", Collections.emptyList());
         return "/admin/site/account";
     }
 
+    @ApiOperation(value = "账户 VIP 页面")
+    @GetMapping(value = "/site/account/vip/{userId}")
+    public String accountVipPage(@PathVariable("userId") long userId, Model model) {
+        return "/admin/site/uservip";
+    }
+
+    @ApiOperation(value = "账户 VIP 页面")
+    @PostMapping(value = "/site/account/status/{userId}")
+    @ResponseBody
+    public String setAccountStatus(@PathVariable("userId") long userId) {
+        return WebResult.success();
+    }
+
     @GetMapping("/post/category")
     public String categoryPage(Model model) {
-        PageRequest pageRequest = PageSort.pageRequest();
-        PageList<?> pageList = PageList.empty();
-        Page<?> page = new PageImpl<>(pageList.getList(), pageRequest, pageList.getTotalSize());
-
-        model.addAttribute("page", page);
-        model.addAttribute("list", page.getContent());
-        return "/admin/site/index";
+        return "/admin/site/videocategory";
     }
 
     @ApiOperation(value = "视频稿件")
@@ -70,14 +87,39 @@ public class BiliController {
         }
 
         PageRequest pageRequest = PageSort.pageRequest();
-        PageList<?> pageList = PageList.empty();
-        Page<?> page = new PageImpl<>(pageList.getList(), pageRequest, pageList.getTotalSize());
+        int pageNumber = pageRequest.getPageNumber();
+        int pageSize = pageRequest.getPageSize();
 
-        model.addAttribute("page", page);
-        model.addAttribute("list", page.getContent());
+        /*PageList<VideoPostInfo> pageList = postQuery.getVideoPosts(pageNumber+1);
+        Page<VideoPostInfo> page = new PageImpl<>(pageList.getList(), pageRequest, pageList.getTotalSize());*/
+
+        model.addAttribute("page", Page.empty());
+        model.addAttribute("list", Collections.emptyList());
         return "/admin/site/videolist";
     }
 
+    @ApiOperation(value = "视频预览")
+    @GetMapping("/post/video/preview/{videoId}")
+    public String videoPreviewPage(@PathVariable("videoId") String videoId, Model model) {
+
+        model.addAttribute("videoInfo", null);
+        return "/admin/site/videopreview";
+    }
+
+    @ApiOperation(value = "视频资源")
+    @GetMapping("/post/video/resource/{videoId}")
+    public String videoResourcePage(@PathVariable("videoId") String videoId, Model model) {
+        return "/admin/site/videoresource";
+    }
+
+    @ApiOperation(value = "视频状态")
+    @GetMapping("/post/video/status/{videoId}")
+    public String videoStatusPage(@PathVariable("videoId") String videoId, Model model) {
+        return "/admin/site/videostatus";
+    }
+
+
+
     @GetMapping("/post/audio")
     public String audioPage(Model model) {
         PageRequest pageRequest = PageSort.pageRequest();

+ 6 - 3
manager/src/main/resources/application-dev.yml

@@ -1,8 +1,11 @@
+dubbo:
+  registry:
+    address: zookeeper://192.168.0.110:2181
 spring:
   datasource:
-    url: jdbc:mysql://localhost:3306/reghao_devops_rdb?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2b8
-    username: dev
-    password: Dev@123456
+    url: jdbc:mysql://192.168.0.110:3306/reghao_devops_tdb?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2b8
+    username: test
+    password: Test@123456
   data:
     mongodb:
       host: localhost

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
manager/src/main/resources/static/css/video-js.min.css


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 11 - 0
manager/src/main/resources/static/js/video.min.js


+ 8 - 15
manager/src/main/resources/templates/admin/site/account.html

@@ -1,6 +1,5 @@
 <!DOCTYPE html>
-<html xmlns:th="http://www.thymeleaf.org"
-      xmlns:mo="https://gitee.com/aun/Timo">
+<html xmlns:th="http://www.thymeleaf.org">
 <head th:replace="/common/template :: header(~{::title},~{::link},~{::style})"></head>
 
 <body class="timo-layout-page">
@@ -13,17 +12,10 @@
         <div class="layui-row timo-card-screen put-row">
             <div class="layui-row timo-card-screen put-row">
                 <div class="pull-left layui-form-pane">
-                    <!--<div class="layui-inline">
-                        <label class="layui-form-label">环境</label>
-                        <div class="layui-input-block timo-search-status">
-                            <select id="getPageByEnv" class="timo-search-select" name="env" onchange="getPageByEnv()"
-                                    mo:dict="ENVIRONMENT" mo-selected="${env}"></select>
-                        </div>
-                    </div>-->
                     <div class="layui-inline timo-search-box">
                         <label class="layui-form-label">用户名</label>
                         <div class="layui-input-block">
-                            <input type="text" name="username" th:value="${param.username}" placeholder="请输入用户名"
+                            <input type="text" name="screenName" th:value="${param.screenName}" placeholder="请输入用户名"
                                    autocomplete="off" class="layui-input">
                         </div>
                     </div>
@@ -70,7 +62,8 @@
                     <td>
                         <img class="layui-side-user-avatar" data-size="320,240" th:src="@{${item.avatarUrl}}" alt="头像">
                     </td>
-                    <td th:text="${item.userId}"></td>
+                    <td th:text="${item.userId}">
+                    </td>
                     <td th:text="${item.screenName}"></td>
                     <!--<td class="machine-status" th:text="${item.status}">当前状态</td>-->
                     <td th:text="${item.gender}"></td>
@@ -78,10 +71,10 @@
                     <td th:text="${item.following}"></td>
                     <td th:text="${item.follower}"></td>
                     <td>
-                        <a class="open-popup" data-title="机器详细信息" th:attr="data-url=@{'/machine/host/detail/'+${item.userId}}"
-                           data-size="960,480" href="#">详细</a>
-                        <a class="ajax-delete" th:attr="data-msg='确定要删除 '+ ${item.userId} + ' 机器?'"
-                           th:href="@{'/api/machine/host/' + ${item.userId}}">删除</a>
+                        <a class="open-popup" data-title="帐号 VIP" th:attr="data-url=@{'/bili/site/account/vip/'+${item.userId}}"
+                           data-size="960,480" href="#">VIP</a>
+                        <a class="ajax-post" th:attr="data-msg='确定要禁用帐号 '+ ${item.userId} + '?'"
+                           th:href="@{'/bili/site/account/status/' + ${item.userId}}">禁用</a>
                     </td>
                 </tr>
                 </tbody>

+ 10 - 0
manager/src/main/resources/templates/admin/site/uservip.html

@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html xmlns:th="http://www.thymeleaf.org">
+<head th:replace="/common/template :: header(~{::title},~{::link},~{::style})"></head>
+
+<body>
+    <div class="timo-detail-page">
+    </div>
+<script th:replace="/common/template :: script"></script>
+</body>
+</html>

+ 124 - 0
manager/src/main/resources/templates/admin/site/videocategory.html

@@ -0,0 +1,124 @@
+<!DOCTYPE html>
+<html xmlns:th="http://www.thymeleaf.org"
+      xmlns:mo="https://gitee.com/aun/Timo">
+<head th:replace="/common/template :: header(~{::title},~{::link},~{::style})">
+    <link rel="stylesheet" th:href="@{/lib/zTree_v3/css/zTreeStyle/zTreeStyle.css}" type="text/css">
+</head>
+<body class="timo-layout-page">
+<div class="layui-card timo-tree" th:attr="data-url=@{'/api/rbac/menu/' + ${isEnabled}}">
+    <div class="layui-card-header timo-card-header">
+                <span>
+                    <i class="fa fa-bars"></i>
+                    视频分区
+                </span>
+        <i class="layui-icon layui-icon-refresh refresh-btn"></i>
+    </div>
+    <div class="layui-card-body layui-row">
+        <div class="layui-col-lg2 layui-col-sm3">
+            <div class="layui-card timo-nav-tree">
+                <div class="layui-card-header">视频分类树</div>
+                <div class="layui-card-body">
+                    <ul class="ztree"></ul>
+                </div>
+            </div>
+        </div>
+        <div class="layui-col-lg10 layui-col-sm9">
+            <div class="layui-row timo-card-screen">
+                <div class="pull-left layui-form-pane timo-search-box">
+                    <div class="layui-inline">
+                        <label class="layui-form-label">状态</label>
+                        <div class="layui-input-block timo-search-status">
+                            <select id="getByStatus" class="timo-search-select" name="isEnabled" onchange="getListByStatus()"
+                                    mo:dict="MENU_STATUS" mo-selected="${isEnabled}"></select>
+                        </div>
+                    </div>
+                </div>
+                <div class="pull-right screen-btn-group">
+                    <button class="layui-btn open-popup popup-add" data-title="添加资源"
+                            th:attr="data-url=@{/rbac/menu/add}">
+                        <i class="fa fa-plus"></i>
+                        添加
+                    </button>
+                    <div class="btn-group">
+                        <button class="layui-btn">操作
+                            <span class="caret"></span>
+                        </button>
+                        <dl class="layui-nav-child layui-anim layui-anim-upbit">
+                            <dd>
+                                <a class="ajax-status" th:href="@{/rbac/menu/status/1}">启用</a>
+                            </dd>
+                            <dd>
+                                <a class="ajax-status" th:href="@{/rbac/menu/status/0}">停用</a>
+                            </dd>
+                        </dl>
+                    </div>
+                </div>
+            </div>
+            <div class="timo-table-wrap">
+                <table class="layui-table timo-table timo-tree-table">
+                    <thead>
+                    <tr>
+                        <th class="timo-table-checkbox">
+                            <label class="timo-checkbox">
+                                <input type="checkbox">
+                                <i class="layui-icon layui-icon-ok"></i>
+                            </label>
+                        </th>
+                        <th>名称</th>
+                        <th>URL 地址</th>
+                        <th>菜单类型</th>
+                        <th>可访问的角色</th>
+                        <th>操作</th>
+                    </tr>
+                    </thead>
+                    <tbody class="tree-hide">
+                    <tr class="{{$hide}}" tree-pid="{{pid}}" tree-id="{{id}}">
+                        <td>
+                            <label class="timo-checkbox">
+                                <input type="checkbox" value="{{id}}">
+                                <i class="layui-icon layui-icon-ok"></i>
+                            </label>
+                        </td>
+                        <td>{{name}}</td>
+                        <td>{{url}}</td>
+                        <td>{{type}}</td>
+                        <td>
+                            <a class="open-popup" data-title="已授予的角色"
+                               th:attr="data-url=@{'/rbac/menu/roleList/{{id}}'}" data-size="800,600"
+                               href="#">查看</a>
+                        </td>
+                        <td>
+                            <a class="open-popup popup-edit" data-title="编辑资源"
+                               th:attr="data-url=@{'/rbac/menu/edit/{{id}}'}" href="#">编辑
+                            </a>
+                            <a class="open-popup" data-title="详细信息"
+                               th:attr="data-url=@{'/rbac/menu/detail/{{id}}'}"
+                               data-size="800,600" href="#">详细
+                            </a>
+                            <a class="ajax-delete popup-delete" th:attr="data-msg='确定要删除 {{name}}?'"
+                               th:href="@{'/api/rbac/menu/{{id}}'}">删除
+                            </a>
+                        </td>
+                    </tr>
+                    </tbody>
+                </table>
+            </div>
+        </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" th:src="@{/lib/zTree_v3/js/jquery.ztree.core.min.js}"></script>
+<script type="text/javascript" th:src="@{/lib/zTree_v3/js/jquery.ztree.exedit.min.js}"></script>
+<script type="text/javascript" th:src="@{/js/timoTree.js}"></script>
+<script type="text/javascript">
+    $.fn.timoTree();
+    function getListByStatus() {
+        var selectedOption = $("#getByStatus option:selected")
+        var param = selectedOption.text()
+        url = '?isEnabled=' + param
+        window.location.href = window.location.pathname + url;
+    }
+</script>
+</body>
+</html>

+ 74 - 21
manager/src/main/resources/templates/admin/site/videolist.html

@@ -1,6 +1,5 @@
 <!DOCTYPE html>
-<html xmlns:th="http://www.thymeleaf.org"
-      xmlns:mo="https://gitee.com/aun/Timo">
+<html xmlns:th="http://www.thymeleaf.org">
 <head th:replace="/common/template :: header(~{::title},~{::link},~{::style})"></head>
 
 <body class="timo-layout-page">
@@ -46,41 +45,54 @@
             </div>
         </div>
         <div class="timo-table-wrap">
-            <table class="layui-table timo-table">
+            <table class="layui-table timo-table" style="table-layout:fixed">
                 <thead>
                 <tr>
                     <th class="timo-table-checkbox">
                         <label class="timo-checkbox"><input type="checkbox">
                             <i class="layui-icon layui-icon-ok"></i></label>
                     </th>
+                    <th data-field="avatarUrl">发布时间</th>
                     <th data-field="avatarUrl">封面</th>
-                    <th data-field="userId">视频 ID</th>
+                    <th data-field="videoId">视频 ID</th>
                     <th data-field="screenName">标题</th>
-                    <th data-field="gender">描述</th>
-                    <th data-field="signature">可见范围</th>
-                    <th data-field="following">状态</th>
-                    <th data-field="follower">粉丝</th>
-                    <th>操作</th>
+                    <!--<th data-field="gender">描述</th>-->
+                    <th data-field="gender">时长</th>
+                    <th data-field="gender">方向</th>
+                    <!--<th data-field="signature">视频资源</th>-->
+                    <th data-field="following">可见范围</th>
+                    <th data-field="follower">审核状态</th>
+                    <th data-field="publishBy">发布用户</th>
+                    <th width="90px">操作</th>
                 </tr>
                 </thead>
                 <tbody>
                 <tr th:each="item:${list}">
-                    <td><label class="timo-checkbox"><input type="checkbox" th:value="${item.userId}">
-                        <i class="layui-icon layui-icon-ok"></i></label></td>
+                    <td><label class="timo-checkbox"><input type="checkbox" th:value="${item.videoId}">
+                        <i class="layui-icon layui-icon-ok"></i></label>
+                    </td>
+                    <td th:text="${item.publishAt}"></td>
                     <td>
-                        <img class="layui-side-user-avatar" data-size="320,240" th:src="@{${item.avatarUrl}}" alt="头像">
+                        <img class="layui-side-user-avatar" data-size="320,240" th:src="@{${item.coverUrl}}" alt="video cover">
                     </td>
-                    <td th:text="${item.userId}"></td>
-                    <td th:text="${item.screenName}"></td>
-                    <td th:text="${item.gender}"></td>
-                    <td th:text="${item.signature}"></td>
-                    <td th:text="${item.following}"></td>
-                    <td th:text="${item.follower}"></td>
+                    <td th:text="${item.videoId}"></td>
+                    <td th:text="${item.title}"></td>
+                    <!--<td th:text="${item.description}"></td>-->
+                    <td th:text="${item.duration}"></td>
+                    <td th:text="${item.horizontal}"></td>
+                    <td th:text="${item.scope}"></td>
                     <td>
-                        <a class="open-popup" data-title="机器详细信息" th:attr="data-url=@{'/machine/host/detail/'+${item.userId}}"
+                        <a class="open-popup" data-title="修改状态" th:attr="data-url=@{'/bili/post/video/status/'+${item.videoId}}"
+                           href="#" th:text="${item.status}"></a>
+                    </td>
+                    <td th:text="${item.publishBy}"></td>
+                    <td width="90px">
+                        <a class="open-popup" data-title="视频预览" th:attr="data-url=@{'/bili/post/video/preview/'+${item.videoId}}"
                            data-size="960,480" href="#">预览</a>
-                        <a class="ajax-delete" th:attr="data-msg='确定要修改 '+ ${item.userId} + ' 的状态?'"
-                           th:href="@{'/api/machine/host/' + ${item.userId}}">修改状态</a>
+                        <a class="open-popup" data-title="修改状态" th:attr="data-url=@{'/bili/post/video/status/'+${item.videoId}}"
+                           href="#">修改状态</a>
+                        <a class="open-popup" data-title="视频资源" th:attr="data-url=@{'/bili/post/video/resource/'+${item.videoId}}"
+                           data-size="960,480" href="#">视频资源</a>
                     </td>
                 </tr>
                 </tbody>
@@ -93,6 +105,47 @@
 <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">
+    var tip_index;
+    /**
+     * 页面表格内容超出宽度显示...
+     * 鼠标放上去之后回显具体内容
+     * 移开鼠标内容消失
+     */
+    function showAndHideMsg(){
+        $(document).on("mouseenter","td",function(){
+            if (this.offsetWidth < this.scrollWidth) {
+                let that = this;
+                let text = $(this).text();
+                let wid;
+
+                if(text.length>1000){
+                    wid = '900px';
+                }else if(text.length>600){
+                    wid = '700px';
+                }else if(text.length>150){
+                    wid = '500px';
+                }else if(text.length>100){
+                    wid = '250px';
+                }else if(text.length>50){
+                    wid = '150px';
+                }
+                layui.use('layer', function(layer) {
+                    tip_index = layer.tips('<span style="word-wrap: break-word;">'+text+'</span>', that, {
+                        tips: [4, "#000000"],
+                        time: 0,
+                        area: [wid, 'auto']
+                    });
+                });
+            }
+        });
+        $(document).on("mouseout","td",function(){
+            layui.use('layer', function(layer) {
+                layer.close(tip_index);
+            });
+        });
+    }
+    showAndHideMsg();
+
     function getPageByEnv() {
         var selectedOption = $("#getPageByEnv option:selected")
         var param = selectedOption.text()

+ 78 - 0
manager/src/main/resources/templates/admin/site/videopreview.html

@@ -0,0 +1,78 @@
+<!DOCTYPE html>
+<html xmlns:th="http://www.thymeleaf.org">
+<head th:replace="/common/template :: header(~{::title},~{::link},~{::style})">
+    <link rel="stylesheet" th:href="@{/css/video-js.min.css}"/>
+</head>
+
+<body>
+    <div class="timo-detail-page">
+        <video id="video" class="video-js vjs-big-play-centered vjs-fluid">
+            <p class="vjs-no-js">
+                To view this video please enable JavaScript, and consider upgrading to a
+                web browser that
+                <a href="https://videojs.com/html5-video-support/" target="_blank">
+                    supports HTML5 video
+                </a>
+            </p>
+        </video>
+    </div>
+</body>
+
+<script type="text/javascript" th:src="@{/js/video.min.js}"></script>
+<script type="text/javascript" th:inline="javascript">
+    window.addEventListener('DOMContentLoaded', function () {
+        // var videoId = '${videoInfo.fileId}'
+        // var src = '${videoInfo.url}'
+        var src = ''
+        initPlayer(videoId, src)
+    })
+
+    function initPlayer(videoId, src) {
+        var player = videojs(document.getElementById('video'), {
+            controls: true, // 是否显示控制条
+            poster: '', // 视频封面图地址
+            preload: 'auto',
+            autoplay: false,
+            fluid: true, // 自适应宽高
+            language: 'zh-CN', // 设置语言
+            muted: false, // 是否静音
+            inactivityTimeout: false,
+            controlBar: { // 设置控制条组件
+                /* 设置控制条里面组件的相关属性及显示与否
+                'currentTimeDisplay':true,
+                'timeDivider':true,
+                'durationDisplay':true,
+                'remainingTimeDisplay':false,
+                volumePanel: {
+                    inline: false,
+                }
+                */
+                /* 使用children的形式可以控制每一个控件的位置,以及显示与否 */
+                children: [
+                    {name: 'playToggle'}, // 播放按钮
+                    {name: 'currentTimeDisplay'}, // 当前已播放时间
+                    {name: 'progressControl'}, // 播放进度条
+                    {name: 'durationDisplay'}, // 总时间
+                    { // 倍数播放
+                        name: 'playbackRateMenuButton',
+                        'playbackRates': [0.5, 1, 1.5, 2, 2.5]
+                    },
+                    {
+                        name: 'volumePanel', // 音量控制
+                        inline: false, // 不使用水平方式
+                    },
+                    {name: 'FullscreenToggle'} // 全屏
+                ]
+            },
+            sources:[ // 视频源
+                {
+                    src: src,
+                    type: 'video/mp4',
+                    poster: ''
+                }
+            ]
+        }, function (){
+        });
+    }
+</script>
+</html>

+ 10 - 0
manager/src/main/resources/templates/admin/site/videoresource.html

@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html xmlns:th="http://www.thymeleaf.org">
+<head th:replace="/common/template :: header(~{::title},~{::link},~{::style})"></head>
+
+<body>
+    <div class="timo-detail-page">
+    </div>
+<script th:replace="/common/template :: script"></script>
+</body>
+</html>

+ 10 - 0
manager/src/main/resources/templates/admin/site/videostatus.html

@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html xmlns:th="http://www.thymeleaf.org">
+<head th:replace="/common/template :: header(~{::title},~{::link},~{::style})"></head>
+
+<body>
+    <div class="timo-detail-page">
+    </div>
+<script th:replace="/common/template :: script"></script>
+</body>
+</html>

+ 101 - 47
manager/src/main/resources/templates/sys/env/index.html

@@ -1,60 +1,114 @@
 <!DOCTYPE html>
-<html xmlns:th="http://www.thymeleaf.org"
-      xmlns:mo="https://gitee.com/aun/Timo">
+<html xmlns:th="http://www.thymeleaf.org">
 <head th:replace="/common/template :: header(~{::title},~{::link},~{::style})">
     <link rel="stylesheet" th:href="@{/lib/zTree_v3/css/zTreeStyle/zTreeStyle.css}" type="text/css">
 </head>
 
 <body class="timo-layout-page">
-<div class="layui-card">
-    <div class="layui-card-header timo-card-header">
-        <span><i class="fa fa-bars"></i> 应用环境列表</span>
-        <i class="layui-icon layui-icon-refresh refresh-btn"></i>
-    </div>
-    <div class="layui-card-body">
-        <div class="layui-row timo-card-screen put-row">
-            <div class="pull-right screen-btn-group">
-                <div class="btn-group-right">
-                    <button class="layui-btn open-popup" data-title="添加环境" th:attr="data-url=@{/sys/env/add}"
-                            data-size="640,480">
-                        <i class="fa fa-plus"></i> 添加
-                    </button>
+<div class="layui-row layui-col-space20">
+    <div class="layui-col-md6">
+        <div class="layui-card">
+            <div class="layui-card-header timo-card-header">
+                <span><i class="fa fa-bars"></i> 应用环境列表</span>
+                <i class="layui-icon layui-icon-refresh refresh-btn"></i>
+            </div>
+            <div class="layui-card-body">
+                <div class="layui-row timo-card-screen put-row">
+                    <div class="pull-right screen-btn-group">
+                        <div class="btn-group-right">
+                            <button class="layui-btn open-popup" data-title="添加环境" th:attr="data-url=@{/sys/env/add}"
+                                    data-size="640,480">
+                                <i class="fa fa-plus"></i> 添加
+                            </button>
+                        </div>
+                    </div>
+                </div>
+                <div class="timo-table-wrap">
+                    <table class="layui-table timo-table">
+                        <thead>
+                        <tr>
+                            <th class="timo-table-checkbox">
+                                <label class="timo-checkbox"><input type="checkbox">
+                                    <i class="layui-icon layui-icon-ok"></i></label>
+                            </th>
+                            <th class="sortable" data-field="envId">环境 ID</th>
+                            <th class="sortable" data-field="envName">环境名</th>
+                            <th class="sortable" data-field="defaultEnv">是否默认</th>
+                            <th>操作</th>
+                        </tr>
+                        </thead>
+                        <tbody>
+                        <tr th:each="item:${list}">
+                            <td><label class="timo-checkbox"><input type="checkbox" th:value="${item.id}">
+                                <i class="layui-icon layui-icon-ok"></i></label></td>
+                            <td th:text="${item.envId}">环境</td>
+                            <td th:text="${item.envName}">环境名</td>
+                            <td th:text="${item.defaultEnv}">是否默认</td>
+                            <td>
+                                <a class="ajax-post" th:href="@{'/api/sys/env/setdefault/'+${item.id}}">设为默认</a>
+                                <a class="open-popup" data-title="编辑" th:attr="data-url=@{'/sys/env/edit/'+${item.id}}"
+                                   data-size="640,480" href="#">编辑</a>
+                                <a class="ajax-delete" th:attr="data-msg='确定要删除 '+ ${item.envId}"
+                                   th:href="@{'/api/sys/env/' + ${item.id}}">删除</a>
+                            </td>
+                        </tr>
+                        </tbody>
+                    </table>
                 </div>
             </div>
         </div>
-        <div class="timo-table-wrap">
-            <table class="layui-table timo-table">
-                <thead>
-                <tr>
-                    <th class="timo-table-checkbox">
-                        <label class="timo-checkbox"><input type="checkbox">
-                            <i class="layui-icon layui-icon-ok"></i></label>
-                    </th>
-                    <th class="sortable" data-field="envId">环境 ID</th>
-                    <th class="sortable" data-field="envName">环境名</th>
-                    <th class="sortable" data-field="defaultEnv">是否默认</th>
-                    <th>操作</th>
-                </tr>
-                </thead>
-                <tbody>
-                <tr th:each="item:${list}">
-                    <td><label class="timo-checkbox"><input type="checkbox" th:value="${item.id}">
-                        <i class="layui-icon layui-icon-ok"></i></label></td>
-                    <td th:text="${item.envId}">环境</td>
-                    <td th:text="${item.envName}">环境名</td>
-                    <td th:text="${item.defaultEnv}">是否默认</td>
-                    <td>
-                        <a class="ajax-post" th:href="@{'/api/sys/env/setdefault/'+${item.id}}">设为默认</a>
-                        <a class="open-popup" data-title="编辑" th:attr="data-url=@{'/sys/env/edit/'+${item.id}}"
-                           data-size="640,480" href="#">编辑</a>
-                        <a class="ajax-delete" th:attr="data-msg='确定要删除 '+ ${item.envId}"
-                           th:href="@{'/api/sys/env/' + ${item.id}}">删除</a>
-                    </td>
-                </tr>
-                </tbody>
-            </table>
+    </div>
+    <div class="layui-col-md6">
+        <div class="layui-card">
+            <div class="layui-card-header timo-card-header">
+                <span><i class="fa fa-bars"></i> 应用环境列表</span>
+                <i class="layui-icon layui-icon-refresh refresh-btn"></i>
+            </div>
+            <div class="layui-card-body">
+                <div class="layui-row timo-card-screen put-row">
+                    <div class="pull-right screen-btn-group">
+                        <div class="btn-group-right">
+                            <button class="layui-btn open-popup" data-title="添加环境" th:attr="data-url=@{/sys/env/add}"
+                                    data-size="640,480">
+                                <i class="fa fa-plus"></i> 添加
+                            </button>
+                        </div>
+                    </div>
+                </div>
+                <div class="timo-table-wrap">
+                    <table class="layui-table timo-table">
+                        <thead>
+                        <tr>
+                            <th class="timo-table-checkbox">
+                                <label class="timo-checkbox"><input type="checkbox">
+                                    <i class="layui-icon layui-icon-ok"></i></label>
+                            </th>
+                            <th class="sortable" data-field="envId">环境 ID</th>
+                            <th class="sortable" data-field="envName">环境名</th>
+                            <th class="sortable" data-field="defaultEnv">是否默认</th>
+                            <th>操作</th>
+                        </tr>
+                        </thead>
+                        <tbody>
+                        <tr th:each="item:${list}">
+                            <td><label class="timo-checkbox"><input type="checkbox" th:value="${item.id}">
+                                <i class="layui-icon layui-icon-ok"></i></label></td>
+                            <td th:text="${item.envId}">环境</td>
+                            <td th:text="${item.envName}">环境名</td>
+                            <td th:text="${item.defaultEnv}">是否默认</td>
+                            <td>
+                                <a class="ajax-post" th:href="@{'/api/sys/env/setdefault/'+${item.id}}">设为默认</a>
+                                <a class="open-popup" data-title="编辑" th:attr="data-url=@{'/sys/env/edit/'+${item.id}}"
+                                   data-size="640,480" href="#">编辑</a>
+                                <a class="ajax-delete" th:attr="data-msg='确定要删除 '+ ${item.envId}"
+                                   th:href="@{'/api/sys/env/' + ${item.id}}">删除</a>
+                            </td>
+                        </tr>
+                        </tbody>
+                    </table>
+                </div>
+            </div>
         </div>
-        <div th:replace="/common/fragment :: page"></div>
     </div>
 </div>
 

Algunos archivos no se mostraron porque demasiados archivos cambiaron en este cambio