修改国际化配置

This commit is contained in:
lsymicc
2025-06-10 17:33:41 +08:00
parent ee0eeabcc8
commit b80c625e11
15 changed files with 721 additions and 412 deletions

View File

@@ -1025,6 +1025,20 @@ export default {
SystemMonitor_CacheMonitor: 'CacheMonitor',
//缓存列表
SystemMonitor_CacheList: 'CacheList',
//********************KPI分析********************
KPIAnalysis: 'KPI Analysis',
// 入库分析
KPIAnalysis_StockIn: 'StockIn Analysis',
// 出库分析
KPIAnalysis_StockOut: 'StockOut Analysis',
// 巷道分布
KPIAnalysis_Roadway: 'Roadway Distribution',
// 货位分析
KPIAnalysis_CargoSpace: 'Cargo Analysis',
// 库存平面图
KPIAnalysis_CargoPlan: 'Cargo Plan',
// ****************盘点管理******************
inventoryManagement: 'inventoryManagement',
@@ -1209,7 +1223,7 @@ export default {
deptName: 'DeptName',
phoneNumber: 'PhoneNumber',
status: 'Status',
creatTime: 'CreatTime',
createTime: 'CreatTime',
operation: 'Operation',
email: 'Email',
post: 'Post',
@@ -1245,8 +1259,12 @@ export default {
btnSubmit: 'Submit',
btnCancel: 'Cancel',
btnMore: 'More',
btnBack: 'Back',
btnResetPassword: 'Reset Password',
btnAssignRole: 'Assign Role',
btnSave: 'Save',
btnClose: 'Close',
btnSelect: 'Select',
//--------------二级窗口标题--------------
addUserItem: 'Add User',
@@ -1285,13 +1303,13 @@ export default {
//---函数:textUploadTitle---
textImportResult: 'Result',
//--------------操作提示--------------
addSuccessInfo: 'Add Success',
editSuccessInfo: 'Edit Success',
deleteSuccessInfo: 'Delete Success',
resetPasswordSuccessInfo: 'Reset Password Success',
assignRoleSuccessInfo: 'Assign Role Success',
authorizeSuccessInfo: 'Authorize Success',
//--------------校验提示--------------
checkUserNameIsNull: 'UserName cannot be null!',
@@ -1300,12 +1318,55 @@ export default {
checkPasswordIsNull: 'Password cannot be null!',
checkPasswordLength: 'Password length must be between 5-20 characters!',
checkPasswordCharacter: "Password cannot contain illegal characters: < > \" \' \\\ |",
checkEmailIsNull: 'Email cannot be null!',
checkEmailFormat: 'Please enter a valid email address!',
checkPhoneNumberIsNull: 'Phone number cannot be null!',
checkPhoneNumberFormat: 'Please enter a valid phone number!',
//--------------其他--------------
lblWidthUserName: '80px',
lblWidthPhoneNumber: '90px',
lblWidthDialog: '110px',
lblWidthPassword: '147px',
//------------------------------------------------------------------------
//分配角色
basInfo:'Basic Infomation',
roleInfo:'Role Info',
roleId:'Role Id',
roleName:'Role Name',
roleKey:'Role Key',
//个人信息
userInfo:'User Info',
roleGroup:'Role Group',
basDetail:'Basic Detail',
resetPwd:'Reset Password',
//基本资料---用户信息
male:'Male',
female:'Female',
//基本资料---修改密码
oldPassword:'Old Password',
newPassword:'New Password',
confirmPassword:'Confirm Password',
placecholderOldPassword:'Enter Old Password',
placecholderNewPassword:'Enter New Password',
placecholderConfirmPassword:'Confirm Password',
checkPasswordIsSame:'Fail:Different passwords entered twice',
oldPasswordIsNull:'Old Password cannot be null',
newPasswordIsNull:'New Password cannot be null',
passwordFormat1:"Password must be 6-20 characters long",
passwordFormat2:"Can't contain special characters:< > \" ' \\\ |",
confirmPasswordIsNull:'Confirm Password cannot be null',
//上传头像
avatarTitle:'Click to upload',
updateAvatar:'Update Avatar',
errorMessage:'The file format is wrong, please upload the image type, such as: JPG, PNG suffix file.'
},
@@ -1352,6 +1413,7 @@ export default {
btnMore: 'More',
btnDataPermission: 'Data Permission',
btnAssignRole: 'Assign Role',
btnClose: 'Close',
//--------------二级窗口标题--------------
addRoleItem: 'Add Role',
@@ -1404,6 +1466,32 @@ export default {
//--------------其他--------------
lblWidthUserName: '68px',
lblWidthPhoneNumber: '68px',
//-----------------------------------------------------------------
//选择用户
selectUserTitle: 'Select User',
userName: 'UserName',
nickName: 'NickName',
email: 'Email',
phoneNumber: 'PhoneNumber',
textSelectRole:'Select Assigned Role',
placeholderUserName: 'Enter UserName',
placeholderPhoneNumber: 'Enter PhoneNumber',
//分配角色
btnAddUserItem: 'Add User',
btnCancelAuthorizations: 'Cancel Authorizations',
btnCancelAuthorization: 'Cancel Authorization',
//---cancelAuthUser---
textConfirmCancelRole1: 'Sure you want to cancel the "',
textConfirmCancelRole2: '" role for this user?',
cancelSuccessInfo: '取消授权成功',
//---cancelAuthUserAll---
textConfirmCancelSelectedRole: 'Sure you want to uncheck the user authorization data item?',
},
@@ -2178,6 +2266,118 @@ export default {
},
// ***************KPI分析:入库分析***************
KPIAnalysis_StockIn:{
warehouse: 'Warehouse',
yearMonth: 'Year Month',
placeholderWarehouse: 'Select Warehouse',
placeholderYearMonth: 'Select Year&Month',
btnSearch: 'Search',
btnReset: 'Reset',
textChartStockIn: 'Stock In Analysis',
textYAxisName: 'Value',
lblWidthSearch:'90px'
},
// ***************KPI分析:出库分析***************
KPIAnalysis_StockOut:{
warehouse: 'Warehouse',
yearMonth: 'YearMonth',
placeholderWarehouse: 'Select Warehouse',
placeholderYearMonth: 'Select YearMonth',
btnSearch: 'Search',
btnReset: 'Reset',
textChartStockOut: 'Stock Out Analysis',
textYAxisName: 'Value',
lblWidthSearch:'90px'
},
// ***************KPI分析:巷道分析***************
KPIAnalysis_Roadway:{
warehouse: 'Warehouse',
dateStart: 'DateStart',
dateEnd: 'DateEnd',
placeholderWarehouse: 'Select Warehouse',
placeholderDateStart: 'Select DateStart',
placeholderDateEnd: 'Select DateEnd',
btnSearch: 'Search',
btnReset: 'Reset',
textChartRoadway: 'Roadway Analysis',
textValue: 'Value',
quantityOfStockIn: 'Stock In',
quantityOfStockOut: 'Stock Out',
lblWidthSearch:'90px'
},
// ***************KPI分析:货位分析***************
KPIAnalysis_CargoSpace:{
warehouse: 'Warehouse',
placeholderWarehouse: 'Select Warehouse',
btnSearch: 'Search',
btnReset: 'Reset',
//---handleQuery---
errorGetData: 'Error: Failed to get data',
//---updateChart---
warnInvalidChartData: 'Warning: Invalid chart data',
roadway: 'Roadway',
roadway1: 'Roadway-1',
roadway2: 'Roadway-2',
roadway3: 'Roadway-3',
roadway4: 'Roadway-4',
config:'Serise Configuration',
textChartCargoSpace: 'CargoSpace Analysis',
textValue: 'Value',
lblWidthSearch:'90px'
},
// ***************KPI分析:库存平面图***************
KPIAnalysis_CargoPlan:{
warehouse: 'Warehouse',
raodway: 'Roadway',
row: 'Row',
column: 'Column',
floor: 'Floor',
placeholderWarehouse: 'Select warehouse',
//---updateNormalChart---
title: 'Cargo Plan',
legendEmpty: 'Empty',
legendOccupied: 'Occupied',
legendStockInAssigned: 'Stock In Assigned',
legendStockOutAssigned: 'Stock Out Assigned',
legendStockInException:'Stock In Exception',
legendStockOutException:'Stock Out Exception',
//---formatTooltip---
failGetCargoSpace: 'Fail to get CargoSpace.',
lblWidthSearch:'90px'
},
// ***************出库作业流水查询*************
searchViewOutJobFlow: {

View File

@@ -632,218 +632,6 @@ export default {
},
searchViewStockSecure: {
stockId: '库存ID',
cargoSpaceId: '货位ID',
stockStatus: '库存状态',
productStatus: '物料状态',
lotNo: '批次号',
inDate: '入库时间',
backDate: '回流时间',
productGuid: '物料GUID',
quantity: '库存数量',
jobId: '作业ID',
trayCode: '托盘条码',
outQuantity: '出库数量',
stockinDetailId: '入库子单ID',
stockinId: '入库主单',
inType: '入库类型',
inputStockId: '请输入库存ID',
inputCargoSpaceId: '请输入货位ID',
selectStockStatus: '请选择库存状态',
selectProductStatus: '请选择物料状态',
inputLotNo: '请输入批次号',
inputInDate: '请输入入库时间',
inputBackDate: '请输入回流时间',
inputProductGuid: '请输入物料GUID',
inputContent: '请输入内容',
inputJobId: '请输入作业ID',
inputTrayCode: '请输入托盘条码',
inputStockinDetailId: '请输入入库子单ID',
inputStockinId: '请输入入库主单',
selectInType: '请选择入库类型',
confirm: '确定',
cancel: '取消',
stockIdRequired: '库存ID不能为空',
addTitle: '添加安全库存查询',
editTitle: '修改安全库存查询',
addSuccess: '新增成功',
editSuccess: '修改成功',
deleteSuccess: '删除成功',
deleteConfirm: '是否确认删除安全库存查询编号为"{stockIds}"的数据项?'
},
// *************供应商管理***************
BasSupplier: {
// 字段
supplierNo: '供应商编号',
supplierGroupNo: '供应商组编号',
supplierName: '供应商名称',
simpleName: '简称',
useable: '是否可用',
remark: '备注',
supplierArae: '地区分类',
taxpayerRegistrationNumber: '纳税人登记号',
country: '国家',
timeZone: '时区',
dataFormat: '数据格式',
receivingCountry: '收货国家',
taxCategory: '税类',
legalPerson: '法人',
registeredCapital: '注册资金',
address: '企业地址',
contactName: '联系人姓名',
contactNumber: '联系电话',
operation: '操作',
// 输入框提示
inputSupplierNo: '请输入供应商编号',
inputSupplierGroupNo: '请输入供应商组编号',
inputSupplierName: '请输入供应商名称',
inputSimpleName: '请输入简称',
inputUseable: '请输入是否可用',
inputRemark: '请输入备注',
inputSupplierArae: '请输入地区分类',
inputTaxpayerRegistrationNumber: '请输入纳税人登记号',
inputCountry: '请输入国家',
inputTimeZone: '请输入时区',
inputDataFormat: '请输入数据格式',
inputReceivingCountry: '请输入收货国家',
inputTaxCategory: '请输入税类',
inputLegalPerson: '请输入法人',
inputRegisteredCapital: '请输入注册资金',
inputAddress: '请输入企业地址',
inputContactName: '请输入联系人姓名',
inputContactNumber: '请输入联系电话',
// 按钮文本
search: '搜索',
reset: '重置',
add: '新增',
edit: '修改',
delete: '删除',
export: '导出',
confirm: '确定',
cancel: '取消',
// 对话框标题
addTitle: '添加供应商管理',
editTitle: '修改供应商管理',
// 成功提示
addSuccess: '新增成功',
editSuccess: '修改成功',
deleteSuccess: '删除成功',
// 删除确认提示
deleteConfirm: '是否确认删除供应商管理编号为{ids}的数据项?',
// 表单校验提示
fidRequired: 'fid不能为空',
useableRequired: '是否可用不能为空'
},
// *************物料管理***************
BasProduct: {
productId: '物料编码',
inputProductId: '请输入物料编码',
productName: '物料名称',
inputProductName: '请输入物料名称',
spare1: '英文描述',
inputSpare1: '请输入英文描述',
unit: '单位',
inputUnit: '请输入单位',
spare2: '单件净重KG',
inputSpare2: '请输入单件净重',
spare3: '箱号',
inputSpare3: '请输入箱号',
spare4: '包装方式',
inputSpare4: '请输入包装方式',
spare5: '长MM',
inputSpare5: '请输入长度',
spare6: '宽MM',
inputSpare6: '请输入宽度',
spare7: '高MM',
inputSpare7: '请输入高度',
spare8: '体积m³',
inputSpare8: '请输入体积m³',
price: '价格',
inputPrice: '请输入价格',
remark: '描述',
inputRemark: '请输入描述',
search: '搜索',
reset: '重置',
add: '新增',
edit: '修改',
delete: '删除',
export: '导出',
confirm: '确定',
cancel: '取消',
operation: '操作',
addTitle: '添加物料管理',
editTitle: '修改物料管理',
deleteConfirm: '是否确认删除物料管理编号为"{productGuids}"的数据项?',
addSuccess: '新增成功',
editSuccess: '修改成功',
deleteSuccess: '删除成功',
productIdRequired: '物料编码不能为空',
productNameRequired: '物料名称不能为空',
unitRequired: '单位不能为空',
priceRequired: '价格不能为空'
},
// *************供应商管理***************
BasPort: {
portName: '点位名称',
inputPortName: '请输入点位名称',
portType: '点位分类',
inputPortType: '请输入点位分类',
portDesc: '点位描述',
inputPortDesc: '请输入点位描述',
search: '搜索',
reset: '重置',
add: '新增',
edit: '修改',
delete: '删除',
export: '导出',
id: 'ID',
createMan: '创建人',
createTime: '创建时间',
operation: '操作',
confirm: '确定',
cancel: '取消',
addTitle: '添加基础点位',
editTitle: '修改基础点位',
addSuccess: '新增成功',
editSuccess: '修改成功',
deleteSuccess: '删除成功',
deleteConfirm: '是否确认删除基础点位编号为"{ids}"的数据项?',
productCode: '物料编码',
inputProductCode: '请输入物料编码',
productName: '物料名称',
inputProductName: '请输入物料名称',
bindStatus: '是否绑定',
selectBindStatus: '请选择状态',
batchBind: '批量绑定',
batchUnbind: '批量解绑',
productEnDesc: '英文描述',
unit: '单位',
netWeight: '单件净重KG',
boxNo: '箱号',
packWay: '包装方式',
length: '长MM',
width: '宽MM',
height: '高MM',
volume: '体积m³',
price: '价格',
description: '描述',
bindProduct: '绑定物料',
unbindProduct: '删除物料',
bindSuccess: '绑定成功',
unbindSuccess: '解绑成功',
selectProduct: '选择物料'
},
// *************库存操作记录***************
stockRecord: {
stockId: '库存编码',
@@ -1028,14 +816,25 @@ export default {
SystemMonitor_ScheduledTask: '定时任务',
// 数据监控
SystemMonitor_DataMonitor: '数据监控',
//服务监控
// 服务监控
SystemMonitor_ServiceMonitor: '服务监控',
//缓存监控
// 缓存监控
SystemMonitor_CacheMonitor: '缓存监控',
//缓存列表
// 缓存列表
SystemMonitor_CacheList: '缓存列表',
//********************KPI分析********************
KPIAnalysis: 'KPI分析',
// 入库分析
KPIAnalysis_StockIn: '入库分析',
// 出库分析
KPIAnalysis_StockOut: '出库分析',
// 巷道分布
KPIAnalysis_Roadway: '巷道分布',
// 货位分析
KPIAnalysis_CargoSpace: '货位分析',
// 库存平面图
KPIAnalysis_CargoPlan: '库存平面图',
// ****************盘点管理******************
@@ -1055,20 +854,7 @@ export default {
customerManagement:'客户管理',
supplierManagement:'供应商管理',
materialManagement:'物料管理',
basicPointLocation:'基础点位',
//*************** 查询统计*************
queryStatistics:'查询统计',
inventoryDetailQuery:'库存明细查询',
inventorySummaryQuery:'库存汇总查询',
inboundDocumentHistory:'入库单据历史',
outboundDocumentHistory:'出库单据历史',
inboundTaskFlow:'入库作业流水',
outboundTaskFlow:'出库作业流水',
flatInventoryFlow:'平库入库流水',
flatOutboundFlow:'平库出库流水',
safetyStockInquiry:'安全库存查询',
warningInventoryInquiry:'预警库存查询'
basicPointLocation:'基础点位'
},
@@ -1222,7 +1008,7 @@ export default {
deptName: '部门',
phoneNumber: '手机号',
status: '状态',
creatTime: '创建时间',
createTime: '创建时间',
operation: '操作',
email: '邮箱',
post: '岗位',
@@ -1258,8 +1044,12 @@ export default {
btnSubmit: '确定',
btnCancel: '取消',
btnMore: '更多',
btnBack: '返回',
btnResetPassword: '重置密码',
btnAssignRole: '分配角色',
btnSave: '保存',
btnClose: '关闭',
btnSelect: '选择',
//--------------二级窗口标题--------------
addUserItem: '添加用户',
@@ -1298,13 +1088,13 @@ export default {
//---函数:textUploadTitle---
textImportResult: '导入结果',
//--------------操作提示--------------
addSuccessInfo: '新增成功',
editSuccessInfo: '编辑成功',
deleteSuccessInfo: '删除成功',
resetPasswordSuccessInfo: '重置密码成功',
assignRoleSuccessInfo: '分配角色成功',
authorizeSuccessInfo: '授权成功',
//--------------校验提示--------------
checkUserNameIsNull: '用户名称不能为空',
@@ -1313,13 +1103,55 @@ export default {
checkPasswordIsNull: '密码不能为空',
checkPasswordLength: '密码长度必须介于5-20个字符',
checkPasswordCharacter: "不能包含非法字符:< > \" ' \\\ |",
checkEmailIsNull: '邮箱地址不能为空',
checkEmailFormat: '请输入正确的邮箱地址',
checkPhoneNumberIsNull: '手机号不能为空',
checkPhoneNumberFormat: '请输入正确的手机号',
//--------------其他--------------
lblWidthUserName: '68px',
lblWidthPhoneNumber: '68px',
lblWidthDialog: '80px',
lblWidthPassword: '80px',
//------------------------------------------------------------------------
//分配角色
basInfo:'基本信息',
roleInfo:'角色信息',
roleId:'角色编号',
roleName:'角色名称',
roleKey:'权限字符',
//个人信息
userInfo:'个人信息',
roleGroup:'所属角色',
basDetail:'基本资料',
resetPwd:'修改密码',
//基本资料---用户信息
male:'男',
female:'女',
//基本资料---修改密码
oldPassword:'旧密码',
newPassword:'新密码',
confirmPassword:'确认密码',
placecholderOldPassword:'请输入旧密码',
placecholderNewPassword:'请输入新密码',
placecholderConfirmPassword:'再次确认密码',
checkPasswordIsSame:'两次输入的密码不一致',
oldPasswordIsNull:'旧密码不能为空',
newPasswordIsNull:'新密码不能为空',
passwordFormat1:"长度在 6 到 20 个字符",
passwordFormat2:"不能包含非法字符:< > \" ' \\\ |",
confirmPasswordIsNull:'确认密码不能为空',
//上传头像
avatarTitle:'点击上传头像',
updateAvatar:'修改头像',
errorMessage:'文件格式错误,请上传图片类型,如:JPG,PNG后缀的文件。'
},
@@ -1366,6 +1198,7 @@ export default {
btnMore: '更多',
btnDataPermission: '数据权限',
btnAssignRole: '分配角色',
btnClose: '关闭',
//--------------二级窗口标题--------------
addRoleItem: '添加角色',
@@ -1418,6 +1251,32 @@ export default {
//--------------其他--------------
lblWidthUserName: '68px',
lblWidthPhoneNumber: '68px',
//-----------------------------------------------------------------
//选择用户
selectUserTitle: '选择用户',
userName: '用户名称',
nickName: '用户昵称',
email: '邮箱',
phoneNumber: '手机号码',
textSelectRole:'请选择要分配的用户',
placeholderUserName: '用户名称',
placeholderPhoneNumber: '手机号码',
//分配角色
btnAddUserItem: '添加用户',
btnCancelAuthorizations: '批量取消授权',
btnCancelAuthorization: '取消授权',
//---cancelAuthUser---
textConfirmCancelRole1: '确认要取消该用户"',
textConfirmCancelRole2: '"角色吗?',
cancelSuccessInfo: '取消授权成功',
//---cancelAuthUserAll---
textConfirmCancelSelectedRole: '是否取消选中用户授权数据项?',
},
@@ -2204,6 +2063,117 @@ export default {
},
// ***************KPI分析:入库分析***************
KPIAnalysis_StockIn:{
warehouse: '仓库',
yearMonth: '年月',
placeholderWarehouse: '请选择仓库',
placeholderYearMonth: '选择年月',
btnSearch: '查询',
btnReset: '重置',
textChartStockIn: '入库分析',
textYAxisName: '数量',
lblWidthSearch:'68px'
},
// ***************KPI分析:出库分析***************
KPIAnalysis_StockOut:{
warehouse: '仓库',
yearMonth: '年月',
placeholderWarehouse: '请选择仓库',
placeholderYearMonth: '选择年月',
btnSearch: '查询',
btnReset: '重置',
textChartStockOut: '出库分析',
textYAxisName: '数量',
lblWidthSearch:'68px'
},
// ***************KPI分析:巷道分析***************
KPIAnalysis_Roadway:{
warehouse: '仓库',
dateStart: '开始时间',
dateEnd: '结束时间',
placeholderWarehouse: '请选择仓库',
placeholderDateStart: '请选择开始时间',
placeholderDateEnd: '请选择结束时间',
btnSearch: '查询',
btnReset: '重置',
textChartRoadway: '巷道分布分析',
textValue: '数量',
quantityOfStockIn: '入库数量',
quantityOfStockOut: '出库数量',
lblWidthSearch:'68px'
},
// ***************KPI分析:货位分析***************
KPIAnalysis_CargoSpace:{
warehouse: '仓库',
placeholderWarehouse: '请选择仓库',
btnSearch: '查询',
btnReset: '重置',
//---handleQuery---
errorGetData: '获取数据失败',
//---updateChart---
warnInvalidChartData: '无效的图表数据',
roadway: '巷道',
roadway1: '巷道1',
roadway2: '巷道2',
roadway3: '巷道3',
roadway4: '巷道4',
config:'生成的系列配置',
textChartCargoSpace: '货位分析',
textValue: '数量',
lblWidthSearch:'68px'
},
// ***************KPI分析:库存平面图***************
KPIAnalysis_CargoPlan:{
warehouse: '仓库',
raodway: '巷道',
row: '排',
column: '列',
floor: '层',
placeholderWarehouse: '请选择仓库',
//---updateNormalChart---
title: '库位分布平面图',
legendEmpty: '空位',
legendOccupied: '满位',
legendStockInAssigned: '入库已分配',
legendStockOutAssigned: '出库已分配',
legendStockInException:'入库需盘点',
legendStockOutException:'出库需盘点',
//---formatTooltip---
failGetCargoSpace: '获取货位信息失败',
lblWidthSearch:'68px'
},
// ***************出库作业流水查询*************

View File

@@ -1,8 +1,9 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="仓库" prop="warehouseId">
<el-select v-model="queryParams.warehouseId" placeholder="请选择仓库" clearable>
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" :label-width="$t('KPIAnalysis_StockIn.lblWidthSearch')">
<!-- 仓库 -->
<el-form-item :label="this.$t('KPIAnalysis_StockIn.warehouse')" prop="warehouseId">
<el-select v-model="queryParams.warehouseId" :placeholder="this.$t('KPIAnalysis_StockIn.placeholderWarehouse')" clearable>
<el-option
v-for="dict in warehouseOptions"
:key="dict.warehouseId"
@@ -11,19 +12,22 @@
/>
</el-select>
</el-form-item>
<el-form-item label="年月" prop="yearMonth">
<!-- 年月 -->
<el-form-item :label="this.$t('KPIAnalysis_StockIn.yearMonth')" prop="yearMonth">
<el-date-picker
v-model="queryParams.yearMonth"
type="month"
placeholder="选择年月"
:placeholder="this.$t('KPIAnalysis_StockIn.placeholderYearMonth')"
value-format="yyyy-MM"
format="yyyy-MM"
clearable
/>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
<!-- 【查询】按钮 -->
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">{{ $t('KPIAnalysis_StockIn.btnSearch') }}</el-button>
<!-- 【重置】按钮 -->
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">{{ $t('KPIAnalysis_StockIn.btnReset') }}</el-button>
</el-form-item>
</el-form>
@@ -108,7 +112,8 @@ export default {
updateChart() {
const option = {
title: {
text: '入库均匀分析',
// 标题:入库均匀分析
text: this.$t('KPIAnalysis_StockIn.textChartStockIn'),
left: 'center'
},
tooltip: {
@@ -127,7 +132,8 @@ export default {
},
yAxis: {
type: 'value',
name: '数量'
// 数量
name: this.$t('KPIAnalysis_StockIn.textYAxisName')
},
series: [{
data: this.chartData.counts,

View File

@@ -1,8 +1,9 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="仓库" prop="warehouseId">
<el-select v-model="queryParams.warehouseId" placeholder="请选择仓库" clearable>
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" :label-width="$t('KPIAnalysis_StockIn.lblWidthSearch')">
<!-- 仓库 -->
<el-form-item :label="$t('KPIAnalysis_StockOut.warehouse')" prop="warehouseId">
<el-select v-model="queryParams.warehouseId" :placeholder="$t('KPIAnalysis_StockOut.placeholderWarehouse')" clearable>
<el-option
v-for="dict in warehouseOptions"
:key="dict.warehouseId"
@@ -11,19 +12,22 @@
/>
</el-select>
</el-form-item>
<el-form-item label="年月" prop="yearMonth">
<!-- 年月 -->
<el-form-item :label="$t('KPIAnalysis_StockOut.yearMonth')" prop="yearMonth">
<el-date-picker
v-model="queryParams.yearMonth"
type="month"
placeholder="选择年月"
:placeholder="$t('KPIAnalysis_StockOut.placeholderYearMonth')"
value-format="yyyy-MM"
format="yyyy-MM"
clearable
/>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
<!-- 【查询】按钮 -->
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">{{ $t('KPIAnalysis_StockOut.btnSearch') }}</el-button>
<!-- 【重置】按钮 -->
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">{{ $t('KPIAnalysis_StockOut.btnReset') }}</el-button>
</el-form-item>
</el-form>
@@ -108,7 +112,8 @@ export default {
updateChart() {
const option = {
title: {
text: '出库均匀分析',
// 标题:出库均匀分析
text: this.$t('KPIAnalysis_StockOut.textChartStockOut'),
left: 'center'
},
tooltip: {
@@ -127,7 +132,8 @@ export default {
},
yAxis: {
type: 'value',
name: '数量'
// 数量
name: this.$t('KPIAnalysis_StockOut.textYAxisName')
},
series: [{
data: this.chartData.counts,

View File

@@ -1,8 +1,9 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="仓库" prop="warehouseId">
<el-select v-model="queryParams.warehouseId" placeholder="请选择仓库" clearable>
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" :label-width="$t('KPIAnalysis_Roadway.lblWidthSearch')">
<!-- 仓库 -->
<el-form-item :label="$t('KPIAnalysis_Roadway.warehouse')" prop="warehouseId">
<el-select v-model="queryParams.warehouseId" :placeholder="$t('KPIAnalysis_Roadway.placeholderWarehouse')" clearable>
<el-option
v-for="dict in warehouseOptions"
:key="dict.warehouseId"
@@ -11,29 +12,33 @@
/>
</el-select>
</el-form-item>
<el-form-item label="开始时间" prop="startTime">
<!-- 开始时间 -->
<el-form-item :label="$t('KPIAnalysis_Roadway.dateStart')" prop="startTime">
<el-date-picker
v-model="queryParams.startTime"
type="datetime"
placeholder="选择开始时间"
:placeholder="$t('KPIAnalysis_Roadway.placeholderDateStart')"
value-format="yyyy-MM-dd HH:mm:ss"
format="yyyy-MM-dd HH:mm:ss"
clearable
/>
</el-form-item>
<el-form-item label="结束时间" prop="endTime">
<!-- 结束时间 -->
<el-form-item :label="$t('KPIAnalysis_Roadway.dateEnd')" prop="endTime">
<el-date-picker
v-model="queryParams.endTime"
type="datetime"
placeholder="选择结束时间"
:placeholder="$t('KPIAnalysis_Roadway.placeholderDateEnd')"
value-format="yyyy-MM-dd HH:mm:ss"
format="yyyy-MM-dd HH:mm:ss"
clearable
/>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
<!-- 【搜索】按钮 -->
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">{{ $t('KPIAnalysis_Roadway.btnSearch') }}</el-button>
<!-- 【重置】按钮 -->
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">{{ $t('KPIAnalysis_Roadway.btnReset') }}</el-button>
</el-form-item>
</el-form>
@@ -119,7 +124,8 @@ export default {
updateChart() {
const option = {
title: {
text: '巷道均匀分析',
// 巷道均匀分析
text: this.$t('KPIAnalysis_Roadway.textChartRoadway'),
left: 'center'
},
tooltip: {
@@ -129,7 +135,8 @@ export default {
}
},
legend: {
data: ['入库数量', '出库数量'],
// 【入库数量】、【出库数量】
data: [this.$t('KPIAnalysis_Roadway.quantityOfStockIn'), this.$t('KPIAnalysis_Roadway.quantityOfStockOut')],
top: '30px'
},
xAxis: {
@@ -142,11 +149,13 @@ export default {
},
yAxis: {
type: 'value',
name: '数量'
// 数量
name: this.$t('KPIAnalysis_Roadway.textValue')
},
series: [
{
name: '入库数量',
// 入库数量
name: this.$t('KPIAnalysis_Roadway.quantityOfStockIn'),
data: this.chartData.inCounts,
type: 'bar',
barWidth: '30%',
@@ -159,7 +168,8 @@ export default {
}
},
{
name: '出库数量',
// 出库数量
name: this.$t('KPIAnalysis_Roadway.quantityOfStockOut'),
data: this.chartData.outCounts,
type: 'bar',
barWidth: '30%',

View File

@@ -1,8 +1,9 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="仓库" prop="warehouseId">
<el-select v-model="queryParams.warehouseId" placeholder="请选择仓库" clearable>
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" :label-width="$t('KPIAnalysis_CargoSpace.lblWidthSearch')">
<!-- 仓库 -->
<el-form-item :label="$t('KPIAnalysis_CargoSpace.warehouse')" prop="warehouseId">
<el-select v-model="queryParams.warehouseId" :placeholder="$t('KPIAnalysis_CargoSpace.placeholderWarehouse')" clearable>
<el-option
v-for="dict in warehouseOptions"
:key="dict.warehouseId"
@@ -12,8 +13,10 @@
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
<!-- 【搜索】按钮 -->
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">{{ $t('KPIAnalysis_CargoSpace.btnSearch') }}</el-button>
<!-- 【重置】按钮 -->
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">{{ $t('KPIAnalysis_CargoSpace.btnReset') }}</el-button>
</el-form-item>
</el-form>
@@ -85,8 +88,9 @@ export default {
this.$message.error(response.msg);
}
}).catch(error => {
console.error('获取数据失败:', error);
this.$message.error('获取数据失败');
// 提示:获取数据失败
console.error(this.$t('KPIAnalysis_CargoSpace.errorGetData') + ':', error);
this.$message.error(this.$t('KPIAnalysis_CargoSpace.errorGetData'));
});
},
/** 重置按钮操作 */
@@ -106,12 +110,14 @@ export default {
updateChart() {
console.log('chartData:', this.chartData);
if (!this.chartData || !this.chartData.data || this.chartData.data.length === 0) {
console.warn('无效的图表数据');
// 提示:无效的图表数据
console.warn(this.$t('KPIAnalysis_CargoSpace.warnInvalidChartData'));
return;
}
// 获取数据中所有的巷道字段
const firstItem = this.chartData.data[0];
// 巷道
const roadwayFields = Object.keys(firstItem).filter(key => key.startsWith('巷道'));
// 准备系列配置
@@ -121,21 +127,24 @@ export default {
data: this.chartData.data.map(item => item[roadway]),
barWidth: '30%',
itemStyle: {
// 巷道1-4
color: roadway === '巷道1' ? '#1890ff' :
roadway === '巷道2' ? '#52c41a' :
roadway === '巷道3' ? '#1890ff' :
roadway === '巷道4' ? '#52c41a' : '#1890ff'
roadway === '巷道2' ? '#52c41a' :
roadway === '巷道3' ? '#1890ff' :
roadway === '巷道4' ? '#52c41a' : '#1890ff'
},
label: {
show: true,
position: 'top'
}
}));
console.log('生成的系列配置:', series);
// 提示:生成的系列配置
console.log(this.$t('KPIAnalysis_CargoSpace.config'), series);
const option = {
title: {
text: '货位状态分析',
// 货位状态分析
text: this.$t('KPIAnalysis_CargoSpace.textChartCargoSpace'),
left: 'center'
},
tooltip: {
@@ -161,7 +170,8 @@ export default {
},
yAxis: {
type: 'value',
name: '数量'
// 数量
name: this.$t('KPIAnalysis_CargoSpace.textValue')
},
series: series
};

View File

@@ -2,8 +2,9 @@
<div class="app-container">
<div class="search-box">
<el-form :model="queryParams" ref="queryForm" :inline="true">
<el-form-item label="仓库" prop="warehouseId">
<el-select v-model="queryParams.warehouseId" placeholder="请选择仓库" clearable @change="handleWarehouseChange">
<!-- 仓库 -->
<el-form-item :label="$t('KPIAnalysis_CargoPlan.warehouse')" prop="warehouseId">
<el-select v-model="queryParams.warehouseId" :placeholder="$t('KPIAnalysis_CargoPlan.placeholderWarehouse')" clearable @change="handleWarehouseChange">
<el-option
v-for="dict in warehouseOptions"
:key="dict.warehouseId"
@@ -12,12 +13,14 @@
/>
</el-select>
</el-form-item>
<el-form-item label="巷道">
<!-- 巷道 -->
<el-form-item :label="$t('KPIAnalysis_CargoPlan.raodway')">
<el-select v-model="queryParams.roadwayId" style="width: 150px" @change="handleRoadwayChange">
<el-option v-for="item in roadwayOptions" :key="item.value" :label="item.label" :value="item.value"/>
</el-select>
</el-form-item>
<el-form-item label="排">
<!-- 排 -->
<el-form-item :label="$t('KPIAnalysis_CargoPlan.row')">
<el-select v-model="queryParams.thePlatoon" style="width: 150px" @change="handlePlatoonChange">
<el-option v-for="item in platoonOptions" :key="item.value" :label="item.label" :value="item.value"/>
</el-select>
@@ -35,6 +38,7 @@
import * as echarts from 'echarts'
import {getRoadways, getPlatoons, getChartData, getChartMag} from "@/api/kpi/spacePlan"
import {listWarehouse} from "@/api/bas/warehouse";
import VueI18n from 'vue-i18n';
export default {
name: 'SpacePlan',
@@ -169,8 +173,10 @@ this.getWarehouseList()
}
},
title: {
text: '库位分布平面图',
subtext: this.queryParams.thePlatoon + '排'
// 标题:库位分布平面图
text: this.$t('KPIAnalysis_CargoPlan.title'),
// 子标题:排
subtext: this.queryParams.thePlatoon + this.$t('KPIAnalysis_CargoPlan.row')
},
grid: {
width: '90%',
@@ -202,27 +208,33 @@ this.getWarehouseList()
legend: {
data: [
{
name: '空位',
// 图例:空位
name: this.$t('KPIAnalysis_CargoPlan.legendEmpty'),
itemStyle: { color: '#AEEEEE' }
},
{
name: '满位',
// 图例:满位
name: this.$t('KPIAnalysis_CargoPlan.legendOccupied'),
itemStyle: { color: '#FF9900' }
},
{
name: '入库分配',
// 图例:入库分配
name: this.$t('KPIAnalysis_CargoPlan.legendStockInAssigned'),
itemStyle: { color: '#FFFF00' }
},
{
name: '出库分配',
itemStyle: { color: '#00CC00' }
},
{
name: '入库需盘点',
// 图例:出库分配
name: this.$t('KPIAnalysis_CargoPlan.legendStockOutAssigned'),
itemStyle: { color: '#FF0000' }
},
{
name: '出库需盘点',
// 图例:入库需盘点
name: this.$t('KPIAnalysis_CargoPlan.legendStockInException'),
itemStyle: { color: '#FF0000' }
},
{
// 图例:出库需盘点
name: this.$t('KPIAnalysis_CargoPlan.legendStockOutException'),
itemStyle: { color: '#0000FF' }
}
],
@@ -232,7 +244,8 @@ this.getWarehouseList()
},
series: [
{
name: '空位',
// 空位
name: this.$t('KPIAnalysis_CargoPlan.legendEmpty'),
type: 'heatmap',
data: this.chartData.empty,
itemStyle: {
@@ -241,7 +254,8 @@ this.getWarehouseList()
}
},
{
name: '满位',
// 满位
name: this.$t('KPIAnalysis_CargoPlan.legendOccupied'),
type: 'heatmap',
data: this.chartData.full,
itemStyle: {
@@ -250,7 +264,8 @@ this.getWarehouseList()
}
},
{
name: '入库分配',
// 入库分配
name: this.$t('KPIAnalysis_CargoPlan.legendStockInAssigned'),
type: 'heatmap',
data: this.chartData.inAllot,
itemStyle: {
@@ -259,7 +274,8 @@ this.getWarehouseList()
}
},
{
name: '出库分配',
// 出库分配
name: this.$t('KPIAnalysis_CargoPlan.legendStockOutAssigned'),
type: 'heatmap',
data: this.chartData.outAllot,
itemStyle: {
@@ -268,7 +284,8 @@ this.getWarehouseList()
}
},
{
name: '入库需盘点',
// 入库需盘点
name: this.$t('KPIAnalysis_CargoPlan.legendStockInException'),
type: 'heatmap',
data: this.chartData.inCheck,
itemStyle: {
@@ -277,7 +294,8 @@ this.getWarehouseList()
}
},
{
name: '出库需盘点',
// 出库需盘点
name: this.$t('KPIAnalysis_CargoPlan.legendStockOutException'),
type: 'heatmap',
data: this.chartData.outCheck,
itemStyle: {
@@ -302,7 +320,14 @@ this.getWarehouseList()
// 格式化普通仓库提示信息
formatTooltip(params) {
if (params.seriesName !== '满位') {
return params.seriesName + '<br>' + this.queryParams.thePlatoon + '排' + (params.data[0] + 1) + '列' + (params.data[1] + 1) + '层';
// 排
if (this.$i18n.locale ==='zh-cn') {
return params.seriesName + '<br>' + this.queryParams.thePlatoon + '排' + (params.data[0] + 1) + '列' + (params.data[1] + 1) + '层';
}
else{
return params.seriesName + '<br>' + this.$t('KPIAnalysis_CargoPlan.row') + ':' + this.queryParams.thePlatoon + ' ' + this.$t('KPIAnalysis_CargoPlan.column') + ':' + (params.data[0] + 1) + ' ' + this.$t('KPIAnalysis_CargoPlan.floor') + ': ' + (params.data[1] + 1);
}
}
const returnData = {
@@ -347,7 +372,8 @@ this.getWarehouseList()
});
})
.catch(error => {
console.error('获取货位信息失败:', error);
// 提示:获取货位信息失败
console.error(this.$t('KPIAnalysis_CargoPlan.failGetCargoSpace') + ':', error);
})
.finally(() => {
// 清除加载状态

View File

@@ -1,32 +1,39 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch">
<el-form-item label="用户名称" prop="userName">
<!-- 搜索表单 -->
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch">
<!-- 用户名称:请输入用户名称 -->
<el-form-item :label="$t('systemManagement_RoleManagement.userName')" prop="userName">
<el-input
v-model="queryParams.userName"
placeholder="请输入用户名称"
:placeholder="$t('systemManagement_RoleManagement.placeholderUserName')"
clearable
style="width: 240px"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="手机号码" prop="phonenumber">
<!-- 手机号码:请输入手机号码 -->
<el-form-item :label="$t('systemManagement_RoleManagement.phoneNumber')" prop="phonenumber">
<el-input
v-model="queryParams.phonenumber"
placeholder="请输入手机号码"
:placeholder="$t('systemManagement_RoleManagement.placeholderUserName')"
clearable
style="width: 240px"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
<!-- 搜索按钮 -->
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">{{ $t('systemManagement_RoleManagement.btnSearch') }}</el-button>
<!-- 重置按钮 -->
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">{{ $t('systemManagement_RoleManagement.btnReset') }}</el-button>
</el-form-item>
</el-form>
<!-- 工具栏 -->
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<!-- 添加用户按钮 -->
<el-button
type="primary"
plain
@@ -34,9 +41,10 @@
size="mini"
@click="openSelectUser"
v-hasPermi="['system:role:add']"
>添加用户</el-button>
>{{ $t('systemManagement_RoleManagement.btnAddUserItem') }}</el-button>
</el-col>
<el-col :span="1.5">
<!-- 批量取消授权按钮 -->
<el-button
type="danger"
plain
@@ -45,49 +53,60 @@
:disabled="multiple"
@click="cancelAuthUserAll"
v-hasPermi="['system:role:remove']"
>批量取消授权</el-button>
>{{ $t('systemManagement_RoleManagement.btnCancelAuthorizations') }}</el-button>
</el-col>
<el-col :span="1.5">
<!-- 关闭按钮 -->
<el-button
type="warning"
plain
icon="el-icon-close"
size="mini"
@click="handleClose"
>关闭</el-button>
>{{ $t('systemManagement_RoleManagement.btnClose') }}</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<!-- 用户列表表格 -->
<el-table v-loading="loading" :data="userList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="用户名称" prop="userName" :show-overflow-tooltip="true" />
<el-table-column label="用户昵称" prop="nickName" :show-overflow-tooltip="true" />
<el-table-column label="邮箱" prop="email" :show-overflow-tooltip="true" />
<el-table-column label="手机" prop="phonenumber" :show-overflow-tooltip="true" />
<el-table-column label="状态" align="center" prop="status">
<!-- 用户名称列 -->
<el-table-column :label="$t('systemManagement_RoleManagement.userName')" prop="userName" :show-overflow-tooltip="true" />
<!-- 用户昵称列 -->
<el-table-column :label="$t('systemManagement_RoleManagement.nickName')" prop="nickName" :show-overflow-tooltip="true" />
<!-- 邮箱列 -->
<el-table-column :label="$t('systemManagement_RoleManagement.email')" prop="email" :show-overflow-tooltip="true" />
<!-- 手机号列 -->
<el-table-column :label="$t('systemManagement_RoleManagement.phoneNumber')" prop="phonenumber" :show-overflow-tooltip="true" />
<!-- 状态列 -->
<el-table-column :label="$t('systemManagement_RoleManagement.status')" align="center" prop="status">
<template slot-scope="scope">
<dict-tag :options="dict.type.sys_normal_disable" :value="scope.row.status"/>
</template>
</el-table-column>
<el-table-column label="创建时间" align="center" prop="createTime" width="180">
<!-- 创建时间列 -->
<el-table-column :label="$t('systemManagement_RoleManagement.createTime')" align="center" prop="createTime" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.createTime) }}</span>
</template>
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<!-- 操作列 -->
<el-table-column :label="$t('systemManagement_RoleManagement.operation')" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<!-- 取消授权按钮 -->
<el-button
size="mini"
type="text"
icon="el-icon-circle-close"
@click="cancelAuthUser(scope.row)"
v-hasPermi="['system:role:remove']"
>取消授权</el-button>
>{{ $t('systemManagement_RoleManagement.btnCancelAuthorization') }}</el-button>
</template>
</el-table-column>
</el-table>
<!-- 分页组件 -->
<pagination
v-show="total>0"
:total="total"
@@ -95,6 +114,8 @@
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 引入选择用户弹窗组件 -->
<select-user ref="select" :roleId="queryParams.roleId" @ok="handleQuery" />
</div>
</template>
@@ -109,19 +130,19 @@ export default {
components: { selectUser },
data() {
return {
// 遮罩层
// 遮罩层加载状态
loading: true,
// 选中用户组
// 选中的用户ID集合
userIds: [],
// 非多个禁用
// 是否禁用批量操作
multiple: true,
// 显示搜索条件
// 是否显示搜索区域
showSearch: true,
// 总条数
total: 0,
// 用户表格数据
userList: [],
// 查询参数
// 查询参数对象
queryParams: {
pageNum: 1,
pageSize: 10,
@@ -132,6 +153,7 @@ export default {
}
},
created() {
// 获取路由传参中的角色ID
const roleId = this.$route.params && this.$route.params.roleId
if (roleId) {
this.queryParams.roleId = roleId
@@ -149,7 +171,7 @@ export default {
}
)
},
// 返回按钮
// 返回按钮点击事件
handleClose() {
const obj = { path: "/system/role" }
this.$tab.closeOpenPage(obj)
@@ -164,7 +186,7 @@ export default {
this.resetForm("queryForm")
this.handleQuery()
},
// 多选框选中数据
// 多选框选中数据变化时触发
handleSelectionChange(selection) {
this.userIds = selection.map(item => item.userId)
this.multiple = !selection.length
@@ -176,22 +198,26 @@ export default {
/** 取消授权按钮操作 */
cancelAuthUser(row) {
const roleId = this.queryParams.roleId
this.$modal.confirm('确认要取消该用户"' + row.userName + '"角色吗?').then(function() {
// 提示:确认要取消该用户 + row.userName + '"角色吗?
this.$modal.confirm(this.$t('systemManagement_RoleManagement.textConfirmCancelRole1') + row.userName + this.$t('systemManagement_RoleManagement.textConfirmCancelRole2')).then(function() {
return authUserCancel({ userId: row.userId, roleId: roleId })
}).then(() => {
this.getList()
this.$modal.msgSuccess("取消授权成功")
// 提示:取消授权成功
this.$modal.msgSuccess(this.$t('systemManagement_RoleManagement.cancelSuccessInfo'))
}).catch(() => {})
},
/** 批量取消授权按钮操作 */
cancelAuthUserAll(row) {
const roleId = this.queryParams.roleId
const userIds = this.userIds.join(",")
this.$modal.confirm('是否取消选中用户授权数据项?').then(function() {
// 是否取消选中用户授权数据项?
this.$modal.confirm(this.$t('systemManagement_RoleManagement.textConfirmCancelSelectedRole')).then(function() {
return authUserCancelAll({ roleId: roleId, userIds: userIds })
}).then(() => {
this.getList()
this.$modal.msgSuccess("取消授权成功")
// 取消授权成功
this.$modal.msgSuccess(this.$t('systemManagement_RoleManagement.cancelSuccessInfo'))
}).catch(() => {})
}
}

View File

@@ -1,41 +1,52 @@
<template>
<!-- 授权用户 -->
<el-dialog title="选择用户" :visible.sync="visible" width="800px" top="5vh" append-to-body>
<!-- 选择用户 -->
<el-dialog :title="$t('systemManagement_RoleManagement.selectUserTitle')" :visible.sync="visible" width="800px" top="5vh" append-to-body>
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true">
<el-form-item label="用户名称" prop="userName">
<!-- 用户名称 -->
<el-form-item :label="$t('systemManagement_RoleManagement.userName')" prop="userName">
<el-input
v-model="queryParams.userName"
placeholder="请输入用户名称"
:placeholder="$t('systemManagement_RoleManagement.placeholderUserName')"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="手机号码" prop="phonenumber">
<!-- 手机号码 -->
<el-form-item :label="$t('systemManagement_RoleManagement.phoneNumber')" prop="phonenumber">
<el-input
v-model="queryParams.phonenumber"
placeholder="请输入手机号码"
:placeholder="$t('systemManagement_RoleManagement.placeholderPhoneNumber')"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
<!-- 【查询】按钮 -->
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">{{ $t('systemManagement_RoleManagement.btnSearch') }}</el-button>
<!-- 【重置】按钮 -->
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">{{ $t('systemManagement_RoleManagement.btnReset') }}</el-button>
</el-form-item>
</el-form>
<el-row>
<el-table @row-click="clickRow" ref="table" :data="userList" @selection-change="handleSelectionChange" height="260px">
<el-table-column type="selection" width="55"></el-table-column>
<el-table-column label="用户名称" prop="userName" :show-overflow-tooltip="true" />
<el-table-column label="用户昵称" prop="nickName" :show-overflow-tooltip="true" />
<el-table-column label="邮箱" prop="email" :show-overflow-tooltip="true" />
<el-table-column label="手机" prop="phonenumber" :show-overflow-tooltip="true" />
<el-table-column label="状态" align="center" prop="status">
<!-- 用户名称 -->
<el-table-column :label="$t('systemManagement_RoleManagement.userName')" prop="userName" :show-overflow-tooltip="true" />
<!-- 用户昵称 -->
<el-table-column :label="$t('systemManagement_RoleManagement.nickName')" prop="nickName" :show-overflow-tooltip="true" />
<!-- 邮箱 -->
<el-table-column :label="$t('systemManagement_RoleManagement.email')" prop="email" :show-overflow-tooltip="true" />
<!-- 手机号码 -->
<el-table-column :label="$t('systemManagement_RoleManagement.phoneNumber')" prop="phonenumber" :show-overflow-tooltip="true" />
<!-- 状态 -->
<el-table-column :label="$t('systemManagement_RoleManagement.status')" align="center" prop="status">
<template slot-scope="scope">
<dict-tag :options="dict.type.sys_normal_disable" :value="scope.row.status"/>
</template>
</el-table-column>
<el-table-column label="创建时间" align="center" prop="createTime" width="180">
<!-- 创建时间 -->
<el-table-column :label="$t('systemManagement_RoleManagement.createTime')" align="center" prop="createTime" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.createTime) }}</span>
</template>
@@ -50,8 +61,10 @@
/>
</el-row>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="handleSelectUser">确 定</el-button>
<el-button @click="visible = false">取 消</el-button>
<!-- 【确定】按钮 -->
<el-button type="primary" @click="handleSelectUser">{{ $t('systemManagement_RoleManagement.btnSubmit') }}</el-button>
<!-- 【取消】按钮 -->
<el-button @click="visible = false">{{ $t('systemManagement_RoleManagement.btnCancel') }}</el-button>
</div>
</el-dialog>
</template>
@@ -122,7 +135,8 @@ export default {
const roleId = this.queryParams.roleId
const userIds = this.userIds.join(",")
if (userIds == "") {
this.$modal.msgError("请选择要分配的用户")
// 提示:请选择要分配的用户
this.$modal.msgError(this.$t('systemManagement_RoleManagement.textSelectRole'))
return
}
authUserSelectAll({ roleId: roleId, userIds: userIds }).then(res => {

View File

@@ -1,22 +1,22 @@
<template>
<div class="app-container">
<h4 class="form-header h4">基本信息</h4>
<h4 class="form-header h4">{{ $t('systemManagement_UserManagement.basInfo') }}</h4>
<el-form ref="form" :model="form" label-width="80px">
<el-row>
<el-col :span="8" :offset="2">
<el-form-item label="用户昵称" prop="nickName">
<el-form-item :label="$t('systemManagement_UserManagement.nickName')" prop="nickName">
<el-input v-model="form.nickName" disabled />
</el-form-item>
</el-col>
<el-col :span="8" :offset="2">
<el-form-item label="登录账号" prop="userName">
<el-form-item :label="$t('systemManagement_UserManagement.userName')" prop="userName">
<el-input v-model="form.userName" disabled />
</el-form-item>
</el-col>
</el-row>
</el-form>
<h4 class="form-header h4">角色信息</h4>
<!-- 角色信息 -->
<h4 class="form-header h4">{{ $t('systemManagement_UserManagement.roleInfo') }}</h4>
<el-table v-loading="loading" :row-key="getRowKey" @row-click="clickRow" ref="table" @selection-change="handleSelectionChange" :data="roles.slice((pageNum-1)*pageSize,pageNum*pageSize)">
<el-table-column label="序号" type="index" align="center">
<template slot-scope="scope">
@@ -24,10 +24,14 @@
</template>
</el-table-column>
<el-table-column type="selection" :reserve-selection="true" :selectable="checkSelectable" width="55" />
<el-table-column label="角色编号" align="center" prop="roleId" />
<el-table-column label="角色名称" align="center" prop="roleName" />
<el-table-column label="权限字符" align="center" prop="roleKey" />
<el-table-column label="创建时间" align="center" prop="createTime" width="180">
<!-- 角色编号 -->
<el-table-column :label="$t('systemManagement_UserManagement.roleId')" align="center" prop="roleId" />
<!-- 角色名称 -->
<el-table-column :label="$t('systemManagement_UserManagement.roleName')" align="center" prop="roleName" />
<!-- 权限字符 -->
<el-table-column :label="$t('systemManagement_UserManagement.roleKey')" align="center" prop="roleKey" />
<!-- 创建时间 -->
<el-table-column :label="$t('systemManagement_UserManagement.createTime')" align="center" prop="createTime" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.createTime) }}</span>
</template>
@@ -38,8 +42,10 @@
<el-form label-width="100px">
<el-form-item style="text-align: center;margin-left:-120px;margin-top:30px;">
<el-button type="primary" @click="submitForm()">提交</el-button>
<el-button @click="close()">返回</el-button>
<!-- 【提交】按钮 -->
<el-button type="primary" @click="submitForm()">{{ $t('systemManagement_UserManagement.btnSubmit') }}</el-button>
<!-- 【返回】按钮 -->
<el-button @click="close()">{{ $t('systemManagement_UserManagement.btnBack') }}</el-button>
</el-form-item>
</el-form>
</div>
@@ -109,7 +115,8 @@ export default {
const userId = this.form.userId
const roleIds = this.roleIds.join(",")
updateAuthRole({ userId: userId, roleIds: roleIds }).then((response) => {
this.$modal.msgSuccess("授权成功")
// 授权成功
this.$modal.msgSuccess(this.$t('systemManagement_UserManagement.authorizeSuccessInfo'))
this.close()
})
},

View File

@@ -34,7 +34,7 @@
</el-form-item>
<el-form>
<!-- 创建时间 -->
<el-form-item :label="$t('systemManagement_UserManagement.creatTime')">
<el-form-item :label="$t('systemManagement_UserManagement.createTime')">
<el-date-picker v-model="dateRange" style="width: 240px" value-format="yyyy-MM-dd" type="daterange" range-separator="-" :start-placeholder="$t('systemManagement_UserManagement.placeholderDateStart')" :end-placeholder="$t('systemManagement_UserManagement.placeholderDateEnd')"></el-date-picker>
</el-form-item>
<el-form-item>
@@ -91,7 +91,7 @@
</template>
</el-table-column>
<!-- 创建时间 -->
<el-table-column :label="$t('systemManagement_UserManagement.creatTime')" align="center" prop="createTime" v-if="columns[6].visible" width="160">
<el-table-column :label="$t('systemManagement_UserManagement.createTime')" align="center" prop="createTime" v-if="columns[6].visible" width="160">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.createTime) }}</span>
</template>
@@ -110,7 +110,7 @@
<!-- 人工操作---更多---【重置密码】按钮 -->
<el-dropdown-item command="handleResetPwd" icon="el-icon-key" v-hasPermi="['system:user:resetPwd']">{{ $t('systemManagement_UserManagement.btnResetPassword') }}</el-dropdown-item>
<!-- 人工操作---更多---【分配角色】按钮 -->
<el-dropdown-item command="handleAuthRole" icon="el-icon-circle-check" v-hasPermi="['system:user:edit']">{{ $t('systemManagement_UserManagement.AssignRole') }}</el-dropdown-item>
<el-dropdown-item command="handleAuthRole" icon="el-icon-circle-check" v-hasPermi="['system:user:edit']">{{ $t('systemManagement_UserManagement.btnAssignRole') }}</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</template>
@@ -124,8 +124,8 @@
</el-row>
<!-- 添加或修改用户配置对话框 -->
<el-dialog :title="title" :visible.sync="open" width="600px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-dialog :title="title" :visible.sync="open" width="650px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" :label-width="$t('systemManagement_UserManagement.lblWidthDialog')">
<el-row>
<!-- 用户昵称 -->
<el-col :span="12">

View File

@@ -4,7 +4,8 @@
<el-col :span="6" :xs="24">
<el-card class="box-card">
<div slot="header" class="clearfix">
<span>个人信息</span>
<!-- 个人信息 -->
<span>{{ $t('systemManagement_UserManagement.userInfo') }}</span>
</div>
<div>
<div class="text-center">
@@ -12,27 +13,33 @@
</div>
<ul class="list-group list-group-striped">
<li class="list-group-item">
<svg-icon icon-class="user" />用户名称
<!-- 用户名称 -->
<svg-icon icon-class="user" />{{ $t('systemManagement_UserManagement.userName') }}
<div class="pull-right">{{ user.userName }}</div>
</li>
<li class="list-group-item">
<svg-icon icon-class="phone" />手机号码
<!-- 手机号码 -->
<svg-icon icon-class="phone" />{{ $t('systemManagement_UserManagement.phoneNumber') }}
<div class="pull-right">{{ user.phonenumber }}</div>
</li>
<li class="list-group-item">
<svg-icon icon-class="email" />用户邮箱
<!-- 邮箱 -->
<svg-icon icon-class="email" />{{ $t('systemManagement_UserManagement.email') }}
<div class="pull-right">{{ user.email }}</div>
</li>
<li class="list-group-item">
<svg-icon icon-class="tree" />所属部门
<!-- 部门 -->
<svg-icon icon-class="tree" />{{ $t('systemManagement_UserManagement.deptName') }}
<div class="pull-right" v-if="user.dept">{{ user.dept.deptName }} / {{ postGroup }}</div>
</li>
<li class="list-group-item">
<svg-icon icon-class="peoples" />所属角色
<!-- 角色 -->
<svg-icon icon-class="peoples" />{{ $t('systemManagement_UserManagement.roleGroup') }}
<div class="pull-right">{{ roleGroup }}</div>
</li>
<li class="list-group-item">
<svg-icon icon-class="date" />创建日期
<!-- 创建日期 -->
<svg-icon icon-class="date" />{{ $t('systemManagement_UserManagement.createTime') }}
<div class="pull-right">{{ user.createTime }}</div>
</li>
</ul>
@@ -42,13 +49,16 @@
<el-col :span="18" :xs="24">
<el-card>
<div slot="header" class="clearfix">
<span>基本资料</span>
<!-- 基本资料 -->
<span>{{ $t('systemManagement_UserManagement.userInfo') }}</span>
</div>
<el-tabs v-model="activeTab">
<el-tab-pane label="基本资料" name="userinfo">
<!-- 基本资料 -->
<el-tab-pane :label="$t('systemManagement_UserManagement.userInfo')" name="userinfo">
<userInfo :user="user" />
</el-tab-pane>
<el-tab-pane label="修改密码" name="resetPwd">
<!-- 修改密码 -->
<el-tab-pane :label="$t('systemManagement_UserManagement.resetPwd')" name="resetPwd">
<resetPwd />
</el-tab-pane>
</el-tabs>

View File

@@ -1,17 +1,22 @@
<template>
<el-form ref="form" :model="user" :rules="rules" label-width="80px">
<el-form-item label="旧密码" prop="oldPassword">
<el-input v-model="user.oldPassword" placeholder="请输入旧密码" type="password" show-password/>
<el-form ref="form" :model="user" :rules="rules" :label-width="$t('systemManagement_UserManagement.lblWidthPassword')">
<!-- 旧密码 -->
<el-form-item :label="$t('systemManagement_UserManagement.oldPassword')" prop="oldPassword">
<el-input v-model="user.oldPassword" :placeholder="$t('systemManagement_UserManagement.placecholderOldPassword')" type="password" show-password/>
</el-form-item>
<el-form-item label="新密码" prop="newPassword">
<el-input v-model="user.newPassword" placeholder="请输入新密码" type="password" show-password/>
<!-- 新密码 -->
<el-form-item :label="$t('systemManagement_UserManagement.newPassword')" prop="newPassword">
<el-input v-model="user.newPassword" :placeholder="$t('systemManagement_UserManagement.placecholderNewPassword')" type="password" show-password/>
</el-form-item>
<el-form-item label="确认密码" prop="confirmPassword">
<el-input v-model="user.confirmPassword" placeholder="请确认新密码" type="password" show-password/>
<!-- 确认密码 -->
<el-form-item :label="$t('systemManagement_UserManagement.confirmPassword')" prop="confirmPassword">
<el-input v-model="user.confirmPassword" :placeholder="$t('systemManagement_UserManagement.placecholderConfirmPassword')" type="password" show-password/>
</el-form-item>
<el-form-item>
<el-button type="primary" size="mini" @click="submit">保存</el-button>
<el-button type="danger" size="mini" @click="close">关闭</el-button>
<!-- 【保存】按钮 -->
<el-button type="primary" size="mini" @click="submit">{{ $t('systemManagement_UserManagement.btnSave') }}</el-button>
<!-- 【关闭】按钮 -->
<el-button type="danger" size="mini" @click="close">{{ $t('systemManagement_UserManagement.btnClose') }}</el-button>
</el-form-item>
</el-form>
</template>
@@ -23,7 +28,8 @@ export default {
data() {
const equalToPassword = (rule, value, callback) => {
if (this.user.newPassword !== value) {
callback(new Error("两次输入的密码不一致"))
// 两次输入的密码不一致
callback(new Error(this.$t('systemManagement_UserManagement.checkPasswordIsSame')))
} else {
callback()
}
@@ -37,15 +43,20 @@ export default {
// 表单校验
rules: {
oldPassword: [
{ required: true, message: "旧密码不能为空", trigger: "blur" }
// 旧密码不能为空
{ required: true, message: this.$t('systemManagement_UserManagement.oldPasswordIsNull'), trigger: "blur" }
],
newPassword: [
{ required: true, message: "新密码不能为空", trigger: "blur" },
{ min: 6, max: 20, message: "长度在 6 到 20 个字符", trigger: "blur" },
{ pattern: /^[^<>"'|\\]+$/, message: "不能包含非法字符:< > \" ' \\\ |", trigger: "blur" }
// 新密码不能为空
{ required: true, message: this.$t('systemManagement_UserManagement.newPasswordIsNull'), trigger: "blur" },
// 长度在 6 到 20 个字符
{ min: 6, max: 20, message: this.$t('systemManagement_UserManagement.passwordFormat1'), trigger: "blur" },
// 不能包含非法字符:< > \" ' \\\ |
{ pattern: /^[^<>"'|\\]+$/, message: this.$t('systemManagement_UserManagement.passwordFormat2'), trigger: "blur" }
],
confirmPassword: [
{ required: true, message: "确认密码不能为空", trigger: "blur" },
// 校验:确认密码不能为空
{ required: true, message: this.$t('systemManagement_UserManagement.confirmPasswordIsNull'), trigger: "blur" },
{ required: true, validator: equalToPassword, trigger: "blur" }
]
}
@@ -56,7 +67,8 @@ export default {
this.$refs["form"].validate(valid => {
if (valid) {
updateUserPwd(this.user.oldPassword, this.user.newPassword).then(response => {
this.$modal.msgSuccess("修改成功")
// 提示信息:修改成功
this.$modal.msgSuccess(this.$t('systemManagement_UserManagement.editSuccessInfo'))
})
}
})

View File

@@ -1,6 +1,6 @@
<template>
<div>
<div class="user-info-head" @click="editCropper()"><img v-bind:src="options.img" title="点击上传头像" class="img-circle img-lg" /></div>
<div class="user-info-head" @click="editCropper()"><img v-bind:src="options.img" :title="$t('systemManagement_UserManagement.avatarTitle')" class="img-circle img-lg" /></div>
<el-dialog :title="title" :visible.sync="open" width="800px" append-to-body @opened="modalOpened" @close="closeDialog">
<el-row>
<el-col :xs="24" :md="12" :style="{height: '350px'}">
@@ -28,7 +28,7 @@
<el-col :lg="2" :sm="3" :xs="3">
<el-upload action="#" :http-request="requestUpload" :show-file-list="false" :before-upload="beforeUpload">
<el-button size="small">
选择
{{ $t('systemManagement_UserManagement.btnSelect') }}
<i class="el-icon-upload el-icon--right"></i>
</el-button>
</el-upload>
@@ -46,7 +46,7 @@
<el-button icon="el-icon-refresh-right" size="small" @click="rotateRight()"></el-button>
</el-col>
<el-col :lg="{span: 2, offset: 6}" :sm="2" :xs="2">
<el-button type="primary" size="small" @click="uploadImg()">提 交</el-button>
<el-button type="primary" size="small" @click="uploadImg()">{{ $t('systemManagement_UserManagement.btnSubmit') }}</el-button>
</el-col>
</el-row>
</el-dialog>
@@ -68,7 +68,7 @@ export default {
// 是否显示cropper
visible: false,
// 弹出层标题
title: "修改头像",
title: this.$t('systemManagement_UserManagement.updateAvatar'),
options: {
img: store.getters.avatar, //裁剪图片的地址
autoCrop: true, // 是否默认生成截图框
@@ -120,7 +120,7 @@ export default {
// 上传预处理
beforeUpload(file) {
if (file.type.indexOf("image/") == -1) {
this.$modal.msgError("文件格式错误,请上传图片类型,如:JPG,PNG后缀的文件。")
this.$modal.msgError(this.$t('systemManagement_UserManagement.errorMessage'))
} else {
const reader = new FileReader()
reader.readAsDataURL(file)
@@ -139,7 +139,7 @@ export default {
this.open = false
this.options.img = process.env.VUE_APP_BASE_API + response.imgUrl
store.commit('SET_AVATAR', this.options.img)
this.$modal.msgSuccess("修改成功")
this.$modal.msgSuccess(this.$t('systemManagement_UserManagement.editSuccessInfo'))
this.visible = false
})
})

View File

@@ -1,23 +1,29 @@
<template>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="用户昵称" prop="nickName">
<el-form ref="form" :model="form" :rules="rules" :label-width="$t('systemManagement_UserManagement.lblWidthDialog')">
<!-- 用户昵称 -->
<el-form-item :label="$t('systemManagement_UserManagement.nickName')" prop="nickName">
<el-input v-model="form.nickName" maxlength="30" />
</el-form-item>
<el-form-item label="手机号码" prop="phonenumber">
<!-- 手机号码 -->
<el-form-item :label="$t('systemManagement_UserManagement.phoneNumber')" prop="phonenumber">
<el-input v-model="form.phonenumber" maxlength="11" />
</el-form-item>
<el-form-item label="邮箱" prop="email">
<!-- 邮箱 -->
<el-form-item :label="$t('systemManagement_UserManagement.email')" prop="email">
<el-input v-model="form.email" maxlength="50" />
</el-form-item>
<el-form-item label="性别">
<!-- 性别:0男 1女 -->
<el-form-item :label="$t('systemManagement_UserManagement.gender')">
<el-radio-group v-model="form.sex">
<el-radio label="0">男</el-radio>
<el-radio label="1">女</el-radio>
<el-radio label="0">{{ $t('systemManagement_UserManagement.male') }}</el-radio>
<el-radio label="1">{{ $t('systemManagement_UserManagement.female') }}</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item>
<el-button type="primary" size="mini" @click="submit">保存</el-button>
<el-button type="danger" size="mini" @click="close">关闭</el-button>
<!-- 【保存】按钮 -->
<el-button type="primary" size="mini" @click="submit">{{ $t('systemManagement_UserManagement.btnSave') }}</el-button>
<!-- 【关闭】按钮 -->
<el-button type="danger" size="mini" @click="close">{{ $t('systemManagement_UserManagement.btnClose') }}</el-button>
</el-form-item>
</el-form>
</template>
@@ -37,21 +43,26 @@ export default {
// 表单校验
rules: {
nickName: [
{ required: true, message: "用户昵称不能为空", trigger: "blur" }
// 用户昵称不能为空
{ required: true, message: this.$t('systemManagement_UserManagement.checkNickNameIsNull'), trigger: "blur" }
],
email: [
{ required: true, message: "邮箱地址不能为空", trigger: "blur" },
// 邮箱地址不能为空
{ required: true, message: this.$t('systemManagement_UserManagement.checkEmailIsNull'), trigger: "blur" },
{
type: "email",
message: "请输入正确的邮箱地址",
// 请输入正确的邮箱地址
message: this.$t('systemManagement_UserManagement.checkEmailFormat'),
trigger: ["blur", "change"]
}
],
phonenumber: [
{ required: true, message: "手机号码不能为空", trigger: "blur" },
// 手机号码不能为空
{ required: true, message: this.$t('systemManagement_UserManagement.checkPhoneNumberIsNull'), trigger: "blur" },
{
pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
message: "请输入正确的手机号码",
// 请输入正确的手机号码
message: this.$t('systemManagement_UserManagement.checkPhoneNumberFormat'),
trigger: "blur"
}
]
@@ -73,7 +84,8 @@ export default {
this.$refs["form"].validate(valid => {
if (valid) {
updateUserProfile(this.form).then(response => {
this.$modal.msgSuccess("修改成功")
// 提示信息:修改成功
this.$modal.msgSuccess(this.$t('systemManagement_UserManagement.EditSuccessInfo'))
this.user.phonenumber = this.form.phonenumber
this.user.email = this.form.email
})