项目结构

├── app             // 应用目录
│   ├── controller  // 控制器
│   ├── dao         // DAO层
│   ├── model       // 模型层
│   └── service     // 服务层
├── boot
├── config          // 系统配置
├── docker
├── document        // 文档目录
├── i18n            // 国际化
├── library         // 类库
├── middleware      // 中间件
├── public          // 资源目录
├── router          // 路由
├── utils           // 系统工具
├── views           // 模板
├── widget          // 核心组件
├── go.mod
└── main.go

核心组件

  • 单图上传组件
{{upload_image "avatar|头像|90x90|建议上传尺寸450x450|450x450" .info.Avatar "" 0}}
  • 多图上传组件
{{album "avatar|图集|90x90|20|建议上传尺寸450x450" .info.Avatar "" 0}}
  • 下拉选择组件
{{select "gender|1|性别|name|id" "1=男,2=女,3=保密" .info.Gender}}
  • 单选按钮组件
{{radio "gender|name|id" "1=男,2=女,3=保密" .info.Gender}}
  • 复选框组件
{{checkbox "role_ids|name|id" .roleList .info.RoleIds}}
  • 城市选择组件
{{city .info.DistrictCode 3 1}}
  • 开关组件
{{switch "status" "在用|禁用" .info.Status}}
  • 日期组件
{{date "birthday|1|出生日期|date" .info.Birthday}}
  • 图标组件
{{icon "icon" .info.Icon}}
  • 穿梭组件
{{transfer "func|0|全部节点,已赋予节点|name|id|220x350" "1=列表,5=添加,10=修改,15=删除,20=详情,25=状态,30=批量删除,35=添加子级,40=全部展开,45=全部折叠" .funcList}}

模板布局

+ 布局头部

{{define "header"}}
<head>
    <meta charset="utf-8"/>
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
    <title>Gin+Layui【旗舰版】敏捷开发框架</title>
    <link href="/resource/assets/images/favicon.ico" rel="icon">
    <link type="text/css" rel="stylesheet" href="/resource/assets/libs/layui/css/layui.css"/>
    <link type="text/css" rel="stylesheet" href="/resource/assets/module/admin.css?v=318"/>
    <!--[if lt IE 9]>
    <script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
    <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
    <![endif]-->
    <script type="text/javascript" src="/resource/assets/libs/layui/layui.js"></script>
    <script type="text/javascript" src="/resource/assets/js/common.js?v=318"></script>
    <script type="text/javascript">
        var url = window.location.pathname.substring(1);
        var item = url.split("/");
        var C = item[0];
        var A = item[1];
        var cUrl = "/" + C;
    </script>
</head>
{{end}}

+ 布局脚部

{{define "footer"}}
<!-- JS部分 -->
<script type="text/javascript">
    var url = window.location.pathname.substring(1);
    var item = url.split("/");
    var jsUrl = "/resource/module/easygoadmin_" + item[0] + ".js";
    document.write("<script src='" + jsUrl + "'><\/script>");
</script>
{{end}}

+ 布局主体

<!DOCTYPE html>
<html>
<!-- 引入头部 -->
{{template "header" .}}
<body>

<!-- 主体部分开始 -->
<div class="layui-fluid">
    <div class="layui-card">
        <div class="layui-card-body">
            <!-- 内容区 -->
            {{block "content" .}}{{end}}
        </div>
    </div>
</div>
<!-- 主体部分结束 -->

<!-- 引入脚部 -->
{{template "footer" .}}
</body>
</html>