Commit fc93070f by liuyang

2024-08-29 文档库

parent 2ed3b447
......@@ -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)));
......
......@@ -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;
}
}
......@@ -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>
......@@ -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);
}
......
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) {
......
......@@ -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"/>--%>
&lt;%&ndash;<EF:EFAutoComplete blockId="inqu_status" row="0" ename="projName" cname="项目名称"
serviceName="HGSC002" queryMethod="queryComboBox" resultId="result" dataField="projName"/>&ndash;%&gt;
<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
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment