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>
|
<version>1.0.0</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<!--多语言模块-->
|
||||||
|
<dependency>
|
||||||
|
<groupId>cn.stylefeng.roses</groupId>
|
||||||
|
<artifactId>i18n-spring-boot-starter</artifactId>
|
||||||
|
<version>1.0.0</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
<!--多数据源配置-->
|
<!--多数据源配置-->
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>cn.stylefeng.roses</groupId>
|
<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