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