You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

305 lines
14 KiB
JavaScript

/// <reference path="../Scripts/MicrosoftAjax.js" />
/// <reference path="../Scripts/jquery.min.js" />
/// <reference path="fancybox/jquery.fancybox-1.3.4.js" />
/// <reference path="jquery.easyui.min.js" />
Custom_Door = function () {
this.ApplicationPath = "../";
this.ControlID = "Window_Custom_Door";
this.ParentElement = null; //要加入的父容器
this.SchId = 0;
var My = this;
var listDeptName = My.ControlID + "listDeptName";
var txtName = My.ControlID + "txtName";
var listLeftPerson = My.ControlID + "listLeftPerson";
var listRightPerson = My.ControlID + "listRightPerson";
var cmdPersonRightAll = My.ControlID + "cmdPersonRightAll";
var cmdPersonLeftAll = My.ControlID + "cmdPersonLeftAll";
var cmdPersonRight = My.ControlID + "cmdPersonRight";
var cmdPersonLeft = My.ControlID + "cmdPersonLeft";
var cmdSave = My.ControlID + "cmdSave";
var cmdGet = My.ControlID + "cmdGet";
var radSelectDept = My.ControlID + "radSelectDept";
var radSelectGroup = My.ControlID + "radSelectGroup";
var txtDeptTitle = My.ControlID + "txtDeptTitle";
var RightPerson = null;
var EventHandler = new Sys.EventHandlerList();
//#region 加载
this.Load = function () {
listDeptName = My.ControlID + "listDeptName";
txtName = My.ControlID + "txtName";
listLeftPerson = My.ControlID + "listLeftPerson";
listRightPerson = My.ControlID + "listRightPerson";
cmdPersonRightAll = My.ControlID + "cmdPersonRightAll";
cmdPersonLeftAll = My.ControlID + "cmdPersonLeftAll";
cmdPersonRight = My.ControlID + "cmdPersonRight";
cmdPersonLeft = My.ControlID + "cmdPersonLeft";
cmdSave = My.ControlID + "cmdSave";
cmdGet = My.ControlID + "cmdGet";
Init();
$("#" + radSelectDept, My.ParentElement).change(function () {
BindDept();
RefshRightPerson();
});
$("#" + radSelectGroup, My.ParentElement).change(function () {
BindGroup();
RefshRightPerson();
});
$("#" + listDeptName, My.ParentElement).change(function () {
RefshRightPerson();
});
$("#" + cmdPersonLeftAll, My.ParentElement).click(function () {
var options = $("#" + listRightPerson, My.ParentElement).find("option");
if (options.length == 0) { alert("没有可以移除的人"); return; }
var html = new Sys.StringBuilder();
$(options).each(function () {
var PersonID = $(this).val();
var query = JSLINQ(RightPerson).Where(function (item) {
if (item.Id == PersonID) return item;
});
Array.remove(RightPerson, query.items[0]);
html.append("<option value='" + PersonID + "'>" + $(this).text() + "</option>");
});
$('#' + listLeftPerson, My.ParentElement).append(html.toString());
options.remove();
});
$("#" + cmdPersonRightAll, My.ParentElement).click(function () {
var options = $("#" + listLeftPerson, My.ParentElement).find("option");
if (options.length == 0) { alert("没有可以添加的人"); return; }
var html = new Sys.StringBuilder();
$(options).each(function () {
var model = new Object();
model.Id = $(this).val();
model.Name = $(this).text();;
Array.add(RightPerson, model);
html.append("<option value='" + model.Id + "'>" + model.Name + "</option>");
});
$('#' + listRightPerson, My.ParentElement).append(html.toString());
options.remove();
});
$("#" + cmdPersonLeft, My.ParentElement).click(function () {
var options = $("#" + listRightPerson, My.ParentElement).find("option:selected");
if (options.length == 0) { alert("请选择要移除的人"); return; }
var html = new Sys.StringBuilder();
$(options).each(function () {
var PersonID = $(this).val();
var query = JSLINQ(RightPerson).Where(function (item) {
if (item.Id == PersonID) return item;
});
Array.remove(RightPerson, query.items[0]);
html.append("<option value='" + PersonID + "'>" + $(this).text() + "</option>");
});
$('#' + listLeftPerson, My.ParentElement).append(html.toString());
options.remove();
});
$("#" + cmdPersonRight, My.ParentElement).click(function () {
var options = $("#" + listLeftPerson, My.ParentElement).find("option:selected");
if (options.length == 0) { alert("请选择要添加的人"); return; }
var html = new Sys.StringBuilder();
$(options).each(function () {
var model = new Object();
model.Id = $(this).val();
model.Name = $(this).text();;
Array.add(RightPerson, model);
html.append("<option value='" + model.Id + "'>" + model.Name + "</option>");
});
$('#' + listRightPerson, My.ParentElement).append(html.toString());
options.remove();
});
$("#" + cmdSave, My.ParentElement).click(function () {
OnSave();
$.fancybox.close();
});
$("#" + cmdGet, My.ParentElement).click(function () {
RefshRightPerson();
});
$("#" + listLeftPerson, My.ParentElement).dblclick(function () {
var options = $("#" + listLeftPerson, My.ParentElement).find("option:selected");
if (options.length == 0) { return; }
var html = new Sys.StringBuilder();
$(options).each(function () {
var model = new Object();
model.Id = $(this).val();
model.Name = $(this).text();;
Array.add(RightPerson, model);
html.append("<option value='" + model.Id + "'>" + model.Name + "</option>");
});
$('#' + listRightPerson, My.ParentElement).append(html.toString());
options.remove();
});
$("#" + listRightPerson, My.ParentElement).dblclick(function () {
var options = $("#" + listRightPerson, My.ParentElement).find("option:selected");
if (options.length == 0) { return; }
var html = new Sys.StringBuilder();
$(options).each(function () {
var PersonID = $(this).val();
var query = JSLINQ(RightPerson).Where(function (item) {
if (item.Id == PersonID) return item;
});
Array.remove(RightPerson, query.items[0]);
html.append("<option value='" + query.items[0].Id + "'>" + $(this).text() + "</option>");
});
$('#' + listLeftPerson, My.ParentElement).append(html.toString());
options.remove();
});
}
//#endregion
//#region 初始化
function Init() {
if (My.ParentElement == null) My.ParentElement = $(document.body);
if ($("#" + My.ControlID, My.ParentElement).length > 0) return;
var htmlString = new Sys.StringBuilder();
htmlString.append("<div style='display: none;'>");
htmlString.append("<div id='" + My.ControlID + "' title='选择' style='width: 560px; height:auto ;' >");
htmlString.append("<table class='tableAll' style='width:95%;'>");
htmlString.append("<tr style='display:none;'><td><input id='" + radSelectDept + "' name='selectTea' type='radio' checked='checked' /><label for='" + radSelectDept + "'>按部门选择</label><input id='" + radSelectGroup + "' name='selectTea' type='radio' /><label for='" + radSelectGroup + "'>按教师分组选择</label></td></tr>");
htmlString.append("<tr><td><span id='" + txtDeptTitle + "'>所属楼:</span><select id='" + listDeptName + "' style='width: 150px;'></select>房间:<input id='" + txtName + "' type='text' class='editTextbox' style='width: 100px;' /><input id='" + cmdGet + "' type='button' class='btnClass btnClassFind' value='查询' /></td></tr>");
htmlString.append("<tr><td><table border='0' cellpadding='0' class='tableAll' style='width: 550px;' cellspacing='0' >");
htmlString.append("<tr>");
htmlString.append("<td>待选择门禁:</td>");
htmlString.append("<td>操作</td>");
htmlString.append("<td>已选择门禁:</td>");
htmlString.append("</tr>");
htmlString.append("<tr>");
htmlString.append(" <td><select id='" + listLeftPerson + "' multiple='multiple' style='width: 150px; height: 300px;'></select></td>");
htmlString.append("<td style='width:80px;' align='center' valign='middle' >");
htmlString.append("<a id='" + cmdPersonRight + "' style='color: #333; cursor: pointer;'>右移选中</a>");
htmlString.append("<br /><br />");
htmlString.append("<a id='" + cmdPersonRightAll + "' style='color: #333; cursor: pointer;'>全部右移</a>");
htmlString.append("<br /><br />");
htmlString.append("<a id='" + cmdPersonLeft + "' style='color: #333; cursor: pointer;'>左移取消</a>");
htmlString.append("<br /><br />");
htmlString.append("<a id='" + cmdPersonLeftAll + "' style='color: #333; cursor: pointer;'>全部左移</a>");
htmlString.append(" <td><select id='" + listRightPerson + "' multiple='multiple' style='width: 150px; height: 300px;'></select></td>");
htmlString.append("</tr></table></td></tr>");
//htmlString.append("<div style='height:10px;'></div>");
htmlString.append("<tr><td style='text-align: center'><input id='" + cmdSave + "' class='btnClass btnClassSave' type='button' value='确定' /></td></tr>");
htmlString.append("</div>");
My.ParentElement.append(htmlString.toString());
//$("#divSetList").append(htmlString.toString());
$("#" + My.ControlID, My.ParentElement).find("a").linkbutton();
}
//#endregion
//#region 显示
this.Show = function (ListModel) {
RightPerson = ListModel;
if (RightPerson == null) RightPerson = new Array();
BindDept();
RefshRightPerson();
$.fancybox({
'autoScale': false,
'transitionIn': 'elastic',
'transitionOut': 'elastic',
'href': '#' + My.ControlID,
'onStart': function () {
}
},0);
}
//#endregion
//#region 绑定部门
function BindDept() {
$("#" + txtDeptTitle, My.ParentElement).text("所属楼:");
var param = new Object();
$.ajax({
url: My.ApplicationPath + "/CenterData/CenterService2.asmx/GetListOfficeFloor",
data: Sys.Serialization.JavaScriptSerializer.serialize(param),
async: false,
success: function (data) {
var html = new Sys.StringBuilder();
html.append("<option value='0'>全部</option>");
$(data.d).each(function (i) {
html.append("<option value='" + this.FloorID + "'>" + this.FloorName + "</option>");
});
$('#' + listDeptName, My.ParentElement).html(html.toString());
}
});
}
//#endregion
//#region 绑定组
function BindGroup() {
$("#" + txtDeptTitle, My.ParentElement).text("教师组:");
$.ajax({
url: My.ApplicationPath + "BaseDataService.asmx/GetListUserGroup",
async: false,
success: function (data) {
var html = new Sys.StringBuilder();
html.append("<option value='0'>全部</option>");
$(data.d).each(function (i) {
html.append("<option value='" + this.Id + "'>" + this.Name + "</option>");
});
$('#' + listDeptName, My.ParentElement).html(html.toString());
}
});
}
//#endregion
//#region 读取用户信息
function ReadUserInfo(Persons) {
var param = new Object();
param.RoomName = $("#" + txtName, My.ParentElement).val();
param.FloorID = $("#" + listDeptName, My.ParentElement).val();
var url = My.ApplicationPath + "Door/Door.asmx/GetListRoomDoor";
$.ajax({
url: url,
data: Sys.Serialization.JavaScriptSerializer.serialize(param),
success: function (data) {
var html = new Sys.StringBuilder();
$(data.d).each(function (i) {
html.append("<option value='" + this.Id+ "'>" + this.Name + "</option>");
});
$('#' + listLeftPerson, My.ParentElement).html(html.toString());
}
});
}
//#endregion
//#region 刷新已设置人员
function RefshRightPerson() {
var html = new Sys.StringBuilder();
var html2 = new Sys.StringBuilder();
$(RightPerson).each(function (i) {
html.append("<option value='" + this.Id + "'>" + this.Name + "</option>");
html2.append(this.Id + ",");
});
var Persons = html2.toString();
if (Persons != "") Persons = Persons.substr(0, Persons.length - 1);
$('#' + listRightPerson, My.ParentElement).html(html.toString());
ReadUserInfo(Persons);
}
//#endregion
//#region 点击确定时触发
this.Save = function (handler) {
EventHandler.addHandler('Save', handler);
}
//#endregion
//#region 点击确定时触发
function OnSave() {
var h = EventHandler.getHandler('Save');
if (h) h(RightPerson);
}
//#endregion
}