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