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.
321 lines
9.7 KiB
321 lines
9.7 KiB
'use strict';
|
|
|
|
var DEFAULT_LANGUAGEID = "zh-TW";
|
|
|
|
var LanguageMap = new Map();
|
|
|
|
var ExhibMainCategoryMap = new Map();
|
|
var ExhibSubCategoryMap = new Map();
|
|
var FrequencyMap = new Map();
|
|
var ExhibStatusMap = new Map();
|
|
|
|
var fnPageInit = function () {
|
|
var canDo = new CanDo({
|
|
sortField: 'OrderByValue',
|
|
sortOrder: 'asc',
|
|
/**
|
|
* 當前程式所有ID名稱集合
|
|
*/
|
|
idKeys: ['OrgID', 'ExhibitionID', 'LanguageID'],
|
|
//*
|
|
// * Grid欄位設置(可以是 function)
|
|
|
|
|
|
gridFields: [
|
|
{ name: "RowIndex", title: 'common.RowNumber', align: 'center', width: 50, sorting: false },
|
|
//{ name: "ExhibitionID", title: 'ExhibMaintain_Qry.ExhibitionID', width: 50 },
|
|
{ name: "ExhibitionName", title: 'common.ExhibitionName', align: 'left', width: 100 },
|
|
{ name: "AbbreviatedName", title: 'ExhibMaintain_Qry.AbbreviatedName', align: 'left', width: 100 },
|
|
{
|
|
name: "MainCategoryIDs", title: 'ExhibMainCategoryMaintain_Qry.ExhibMainCategory', align: 'left', width: 100, itemTemplate: function (val) {
|
|
|
|
var categoryList = JSON.parse(val);
|
|
var categoryName = '';
|
|
|
|
$.each(categoryList, function (index, value) {
|
|
|
|
if (ExhibMainCategoryMap.has(value)) {
|
|
|
|
categoryName += ExhibMainCategoryMap.get(value).CategoryName;
|
|
|
|
if (index != categoryList.length - 1) {
|
|
categoryName += ", ";
|
|
}
|
|
|
|
}
|
|
|
|
});
|
|
|
|
return categoryName;
|
|
|
|
}
|
|
|
|
},
|
|
{
|
|
name: "SubCategoryIDs", title: 'common.ExhibSubCategory', align: 'left', width: 100, itemTemplate: function (val) {
|
|
|
|
var categoryList = JSON.parse(val);
|
|
var categoryName = '';
|
|
|
|
$.each(categoryList, function (index, value) {
|
|
|
|
if (ExhibSubCategoryMap.has(value)) {
|
|
|
|
categoryName += ExhibSubCategoryMap.get(value).CategoryName;
|
|
|
|
if (index != categoryList.length - 1) {
|
|
categoryName += ", ";
|
|
}
|
|
|
|
}
|
|
|
|
});
|
|
|
|
return categoryName;
|
|
|
|
}
|
|
|
|
},
|
|
{
|
|
name: "Frequency", title: 'ExhibMaintain_Qry.Frequency', align: 'left', width: 100, itemTemplate: function (val) {
|
|
|
|
var FrequencyName = val;
|
|
|
|
if (FrequencyMap.has(val)) {
|
|
|
|
FrequencyName = FrequencyMap.get(val).ArgumentValue;
|
|
|
|
}
|
|
|
|
return FrequencyName;
|
|
|
|
}
|
|
|
|
},
|
|
{
|
|
name: "ExhibStatus", title: 'ExhibMaintain_Qry.ExhibStatus', align: 'left', width: 100, itemTemplate: function (val) {
|
|
|
|
var ExhibStatusName = val;
|
|
|
|
if (ExhibStatusMap.has(val)) {
|
|
|
|
ExhibStatusName = ExhibStatusMap.get(val).ArgumentValue;
|
|
|
|
}
|
|
|
|
return ExhibStatusName;
|
|
|
|
}
|
|
|
|
},
|
|
{
|
|
name: "Effective", title: 'common.Status', width: 150, align: 'center', itemTemplate: function (val) {
|
|
return val === 'Y' ? i18next.t('common.Enable') : i18next.t('common.Disable');
|
|
}
|
|
},
|
|
//{ name: "OrderByValue", title: 'common.OrderByValue', align: 'left', width: 50 }
|
|
{
|
|
name: "OrderByValue", title: 'common.OrderByValue', type: "select", width: 150,
|
|
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.ExhibitionID,
|
|
OldOrderByValue: sOldValue,
|
|
NewOrderByValue: sNewValue
|
|
}, function (res) {
|
|
if (res.RESULT) {
|
|
showMsg(i18next.t('message.Update_Success'), 'success');// ╠message.Update_Success⇒更新成功╣
|
|
canDo.Grid.openPage(canDo.options.toFirstPage ? 1 : canDo.options.queryPageidx);
|
|
}
|
|
else {
|
|
showMsg(i18next.t('message.Update_Failed') + '<br>' + res.MSG, 'error'); // ╠message.Update_Failed⇒更新失敗╣
|
|
}
|
|
|
|
});
|
|
}
|
|
}).val(val);
|
|
}
|
|
}
|
|
],
|
|
/**
|
|
* 頁面初始化
|
|
* @param {Object} pargs CanDo 對象
|
|
*/
|
|
pageInit: function (pargs) {
|
|
var postArray = [];
|
|
postArray.push(fnLanguageDrop(), fnMainCategoryDrop(), fnSubCategoryDrop(), fnFrequencyDrop(), fnShowStatusDrop());
|
|
$.whenArray(postArray).done(function () {
|
|
|
|
pargs._reSetQueryPm();
|
|
pargs._initGrid();
|
|
});
|
|
|
|
$('#MainCategoryID').select2();
|
|
$('#SubCategoryID').select2();
|
|
|
|
}
|
|
}),
|
|
|
|
/**
|
|
* 語言下拉選單
|
|
* @return {Object} Ajax 物件
|
|
*/
|
|
|
|
fnLanguageDrop = function () {
|
|
return g_api.ConnectLite(canDo.ProgramId, "QueryLanguageList", {
|
|
|
|
},
|
|
function (res) {
|
|
|
|
if (res.RESULT) {
|
|
|
|
LanguageMap.clear();
|
|
|
|
var languageList = res.DATA.rel;
|
|
$('#LanguageID').html(createOptions(languageList, 'LanguageID', 'LanguageName', false)).on('change', function () {
|
|
|
|
fnMainCategoryDrop().done(function () {
|
|
|
|
fnSubCategoryDrop();
|
|
|
|
});
|
|
|
|
});
|
|
|
|
$('#LanguageID').val(DEFAULT_LANGUAGEID);
|
|
|
|
for (let element of languageList) {
|
|
|
|
LanguageMap.set(element.LanguageID, element);
|
|
|
|
}
|
|
|
|
}
|
|
});
|
|
},
|
|
|
|
/**
|
|
* 主類別下拉選單
|
|
*/
|
|
fnMainCategoryDrop = function () {
|
|
return g_api.ConnectLite(canDo.ProgramId, "QueryExhibMainCategoryList", {
|
|
|
|
LanguageID: $("#LanguageID").val()
|
|
|
|
},
|
|
function (res) {
|
|
|
|
if (res.RESULT) {
|
|
var saCategoryList = res.DATA.rel;
|
|
|
|
$.each(saCategoryList, function (index, value) {
|
|
|
|
ExhibMainCategoryMap.set(value.CategoryID, value);
|
|
|
|
});
|
|
|
|
var sOptionHtml = createOptions(saCategoryList, 'CategoryID', 'CategoryName', false);
|
|
$('#MainCategoryID').html(sOptionHtml);
|
|
}
|
|
});
|
|
},
|
|
|
|
/**
|
|
* 子類別下拉選單
|
|
*/
|
|
|
|
fnSubCategoryDrop = function () {
|
|
return g_api.ConnectLite(canDo.ProgramId, "QueryExhibSubCategoryList", {
|
|
|
|
LanguageID: $("#LanguageID").val()
|
|
|
|
},
|
|
function (res) {
|
|
|
|
if (res.RESULT) {
|
|
var saCategoryList = res.DATA.rel;
|
|
|
|
$.each(saCategoryList, function (index, value) {
|
|
|
|
ExhibSubCategoryMap.set(value.CategoryID, value);
|
|
|
|
});
|
|
|
|
var sOptionHtml = createOptions(saCategoryList, 'CategoryID', 'CategoryName', false);
|
|
$('#SubCategoryID').html(sOptionHtml);
|
|
}
|
|
});
|
|
},
|
|
|
|
/**
|
|
* 週期選單
|
|
*/
|
|
fnFrequencyDrop = function () {
|
|
|
|
return g_api.ConnectLite(canDo.ProgramId, "QueryFrequencyList", {
|
|
|
|
LanguageID: $('#LanguageID').val()
|
|
|
|
},
|
|
|
|
function (res) {
|
|
if (res.RESULT) {
|
|
|
|
var frequencyList = res.DATA.rel;
|
|
|
|
$.each(frequencyList, function (index, value) {
|
|
|
|
FrequencyMap.set(value.ArgumentID, value);
|
|
|
|
});
|
|
|
|
$('#Frequency').html(createOptions(frequencyList, 'ArgumentID', 'ArgumentValue', false));
|
|
|
|
}
|
|
});
|
|
|
|
|
|
},
|
|
|
|
/**
|
|
* 展覽狀態選單
|
|
*/
|
|
fnShowStatusDrop = function () {
|
|
|
|
return g_api.ConnectLite(canDo.ProgramId, "QueryShowStatusList", {
|
|
|
|
LanguageID: $('#LanguageID').val()
|
|
|
|
},
|
|
|
|
function (res) {
|
|
if (res.RESULT) {
|
|
|
|
var statusList = res.DATA.rel;
|
|
|
|
$.each(statusList, function (index, value) {
|
|
|
|
ExhibStatusMap.set(value.ArgumentID, value);
|
|
|
|
});
|
|
|
|
$('#ExhibStatus').html(createOptions(statusList, 'ArgumentID', 'ArgumentValue', false));
|
|
|
|
}
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
};
|
|
|
|
require(['base', 'jsgrid', 'select2', 'cando'], fnPageInit);
|