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

481 lines
20 KiB

'use strict';
var
/**
* 設定部門主管下拉選單
* @param {Object} handle 當前控件
* @param {String} deptid 部門id
* @return {Object} Ajax 物件
*/
fnSetDeptDrop = function (handle, deptid) {
var oParm = {};
oParm.OrgID = parent.OrgID;
oParm.DeptID = deptid || '';
return g_api.ConnectLite(Service.sys, 'GetDepartmentList', oParm,
function (res) {
if (res.RESULT) {
var saData = res.DATA.rel;
handle.html(createOptions(saData, 'DepartmentID', 'AccountNameSort', true));
}
});
},
/**
* 設定部門主管下拉選單
* @param {Object} handle 當前控件
* @param {String} deptid 部門id
* @return {Object} Ajax 物件
*/
fnSetDeptDropWithLimtedDeptId = function (handle) {
var oParm = {};
oParm.OrgID = parent.OrgID;
oParm.DeptID = '';
return g_api.ConnectLite(Service.sys, 'GetDepartmentListNoVoid', oParm,
function (res) {
if (res.RESULT) {
//debugger;
var saData = res.DATA.rel;
var DepId = parent.UserInfo.DepartmentID;
var AdminUser = parent.UserInfo.roles.toLowerCase().indexOf('admin') > -1;
if (!AdminUser) {
saData = saData.filter(c => c.ParentDepartmentID === DepId || c.DepartmentID === DepId || c.DepartmentID1 === DepId);
}
handle.html(createOptions(saData, 'DepartmentID', 'AccountNameSort', true));
if (!AdminUser) {
$(handle.selector + ' option:first').remove();
}
}
});
},
/**
* 設定人員下拉選單
* @param {Object} drops 當前控件
* @return {Object} Ajax 物件
*/
fnSetUserDrop = function (drops) {
var saPost = [];
$.each(drops, function (index, drop) {
drop.Effective = 'Y';
//if (drop.Action && drop.Action.toLowerCase() === 'add') {
// drop.Effective = 'Y';
//}
saPost.push(g_api.ConnectLite(Service.com, ComFn.GetUserList,
{
DepartmentID: drop.DepartmentID || '',
MemberID: drop.MemberID || '',
UserIDs: drop.UserIDs || '',
NotUserIDs: drop.NotUserIDs || '',
ServiceCode: drop.ServiceCode || '',
Effective: drop.Effective || ''
},
function (res) {
if (res.RESULT) {
var saRes = res.DATA.rel;
if (drop.Select) {
drop.Select.html(createOptions(saRes, 'MemberID', 'MemberName', drop.ShowId || false));
if (drop.DefultVal) {
drop.Select.val(drop.DefultVal);
}
if (drop.Select2) {
drop.Select.each(function () {
$(this).select2();
$(this).next().after($(this));
});
}
}
if (drop.CallBack && typeof drop.CallBack === 'function') {
drop.CallBack(saRes);
}
}
}));
});
return $.whenArray(saPost);
},
/**
* 設定下拉選單(參數設定)
* @param {Array} drops 下拉配置
* @return {Object} Ajax 物件
*/
fnSetArgDrop = function (drops) {
var saPost = [];
$.each(drops, function (index, drop) {
if (drop.ArgClassID) {
saPost.push(g_api.ConnectLite(Service.com, ComFn.GetArguments,
{
ArgClassID: drop.ArgClassID,
ParentID: drop.ParentID || '',
ArgIDs: drop.Ids || '',
LevelOfArgument: drop.Level || -1,
OrgID: drop.OrgID || ''
},
function (res) {
if (res.RESULT) {
var saRes = res.DATA.rel;
if (drop.Select) {
drop.Select.html(createOptions(saRes, 'id', 'text', drop.ShowId || false))
.on('change', function () {
if (drop.OnChange && typeof drop.OnChange === 'function') {
drop.OnChange(this.value);
}
});
if (drop.DefultVal) {
drop.Select.val(drop.DefultVal);
}
if (drop.Select2) {
drop.Select.each(function () {
$(this).select2();
$(this).next().after($(this));
});
}
}
if (drop.CallBack && typeof drop.CallBack === 'function') {
drop.CallBack(saRes);
}
}
}));
}
});
return $.whenArray(saPost);
},
/**
* 設定展覽下拉選單
* @param {Object} drop 當前控件
* @return {Object} Ajax 物件
*/
fnSetEpoDrop = function (drop) {
return g_api.ConnectLite('Exhibition_Upd', 'GetExhibitions',
{
SN: drop.SN || ''
},
function (res) {
if (res.RESULT) {
var saRes = res.DATA.rel;
if (drop.Select) {
drop.Select.html(createOptions(saRes, drop.IdName || 'SN', drop.TextName || 'ExhibitioFullName', drop.ShowId || false));
if (drop.DefultVal) {
drop.Select.val(drop.DefultVal);
}
if (drop.Select2) {
drop.Select.each(function () {
$(this).select2();
$(this).next().after($(this));
});
}
}
if (drop.CallBack && typeof drop.CallBack === 'function') {
drop.CallBack(saRes);
}
}
});
},
/*
* 設定展覽選單(ExhibitionCode)
*/
fnSetEpoDropWithExhibitionCode = function (drop) {
return g_api.ConnectLite('BillsReport', 'GetProjects', {}, function (res) {
if (res.RESULT) {
var saRes = res.DATA.rel;
if (drop.Select) {
drop.Select.html(createOptions(saRes, drop.IdName || 'id', drop.TextName || 'text', drop.ShowId || false));
if (drop.DefultVal) {
drop.Select.val(drop.DefultVal);
}
if (drop.Select2) {
drop.Select.each(function () {
$(this).select2();
$(this).next().after($(this));
});
}
}
if (drop.CallBack && typeof drop.CallBack === 'function') {
drop.CallBack(saRes);
}
}
});
},
/*
* 設定客戶資料(customer_guid)
*/
fnSetCustomerWithGuid = function (drop) {
return g_api.ConnectLite(Service.sys, 'GetCustomerlist', {}, function (res) {
if (res.RESULT) {
var saRes = res.DATA.rel;
if (drop.Select) {
drop.Select.html(createOptions(saRes, 'id', 'text', drop.ShowId || false));
if (drop.DefultVal) {
drop.Select.val(drop.DefultVal);
}
if (drop.Select2) {
drop.Select.each(function () {
$(this).select2();
$(this).next().after($(this));
});
}
}
if (drop.CallBack && typeof drop.CallBack === 'function') {
drop.CallBack(saRes);
}
}
});
},
/**
* 設定展覽下拉選單
* @param {Object} o 參數
* @return {Object} Ajax 物件
*/
fnGetOfficeTempls = function (o) {
return g_api.ConnectLite(Service.com, 'GetOfficeTempls',
{
TemplID: o.TemplID || ''
},
function (res) {
if (res.RESULT) {
var saRes = res.DATA.rel;
if (o.CallBack && typeof o.CallBack === 'function') {
o.CallBack(saRes);
}
}
});
},
/**
* 開啟單選選單Pop
* @param {Object} option 配置
*/
oPenPops = function (option) {
var oGrid = null,
oCurItem = null,
sContent = '',
sGrid = '<div class="row popsrow"><div class="shadowbox"><div id="PopsGrid"></div></div></div>',
saRow = [];
$.each(option.SearchFields, function (index, item) {
var oLabel = $('<Label />', { 'class': 'col-sm-2 w20p control-label' }),
oSpan = $('<span />', { 'data-i18n': item.i18nkey }),
oInputDiv = $('<div />', { 'class': 'col-sm-3' });
switch (item.type) {
case 'text':
$('<input />', { 'type': 'text', 'id': item.id, 'name': item.id, 'maxlength': '50', 'class': 'form-control w100p' }).appendTo(oInputDiv);
break;
case 'select':
$('<select />', { 'id': item.id, 'name': item.id, 'class': 'form-control w100p', 'html': item.html }).appendTo(oInputDiv);
break;
}
saRow.push(oLabel.append(oSpan, ':'));
saRow.push(oInputDiv);
if (saRow.length === 4 || option.SearchFields.length === index + 1) {
var oSearchDiv = $('<div />', { 'class': 'row popsrow' });
oSearchDiv.append(saRow);
sContent += oSearchDiv[0].outerHTML;
saRow = [];
}
});
sContent += sGrid;
layer.open({
type: 1,
title: option.Title || i18next.t('common.PopsMenu'),//╠common.PopsMenu⇒單選選單╣
shadeClose: false,
shade: 0.5,
maxmin: true, //开启最大化最小化按钮
area: ['800px', option.SearchFields.length > 2 ? '615px' : '565px'],
content: sContent,
success: function (layero, index) {
$("#PopsGrid").jsGrid({
width: "98%",
height: "390px",
autoload: true,
pageLoading: true,
sorting: true,
paging: true,
pageIndex: 1,
pageSize: option.PageSize || 10,
pagePrevText: "<",
pageNextText: ">",
pageFirstText: "<<",
pageLastText: ">>",
pageButtonCount: 10,
rowClick: function (args) {
oCurItem = args.item;
},
rowDoubleClick: function (args) {
oCurItem = args.item;
option.Callback(oCurItem);
layer.close(index);
},
fields: option.Fields,
controller: {
loadData: function (args) {
return option.Get(args);
}
},
onInit: function (args) {
oGrid = args.grid;
}
});
layero.find('.layui-layer-btn1').css({ 'border-color': '#4898d5', 'background-color': '#1E9FFF', 'color': '#fff' });
if (typeof option.PopSuccessCallback === 'function') {
option.PopSuccessCallback();
}
},
btn: [i18next.t('common.Toolbar_Qry'), i18next.t('common.Confirm'), i18next.t('common.Cancel')],//╠common.Toolbar_Qry⇒查詢╣ ╠common.Confirm⇒確定╣ ╠common.Cancel⇒取消╣
yes: function (index, layero) {
var iNum = $('.layui-layer #PerPageNum').val();
oGrid.pageSize = iNum === '' ? 10 : iNum;
oGrid.openPage(1);
oCurItem = null;
return false;
},
btn2: function (index, layero) {
if (typeof option.Callback === 'function') { option.Callback(oCurItem || {}); }
layer.close(index);
},
btn3: function (index) {
if (typeof option.CancelCallback === 'function') { option.CancelCallback(); }
},
cancel: function () {
if (typeof option.CancelCallback === 'function') { option.CancelCallback(); }
}
});
},
/**
* 開啟複選選單Pop
* @param {Object} option 配置
*/
oPenPopm = function (option) {
var oGrid = null,
sContent = '',
sGrid = '<div class="row popsrow"><div class="shadowbox"><div id="PopmGrid"></div></div></div>',
saRow = [],
saRetn = [],
saFields = [{
width: 50, sorting: false, align: "center",
headerTemplate: function () {
return [$("<input>", {
id: 'SelectAll',
type: 'checkbox', click: function () {
if (this.checked) {
$("#PopmGrid").find('[type=checkbox]').each(function () {
this.checked = true;
});
saRetn = oGrid.data;
}
else {
$("#PopmGrid").find('[type=checkbox]').each(function () {
this.checked = false;
});
saRetn = [];
}
}
}), $('<label />', { for: 'SelectAll', 'data-i18n': 'common.SelectAll' })];
},
itemTemplate: function (value, item) {
return $("<input>", {
type: 'checkbox', click: function (e) {
e.stopPropagation();
if (this.checked) {
saRetn.push(item);
}
else {
var saNewList = [];
$.each(saRetn, function (idx, data) {
if (item.RowIndex !== data.RowIndex) {
saNewList.push(data);
}
});
saRetn = saNewList;
$('#PopmGrid').find('#SelectAll')[0].checked = false;
}
}
});
}
}];
$.each(option.SearchFields, function (index, item) {
var oLabel = $('<Label />', { 'class': 'col-sm-2 w20p control-label' }),
oSpan = $('<span />', { 'data-i18n': item.i18nkey }),
oInputDiv = $('<div />', { 'class': 'col-sm-3' });
switch (item.type) {
case 'text':
$('<input />', { 'type': 'text', 'id': item.id, 'name': item.id, 'maxlength': '50', 'class': 'form-control w100p' }).appendTo(oInputDiv);
break;
case 'select':
$('<select />', { 'id': item.id, 'name': item.id, 'class': 'form-control w100p', 'html': item.html }).appendTo(oInputDiv);
break;
}
saRow.push(oLabel.append(oSpan, ':'));
saRow.push(oInputDiv);
if (saRow.length === 4 || option.SearchFields.length === index + 1) {
var oSearchDiv = $('<div />', { 'class': 'row popsrow' });
oSearchDiv.append(saRow);
sContent += oSearchDiv[0].outerHTML;
saRow = [];
}
});
sContent += sGrid;
saFields.push.apply(saFields, option.Fields);
layer.open({
type: 1,
title: option.Title || i18next.t('common.PopmMenu'),//╠common.PopmMenu⇒複選選單╣
shadeClose: false,
shade: 0.5,
maxmin: true, //开启最大化最小化按钮
area: [option.Width || '800px', option.SearchFields.length > 2 ? '615px' : '565px'],
content: (option.ContentPlush || '') + sContent,
success: function (layero, index) {
$("#PopmGrid").jsGrid({
width: "98%",
height: "400px",
autoload: true,
pageLoading: true,
sorting: true,
paging: true,
pageIndex: 1,
pageSize: option.PageSize || 10,
pagePrevText: "<",
pageNextText: ">",
pageFirstText: "<<",
pageLastText: ">>",
pageButtonCount: 10,
rowClick: function (args) {
$(args.event.currentTarget).find('[type=checkbox]').click();
},
fields: saFields,
controller: {
loadData: function (args) {
return option.Get(args);
}
},
onInit: function (args) {
oGrid = args.grid;
}
});
layero.find('.layui-layer-btn1').css({ 'border-color': '#4898d5', 'background-color': '#1E9FFF', 'color': '#fff' });
if (typeof option.PopSuccessCallback === 'function') {
option.PopSuccessCallback();
}
},
btn: [i18next.t('common.Toolbar_Qry'), i18next.t('common.Confirm'), i18next.t('common.Cancel')],//╠common.Toolbar_Qry⇒查詢╣ ╠common.Confirm⇒確定╣ ╠common.Cancel⇒取消╣
yes: function (index, layero) {
var iNum = $('.layui-layer #PerPageNum').val();
oGrid.pageSize = iNum === '' ? 10 : iNum;
oGrid.openPage(1);
saRetn = [];
$('#PopmGrid').find('#SelectAll')[0].checked = false;
return false;
},
btn2: function (index, layero) {
if (typeof option.Callback === 'function') { option.Callback(saRetn); }
layer.close(index);
},
btn3: function (index) {
if (typeof option.CancelCallback === 'function') { option.CancelCallback(); }
},
cancel: function () {
if (typeof option.CancelCallback === 'function') { option.CancelCallback(); }
}
});
};