mirror of https://gitee.com/stylefeng/guns
集成多语言
parent
e9c31b9283
commit
ac3d27cbf4
7
pom.xml
7
pom.xml
|
@ -127,6 +127,13 @@
|
|||
<version>1.0.0</version>
|
||||
</dependency>
|
||||
|
||||
<!--多语言模块-->
|
||||
<dependency>
|
||||
<groupId>cn.stylefeng.roses</groupId>
|
||||
<artifactId>i18n-spring-boot-starter</artifactId>
|
||||
<version>1.0.0</version>
|
||||
</dependency>
|
||||
|
||||
<!--多数据源配置-->
|
||||
<dependency>
|
||||
<groupId>cn.stylefeng.roses</groupId>
|
||||
|
|
|
@ -0,0 +1,50 @@
|
|||
package cn.stylefeng.guns.modular.system.i18n;
|
||||
|
||||
import cn.stylefeng.roses.kernel.resource.api.annotation.ApiResource;
|
||||
import cn.stylefeng.roses.kernel.resource.api.annotation.GetResource;
|
||||
import org.springframework.stereotype.Controller;
|
||||
|
||||
/**
|
||||
* 多语言界面
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2021/1/24 19:15
|
||||
*/
|
||||
@Controller
|
||||
@ApiResource(name = "多语言界面")
|
||||
public class TranslationViewController {
|
||||
|
||||
/**
|
||||
* 多语言主界面
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2021/1/24 19:15
|
||||
*/
|
||||
@GetResource(name = "文件管理首页", path = "/view/i18n")
|
||||
public String index() {
|
||||
return "/modular/system/i18n/translation.html";
|
||||
}
|
||||
|
||||
/**
|
||||
* 多语言新增界面
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2021/1/24 19:16
|
||||
*/
|
||||
@GetResource(name = "多语言新增界面", path = "/view/i18n/add")
|
||||
public String add() {
|
||||
return "/modular/system/i18n/translation_add.html";
|
||||
}
|
||||
|
||||
/**
|
||||
* 多语言编辑界面
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2021/1/24 19:16
|
||||
*/
|
||||
@GetResource(name = "文件管理首页", path = "/view/i18n/edit")
|
||||
public String edit() {
|
||||
return "/modular/system/i18n/translation_edit.html";
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
CREATE TABLE `sys_translation` (
|
||||
`tran_id` bigint(20) NOT NULL COMMENT '主键id',
|
||||
`tran_code` varchar(255) NOT NULL COMMENT '编码',
|
||||
`tran_name` varchar(255) NOT NULL COMMENT '多语言条例名称',
|
||||
`language` int(11) NOT NULL COMMENT '1:中文 2:英语',
|
||||
`tran_value` varchar(255) NOT NULL COMMENT '翻译的值',
|
||||
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
|
||||
`create_user` bigint(20) DEFAULT NULL COMMENT '创建人',
|
||||
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
|
||||
`update_user` bigint(20) DEFAULT NULL COMMENT '更新人',
|
||||
PRIMARY KEY (`tran_id`) USING BTREE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='多语言表';
|
|
@ -0,0 +1,142 @@
|
|||
layui.use(['table', 'admin', 'ax', 'func'], function () {
|
||||
var $ = layui.$;
|
||||
var table = layui.table;
|
||||
var $ax = layui.ax;
|
||||
var admin = layui.admin;
|
||||
var func = layui.func;
|
||||
|
||||
/**
|
||||
* 多语言表管理
|
||||
*/
|
||||
var Translation = {
|
||||
tableId: "translationTable"
|
||||
};
|
||||
|
||||
/**
|
||||
* 初始化表格的列
|
||||
*/
|
||||
Translation.initColumn = function () {
|
||||
return [[
|
||||
{type: 'checkbox'},
|
||||
{field: 'tranId', hide: true, title: '主键id'},
|
||||
{field: 'tranCode', sort: true, title: '编码'},
|
||||
{field: 'tranName', sort: true, title: '名称'},
|
||||
{
|
||||
field: 'languages', sort: true, title: '语种', templet: function (d) {
|
||||
if (d.languages === 1) {
|
||||
return "中文";
|
||||
} else if (d.languages === 2) {
|
||||
return "英文";
|
||||
}
|
||||
}
|
||||
},
|
||||
{field: 'tranValue', sort: true, title: '翻译的值'},
|
||||
{field: 'createTime', sort: true, title: '创建时间'},
|
||||
{field: 'updateTime', sort: true, title: '更新时间'},
|
||||
{align: 'center', toolbar: '#tableBar', title: '操作'}
|
||||
]];
|
||||
};
|
||||
|
||||
/**
|
||||
* 点击查询按钮
|
||||
*/
|
||||
Translation.search = function () {
|
||||
var queryData = {};
|
||||
queryData['condition'] = $("#condition").val();
|
||||
table.reload(Translation.tableId, {
|
||||
where: queryData, page: {curr: 1}
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* 弹出添加对话框
|
||||
*/
|
||||
Translation.openAddDlg = function () {
|
||||
func.open({
|
||||
title: '添加多语言表',
|
||||
content: Feng.ctxPath + '/translation/add',
|
||||
tableId: Translation.tableId
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* 点击编辑
|
||||
*
|
||||
* @param data 点击按钮时候的行数据
|
||||
*/
|
||||
Translation.openEditDlg = function (data) {
|
||||
func.open({
|
||||
title: '修改多语言表',
|
||||
content: Feng.ctxPath + '/translation/edit?tranId=' + data.tranId,
|
||||
tableId: Translation.tableId
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* 导出excel按钮
|
||||
*/
|
||||
Translation.exportExcel = function () {
|
||||
var checkRows = table.checkStatus(Translation.tableId);
|
||||
if (checkRows.data.length === 0) {
|
||||
Feng.error("请选择要导出的数据");
|
||||
} else {
|
||||
table.exportFile(tableResult.config.id, checkRows.data, 'xls');
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* 点击删除
|
||||
*
|
||||
* @param data 点击按钮时候的行数据
|
||||
*/
|
||||
Translation.onDeleteItem = function (data) {
|
||||
var operation = function () {
|
||||
var ajax = new $ax(Feng.ctxPath + "/translation/delete", function (data) {
|
||||
Feng.success("删除成功!");
|
||||
table.reload(Translation.tableId);
|
||||
}, function (data) {
|
||||
Feng.error("删除失败!" + data.responseJSON.message + "!");
|
||||
});
|
||||
ajax.set("tranId", data.tranId);
|
||||
ajax.start();
|
||||
};
|
||||
Feng.confirm("是否删除?", operation);
|
||||
};
|
||||
|
||||
// 渲染表格
|
||||
var tableResult = table.render({
|
||||
elem: '#' + Translation.tableId,
|
||||
url: Feng.ctxPath + '/translation/list',
|
||||
page: true,
|
||||
height: "full-158",
|
||||
cellMinWidth: 100,
|
||||
cols: Translation.initColumn()
|
||||
});
|
||||
|
||||
// 搜索按钮点击事件
|
||||
$('#btnSearch').click(function () {
|
||||
Translation.search();
|
||||
});
|
||||
|
||||
// 添加按钮点击事件
|
||||
$('#btnAdd').click(function () {
|
||||
Translation.openAddDlg();
|
||||
});
|
||||
|
||||
// 导出excel
|
||||
$('#btnExp').click(function () {
|
||||
Translation.exportExcel();
|
||||
});
|
||||
|
||||
// 工具条点击事件
|
||||
table.on('tool(' + Translation.tableId + ')', function (obj) {
|
||||
var data = obj.data;
|
||||
var layEvent = obj.event;
|
||||
|
||||
if (layEvent === 'edit') {
|
||||
Translation.openEditDlg(data);
|
||||
} else if (layEvent === 'delete') {
|
||||
Translation.onDeleteItem(data);
|
||||
}
|
||||
});
|
||||
});
|
|
@ -0,0 +1,46 @@
|
|||
/**
|
||||
* 添加或者修改页面
|
||||
*/
|
||||
var TranslationInfoDlg = {
|
||||
data: {
|
||||
tranCode: "",
|
||||
tranName: "",
|
||||
languages: "",
|
||||
tranValue: "",
|
||||
createTime: "",
|
||||
createUser: "",
|
||||
updateTime: "",
|
||||
updateUser: ""
|
||||
}
|
||||
};
|
||||
|
||||
layui.use(['form', 'admin', 'ax'], function () {
|
||||
var $ = layui.jquery;
|
||||
var $ax = layui.ax;
|
||||
var form = layui.form;
|
||||
var admin = layui.admin;
|
||||
|
||||
//让当前iframe弹层高度适应
|
||||
admin.iframeAuto();
|
||||
|
||||
//表单提交事件
|
||||
form.on('submit(btnSubmit)', function (data) {
|
||||
var ajax = new $ax(Feng.ctxPath + "/translation/addItem", function (data) {
|
||||
Feng.success("添加成功!");
|
||||
|
||||
//传给上个页面,刷新table用
|
||||
admin.putTempData('formOk', true);
|
||||
|
||||
//关掉对话框
|
||||
admin.closeThisDialog();
|
||||
|
||||
}, function (data) {
|
||||
Feng.error("添加失败!" + data.responseJSON.message)
|
||||
});
|
||||
ajax.set(data.field);
|
||||
ajax.start();
|
||||
|
||||
return false;
|
||||
});
|
||||
|
||||
});
|
|
@ -0,0 +1,51 @@
|
|||
/**
|
||||
* 详情对话框
|
||||
*/
|
||||
var TranslationInfoDlg = {
|
||||
data: {
|
||||
tranCode: "",
|
||||
tranName: "",
|
||||
languages: "",
|
||||
tranValue: "",
|
||||
createTime: "",
|
||||
createUser: "",
|
||||
updateTime: "",
|
||||
updateUser: ""
|
||||
}
|
||||
};
|
||||
|
||||
layui.use(['form', 'admin', 'ax'], function () {
|
||||
var $ = layui.jquery;
|
||||
var $ax = layui.ax;
|
||||
var form = layui.form;
|
||||
var admin = layui.admin;
|
||||
|
||||
//让当前iframe弹层高度适应
|
||||
admin.iframeAuto();
|
||||
|
||||
//获取详情信息,填充表单
|
||||
var ajax = new $ax(Feng.ctxPath + "/translation/detail?tranId=" + Feng.getUrlParam("tranId"));
|
||||
var result = ajax.start();
|
||||
form.val('translationForm', result.data);
|
||||
|
||||
//表单提交事件
|
||||
form.on('submit(btnSubmit)', function (data) {
|
||||
var ajax = new $ax(Feng.ctxPath + "/translation/editItem", function (data) {
|
||||
Feng.success("更新成功!");
|
||||
|
||||
//传给上个页面,刷新table用
|
||||
admin.putTempData('formOk', true);
|
||||
|
||||
//关掉对话框
|
||||
admin.closeThisDialog();
|
||||
|
||||
}, function (data) {
|
||||
Feng.error("更新失败!" + data.responseJSON.message)
|
||||
});
|
||||
ajax.set(data.field);
|
||||
ajax.start();
|
||||
|
||||
return false;
|
||||
});
|
||||
|
||||
});
|
|
@ -0,0 +1,35 @@
|
|||
@layout("/common/_container.html",{js:["/assets/modular/i18n/translation.js"]}){
|
||||
|
||||
<div class="layui-body-header">
|
||||
<span class="layui-body-header-title">多语言表管理</span>
|
||||
</div>
|
||||
|
||||
<div class="layui-fluid">
|
||||
<div class="layui-row layui-col-space15">
|
||||
<div class="layui-col-sm12 layui-col-md12 layui-col-lg12">
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-body">
|
||||
<div class="layui-form toolbar">
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-inline">
|
||||
<input id="condition" class="layui-input" type="text" placeholder="名称"/>
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
<button id="btnSearch" class="layui-btn icon-btn"><i class="layui-icon"></i>搜索</button>
|
||||
<button id="btnAdd" class="layui-btn icon-btn"><i class="layui-icon"></i>添加</button>
|
||||
<button id="btnExp" class="layui-btn icon-btn"><i class="layui-icon"></i>导出</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<table class="layui-table" id="translationTable" lay-filter="translationTable"></table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script type="text/html" id="tableBar">
|
||||
<a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="edit">修改</a>
|
||||
<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="delete">删除</a>
|
||||
</script>
|
||||
@}
|
|
@ -0,0 +1,48 @@
|
|||
@layout("/common/_form.html",{js:["/assets/modular/i18n/translation_add.js"]}){
|
||||
|
||||
<form class="layui-form" id="translationForm" lay-filter="translationForm">
|
||||
<div class="layui-fluid" style="padding-bottom: 75px;">
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-header">基本信息</div>
|
||||
<div class="layui-card-body">
|
||||
<div class="layui-form-item layui-row">
|
||||
<input name="tranId" type="hidden"/>
|
||||
<div class="layui-inline layui-col-md12">
|
||||
<label class="layui-form-label">名称<span style="color: red;">*</span></label>
|
||||
<div class="layui-input-block">
|
||||
<input id="tranName" name="tranName" placeholder="请输入多语言条例名称" type="text" class="layui-input" lay-verify="required" required/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-inline layui-col-md12">
|
||||
<label class="layui-form-label">编码<span style="color: red;">*</span></label>
|
||||
<div class="layui-input-block">
|
||||
<input id="tranCode" name="tranCode" placeholder="请输入编码" type="text" class="layui-input" lay-verify="required" required/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-inline layui-col-md12">
|
||||
<label class="layui-form-label">语种<span style="color: red;">*</span></label>
|
||||
<div class="layui-input-block">
|
||||
<select name="languages" lay-search="">
|
||||
<option value="1">中文</option>
|
||||
<option value="2">英语</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-inline layui-col-md12">
|
||||
<label class="layui-form-label">翻译的值<span style="color: red;">*</span></label>
|
||||
<div class="layui-input-block">
|
||||
<input id="tranValue" name="tranValue" placeholder="请输入翻译的值" type="text" class="layui-input" lay-verify="required" required/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group-bottom text-center">
|
||||
<button class="layui-btn" lay-filter="btnSubmit" lay-submit> 提交 </button>
|
||||
<button type="reset" class="layui-btn layui-btn-primary" ew-event="closeDialog"> 取消 </button>
|
||||
</div>
|
||||
|
||||
</form>
|
||||
|
||||
@}
|
|
@ -0,0 +1,48 @@
|
|||
@layout("/common/_form.html",{js:["/assets/modular/i18n/translation_edit.js"]}){
|
||||
|
||||
<form class="layui-form" id="translationForm" lay-filter="translationForm">
|
||||
<div class="layui-fluid" style="padding-bottom: 75px;">
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-header">基本信息</div>
|
||||
<div class="layui-card-body">
|
||||
<div class="layui-form-item layui-row">
|
||||
<input name="tranId" type="hidden"/>
|
||||
<div class="layui-inline layui-col-md12">
|
||||
<label class="layui-form-label">名称<span style="color: red;">*</span></label>
|
||||
<div class="layui-input-block">
|
||||
<input id="tranName" name="tranName" placeholder="请输入多语言条例名称" type="text" class="layui-input" lay-verify="required" required/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-inline layui-col-md12">
|
||||
<label class="layui-form-label">编码<span style="color: red;">*</span></label>
|
||||
<div class="layui-input-block">
|
||||
<input id="tranCode" name="tranCode" placeholder="请输入编码" type="text" class="layui-input" lay-verify="required" required/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-inline layui-col-md12">
|
||||
<label class="layui-form-label">语种<span style="color: red;">*</span></label>
|
||||
<div class="layui-input-block">
|
||||
<select name="languages" lay-search="">
|
||||
<option value="1">中文</option>
|
||||
<option value="2">英语</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-inline layui-col-md12">
|
||||
<label class="layui-form-label">翻译的值<span style="color: red;">*</span></label>
|
||||
<div class="layui-input-block">
|
||||
<input id="tranValue" name="tranValue" placeholder="请输入翻译的值" type="text" class="layui-input" lay-verify="required" required/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group-bottom text-center">
|
||||
<button class="layui-btn" lay-filter="btnSubmit" lay-submit> 提交 </button>
|
||||
<button type="reset" class="layui-btn layui-btn-primary" ew-event="closeDialog"> 取消 </button>
|
||||
</div>
|
||||
|
||||
</form>
|
||||
|
||||
@}
|
Loading…
Reference in New Issue