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.
 
 
 
 
 

202 lines
7.6 KiB

'use strict';
//const { Console } = require("node:console");
var fnPageInit = function () {
var canDo = new CanDo({
//當前程式所有ID名稱集合
idKeys: ['OrgID', 'CityID', 'LangType'],
//當前程式所有參數名稱集合
paramKeys: ['CityID', 'LangType'],
/**客製化驗證規則
* @param {Object} pargs CanDo 對象*/
validRulesCus: function (pargs) {
$.validator.addMethod("cityclassidrule", function (value) { //驗證城市編號是否重複
var bRetn = true;
if (value) {
g_api.ConnectLite(pargs.ProgramId, 'QueryOrder',
{
CountryID: $('#CountryID').val(),
CityID: value
},
function (res) {
if (res.RESULT && res.DATA.rel > 0) {
bRetn = false;
}
}, null, false);
}
return bRetn;
});
},
//驗證規則
validRules: function (pargs) {
return {
onfocusout: false,
rules: {
CityID: { cityclassidrule: pargs.action === 'add' ? true : false },
},
messages: {
CityID: { cityclassidrule: i18next.t("message.Data_Repeat") },
}
};
},
//getOneBack: function (pargs, data) {
// var oRes = data;
// disableInput(pargs._form, '#CityID', false);
//},
/**
* 修改資料
* @param {Object} pargs CanDo 對象
* @param {Object} data 當前修改的資料
*/
//getUpdateParams: function (pargs, data) {
// data = pargs.options.getInsertParams(pargs, data);
// return data;
//},
//getInsertParams: function (pargs, data) {
// data.RegionID = $('#RegionID').val();
// data.CountryID = $('#CountryID').val();
// data.CityID = $('#CityID').val();
// console.log("data.RegionID" + ": " + data.RegionID);
// console.log("data.CountryID" + ": " + data.CountryID);
// console.log("data.CityID" + ": " + data.CityID);
// return data;
//},
/**頁面初始化
* @param {Object} pargs CanDo 對象*/
pageInit: function (pargs) {
var postArray = [];
if (pargs.action === 'upd') {
$('#CityID', '#CountryID').prop('disabled', true);
postArray.push(pargs._getOne());
}
postArray.push(fnLanguageDrop());
$.whenArray(postArray).done(function (res) {
if (pargs.action === 'upd' && res[0].RESULT) {
var oRes = res[0].DATA.rel;
pargs._setFormVal(oRes);
if (oRes.LangType) {
$('#LangType').val(oRes.LangType);
fnSetRegionIDdrop().done(function () {
$('#RegionID').val(oRes.RegionID);
fnCountryDrop().done(function () {
$('#CountryID').val(oRes.CountryID);
fnSetOrderByValueDrop().done(function () {
$('#OrderByValue').val(oRes.OrderByValue);
});
});
});
pargs._setFormVal(oRes);
}
else {
pargs._setFormVal(oRes);
}
}
});
$('#RegionID').select2();
$('#CountryID').select2();
}
}),
/**國家下拉選單
* @return {Object} Ajax 物件*/
fnCountryDrop = function () {
var data = {
RegionID: $('#RegionID').val(),
LangType: $('#LangType').val(),
};
if ($('#RegionID').val()) {
return g_api.ConnectLite(canDo.ProgramId, "QueryCountryList", data,
function (res) {
if (res.RESULT) {
var saList = res.DATA.rel;
if (saList.length > 0) {
var sOptions = createOptions(saList, 'CountryID', 'CountryName', false);
$('#CountryID').html(sOptions).on('change', function () {
fnSetOrderByValueDrop();
$('#OrderByValue').val("");
});
}
}
});
}
},
/**洲別下拉選單
* @return {Object} Ajax 物件*/
fnSetRegionIDdrop = function () {
return g_api.ConnectLite(canDo.ProgramId, "QueryRegionList", {
LangType: $("#LangType").val()
},
function (res) {
if (res.RESULT) {
var regionList = res.DATA.rel;
$('#RegionID').html(createOptions(regionList, 'RegionID', 'RegionName', false)).on('change', function () {
console.log($('#RegionID').val());
$('#CountryID').empty();
if ($('#RegionID').val()) { //監聽RegionID,若RegionID值改變,執行fnCountryDrop()
$('#CountryID').val("");
fnCountryDrop(); //選取不同的洲別,國家下拉選單也會出現相應的國家,如選擇亞洲,國家下拉選單內都會是亞洲的國家
}
});
}
});
},
//排序下拉選單
fnSetOrderByValueDrop = function () {
var data = {
CountryID: $("#CountryID").val(), //排序會因選擇不同的CountryID改變
LangType: $('#LangType').val()
};
return g_api.ConnectLite(canDo.ProgramId, "QueryOrder",data,
function (res) {
if (res.RESULT) {
var iCount = res.DATA.rel; //取得目前的城市資料總筆數
if (canDo.action === 'add') { //若為新增
iCount++; //城市資料總筆數+1
}
$('#OrderByValue').html(createOptions(iCount));
if (canDo.action === 'add') {
$('#OrderByValue').val(iCount);
}
}
});
},
//語系下拉選單
fnLanguageDrop = function () {
return g_api.ConnectLite(canDo.ProgramId, "GetLanguage",
{},
function (res) {
if (res.RESULT) {
var saList = res.DATA.rel;
$('#LangType').html(createOptions(saList, 'LanguageID', 'LanguageName', false)).on('change', function () {
if ($('#LangType').val()) { //監聽RegionID,若RegionID值改變,執行fnSetOrderByValueDrop()
fnSetRegionIDdrop();
}
}).select2();
}
});
};
};
require(['base', 'cando', 'select2', 'jsgrid'], fnPageInit);