'use strict'; var sProgramId = getProgramId(), sEditPrgId = getEditPrgId(), sViewPrgId = sProgramId.replace('_Qry', '_View'), oGrid = null, fnPageInit = function () { var oForm = $('#form_main'), oBaseQueryPm = { pageIndex: 1, pageSize: parent.SysSet.GridRecords || 10, sortField: 'ModifyDate', sortOrder: 'desc' }, /** * 獲取資料 */ fnGet = function (args) { var oQueryPm = getFormSerialize(oForm); $.extend(oQueryPm, oBaseQueryPm, args); oBaseQueryPm.pageIndex = oQueryPm.pageIndex; oQueryPm.ComplaintType = !oQueryPm.ComplaintType ? Enumerable.From($('[name=ComplaintType]:checkbox')).Select("x=>x.value").ToArray().join(',') : oQueryPm.ComplaintType.join(','); oQueryPm.DataType = !oQueryPm.DataType ? Enumerable.From($('[name=DataType]:checkbox')).Select("x=>x.value").ToArray().join(',') : oQueryPm.DataType.join(','); oQueryPm.Roles = parent.UserInfo.roles; console.log("oQueryPm:", oQueryPm); return g_api.ConnectLite(sProgramId, ComFn.GetPage, oQueryPm, function (res) { if (res.RESULT) { var oRes = res.DATA.rel; if (args.Excel) {//匯出 DownLoadFile(oRes); } } }); }, /** * 獲取客訴來源 */ setComplaintSourceDrop = function () { return g_api.ConnectLite(Service.com, ComFn.GetArguments, { OrgID: 'TE', ArgClassID: 'CRMComplaintSource' }, function (res) { if (res.RESULT) { let QueryData = res.DATA.rel; if (QueryData.length > 0) { $('#ComplaintSource').append(createOptions(QueryData, 'id', 'text', true)).select2(); } } }); }, /** * 獲取組團單位 */ fnSetGroupUnit = function () { g_api.ConnectLite('Complaint_Qry', 'GetGroupUnit', {}, function (res) { if (res.RESULT) { var saList = res.DATA.rel; var sOptions = createOptions(saList, 'guid', 'CustomerShotCName'); $('#GroupUnit').html(sOptions).select2(); } }); }, /** * 獲取配合代理 */ fnSetCoopAgent= function () { g_api.ConnectLite('Complaint_Qry', 'GetCoopAgent', {}, function (res) { if (res.RESULT) { var saList = res.DATA.rel; var sOptions = createOptions(saList, 'guid', 'CustomerShotCName'); $('#CoopAgent').html(sOptions).select2(); } }); }, /** * 打開要匯出的pop選擇匯出類別 */ fnOpenPopToExcel = function () { layer.open({ type: 1, title: i18next.t('common.DownLoadDocuments'),// ╠common.DownLoadDocuments⇒下載文檔╣ area: ['300px', '160px'],//寬度 shade: 0.75,//遮罩 shadeClose: true, btn: [i18next.t('common.Cancel')],// ╠common.Cancel⇒取消╣ content: '
\ \
',//╠common.BasicInformation⇒基本資料╣╠common.WenzhongPrjFile⇒文中專案檔╣ success: function (layero, idx) { $('.pop-box :button').click(function () { var sToExcelType = this.id; fnGet({ Excel: true, ExcelType: sToExcelType, Index: idx }); }); transLang(layero); } }); }, /** * ToolBar 按鈕事件 function * @param {Object}inst 按鈕物件對象 * @param {Object} e 事件對象 */ fnButtonHandler = function (inst, e) { var sId = inst.id; switch (sId) { case "Toolbar_Qry": var iNum = $('#PerPageNum').val(); oGrid.pageSize = iNum === '' ? parent.SysSet.GridRecords || 10 : iNum; cacheQueryCondition(); oGrid.openPage(window.bToFirstPage ? 1 : oBaseQueryPm.pageIndex); break; case "Toolbar_Save": break; case "Toolbar_ReAdd": break; case "Toolbar_Clear": clearPageVal(); break; case "Toolbar_Leave": break; case "Toolbar_Add": parent.openPageTab(sEditPrgId, '?Action=Add'); break; case "Toolbar_Upd": break; case "Toolbar_Copy": break; case "Toolbar_Del": // ╠message.ConfirmToDelete⇒確定要刪除嗎 ?╣ ╠common.Tips⇒提示╣ break; case "Toolbar_Exp": if (oGrid.data.length === 0) { showMsg(i18next.t("message.NoDataExport"));// ╠message.NoDataExport⇒沒有資料匯出╣ return false; } fnOpenPopToExcel(); break; default: alert("No handle '" + sId + "'"); break; } }, /** * 頁面初始化 */ init = function () { commonInit({ PrgId: sProgramId, ButtonHandler: fnButtonHandler, SearchBar: true }); $.whenArray([ fnSetUserDrop([ { Select: $('#CreateUser'), Select2: true, ShowId: true } ]), setComplaintSourceDrop(), fnSetCoopAgent(), fnSetGroupUnit(), fnSetUserDrop([ { Select: $('#Applicant'), ShowId: true, Select2: true, } ]) ]).done(function () { reSetQueryPm(sProgramId); var iHeight = $('body').height() - $('.page-title').height() - $('#searchbar').height() - 87; $("#jsGrid").jsGrid({ width: "100%", height: iHeight + "px", autoload: true, pageLoading: true, inserting: false, editing: true, sorting: true, paging: true, pageIndex: window.bToFirstPage ? 1 : window.QueryPageidx || 1, pageSize: parent.SysSet.GridRecords || 10, pageButtonCount: parent.SysSet.GridPages || 15, pagePrevText: "<", pageNextText: ">", pageFirstText: "<<", pageLastText: ">>", rowClass: function (item) { if (item.Status === 'X') { return 'data-void'; } }, onPageChanged: function (args) { cacheQueryCondition(args.pageIndex); }, rowClick: function (args) { if (navigator.userAgent.match(/mobile/i)) { if ('A,C'.indexOf(args.item.DataType) > -1 && args.item.AskTheDummy === parent.UserID) { goToEdit(sEditPrgId, '?Action=Upd&Guid=' + args.item.Guid); } else { goToEdit(sViewPrgId, '?Action=Upd&Guid=' + args.item.Guid); } } }, rowDoubleClick: function (args) { if ('A,C'.indexOf(args.item.DataType) > -1 && args.item.CreateUser === parent.UserID) { parent.openPageTab(sEditPrgId, '?Action=Upd&Guid=' + args.item.Guid); } else { parent.openPageTab(sViewPrgId, '?Action=Upd&Guid=' + args.item.Guid); } }, fields: [ { name: "RowIndex", title: 'common.RowNumber', align: 'center', width: 40, sorting: false }, { name: "ComplaintNumber", title: '客訴編號', width: 60 }, { name: "ComplaintTitle", title: '客訴主旨', width: 200, itemTemplate: function (val, item) { var sVal = val, oStatus = { 'A': i18next.t('common.Draft'),// ╠common.Draft⇒草稿╣ 'B': i18next.t('common.InAudit'),// ╠common.InAudit⇒審核中╣ 'C-O': i18next.t('common.HasReEdited'),// ╠common.HasReEdited⇒已抽單╣ 'D-O': i18next.t('common.HasReturned'),// ╠common.HasReturned⇒已退件╣ 'H-O': i18next.t('common.Hashandle'),// ╠common.Hashandle⇒已經辦╣ 'E': i18next.t('common.ToHandle'),// ╠common.ToHandle⇒待經辦╣ 'X': i18next.t('common.HasVoid')// ╠common.HasVoid⇒已作廢╣ }; sVal += oStatus[item.DataType] ? '(' + oStatus[item.DataType] + ')' : ''; if (item.Important > 1) { for (var i = 0; i < item.Important - 1; i++) { sVal += ' '; } } return $('', { html: sVal }); } }, { name: "ComplaintType", title: '類型', width: 70, align: 'center', itemTemplate: function (val, item) { var sVal = '', ComplaintTypeArray = { '1': '貨損', '2': '延誤', '3': '遺失', '4': '抱怨' }; sVal = ComplaintTypeArray[item.ComplaintType]; return sVal; } }, { name: "ExhibitioShotName_TW", title: '展覽簡稱', width: 200, align: 'center' },//ComplaintTypeArray { name: "CustomerCName", title: '客戶名稱', width: 200, align: 'center' }, { name: "Complainant", title: '申訴人', width: 70, align: 'center' }, { name: "CreateUser", title: 'common.CreateUser', width: 70, align: 'center' }, { name: "CreateDate", title: 'common.CreateDate', width: 90, align: 'center', itemTemplate: function (val, item) { return newDate(val); } } ], controller: { loadData: function (args) { return fnGet(args); }, }, onInit: function (args) { oGrid = args.grid; } }); }) }; init(); }; require(['base', 'select2', 'jsgrid', 'util'], fnPageInit);