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
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(); }
|
|
}
|
|
});
|
|
};
|