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.
455 lines
22 KiB
455 lines
22 KiB
'use strict';
|
|
var sProgramId = getProgramId(),
|
|
allMembers = [],
|
|
/**
|
|
* 目的:設置公司成員list
|
|
* @param:{Array} list 人員資料
|
|
* @param:{String} flag 是否在線
|
|
* @return:{String} sHtml 人員列表html
|
|
*/
|
|
fnSetMemberList = function (list, flag) {
|
|
var sHtml = '';
|
|
$.each(list, function (i, item) {
|
|
var html = '<div class="team-member">'
|
|
+ '<div id="team-' + item.MemberID.replace('.', '') + '" class="online ' + (flag ? 'on' : 'off') + '"></div>'
|
|
+ '<img src="/Controller.ashx?action=getimg&folder=Members&id=' + item.MemberPic + '&orgid=' + parent.UserInfo.OrgID + '" width="40" height="40">'
|
|
+ '<span class="member-name">' + item.MemberID + '(' + item.MemberName + ')</span>'
|
|
+ '</div>';
|
|
sHtml += html;
|
|
});
|
|
return sHtml;
|
|
},
|
|
/**
|
|
* 目的:設置在線成員
|
|
*/
|
|
fnSetUserOnline = function () {
|
|
var allOnlineUsers = parent.online_Users,
|
|
onlines = [],
|
|
offlines = [],
|
|
sHtml = '';
|
|
$.grep(allMembers, function (user) {
|
|
var current = $.grep(allOnlineUsers, function (item) { return item.UserId === user.MemberID; });
|
|
if (current.length > 0) {
|
|
onlines.push(user);
|
|
}
|
|
else {
|
|
offlines.push(user);
|
|
}
|
|
});
|
|
sHtml += fnSetMemberList(onlines, true);
|
|
sHtml += fnSetMemberList(offlines, false);
|
|
$(".team").html(sHtml);
|
|
},
|
|
fnPageInit = function () {
|
|
var oGrid1 = null,
|
|
oGrid2 = null,
|
|
sBackgroundImg = parent.OrgID + parent.UserID,
|
|
sBackgroundImgFileId = '',
|
|
Ann_imer = null,
|
|
/*
|
|
* 獲取背景圖片
|
|
* @return:{Object} ajax 對象
|
|
*/
|
|
fnGetBackgroundImg = function () {
|
|
return CallAjax(ComFn.W_Com, ComFn.GetOne, {
|
|
Type: '',
|
|
Params: {
|
|
files: {
|
|
ParentID: sBackgroundImg,
|
|
OrgID: parent.OrgID
|
|
}
|
|
}
|
|
}, function (res) {
|
|
if (res.d) {
|
|
var oData = $.parseJSON(res.d);
|
|
$('.profile-cover').css({ 'background': "url('../../" + (oData.FilePath || '').replace(/\\/g, "\/") + "')" });
|
|
sBackgroundImgFileId = oData.FileID;
|
|
}
|
|
});
|
|
},
|
|
/*
|
|
* 設定背景
|
|
*/
|
|
fnBgimgfile = function () {
|
|
$('#bgimgfile').val('').off('change').on('change', function () {
|
|
var sLowerName = this.value.toLowerCase();
|
|
if (sLowerName.indexOf('.jpg') > -1 || sLowerName.indexOf('.jpeg') > -1 || sLowerName.indexOf('.png') > -1 || sLowerName.indexOf('.gif') > -1 || sLowerName.indexOf('.bmp') > -1) {
|
|
var sFileName = this.value;
|
|
DelFile(sBackgroundImgFileId, '', false).done(function () {
|
|
$.ajaxFileUpload({
|
|
url: '/Controller.ashx?action=upload&source=Members&userid=' + parent.UserID + '&orgid=' + parent.OrgID + '&parentid=' + sBackgroundImg,
|
|
secureuri: false,
|
|
fileElementId: 'bgimgfile',
|
|
success: function (el, status, data) {
|
|
var oData = $.parseJSON(data.responseText)[0];
|
|
sBackgroundImgFileId = oData.FileID;
|
|
$('.profile-cover').css({ 'background': "url('../../" + oData.FilePath.replace(/\\/g, "\/") + "')" });
|
|
},
|
|
error: function (data, status, e) {
|
|
showMsg(i18next.t("message.ProgressError"), 'error'); // ╠message.ProgressError⇒資料處理異常╣
|
|
}
|
|
});
|
|
});
|
|
}
|
|
else {
|
|
showMsg(i18next.t("message.FileTypeError"), 'error'); // ╠message.FileTypeError⇒文件格式錯誤╣
|
|
}
|
|
}).click();
|
|
},
|
|
/**
|
|
* 目的:設置個人資料明細
|
|
*/
|
|
fnSetUserInfo = function () {
|
|
$('#user_img').attr('src', '/Controller.ashx?action=getimg&folder=Members&id=' + parent.UserInfo.MemberPic + '&orgid=' + parent.UserInfo.OrgID);
|
|
$('.user_name').text(parent.UserInfo.MemberName);
|
|
$('.user_jobtitle').text(parent.UserInfo.JobtitleName);
|
|
$('.user_address').text(parent.UserInfo.Address);
|
|
$('.user_mail').text(parent.UserInfo.Email);
|
|
fnGetBackgroundImg();
|
|
$('.profile-cover').on('click', function () {
|
|
fnBgimgfile();
|
|
});
|
|
$('#user_img').on('click', function (e) {
|
|
e.stopPropagation();
|
|
});
|
|
},
|
|
/**
|
|
* 公告實現輪播
|
|
*/
|
|
fnAnnouncementTimer = function () {
|
|
if ($('.announcement ul').find('li').length > 1) {
|
|
var iH = $('.announcement ul li:first').height();
|
|
$('.announcement ul').animate({
|
|
marginTop: -iH - 13
|
|
}, 1000, function () {
|
|
$(this).css({ marginTop: -8 }).find("li:first,hr:first").appendTo(this);
|
|
});
|
|
}
|
|
},
|
|
/**
|
|
* 目的:加載公告
|
|
*/
|
|
fnGetAnnouncement = function () {
|
|
if (!parent.UserInfo.MemberID) { return; }
|
|
g_api.ConnectLite(Service.com, 'GetAnnlist', {}, function (res) {
|
|
if (res.RESULT) {
|
|
var saData = res.DATA.rel,
|
|
sHtml = '';
|
|
if (saData.length > 0) {
|
|
$.each(saData, function (idx, item) {
|
|
sHtml += '<li><a class="a-url" id="' + item.AnnouncementID + '" style="color:' + (item.FontColor || '#000') + '">' + item.Title + '</a></li><hr>';
|
|
});
|
|
$('.announcement ul').html(sHtml).find('a').on('click', function () {
|
|
var sId = this.id;
|
|
//parent.openPageTab('Announcement_Upd', '?Action=Upd&AnnouncementID=' + sId);
|
|
parent.fnOpenAnn(sId, false);;
|
|
});
|
|
$('.announcement-get-more a').on('click', function () {
|
|
parent.openPageTab('AnnouncementList_Qry');
|
|
});
|
|
var h1 = $('.announcement').height();
|
|
var h2 = $('.announcement ul').height();
|
|
|
|
if (h2 > h1 + 5) {
|
|
Ann_imer = setInterval(fnAnnouncementTimer, 3000);
|
|
$('.announcement ul li').mousemove(function () {
|
|
clearInterval(Ann_imer);
|
|
}).mouseout(function () {
|
|
Ann_imer = setInterval(fnAnnouncementTimer, 3000);
|
|
});
|
|
}
|
|
}
|
|
else {
|
|
$('.announcement-get-more').hide();
|
|
}
|
|
}
|
|
});
|
|
},
|
|
/**
|
|
* 目的:加載請假資訊
|
|
*/
|
|
fnGetLeaves = function () {
|
|
g_api.ConnectLite(Service.eip, 'GetLeavelist', {}, function (res) {
|
|
if (res.RESULT) {
|
|
var saData = res.DATA.rel,
|
|
sHtml_Today = '',
|
|
sHtml_Tomorrow = '',
|
|
rToday = new Date(newDate(null, true)),
|
|
rTomorrow = new Date(newDate(null, true)).dateAdd('d', 1),
|
|
rAfterTomorrow = new Date(newDate(null, true)).dateAdd('d', 2),
|
|
saToday = $.grep(saData, function (cur) {
|
|
return new Date(cur.Info.StartDate) <= rTomorrow && new Date(cur.Info.EndDate) >= rToday;
|
|
}),
|
|
saTomorrow = $.grep(saData, function (cur) {
|
|
return new Date(cur.Info.StartDate) <= rAfterTomorrow && new Date(cur.Info.EndDate) >= rTomorrow;
|
|
});
|
|
sHtml_Today = $('#temp_leave').render(saToday);
|
|
sHtml_Tomorrow = $('#temp_leave').render(saTomorrow);
|
|
$('.today').html(sHtml_Today);
|
|
$('.tomorrow').html(sHtml_Tomorrow);
|
|
$('#TodayLeavesCount').html($('<a/>', { html: '(' + saToday.length + ')' }));
|
|
$('#TomorrowLeavesCount').html($('<a/>', { html: '(' + saTomorrow.length + ')' }));
|
|
if (parent.UserInfo.roles.toLowerCase().indexOf('admin') > -1) {
|
|
$('span.a-url').on('click', function () {
|
|
var sId = $(this).attr('data-id'),
|
|
sUserid = $(this).attr('data-userid'),
|
|
sStatus = $(this).attr('data-status');
|
|
if ('A,C'.indexOf(sStatus) > -1 && sUserid === parent.UserID) {
|
|
parent.openPageTab('Leave_Upd', '?Action=Upd&Guid=' + sId);
|
|
}
|
|
else {
|
|
parent.openPageTab('Leave_View', '?Action=Upd&Guid=' + sId);
|
|
}
|
|
});
|
|
}
|
|
}
|
|
});
|
|
},
|
|
/**
|
|
* 目的:加載待處理事項資料(非EIP)
|
|
* @param {Object} args grid參數
|
|
* @return {Function} ajax 物件
|
|
*/
|
|
fnGetTasks_BILL = function (args) {
|
|
var oQueryPm = {};
|
|
$.extend(oQueryPm, args);
|
|
oQueryPm.IsEIP = false;
|
|
oQueryPm.pageIndex = oQueryPm.pageIndex || 1;
|
|
oQueryPm.pageSize = oQueryPm.pageSize || 10;
|
|
oQueryPm.sortField = oQueryPm.sortField || 'CreateDate';
|
|
oQueryPm.sortOrder = oQueryPm.sortOrder || 'desc';
|
|
|
|
return g_api.ConnectLite('Task_Qry', ComFn.GetPage, oQueryPm, function (res) {
|
|
if (res.RESULT) {
|
|
var oRes = res.DATA.rel;
|
|
$('#TaskListCount').html($('<a/>', { html: '(' + oRes.Total + ')' }));
|
|
}
|
|
});
|
|
},
|
|
/**
|
|
* 目的:加載待處理事項資料(EIP)
|
|
* @param {Object} args grid參數
|
|
* @return {Function} ajax 物件
|
|
*/
|
|
fnGetTasks_EIP = function (args) {
|
|
var oQueryPm = {};
|
|
$.extend(oQueryPm, args);
|
|
oQueryPm.IsEIP = true;
|
|
oQueryPm.pageIndex = oQueryPm.pageIndex || 1;
|
|
oQueryPm.pageSize = oQueryPm.pageSize || 10;
|
|
oQueryPm.sortField = oQueryPm.sortField || 'CreateDate';
|
|
oQueryPm.sortOrder = oQueryPm.sortOrder || 'desc';
|
|
|
|
return g_api.ConnectLite('Task_Qry', ComFn.GetPage, oQueryPm, function (res) {
|
|
if (res.RESULT) {
|
|
var oRes = res.DATA.rel;
|
|
$('#EipListCount').html($('<a/>', { html: '(' + oRes.Total + ')' }));
|
|
}
|
|
});
|
|
},
|
|
/**
|
|
* 目的:初始化代辦Grid
|
|
*/
|
|
fnInitGrid = function () {
|
|
$("#jsGrid_Bill").jsGrid({
|
|
width: "100%",
|
|
height: "auto",
|
|
autoload: true,
|
|
pageLoading: true,
|
|
inserting: false,
|
|
editing: true,
|
|
sorting: true,
|
|
paging: true,
|
|
pageIndex: 1,
|
|
pageSize: 10,
|
|
pageButtonCount: parent.SysSet.GridPages || 15,
|
|
pagePrevText: "<",
|
|
pageNextText: ">",
|
|
pageFirstText: "<<",
|
|
pageLastText: ">>",
|
|
fields: [
|
|
{ name: "EventNo", title: 'common.EventNo', align: 'center', width: 80 },// ╠common.EventNo⇒事件編號╣
|
|
{ name: "SourceFromName", title: 'common.SourceFromName', width: 70 },
|
|
{
|
|
name: "EventName", title: 'common.Purpose', width: 250, itemTemplate: function (value, item) {
|
|
var oGoPage = $('<a>', {
|
|
class: 'a-url',
|
|
html: value,
|
|
click: function () {
|
|
var sEditPrgId = item.SourceFrom.replace('_Qry', '_Upd');
|
|
if (navigator.userAgent.match(/mobile/i)) {
|
|
goToEdit(sEditPrgId, item.Params);
|
|
}
|
|
else {
|
|
parent.openPageTab(sEditPrgId, item.Params);
|
|
}
|
|
}
|
|
});
|
|
return [oGoPage, item.EIP_Status === 'E' ? '<span style="color:#DF5F09">(' + i18next.t('common.ToHandle') + ')</span>' : ''];//╠common.ToHandle⇒待經辦╣
|
|
}
|
|
},
|
|
{ name: "CreateUserName", title: 'common.Publisher', width: 70 },//╠common.Publisher⇒發佈人╣
|
|
{
|
|
name: "Status", title: 'common.Status', width: 60, itemTemplate: function (value) {
|
|
var oStatus = { U: '未審核', G: '審核中', D: '已審核(待確認)', O: '已審核' };
|
|
return oStatus[value] || '未審核';
|
|
}
|
|
},
|
|
{//╠common.PublishDate⇒發佈時間╣
|
|
name: "CreateDate", title: 'common.PublishDate', align: 'center', width: 110, itemTemplate: function (value) {
|
|
return newDate(value);
|
|
}
|
|
}
|
|
],
|
|
controller: {
|
|
loadData: function (args) {
|
|
return fnGetTasks_BILL(args);
|
|
},
|
|
},
|
|
onDataLoaded: function (args) {
|
|
setTimeout(function () {
|
|
var oPage = $('#PerPageNum');
|
|
oPage.after(oPage.val()).remove();
|
|
}, 100);
|
|
oGrid1 = args.grid;
|
|
}
|
|
});
|
|
$("#jsGrid_Eip").jsGrid({
|
|
width: "100%",
|
|
height: "auto",
|
|
autoload: true,
|
|
pageLoading: true,
|
|
inserting: false,
|
|
editing: true,
|
|
sorting: true,
|
|
paging: true,
|
|
pageIndex: 1,
|
|
pageSize: 10,
|
|
pageButtonCount: parent.SysSet.GridPages || 15,
|
|
pagePrevText: "<",
|
|
pageNextText: ">",
|
|
pageFirstText: "<<",
|
|
pageLastText: ">>",
|
|
fields: [
|
|
{ name: "EventNo", title: 'common.EventNo', align: 'center', width: 80 },
|
|
{ name: "SourceFromName", title: 'common.SourceFromName', width: 70 },
|
|
{
|
|
name: "EventName", title: 'common.Purpose', width: 250, itemTemplate: function (value, item) {// ╠common.Purpose⇒主旨╣
|
|
var oGoPage = $('<a>', {
|
|
class: 'a-url',
|
|
html: value,
|
|
click: function () {
|
|
var sEditPrgId = item.SourceFrom.replace('_Qry', '_Upd');
|
|
if (navigator.userAgent.match(/mobile/i)) {
|
|
goToEdit(sEditPrgId, item.Params);
|
|
}
|
|
else {
|
|
parent.openPageTab(sEditPrgId, item.Params);
|
|
}
|
|
}
|
|
});
|
|
return [oGoPage, item.EIP_Status === 'E' ? '<span style="color:#DF5F09">(' + i18next.t('common.ToHandle') + ')</span>' : ''];//╠common.ToHandle⇒待經辦╣
|
|
}
|
|
},
|
|
{ name: "CreateUserName", title: 'common.Publisher', width: 70 },//╠common.Publisher⇒發文者╣
|
|
{ name: "ProgressShow", title: 'common.Progress', align: 'center', width: 50 },//╠common.Progress⇒進度╣
|
|
{
|
|
name: "Status", title: 'common.Status', width: 60, itemTemplate: function (value) {//╠common.Status⇒狀態╣
|
|
var oStatus = { U: '未審核', G: '審核中', D: '已審核(待確認)', O: '已審核' };
|
|
return oStatus[value] || '未審核';
|
|
}
|
|
},
|
|
{
|
|
name: "CreateDate", title: 'common.PublishDate', align: 'center', width: 110, itemTemplate: function (value) {
|
|
return newDate(value);
|
|
}
|
|
}
|
|
],
|
|
controller: {
|
|
loadData: function (args) {
|
|
return fnGetTasks_EIP(args);
|
|
},
|
|
},
|
|
onDataLoaded: function (args) {
|
|
setTimeout(function () {
|
|
var oPage = $('#PerPageNum');
|
|
oPage.after(oPage.val()).remove();
|
|
}, 100);
|
|
oGrid2 = args.grid;
|
|
}
|
|
});
|
|
},
|
|
/**
|
|
* 目的:頁面初始化
|
|
*/
|
|
init = function () {
|
|
var myHelpers = {
|
|
setDateRange: function (date1, date2) {
|
|
var r1 = newDate(date1, true),
|
|
r2 = newDate(date2, true);
|
|
return r1 + '~' + r2;
|
|
},
|
|
setFilePath: function (val, orgid) {
|
|
return '/Controller.ashx?action=getimg&folder=Members&id=' + val + '&orgid=' + orgid;
|
|
},
|
|
setLeaveTitle: function (info) {
|
|
return $('<span/>', {
|
|
class: 'a-url',
|
|
html: info.KeyNote,
|
|
'data-id': info.Guid,
|
|
'data-userid': info.AskTheDummy,
|
|
'data-status': info.Status
|
|
})[0].outerHTML;
|
|
}
|
|
};
|
|
$.views.helpers(myHelpers);
|
|
|
|
fnSetUserInfo(); //設置個人資料明細
|
|
fnInitGrid()//初始化代辦Grid
|
|
fnSetUserDrop([
|
|
{
|
|
NotUserIDs: parent.UserID,
|
|
Action: 'add',
|
|
CallBack: function (data) {
|
|
allMembers = data;
|
|
fnSetUserOnline();
|
|
slimScroll();
|
|
}
|
|
}
|
|
]);//加載公司成員
|
|
fnGetAnnouncement();//加載公告
|
|
fnGetLeaves();//加載請假資訊
|
|
goTop();//置頂控件
|
|
|
|
onresize();
|
|
|
|
$('.panel-reload').on('click', function () {
|
|
switch (this.id) {
|
|
case 'eip_box':
|
|
{
|
|
//debugger;
|
|
oGrid2.pageIndex = 1;
|
|
oGrid2.loadData();
|
|
}
|
|
break;
|
|
case 'bill_box':
|
|
{
|
|
oGrid1.pageIndex = 1;
|
|
oGrid1.loadData();
|
|
}
|
|
break;
|
|
case 'ann_box':
|
|
fnGetAnnouncement();//加載公告
|
|
break;
|
|
case 'leave_box1':
|
|
case 'leave_box2':
|
|
fnGetLeaves();//加載請假資訊
|
|
break;
|
|
}
|
|
});
|
|
};
|
|
|
|
init();
|
|
};
|
|
|
|
require(['base', 'jsgrid', 'ajaxfile', 'util'], fnPageInit);
|