项目结构
├── 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>