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.
 
 
 
 
 

509 lines
24 KiB

'use strict';
var fnPageInit = function () {
var canDo = new CanDo({
/**
* 修改完后是否跳轉
*/
updateGo: false,
/**
* 須初始化的UEEditer 的物件ID集合
*/
ueEditorIds: ['Introduction', 'Introduction_CN', 'Introduction_EN', 'MissionAndVision_TW', 'MissionAndVision_CN', 'MissionAndVision_EN', 'MissionAndVision_EN', 'ServiceTitle', 'ServiceTitle_CN', 'ServiceTitle_EN', 'VideoDescription', 'VideoDescription_CN', 'VideoDescription_EN', 'SettingInfo'],
/**
* 查詢當前資料
* @param {Object} pargs CanDo 對象
* @param {Object} data 當前資料實體
*/
getOneBack: function (pargs, data) {
pargs._setFormVal(data);
pargs._setUEValues(data);
fnGetUploadFiles(data.WebsiteLgoId, fnUpload, $('#WebsiteLogoId'));
fnGetUploadFiles(data.PicShowId, fnUpload, $('#PicShowId'));
fnGetUploadFiles(data.PicShowId_CN, fnUpload, $('#PicShowId_CN'));
fnGetUploadFiles(data.PicShowId_EN, fnUpload, $('#PicShowId_EN'));
},
/**
* 頁面初始化
* @param {Object} pargs CanDo 對象
*/
pageInit: function (pargs) {
pargs.action = 'update';
pargs._getOne();
fnGridInit('Carousel', 'TW');//初始化輪播(繁中)
fnGridInit('ServiceItems', 'TW');//初始化服務項目(繁中)
fnGridInit('ClassicCase', 'TW');//初始化經典案例(繁中)
fnGridInit('Video', 'TW');//初始化品牌影音(繁中)
fnGridInit('Downloads', 'TW');//文檔下載(繁中)
fnGridInit('ServiceBase', 'TW');//初始化全球服務據點(繁中)
fnGridInit('Carousel', 'CN');//初始化輪播(簡中)
fnGridInit('ServiceItems', 'CN');//初始化服務項目(簡中)
fnGridInit('ClassicCase', 'CN');//初始化經典案例(簡中)
fnGridInit('Video', 'CN');//初始化品牌影音(簡中)
fnGridInit('Downloads', 'CN');//文檔下載(簡中)
fnGridInit('ServiceBase', 'CN');//初始化全球服務據點(簡中)
fnGridInit('Carousel', 'EN');//初始化輪播(英文)
fnGridInit('ServiceItems', 'EN');//初始化服務項目(英文)
fnGridInit('ClassicCase', 'EN');//初始化經典案例(英文)
fnGridInit('Video', 'EN');//初始化品牌影音(英文)
fnGridInit('Downloads', 'EN');//文檔下載(英文)
fnGridInit('ServiceBase', 'EN');//初始化全球服務據點(英文)
}
}),
oGrid = {},
oOption = {},
oBaseQueryPm = {
pageIndex: 1,
pageSize: parent.SysSet.GridRecords || 10,
sortField: 'ParentId,OrderByValue',
sortOrder: 'asc'
},
oLang = { 'TW': 'zh-TW', 'CN': 'zh', 'EN': 'en' },
/**
* 新增輪播資訊
* @param {Object} args 參數
* @return {Function} Ajax
*/
fnSetInsert = function (args) {
return g_api.ConnectLite(canDo.ProgramId, canDo._api.ginsert, args, function (res) {
if (res.RESULT) {
var oRes = res.DATA.rel;
}
});
},
/**
* 修改輪播資訊
* @param {Object} args 參數
* @return {Function} Ajax
*/
fnSetUpdate = function (args) {
return g_api.ConnectLite(canDo.ProgramId, canDo._api.gupdate, args, function (res) {
if (res.RESULT) {
var oRes = res.DATA.rel;
}
});
},
/**
* 刪除輪播資訊
* @param {Object} args 參數
* @return {Function} Ajax
*/
fnSetDelete = function (args) {
return g_api.ConnectLite(canDo.ProgramId, canDo._api.gdelete, args, function (res) {
if (res.RESULT) {
var oRes = res.DATA.rel;
}
});
},
/**
* 抓去輪播資訊
* @param {Object} args 參數
* @param {String} settype 設定類別
* @param {String} lang 語系
* @return {Object} ajax
*/
fnGetSetting = function (args, settype, lang) {
var sKey = settype + '_' + lang,
oQueryPm = {
SetType: settype, LangId: oLang[lang]
};
$.extend(oQueryPm, oBaseQueryPm, args);
return g_api.ConnectLite(canDo.ProgramId, canDo._api.getpage, oQueryPm, function (res) {
if (res.RESULT) {
var oRes = res.DATA.rel;
if (settype === 'ClassicCase') {
var saParentId = $.grep(oRes.DataList, function (item) {
if (!item.ParentId) {
return item;
}
});
oOption[sKey].ParentIdHtml = createOptions(saParentId, 'Guid', 'Title');
}
}
});
},
/**
* Grid客戶化計價模式控件
* @param {String}flag 標記
* @return {HTMLElement} html 物件
*/
fnCreateActiveInput = function (flag) {
var elDiv = $('<div>'),
data = [{ id: true, text: i18next.t('common.Effective') }, { id: false, text: i18next.t('common.Invalid') }];
elDiv.html(createRadios(data, 'id', 'text', '~Active' + flag, flag, false, false));
return elDiv;
},
/**
* 初始化輪播
* @param {String} settype 設定類別
* @param {String} lang 語系
*/
fnGridInit = function (settype, lang) {
var sKey = settype + '_' + lang,
saFields = [{ name: "RowIndex", title: 'common.RowNumber', align: 'center', width: 40, sorting: false }];
if ('ClassicCase'.indexOf(settype) > -1) {
saFields.push({
name: "ParentId", title: 'common.ParentId', width: 120, type: 'select',// ╠common.ParentId⇒父層╣
itemTemplate: function (val, item) {
var oControl = $('<select />', {
class: "form-control w100p",
html: !oOption[sKey] ? '' : oOption[sKey].ParentIdHtml
}).val(val);
return oControl;
},
insertTemplate: function (val, item) {
var oControl = $('<select />', {
class: "form-control w100p",
html: !oOption[sKey] ? '' : oOption[sKey].ParentIdHtml
});
setTimeout(function () { oControl.html(!oOption[sKey] ? '' : oOption[sKey].ParentIdHtml); }, 2000);
return this.insertControl = oControl;
},
insertValue: function () {
return this.insertControl.val();
},
editTemplate: function (val, item) {
var oControl = $('<select />', {
class: "form-control w100p",
html: !oOption[sKey] ? '' : oOption[sKey].ParentIdHtml
});
return this.editControl = oControl.val(val);
},
editValue: function () {
return this.editControl.val();
}
});
}
if ('Carousel'.indexOf(settype) === -1) {
saFields.push({
name: "Title", title: { 'ServiceItems': 'common.ServiceItemsName' }[settype] || 'common.Title', width: 120, type: 'text', validate: [
{// ╠common.ServiceItemsName⇒服務項目名稱╣
validator: 'required',// ╠common.ServiceItemsName_required⇒請輸入服務項目名稱╣ ╠common.Title_required⇒請輸入標題╣
message: { 'ServiceItems': 'common.ServiceItemsName_required' }[settype] || i18next.t('common.Title_required')
},
{
validator: 'maxLength',
message: "Field value is too long",
param: 200
}]
});
}
if ('ServiceItems,ClassicCase,ServiceBase'.indexOf(settype) > -1) {
saFields.push({
name: "IconId", title: { 'ServiceBase': 'common.StrongholdIconPic' }[settype] || 'common.IconPic', width: 120,
itemTemplate: function (val, item) {//╠common.IconPic⇒圖標╣//╠common.StrongholdIconPic⇒據點圖標╣
var oFileDiv = $('<div />', { class: 'file-Info' }),
fileInput = $('<input />', { type: 'file', class: 'displayNone', name: 'files[]', 'multiple': 'multiple' });
fnGetUploadFiles(val, fnUpload, fileInput);
return oFileDiv.append(fileInput);
}
});
}
if ('ClassicCase'.indexOf(settype) > -1) {
saFields.push({
name: "SubIconId", title: 'common.SubIcon', width: 120,
itemTemplate: function (val, item) {//╠common.SubIcon⇒圖標2╣
var oFileDiv = $('<div />', { class: 'file-Info' }),
fileInput = $('<input />', { type: 'file', class: 'displayNone', name: 'files[]', 'multiple': 'multiple' });
fnGetUploadFiles(val, fnUpload, fileInput);
return oFileDiv.append(fileInput);
}
});
}
if ('Carousel,ClassicCase,Downloads'.indexOf(settype) > -1) {
saFields.push({
name: "CoverId", title: { 'Carousel': 'common.CarouselPic', 'Downloads': 'common.DownLoadDocuments' }[settype] || 'common.CoverPic', width: 120, align: 'center',
itemTemplate: function (val, item) {//╠common.CarouselPic⇒輪播圖片╣
var oFileDiv = $('<div />', { class: 'file-Info' }),
fileInput = $('<input />', { type: 'file', class: 'displayNone', name: 'files[]', 'multiple': 'multiple', 'data-file': settype });
fnGetUploadFiles(val, fnUpload, fileInput);
return oFileDiv.append(fileInput);
}
});
}
if ('ServiceBase,Downloads'.indexOf(settype) === -1) {
saFields.push({ //╠common.Link⇒連接╣
name: "Link", title: 'common.Link', width: 150, type: 'text', validate: {
validator: 'maxLength',
message: "Field value is too long",
param: 500
},
itemTemplate: function (val, item) {
var elLink = $('<a />', { class: 'link', 'target': '_new', text: val, href: val });
return elLink;
}
});
}
if ('ServiceItems,ClassicCase,Video,ServiceBase,Downloads'.indexOf(settype) > -1) {
saFields.push(
{// ╠common.CenterCoordinates⇒中心坐標╣
name: "Description", title: { 'ServiceBase': 'common.CenterCoordinates' }[settype] || 'common.Description', width: 150,//╠common.Description⇒描述╣
itemTemplate: function (val, item) {
val = val || '';
return val.length > 100 ? val.substr(0, 100) + '...' : val;
},
insertTemplate: function (val, item) {
var elControl = $('<textarea rows="3" cols="20" />', {
class: "form-control w100p"
});
return this.insertControl = elControl;
},
insertValue: function () {
return this.insertControl.val();
},
editTemplate: function (val, item) {
var elControl = $('<textarea rows="3" cols="20" />', {
class: "form-control w100p"
});
return this.editControl = elControl.val(val);
},
editValue: function () {
return this.editControl.val();
}
});
}
if ('ServiceItems,ClassicCase,ServiceBase'.indexOf(settype) > -1) {
if (settype === 'ServiceBase') {
saFields.push(
{// ╠common.GlobalStronghold⇒全球據點坐標╣
name: "Content", title: 'common.GlobalStronghold', width: 150,
insertTemplate: function (val, item) {
var elControl = $('<textarea rows="3" cols="20" />', {
class: "form-control w100p"
});
return this.insertControl = elControl;
},
insertValue: function () {
return this.insertControl.val();
},
editTemplate: function (val, item) {
var elControl = $('<textarea rows="3" cols="20" />', {
class: "form-control w100p"
});
return this.editControl = elControl.val(val);
},
editValue: function () {
return this.editControl.val();
}
});
}
else {
saFields.push({
name: "Content", title: { 'ServiceItems': 'common.ServiceItemsInfo' }[settype] || 'common.Info', width: 80, align: 'center',
itemTemplate: function (val, item) {//╠common.CarouselPic⇒輪播圖片╣ ╠common.ServiceItemsInfo⇒服務項目明細╣ ╠common.Info⇒內容明細╣
var oEdit = $('<a />', {
class: 'link', text: i18next.t('common.Edit'),
click: function () {
layer.open({
type: 1, //0(信息框,默认)1(页面层)2(iframe层)3(加载层)4(tips层)
title: i18next.t('common.Info'),
area: ['960px', '600px'],//寬度
shade: 0.75,//遮罩
shadeClose: true,
maxmin: true, //开启最大化最小化按钮
id: 'layer_Info', //设定一个id,防止重复弹出
offset: '50px',
anim: 0,//彈出動畫
btn: [i18next.t('common.Confirm'), i18next.t('common.Cancel')],
btnAlign: 'c',//按鈕位置
content: $('#UeditorInfo'),
success: function (layero, index) {
var iframe = layero.find('iframe').contents(),
iZindex_layer = layero.css('z-index');
setTimeout(function () {
iframe.find('body').html(item.Content || '');
}, 200);
layero.find('#UE_SettingInfo').children(":first").css('z-index', iZindex_layer * 1 + 1);//為解決POP視窗ueditor上傳pop被遮擋之問題
},
yes: function (index, layero) {
item.Content = canDo.UE_Editor.SettingInfo.getContent();
fnSetUpdate(item).done(function () {
layer.close(index);
});
},
end: function () {
$('#UeditorInfo').hide();
}
});
}
});
return oEdit;
}
});
}
}
saFields.push(
{//╠common.Styles⇒坐標樣式╣
name: "Memo", title: { 'ServiceBase': 'common.Styles' }[settype] || 'common.Memo', width: 150,
insertTemplate: function (val, item) {
var elControl = $('<textarea rows="3" cols="20" />', {
class: "form-control w100p"
});
return this.insertControl = elControl;
},
insertValue: function () {
return this.insertControl.val();
},
editTemplate: function (val, item) {
var elControl = $('<textarea rows="3" cols="20" />', {
class: "form-control w100p"
});
return this.editControl = elControl.val(val);
},
editValue: function () {
return this.editControl.val();
}
},
{
name: "OrderByValue", title: 'common.OrderByValue', width: 80, align: 'center',
itemTemplate: function (val, item) {
return this._createSelect = $("<select>", {
class: 'w70',
html: createOptions(item.OrderCount),
change: function () {
var sOldValue = val,
sNewValue = this.value;
g_api.ConnectLite(canDo.ProgramId, canDo._api.order, {
Id: item.Guid,
OldOrderByValue: sOldValue,
NewOrderByValue: sNewValue
}, function (res) {
if (res.RESULT) {
oGrid[sKey].openPage(1);
}
});
}
}).val(val);
}
},
{
name: "Active", title: 'common.Active', width: 100, align: 'center',
itemTemplate: function (val, item) {//╠common.Active⇒有效狀態╣
return val.toString() === "true" ? i18next.t('common.Effective') : i18next.t('common.Invalid');
},
insertTemplate: function (val, item) {
var elControl = fnCreateActiveInput('add' + sKey);
setTimeout(function () {
elControl.find('label:first').click();
canDo._uniformInit(elControl);
}, 100);
return this.insertControl = elControl;
},
insertValue: function () {
return this.insertControl.find(':input:checked').val();
},
editTemplate: function (val, item) {
var elControl = fnCreateActiveInput('edit' + sKey);
setTimeout(function () {
elControl.find(':input[value="' + val + '"]').click();
canDo._uniformInit(elControl);
}, 100);
return this.editControl = elControl;
},
editValue: function () {
return this.editControl.find(':input:checked').val();
}
},
{
type: "control", width: 50
});
$('#jsGrid_' + sKey).jsGrid({
width: "100%",
height: "auto",
autoload: true,
pageLoading: true,
inserting: true,
editing: true,
sorting: true,
paging: true,
pageIndex: 1,
pageSize: 1000,
pageButtonCount: parent.SysSet.GridPages || 15,
invalidMessage: '输入的数据无效!',
confirmDeleting: true,
deleteConfirm: "確定要刪除嗎?",
pagePrevText: "<",
pageNextText: ">",
pageFirstText: "<<",
pageLastText: ">>",
rowClick: function (args) {
},
fields: saFields,
controller: {
loadData: function (args) {
return fnGetSetting(args, settype, lang);
},
insertItem: function (args) {
args.SetType = settype;
args.LangId = oLang[lang];
args.IconId = guid();
args.SubIconId = guid();
args.CoverId = guid();
args.SubCoverId = guid();
var saCurrent = [];
if (oGrid[sKey].data.length > 0) {
saCurrent = $.grep(oGrid[sKey].data, function (item) {
if (args.ParentId) {
return item.ParentId === args.ParentId;
} else {
return !item.ParentId;
}
});
}
args.OrderByValue = saCurrent.length + 1;
return fnSetInsert(args);
},
updateItem: function (args) {
fnSetUpdate(args);
},
deleteItem: function (args) {
return fnSetDelete(args);
}
},
onInit: function (args) {
if (settype === 'ClassicCase' && !oOption[sKey]) {
oOption[sKey] = {};
}
oGrid[sKey] = args.grid;
}
});
},
/**
* 上傳附件
* @param {Array} files 當前文件
* @param {String} parentid 父層id
* @param {String} finput file input id
*/
fnUpload = function (files, parentid, finput) {
var option = {},
sFilesType = finput.attr('data-file');
option.input = finput;
option.limit = 1;
option.type = 'one';
option.theme = 'dragdropbox' + parentid;
option.parentid = parentid;
option.extensions = ['jpg', 'jpeg', 'png', 'bmp', 'gif', 'png', 'svg'];
option.folder = 'WebSiteSetup';
if (files) {
option.files = files;
}
if (sFilesType === 'Downloads') {
delete option.extensions;
}
else if (sFilesType === 'PicShowId') {
option.limit = 99;
delete option.type;
}
fnUploadRegister(option);
};
};
require(['base', 'filer', 'jsgrid', 'cando'], fnPageInit);