|
@@ -9,10 +9,11 @@
|
|
|
<button type="button" class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-minus"></i></button>
|
|
<button type="button" class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-minus"></i></button>
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
- <#form:form id="inputForm" model="${empUser}" action="${ctx}/sys/empUser/save" method="post" class="form-horizontal">
|
|
|
|
|
|
|
+ <#form:form id="inputForm" model="${empUser}" action="${ctx}/mes/empUserCustom/save" method="post" class="form-horizontal">
|
|
|
<#form:hidden name="op" value="${op}"/>
|
|
<#form:hidden name="op" value="${op}"/>
|
|
|
<#form:hidden name="userType" value="employee"/>
|
|
<#form:hidden name="userType" value="employee"/>
|
|
|
<#form:hidden path="userCode"/>
|
|
<#form:hidden path="userCode"/>
|
|
|
|
|
+ <#form:hidden path="employee.empCode"/>
|
|
|
<div class="box-body">
|
|
<div class="box-body">
|
|
|
<% if(op=='auth'){ %><br/><% } %>
|
|
<% if(op=='auth'){ %><br/><% } %>
|
|
|
<% if(op == 'add' || op == 'edit') { %>
|
|
<% if(op == 'add' || op == 'edit') { %>
|
|
@@ -30,18 +31,6 @@
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
- <div class="col-xs-6">
|
|
|
|
|
- <div class="form-group">
|
|
|
|
|
- <label class="control-label col-sm-4" title="">
|
|
|
|
|
- <span class="required hide">*</span> ${text('归属公司')}:<i class="fa icon-question hide"></i></label>
|
|
|
|
|
- <div class="col-sm-8">
|
|
|
|
|
- <#form:treeselect id="company" title="${text('公司选择')}"
|
|
|
|
|
- path="employee.company.companyCode" labelPath="employee.company.companyName"
|
|
|
|
|
- url="${ctx}/sys/company/treeData?ctrlPermi=${ctrlPermi}"
|
|
|
|
|
- btnClass="" allowClear="true" canSelectRoot="true" canSelectParent="true"/>
|
|
|
|
|
- </div>
|
|
|
|
|
- </div>
|
|
|
|
|
- </div>
|
|
|
|
|
</div>
|
|
</div>
|
|
|
<% } %>
|
|
<% } %>
|
|
|
<div class="row">
|
|
<div class="row">
|
|
@@ -51,8 +40,8 @@
|
|
|
<span class="required ">*</span> ${text('登录账号')}:<i class="fa icon-question hide"></i></label>
|
|
<span class="required ">*</span> ${text('登录账号')}:<i class="fa icon-question hide"></i></label>
|
|
|
<div class="col-sm-8">
|
|
<div class="col-sm-8">
|
|
|
<#form:hidden name="oldLoginCode" value="${empUser.loginCode}"/>
|
|
<#form:hidden name="oldLoginCode" value="${empUser.loginCode}"/>
|
|
|
- <#form:input path="loginCode" minlength="4" maxlength="20" readonly="${op=='auth'}"
|
|
|
|
|
- class="form-control required userName"
|
|
|
|
|
|
|
+ <#form:input path="loginCode" minlength="2" maxlength="20" readonly="${op=='auth'}"
|
|
|
|
|
+ class="form-control required"
|
|
|
remote="${ctx}/sys/user/checkLoginCode?oldLoginCode=${empUser.loginCode}"
|
|
remote="${ctx}/sys/user/checkLoginCode?oldLoginCode=${empUser.loginCode}"
|
|
|
data-msg-remote="${text('登录账号已存在')}"/>
|
|
data-msg-remote="${text('登录账号已存在')}"/>
|
|
|
</div>
|
|
</div>
|
|
@@ -123,41 +112,43 @@
|
|
|
<div class="col-xs-6">
|
|
<div class="col-xs-6">
|
|
|
<div class="form-group">
|
|
<div class="form-group">
|
|
|
<label class="control-label col-sm-4" title="">
|
|
<label class="control-label col-sm-4" title="">
|
|
|
- <span class="required hide">*</span> ${text('员工工号')}:<i class="fa icon-question hide"></i></label>
|
|
|
|
|
|
|
+ <span class="required ">*</span> ${text('员工工号')}:<i class="fa icon-question hide"></i></label>
|
|
|
<div class="col-sm-8">
|
|
<div class="col-sm-8">
|
|
|
- <#form:input path="employee.empNo" maxlength="32" class="form-control userName"
|
|
|
|
|
- remote="${ctx}/sys/empUser/checkEmpNo?oldEmpNo=${empUser.employee.empNo}"
|
|
|
|
|
- data-msg-remote="${text('员工工号已存在')}"/>
|
|
|
|
|
|
|
+ <#form:input path="employee.empNo" maxlength="32" class="form-control required"/>
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
<div class="col-xs-6">
|
|
<div class="col-xs-6">
|
|
|
<div class="form-group">
|
|
<div class="form-group">
|
|
|
<label class="control-label col-sm-4" title="">
|
|
<label class="control-label col-sm-4" title="">
|
|
|
- <span class="required hide">*</span> ${text('员工姓名')}:<i class="fa icon-question hide"></i></label>
|
|
|
|
|
|
|
+ <span class="required ">*</span> ${text('员工姓名')}:<i class="fa icon-question hide"></i></label>
|
|
|
<div class="col-sm-8">
|
|
<div class="col-sm-8">
|
|
|
- <#form:input path="employee.empName" maxlength="32" class="form-control "/>
|
|
|
|
|
|
|
+ <#form:input path="employee.empName" maxlength="32" class="form-control required"/>
|
|
|
|
|
+ <span class="help-block selected-employee-tip hide"></span>
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
<div class="row">
|
|
<div class="row">
|
|
|
- <div class="col-xs-6">
|
|
|
|
|
|
|
+ <div class="col-xs-6 hide">
|
|
|
<div class="form-group">
|
|
<div class="form-group">
|
|
|
<label class="control-label col-sm-4" title="">
|
|
<label class="control-label col-sm-4" title="">
|
|
|
- <span class="required hide">*</span> ${text('所在岗位')}:<i class="fa icon-question hide"></i></label>
|
|
|
|
|
|
|
+ <span class="required hide">*</span> ${text('英文名')}:<i class="fa icon-question hide"></i></label>
|
|
|
<div class="col-sm-8">
|
|
<div class="col-sm-8">
|
|
|
- <#form:select multiple="true" path="employee.employeePosts" items="${postList}"
|
|
|
|
|
- itemLabel="postName" itemValue="postCode" class="form-control"/>
|
|
|
|
|
|
|
+ <#form:input path="employee.empNameEn" value="moren" maxlength="32" class="form-control "/>
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
- <div class="col-xs-6 hide">
|
|
|
|
|
|
|
+ <div class="col-xs-6">
|
|
|
<div class="form-group">
|
|
<div class="form-group">
|
|
|
<label class="control-label col-sm-4" title="">
|
|
<label class="control-label col-sm-4" title="">
|
|
|
- <span class="required hide">*</span> ${text('英文名')}:<i class="fa icon-question hide"></i></label>
|
|
|
|
|
|
|
+ <span class="required hide">*</span> ${text('岗位')}:<i class="fa icon-question hide"></i></label>
|
|
|
<div class="col-sm-8">
|
|
<div class="col-sm-8">
|
|
|
- <#form:input path="employee.empNameEn" value="moren" maxlength="32" class="form-control "/>
|
|
|
|
|
|
|
+ <#form:treeselect id="post" title="${text('岗位选择')}"
|
|
|
|
|
+ name="employee.postCode" value="${empUser.employee.postCode!}"
|
|
|
|
|
+ labelName="employeePostName" labelValue=""
|
|
|
|
|
+ url="${ctx}/sys/post/treeData"
|
|
|
|
|
+ allowClear="true" canSelectParent="true"/>
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
@@ -237,14 +228,6 @@
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
},
|
|
},
|
|
|
- {header:'${text("附属岗位")}', name:'postCode', sortable:false, width:100,
|
|
|
|
|
- editable:true, edittype:'select', editoptions:{'class':'form-control',
|
|
|
|
|
- items: $.merge([{postName:' ',postCode:''}], ${toJson(postList)}),
|
|
|
|
|
- itemLabel: 'postName', itemValue: 'postCode', dataInit: function(element){
|
|
|
|
|
- js.select2(element).on("change",function(){$(this).resetValid()});
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- },
|
|
|
|
|
{header:'${text("操作")}', name:'actions', width:80, sortable:false, fixed:true, formatter: function(val, obj, row, act){
|
|
{header:'${text("操作")}', name:'actions', width:80, sortable:false, fixed:true, formatter: function(val, obj, row, act){
|
|
|
var actions = [];
|
|
var actions = [];
|
|
|
actions.push('<a href="#" onclick="js.confirm(\'${text("你确认要删除这条数据吗?")}\', function(){$(\'#empOfficeGrid\').dataGrid(\'delRowData\',\''+obj.rowId+'\')});return false;"><i class="fa fa-trash-o"></i></a> ');
|
|
actions.push('<a href="#" onclick="js.confirm(\'${text("你确认要删除这条数据吗?")}\', function(){$(\'#empOfficeGrid\').dataGrid(\'delRowData\',\''+obj.rowId+'\')});return false;"><i class="fa fa-trash-o"></i></a> ');
|
|
@@ -261,7 +244,7 @@
|
|
|
|
|
|
|
|
// 编辑表格的提交数据参数
|
|
// 编辑表格的提交数据参数
|
|
|
editGridInputFormListName: 'employee.employeeOfficeList', // 提交的数据列表名
|
|
editGridInputFormListName: 'employee.employeeOfficeList', // 提交的数据列表名
|
|
|
- editGridInputFormListAttrs: 'officeCode,officeName,postCode,postName,', // 提交数据列表的属性字段
|
|
|
|
|
|
|
+ editGridInputFormListAttrs: 'officeCode,officeName,', // 提交数据列表的属性字段
|
|
|
|
|
|
|
|
ajaxSuccess: function(){
|
|
ajaxSuccess: function(){
|
|
|
|
|
|
|
@@ -293,8 +276,19 @@
|
|
|
}
|
|
}
|
|
|
});
|
|
});
|
|
|
//<% } %>
|
|
//<% } %>
|
|
|
|
|
+ var empUserSubmitting = false;
|
|
|
|
|
+ var employeeSearchOpening = false;
|
|
|
$("#inputForm").validate({
|
|
$("#inputForm").validate({
|
|
|
submitHandler: function(form){
|
|
submitHandler: function(form){
|
|
|
|
|
+ if (empUserSubmitting) {
|
|
|
|
|
+ return false;
|
|
|
|
|
+ }
|
|
|
|
|
+ if ('${op}' == 'add' && $.trim($('[name="employee.empName"]').val()) != '' && $('[name="employee.empCode"]').val() == '') {
|
|
|
|
|
+ js.showMessage('请先按员工姓名查询并选择员工。', null, 'warning');
|
|
|
|
|
+ openEmployeeSearchByKeyword($('[name="employee.empName"]').val(), true);
|
|
|
|
|
+ return false;
|
|
|
|
|
+ }
|
|
|
|
|
+ empUserSubmitting = true;
|
|
|
//<% if(hasPermi('sys:empUser:authRole') && (op == 'add' || op == 'auth')) { %>
|
|
//<% if(hasPermi('sys:empUser:authRole') && (op == 'add' || op == 'auth')) { %>
|
|
|
$("#userRoleString").val(roleGrid.dataGrid('getSelectRows').join(','));
|
|
$("#userRoleString").val(roleGrid.dataGrid('getSelectRows').join(','));
|
|
|
//<% } %>
|
|
//<% } %>
|
|
@@ -303,6 +297,7 @@
|
|
|
$('#employee_empNo').val($('#loginCode').val());
|
|
$('#employee_empNo').val($('#loginCode').val());
|
|
|
}
|
|
}
|
|
|
js.ajaxSubmitForm($(form), function(data){
|
|
js.ajaxSubmitForm($(form), function(data){
|
|
|
|
|
+ empUserSubmitting = false;
|
|
|
js.showMessage(data.message);
|
|
js.showMessage(data.message);
|
|
|
if(data.result == Global.TRUE){
|
|
if(data.result == Global.TRUE){
|
|
|
js.closeCurrentTabPage(function(contentWindow){
|
|
js.closeCurrentTabPage(function(contentWindow){
|
|
@@ -310,6 +305,107 @@
|
|
|
});
|
|
});
|
|
|
}
|
|
}
|
|
|
}, "json");
|
|
}, "json");
|
|
|
|
|
+ return false;
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+ $('#inputForm').on('submit.empUserAjax', function(e){
|
|
|
|
|
+ e.preventDefault();
|
|
|
|
|
+ if (empUserSubmitting) {
|
|
|
|
|
+ return false;
|
|
|
|
|
+ }
|
|
|
|
|
+ if ($(this).valid()) {
|
|
|
|
|
+ $(this).validate().settings.submitHandler(this);
|
|
|
|
|
+ }
|
|
|
|
|
+ return false;
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ // 新建账号时按员工姓名匹配已有员工,选中后绑定账号到该员工。
|
|
|
|
|
+ (function(){
|
|
|
|
|
+ var lastKeyword = '';
|
|
|
|
|
+ $('[name="employee.empName"]').on('input', function(){
|
|
|
|
|
+ $('[name="employee.empCode"]').val('');
|
|
|
|
|
+ $('[name="employee.postCode"]').val('');
|
|
|
|
|
+ $('[name="employeePostName"]').val('');
|
|
|
|
|
+ $('.selected-employee-tip').addClass('hide').text('');
|
|
|
|
|
+ lastKeyword = '';
|
|
|
|
|
+ });
|
|
|
|
|
+ $('[name="employee.empName"]').on('blur', function(){
|
|
|
|
|
+ var keyword = $.trim($(this).val());
|
|
|
|
|
+ if ('${op}' != 'add' || keyword.length < 1 || keyword == lastKeyword || $('[name="employee.empCode"]').val()) {
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+ lastKeyword = keyword;
|
|
|
|
|
+ openEmployeeSearchByKeyword(keyword, false);
|
|
|
|
|
+ });
|
|
|
|
|
+ })();
|
|
|
|
|
+
|
|
|
|
|
+ window.applySelectedEmployee = function(row){
|
|
|
|
|
+ $('[name="employee.empCode"]').val(row.empCode || '');
|
|
|
|
|
+ $('[name="employee.empName"]').val(row.empName || '');
|
|
|
|
|
+ $('[name="employee.empNo"]').val(row.empNo || '');
|
|
|
|
|
+ $('[name="userName"]').val(row.empName || '');
|
|
|
|
|
+ $('[name="employee.office.officeCode"]').val(row.officeCode || '');
|
|
|
|
|
+ $('[name="employee.office.officeName"]').val(row.officeName || '');
|
|
|
|
|
+ $('[name="employee.postCode"]').val(row.postCode || '');
|
|
|
|
|
+ $('[name="employeePostName"]').val(row.postName || '');
|
|
|
|
|
+ $('.selected-employee-tip').removeClass('hide').text('已选择员工:' + (row.empName || '') + (row.empNo ? '(' + row.empNo + ')' : ''));
|
|
|
|
|
+ };
|
|
|
|
|
+
|
|
|
|
|
+ function openEmployeeSearchByKeyword(keyword, showEmptyMessage){
|
|
|
|
|
+ keyword = $.trim(keyword || '');
|
|
|
|
|
+ if ('${op}' != 'add' || keyword.length < 1 || $('[name="employee.empCode"]').val()) {
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+ if (employeeSearchOpening) {
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+ employeeSearchOpening = true;
|
|
|
|
|
+ $('[name="employee.empName"]').val(keyword);
|
|
|
|
|
+ $.get('${ctx}/mes/mesEmployee/search', {keyword: keyword}, function(list){
|
|
|
|
|
+ if (!list || list.length == 0) {
|
|
|
|
|
+ employeeSearchOpening = false;
|
|
|
|
|
+ if (showEmptyMessage) {
|
|
|
|
|
+ js.showMessage('未查询到匹配的员工,请检查员工姓名。', null, 'warning');
|
|
|
|
|
+ }
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+ if (list.length == 1 && list[0].empName == keyword) {
|
|
|
|
|
+ applySelectedEmployee(list[0]);
|
|
|
|
|
+ employeeSearchOpening = false;
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+ js.layer.open({
|
|
|
|
|
+ type: 2,
|
|
|
|
|
+ title: '${text("选择员工")}',
|
|
|
|
|
+ area: ['820px', '520px'],
|
|
|
|
|
+ content: '${ctx}/mes/mesEmployee/searchPage?keyword=' + encodeURIComponent(keyword),
|
|
|
|
|
+ end: function(){
|
|
|
|
|
+ employeeSearchOpening = false;
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+ }).fail(function(){
|
|
|
|
|
+ employeeSearchOpening = false;
|
|
|
|
|
+ if (showEmptyMessage) {
|
|
|
|
|
+ js.showMessage('查询员工失败,请稍后重试。', null, 'error');
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ $('[name="employee.empName"]').on('keydown', function(e){
|
|
|
|
|
+ if (e.keyCode == 13) {
|
|
|
|
|
+ e.preventDefault();
|
|
|
|
|
+ e.stopImmediatePropagation();
|
|
|
|
|
+ openEmployeeSearchByKeyword($(this).val(), true);
|
|
|
|
|
+ return false;
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ $('#inputForm').on('submit', function(e){
|
|
|
|
|
+ var activeName = document.activeElement ? document.activeElement.name : '';
|
|
|
|
|
+ if (activeName == 'employee.empName') {
|
|
|
|
|
+ e.preventDefault();
|
|
|
|
|
+ openEmployeeSearchByKeyword($('[name="employee.empName"]').val(), true);
|
|
|
|
|
+ return false;
|
|
|
}
|
|
}
|
|
|
});
|
|
});
|
|
|
</script>
|
|
</script>
|