新增员工用户列表选择示例代码,详见帮助文档form:listselect
This commit is contained in:
@@ -376,4 +376,16 @@ public class EmpUserController extends BaseController {
|
|||||||
return mapList;
|
return mapList;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 选择员工对话框
|
||||||
|
*/
|
||||||
|
@RequiresPermissions("user")
|
||||||
|
@RequestMapping(value = "empUserSelect")
|
||||||
|
public String empUserSelect(EmpUser empUser, String selectData, String checkbox, Model model) {
|
||||||
|
model.addAttribute("selectData", selectData); // 指定默认选中的ID
|
||||||
|
model.addAttribute("checkbox", checkbox); // 是否显示复选框,支持多选
|
||||||
|
model.addAttribute("empUser", empUser); // ModelAttribute
|
||||||
|
return "modules/sys/user/empUserSelect";
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,166 @@
|
|||||||
|
<% layout('/layouts/default.html', {title: '用户选择', libs: ['dataGrid']}){ %>
|
||||||
|
<div class="main-content">
|
||||||
|
<div class="box box-main">
|
||||||
|
<div class="box-body">
|
||||||
|
<#form:form id="searchForm" action="${ctx}/sys/empUser/listData" method="post" class="form-inline "
|
||||||
|
data-page-no="${parameter.pageNo}" data-page-size="${parameter.pageSize}" data-order-by="${parameter.orderBy}">
|
||||||
|
<#form:hidden name="status" value="${isNotBlank(empUser.status) ? empUser.status : '0'}"/>
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="control-label">${text('账号')}:</label>
|
||||||
|
<div class="control-inline">
|
||||||
|
<#form:input path="loginCode" maxlength="100" class="form-control width-90"/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="control-label">${text('昵称')}:</label>
|
||||||
|
<div class="control-inline">
|
||||||
|
<#form:input path="userName" maxlength="100" class="form-control width-90"/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="control-label">${text('邮箱')}:</label>
|
||||||
|
<div class="control-inline">
|
||||||
|
<#form:input path="email" maxlength="300" class="form-control width-90"/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="control-label">${text('手机')}:</label>
|
||||||
|
<div class="control-inline">
|
||||||
|
<#form:input path="mobile" maxlength="100" class="form-control width-90"/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-row"></div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="control-label">${text('姓名')}:</label>
|
||||||
|
<div class="control-inline">
|
||||||
|
<#form:input path="refName" maxlength="100" class="form-control width-90"/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="control-label">${text('机构')}:</label>
|
||||||
|
<div class="control-inline width-90">
|
||||||
|
<#form:treeselect id="office" title="${text('机构选择')}"
|
||||||
|
path="employee.office.officeCode" labelPath="employee.office.officeName"
|
||||||
|
url="${ctx}/sys/office/treeData" btnClass="btn-sm" allowClear="true" canSelectParent="true"/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="control-label">${text('公司')}:</label>
|
||||||
|
<div class="control-inline width-90">
|
||||||
|
<#form:treeselect id="company" title="${text('公司选择')}"
|
||||||
|
path="employee.company.companyCode" labelPath="employee.company.companyName"
|
||||||
|
url="${ctx}/sys/company/treeData" btnClass="btn-sm" allowClear="true" canSelectParent="true"/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="control-label">${text('电话')}:</label>
|
||||||
|
<div class="control-inline">
|
||||||
|
<#form:input path="phone" maxlength="100" class="form-control width-90"/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<button type="submit" class="btn btn-primary btn-sm">查询</button>
|
||||||
|
<button type="reset" class="btn btn-default btn-sm">重置</button>
|
||||||
|
</div>
|
||||||
|
</#form:form>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-xs-10 pr10">
|
||||||
|
<table id="dataGrid"></table>
|
||||||
|
<div id="dataGridPage"></div>
|
||||||
|
</div>
|
||||||
|
<div class="col-xs-2 pl0">
|
||||||
|
<div id="selectData" class="tags-input"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<% } %>
|
||||||
|
<script>
|
||||||
|
var selectData = JSON.parse(js.decodeUrl('${isNotBlank(selectData!) ? selectData! : "{\}"}')),
|
||||||
|
selectNum = 0, dataGrid = $('#dataGrid').dataGrid({
|
||||||
|
searchForm: $("#searchForm"),
|
||||||
|
columnModel: [
|
||||||
|
{header:'${text('登录账号')}', name:'loginCode', index:'a.login_code', width:200, align:"center"},
|
||||||
|
{header:'${text('用户昵称')}', name:'userName', index:'a.user_name', width:200, align:"center"},
|
||||||
|
{header:'${text('员工姓名')}', name:'refName', index:'a.ref_name', width:200, align:"center"},
|
||||||
|
{header:'${text('归属机构')}', name:'employee.office.officeName', index:'o.office_name', width:200, align:"center"},
|
||||||
|
{header:'${text('归属公司')}', name:'employee.company.companyName', index:'c.company_name', width:200, align:"center"},
|
||||||
|
{header:'${text('电子邮箱')}', name:'email', index:'a.email', width:200, align:"center"},
|
||||||
|
{header:'${text('手机号码')}', name:'mobile', index:'a.mobile', width:200, align:"center"},
|
||||||
|
{header:'${text('办公电话')}', name:'phone', index:'a.phone', width:200, align:"center"},
|
||||||
|
{header:'${text('更新时间')}', name:'updateDate', index:'a.update_date', width:200, align:"center"},
|
||||||
|
{header:'${text('状态')}', name:'status', index:'a.status', width:140, align:"center", formatter: function(val, obj, row, act){
|
||||||
|
return js.getDictLabel(${@DictUtils.getDictListJson('sys_status')}, val, '未知', true);
|
||||||
|
}},
|
||||||
|
{header:'行数据', name:'rowData', hidden:true, formatter: function(val, obj, row, act){
|
||||||
|
return JSON.stringify(row);
|
||||||
|
}}
|
||||||
|
],
|
||||||
|
autoGridHeight: function(){
|
||||||
|
var height = $(window).height() - $('#searchForm').height() - $('#dataGridPage').height() - 73;
|
||||||
|
$('.tags-input').height($('.ui-jqgrid').height() - 10);
|
||||||
|
return height;
|
||||||
|
},
|
||||||
|
showCheckbox: ${checkbox! == 'true'},
|
||||||
|
multiboxonly: false, // 单击复选框时再多选
|
||||||
|
ajaxSuccess: function(data){
|
||||||
|
$.each(selectData, function(key, value){
|
||||||
|
dataGrid.dataGrid('setSelectRow', key);
|
||||||
|
});
|
||||||
|
initSelectTag();
|
||||||
|
},
|
||||||
|
onSelectRow: function(id, isSelect, event){
|
||||||
|
if (${checkbox! == 'true'}){
|
||||||
|
if(isSelect){
|
||||||
|
selectData[id] = JSON.parse(dataGrid.dataGrid('getRowData', id).rowData);
|
||||||
|
}else{
|
||||||
|
delete selectData[id];
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
selectData = {};
|
||||||
|
selectData[id] = JSON.parse(dataGrid.dataGrid('getRowData', id).rowData);
|
||||||
|
}
|
||||||
|
initSelectTag();
|
||||||
|
},
|
||||||
|
onSelectAll: function(ids, isSelect){
|
||||||
|
if (${checkbox! == 'true'}){
|
||||||
|
for (var i=0; i<ids.length; i++){
|
||||||
|
if(isSelect){
|
||||||
|
selectData[ids[i]] = JSON.parse(dataGrid.dataGrid('getRowData', ids[i]).rowData);
|
||||||
|
}else{
|
||||||
|
delete selectData[ids[i]];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
initSelectTag();
|
||||||
|
},
|
||||||
|
ondblClickRow: function(id, rownum, colnum, event){
|
||||||
|
if (${checkbox! != 'true'}){
|
||||||
|
js.layer.$('#' + window.name).closest('.layui-layer')
|
||||||
|
.find(".layui-layer-btn0").trigger("click");
|
||||||
|
}
|
||||||
|
initSelectTag();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
function initSelectTag(){
|
||||||
|
selectNum = 0;
|
||||||
|
var html = [];
|
||||||
|
$.each(selectData, function(key, value){
|
||||||
|
selectNum ++;
|
||||||
|
html.push('<span class="tag" id="'+key+'_tags-input"><span>'+value.userName+' </span>'
|
||||||
|
+ '<a href="#" onclick="removeSelectTag(\''+key+'\');" title="取消选择">x</a></span>');
|
||||||
|
});
|
||||||
|
html.unshift('<div class="title">当前已选择<span id="selectNum">'+selectNum+'</span>项:</div>');
|
||||||
|
$('#selectData').empty().append(html.join(''));
|
||||||
|
}
|
||||||
|
function removeSelectTag(key){
|
||||||
|
delete selectData[key];
|
||||||
|
dataGrid.dataGrid('resetSelection', key);
|
||||||
|
$('#selectNum').html(--selectNum);
|
||||||
|
$('#'+key+'_tags-input').remove();
|
||||||
|
}
|
||||||
|
function getSelectData(){
|
||||||
|
return selectData;
|
||||||
|
}
|
||||||
|
</script>
|
||||||
Reference in New Issue
Block a user