-
添加已有用户
-
新建用户
+
{{$t('AddExistingUsers')}}
+
{{$t('newUser')}}
- 取消关联
+ {{$t('disassociate')}}
- 批量操作
+ {{$t('batchOperation')}}
@@ -46,9 +46,9 @@
- 编辑
+ {{$t('edit')}}
- 更多
+ {{$t('more')}}
- 分配部门角色
+ {{$t('AssignDepartmentRoles')}}
- 用户详情
+ {{$t('userDetail')}}
- handleDelete(record.id)">
- 取消关联
+ handleDelete(record.id)">
+ {{$t('disassociate')}}
@@ -121,37 +121,37 @@
},
data() {
return {
- description: '用户信息',
+ description: this.$t('userInformation'),
currentDeptId: '',
currentDept: {},
// 表头
columns: [{
- title: '用户账号',
+ title: this.$t('userAccount'),
align: "center",
dataIndex: 'username'
},
{
- title: '用户名称',
+ title: this.$t('userName'),
align: "center",
dataIndex: 'realname'
},
{
- title: '部门',
+ title: this.$t('department'),
align: "center",
dataIndex: 'orgCode'
},
{
- title: '性别',
+ title: this.$t('Gender'),
align: "center",
dataIndex: 'sex_dictText'
},
{
- title: '电话',
+ title: this.$t('phoneNumber'),
align: "center",
dataIndex: 'phone'
},
{
- title: '操作',
+ title: this.$t('operation'),
dataIndex: 'action',
scopedSlots: {customRender: 'action'},
align: "center",
@@ -175,7 +175,7 @@
},
loadData(arg) {
if (!this.url.list) {
- this.$message.error("请设置url.list属性!")
+ this.$message.error(this.$t('setURLListAttribute'))
return
}
//加载数据 若传入参数1则加载第一页的内容
@@ -195,16 +195,16 @@
batchDel: function () {
if (!this.url.deleteBatch) {
- this.$message.error("请设置url.deleteBatch属性!")
+ this.$message.error(this.$t('setURLDeletebatchAttribute'))
return
}
if (!this.currentDeptId) {
- this.$message.error("未选中任何部门,无法取消部门与用户的关联!")
+ this.$message.error(this.$t('NoDepartmentSelected'))
return
}
if (this.selectedRowKeys.length <= 0) {
- this.$message.warning('请选择一条记录!');
+ this.$message.warning(this.$t('selectARecored'));
return;
} else {
var ids = "";
@@ -214,12 +214,12 @@
var that = this;
console.log(this.currentDeptId);
this.$confirm({
- title: "确认取消",
- content: "是否取消用户与选中部门的关联?",
+ title: this.$t('ConfirmCancellation'),
+ content: this.$t('CancelAssociation'),
onOk: function () {
deleteAction(that.url.deleteBatch, {depId: that.currentDeptId, userIds: ids}).then((res) => {
if (res.success) {
- that.$message.success("删除用户与选中部门关系成功!");
+ that.$message.success(this.$t('SuccessfullyDeleted'));
that.loadData();
that.onClearSelected();
} else {
@@ -232,18 +232,18 @@
},
handleDelete: function (id) {
if (!this.url.delete) {
- this.$message.error("请设置url.delete属性!")
+ this.$message.error(this.$t('setURLDeleteAttribute'))
return
}
if (!this.currentDeptId) {
- this.$message.error("未选中任何部门,无法取消部门与用户的关联!")
+ this.$message.error(this.$t('NoDepartmentSelected'))
return
}
var that = this;
deleteAction(that.url.delete, {depId: this.currentDeptId, userId: id}).then((res) => {
if (res.success) {
- that.$message.success("删除用户与选中部门关系成功!");
+ that.$message.success(this.$t('SuccessfullyDeleted'));
if (this.selectedRowKeys.length>0){
for(let i =0; i
@@ -14,21 +14,21 @@
-
+ :label="$t('DictionaryName')">
+
-
+ :label="$t('DictionaryCoding')">
+
+ :label="$t('describe')">
@@ -46,7 +46,7 @@
data() {
return {
value: 1,
- title: '操作',
+ title: this.$t('operation'),
visible: false,
model: {},
labelCol: {
@@ -60,9 +60,9 @@
confirmLoading: false,
form: this.$form.createForm(this),
validatorRules: {
- dictName: { rules: [{ required: true, message: '请输入字典名称!' }] },
+ dictName: { rules: [{ required: true, message: this.$t('enterDictionary') }] },
dictCode: {
- rules: [{ required: true, message: '请输入字典编码!' },
+ rules: [{ required: true, message: this.$t('enterDictionaryCode') },
{ validator: this.validateDictCode }]
}
}
diff --git a/jero-web/src/views/system/modules/PasswordModal.vue b/jero-web/src/views/system/modules/PasswordModal.vue
index f9f897e6f..b9434aee9 100644
--- a/jero-web/src/views/system/modules/PasswordModal.vue
+++ b/jero-web/src/views/system/modules/PasswordModal.vue
@@ -1,27 +1,27 @@
-
-
+
+
-
-
+
+
-
-
+
+
@@ -44,14 +44,14 @@
rules: [{
required: true,
pattern:/^(?=.*[a-zA-Z])(?=.*\d)(?=.*[~!@#$%^&*()_+`\-={}:";'<>?,./]).{8,}$/,
- message: '密码由8位数字、大小写字母和特殊符号组成!'
+ message: this.$t('passwordConsists')
}, {
validator: this.validateToNextPassword,
}],
},
confirmpassword:{
rules: [{
- required: true, message: '请重新输入登录密码!',
+ required: true, message: this.$t('reenterLoginPassword'),
}, {
validator: this.compareToFirstPassword,
}],
@@ -118,7 +118,7 @@
const confirmpassword=form.getFieldValue('confirmpassword');
console.log("confirmpassword==>",confirmpassword);
if (value && confirmpassword && value !== confirmpassword) {
- callback('两次输入的密码不一样!');
+ callback(this.$t('passwordsEnteredTwice'));
}
if (value && this.confirmDirty) {
form.validateFields(['confirm'], { force: true })
@@ -128,7 +128,7 @@
compareToFirstPassword (rule, value, callback) {
const form = this.form;
if (value && value !== form.getFieldValue('password')) {
- callback('两次输入的密码不一样!');
+ callback(this.$t('passwordsEnteredTwice'));
} else {
callback()
}
diff --git a/jero-web/src/views/system/modules/PermissionDataRuleModal.vue b/jero-web/src/views/system/modules/PermissionDataRuleModal.vue
index 05a8c2c3b..646c576a7 100644
--- a/jero-web/src/views/system/modules/PermissionDataRuleModal.vue
+++ b/jero-web/src/views/system/modules/PermissionDataRuleModal.vue
@@ -6,7 +6,7 @@
:confirmLoading="confirmLoading"
@ok="handleOk"
@cancel="handleCancel"
- cancelText="关闭">
+ :cancelText="$t('close')">
@@ -14,36 +14,36 @@
-
+ :label="$t('RuleName')">
+
-
+ :label="$t('RuleField')">
+
-
+ :label="$t('ConditionalRules')">
+
-
+ :label="$t('RuleValue')">
+
+ :label="$t('status')">
- 有效
- 无效
+ {{$t('effective')}}
+ {{$t('invalid')}}
@@ -60,7 +60,7 @@
data() {
return {
queryParam: {},
- title: '操作',
+ title: this.$t('operation'),
visible: false,
model: {},
ruleConditionList: [],
@@ -76,9 +76,9 @@
form: this.$form.createForm(this),
permissionId: '',
validatorRules: {
- ruleConditions: {rules: [{required: true, message: '请选择条件!'}]},
- ruleName: {rules: [{required: true, message: '请输入规则名称!'}]},
- ruleValue: {rules: [{required: true, message: '请输入规则值!'}]},
+ ruleConditions: {rules: [{required: true, message:this.$t('selectCondition')}]},
+ ruleName: {rules: [{required: true, message: this.$t('enterRuleName')}]},
+ ruleValue: {rules: [{required: true, message: this.$t('enterRuleValue')}]},
ruleColumn: {rules: []}
},
url: {
diff --git a/jero-web/src/views/system/modules/PermissionModal.vue b/jero-web/src/views/system/modules/PermissionModal.vue
index f531ee055..f531996c6 100644
--- a/jero-web/src/views/system/modules/PermissionModal.vue
+++ b/jero-web/src/views/system/modules/PermissionModal.vue
@@ -10,11 +10,11 @@
-
+
- 一级菜单
- 子菜单
- 按钮/权限
+ {{$t('FirstLevelMenu')}}
+ {{$t('Submenu')}}
+ {{$t('ButtonsPermissions')}}
@@ -23,25 +23,25 @@
:wrapperCol="wrapperCol"
:label="menuLabel"
hasFeedback >
-
+
- {{ validateStatus=='error'?'请选择上级菜单':' ' }}
+ {{ validateStatus=='error'? $t('selectSuperiorMenu'):' ' }}
@@ -50,40 +50,40 @@
-
+ :label="$t('MenuPath')">
+
-
+ :label="$t('FrontAssembly')">
+
-
+ :label="$t('DefaultJumpAddress')">
+
-
+ :label="$t('AuthorizationID')">
+
-
+ :label="$t('AuthorizationPolicy')">
+
@@ -91,8 +91,8 @@
v-show="!show"
:labelCol="labelCol"
:wrapperCol="wrapperCol"
- label="状态">
-
+ :label="$t('status')">
+
@@ -100,8 +100,8 @@
v-show="show"
:labelCol="labelCol"
:wrapperCol="wrapperCol"
- label="菜单图标">
-
+ :label="$t('MenuIcon')">
+
@@ -110,32 +110,32 @@
v-show="show"
:labelCol="labelCol"
:wrapperCol="wrapperCol"
- label="排序">
-
+ :label="$t('sort')">
+
-
+ :label="$t('RouteMenu')">
+
-
+ :label="$t('HideRoute')">
+
-
+ :label="$t('CacheRoute')">
+
@@ -143,8 +143,8 @@
v-show="show"
:labelCol="labelCol"
:wrapperCol="wrapperCol"
- label="聚合路由">
-
+ :label="$t('AggregateRouting')">
+
@@ -152,8 +152,8 @@
v-show="show"
:labelCol="labelCol"
:wrapperCol="wrapperCol"
- label="打开方式">
-
+ :label="$t('OpenMode')">
+
@@ -165,9 +165,9 @@
- 关闭
+ {{$t('close')}}
- 确定
+ {{$t('determine')}}
@@ -186,7 +186,7 @@
drawerWidth:700,
treeData:[],
treeValue: '0-0-4',
- title:"操作",
+ title:this.$t('operation'),
visible: false,
disableSubmit:false,
model: {},
@@ -199,7 +199,7 @@
/*update_end author:wuxianquan date:20190908 for:定义变量,初始值代表内部打开*/
isKeepalive:true, //是否缓存路由
show:true,//根据菜单类型,动态显示隐藏表单元素
- menuLabel:'菜单名称',
+ menuLabel:this.$t('MenuName'),
isRequrie:true, // 是否需要验证
labelCol: {
xs: { span: 24 },
@@ -220,10 +220,10 @@
computed:{
validatorRules:function() {
return {
- name:{rules: [{ required: true, message: '请输入菜单标题!' }]},
- component:{rules: [{ required: this.show, message: '请输入前端组件!' }]},
- url:{rules: [{ required: this.show, message: '请输入菜单路径!' }]},
- permsType:{rules: [{ required: true, message: '请输入授权策略!' }]},
+ name:{rules: [{ required: true, message: this.$t('enterMenuTitle') }]},
+ component:{rules: [{ required: this.show, message: this.$t('enterFrontComponents') }]},
+ url:{rules: [{ required: this.show, message: this.$t('enterMenuPath') }]},
+ permsType:{rules: [{ required: true, message: this.$t('enterAuthorizationPolicy') }]},
sortNo:{initialValue:1.0},
}
}
@@ -279,7 +279,7 @@
this.show = record.menuType==2?false:true;
- this.menuLabel = record.menuType==2?'按钮/权限':'菜单名称';
+ this.menuLabel = record.menuType==2?this.$t('ButtonsPermissions'):this.$t('MenuName');
if(this.model.parentId){
this.localMenuType = 1;
@@ -349,7 +349,7 @@
if(!value || new RegExp(/^[0-9]*[1-9][0-9]*$/).test(value)){
callback();
}else{
- callback("请输入正整数!");
+ callback(this.$t('enterPositiveInteger'));
}
},
validatePerms(rule, value, callback){
@@ -365,7 +365,7 @@
if (res.success) {
callback()
} else {
- callback("授权标识已存在!")
+ callback(this.$t('AuthorizationIDExists'))
}
})
}else{
@@ -376,10 +376,10 @@
this.localMenuType=e.target.value
if(e.target.value == 2){
this.show = false;
- this.menuLabel = '按钮/权限';
+ this.menuLabel = this.$t('ButtonsPermissions');
}else{
this.show = true;
- this.menuLabel = '菜单名称';
+ this.menuLabel = this.$t('MenuName');
}
this.$nextTick(() => {
this.form.validateFields(['url','component'], { force: true });
diff --git a/jero-web/src/views/system/modules/SelectUserModal.vue b/jero-web/src/views/system/modules/SelectUserModal.vue
index 58c68e895..12bfe2316 100644
--- a/jero-web/src/views/system/modules/SelectUserModal.vue
+++ b/jero-web/src/views/system/modules/SelectUserModal.vue
@@ -7,7 +7,7 @@
:visible="visible"
@ok="handleOk"
@cancel="handleCancel"
- cancelText="关闭">
+ :cancelText="$t('close')">
@@ -16,14 +16,14 @@
-
-
+
+
- 查询
- 重置
+ {{$t('query')}}
+ {{$t('reset')}}
@@ -61,7 +61,7 @@
name: "SelectUserModal",
data() {
return {
- title: "添加已有用户",
+ title: this.$t('AddExistingUsers'),
names: [],
visible: false,
placement: 'right',
@@ -81,31 +81,31 @@
}
},
{
- title: '用户账号',
+ title: this.$t('userAccount'),
align: "center",
width: 100,
dataIndex: 'username'
},
{
- title: '用户名称',
+ title: this.$t('userName'),
align: "center",
width: 100,
dataIndex: 'realname'
},
{
- title: '性别',
+ title: this.$t('Gender'),
align: "center",
width: 100,
dataIndex: 'sex_dictText'
},
{
- title: '电话',
+ title: this.$t('phoneNumber'),
align: "center",
width: 100,
dataIndex: 'phone'
},
{
- title: '部门',
+ title: this.$t('department'),
align: "center",
width: 150,
dataIndex: 'orgCode'
@@ -113,18 +113,18 @@
],
columns2: [
{
- title: '用户账号',
+ title: this.$t('userAccount'),
align: "center",
dataIndex: 'username',
},
{
- title: '用户名称',
+ title: this.$t('userName'),
align: "center",
dataIndex: 'realname',
},
{
- title: '操作',
+ title: this.$t('operation'),
dataIndex: 'action',
align: "center",
width: 100,
@@ -140,7 +140,7 @@
pageSize: 10,
pageSizeOptions: ['10', '20', '30'],
showTotal: (total, range) => {
- return range[0] + "-" + range[1] + " 共" + total + "条"
+ return range[0] + "-" + range[1] + " "+this.$t('total') + total + this.$t('strip')
},
showQuickJumper: true,
showSizeChanger: true,
diff --git a/jero-web/src/views/system/modules/UserModal.vue b/jero-web/src/views/system/modules/UserModal.vue
index 837252bdc..6bd9b9d7e 100644
--- a/jero-web/src/views/system/modules/UserModal.vue
+++ b/jero-web/src/views/system/modules/UserModal.vue
@@ -22,22 +22,22 @@
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
@@ -48,12 +48,12 @@
-
+
@@ -64,13 +64,13 @@
-
+
- 选择
+ {{$t('choice')}}
@@ -90,19 +90,19 @@
-
+
- 普通用户
- 上级
+ {{$t('OrdinaryUsers')}}
+ {{$t('superior')}}
-
+
node.parentNode"/>-->
-
-
- 男
- 女
+
+
+ {{$t('male')}}
+ {{$t('female')}}
-
-
+
+
-
-
+
+
@@ -154,10 +154,10 @@
@@ -201,7 +201,7 @@
validatorRules:{
username:{
rules: [{
- required: true, message: '请输入用户账号!'
+ required: true, message: this.$t('enterUserAccount')
},{
validator: this.validateUsername,
}]
@@ -210,19 +210,19 @@
rules: [{
required: true,
pattern:/^(?=.*[a-zA-Z])(?=.*\d)(?=.*[~!@#$%^&*()_+`\-={}:";'<>?,./]).{8,}$/,
- message: '密码由8位数字、大小写字母和特殊符号组成!'
+ message: this.$t('passwordConsists')
}, {
validator: this.validateToNextPassword,
}],
},
confirmpassword:{
rules: [{
- required: true, message: '请重新输入登录密码!',
+ required: true, message: this.$t('reenterLoginPassword'),
}, {
validator: this.compareToFirstPassword,
}],
},
- realname:{rules: [{ required: true, message: '请输入用户名称!' }]},
+ realname:{rules: [{ required: true, message: this.$t('enterUserName') }]},
phone:{rules: [{validator: this.validatePhone}]},
email:{
rules: [{
@@ -233,19 +233,19 @@
// sex:{initialValue:((!this.model.sex)?"": (this.model.sex+""))}
workNo: {
rules: [
- { required: true, message: '请输入工号' },
+ { required: true, message: this.$t('enterJobNumber') },
{ validator: this.validateWorkNo }
]
},
telephone: {
rules: [
- { pattern: /^0\d{2,3}-[1-9]\d{6,7}$/, message: '请输入正确的座机号码' },
+ { pattern: /^0\d{2,3}-[1-9]\d{6,7}$/, message: this.$t('enterCorrectLandline') },
]
}
},
departIdShow:false,
departIds:[], //负责部门id
- title:"操作",
+ title:this.$t('operation'),
visible: false,
model: {},
roleList:[],
@@ -492,7 +492,7 @@
const confirmpassword=form.getFieldValue('confirmpassword');
if (value && confirmpassword && value !== confirmpassword) {
- callback('两次输入的密码不一样!');
+ callback(this.$t('passwordsEnteredTwice'));
}
if (value && this.confirmDirty) {
form.validateFields(['confirm'], { force: true })
@@ -502,7 +502,7 @@
compareToFirstPassword (rule, value, callback) {
const form = this.form;
if (value && value !== form.getFieldValue('password')) {
- callback('两次输入的密码不一样!');
+ callback(this.$t('passwordsEnteredTwice'));
} else {
callback()
}
@@ -525,11 +525,11 @@
if (res.success) {
callback()
} else {
- callback("手机号已存在!")
+ callback(this.$t('PnumberExists'))
}
})
}else{
- callback("请输入正确格式的手机号码!");
+ callback(this.$t('enterPhoneCorrect'));
}
}
},
@@ -549,11 +549,11 @@
if (res.success) {
callback()
} else {
- callback("邮箱已存在!")
+ callback(this.$t('MailboxExists'))
}
})
}else{
- callback("请输入正确格式的邮箱!")
+ callback(this.$t('enterMailboxCorrect'))
}
}
},
@@ -568,7 +568,7 @@
if (res.success) {
callback()
} else {
- callback("用户名已存在!")
+ callback(this.$t('UserExists'))
}
})
},
@@ -583,7 +583,7 @@
if (res.success) {
callback()
} else {
- callback("工号已存在!")
+ callback(this.$t('nameExists'))
}
})
},
@@ -602,7 +602,7 @@
beforeUpload: function(file){
var fileType = file.type;
if(fileType.indexOf('image')<0){
- this.$message.warning('请上传图片');
+ this.$message.warning(this.$t('uploadPictures'));
return false;
}
//TODO 验证文件大小
diff --git a/jero-web/src/views/system/modules/UserRecycleBinModal.vue b/jero-web/src/views/system/modules/UserRecycleBinModal.vue
index 0e042207f..86c11e3e0 100644
--- a/jero-web/src/views/system/modules/UserRecycleBinModal.vue
+++ b/jero-web/src/views/system/modules/UserRecycleBinModal.vue
@@ -4,21 +4,21 @@
:title="title"
:visible="innerVisible"
@cancel="handleCancel"
- cancelText="关闭"
+ :cancelText="$t('close')"
:okButtonProps="{style:{display:'none'}}"
>
- 已选择
+ {{$t('selected')}}
{{ selectedRowKeys.length }}
- 项
+ {{$t('term')}}
- 清空选择
+ {{$t('ClearSelection')}}
- 批量还原
+ {{$t('BatchRestore')}}
- 批量删除
+ {{$t('BatchDelete')}}
@@ -43,9 +43,9 @@
- 还原用户
+ {{$t('RestoreUser')}}
- 彻底删除
+ {{$t('CompletelyDelete')}}
@@ -65,8 +65,8 @@
throw new Error(res.message)
}
}).catch(e => {
- console.error('查询已删除的用户失败:', e)
- this.$message.warning('查询已删除的用户失败:' + (e.message || e))
+ console.error(this.$t('FailedQuery'), e)
+ this.$message.warning(this.$t('FailedQuery') + (e.message || e))
}).finally(() => {
this.loading = false
})
@@ -89,11 +89,11 @@
dataSource: [],
columns: [
{ title: '#', align: 'center', key: 'rowIndex', width: 80, customRender: (t, r, i) => i + 1 },
- { title: '账号', align: 'center', dataIndex: 'username' },
- { title: '姓名', align: 'center', dataIndex: 'realname', },
- { title: '头像', align: 'center', dataIndex: 'avatar', scopedSlots: { customRender: 'avatarslot' } },
- { title: '部门', align: 'center', dataIndex: 'orgCode' },
- { title: '操作', align: 'center', dataIndex: 'action', width: 200, scopedSlots: { customRender: 'action' } }
+ { title: this.$t('account'), align: 'center', dataIndex: 'username' },
+ { title: this.$t('userName'), align: 'center', dataIndex: 'realname', },
+ { title: this.$t('headPortrait'), align: 'center', dataIndex: 'avatar', scopedSlots: { customRender: 'avatarslot' } },
+ { title: this.$t('department'), align: 'center', dataIndex: 'orgCode' },
+ { title: this.$t('operation'), align: 'center', dataIndex: 'action', width: 200, scopedSlots: { customRender: 'action' } }
],
url: {
getAvatar: (path) => getFileAccessHttpUrl(`${path}`),
@@ -136,15 +136,15 @@
// 还原用户
handleRevert(userIds) {
this.$confirm({
- title: '恢复用户',
- content: `您确定要恢复这 ${userIds.length} 个用户吗?`,
+ title: this.$t('RestorUser'),
+ content: this.$t('sureRestore')+` ${userIds.length} `+this.$t('Users'),
centered: true,
onOk: () => {
putAction(this.url.putRecycleBin,{userIds:userIds.join(',')}).then((res)=>{
if(res.success){
this.handleOk()
this.handleClearSelection()
- this.$message.success(`还原 ${userIds.length} 个用户成功!`)
+ this.$message.success(this.$t('reduction')+` ${userIds.length} `+this.$t('UsersSucceeded'))
}
})
}