Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
H
hg-smart
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
platform
hg-smart
Commits
fc93070f
Commit
fc93070f
authored
Aug 29, 2024
by
liuyang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
2024-08-29 文档库
parent
2ed3b447
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
1833 additions
and
29 deletions
+1833
-29
HGWD001.java
src/main/java/com/baosight/hggp/hg/wd/domain/HGWD001.java
+47
-0
ServiceHGWD001.java
.../java/com/baosight/hggp/hg/wd/service/ServiceHGWD001.java
+21
-0
HGWD001.xml
src/main/java/com/baosight/hggp/hg/wd/sql/HGWD001.xml
+75
-1
HGWDTools.java
src/main/java/com/baosight/hggp/hg/wd/tools/HGWDTools.java
+4
-1
HGWD001.js
src/main/webapp/HG/WD/HGWD001.js
+1192
-22
HGWD001.jsp
src/main/webapp/HG/WD/HGWD001.jsp
+494
-5
No files found.
src/main/java/com/baosight/hggp/hg/wd/domain/HGWD001.java
View file @
fc93070f
...
...
@@ -35,6 +35,8 @@ public class HGWD001 extends DaoEPBase {
public
static
final
String
FIELD_COMPANY_NAME
=
"companyName"
;
/* 公司名称*/
public
static
final
String
FIELD_PROJ_CODE
=
"projCode"
;
/* 项目编码*/
public
static
final
String
FIELD_PROJ_NAME
=
"projName"
;
/* 项目名称*/
public
static
final
String
FIELD_LEAF_LEVEL
=
"leafLevel"
;
/* 节点层级*/
public
static
final
String
FIELD_PARENT_ID
=
"parentId"
;
/* 父级ID*/
public
static
final
String
FIELD_FILE_ID
=
"fileId"
;
/* 文件ID*/
public
static
final
String
FIELD_FILE_TYPE
=
"fileType"
;
/* 文件类型*/
public
static
final
String
FIELD_FILE_NAME
=
"fileName"
;
/* 文件名称*/
...
...
@@ -86,6 +88,8 @@ public class HGWD001 extends DaoEPBase {
private
String
companyName
=
" "
;
/* 公司名称*/
private
String
projCode
=
" "
;
/* 项目编码*/
private
String
projName
=
" "
;
/* 项目名称*/
private
Integer
leafLevel
=
new
Integer
(
0
);
private
String
parentId
=
" "
;
private
String
fileId
=
" "
;
/* 文件ID*/
private
String
fileType
=
" "
;
/* 文件类型*/
private
String
fileName
=
" "
;
/* 文件名称*/
...
...
@@ -157,6 +161,14 @@ public class HGWD001 extends DaoEPBase {
eiColumn
.
setDescName
(
"项目名称"
);
eiMetadata
.
addMeta
(
eiColumn
);
eiColumn
=
new
EiColumn
(
FIELD_LEAF_LEVEL
);
eiColumn
.
setDescName
(
"节点层级"
);
eiMetadata
.
addMeta
(
eiColumn
);
eiColumn
=
new
EiColumn
(
FIELD_PARENT_ID
);
eiColumn
.
setDescName
(
"父级ID"
);
eiMetadata
.
addMeta
(
eiColumn
);
eiColumn
=
new
EiColumn
(
FIELD_FILE_ID
);
eiColumn
.
setDescName
(
"文件ID"
);
eiMetadata
.
addMeta
(
eiColumn
);
...
...
@@ -419,6 +431,37 @@ public class HGWD001 extends DaoEPBase {
public
void
setProjName
(
String
projName
)
{
this
.
projName
=
projName
;
}
/**
* get the leafLevel - 层级
* @return 层级
*/
public
Integer
getLeafLevel
()
{
return
leafLevel
;
}
/**
* set the leafLevel - 层级
* @param leafLevel - 层级
*/
public
void
setLeafLevel
(
Integer
leafLevel
)
{
this
.
leafLevel
=
leafLevel
;
}
/**
* get the parentId - 父级
* @return 父级
*/
public
String
getParentId
()
{
return
parentId
;
}
/**
* set the parentId - 层级
* @param parentId - 层级
*/
public
void
setParentId
(
String
parentId
)
{
this
.
parentId
=
parentId
;
}
/**
* get the fileId - 文件ID.
* @return the fileId
...
...
@@ -553,6 +596,8 @@ public class HGWD001 extends DaoEPBase {
setCompanyName
(
StringUtils
.
defaultIfEmpty
(
StringUtils
.
toString
(
map
.
get
(
FIELD_COMPANY_NAME
)),
companyName
));
setProjCode
(
StringUtils
.
defaultIfEmpty
(
StringUtils
.
toString
(
map
.
get
(
FIELD_PROJ_CODE
)),
projCode
));
setProjName
(
StringUtils
.
defaultIfEmpty
(
StringUtils
.
toString
(
map
.
get
(
FIELD_PROJ_NAME
)),
projName
));
setLeafLevel
(
NumberUtils
.
toInteger
(
StringUtils
.
toString
(
map
.
get
(
FIELD_LEAF_LEVEL
)),
leafLevel
));
setParentId
(
StringUtils
.
defaultIfEmpty
(
StringUtils
.
toString
(
map
.
get
(
FIELD_PARENT_ID
)),
parentId
));
setFileId
(
StringUtils
.
defaultIfEmpty
(
StringUtils
.
toString
(
map
.
get
(
FIELD_FILE_ID
)),
fileId
));
setFileType
(
StringUtils
.
defaultIfEmpty
(
StringUtils
.
toString
(
map
.
get
(
FIELD_FILE_TYPE
)),
fileType
));
setFileName
(
StringUtils
.
defaultIfEmpty
(
StringUtils
.
toString
(
map
.
get
(
FIELD_FILE_NAME
)),
fileName
));
...
...
@@ -583,6 +628,8 @@ public class HGWD001 extends DaoEPBase {
map
.
put
(
FIELD_COMPANY_NAME
,
StringUtils
.
toString
(
companyName
,
eiMetadata
.
getMeta
(
FIELD_COMPANY_NAME
)));
map
.
put
(
FIELD_PROJ_CODE
,
StringUtils
.
toString
(
projCode
,
eiMetadata
.
getMeta
(
FIELD_PROJ_CODE
)));
map
.
put
(
FIELD_PROJ_NAME
,
StringUtils
.
toString
(
projName
,
eiMetadata
.
getMeta
(
FIELD_PROJ_NAME
)));
map
.
put
(
FIELD_LEAF_LEVEL
,
StringUtils
.
toString
(
leafLevel
,
eiMetadata
.
getMeta
(
FIELD_LEAF_LEVEL
)));
map
.
put
(
FIELD_PARENT_ID
,
StringUtils
.
toString
(
parentId
,
eiMetadata
.
getMeta
(
FIELD_PARENT_ID
)));
map
.
put
(
FIELD_FILE_ID
,
StringUtils
.
toString
(
fileId
,
eiMetadata
.
getMeta
(
FIELD_FILE_ID
)));
map
.
put
(
FIELD_FILE_TYPE
,
StringUtils
.
toString
(
fileType
,
eiMetadata
.
getMeta
(
FIELD_FILE_TYPE
)));
map
.
put
(
FIELD_FILE_NAME
,
StringUtils
.
toString
(
fileName
,
eiMetadata
.
getMeta
(
FIELD_FILE_NAME
)));
...
...
src/main/java/com/baosight/hggp/hg/wd/service/ServiceHGWD001.java
View file @
fc93070f
...
...
@@ -212,5 +212,26 @@ public class ServiceHGWD001 extends ServiceEPBase {
return
inInfo
;
}
//树查询服务
public
EiInfo
queryTreeNode
(
EiInfo
inInfo
)
{
Map
queryRow
=
EiInfoUtils
.
getFirstRow
(
inInfo
);
String
node
=
MapUtils
.
getString
(
queryRow
,
"fileId"
);
//获取物料详情数据
String
projCode
=
inInfo
.
getString
(
"projCode"
);
String
companyCode
=
inInfo
.
getString
(
"companyCode"
);
String
parentId
=
inInfo
.
getString
(
"parentId"
);
Map
queryMap
=
new
HashMap
();
queryMap
.
put
(
"companyCode"
,
StringUtils
.
isNotBlank
(
companyCode
)
?
companyCode
:
"null"
);
queryMap
.
put
(
"projCode"
,
StringUtils
.
isNotBlank
(
projCode
)
?
projCode
:
"null"
);
queryMap
.
put
(
"parentId"
,
StringUtils
.
isNotBlank
(
parentId
)
?
parentId
:
"null"
);
queryMap
.
put
(
"pEname"
,
"$"
.
equals
(
node
)
?
"root"
:
node
);
//2 查询节点
List
rows
=
dao
.
query
(
"HGWD001.queryTree"
,
queryMap
);
//3 增加节点block块
EiInfo
outInfo
=
new
EiInfo
();
EiBlock
outBlock
=
outInfo
.
addBlock
(
node
);
outBlock
.
addRows
(
rows
);
return
outInfo
;
}
}
src/main/java/com/baosight/hggp/hg/wd/sql/HGWD001.xml
View file @
fc93070f
...
...
@@ -17,6 +17,8 @@
COMPANY_NAME as "companyName",
<!-- 公司名称 -->
PROJ_CODE as "projCode",
<!-- 项目编码 -->
PROJ_NAME as "projName",
<!-- 项目名称 -->
LEAF_LEVEL as "leafLevel",
<!--节点层级-->
PARENT_ID as "parentId",
<!--父级ID-->
FILE_ID as "fileId",
<!-- 文件ID -->
FILE_TYPE as "fileType",
<!-- 文件类型 -->
FILE_NAME as "fileName",
<!-- 文件名称 -->
...
...
@@ -69,6 +71,12 @@
<isNotEmpty
prepend=
" AND "
property=
"projName"
>
PROJ_NAME LIKE CONCAT('%', #projName#, '%')
</isNotEmpty>
<isNotEmpty
prepend=
" AND "
property=
"leafLevel"
>
LEAF_LEVEL = #leafLevel#
</isNotEmpty>
<isNotEmpty
prepend=
" AND "
property=
"parentId"
>
PARENT_ID = #parentId#
</isNotEmpty>
<isNotEmpty
prepend=
" AND "
property=
"fileId"
>
FILE_ID = #fileId#
</isNotEmpty>
...
...
@@ -130,6 +138,8 @@
COMPANY_NAME,
<!-- 公司名称 -->
PROJ_CODE,
<!-- 项目编码 -->
PROJ_NAME,
<!-- 项目名称 -->
LEAF_LEVEL,
<!--节点层级-->
PARENT_ID,
<!--父级ID-->
FILE_ID,
<!-- 文件ID -->
FILE_TYPE,
<!-- 文件类型 -->
FILE_NAME,
<!-- 文件名称 -->
...
...
@@ -139,7 +149,7 @@
RELEASE_DATE
) VALUES (
#accountCode#, #depCode#, #createdBy#, #createdName#, #createdTime#,
#deleteFlag#, #companyCode#, #companyName#, #projCode#, #projName#,
#deleteFlag#, #companyCode#, #companyName#, #projCode#, #projName#,
#leafLevel#,#parentId#
#fileId#, #fileType#, #fileName#,
#docVersion#, #status#, #remark#, #releaseDate#
<selectKey
resultClass=
"long"
keyProperty=
"id"
>
...
...
@@ -185,4 +195,68 @@
WHERE ID = #id#
</update>
<select
id=
"queryTree"
resultClass=
"java.util.HashMap"
>
SELECT
COMPANY_CODE as "companyCode",
<!-- 公司编码 -->
COMPANY_NAME as "companyName",
<!-- 公司名称 -->
PROJ_CODE as "projCode",
<!-- 项目编码 -->
PROJ_NAME as "projName",
<!-- 项目名称 -->
LEAF_LEVEL as "leafLevel",
<!--节点层级-->
PARENT_ID as "pId",
<!--父级ID-->
FILE_ID as "fileId",
<!-- 文件ID -->
FILE_TYPE as "fileType",
<!-- 文件类型 -->
FILE_NAME as "fileName"
<!-- 文件名称 -->
FROM ${hggpSchema}.HGWD001
WHERE 1=1
<isNotEmpty
prepend=
" AND "
property=
"pEname"
>
PARENT_ID = #pEname#
</isNotEmpty>
<isNotEmpty
prepend=
" AND "
property=
"companyCode"
>
COMPANY_CODE = #companyCode#
</isNotEmpty>
<isNotEmpty
prepend=
" AND "
property=
"projCode"
>
PROJ_CODE = #projCode#
</isNotEmpty>
<isNotEmpty
prepend=
" AND "
property=
"parentId"
>
PARENT_ID = #parentId#
</isNotEmpty>
<isNotEmpty
prepend=
" AND "
property=
"fileId"
>
FILE_ID = #fileId#
</isNotEmpty>
<isNotEmpty
prepend=
" AND "
property=
"leafLevel"
>
LEAF_LEVEL = #leafLevel#
</isNotEmpty>
ORDER BY CREATED_TIME DESC
</select>
<!-- 组织机构子节点树查询 -->
<select
id=
"queryOrganiation"
resultClass=
"java.util.HashMap"
>
SELECT
A.FILE_ID as "label",
A.FILE_ID as "ename",
A.FILE_NAME as "text",
A.FILE_TYPE as "leaf",
A.FILE_TYPE as "type",
A.PARENT_ID as "parentId",
A.DELETE_FLAG as "isDeleted"
FROM ${hggpSchema}.HGWD001 A INNER JOIN ${hggpSchema}.HGWD003 B ON A.FILE_ID = B.FILE_ID
WHERE 1=1
<isEmpty
prepend=
" AND "
property=
"deletedQuery"
>
A.DELETE_FLAG = '0'
</isEmpty>
<isNotEmpty
prepend=
" AND "
property=
"node"
>
A.PARENT_ID = #node#
</isNotEmpty>
<isNotEmpty
prepend=
" AND "
property=
"companyCode"
>
COMPANY_CODE = #companyCode#
</isNotEmpty>
<isNotEmpty
prepend=
" AND "
property=
"accountCode"
>
A.ACCOUNT_CODE = #accountCode#
</isNotEmpty>
<isNotEmpty
prepend=
" AND "
property=
"userId"
>
B.USER_ID = #userId#
</isNotEmpty>
order by A.CREATED_TIME asc
</select>
</sqlMap>
src/main/java/com/baosight/hggp/hg/wd/tools/HGWDTools.java
View file @
fc93070f
...
...
@@ -30,9 +30,12 @@ public class HGWDTools {
* @return
*/
public
static
HGWD001
get
(
String
fileId
)
{
AssertUtils
.
isEmpty
(
fileId
,
"文件ID不能为空"
);
//
AssertUtils.isEmpty(fileId, "文件ID不能为空");
Map
queryMap
=
new
HashMap
();
if
(
fileId
!=
null
)
{
queryMap
.
put
(
HGWD001
.
FIELD_FILE_ID
,
fileId
);
}
List
<
HGWD001
>
results
=
DaoBase
.
getInstance
().
query
(
HGWD001
.
QUERY
,
queryMap
);
return
CollectionUtils
.
isEmpty
(
results
)
?
null
:
results
.
get
(
0
);
}
...
...
src/main/webapp/HG/WD/HGWD001.js
View file @
fc93070f
let
projCode
=
''
;
var
companyCode
=
''
;
$
(
function
()
{
var
companyCodeBox
=
__eiInfo
.
getBlock
(
"companyBox_block_id"
).
getMappedRows
();
var
projCodeBox
=
__eiInfo
.
getBlock
(
"proj_record_block_id"
).
getMappedRows
();
const
init
=
()
=>
{
$
(
"#HGWD001"
).
css
(
"padding-bottom"
,
"8px"
)
sessionStorage
.
removeItem
(
"__user_id__"
)
setTimeout
(()
=>
{
resultGrid
.
dataSource
.
page
(
1
);
},
1000
);
// 查询
$
(
"#QUERY"
).
on
(
"click"
,
function
(
e
)
{
resultGrid
.
dataSource
.
page
(
1
);
});
$
(
"#QUERY_1"
).
on
(
"click"
,
function
(
e
)
{
result1Grid
.
dataSource
.
page
(
1
);
});
// 查询
$
(
"#QUERY_2"
).
on
(
"click"
,
function
(
e
)
{
result2Grid
.
dataSource
.
page
(
1
);
});
$
(
"#defaultExport"
).
on
(
"click"
,
function
(
e
)
{
const
info
=
new
EiInfo
();
EiCommunicator
.
send
(
"XSOG0801"
,
"exportOrg"
,
info
,
{
onSuccess
:
function
(
response
)
{
if
(
response
.
status
==
0
)
{
NotificationUtil
(
"导出成功"
);
let
fileName
=
response
.
get
(
"fileName"
);
let
url
=
"../lessees/user/export/"
+
fileName
;
window
.
open
(
url
);
}
},
onFail
:
function
(
errorMsg
,
status
,
e
)
{
/* errorMsg 是平台格式化后的异常消息, status, e的含义和$.ajax的含义相同,请参考jQuery文档 */
console
.
log
(
errorMsg
);
}
});
});
$
(
"#customExport"
).
on
(
"click"
,
function
(
e
)
{
const
info
=
new
EiInfo
();
EiCommunicator
.
send
(
"XSOG0801"
,
"exportCustomUser"
,
info
,
{
onSuccess
:
function
(
response
)
{
if
(
response
.
status
==
0
)
{
NotificationUtil
(
"导出成功"
);
let
fileName
=
response
.
get
(
"fileName"
);
let
url
=
"../lessees/user/export/"
+
fileName
;
window
.
open
(
url
);
}
},
onFail
:
function
(
errorMsg
,
status
,
e
)
{
/* errorMsg 是平台格式化后的异常消息, status, e的含义和$.ajax的含义相同,请参考jQuery文档 */
console
.
log
(
errorMsg
);
}
});
});
$
(
"#customExportSettting_1"
).
on
(
"click"
,
function
(
e
)
{
$
(
"#exportSettingWindow"
).
data
(
"kendoWindow"
).
center
();
$
(
"#exportSettingWindow"
).
data
(
"kendoWindow"
).
open
();
result4Grid
.
dataSource
.
page
(
1
);
result5Grid
.
dataSource
.
page
(
1
);
});
$
(
"#customExportSettting_2"
).
on
(
"click"
,
function
(
e
)
{
$
(
"#exportSettingWindow"
).
data
(
"kendoWindow"
).
center
();
$
(
"#exportSettingWindow"
).
data
(
"kendoWindow"
).
open
();
result4Grid
.
dataSource
.
page
(
1
);
result5Grid
.
dataSource
.
page
(
1
);
});
// 上传组件
(
function
()
{
const
fileUploader
=
function
(
options
)
{
const
GET_IMP_INFO
=
"getImpInfo"
;
var
element
=
$
(
"#"
+
options
.
id
);
// 执行导入前先在后台检测导入信息是否合法
var
saveUrl
=
IPLATUI
.
CONTEXT_PATH
+
"/XS/UP/XSUPImport.jsp?ename="
+
options
.
ename
+
"&serviceName="
+
options
.
serviceName
+
"&methodName="
+
GET_IMP_INFO
;
$
.
extend
(
options
,
{
async
:
{
saveUrl
:
saveUrl
},
success
:
function
(
data
)
{
// 前置检查成功时,执行导入
let
eiInfo
=
new
EiInfo
()
eiInfo
.
set
(
"impModel"
,
options
.
impModel
)
EiCommunicator
.
send
(
options
.
serviceName
,
options
.
methodName
,
eiInfo
,
{
onSuccess
:
function
(
response
)
{
IPLAT
.
alert
(
response
.
msg
);
},
onFail
:
function
(
errorMsg
,
status
,
e
)
{
/* errorMsg 是平台格式化后的异常消息, status, e的含义和$.ajax的含义相同,请参考jQuery文档 */
console
.
log
(
errorMsg
);
}
});
},
error
:
function
(
data
)
{
IPLAT
.
alert
(
data
?.
response
?.
msg
);
}
});
return
element
.
kendoUpload
(
options
).
data
(
"kendoUpload"
);
};
fileUploader
({
id
:
"fileAll_0"
,
ename
:
"fileAll_0"
,
serviceName
:
"XSOG0801"
,
methodName
:
"importOrgAndUser"
,
impModel
:
"0"
});
fileUploader
({
id
:
"fileAll_1"
,
ename
:
"fileAll_1"
,
serviceName
:
"XSOG0801"
,
methodName
:
"importOrgAndUser"
,
impModel
:
"1"
});
fileUploader
({
id
:
"fileAll_2"
,
ename
:
"fileAll_2"
,
serviceName
:
"XSOG0801"
,
methodName
:
"importOrgAndUser"
,
impModel
:
"2"
});
fileUploader
({
id
:
"fileAll_3"
,
ename
:
"fileAll_3"
,
serviceName
:
"XSOG0801"
,
methodName
:
"importCustomUser"
,
impModel
:
"0"
});
fileUploader
({
id
:
"fileAll_4"
,
ename
:
"fileAll_4"
,
serviceName
:
"XSOG0801"
,
methodName
:
"importCustomUser"
,
impModel
:
"1"
});
fileUploader
({
id
:
"fileAll_5 "
,
ename
:
"fileAll_5"
,
serviceName
:
"XSOG0801"
,
methodName
:
"importCustomUser"
,
impModel
:
"2"
});
})();
// 分割线组件
(
function
()
{
splitter
=
$
(
"#splitter"
).
kendoSplitter
({
panes
:
[
{
size
:
"30%"
,
min
:
"25%"
,
max
:
"75%"
,
collapsible
:
true
},
{},
{
collapsible
:
true
}
]
}).
data
(
"kendoSplitter"
);
// 当 EFRegion 的 fitHeight="true" 时,需要为 splitter 中的 k-splitbar 加上 class="i-fit-height"。
$
(
"#splitter"
).
find
(
".k-splitbar"
).
addClass
(
"i-fit-height"
);
//加下面的延迟是为了处理 多界面同时刷新 界面展示不全的问题
var
interval01
=
setInterval
(
splitterInterval
,
200
);
function
splitterInterval
()
{
if
(
document
.
getElementById
(
"splitter"
).
getElementsByClassName
(
"k-splitbar"
).
length
!==
1
)
{
$
(
"#splitter"
).
kendoSplitter
({
panes
:
[
{
size
:
"30%"
,
min
:
"25%"
,
max
:
"75%"
,
collapsible
:
true
},
{},
{
collapsible
:
true
}
]
});
}
else
{
clearInterval
(
interval01
);
}
}
})();
// 抽屉组件
(
function
()
{
$
(
".close-btn span"
).
on
(
"click"
,
function
()
{
closeDrawer
()
})
function
closeDrawer
()
{
$
(
".drawer-wrapper"
).
css
(
"transform"
,
"translateX(-100%)"
);
// 重置splitter
splitter
.
collapse
(
".k-pane:first"
)
splitter
.
expand
(
".k-pane:first"
)
}
function
openDrawer
(
url
,
userId
)
{
$
(
".drawer-wrapper"
).
css
(
"transform"
,
"translateX(0%)"
);
const
lastId
=
sessionStorage
.
getItem
(
"__user_id__"
)
if
(
lastId
!==
userId
)
{
sessionStorage
.
setItem
(
"__user_id__"
,
userId
);
}
if
(
$
(
".drawer-wrapper iframe"
).
attr
(
"src"
)
===
''
)
{
$
(
".drawer-wrapper iframe"
).
attr
(
"src"
,
url
)
}
refreshUserDetail
();
function
refreshUserDetail
()
{
if
(
$
(
"#iframeDrawer"
)?.
get
(
0
)?.
contentWindow
?.
refreshWindow
)
{
$
(
"#iframeDrawer"
).
get
(
0
).
contentWindow
.
refreshWindow
()
return
}
setTimeout
(()
=>
{
refreshUserDetail
();
},
50
)
}
}
window
.
closeDrawer
=
closeDrawer
;
window
.
openDrawer
=
openDrawer
;
})();
// 注册模块
(
function
()
{
$
(
window
).
load
(
function
()
{
resultGrid
.
setEiInfo
(
__eiInfo
);
});
$
(
document
.
body
).
on
(
"click"
,
"#QUERY"
,
function
(
e
)
{
var
loginName
=
$
(
"[name = 'inqu_status-0-loginName']"
).
val
();
var
userName
=
$
(
"[name = 'inqu_status-0-userName']"
).
val
();
var
userGroupEname
=
$
(
"[name = 'inqu_status-0-userGroupEname']"
).
val
();
$
(
"#inqu_status-0-loginName"
).
val
(
loginName
);
$
(
"#inqu_status-0-userName"
).
val
(
userName
);
$
(
"#inqu_status-0-userGroupEname"
).
val
(
userGroupEname
);
resultGrid
.
dataSource
.
page
(
1
);
});
var
validator1
=
IPLAT
.
Validator
({
errorTemplate
:
"<span class='k-widget k-tooltip k-tooltip-validation' style='width: 300px; text-align: left'><span class='k-icon k-i-warning'> </span> #=message#</span>"
,
id
:
"registerUser"
,
groupName
:
"group1"
});
window
.
validator1
=
validator1
;
$
(
"#inqu_status-0-loginName"
).
change
(
function
()
{
var
regex
=
/^
[
_a-zA-Z0-9
]{1,64}
$/
;
var
loginName
=
$
(
this
).
val
();
loginName
=
loginName
.
trim
();
if
(
!
regex
.
test
(
loginName
))
{
return
false
;
}
var
inInfo
=
new
EiInfo
();
inInfo
.
set
(
"loginName"
,
loginName
);
EiCommunicator
.
send
(
"XS0102"
,
"checkLoginName"
,
inInfo
,
{
onSuccess
:
function
(
ei
)
{
if
(
-
1
==
ei
.
getStatus
())
{
$
(
"#inqu_status-0-loginName-prompt"
).
attr
(
"style"
,
"color:red"
);
$
(
"#inqu_status-0-loginName-prompt"
).
html
(
"【"
+
ei
.
getMsg
()
+
"】"
);
$
(
"#REGISTERNEWUSER"
).
attr
(
"disabled"
,
true
);
}
else
{
$
(
"#inqu_status-0-loginName-prompt"
).
attr
(
"style"
,
"color:blue"
);
$
(
"#inqu_status-0-loginName-prompt"
).
html
(
"【该登录账号可以使用】"
);
$
(
"#REGISTERNEWUSER"
).
attr
(
"disabled"
,
false
);
}
},
onFail
:
function
(
ei
)
{
$
(
"#inqu_status-0-loginName-prompt"
).
html
(
"【该登录账号无法使用】"
);
}
})
});
$
(
"#inqu_status-0-password"
).
change
(
function
()
{
var
checkpasswordSwitch
=
$
(
"#checkpasswordSwitch"
).
val
();
if
(
"on"
==
checkpasswordSwitch
)
{
var
password
=
$
(
this
).
val
();
password
=
password
.
trim
();
var
inInfo
=
new
EiInfo
();
inInfo
.
set
(
"password"
,
password
);
EiCommunicator
.
send
(
"XS0102"
,
"checkPassword"
,
inInfo
,
{
onSuccess
:
function
(
ei
)
{
if
(
-
1
==
ei
.
getStatus
())
{
$
(
"#inqu_status-0-password-prompt"
).
attr
(
"style"
,
"color:red"
);
$
(
"#inqu_status-0-password-prompt"
).
html
(
"【"
+
ei
.
getMsg
()
+
"】"
);
$
(
"#REGISTERNEWUSER"
).
attr
(
"disabled"
,
true
);
}
else
{
$
(
"#inqu_status-0-password-prompt"
).
attr
(
"style"
,
"color:blue"
);
$
(
"#inqu_status-0-password-prompt"
).
html
(
"【"
+
ei
.
getMsg
()
+
"】"
);
$
(
"#REGISTERNEWUSER"
).
attr
(
"disabled"
,
false
);
}
},
onFail
:
function
(
ei
)
{
$
(
"#inqu_status-0-password-prompt"
).
html
(
"【"
+
ei
.
getMsg
()
+
"】"
);
}
})
}
});
$
(
"#REGISTERNEWUSER"
).
click
(
function
()
{
var
arr
=
Object
.
keys
(
window
.
validator1
.
_errors
);
if
(
arr
.
length
>
0
)
{
IPLAT
.
alert
(
"新增失败,请检查填写格式是否正确"
);
return
false
;
}
var
eiInfo
=
new
EiInfo
();
eiInfo
.
setByNode
(
"inqua"
);
if
(
$
(
'#cryptoPasswordEnable'
).
val
()
===
'on'
)
{
var
loginName
=
RSAEncrypt
(
eiInfo
.
blocks
.
details
.
rows
[
0
][
0
]);
var
userName
=
eiInfo
.
blocks
.
details
.
rows
[
0
][
1
];
var
rsaPassword
=
RSAEncrypt
(
eiInfo
.
blocks
.
details
.
rows
[
0
][
2
]);
var
rsaRePassword
=
RSAEncrypt
(
eiInfo
.
blocks
.
details
.
rows
[
0
][
3
]);
eiInfo
.
blocks
.
details
.
rows
[
0
][
0
]
=
loginName
;
eiInfo
.
blocks
.
details
.
rows
[
0
][
1
]
=
userName
;
eiInfo
.
blocks
.
details
.
rows
[
0
][
2
]
=
rsaPassword
;
eiInfo
.
blocks
.
details
.
rows
[
0
][
3
]
=
rsaRePassword
;
}
EiCommunicator
.
send
(
"XS0102"
,
"insert"
,
eiInfo
,
{
onSuccess
:
function
(
ei
)
{
if
(
-
1
==
ei
.
getStatus
())
{
IPLAT
.
alert
(
ei
.
getMsg
());
}
else
{
IPLAT
.
alert
({
message
:
'<b>注册成功!</b>'
,
okFn
:
function
(
e
)
{
$
(
"#REGISTERUSER"
).
data
(
"kendoWindow"
).
close
();
result1Grid
.
dataSource
.
page
(
1
);
},
title
:
'提示信息'
});
clearInput
();
}
},
onFail
:
function
(
ei
)
{
IPLAT
.
alert
(
ei
.
getMsg
());
}
})
const
clearInput
=
()
=>
{
$
(
"#details-0-loginName"
).
val
(
""
);
$
(
"#details-0-userName"
).
val
(
""
);
$
(
"#details-0-password"
).
val
(
""
);
$
(
"#details-0-rePass"
).
val
(
""
);
$
(
"#details-0-mobile"
).
val
(
""
);
$
(
"#details-0-email"
).
val
(
""
);
IPLAT
.
EFSelect
.
value
(
$
(
"#details-0-gender"
),
1
)
}
});
})();
}
init
();
$
(
".row"
).
children
().
attr
(
"class"
,
"col-md-3"
);
$
(
"#QUERY"
).
on
(
"click"
,
query
);
IPLATUI
.
EFTree
=
{
"categoryTree"
:
{
select
:
function
(
e
)
{
var
_data
=
this
.
dataItem
(
e
.
node
);
var
labelValue
=
_data
.
label
;
var
typeValue
=
_data
.
type
;
const
eNameValue
=
_data
.
ename
;
$
(
"[name = 'inqu_status-0-parentOrgId']"
).
val
(
labelValue
);
$
(
"[name = 'inqu_status-0-parentOrgType']"
).
val
(
typeValue
);
$
(
"[name = 'inqu_status-0-parentOrgEname']"
).
val
(
eNameValue
);
$
(
"[name = 'inqu_status-0-orgCname']"
).
val
(
_data
.
text
);
resultGrid
.
dataSource
.
page
(
1
);
// 编辑、删除树节点时,需要刷新的树节点
$
(
"[name = 'inqu_status3-0-orgParentId']"
).
val
(
_data
.
parentId
);
},
/*ROOT:{label: 'root',text: '组织机构'},*/
template
:
function
(
node
)
{
var
item
=
node
.
item
;
var
title
=
item
.
text
;
let
icon
=
'fa fa-globe'
if
(
item
.
label
!==
'root'
)
{
switch
(
item
.
type
)
{
case
'company'
:
// title = title + ' [公司]';
icon
=
'fa fa-building'
break
;
case
'dept'
:
// title = title + ' [部门]';
icon
=
'fa fa-users'
break
;
case
'post'
:
// title = title + ' [岗位]';
icon
=
'fa fa-user'
break
;
default
:
icon
=
'fa fa-home'
}
}
return
' <span class="'
+
icon
+
'" style="padding-right: 8px"> </span> <span class="titleClass" title="'
+
item
.
label
+
'">'
+
title
+
'</span>'
},
loadComplete
:
function
(
options
)
{
IPLATUI
.
EFAutoComplete
=
{
"inqu_status-0-deviceName"
:
{
minLength
:
1
,
dataSource
:
{
pageSize
:
10
,
serverPaging
:
true
,
serverFiltering
:
true
/**
* 为组织机构树增加grid拖动至树事件
*/
$
(
"#categoryTree"
).
kendoDropTarget
({
group
:
"grid-tree"
,
drop
:
(
e
)
=>
{
// const oldOrgId = $("#inqu_status-0-parentOrgId").val()
const
oldOrgId
=
movedUser
.
get
(
"fileId"
)
const
newOrgId
=
e
.
target
.
className
===
"titleClass"
?
e
.
target
.
title
:
e
.
target
.
getElementsByClassName
(
"titleClass"
)[
0
]?.
title
const
newOrgName
=
e
.
target
.
innerText
// 如果注册到root根节点或非法节点,不允许更改
if
(
"root"
===
newOrgId
||
newOrgId
==
null
)
{
e
.
preventDefault
()
return
}
const
okFunc
=
()
=>
{
let
eiInfo
=
new
EiInfo
()
eiInfo
.
set
(
"result-0-userId"
,
movedUser
.
get
(
"userId"
))
eiInfo
.
set
(
"result-0-oldOrgId"
,
oldOrgId
)
eiInfo
.
set
(
"result-0-newOrgId"
,
newOrgId
)
eiInfo
.
set
(
"loginName"
,
movedUser
.
get
(
"loginName"
))
eiInfo
.
set
(
"userName"
,
movedUser
.
get
(
"userName"
))
EiCommunicator
.
send
(
"XSOG0801"
,
"updateUserOrg"
,
eiInfo
,
{
onSuccess
:
function
(
response
)
{
if
(
response
.
getStatus
()
===
-
1
)
{
IPLAT
.
alert
(
response
.
msg
);
}
else
{
resultGrid
.
dataSource
.
page
(
1
);
IPLAT
.
alert
(
"更新用户组织机构成功"
);
}
},
onFail
:
function
(
errorMsg
,
status
,
e
)
{
/* errorMsg 是平台格式化后的异常消息, status, e的含义和$.ajax的含义相同,请参考jQuery文档 */
console
.
log
(
errorMsg
);
}
});
}
if
(
oldOrgId
!==
newOrgId
)
{
IPLAT
.
confirm
({
message
:
`<b>确定移动选中用户到
${
newOrgName
}
吗?</b> \n\n <i style="font-size: 12px">注:请优先通知管理员。</i>`
,
okFn
:
okFunc
,
cancelFn
:
function
(
e
)
{
}
});
}
}
});
// 树节点增删改查
/**
* 树节点查询
*/
$
(
"#search"
).
on
(
"click"
,
()
=>
{
let
tree
=
$
(
"#categoryTree"
).
data
(
"kendoTreeView"
);
let
eiInfo
=
new
EiInfo
();
let
leafName
=
$
(
"#searchText"
).
val
();
if
(
leafName
==
null
||
leafName
.
trim
()
===
''
)
{
tree
.
reload
(
"root"
);
return
}
eiInfo
.
set
(
"leafName"
,
leafName
);
EiCommunicator
.
send
(
"XSOG0800"
,
"searchNodePath"
,
eiInfo
,
{
onSuccess
:
function
(
ei
)
{
if
(
-
1
==
ei
.
getStatus
())
{
IPLAT
.
alert
(
ei
.
getMsg
());
}
else
{
// 获取所有满足条件的子节点路径
const
allPath
=
ei
.
get
(
"allPath"
)
if
(
allPath
.
length
>
0
)
{
tree
.
reload
(
"root"
);
// 根据路径一层层展开树节点
// 先剔除重复的节点
let
expandNodes
=
[]
for
(
let
path
of
allPath
)
{
for
(
let
index
=
0
;
index
<
path
.
length
-
1
;
index
++
)
{
if
(
-
1
===
expandNodes
.
indexOf
(
path
[
index
]))
{
expandNodes
.
push
(
path
[
index
]);
}
}
}
expandTreeNodeList
(
tree
,
expandNodes
);
}
}
},
onFail
:
function
(
ei
)
{
IPLAT
.
alert
(
ei
.
getMsg
());
}
});
})
/**
* 组织机构树节点新增(新增组织机构)
*/
$
(
"#add"
).
on
(
"click"
,
()
=>
{
const
parentId
=
$
(
"#inqu_status-0-parentId"
).
val
()
if
(
null
==
parentId
||
""
===
parentId
)
{
IPLAT
.
alert
(
"请在组织机构树选择任意节点后新增组织机构"
)
return
}
// $("#inqu_status2-0-parentOrgId").val(parentId)
// $("#inqu_status2-0-parentOrgEname").val(parentId)
// $("#inqu_status2-0-orgEname").val("")
// $("#inqu_status2-0-orgCname").val("")
// IPLAT.EFSelect.value($("#inqu_status2-0-orgType"), "")
// result2Grid.dataSource.page(1)
// $("#insertOrgWindow").data("kendoWindow").open();
let
params
=
"&inqu_status-0-parentId="
+
parentId
;
JSColorbox
.
open
({
href
:
"XSOG0801A?methodName=initLoad"
+
params
,
title
:
"<div style='text-align: center;'>新增子组织机构</div>"
,
width
:
"70%"
,
height
:
"70%"
,
callbackName
:
addCallback
});
})
/**
* 组织机构树节点删除(删除组织机构)
*/
$
(
"#remove"
).
on
(
"click"
,
()
=>
{
const
orgId
=
$
(
"#inqu_status-0-parentId"
).
val
()
if
(
null
==
orgId
||
""
===
orgId
||
"root"
===
orgId
)
{
IPLAT
.
alert
(
"请在文档库树选择任意节点后删除文档库"
)
return
}
$
(
"#deleteOrgWindow"
).
data
(
"kendoWindow"
).
center
()
$
(
"#deleteOrgWindow"
).
data
(
"kendoWindow"
).
open
();
})
$
(
"#deleteOrg"
).
on
(
"click"
,
()
=>
{
const
orgEname
=
$
(
"#inqu_status-0-parentOrgEname"
).
val
()
let
eiInfo
=
new
EiInfo
();
eiInfo
.
set
(
"result-0-orgEname"
,
orgEname
)
EiCommunicator
.
send
(
"XSOG0801"
,
"deleteOrgByEname"
,
eiInfo
,
{
onSuccess
:
function
(
ei
)
{
if
(
-
1
==
ei
.
getStatus
())
{
IPLAT
.
alert
(
ei
.
getMsg
());
}
else
{
IPLAT
.
NotificationUtil
(
ei
.
getMsg
(),
"success"
)
$
(
"#deleteOrgWindow"
).
data
(
"kendoWindow"
).
close
();
const
tree
=
$
(
'#categoryTree'
).
data
(
'kendoTreeView'
);
const
parentId
=
$
(
"#inqu_status3-0-orgParentId"
).
val
();
// 刷新树节点
tree
.
reload
(
parentId
);
// 展开树
expandTreeNode
(
tree
,
parentId
);
}
},
onFail
:
function
(
ei
)
{
IPLAT
.
alert
(
ei
.
getMsg
());
}
});
})
$
(
"#deleteOrgAndChildren"
).
on
(
"click"
,
()
=>
{
const
orgId
=
$
(
"#inqu_status-0-parentOrgId"
).
val
()
let
eiInfo
=
new
EiInfo
();
eiInfo
.
set
(
"result-0-orgId"
,
orgId
)
EiCommunicator
.
send
(
"XSOG0801"
,
"deleteOrgAndChildrenById"
,
eiInfo
,
{
onSuccess
:
function
(
ei
)
{
if
(
-
1
==
ei
.
getStatus
())
{
IPLAT
.
alert
(
ei
.
getMsg
());
}
else
{
IPLAT
.
NotificationUtil
(
ei
.
getMsg
(),
"success"
)
$
(
"#deleteOrgWindow"
).
data
(
"kendoWindow"
).
close
();
const
tree
=
$
(
'#categoryTree'
).
data
(
'kendoTreeView'
);
const
parentId
=
$
(
"#inqu_status3-0-orgParentId"
).
val
();
// 刷新树节点
tree
.
reload
(
parentId
);
// 展开树
expandTreeNode
(
tree
,
parentId
);
}
},
onFail
:
function
(
ei
)
{
IPLAT
.
alert
(
ei
.
getMsg
());
}
});
})
$
(
"#edit"
).
on
(
"click"
,
()
=>
{
const
orgId
=
$
(
"#inqu_status-0-parentOrgId"
).
val
()
if
(
null
==
orgId
||
""
===
orgId
||
"root"
===
orgId
)
{
IPLAT
.
alert
(
"请在组织机构树选择任意节点后编辑组织机构"
)
return
}
// $("#inqu_status3-0-orgId").val(orgId)
// result3Grid.dataSource.page(1)
// $("#editOrgWindow").data("kendoWindow").open();
let
params
=
"&inqu_status-0-orgId="
+
orgId
;
JSColorbox
.
open
({
href
:
"XSOG0801B?methodName=initLoad"
+
params
,
title
:
"<div style='text-align: center;'>编辑组织机构</div>"
,
width
:
"70%"
,
height
:
"70%"
,
callbackName
:
editCallback
});
})
$
(
"#categoryTree"
).
mousedown
(
function
(
e
)
{
if
(
e
.
button
!==
2
)
{
return
}
if
(
"组织机构"
===
e
.
target
.
textContent
)
{
$
(
"#isDel"
).
css
(
'display'
,
'none'
);
$
(
"#isEdit"
).
css
(
'display'
,
'none'
);
}
else
{
$
(
"#isDel"
).
css
(
'display'
,
'block'
);
$
(
"#isEdit"
).
css
(
'display'
,
'block'
);
}
}
);
$
(
"#menumenu"
).
kendoContextMenu
({
target
:
"#"
+
options
.
treeId
,
select
:
function
(
e
)
{
const
button
=
$
(
e
.
item
);
const
tree
=
$
(
"#categoryTree"
).
data
(
"kendoTreeView"
);
var
uidNode
=
tree
.
findByUid
(
$
(
"#categoryTree_tv_active"
).
attr
(
"data-uid"
));
var
data
=
tree
.
dataItem
(
uidNode
[
0
]);
const
orgId
=
data
.
label
;
const
parentOrgId
=
data
.
parentOrgId
;
// 选中对应的树
selectTreeNode
(
tree
,
orgId
);
// 设置当前选中的节点信息
$
(
"[name = 'inqu_status-0-parentId']"
).
val
(
orgId
);
$
(
"[name = 'inqu_status-0-parentOrgType']"
).
val
(
data
.
type
);
$
(
"[name = 'inqu_status-0-parentOrgEname']"
).
val
(
data
.
ename
);
$
(
"[name = 'inqu_status-0-orgCname']"
).
val
(
data
.
text
);
resultGrid
.
dataSource
.
page
(
1
);
// 编辑、删除树节点时,需要刷新的树节点
$
(
"[name = 'inqu_status3-0-orgParentId']"
).
val
(
parentOrgId
);
if
(
button
.
data
(
"type"
)
===
"create"
)
{
$
(
"#add"
).
click
()
}
if
(
button
.
data
(
"type"
)
===
"delete"
)
{
$
(
"#remove"
).
click
()
}
if
(
button
.
data
(
"type"
)
===
"edit"
)
{
$
(
"#edit"
).
click
()
}
}
});
setTimeout
(()
=>
{
this
.
expandPath
([
'root'
]);
},
1000
)
},
// expandLevel:1,
/**
* 开启结点拖拽功能,默认dragAndDrop = false不开启,
* 若未开启拖拽,不会触发dragstart和dragend事件
*/
dragAndDrop
:
false
,
}
};
...
...
@@ -118,22 +749,274 @@ $(function () {
}
}
//工厂类型下拉联动
/*$('input[name="inqu_status-0-companyCode"]').change(function () {
var companyCode=$("#inqu_status-0-companyCode").val();
$("#inqu_status-0-groupCode").kendoDropDownList({
dataSource: _.filter(groupCodeBox, function (item) {
return item["param3Field"] === companyCode;
}),
dataTextField: "textField",
dataValueField: "valueField",
required: "true",
optionLabelTemplate: "#:textField#",
valueTemplate: "#:textField#",
template: "#:textField#",
filter: "contains"
IPLATUI
.
EFGrid
=
{
"result"
:
{
pageable
:
{
pageSize
:
20
},
dataBinding
:
function
(
e
)
{
var
treeEname
=
$
(
"#inqu_status-0-parentId"
).
val
();
for
(
let
i
=
0
,
length
=
e
.
items
.
length
;
i
<
length
;
i
++
)
{
const
model
=
e
.
items
[
i
];
if
(
model
.
isNew
())
{
e
.
preventDefault
();
const
orgId
=
$
(
"#inqu_status-0-parentOrgId"
).
val
();
if
(
orgId
===
"root"
||
orgId
===
""
||
orgId
==
null
)
{
IPLAT
.
alert
(
"请选择左侧组织机构组树节点后再进行新增"
);
}
else
{
const
orgCnameValue
=
$
(
"#inqu_status-0-fileName"
).
val
();
// 打开新增用户的弹窗
result1Grid
.
dataSource
.
page
(
1
)
$
(
"#insertUser"
).
data
(
"kendoWindow"
).
open
();
$
(
"#insertUser_wnd_title"
).
css
({
"text-align"
:
"justify"
,
"font-size"
:
"14px"
,
"color"
:
"#FFF"
});
$
(
"#insertUser_wnd_title"
).
html
(
"正在为: ["
+
orgCnameValue
+
"] 添加成员用户"
);
}
model
.
parentId
=
treeEname
;
}
}
},
loadComplete
:
function
(
grid
)
{
/**
* 为组织所属人员增加grid拖动至组织机构树事件
*/
grid
.
table
.
kendoDraggable
({
filter
:
"tbody > tr"
,
group
:
"grid-tree"
,
hint
:
function
(
e
)
{
movedUser
=
resultGrid
.
dataSource
.
getByUid
(
e
.
data
(
"uid"
))
const
text
=
e
.
context
.
innerText
;
const
attrs
=
text
.
split
(
"
\
t"
);
let
td
=
"<td align='center' role='gridcell' id='fa fa-user'>"
+
" <span class='fa fa-user'></span>"
+
"</td>"
for
(
let
attr
of
attrs
)
{
if
(
attr
)
{
let
regex
=
new
RegExp
(
'
\
n'
,
'g'
);
let
formattedAttr
=
attr
.
replace
(
regex
,
''
);
td
=
td
+
`<td align='center' role='gridcell'>`
+
` <div className='i-validate-helper'>
${
formattedAttr
}
</div>`
+
`</td>`
}
}
return
$
(
`<div class="k-grid k-widget" style="pointer-events: none;border: #00bcff 1px solid"><table><tbody><tr>
${
td
}
</tr></tbody></table></div>`
);
}
});
});*/
grid
.
dataSource
.
bind
(
"requestEnd"
,
function
(
e
)
{
if
(
e
.
type
===
"create"
||
e
.
type
===
"update"
||
e
.
type
===
"destroy"
)
{
var
tree
=
$
(
"#categoryTree"
).
data
(
"kendoTreeView"
);
var
ajaxEi
=
EiInfo
.
parseJSONObject
(
e
.
response
);
if
(
ajaxEi
.
getStatus
()
==
-
1
)
{
return
;
}
var
orgId
=
$
(
"#inqu_status-0-parentId"
).
val
();
tree
.
reload
(
orgId
);
}
})
$
(
"#EXPORT"
).
on
(
"click"
,
()
=>
{
$
(
"#exportWindow"
).
data
(
"kendoWindow"
).
center
();
$
(
"#exportWindow"
).
data
(
"kendoWindow"
).
open
();
})
$
(
"#IMPORT"
).
on
(
"click"
,
()
=>
{
$
(
"#importWindow"
).
data
(
"kendoWindow"
).
open
();
})
},
columns
:
[
{
field
:
"operation"
,
title
:
"扩展信息"
,
width
:
120
,
readonly
:
true
,
headerTemplate
:
"<span style='display:block;text-align:center;'>详细信息</span>"
,
template
:
"<span style='display:block;text-align: center;'>"
+
// "<input class='i-btn-sm fa fa fa-eye' type='button' value='详细信息' onclick='user_ex_btn_func($(this))'>" +
"<button class='i-btn-sm fa fa fa-eye' value='详细信息' onclick='user_ex_btn_func($(this))'>"
+
"</button>"
+
"</span>"
}
],
},
"result1"
:
{
exportGrid
:
false
,
loadComplete
:
(
grid
)
=>
{
$
(
".k-grid-REGISTER"
).
on
(
"click"
,
function
(
e
)
{
$
(
"#REGISTERUSER"
).
data
(
"kendoWindow"
).
open
();
$
(
"#inqu_status-0-loginName"
).
val
(
""
);
$
(
"#inqu_status-0-userName"
).
val
(
""
);
$
(
"#REGISTERUSER_wnd_title"
).
css
({
"text-align"
:
"justify"
,
"font-size"
:
"14px"
,
"color"
:
"#FFF"
});
$
(
"#REGISTERUSER_wnd_title"
).
html
(
"正在注册新用户"
);
});
/**
* 添加用户按钮
*/
$
(
"#ADD_1"
).
on
(
"click"
,
()
=>
{
const
users
=
result1Grid
.
getCheckedRows
()
if
(
users
.
length
===
0
)
{
IPLAT
.
alert
(
"请选择要添加的用户"
)
return
}
const
orgId
=
$
(
"#inqu_status-0-parentOrgId"
).
val
()
var
inInfo
=
new
EiInfo
();
var
block
=
new
EiBlock
(
"result"
);
block
.
getBlockMeta
().
addMeta
(
new
EiColumn
(
"orgId"
));
block
.
getBlockMeta
().
addMeta
(
new
EiColumn
(
"userId"
));
block
.
getBlockMeta
().
addMeta
(
new
EiColumn
(
"loginName"
));
for
(
let
i
=
0
;
i
<
users
.
length
;
i
++
)
{
block
.
setCell
(
i
,
"orgId"
,
orgId
);
block
.
setCell
(
i
,
"userId"
,
users
[
i
].
id
);
block
.
setCell
(
i
,
"loginName"
,
users
[
i
].
loginName
);
}
inInfo
.
addBlock
(
block
)
EiCommunicator
.
send
(
"XSOG0801"
,
"insertUserByOrgId"
,
inInfo
,
{
onSuccess
:
function
(
ei
)
{
if
(
1
!==
ei
.
getStatus
())
{
IPLAT
.
alert
(
ei
.
getMsg
())
}
if
(
-
1
!==
ei
.
getStatus
())
{
resultGrid
.
dataSource
.
page
(
1
)
$
(
"#insertUser"
).
data
(
"kendoWindow"
).
close
();
}
},
onFail
:
function
(
ei
)
{
$
(
"#inqu_status-0-loginName-prompt"
).
html
(
"【该登录账号无法被添加】"
);
}
})
})
}
},
"result2"
:
{
columns
:
[{
field
:
"establishDate"
,
attributes
:
{
class
:
"i-input-readonly"
}
}],
onSuccess
:
(
e
)
=>
{
if
(
e
.
type
===
"create"
)
{
refreshTree
();
}
},
},
"result3"
:
{
columns
:
[{
field
:
"establishDate"
,
attributes
:
{
class
:
"i-input-readonly"
}
}],
onSuccess
:
(
e
)
=>
{
if
(
e
.
type
===
"update"
)
{
setTimeout
(()
=>
{
// 刷新树节点
const
tree
=
$
(
"#categoryTree"
).
data
(
"kendoTreeView"
);
const
orgParentId
=
$
(
"#inqu_status3-0-orgParentId"
).
val
()
const
treeOrgId
=
$
(
"#inqu_status3-0-orgId"
).
val
()
tree
.
reload
(
orgParentId
)
// 选中树节点
selectTreeNode
(
tree
,
treeOrgId
);
},
500
)
}
},
},
"result4"
:
{
loadComplete
:
function
(
grid
)
{
$
(
"#ADD_4"
).
on
(
"click"
,
()
=>
{
$
(
"#inqu_status-6-codesetCode"
).
val
(
'iplat.org.userBasicTemplate'
);
$
(
"#userBasicWindow"
).
data
(
"kendoWindow"
).
center
();
$
(
"#userBasicWindow"
).
data
(
"kendoWindow"
).
open
();
result6Grid
.
dataSource
.
page
(
1
);
})
},
onDelete
:
function
(
e
)
{
const
rows
=
result4Grid
.
getCheckedRows
();
for
(
let
i
=
0
;
i
<
rows
.
length
;
i
++
)
{
if
(
result4Grid
.
getCheckedRows
()[
i
]?.
itemCode
===
'loginName'
)
{
IPLAT
.
alert
(
"【loginName】不可删除"
);
e
.
preventDefault
();
break
;
}
}
},
onSave
:
function
(
e
)
{
const
rows
=
result4Grid
.
getCheckedRows
();
for
(
let
i
=
0
;
i
<
rows
.
length
;
i
++
)
{
if
(
result4Grid
.
getCheckedRows
()[
i
]?.
itemCode
===
'loginName'
)
{
if
(
result4Grid
.
getCheckedRows
()[
i
]?.
itemStatus
===
'0'
)
{
IPLAT
.
alert
(
"【loginName】不可停止启用"
);
e
.
preventDefault
();
break
;
}
if
(
result4Grid
.
getCheckedRows
()[
i
]?.
sortId
!==
'0'
)
{
IPLAT
.
alert
(
"【loginName】排序不可更改"
);
e
.
preventDefault
();
break
;
}
}
}
},
onSuccess
:
function
(
e
)
{
showPreview
();
},
},
"result5"
:
{
loadComplete
:
function
()
{
$
(
"#ADD_5"
).
on
(
"click"
,
()
=>
{
$
(
"#inqu_status-6-codesetCode"
).
val
(
'iplat.org.userCustomTemplate'
);
$
(
"#userBasicWindow"
).
data
(
"kendoWindow"
).
center
();
$
(
"#userBasicWindow"
).
data
(
"kendoWindow"
).
open
();
result6Grid
.
dataSource
.
page
(
1
);
})
},
onSuccess
:
function
(
e
)
{
if
(
e
.
type
===
'create'
)
{
// 防止按钮新增后的数据被删除时,codeset为空,删除失败,因此手动进行一次刷新
result5Grid
.
dataSource
.
page
(
1
);
}
showPreview
();
}
},
"result6"
:
{
loadComplete
:
function
(
grid
)
{
$
(
"#ADD_6"
).
on
(
"click"
,
()
=>
{
const
rows
=
grid
.
getCheckedRows
();
if
(
rows
.
length
===
0
)
{
IPLAT
.
alert
(
"请选择需要新增的属性"
);
}
let
eiInfo
=
new
EiInfo
();
eiInfo
.
set
(
"rows"
,
rows
);
const
currentTab
=
$
(
"#exportSetting"
).
data
(
"kendoTabStrip"
).
select
().
text
();
const
codesetCode
=
currentTab
===
'基础信息模板'
?
'iplat.org.userBasicTemplate'
:
'iplat.org.userCustomTemplate'
;
eiInfo
.
set
(
'codesetCode'
,
codesetCode
);
EiCommunicator
.
send
(
"XSOG0801"
,
"insertUserTableHeaderImpl"
,
eiInfo
,
{
onSuccess
:
function
(
response
)
{
if
(
response
.
status
>
-
1
)
{
result4Grid
.
dataSource
.
page
(
1
);
result5Grid
.
dataSource
.
page
(
1
);
$
(
"#userBasicWindow"
).
data
(
"kendoWindow"
).
close
();
NotificationUtil
(
response
.
getMsg
());
}
else
{
IPLAT
.
alert
(
response
.
getMsg
());
}
},
onFail
:
function
(
errorMsg
,
status
,
e
)
{
/* errorMsg 是平台格式化后的异常消息, status, e的含义和$.ajax的含义相同,请参考jQuery文档 */
console
.
log
(
errorMsg
);
}
});
})
}
}
};
downKeyUp
();
});
...
...
@@ -150,6 +1033,293 @@ let query = function () {
}
/**
* 新增组织机构回调
*/
let
addCallback
=
function
(
parentOrgId
)
{
// 回填父级ID
$
(
"#inqu_status2-0-parentId"
).
val
(
parentOrgId
);
refreshTree
();
}
/**
* 编辑组织机构回调
*/
let
editCallback
=
function
(
parentOrgId
)
{
// 回填父级ID
$
(
"#inqu_status2-0-parentId"
).
val
(
parentOrgId
);
refreshTree
();
}
/**
* 刷新树
*/
let
refreshTree
=
function
()
{
setTimeout
(()
=>
{
const
selectTreeNode
=
(
tree
,
treeOrgId
)
=>
{
if
(
!
tree
||
treeOrgId
==
null
)
{
return
}
setTimeout
(()
=>
{
let
barDataItem
=
tree
.
dataSource
.
get
(
treeOrgId
);
if
(
barDataItem
)
{
let
barElement
=
tree
.
findByUid
(
barDataItem
.
uid
);
// 刷新完成后选中对应的树节点
tree
.
select
(
barElement
);
}
else
{
selectTreeNode
(
tree
,
treeOrgId
)
}
},
100
)
}
// 刷新树节点
const
tree
=
$
(
"#categoryTree"
).
data
(
"kendoTreeView"
);
const
treeOrgId
=
$
(
"#inqu_status2-0-parentId"
).
val
()
tree
.
reload
(
treeOrgId
)
expandTreeNode
(
tree
,
treeOrgId
)
// tree.expandPath(treeOrgId)
// 展开成功后选中对应的树节点
selectTreeNode
(
tree
,
treeOrgId
);
},
500
);
}
let
movedUser
;
let
splitter
;
/**
* 扩展信息查看
* @param e
*/
const
user_ex_btn_func
=
(
e
)
=>
{
const
model
=
resultGrid
.
dataItem
(
e
.
closest
(
"tr"
));
const
userId
=
model
.
id
;
splitter
.
collapse
(
".k-pane:first"
)
splitter
.
expand
(
".k-pane:first"
)
const
getNum
=
(
str
)
=>
{
return
parseFloat
(
str
.
slice
(
0
,
str
.
lastIndexOf
(
'px'
)));
}
let
leftPaneWidth
=
getNum
(
$
(
"#left-pane"
).
css
(
'width'
))
const
splitterWidth
=
8
;
let
splitterLeft
=
getNum
(
$
(
".k-splitbar"
).
css
(
'left'
))
let
rightPaneWidth
=
getNum
(
$
(
"#right-pane"
).
css
(
'width'
))
let
rightPaneLeft
=
getNum
(
$
(
"#right-pane"
).
css
(
'left'
))
const
totalWidth
=
leftPaneWidth
+
splitterWidth
+
rightPaneWidth
;
const
offset
=
totalWidth
*
0.45
-
leftPaneWidth
;
leftPaneWidth
+=
offset
;
splitterLeft
+=
offset
;
rightPaneWidth
-=
offset
;
rightPaneLeft
+=
offset
;
$
(
"#left-pane"
).
css
(
'width'
,
leftPaneWidth
)
$
(
".k-splitbar"
).
css
(
'left'
,
splitterLeft
)
$
(
"#right-pane"
).
css
(
'width'
,
rightPaneWidth
)
$
(
"#right-pane"
).
css
(
'left'
,
rightPaneLeft
)
resultGrid
.
resize
();
showUC
(
userId
)
}
/**
* 显示抽屉组件
* @param uuid
*/
function
showUC
(
uuid
)
{
var
url
=
IPLATUI
.
CONTEXT_PATH
+
"/web/XS4100"
;
window
.
openDrawer
(
url
,
uuid
);
}
/**
* 展开对应的树节点
* @param tree
* @param treeOrgId
*/
const
expandTreeNode
=
(
tree
,
treeOrgId
)
=>
{
if
(
!
tree
||
treeOrgId
==
null
)
{
return
}
setTimeout
(()
=>
{
let
barDataItem
=
tree
.
dataSource
.
get
(
treeOrgId
);
if
(
barDataItem
)
{
tree
.
expandPath
([
treeOrgId
])
}
else
{
expandTreeNode
(
tree
,
treeOrgId
)
}
},
100
)
}
/**
* 批量展开树节点
* @param tree
* @param nodeIdList
*/
function
expandTreeNodeList
(
tree
,
nodeIdList
)
{
if
(
nodeIdList
.
length
===
0
||
tree
==
null
)
{
// 所有节点都已展开完毕,结束递归
return
;
}
const
orgId
=
nodeIdList
[
0
];
let
barDataItem
=
tree
.
dataSource
.
get
(
orgId
);
if
(
barDataItem
)
{
tree
.
expandPath
(
nodeIdList
)
}
else
{
setTimeout
(()
=>
{
expandTreeNodeList
(
tree
,
nodeIdList
)
},
100
)
}
}
/**
* 选中对应的树节点
* @param tree
* @param treeOrgId
*/
const
selectTreeNode
=
(
tree
,
treeOrgId
)
=>
{
if
(
!
tree
||
treeOrgId
==
null
)
{
return
}
setTimeout
(()
=>
{
let
barDataItem
=
tree
.
dataSource
.
get
(
treeOrgId
);
if
(
barDataItem
)
{
let
barElement
=
tree
.
findByUid
(
barDataItem
.
uid
);
// 刷新完成后选中对应的树节点
tree
.
select
(
barElement
);
}
else
{
selectTreeNode
(
tree
,
treeOrgId
)
}
},
100
)
}
/**
* 非对称加密
* @param str
* @returns {string}
* @constructor
*/
function
RSAEncrypt
(
str
)
{
// Encrypt with the public key...
var
encrypt
=
new
JSEncrypt
();
encrypt
.
setPublicKey
(
$
(
'#__LOGIN_PUBLICKEY__'
).
val
());
return
encrypt
.
encrypt
(
str
);
}
/**
* 展示XS4100中的图片
* @param url
*/
function
showXS4100Image
(
url
)
{
$
(
"#showXS4100Image"
).
attr
(
"src"
,
url
);
$
(
"#showXS4100ImageWindow"
).
data
(
"kendoWindow"
).
center
()
$
(
"#showXS4100ImageWindow"
).
data
(
"kendoWindow"
).
open
()
return
true
;
}
/**
* 生成表头预览
*/
let
tableHeader
=
[];
function
showPreview
()
{
// 查询表头
let
eiInfo
=
new
EiInfo
();
EiCommunicator
.
send
(
"XSOG0801"
,
"queryUserTableHeader"
,
eiInfo
,
{
onSuccess
:
function
(
response
)
{
if
(
response
.
status
>
-
1
)
{
// draw(response.get("cnameList"));
draw
(
response
);
}
else
{
IPLAT
.
alert
(
response
.
getMsg
());
}
},
onFail
:
function
(
errorMsg
,
status
,
e
)
{
/* errorMsg 是平台格式化后的异常消息, status, e的含义和$.ajax的含义相同,请参考jQuery文档 */
console
.
log
(
errorMsg
);
}
});
function
draw
(
response
)
{
const
currentTableHeader
=
response
.
get
(
"cnameList"
);
const
basicCount
=
response
.
get
(
"basicCount"
);
const
orgLevel
=
response
.
get
(
"orgLevel"
);
if
(
JSON
.
stringify
(
tableHeader
)
===
JSON
.
stringify
(
currentTableHeader
))
{
return
;
}
tableHeader
=
currentTableHeader
;
let
div
=
document
.
getElementById
(
"excelTable"
);
div
.
innerHTML
=
""
;
// 创建 table 元素并添加到 div 中
let
table
=
document
.
createElement
(
"table"
);
table
.
style
.
border
=
"1px solid black"
;
// 设置表格边框样式
div
.
appendChild
(
table
);
// 创建表头行
let
theadRow1
=
document
.
createElement
(
"tr"
);
table
.
appendChild
(
theadRow1
);
for
(
let
i
=
0
;
i
<
currentTableHeader
.
length
;
i
++
)
{
let
th
=
document
.
createElement
(
"th"
);
if
(
i
<
basicCount
)
{
th
.
textContent
=
'基础信息'
;
th
.
style
.
backgroundColor
=
"#99CCFF"
;
// 设置表头单元格边框样式
}
else
if
(
i
<
basicCount
+
2
*
orgLevel
)
{
th
.
textContent
=
'组织机构'
;
th
.
style
.
backgroundColor
=
"#CCFFCC"
;
// 设置表头单元格边框样式
}
else
{
th
.
textContent
=
'扩展信息'
;
th
.
style
.
backgroundColor
=
"#FFFF99"
;
// 设置表头单元格边框样式
}
th
.
style
.
border
=
"1px solid black"
;
// 设置表头单元格边框样式
th
.
style
.
padding
=
"4px"
;
theadRow1
.
appendChild
(
th
);
}
// 创建表头行
let
theadRow
=
document
.
createElement
(
"tr"
);
table
.
appendChild
(
theadRow
);
for
(
let
i
=
0
;
i
<
currentTableHeader
.
length
;
i
++
)
{
let
th
=
document
.
createElement
(
"th"
);
th
.
textContent
=
`
${
currentTableHeader
[
i
]}
`
;
th
.
style
.
border
=
"1px solid black"
;
// 设置表头单元格边框样式
th
.
style
.
padding
=
"4px"
;
theadRow
.
appendChild
(
th
);
}
// 创建数据行
let
rowData
=
[[],
[],
[]];
for
(
let
i
=
0
;
i
<
currentTableHeader
.
length
;
i
++
)
{
rowData
[
0
].
push
(
`数据1-
${
i
+
1
}
`
);
rowData
[
1
].
push
(
`数据2-
${
i
+
1
}
`
);
rowData
[
2
].
push
(
`数据3-
${
i
+
1
}
`
);
}
for
(
let
i
=
0
;
i
<
rowData
.
length
;
i
++
)
{
let
tr
=
document
.
createElement
(
"tr"
);
// 创建行
table
.
appendChild
(
tr
);
for
(
let
j
=
0
;
j
<
rowData
[
i
].
length
;
j
++
)
{
let
td
=
document
.
createElement
(
"td"
);
// 创建单元格
td
.
textContent
=
rowData
[
i
][
j
];
// 设置单元格内容
td
.
style
.
border
=
"1px solid black"
;
// 设置单元格边框样式
td
.
style
.
padding
=
"4px"
;
tr
.
appendChild
(
td
);
}
}
}
}
/**
* 保存
*/
let
save
=
function
(
btnNode
)
{
...
...
src/main/webapp/HG/WD/HGWD001.jsp
View file @
fc93070f
...
...
@@ -11,24 +11,98 @@
<script
type=
"text/javascript"
src=
"${ctx}/common/js/dayjs.min.js"
></script>
<EF:EFPage
title=
"文档库"
>
<EF:EFInput
ename=
"__LOGIN_PUBLICKEY__"
value=
"${login_PublicKey}"
type=
"hidden"
/>
<EF:EFInput
ename=
"cryptoPasswordEnable"
value=
"${crypto_PasswordEnable}"
type=
"hidden"
/>
<div
id=
"splitter"
class=
"i-fit-height"
>
<div
id=
"left-pane"
class=
"i-fit-height"
>
<EF:EFRegion
title=
"文档库树"
id=
"tree"
fitHeight=
"true"
>
<div
class=
"row"
style=
"display: block"
>
<div
class=
"col-md-12"
style=
"display:flex;align-items: center"
>
<EF:EFInput
ename=
"searchText"
colWidth=
"8"
inline=
"true"
/>
<EF:EFButton
ename=
"search"
class=
"fa fa-search"
layout=
"2"
/>
<div
style=
"display: none"
>
<EF:EFButton
ename=
"add"
class=
"fa fa-plus"
layout=
"2"
/>
<EF:EFButton
ename=
"remove"
class=
"fa fa-trash-o"
layout=
"2"
/>
<EF:EFButton
ename=
"edit"
class=
"fa fa-pencil"
layout=
"2"
/>
</div>
</div>
</div>
<div
id=
"menu"
style=
"margin-top: 12px; margin-bottom: 8px"
>
<EF:EFTree
bindId=
"categoryTree"
ename=
"tree_name"
textField=
"text"
valueField=
"label"
hasChildren=
"leaf"
pid=
"parent_id"
serviceName=
"HGWD001D"
methodName=
"query"
>
</EF:EFTree>
</div>
<ul
id=
"menumenu"
style=
"width:90px;display: none"
>
<li
data-type=
"create"
>
<span
style=
"font-size: 16px; width: 16px; vertical-align: middle;"
class=
"fa fa-plus"
></span>
新增
</li>
<li
data-type=
"delete"
id=
"isDel"
>
<span
style=
"font-size: 16px; width: 16px; vertical-align: middle;"
class=
"fa fa-minus-circle"
></span>
删除
</li>
<li
data-type=
"edit"
id=
"isEdit"
>
<span
style=
"font-size: 16px; width: 16px; vertical-align: middle;"
class=
"fa fa-pencil"
></span>
编辑
</li>
</ul>
</EF:EFRegion>
</div>
<div
id=
"right-pane"
class=
"i-fit-height"
>
<EF:EFRegion
id=
"inqu"
title=
"查询条件"
>
<div
class=
"row"
>
<EF:EFInput
cname=
"文档库id"
ename=
"parentId"
blockId=
"inqu_status"
row=
"0"
type=
"hidden"
/>
<EF:EFInput
cname=
"文档库名称"
ename=
"fileName"
blockId=
"inqu_status"
row=
"0"
type=
"hidden"
/>
<EF:EFInput
cname=
"业务类型"
ename=
"bizType"
blockId=
"inqu_status"
row=
"0"
type=
"hidden"
value=
"WD"
/>
<div
class=
"row"
>
<EF:EFInput
cname=
"文件名称"
ename=
"docName"
blockId=
"inqu_status"
row=
"0"
colWidth=
"3"
/>
</div>
</div>
</EF:EFRegion>
<EF:EFRegion
id=
"resultRegion"
title=
"附件详情"
fitHeight=
"true"
>
<EF:EFGrid
blockId=
"result"
autoDraw=
"no"
personal=
"true"
serviceName=
"HGWD099"
queryMethod=
"query"
>
<EF:EFColumn
ename=
"id"
cname=
"ID"
hidden=
"true"
/>
<EF:EFColumn
ename=
"docId"
cname=
"文件ID"
enable=
"false"
width=
"150"
/>
<EF:EFColumn
ename=
"docName"
cname=
"文件名称"
enable=
"false"
width=
"150"
/>
<EF:EFColumn
ename=
"createdTime"
cname=
"创建时间"
enable=
"false"
width=
"140"
align=
"center"
parseFormats=
"['yyyyMMddHHmmss']"
editType=
"datetime"
dateFormat=
"yyyy-MM-dd HH:mm:ss"
/>
<EF:EFColumn
ename=
"operator"
cname=
"操作"
enable=
"false"
width=
"200"
align=
"center"
/>
</EF:EFGrid>
</EF:EFRegion>
</div>
</div>
<div
class=
"drawer-wrapper"
>
<div
class=
"drawer-body"
>
<div
class=
"close-btn"
><span
class=
"iconfont Icon-Close icRocon-Icon-Close"
></span></div>
<div
class=
"drawer-content ruleEditContent-${theme}"
>
<iframe
id=
"iframeDrawer"
src=
"${ctx}/web/XS4100"
frameborder=
"0"
></iframe>
</div>
</div>
</div>
<
%
--
<
EF:EFRegion
id=
"inqu"
title=
"查询条件"
>
<div
class=
"row"
>
<EF:EFSelect
blockId=
"inqu_status"
row=
"0"
ename=
"companyCode"
cname=
"公司名称"
colWidth=
"3"
filter=
"contains"
>
<EF:EFOption
label=
"全部"
value=
""
/>
<EF:EFOptions
blockId=
"companyBox_block_id"
textField=
"textField"
valueField=
"valueField"
/>
</EF:EFSelect>
<EF:EFInput
blockId=
"inqu_status"
row=
"0"
ename=
"projName"
cname=
"项目名称"
placeholder=
"模糊查询"
colWidth=
"3"
/>
<
%
--
<
EF:EFAutoComplete
blockId=
"inqu_status"
row=
"0"
ename=
"projName"
cname=
"项目名称"
serviceName=
"HGSC002"
queryMethod=
"queryComboBox"
resultId=
"result"
dataField=
"projName"
/>
--%>
<
%
–
<EF:EFAutoComplete
blockId=
"inqu_status"
row=
"0"
ename=
"projName"
cname=
"项目名称"
serviceName=
"HGSC002"
queryMethod=
"queryComboBox"
resultId=
"result"
dataField=
"projName"
/>
–
%
>
<EF:EFSelect
blockId=
"inqu_status"
row=
"0"
ename=
"fileType"
cname=
"文件类型"
colWidth=
"3"
filter=
"contains"
>
<EF:EFOption
label=
"全部"
value=
""
/>
<EF:EFCodeOption
codeName=
"hggp.hgwd.fileType"
/>
</EF:EFSelect>
<EF:EFInput
blockId=
"inqu_status"
row=
"0"
ename=
"fileName"
cname=
"文件名称"
placeholder=
"模糊查询"
colWidth=
"3"
/>
</div>
</EF:EFRegion>
</EF:EFRegion>
--%>
<EF:EFRegion
id=
"result"
title=
"明细信息"
>
<
%
--
<
EF:EFRegion
id=
"result"
title=
"明细信息"
>
<EF:EFGrid
blockId=
"result"
autoDraw=
"override"
isFloat=
"true"
checkMode=
"row"
>
<EF:EFColumn
ename=
"id"
primaryKey=
"true"
cname=
"内码"
hidden=
"true"
/>
<EF:EFColumn
ename=
"operator"
cname=
"操作"
locked=
"true"
enable=
"false"
width=
"160"
align=
"center"
/>
...
...
@@ -65,6 +139,420 @@
dateFormat=
"yyyy-MM-dd HH:mm:ss"
align=
"center"
width=
"120"
readonly=
"true"
required=
"false"
enable=
"false"
/>
</EF:EFGrid>
</EF:EFRegion>
</EF:EFRegion>
--%>
</EF:EFPage>
<EF:EFWindow
id=
"insertUser"
width=
"58%"
height=
"70%"
top=
"100px"
left=
"280px"
>
<EF:EFRegion
id=
"inqu1"
title=
"查询条件"
>
<div
class=
"row"
>
<EF:EFInput
ename=
"inqu_status1-0-loginName"
cname=
"用户账号"
/>
<EF:EFInput
ename=
"inqu_status1-0-userName"
cname=
"用户姓名"
/>
</div>
</EF:EFRegion>
<EF:EFRegion
id=
"result1"
title=
"记录集"
>
<EF:EFGrid
blockId=
"result1"
queryMethod=
"queryUserOutOfOrgId"
autoBind=
"false"
autoDraw=
"false"
checkMode=
"multiple, row"
>
<EF:EFColumn
ename=
"userId"
locked=
"true"
cname=
"用户ID"
hidden=
"true"
primaryKey=
"true"
/>
<EF:EFColumn
ename=
"loginName"
cname=
"登录账号"
readonly=
"true"
/>
<EF:EFColumn
ename=
"userName"
cname=
"用户姓名"
readonly=
"true"
/>
</EF:EFGrid>
</EF:EFRegion>
</EF:EFWindow>
<EF:EFWindow
id=
"insertOrgWindow"
width=
"58%"
height=
"70%"
top=
"100px"
left=
"280px"
>
<EF:EFRegion
id=
"inqu2"
title=
"查询条件"
>
<div
class=
"row"
>
<EF:EFInput
ename=
"inqu_status2-0-parentId"
cname=
"上级Id"
type=
"hidden"
/>
<EF:EFInput
ename=
"inqu_status2-0-fileId"
cname=
"文件ID"
type=
"hidden"
/>
<EF:EFSelect
blockId=
"inqu_status"
row=
"0"
ename=
"companyCode"
cname=
"公司名称"
colWidth=
"3"
filter=
"contains"
>
<EF:EFOption
label=
"全部"
value=
""
/>
<EF:EFOptions
blockId=
"companyBox_block_id"
textField=
"textField"
valueField=
"valueField"
/>
</EF:EFSelect>
<EF:EFInput
blockId=
"inqu_status"
row=
"0"
ename=
"projName"
cname=
"项目名称"
placeholder=
"模糊查询"
colWidth=
"3"
/>
<EF:EFSelect
blockId=
"inqu_status"
row=
"0"
ename=
"fileType"
cname=
"文件类型"
colWidth=
"3"
filter=
"contains"
>
<EF:EFOption
label=
"全部"
value=
""
/>
<EF:EFCodeOption
codeName=
"hggp.hgwd.fileType"
/>
</EF:EFSelect>
<EF:EFInput
blockId=
"inqu_status"
row=
"0"
ename=
"fileName"
cname=
"文件名称"
placeholder=
"模糊查询"
colWidth=
"3"
/>
</div>
</EF:EFRegion>
<EF:EFRegion
id=
"result2Region"
title=
"子组织机构"
>
<EF:EFGrid
blockId=
"result2"
autoBind=
"false"
autoDraw=
"false"
checkMode=
"multiple, row"
readonly=
"true"
queryMethod=
"query"
insertMethod=
"save"
>
<EF:EFColumn
ename=
"id"
primaryKey=
"true"
cname=
"内码"
hidden=
"true"
/>
<EF:EFColumn
ename=
"operator"
cname=
"操作"
locked=
"true"
enable=
"false"
width=
"160"
align=
"center"
/>
<EF:EFComboColumn
ename=
"status"
cname=
"状态"
enable=
"false"
width=
"80"
align=
"center"
defaultValue=
"0"
>
<EF:EFCodeOption
codeName=
"hggp.hgwd.status"
/>
</EF:EFComboColumn>
<EF:EFComboColumn
ename=
"companyCode"
cname=
"公司名称"
columnTemplate=
"#=textField#"
itemTemplate=
"#=textField#"
textField=
"textField"
valueField=
"valueField"
maxLength=
"16"
readonly=
"true"
width=
"160"
required=
"true"
align=
"center"
filter=
"contains"
sort=
"true"
>
<EF:EFOptions
blockId=
"companyBox_block_id"
textField=
"textField"
valueField=
"valueField"
/>
</EF:EFComboColumn>
<EF:EFColumn
ename=
"companyName"
cname=
"所属项目"
width=
"160"
enable=
"true"
readonly=
"true"
align=
"center"
required=
"true"
hidden=
"true"
/>
<EF:EFComboColumn
ename=
"projCode"
cname=
"所属项目"
blockName=
"proj_record_block_id"
columnTemplate=
"#=textField#"
itemTemplate=
"#=textField#"
textField=
"textField"
valueField=
"valueField"
maxLength=
"16"
readonly=
"true"
width=
"200"
required=
"true"
align=
"center"
filter=
"contains"
sort=
"true"
/>
<EF:EFColumn
ename=
"projName"
cname=
"所属项目"
width=
"160"
enable=
"true"
readonly=
"true"
align=
"center"
required=
"true"
hidden=
"true"
/>
<EF:EFComboColumn
ename=
"fileType"
cname=
"文件类型"
width=
"100"
align=
"center"
readonly=
"false"
required=
"true"
defaultValue=
"20"
>
<EF:EFCodeOption
codeName=
"hggp.hgwd.fileType"
/>
</EF:EFComboColumn>
<EF:EFColumn
ename=
"fileName"
cname=
"文件名称"
width=
"160"
enable=
"true"
readonly=
"false"
align=
"center"
required=
"true"
/>
<EF:EFColumn
ename=
"fileId"
cname=
"文件号"
width=
"100"
enable=
"false"
readonly=
"true"
align=
"center"
required=
"false"
/>
<EF:EFColumn
ename=
"createdName"
cname=
"创建人"
align=
"center"
width=
"100"
readonly=
"true"
required=
"false"
enable=
"false"
/>
<EF:EFColumn
ename=
"createdTime"
cname=
"创建时间"
parseFormats=
"['yyyyMMddHHmmss']"
editType=
"datetime"
dateFormat=
"yyyy-MM-dd HH:mm:ss"
align=
"center"
width=
"120"
readonly=
"true"
required=
"false"
enable=
"false"
/>
</EF:EFGrid>
</EF:EFRegion>
</EF:EFWindow>
<EF:EFWindow
id=
"editOrgWindow"
width=
"58%"
height=
"70%"
top=
"100px"
left=
"280px"
>
<div
style=
"display: none"
>
<EF:EFRegion
id=
"inqu3"
title=
"查询条件"
>
<EF:EFInput
ename=
"inqu_status3-0-fileId"
cname=
"文件Id"
type=
"hidden"
/>
<EF:EFInput
ename=
"inqu_status2-0-parentId"
cname=
"上级Id"
type=
"hidden"
/>
</EF:EFRegion>
</div>
<EF:EFRegion
id=
"result3Region"
title=
"子组织机构"
>
<EF:EFGrid
blockId=
"result3"
autoBind=
"false"
autoDraw=
"false"
checkMode=
"multiple, row"
queryMethod=
"queryOrgById"
updateMethod=
"updateOrgById"
>
<EF:EFColumn
ename=
"id"
primaryKey=
"true"
cname=
"内码"
hidden=
"true"
/>
<EF:EFColumn
ename=
"operator"
cname=
"操作"
locked=
"true"
enable=
"false"
width=
"160"
align=
"center"
/>
<EF:EFComboColumn
ename=
"status"
cname=
"状态"
enable=
"false"
width=
"80"
align=
"center"
defaultValue=
"0"
>
<EF:EFCodeOption
codeName=
"hggp.hgwd.status"
/>
</EF:EFComboColumn>
<EF:EFComboColumn
ename=
"companyCode"
cname=
"公司名称"
columnTemplate=
"#=textField#"
itemTemplate=
"#=textField#"
textField=
"textField"
valueField=
"valueField"
maxLength=
"16"
readonly=
"true"
width=
"160"
required=
"true"
align=
"center"
filter=
"contains"
sort=
"true"
>
<EF:EFOptions
blockId=
"companyBox_block_id"
textField=
"textField"
valueField=
"valueField"
/>
</EF:EFComboColumn>
<EF:EFColumn
ename=
"companyName"
cname=
"所属项目"
width=
"160"
enable=
"true"
readonly=
"true"
align=
"center"
required=
"true"
hidden=
"true"
/>
<EF:EFComboColumn
ename=
"projCode"
cname=
"所属项目"
blockName=
"proj_record_block_id"
columnTemplate=
"#=textField#"
itemTemplate=
"#=textField#"
textField=
"textField"
valueField=
"valueField"
maxLength=
"16"
readonly=
"true"
width=
"200"
required=
"true"
align=
"center"
filter=
"contains"
sort=
"true"
/>
<EF:EFColumn
ename=
"projName"
cname=
"所属项目"
width=
"160"
enable=
"true"
readonly=
"true"
align=
"center"
required=
"true"
hidden=
"true"
/>
<EF:EFComboColumn
ename=
"fileType"
cname=
"文件类型"
width=
"100"
align=
"center"
readonly=
"false"
required=
"true"
defaultValue=
"20"
>
<EF:EFCodeOption
codeName=
"hggp.hgwd.fileType"
/>
</EF:EFComboColumn>
<EF:EFColumn
ename=
"fileName"
cname=
"文件名称"
width=
"160"
enable=
"true"
readonly=
"false"
align=
"center"
required=
"true"
/>
<EF:EFColumn
ename=
"fileId"
cname=
"文件号"
width=
"100"
enable=
"false"
readonly=
"true"
align=
"center"
required=
"false"
/>
<EF:EFColumn
ename=
"createdName"
cname=
"创建人"
align=
"center"
width=
"100"
readonly=
"true"
required=
"false"
enable=
"false"
/>
<EF:EFColumn
ename=
"createdTime"
cname=
"创建时间"
parseFormats=
"['yyyyMMddHHmmss']"
editType=
"datetime"
dateFormat=
"yyyy-MM-dd HH:mm:ss"
align=
"center"
width=
"120"
readonly=
"true"
required=
"false"
enable=
"false"
/>
</EF:EFGrid>
</EF:EFRegion>
</EF:EFWindow>
<EF:EFWindow
id=
"deleteOrgWindow"
width=
"350px"
height=
"200px"
>
<div
class=
"kendo-del-message"
>
<span>
确认删除?
</span>
</div>
<hr
style=
"margin-top: 0"
>
<div
style=
"display: flex;justify-content: flex-end;"
>
<EF:EFButton
ename=
"deleteOrg"
cname=
"删除节点"
/>
<EF:EFButton
ename=
"deleteOrgAndChildren"
cname=
"删除节点及子节点"
/>
</div>
</EF:EFWindow>
<EF:EFWindow
id=
"REGISTERUSER"
height=
"75%"
width=
"62%"
top=
"100px"
left=
"250px"
>
<EF:EFRegion
id=
"inqua"
title=
"注册新用户"
>
<div
id=
"registerUser"
>
<div
class=
"row"
>
<div
class=
"col-xs-2 control-label"
style=
"text-align:right"
>
<span
class=
"i-input-required"
>
*
</span>
<span>
登录账号
</span>
</div>
<div
class=
"col-xs-3"
>
<EF:EFInput
cname=
"登录账号"
ename=
"details-0-loginName"
data-regex=
"/^[_a-zA-Z0-9]{1,64}$/"
data-errorPrompt=
"对不起,登录账号只能是不超过64位的英文字母或者数字字符或下划线"
validateGroupName=
"group1"
required=
"required"
inline=
"true"
value=
"${loginPrefix}"
oninput=
"this.value='${loginPrefix}' + this.value.slice(this.value.indexOf('${loginPrefix}')+('${loginPrefix}'.length));"
/>
</div>
<div
class=
"col-xs-7"
>
<span
id=
"details-0-loginName-prompt"
>
【登录账号只能由不超过64位的英文字母或者数字字符或者下划线组成。】
</span>
</div>
</div>
</br>
<div
class=
"row"
>
<div
class=
"col-xs-2 control-label"
style=
"text-align:right"
>
<span
class=
"i-input-required"
>
*
</span>
<span>
用户姓名
</span>
</div>
<div
class=
"col-xs-3"
>
<EF:EFInput
cname=
"用户姓名"
ename=
"details-0-userName"
trim=
"false"
data-regex=
"/^[^\x22\x27]+$/"
value=
""
data-errorPrompt=
"用户姓名应该由至少一个,最多128个字节大小的字符组成,并且不能包含控制字符和单,双引号"
validateGroupName=
"group1"
inline=
"true"
/>
</div>
<div
class=
"col-xs-7"
>
<span
id=
"details-0-userName-prompt"
>
【用户姓名应该由至少一个,最多128个字节大小的字符组成,并且不能包含控制字符和单,双引号。】
</span>
</div>
</div>
</br>
<div
class=
"row"
>
<div
class=
"col-xs-2 control-label"
style=
"text-align:right"
>
<span
class=
"i-input-required"
>
*
</span>
<span>
登录密码
</span>
</div>
<div
class=
"col-xs-3"
>
<EF:EFInput
type=
"password"
cname=
"登录密码"
ename=
"details-0-password"
validateGroupName=
"group1"
trim=
"false"
data-regex=
"/${pwdRgx}/"
data-errorPrompt=
"对不起,${pwdDesc}"
inline=
"true"
value=
""
autocomplete=
"new-password"
/>
</div>
<div
class=
"col-xs-7"
>
<span
id=
"details-0-password-prompt"
>
【${passwordTip}】
</span>
</div>
</div>
</br>
<div
class=
"row"
>
<div
class=
"col-xs-2 control-label"
style=
"text-align:right"
>
<span
class=
"i-input-required"
>
*
</span>
<span>
确认密码
</span>
</div>
<div
class=
"col-xs-3"
>
<EF:EFInput
type=
"password"
cname=
"确认密码"
ename=
"details-0-rePass"
trim=
"false"
data-regex=
"/${pwdRgx}/"
validateGroupName=
"group1"
data-errorPrompt=
"对不起,${pwdDesc}"
inline=
"true"
value=
""
autocomplete=
"new-password"
/>
</div>
<div
class=
"col-xs-7"
>
<span
id=
"details-0-rePass-prompt"
>
【请再次输入登录密码】
</span>
</div>
</div>
</br>
<div
class=
"row"
>
<div
class=
"col-xs-2 control-label"
style=
"text-align:right"
>
<span
class=
"i-input-required"
>
*
</span>
<span>
手机号码
</span>
</div>
<div
class=
"col-xs-3"
>
<EF:EFInput
blockId=
"details"
cname=
"手机号码"
ename=
"mobile"
row=
"0"
trim=
"false"
data-regex=
"/^1\d{10}$/"
data-errorPrompt=
"手机号码只能是1开头的11位数字"
validateGroupName=
"group1"
inline=
"true"
value=
""
/>
</div>
<div
class=
"col-xs-7"
>
<span
id=
"details-0-mobile-prompt"
>
【请输入手机号码】
</span>
</div>
</div>
</br>
<div
class=
"row"
>
<div
class=
"col-xs-2 control-label"
style=
"text-align:right"
>
<span
class=
"i-input-required"
>
*
</span>
<span>
电子邮件
</span>
</div>
<div
class=
"col-xs-3"
>
<EF:EFInput
blockId=
"details"
cname=
"电子邮件"
ename=
"email"
row=
"0"
trim=
"false"
required=
"false"
value=
""
data-rules=
"email"
validateGroupName=
"group1"
inline=
"true"
/>
</div>
<div
class=
"col-xs-7"
>
<span
id=
"details-0-email-prompt"
>
【请输入电子邮件】
</span>
</div>
</div>
</br>
<div
class=
"row"
>
<div
class=
"col-xs-2 control-label"
style=
"text-align:right"
>
<span
class=
"i-input-required"
>
*
</span>
<span>
性别
</span>
</div>
<div
class=
"col-xs-3"
>
<EF:EFSelect
ename=
"details-0-gender"
cname=
"性别"
valueTemplate=
"#=textField#"
inline=
"true"
style=
"width: 148.8px;"
>
<EF:EFCodeOption
codeName=
"xservices.xs.sex"
/>
</EF:EFSelect>
</div>
<div
class=
"col-xs-7"
>
<span
id=
"details-0-sex-prompt"
>
【请输入性别】
</span>
</div>
</div>
</br>
</div>
</EF:EFRegion>
</EF:EFWindow>
<EF:EFWindow
id=
"importWindow"
width=
"58%"
height=
"75%"
top=
"100px"
left=
"280px"
title=
"组织机构及用户导入"
>
<EF:EFTab
id=
"importWindowTab"
>
<div
title=
"默认模板导入"
>
<EF:EFRegion
id=
"uploadAll_0"
title=
"增量导入(不覆盖重复项)"
>
<EF:EFInput
ename=
"fileAll_0"
type=
"file"
accept=
".xlsx"
colWidth=
"12"
/>
</EF:EFRegion>
<EF:EFRegion
id=
"uploadAll_1"
title=
"增量导入(覆盖重复项)"
>
<EF:EFInput
ename=
"fileAll_1"
type=
"file"
accept=
".xlsx"
colWidth=
"12"
/>
</EF:EFRegion>
<EF:EFRegion
id=
"uploadAll_2"
title=
"全量导入(删除所有已保存信息重新导入)"
>
<EF:EFInput
ename=
"fileAll_2"
type=
"file"
accept=
".xlsx"
colWidth=
"12"
/>
</EF:EFRegion>
</div>
<div
title=
"自定义模板导入"
>
<EF:EFRegion
id=
"uploadAll_3"
title=
"增量导入(不覆盖重复项)"
>
<EF:EFInput
ename=
"fileAll_3"
type=
"file"
accept=
".xlsx"
colWidth=
"12"
/>
</EF:EFRegion>
<EF:EFRegion
id=
"uploadAll_4"
title=
"增量导入(覆盖重复项)"
>
<EF:EFInput
ename=
"fileAll_4"
type=
"file"
accept=
".xlsx"
colWidth=
"12"
/>
</EF:EFRegion>
<EF:EFRegion
id=
"uploadAll_5"
title=
"全量导入(删除所有已保存信息重新导入)"
>
<EF:EFInput
ename=
"fileAll_5"
type=
"file"
accept=
".xlsx"
colWidth=
"12"
/>
</EF:EFRegion>
<EF:EFRegion
title=
"自定义导入模板设置"
>
<div
style=
"margin-bottom: 4px;display: flex;justify-content: flex-end;padding-right: 8px"
>
<EF:EFButton
ename=
"customExportSettting_1"
cname=
"自定义导入模板"
/>
</div>
</EF:EFRegion>
</div>
</EF:EFTab>
</EF:EFWindow>
<EF:EFWindow
id=
"showXS4100ImageWindow"
width=
"80%"
height=
"90%"
title=
"查看图片"
>
<img
id=
"showXS4100Image"
src=
""
width=
"100%"
style=
"object-fit: contain"
>
</EF:EFWindow>
<EF:EFWindow
id=
"exportWindow"
width=
"400px"
height=
"200px"
>
<div
class=
"kendo-del-message"
>
<span>
请选择导出方式或配置自定义导出模板
</span>
</div>
<hr
style=
"margin-top: 0"
>
<div
class=
"row"
style=
"display: flex;justify-content: flex-end;padding-right: 8px"
>
<EF:EFButton
ename=
"defaultExport"
cname=
"默认模板导出"
/>
<EF:EFButton
ename=
"customExport"
cname=
"自定义模板导出"
/>
<EF:EFButton
ename=
"customExportSettting_2"
cname=
"配置自定义导出模板"
/>
</div>
</EF:EFWindow>
<EF:EFWindow
id=
"exportSettingWindow"
width=
"80%"
height=
"90%"
title=
"自定义导入/导出模板"
>
<EF:EFTab
id=
"exportSetting"
>
<div
id=
"userBasic"
title=
"基础信息模板"
value=
"userBasic"
>
<div
id=
"resultGridDiv4"
>
<EF:EFRegion
id=
"result4Region"
title=
"自定义基础信息模板"
>
<EF:EFGrid
blockId=
"result4"
autoDraw=
"false"
toolbarConfig=
"true"
serviceName=
"XSOG0801"
queryMethod=
"queryUserBasicDetailTemplate"
deleteMethod=
"deleteUserMetadata"
updateMethod=
"updateUserMetadata"
>
<EF:EFColumn
ename=
"itemCode"
cname=
"配置编码"
readonly=
"true"
primaryKey=
"true"
/>
<EF:EFColumn
ename=
"itemEname"
cname=
"属性英文名"
readonly=
"true"
/>
<EF:EFColumn
ename=
"itemCname"
cname=
"表头中文名"
required=
"true"
/>
<EF:EFColumn
ename=
"sortId"
cname=
"排序"
required=
"true"
data-regex=
"/^[1-9]\\\d*$/"
data-errorprompt=
"请输入正整数"
/>
<EF:EFComboColumn
ename=
"itemStatus"
cname=
"启用"
required=
"true"
>
<EF:EFOption
label=
"是"
value=
"1"
>
</EF:EFOption>
<EF:EFOption
label=
"否"
value=
"0"
>
</EF:EFOption>
</EF:EFComboColumn>
</EF:EFGrid>
</EF:EFRegion>
</div>
</div>
<div
id=
"userCustom"
title=
"扩展信息模板"
value=
"userCustom"
>
<div
id=
"resultGridDiv5"
>
<EF:EFRegion
id=
"result5Region"
title=
"自定义扩展信息模板"
>
<EF:EFGrid
blockId=
"result5"
autoDraw=
"false"
toolbarConfig=
"true"
serviceName=
"XSOG0801"
queryMethod=
"queryUserCustomDetailTemplate"
deleteMethod=
"deleteUserMetadata"
updateMethod=
"updateUserMetadata"
insertMethod=
"insertUserCustomDetailTableHeader"
>
<EF:EFColumn
ename=
"itemCode"
cname=
"配置编码"
required=
"true"
readonly=
"true"
primaryKey=
"true"
/>
<EF:EFColumn
ename=
"itemEname"
cname=
"属性英文名"
required=
"true"
/>
<EF:EFColumn
ename=
"itemCname"
cname=
"表头中文名"
required=
"true"
/>
<EF:EFColumn
ename=
"sortId"
cname=
"排序"
required=
"true"
data-regex=
"/^[1-9]\\\d*$/"
data-errorprompt=
"请输入正整数"
/>
<EF:EFComboColumn
ename=
"itemStatus"
cname=
"启用"
required=
"true"
>
<EF:EFOption
label=
"是"
value=
"1"
>
</EF:EFOption>
<EF:EFOption
label=
"否"
value=
"0"
>
</EF:EFOption>
</EF:EFComboColumn>
</EF:EFGrid>
</EF:EFRegion>
</div>
</div>
</EF:EFTab>
<EF:EFRegion
id=
"excelShowArea"
title=
"表头预览"
style=
"margin-top:8px"
>
<div
id=
"excelTable"
style=
"padding: 16px"
></div>
<div
style=
"overflow:hidden;width:100%;padding: 16px"
>
<table
width=
"100%"
>
<tr
class=
"tableRow0"
>
<td
nowrap
width=
"12%"
>
自定义导入/导出模板说明
</td>
<td>
<span
class=
"contentHeader"
>
①
</span>
:自定义导出模板由”用户基础信息”、“用户所属组织机构路径”、“用户扩展信息”三部分组成。
<br/>
<span
class=
"contentHeader"
>
②
</span>
:可通过“启用”或“停止启用”控制该列是否生成。
<br/>
<span
class=
"contentHeader"
>
③
</span>
:“用户基础信息”仅可通过“选择属性”添加,“用户扩展信息”可通过“选择属性”添加,也可通过“新增”按钮新增。
<br/>
<
%
--
<
span
class=
"contentHeader"
>
④
</span>
:“用户所属组织机构路径”由当前组织机构所拥有的层级自动生成。
<br/>
--%>
</td>
</tr>
<tr
class=
"tableRow1"
>
<td>
<br>
</td>
</tr>
<tr
class=
"tableRow2"
>
<td
nowrap
width=
"9%"
style=
"color: red"
>
注意
</td>
<td>
<span
class=
"contentHeader"
style=
"color: red"
>
”用户基础信息”中,【loginName】仅可修改表头中文名,不可删除或停止启用。
</span><br>
<span
class=
"contentHeader"
style=
"color: red"
>
“用户扩展信息”中,【新增】当前不存在的扩展属性时,会在导入时自动生成该扩展属性。
</span><br>
<span
class=
"contentHeader"
style=
"color: red"
>
导入组织机构信息时,请确保所有导入组织机构信息在“组织机构”区域下。
</span><br>
</td>
</tr>
</table>
</div>
</EF:EFRegion>
</EF:EFWindow>
<EF:EFWindow
id=
"userBasicWindow"
width=
"80%"
height=
"90%"
title=
"用户属性"
>
<EF:EFRegion
id=
"inqu6"
title=
"查询"
style=
"display:none"
>
<EF:EFInput
ename=
"inqu_status-6-codesetCode"
cname=
"编号"
/>
</EF:EFRegion>
<EF:EFRegion
id=
"userBasicShowArea"
title=
"请选择需要添加的用户属性"
>
<EF:EFGrid
blockId=
"result6"
autoDraw=
"false"
toolbarConfig=
"true"
serviceName=
"XSOG0801"
queryMethod=
"queryUserMetadataImpl"
>
<EF:EFColumn
ename=
"ename"
cname=
"属性编码"
readonly=
"true"
primaryKey=
"true"
/>
<EF:EFColumn
ename=
"cname"
cname=
"属性说明"
readonly=
"true"
/>
</EF:EFGrid>
</EF:EFRegion>
</EF:EFWindow>
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment