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.
421 lines
20 KiB
421 lines
20 KiB
'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 = $('<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 = $('<input type="text" class="form-control w100p" data-type="money" data-name="int" />');
|
|
moneyInput(oControl, 2);
|
|
return this.insertControl = oControl;
|
|
},
|
|
insertValue: function () {
|
|
return this.insertControl.attr('data-value');
|
|
},
|
|
editTemplate: function (val, item) {
|
|
var oControl = $('<input type="text" class="form-control w100p" data-type="money" data-name="int" />').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);
|