集成多语言

pull/64/head
fengshuonan 2021-01-24 22:25:12 +08:00
parent e9c31b9283
commit ac3d27cbf4
9 changed files with 439 additions and 0 deletions

View File

@ -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>

View File

@ -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";
}
}

View File

@ -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='多语言表';

View File

@ -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);
}
});
});

View File

@ -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;
});
});

View File

@ -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;
});
});

View File

@ -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">&#xe615;</i>搜索</button>
<button id="btnAdd" class="layui-btn icon-btn"><i class="layui-icon">&#xe654;</i>添加</button>
<button id="btnExp" class="layui-btn icon-btn"><i class="layui-icon">&#xe67d;</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>
@}

View File

@ -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>&emsp;提交&emsp;</button>
<button type="reset" class="layui-btn layui-btn-primary" ew-event="closeDialog">&emsp;取消&emsp;</button>
</div>
</form>
@}

View File

@ -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>&emsp;提交&emsp;</button>
<button type="reset" class="layui-btn layui-btn-primary" ew-event="closeDialog">&emsp;取消&emsp;</button>
</div>
</form>
@}