'use strict';
var sProgramId = getProgramId(),
sQueryPrgId = getQueryPrgId(),
sAction = getUrlParam('Action') || 'Add',
sDataId = getUrlParam('Guid'),
sCheckId = sDataId,
fnPageInit = function () {
var oCurData = { CostRules: [] },
oForm = $('#form_main'),
oGrid = null,
oValidator = null,
oEditor_CostInstruction = null,
oEditor_ServiceInstruction = null,
oEditor_CostInstruction_EN = null,
oEditor_ServiceInstruction_EN = null,
/**
* 獲取資料
* @return {Object} Ajax 物件
*/
fnGet = function () {
if (sDataId) {
return CallAjax(ComFn.W_Com, ComFn.GetOne, {
Type: '',
Params: {
exhibitionrules: {
Guid: sDataId,
OrgID: parent.OrgID
}
}
}, function (res) {
});
}
else {
oCurData.Guid = guid();
oCurData.FileId_EN = guid();
fnUpload(null, oCurData.Guid, 'fileInput');
fnUpload(null, oCurData.FileId_EN, 'fileInput_EN');
return $.Deferred().resolve().promise();
}
},
/**
* 新增資料
* @param {String} sFlag 新增或儲存後新增
*/
fnAdd = function (sFlag) {
var data = getFormSerialize(oForm);
data.StoragePrice = 0; //因應變更寫法,預設0 By Mark
data.IsMerge = 'N'; //因應變更寫法,預設N By Mark
data = packParams(data);
data.OrgID = parent.OrgID;
data.Guid = oCurData.Guid;
data.FileId_EN = oCurData.FileId_EN;
data.CostInstruction = oEditor_CostInstruction.getContent();
data.ServiceInstruction = oEditor_ServiceInstruction.getContent();
data.CostInstruction_EN = oEditor_CostInstruction_EN.getContent();
data.ServiceInstruction_EN = oEditor_ServiceInstruction_EN.getContent();
delete data.editorValue;
data.CostRules = JSON.stringify(oCurData.CostRules);
data.PackingPrice = data.PackingPrice === '' ? 0 : data.PackingPrice;
data.FeedingPrice = data.FeedingPrice === '' ? 0 : data.FeedingPrice;
data.StoragePrice = data.StoragePrice === '' ? 0 : data.StoragePrice;
CallAjax(ComFn.W_Com, ComFn.GetAdd, {
Params: {
exhibitionrules: data
}
}, function (res) {
if (res.d > 0) {
bRequestStorage = false;
if (sFlag === 'add') {
showMsgAndGo(i18next.t("message.Save_Success"), sQueryPrgId); // ╠message.Save_Success⇒新增成功╣
}
else {
showMsgAndGo(i18next.t("message.Save_Success"), sProgramId, '?Action=Add'); // ╠message.Save_Success⇒新增成功╣
}
parent.msgs.server.broadcast(data);
}
else {
showMsg(i18next.t("message.Save_Failed"), 'error'); // ╠message.Save_Failed⇒新增失敗╣
}
});
},
/**
* 修改資料
*/
fnUpd = function () {
var data = getFormSerialize(oForm);
data = packParams(data, 'upd');
data.CostInstruction = oEditor_CostInstruction.getContent();
data.ServiceInstruction = oEditor_ServiceInstruction.getContent();
data.CostInstruction_EN = oEditor_CostInstruction_EN.getContent();
data.ServiceInstruction_EN = oEditor_ServiceInstruction_EN.getContent();
delete data.editorValue;
data.CostRules = JSON.stringify(oCurData.CostRules);
data.FileId_EN = oCurData.FileId_EN;
CallAjax(ComFn.W_Com, ComFn.GetUpd, {
Params: {
exhibitionrules: {
values: data,
keys: {
Guid: sDataId,
OrgID: parent.OrgID
}
}
}
}, function (res) {
if (res.d > 0) {
bRequestStorage = false;
showMsgAndGo(i18next.t("message.Modify_Success"), sQueryPrgId); //╠message.Modify_Success⇒修改成功╣
}
else {
showMsg(i18next.t("message.Modify_Failed"), 'error');//╠message.Modify_Failed⇒修改失敗╣
}
}, function () {
showMsg(i18next.t("message.Modify_Failed"), 'error');//╠message.Modify_Failed⇒修改失敗╣
});
},
/**
* 資料刪除
*/
fnDel = function () {
CallAjax(ComFn.W_Com, ComFn.GetDel, {
Params: {
exhibitionrules: {
Guid: sDataId,
OrgID: parent.OrgID
}
}
}, function (res) {
if (res.d > 0) {
showMsgAndGo(i18next.t("message.Delete_Success"), sQueryPrgId); // ╠message.Delete_Success⇒刪除成功╣
}
else {
showMsg(i18next.t("message.Delete_Failed"), 'error'); // ╠message.Delete_Failed⇒刪除失敗╣
}
}, function () {
showMsg(i18next.t("message.Delete_Failed"), 'error'); // ╠message.Delete_Failed⇒刪除失敗╣
});
},
/**
* 上傳附件
* @param {Array} files 要綁定的資料
* @param {Sring} parentid 要綁定的資料
* @param {Sring} flag 要綁定的資料
*/
fnUpload = function (files, parentid, flag) {
var option = {};
option.input = $('#' + flag);
option.theme = 'dragdropbox';
option.folder = 'WebSiteFiles';
option.type = 'list';
option.parentid = parentid;
if (files) {
option.files = files;
}
fnUploadRegister(option);
},
/**
* Grid客戶化計價模式控件
* @param {Sring}flag 要綁定的資料標記
* @return {HTMLElement} DIV 物件
*/
fnCreatePriceModeInput = function (flag) {
var $div = $('
'),
data = [{ id: 'N', text: i18next.t('common.ByNumber') }, { id: 'T', text: i18next.t('common.ByWeight') }];//╠common.ByNumber⇒按件數計價╣ ╠common.ByWeight⇒按重量計價╣
$div.html(createRadios(data, 'id', 'text', '~PricingMode' + flag, flag, false, false));
return $div;
},
/**
* ToolBar 按鈕事件 function
* @param {Object}inst 按鈕物件對象
* @param {Object} e 事件對象
* @return {Boolean} 是否停止
*/
fnButtonHandler = function (inst, e) {
var sId = inst.id;
switch (sId) {
case "Toolbar_Qry":
break;
case "Toolbar_Save":
$('#CostInstruction').val(oEditor_CostInstruction.getContentTxt());
$('#ServiceInstruction').val(oEditor_ServiceInstruction.getContentTxt());
$('#CostInstruction_EN').val(oEditor_CostInstruction_EN.getContentTxt());
$('#ServiceInstruction_EN').val(oEditor_ServiceInstruction_EN.getContentTxt());
if (!$("#form_main").valid()) {
oValidator.focusInvalid();
return false;
}
if (sAction === 'Add') {
fnAdd('add');
}
else {
fnUpd();
}
break;
case "Toolbar_ReAdd":
$('#CostInstruction').val(oEditor_CostInstruction.getContentTxt());
$('#ServiceInstruction').val(oEditor_ServiceInstruction.getContentTxt());
$('#CostInstruction_EN').val(oEditor_CostInstruction_EN.getContentTxt());
$('#ServiceInstruction_EN').val(oEditor_ServiceInstruction_EN.getContentTxt());
if (!$("#form_main").valid()) {
oValidator.focusInvalid();
return false;
}
fnAdd('readd');
break;
case "Toolbar_Clear":
clearPageVal();
break;
case "Toolbar_Leave":
pageLeave();
break;
case "Toolbar_Add":
break;
case "Toolbar_Upd":
break;
case "Toolbar_Copy":
break;
case "Toolbar_Del": // ╠message.ConfirmToDelete⇒確定要刪除嗎 ?╣ ╠common.Tips⇒提示╣
layer.confirm(i18next.t("message.ConfirmToDelete"), { icon: 3, title: i18next.t('common.Tips') }, function (index) {
fnDel();
layer.close(index);
});
break;
default:
alert("No handle '" + sId + "'");
break;
}
},
/**
* 初始化 function
*/
init = function () {
commonInit({
PrgId: sProgramId,
ButtonHandler: fnButtonHandler,
GoTop: true
});
oValidator = $("#form_main").validate({
ignore: ''
});
oEditor_CostInstruction = UE.getEditor('EU_CostInstruction');
oEditor_ServiceInstruction = UE.getEditor('EU_ServiceInstruction');
oEditor_CostInstruction_EN = UE.getEditor('EU_CostInstruction_EN');
oEditor_ServiceInstruction_EN = UE.getEditor('EU_ServiceInstruction_EN');
$.whenArray([
fnGet(),
fnSetArgDrop([
{
ArgClassID: 'Currency',
LevelOfArgument: 0,
ShowId: true,
CallBack: function (data) {
$('#Currency').html(createOptions(data, 'id', 'id'))[0].remove(0);
}
}
])
]).done(function (res1) {
if (res1 && res1[0].d) {
var oRes = $.parseJSON(res1[0].d);
oCurData = oRes;
oCurData.CostRules = $.parseJSON(oCurData.CostRules);
if (!oCurData.FileId_EN) {
oCurData.FileId_EN = guid();
}
setFormVal(oForm, oRes);
oEditor_CostInstruction.ready(function () {
oEditor_CostInstruction.setContent(oRes.CostInstruction);
});
oEditor_ServiceInstruction.ready(function () {
oEditor_ServiceInstruction.setContent(oRes.ServiceInstruction);
});
oEditor_CostInstruction_EN.ready(function () {
oEditor_CostInstruction_EN.setContent(oRes.CostInstruction_EN || '');
});
oEditor_ServiceInstruction_EN.ready(function () {
oEditor_ServiceInstruction_EN.setContent(oRes.ServiceInstruction_EN || '');
});
$("#jsGrid").jsGrid("loadData");
fnGetUploadFiles(oCurData.Guid, fnUpload, 'fileInput');
fnGetUploadFiles(oCurData.FileId_EN, fnUpload, 'fileInput_EN');
setNameById().done(function () {
getPageVal();//緩存頁面值,用於清除
});
$('#UniqueID').attr('disabled', 'disabled');
}
$(':input[data-type="money"]').each(function () {
moneyInput($(this), 2);
});
});
$("#jsGrid").jsGrid({
width: "100%",
height: "auto",
autoload: true,
filtering: false,
inserting: true,
editing: true,
pageLoading: true,
confirmDeleting: true,
invalidMessage: i18next.t('common.InvalidData'),// ╠common.InvalidData⇒输入的数据无效!╣
deleteConfirm: i18next.t('message.ConfirmToDelete'),// ╠message.ConfirmToDelete⇒確定要刪除嗎 ?╣
pageIndex: 1,
pageSize: 10000,
fields: [
{
name: "Index", title: '#', width: 50, align: 'center'
},
{// ╠common.Weight_Min⇒重量(小)╣
name: "Weight_Min", title: 'common.Weight_Min', width: 120, align: 'center', type: "text", validate: { validator: 'required', message: i18next.t('common.Weight_Min_required') }//╠common.Weight_Min_required⇒請輸入重量(小)╣
},
{// ╠common.Weight_Max⇒重量(大)╣
name: "Weight_Max", title: 'common.Weight_Max', width: 120, align: 'center', type: "text", validate: { validator: 'required', message: i18next.t('common.Weight_Max_required') }//╠common.Weight_Max_required⇒請輸入重量(大)╣
},
{// ╠common.Price⇒價格╣
name: "Price", title: 'common.Price', width: 120, align: 'right', type: "text", validate: { validator: 'required', message: i18next.t('common.Price_required') },//╠common.Price_required⇒請輸入價格╣
itemTemplate: function (val, item) {
return fMoney(val, 2, item.Currency);
},
insertTemplate: function (val, item) {
var oControl = $('');
moneyInput(oControl, 2);
return this.insertControl = oControl;
},
insertValue: function () {
return this.insertControl.attr('data-value');
},
editTemplate: function (val, item) {
var oControl = $('').val(val);
moneyInput(oControl, 2);
return this.editControl = oControl;
},
editValue: function () {
return this.editControl.attr('data-value');
}
},
{// ╠common.PricingMode⇒計價模式╣
name: "PricingMode", title: 'common.PricingMode', align: 'center', width: 180, type: "text",
itemTemplate: function (val, item) {
var oControl = fnCreatePriceModeInput(item.Index);
oControl.find(':input[value="' + val + '"]').click();
uniformInit(oControl);
return oControl;
},
insertTemplate: function (val, item) {
var oControl = fnCreatePriceModeInput('add');
setTimeout(function () {
oControl.find('label:first').click();
uniformInit(oControl);
}, 100);
return this.insertControl = oControl;
},
insertValue: function () {
return this.insertControl.find(':input:checked').val();
},
editTemplate: function (val, item) {
var oControl = fnCreatePriceModeInput('edit');
oControl.find(':input[value="' + val + '"]').click();
uniformInit(oControl);
return this.editControl = oControl;
},
editValue: function () {
return this.editControl.find(':input:checked').val();
}
},
{
name: "Memo", title: 'common.Memo', width: 200, type: "textarea"
},
{
type: "control", width: 50
}
],
controller: {
loadData: function (args) {
return {
data: oCurData.CostRules,
itemsCount: oCurData.CostRules.length //data.length
};
},
insertItem: function (args) {
args.guid = guid();
args.Index = oCurData.CostRules.length + 1;
oCurData.CostRules.push(args);
},
updateItem: function (args) {
},
deleteItem: function (args) {
oCurData.CostRules = Jsonremove(oCurData.CostRules, 'guid', args.guid);
$.each(oCurData.CostRules, function (idx, _data) {
_data.Index = idx + 1;
});
}
},
onInit: function (args) {
oGrid = args.grid;
}
});
};
init();
};
require(['base', 'jsgrid', 'formatnumber', 'filer', 'util'], fnPageInit);