Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
smf-core
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit d7e023dd
由
LN
编写于
2021-08-13 09:11:07 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
国际化修改
1 个父辈
60e107a5
显示空白字符变更
内嵌
并排
正在显示
9 个修改的文件
包含
170 行增加
和
13 行删除
src/main/java/com/neotel/smfcore/core/language/util/MessageUtils.java
src/main/java/com/neotel/smfcore/security/rest/MenuController.java
src/main/java/com/neotel/smfcore/security/rest/bean/dto/MenuDto.java
src/main/java/com/neotel/smfcore/security/service/manager/IMenuManager.java
src/main/java/com/neotel/smfcore/security/service/manager/impl/MenuManagerImpl.java
src/main/resources/messages.properties
src/main/resources/messages_en_US.properties
src/main/resources/messages_zh_CN.properties
src/main/resources/messages_zh_TW.properties
src/main/java/com/neotel/smfcore/core/language/util/MessageUtils.java
查看文件 @
d7e023d
package
com
.
neotel
.
smfcore
.
core
.
language
.
util
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.context.MessageSource
;
import
org.springframework.context.i18n.LocaleContextHolder
;
import
org.springframework.stereotype.Component
;
...
...
@@ -13,6 +14,7 @@ import java.util.Locale;
* Created by sunke on 2021/7/30.
*/
@Component
@Slf4j
public
class
MessageUtils
{
private
static
MessageSource
messageSource
;
...
...
@@ -33,6 +35,7 @@ public class MessageUtils {
return
messageSource
.
getMessage
(
msgKey
,
params
,
locale
);
}
}
catch
(
Exception
ex
){
log
.
error
(
"获取资源["
+
msgKey
+
"]["
+
defaultMsg
+
"]["
+
locale
.
getLanguage
()+
"]出错:"
+
ex
.
toString
());
if
(
defaultMsg
!=
null
){
return
defaultMsg
;
}
...
...
src/main/java/com/neotel/smfcore/security/rest/MenuController.java
查看文件 @
d7e023d
...
...
@@ -43,6 +43,7 @@ import org.springframework.security.access.prepost.PreAuthorize;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.*
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
java.util.*
;
import
java.util.stream.Collectors
;
...
...
@@ -68,16 +69,17 @@ public class MenuController {
@GetMapping
(
value
=
"/build"
)
@ApiOperation
(
"获取前端所需菜单"
)
@AnonymousAccess
public
ResponseEntity
<
Object
>
buildMenus
()
{
public
ResponseEntity
<
Object
>
buildMenus
(
HttpServletRequest
servletRequest
)
{
String
userId
=
"1"
;
try
{
userId
=
SecurityUtils
.
getCurrentUserId
();
}
catch
(
Exception
ex
)
{
log
.
error
(
"获取当前用户出错:"
+
ex
);
}
String
language
=
servletRequest
.
getLocale
().
getLanguage
();
List
<
Menu
>
menuList
=
menuManager
.
findByUserId
(
userId
);
List
<
MenuDto
>
menuDtoList
=
menuMapper
.
toDto
(
menuManager
.
buildTree
(
menuList
));
List
<
MenuVo
>
vos
=
menuManager
.
buildMenus
(
menuDtoList
);
List
<
MenuVo
>
vos
=
menuManager
.
buildMenus
(
menuDtoList
,
language
);
return
new
ResponseEntity
<>(
vos
,
HttpStatus
.
OK
);
}
...
...
src/main/java/com/neotel/smfcore/security/rest/bean/dto/MenuDto.java
查看文件 @
d7e023d
package
com
.
neotel
.
smfcore
.
security
.
rest
.
bean
.
dto
;
import
cn.hutool.core.util.ObjectUtil
;
import
com.neotel.smfcore.security.service.po.Menu
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Getter
;
...
...
@@ -77,4 +78,11 @@ public class MenuDto implements Serializable {
public
String
getPermission
(){
return
permission
;}
public
String
GetMsgKey
()
{
String
titleKey
=
(
ObjectUtil
.
isNotEmpty
(
getTitleKey
())?
getTitleKey
():
getPath
());
if
(!
titleKey
.
startsWith
(
"smfcore."
)){
titleKey
=
"smfcore."
+
titleKey
.
trim
();
}
return
titleKey
;
}
}
src/main/java/com/neotel/smfcore/security/service/manager/IMenuManager.java
查看文件 @
d7e023d
...
...
@@ -39,7 +39,7 @@ public interface IMenuManager extends IBaseManager<Menu> {
* @param menuDtos /
* @return /
*/
List
<
MenuVo
>
buildMenus
(
List
<
MenuDto
>
menuDtos
);
List
<
MenuVo
>
buildMenus
(
List
<
MenuDto
>
menuDtos
,
String
language
);
/**
* 懒加载菜单数据
...
...
src/main/java/com/neotel/smfcore/security/service/manager/impl/MenuManagerImpl.java
查看文件 @
d7e023d
...
...
@@ -6,6 +6,7 @@ import com.neotel.smfcore.common.bean.PageData;
import
com.neotel.smfcore.common.exception.ValidateException
;
import
com.neotel.smfcore.common.utils.FileUtil
;
import
com.neotel.smfcore.common.utils.StringUtils
;
import
com.neotel.smfcore.core.language.util.MessageUtils
;
import
com.neotel.smfcore.security.rest.bean.dto.MenuDto
;
import
com.neotel.smfcore.security.rest.bean.vo.MenuMetaVo
;
import
com.neotel.smfcore.security.rest.bean.vo.MenuVo
;
...
...
@@ -16,6 +17,8 @@ import com.neotel.smfcore.security.service.manager.IUserManager;
import
com.neotel.smfcore.security.service.po.Menu
;
import
com.neotel.smfcore.security.service.po.Role
;
import
com.neotel.smfcore.security.service.po.User
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.poi.util.StringUtil
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.domain.Pageable
;
import
org.springframework.data.domain.Sort
;
...
...
@@ -29,6 +32,7 @@ import java.util.*;
import
java.util.stream.Collectors
;
@Service
@Slf4j
public
class
MenuManagerImpl
implements
IMenuManager
{
@Autowired
...
...
@@ -113,13 +117,18 @@ public class MenuManagerImpl implements IMenuManager {
}
@Override
public
List
<
MenuVo
>
buildMenus
(
List
<
MenuDto
>
menuDtos
)
{
public
List
<
MenuVo
>
buildMenus
(
List
<
MenuDto
>
menuDtos
,
String
language
)
{
List
<
MenuVo
>
list
=
new
LinkedList
<>()
;
menuDtos
.
forEach
(
menuDto
->
{
if
(
menuDto
!=
null
&&
menuDto
.
getType
()<=
1
){
List
<
MenuDto
>
menuDtoList
=
menuDto
.
getChildren
();
MenuVo
menuVo
=
new
MenuVo
();
menuVo
.
setName
(
ObjectUtil
.
isNotEmpty
(
menuDto
.
getComponentName
())?
menuDto
.
getComponentName
():
menuDto
.
getTitle
());
String
oldName
=
ObjectUtil
.
isNotEmpty
(
menuDto
.
getComponentName
())?
menuDto
.
getComponentName
():
menuDto
.
getTitle
();
String
titleKey
=
menuDto
.
GetMsgKey
();
String
title
=
MessageUtils
.
getText
(
titleKey
,
new
Locale
(
language
),
oldName
);
// log.info(titleKey+"="+title);
menuVo
.
setName
(
title
);
boolean
pidIsNull
=(
menuDto
.
getPid
()==
null
)||(
StringUtils
.
isBlank
(
menuDto
.
getPid
())||
menuDto
.
getPid
().
equals
(
"0"
));
// 一级目录需要加斜杠,不然会报警告
menuVo
.
setPath
(
pidIsNull
?
"/"
+
menuDto
.
getPath
():
menuDto
.
getPath
());
...
...
@@ -134,11 +143,11 @@ public class MenuManagerImpl implements IMenuManager {
menuVo
.
setComponent
(
menuDto
.
getComponent
());
}
}
menuVo
.
setMeta
(
new
MenuMetaVo
(
menuDto
.
getTitle
()
,
menuDto
.
getIcon
(),!
menuDto
.
getCache
()));
menuVo
.
setMeta
(
new
MenuMetaVo
(
title
,
menuDto
.
getIcon
(),!
menuDto
.
getCache
()));
if
(
CollectionUtil
.
isNotEmpty
(
menuDtoList
)){
menuVo
.
setAlwaysShow
(
true
);
menuVo
.
setRedirect
(
"noredirect"
);
menuVo
.
setChildren
(
buildMenus
(
menuDtoList
));
menuVo
.
setChildren
(
buildMenus
(
menuDtoList
,
language
));
}
else
if
(
pidIsNull
)
{
MenuVo
menuVo1
=
new
MenuVo
();
menuVo1
.
setMeta
(
menuVo
.
getMeta
());
...
...
@@ -256,6 +265,9 @@ public class MenuManagerImpl implements IMenuManager {
if
(
menu
.
getPath
()==
null
){
menu
.
setPath
(
""
);
}
if
(
menu
.
getTitleKey
()==
null
){
menu
.
setTitleKey
(
menu
.
getPath
());
}
Criteria
c
=
Criteria
.
where
(
"path"
).
is
(
menu
.
getPath
());
String
logName
=
"新增菜单:"
;
if
(
menu
.
getId
()!=
null
){
...
...
src/main/resources/messages.properties
查看文件 @
d7e023d
...
...
@@ -54,12 +54,30 @@ smfcore.ok=ok
smfcore.shelfNotExist
=
{0}
\u
5BF9
\u
5E94
\u7684\u6599\u
67B6
\u
4E0D
\u
5B58
\u5728
smfcore.inputError
=
\u5165\u
5E93
\u
51FA
\u9519
:{0}
smfcore.checkoutError
=
\u
51FA
\u
5E93
\u
51FA
\u9519
:{0}
smfcore.notask
=
No task in this order
smfcore.taskCount
=
total task is :{0}
smfcore.noconnecttion
=
no connecttion
smfcore.loadMaterialFailed
=
loading material failed:{0}
smfcore.checkNg
=
checking material is ng:{0}
smfcore.loadMaterialFinished
=
loading material is finished: {0}
smfcore.notask
=
\u
8BA2
\u5355\u
65E0
\u
4EFB
\u
52A1
smfcore.taskCount
=
\u
4EFB
\u
52A1
\u
603B
\u6570
:{0}
smfcore.noconnecttion
=
\u
672A
\u
8FDE
\u
63A5
smfcore.loadMaterialFailed
=
\u
8BBE
\u5907\u
52A0
\u
8F7D
\u5931\u
8D25:{0}
smfcore.checkNg
=
\u
8BBE
\u5907\u
9A8C
\u
8BC1
\u5931\u
8D25:{0}
smfcore.loadMaterialFinished
=
\u
8BBE
\u5907\u
52A0
\u
8F7D
\u
5B8C
\u6210
: {0}
smfcore.lockMaterial
=
\u9501\u
5B9A
\u7269\u6599
smfcore.lightGroup
=
\u6599\u
67B6
\u5206\u
7EC4
smfcore.order
=
\u
5DE5
\u5355\u
7BA1
\u7406
smfcore.workOrder
=
\u
5DE5
\u5355
smfcore.singleOuput
=
\u
67E5
\u
627E
\u
51FA
\u
5E93
smfcore.system
=
\u
8BBE
\u
7F6E
smfcore.bunker
=
\u6599\u
4ED3
\u
7BA1
\u7406
smfcore.storagePos
=
\u
5E93
\u
4F4D
\u
7BA1
\u7406
smfcore.menu
=
\u
83DC
\u5355\u
7BA1
\u7406
smfcore.materiel
=
\u7269\u6599\u
7BA1
\u7406
smfcore.componentParts
=
\u5143\u5668\u
4EF6
smfcore.barcode
=
\u6761\u
5F62
\u7801
smfcore.log
=
\u
65E5
\u
5FD7
\u
7BA1
\u7406
smfcore.taskLog
=
\u7269\u6599\u
65E5
\u
5FD7
smfcore.user
=
\u7528\u6237\u
7BA1
\u7406
smfcore.peoples
=
\u7528\u6237\u
7BA1
\u7406
smfcore.role
=
\u
89D2
\u8272\u
7BA1
\u7406
...
...
src/main/resources/messages_en_US.properties
查看文件 @
d7e023d
...
...
@@ -60,3 +60,20 @@ smfcore.noconnecttion=No connecttion
smfcore.loadMaterialFailed
=
Loading material failed:{0}
smfcore.checkNg
=
checking material is ng:{0}
smfcore.loadMaterialFinished
=
Loading material finished: {0}
smfcore.lockMaterial
=
Lock Material
smfcore.lightGroup
=
Neo Light Grouping
smfcore.order
=
Work Order Management
smfcore.workOrder
=
Work Order
smfcore.singleOuput
=
Check to Retrieve
smfcore.system
=
Set
smfcore.bunker
=
SMD BOX Management
smfcore.storagePos
=
Position Management
smfcore.menu
=
Menu Management
smfcore.materiel
=
Material Management
smfcore.componentParts
=
Component
smfcore.barcode
=
Barcode
smfcore.log
=
Log Management
smfcore.taskLog
=
Material Log
smfcore.user
=
User Management
smfcore.peoples
=
User Management
smfcore.role
=
Role Management
src/main/resources/messages_zh_CN.properties
查看文件 @
d7e023d
...
...
@@ -60,3 +60,21 @@ smfcore.noconnecttion=\u672A\u8FDE\u63A5
smfcore.loadMaterialFailed
=
\u
8BBE
\u5907\u
52A0
\u
8F7D
\u5931\u
8D25:{0}
smfcore.checkNg
=
\u
8BBE
\u5907\u
9A8C
\u
8BC1
\u5931\u
8D25:{0}
smfcore.loadMaterialFinished
=
\u
8BBE
\u5907\u
52A0
\u
8F7D
\u
5B8C
\u6210
: {0}
smfcore.lockMaterial
=
\u9501\u
5B9A
\u7269\u6599
smfcore.lightGroup
=
\u6599\u
67B6
\u5206\u
7EC4
smfcore.order
=
\u
5DE5
\u5355\u
7BA1
\u7406
smfcore.workOrder
=
\u
5DE5
\u5355
smfcore.singleOuput
=
\u
67E5
\u
627E
\u
51FA
\u
5E93
smfcore.system
=
\u
8BBE
\u
7F6E
smfcore.bunker
=
\u6599\u
4ED3
\u
7BA1
\u7406
smfcore.storagePos
=
\u
5E93
\u
4F4D
\u
7BA1
\u7406
smfcore.menu
=
\u
83DC
\u5355\u
7BA1
\u7406
smfcore.materiel
=
\u7269\u6599\u
7BA1
\u7406
smfcore.componentParts
=
\u5143\u5668\u
4EF6
smfcore.barcode
=
\u6761\u
5F62
\u7801
smfcore.log
=
\u
65E5
\u
5FD7
\u
7BA1
\u7406
smfcore.taskLog
=
\u7269\u6599\u
65E5
\u
5FD7
smfcore.user
=
\u7528\u6237\u
7BA1
\u7406
smfcore.peoples
=
\u7528\u6237\u
7BA1
\u7406
smfcore.role
=
\u
89D2
\u8272\u
7BA1
\u7406
src/main/resources/messages_zh_TW.properties
0 → 100644
查看文件 @
d7e023d
smfcode.valueCanotNull
=
{0}
\u
4E0D
\u
80FD
\u7232\u
7A7A
smfcode.feleFormatError
=
\u6587\u
4EF6
\u
683C
\u
5F0F
\u
932F
\u
8AA4
\u
FF01,
\u
50C5
\u
652F
\u6301
{0}
\u
683C
\u
5F0F
smfcode.valueAlreadyExist
=
{0}[{1}]
\u
5DF2
\u
5B58
\u5728
smfcode.valueNotExist
=
{0}[{1}]
\u
4E0D
\u
5B58
\u5728
smfcode.fileToLong
=
\u6587\u
4EF6
\u
8D85
\u
51FA
\u
898F
\u
5B9A
\u5927\u
5C0F
smfcode.fileError
=
\u6587\u
4EF6
\u
89E3
\u6790\u5931\u6557
smfcode.valueNotFind
=
\u
672A
\u
627E
\u5230
{0}[{1}]
smfcode.humidityValueError
=
\u
6EAB
\u
5EA6
\u
7BC4
\u
570D
\u6578\u
64DA
\u
932F
\u
8AA4
smfcode.humidityShowValueError
=
\u
6EAB
\u
5EA6
\u
986F
\u
793A
\u
7BC4
\u
570D
\u6578\u
64DA
\u
932F
\u
8AA4
smfcode.temperatureValueError
=
\u
6FD5
\u
5EA6
\u
7BC4
\u
570D
\u6578\u
64DA
\u
932F
\u
8AA4
smfcode.temperatureShowValueError
=
\u
6FD5
\u
5EA6
\u
986F
\u
793A
\u
7BC4
\u
570D
\u6578\u
64DA
\u
932F
\u
8AA4
smfcode.notActivated
=
\u
8CEC
\u
865F
\u
672A
\u
6FC0
\u
6D3B
smfcode.userInfoError
=
\u7528\u6236\u
4FE1
\u
606F
\u
4E0D
\u
5B8C
\u6574
smfcode.noaccess
=
\u7121\u
6B0A
\u9650\u
4FEE
\u6539\u
6B64
\u
89D2
\u8272\u7684\u
83DC
\u
55AE
smfcode.notSelRole
=
\u
8ACB
\u8981\u
4FEE
\u6539\u7684\u9078\u
64C7
\u
89D2
\u8272
smfcode.posIsused
=
\u6599\u5009
[{0}]
\u7684\u
5EAB
\u
4F4D[{1}}]
\u6709\u6599
[{2}],
\u
522A
\u9664\u5931\u6557
smfcode.thePosIsused
=
\u
5EAB
\u
4F4D[{0}]
\u6709\u6599
[{1}],
\u
4E0D
\u
80FD
\u
522A
\u9664
smfcode.groupWithStorage
=
\u
7D44[{0}]
\u
5DF2
\u
548C
\u
8A2D
\u5099\u
95DC
\u
806F
smfcode.groupWithUser
=
\u
7D44[{0}]
\u
5DF2
\u
548C
\u7528\u6236\u
95DC
\u
806F
smfcode.canotDelSelf
=
\u
522A
\u9664\u7528\u6236\u
FF1A
\u
4E0D
\u
80FD
\u
522A
\u9664\u
81EA
\u
5DF1
smfcode.canotDelUser
=
\u
522A
\u9664\u7528\u6236\u
FF1A
\u
6B64
\u7528\u6236\u
4E0D
\u
80FD
\u
522A
\u9664
smfcode.oldPwdError
=
\u
4FEE
\u6539\u5931\u6557\u
FF0C
\u
820A
\u
5BC6
\u
78BC
\u
932F
\u
8AA4
smfcode.newPwdError
=
\u
65B0
\u
5BC6
\u
78BC
\u
4E0D
\u
80FD
\u8207\u
820A
\u
5BC6
\u
78BC
\u
76F8
\u
540C
smfcode.pwdError
=
\u
4FEE
\u6539\u
90F5
\u
7BB1
\u5931\u6557\u
FF0C
\u
5BC6
\u
78BC
\u
932F
\u
8AA4
smfcode.hasNoAccess
=
\u7121\u
6B0A
\u9650\u
4FEE
\u6539\u
6B64
\u7528\u6236\u
4FE1
\u
606F
smfcode.noAccessUpdate
=
\u
6C92
\u6709\u
522A
\u9664\u
83DC
\u
55AE
\u7684\u
6B0A
\u9650
smfcode.roleCannotDel
=
\u
89D2
\u8272
[{0}]
\u6709
[{1}]
\u
500B
\u7528\u6236\u
95DC
\u
806F
\u6539\u
89D2
\u8272
,
\u
4E0D
\u
80FD
\u
522A
\u9664
smfcore.notFindPos
=
\u
672A
\u
627E
\u5230\u9396\u
5B9A
\u
5EAB
\u
4F4D
smfcore.error.barcode.empty
=
\u
672A
\u6383\u5230\u
689D
\u
78BC
smfcore.error.barcode.many
=
\u
627E
\u5230\u
591A
\u
500B
\u6709\u6548\u
689D
\u
78BC,
\u7121\u
6CD5
\u5165\u
5EAB
smfcore.error.barcode.expired
=
\u7269\u6599\u
5DF2
\u
904E
\u
671F,
\u7121\u
6CD5
\u5165\u
5EAB.
smfcore.allBoxView.noReel
=
\u
5EAB
\u
4F4D
\u
4E2D
\u7121\u7269\u6599
smfcode.error.barcode.many
=
\u
627E
\u5230\u
591A
\u
500B
\u6709\u6548\u7684\u
689D
\u
78BC
smfcode.error.barcode.noValidCode
=
\u7121\u6548\u7684\u
689D
\u
78BC
smfcore.error.barcode.noValidCode
=
{0}
\u
4E0D
\u
662F
\u6709\u6548\u7684\u
689D
\u
78BC
smfcode.error.barcode.executing
=
\u
689D
\u
78BC[{0}}]
\u
4EFB
\u
52D9
\u
6B63
\u5728\u
57F7
\u
884C
smfcode.error.pos.notExist
=
\u
5EAB
\u
4F4D[{0}]
\u
4E0D
\u
5B58
\u5728
,
\u7121\u
6CD5
\u5165\u
5EAB
smfcode.error.pos.wrong
=
\u
5EAB
\u
4F4D[{0}]
\u8207\u6599\u5009
[{1}}]
\u
4E0D
\u5339\u
914D,
\u7121\u
6CD5
\u5165\u
5EAB
smfcode.error.pos.hasReel
=
\u
5EAB
\u
4F4D[{0}]
\u
4E2D
\u
5DF2
\u6709\u7269\u6599
,
\u7121\u
6CD5
\u5165\u
5EAB
smfcode.error.pos.sizeNotMatch
=
\u6599\u
76E4
\u
5C3A
\u
5BF8[{0}}]
\u8207\u
5EAB
\u
4F4D{1}
\u
5C3A
\u
5BF8[{2}]
\u
4E0D
\u
7B26,
\u7121\u
6CD5
\u5165\u
5EAB
smfcode.error.storage.offline
=
\u6599\u5009
[{0}]
\u
96E2
\u
7DDA
smfcode.error.barcode.invalid
=
\u
689D
\u
78BC
\u7121\u6548
smfcode.error.barcode.wrongSize
=
\u
5C3A
\u
5BF8[{0}]
\u
4E0D
\u
7B26
smfcode.error.barcode.wrongQty
=
\u
689D
\u
78BC[{0}]
\u
5C0D
\u
61C9
\u7684\u6578\u
91CF<=0
\u7232
: {1}
smfcode.error.barcode.taskNotEnd
=
\u6599\u
76E4[{0}]
\u7684\u
64CD
\u
4F5C
\u
672A
\u
5B8C
\u6210
,
\u7121\u
6CD5
\u
57F7
\u
884C
\u5165\u
5EAB
\u
64CD
\u
4F5C
smfcode.error.columnNotExist
=
\u
5FC5
\u9808\u5305\u
542B[{0}
\u5217
smfcore.storage.error.notExist
=
\u
672A
\u
627E
\u5230\u6599\u5009
{0}
smfcode.error.barcode.inQueue
=
\u
4E8C
\u
7DAD
\u
78BC[{0}]
\u
5DF2
\u5728\u
64CD
\u
4F5C
\u
968A
\u5217\u
4E2D
\u
FF0C
\u
64CD
\u
4F5C
\u5931\u6557
smfcode.error.pos.inQueue
=
\u
4F4D
\u
7F6E:[{0}}]
\u
5DF2
\u5728\u
64CD
\u
4F5C
\u
968A
\u5217\u
4E2D,
\u
64CD
\u
4F5C
\u5931\u6557
smfcode.columnNotExist
=
\u
5FC5
\u9808\u5305\u
542B[{0}
\u5217
smfcore.conotUpdate
=
\u7528\u6236\u
540Dadmin
\u
4E0D
\u
80FD
\u
4FEE
\u6539
smfcore.unfinished
=
\u
689D
\u
78BC[{0}]
\u7684\u
4EFB
\u
52D9
\u9084\u
672A
\u
7D50
\u
675F
smfcore.ok
=
ok
smfcore.shelfNotExist
=
{0}
\u
5C0D
\u
61C9
\u7684\u6599\u
67B6
\u
4E0D
\u
5B58
\u5728
smfcore.inputError
=
\u5165\u
5EAB
\u
51FA
\u
932F:{0}
smfcore.checkoutError
=
\u
51FA
\u
5EAB
\u
51FA
\u
932F:{0}
smfcore.notask
=
\u
8A02
\u
55AE
\u7121\u
4EFB
\u
52D9
smfcore.taskCount
=
\u
4EFB
\u
52D9
\u
7E3D
\u6578
:{0}
smfcore.noconnecttion
=
\u
672A
\u9023\u
63A5
smfcore.loadMaterialFailed
=
\u
8A2D
\u5099\u
52A0
\u
8F09
\u5931\u6557
:{0}
smfcore.checkNg
=
\u
8A2D
\u5099\u
9A57
\u
8B49
\u5931\u6557
:{0}
smfcore.loadMaterialFinished
=
\u
8A2D
\u5099\u
52A0
\u
8F09
\u
5B8C
\u6210
: {0}
smfcore.lockMaterial
=
\u9396\u
5B9A
\u7269\u6599
smfcore.lightGroup
=
\u6599\u
67B6
\u5206\u
7D44
smfcore.order
=
\u
5DE5
\u
55AE
\u
7BA1
\u7406
smfcore.workOrder
=
\u
5DE5
\u
55AE
smfcore.singleOuput
=
\u
67E5
\u
627E
\u
51FA
\u
5EAB
smfcore.system
=
\u
8A2D
\u
7F6E
smfcore.bunker
=
\u6599\u5009\u
7BA1
\u7406
smfcore.storagePos
=
\u
5EAB
\u
4F4D
\u
7BA1
\u7406
smfcore.menu
=
\u
83DC
\u
55AE
\u
7BA1
\u7406
smfcore.materiel
=
\u7269\u6599\u
7BA1
\u7406
smfcore.componentParts
=
\u5143\u5668\u
4EF6
smfcore.barcode
=
\u
689D
\u
5F62
\u
78BC
smfcore.log
=
\u
65E5
\u
5FD7
\u
7BA1
\u7406
smfcore.taskLog
=
\u7269\u6599\u
65E5
\u
5FD7
smfcore.user
=
\u7528\u6236\u
7BA1
\u7406
smfcore.peoples
=
\u7528\u6236\u
7BA1
\u7406
smfcore.role
=
\u
89D2
\u8272\u
7BA1
\u7406
\ No newline at end of file
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论