195 lines
6.7 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
* 版 本 PIT-ADMS V7.0.3 敏捷开发框架
* Copyright (c) 2013-2018 Hexagon PPM
* 创建人:力软-前端开发组
* 日 期2018.04.09
* 描 述:数据列表选择
*/
var dfopid = request('dfopid');
var acceptClick;
var bootstrap = function ($, learun) {
"use strict";
var selectItem;
var gridData = null;
var op = null;
var treeValue = '';
var selectData = {};
var page = {
init: function () {
page.bind();
},
bind: function () {
op = top.lrlayerSelect[dfopid];
var _value = op._value.split(',');
var _text = op._text.split(',');
$.each(_value, function (_index, _item) {
if (_item != "") {
selectData[_item] = _text[_index] || '';
}
});
// 初始化表格
$('#gridtable').jfGrid({
headData: op.grid,
isMultiselect: op.isMultiple,
mainId: op.dataValueId,
multiselectfield:'lrcheck',
onSelectRow: function (data, isCheck) {
page.setSelect(data, isCheck);
}
});
// 设置树形数据
learun.clientdata.getAllAsync('sourceData', {
code: op.treeCode,
callback: function (_data) {
var treeData = $.lrtree.listTotree(_data, op.treeParentId, op.treeValueId, op.treeTextId, op.treeValueId, false);
$('#tree').lrtree({
data: treeData,
nodeClick: function (item) {
treeValue = item.value;
page.search("");
}
});
}
});
// 获取表格数据
learun.clientdata.getAllAsync('sourceData', {
code: op.dataCode,
callback: function (_data) {
//gridData = _data;
gridData = [];
var $list = $('#selected_item_list');
$.each(_data, function (_index, _item) {
if (selectData[_item[op.dataValueId]]) {
selectData[_item[op.dataValueId]] = _item[op.dataTextId];
_item.lrcheck = 1;
var _html = '<div class="item-selected-box" data-value="' + _item[op.dataValueId] + '" >';
_html += '<p><span>' + _item[op.dataTextId] + '</span></p>';
_html += '<span class="item-reomve" title="移除选中项"></span>';
_html += '</div>';
$list.append($(_html));
} else {
_item.lrcheck = 0;
}
gridData.push(_item);
});
$('#gridtable').jfGridSet('refreshdata', _data);
}
});
// 搜索框初始化
$('#txt_keyword').on("keypress", function (e) {
if (event.keyCode == "13") {
var $this = $(this);
var keyword = $this.val();
page.search(keyword);
}
});
$('.input-query').on('click', function () {
var keyword = $('#txt_keyword').val();
page.search(keyword);
});
// 已选项
if (op.isMultiple) {
$('#item_selected_btn').on('click', function () {
$('#form_warp_right').animate({ right: '0px' }, 300);
});
$('#item_selected_btn_close').on('click', function () {
$('#form_warp_right').animate({ right: '-180px' }, 300);
});
}
else {
$('#item_selected_btn').remove();
$('.input-query').css('right','10px');
}
$('.selected-item-list-warp').lrscroll();
var $warp = $('#selected_item_list');
$warp.on('click', function (e) {
var et = e.target || e.srcElement;
var $et = $(et);
if ($et.hasClass('item-reomve')) {
var id = $et.parent().attr('data-value');
$et.parent().remove();
delete selectData[id];
var keyword = $('#txt_keyword').val();
page.search(keyword);
}
});
},
search: function (text) {
if (gridData == null) {
setTimeout(function () {
page.search(text);
}, 100);
}
else {
var _data = [];
$.each(gridData, function (_index, _item) {
if (!!selectData[_item[op.dataValueId]]) {
_item.lrcheck = 1;
}
else {
_item.lrcheck = 0;
}
if (_item[op.dataTreeId] == treeValue || treeValue == "") {
if (text == "" || _item[op.dataTextId].indexOf(text) != -1) {
_data.push(_item);
}
}
});
$('#gridtable').jfGridSet('refreshdata', _data);
}
},
setSelect: function (data, ischeck) {
var $list = $('#selected_item_list');
if (ischeck) {
if ($list.find('[data-value="' + data[op.dataValueId] + '"]').length == 0) {
selectData[data[op.dataValueId]] = data[op.dataTextId];
var _html = '<div class="item-selected-box" data-value="' + data[op.dataValueId] + '" >';
_html += '<p><span>' + data[op.dataTextId] + '</span></p>';
_html += '<span class="item-reomve" title="移除选中项"></span>';
_html += '</div>';
$list.append($(_html));
}
}
else {
$list.find('[data-value="' + data[op.dataValueId] + '"]').remove();
delete selectData[data[op.dataValueId]];
}
}
};
// 保存数据
acceptClick = function (callBack) {
if (op.isMultiple) {
callBack(selectData, dfopid);
} else {
var item = $('#gridtable').jfGridGet('rowdata');
selectData = {};
if (item) {
selectData[item[op.dataValueId]] = item[op.dataTextId];
}
callBack(selectData, dfopid);
}
return true;
};
page.init();
}