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.
 
 
 
 
 

368 lines
16 KiB

var sRefNumber = getUrlParam('RefNumber');
$(function () {
'use strict';
var sRandomCode = '',
sIp = '',
sIPInfo = '',
oCurData = {},
sLang = $('[http-equiv="content-language"]').attr('content') || 'zh-TW',
materialForm = function () {
return $('.material-field').focus(function () {
$('.errormsg').text('').hide();
return $(this).closest('.form-group-material').addClass('focused has-value');
}).focusout(function () {
$('.errormsg').text('').hide();
return $(this).closest('.form-group-material').removeClass('focused');
}).blur(function () {
if (!this.value) {
$(this).closest('.form-group-material').removeClass('has-value');
}
return $(this).closest('.form-group-material').removeClass('focused');
});
},
/*
* 目的:生成一个随机数
* @param: min(int)最小值
* @param: max(int)最大值
* @return: 無
* 作者:John
*********************************************/
randomNum = function (min, max) {
return Math.floor(Math.random() * (max - min) + min);
},
/*
* 目的:生成一个随机色
* @param: min(int)最小值
* @param: max(int)最大值
* @return: 無
* 作者:John
*********************************************/
randomColor = function (min, max) {
var r = randomNum(min, max);
var g = randomNum(min, max);
var b = randomNum(min, max);
return "rgb(" + r + "," + g + "," + b + ")";
},
/*
* 目的:绘制验证码图片
* @param: min(int)最小值
* @param: max(int)最大值
* @return: 無
* 作者:John
*********************************************/
fnDrawPic = function () {
var canvas = document.getElementById("canvas");
var width = canvas.width;
var height = canvas.height;
var ctx = canvas.getContext('2d');
ctx.textBaseline = 'bottom';
/**绘制背景色**/
ctx.fillStyle = randomColor(180, 240); //颜色若太深可能导致看不清
ctx.fillRect(0, 0, width, height);
/**绘制文字**/
//var str = 'ABCEFGHJKLMNPQRSTWXY123456789';
var str = '123456789';
sRandomCode = '';
for (var i = 0; i < 4; i++) {
var txt = str[randomNum(0, str.length)];
sRandomCode += txt;
ctx.fillStyle = randomColor(50, 60); //随机生成字体颜色
ctx.font = randomNum(35, 40) + 'px SimHei'; //随机生成字体大小
var x = 10 + i * 25;
var y = randomNum(40, 40);
var deg = randomNum(-45, 45);
//修改坐标原点和旋转角度
ctx.translate(x, y);
ctx.rotate(deg * Math.PI / 270);
ctx.fillText(txt, 0, 0);
//恢复坐标原点和旋转角度
ctx.rotate(-deg * Math.PI / 270);
ctx.translate(-x, -y);
}
/**绘制干扰线**/
//for (var i = 0; i < 8; i++) {
// ctx.strokeStyle = randomColor(40, 180);
// ctx.beginPath();
// ctx.moveTo(randomNum(0, width), randomNum(0, height));
// ctx.lineTo(randomNum(0, width), randomNum(0, height));
// ctx.stroke();
//}
/**绘制干扰点**/
for (var i = 0; i < 100; i++) {
ctx.fillStyle = randomColor(0, 255);
ctx.beginPath();
ctx.arc(randomNum(0, width), randomNum(0, height), 1, 0, 2 * Math.PI);
ctx.fill();
}
},
/*
* 目的:设置名称
* @return: 無
* 作者:John
*********************************************/
fnSetName = function () {
var oSupplierName = $('#SupplierName'),
sTranName = !oCurData.SupplierName ? oCurData.SupplierEName : oCurData.SupplierName;
if (sLang == 'zh-TW') {
oSupplierName.text(sTranName);
}
else if (sLang == 'zh') {
oSupplierName.text(sTranName);
}
},
/**
* 獲取資料
* @param: sQueryNum{String}查詢號碼
* @return 無
* 起始作者:John
* 起始日期:2017/01/05
* 最新修改人:John
* 最新修日期:2017/01/05
*/
fnGetData = function (sQueryNum) {
g_api.ConnectLite(Service.apite, 'GetTrackingProgress', {
QueryNum: sQueryNum,
IP: sIp,
IPInfo: sIPInfo
}, function (res) {
if (res.RESULT) {
fnReleseData(res.DATA.rel, sQueryNum);
}
}, null, null, i18next.t('message.Querying'));
},
fnReleseData = function (data, num) {
if (JSON.stringify(data) !== "{}") {
oCurData = data;
var sType = num.substr(2, 2),
sHtmlInfo = '',
fnReleaseObj = function (o) {
var saLi = [];
for (var key in o) {
if (typeof o[key] === 'object') {
var nobj = o[key];
nobj.keyName = key;
saLi.push(nobj);
}
}
saLi = saLi.sort(function (a, b) {
return new Date(a.Date === '' ? new Date() : a.Date) > new Date(b.Date === '' ? new Date() : b.Date);
});
return saLi;
},
myHelpers = {
checkFlowName: function (name) {
var bRtn = false;
if (name == 'IMPORT' || name.indexOf('RETURN') > -1) {
bRtn = true;
}
return bRtn;
},
setJson: function (val, name) {
var o = $.parseJSON(val);
return getJsonVal(o, name) || '';
},
setBtn: function (val, btntype, path) {
var o = $.parseJSON(val),
oBtn = $('<input>', {
type: 'button', class: 'btn btn-success signaturefile', value: '取得簽收證明', 'data-i18n': 'common.ObtainProofofDelivery', 'data-path': path, id: 'btn-' + btntype
});
if (!o.complete || !path) {
oBtn.attr('disabled', true);
}
return oBtn[0].outerHTML;
},
setInfo: function (val, type) {
var o = $.parseJSON(val),
saLi = fnReleaseObj(o),
saInfoHtml = [];
$.each(saLi, function (idx, li) {
if (li.Checked) {
saInfoHtml.push('<tr><td>' + (li.Date || '').substr(0, 10) + '</td><td style="text-align:center" data-i18n="' + type + '.' + li.keyName + '"></td><td>' + (li.Remark || '') + '</td></tr>');
}
});
return saInfoHtml.reverse().join('');
},
setFlow: function (val, type) {
var o = $.parseJSON(val),
saLi = fnReleaseObj(o),
sFlowHtml = $('<div>'),
bactive = false;
$.each(saLi, function (idx, li) {
if (li.Date !== undefined) {
var sChecked = li.Checked,
oLi = $('<li>', { class: 'step step-inactive', html: '<a href="#" data-i18n="' + type + '.' + li.keyName + '"></a>' }),
oDiv = $('<div hidden>');
if (sChecked) {
oLi.addClass('step-complete');
oDiv.addClass('div-complete');
}
else {
oLi.addClass('step-incomplete');
oDiv.addClass('div-incomplete');
}
if (!sChecked && !bactive) {
sFlowHtml.find('li:last').removeClass('step-inactive').addClass('step-active');
bactive = true;
}
sFlowHtml.append([oLi, oDiv]);
}
});
sFlowHtml.find('div').last().remove();
if (o.complete) {
sFlowHtml.find('li').last().addClass('step-all-complete');
}
return sFlowHtml.html();
},
setBillLadNOSub: function (val) {
return val.replaceAll('/', '<br>').replaceAll(',', '<br>').replaceAll(',', '<br>').replaceAll(';', '<br>').replaceAll(';', '<br>').replace('|', '<br>').replace('|', '<br>').replace('|', '<br>').replace('|', '<br>');
},
setSupplierName: function (cnname, enname) {
var sName = cnname;
if (!cnname) {
sName = enname || '';
}
return sName;
}
};
$.views.helpers(myHelpers);
sHtmlInfo = $('#temp_info').render(oCurData);
$('.shadow').hide();
$('.panel-info').html(sHtmlInfo);
$('hr').last().remove();
if (oCurData.Flows.length == 1) {
$('.tab-pane').css({ 'border-bottom': '0' });
}
if ((sType == '01' || sType == '03' || sType == '04') && oCurData.Flows.length == 1) {
$('.cusbuttons :input[id=btn-IMPORT]').remove().clone(true).prependTo('.toolbar');
}
else if (sType == '01' && oCurData.Flows.length > 1) {
$('.cusbuttons :input[id^=btn-RETURN]:last').remove().clone(true).prependTo('.toolbar');
}
$(".sidebar-1,.btnquery-next").click(function (e) {
$('.shadow').show();
$('.toolbar').hide();
$('#queryNum,#randomNum').val('');
$('.panel-info').html('');
});
$('.toolbar').show();
$(".btnprint").click(function (e) {
//window.print();
$(".panel-info").jqprint({ operaSupport: false });
});
if ($(".signaturefile").length > 0) {
$('.signaturefile').click(function (e) {
var sPath = $(this).attr('data-path'),
sFileName = $('#queryNum').val() + '_' + this.id.replace('btn-', '');
showWaiting(i18next.t('common.Downloading'));
DownLoadFile(sPath, sFileName);
});
}
transLang();
fnSetName();
}
else {
$('.errormsg').text(i18next.t('common.NoDataFound')).show();
}
fnDrawPic();
},
/*
* 初始化 function
* @param 無
* @return 無
* 起始作者:John
* 起始日期:2016/05/21
* 最新修改人:John
* 最新修日期:2016/11/03
*/
init = function () {
if (!g_db.SupportLocalStorage()) {
if (sLang == 'en') {
alert('The current browser does not support local storage. Please turn off private browsing settings');
}
else if (sLang == 'zh') {
alert('当前浏览器不支持本地储存,请关闭无痕浏览模式');
}
else {
alert('當前瀏覽器不支持本地儲存,請關閉私密瀏覽設定');
}
$('body').html('');
return;
}
if (sRefNumber) {
$('#queryNum').val(sRefNumber);
$('.form-group-material').eq(0).addClass('has-value');
}
materialForm();
$.ajax({
type: 'get',
jsonpCallback: "ipCallback",//callback的function名称
url: 'https://www.taobao.com/help/getip.php',
dataType: 'jsonp',
success: function (res) {
sIp = res.ip;
g_api.ConnectLite(Service.apiappcom, 'GetIPInfo', {
ip: sIp
}, function (res1) {
if (res1.RESULT) {
var oIpInfo = JSON.parse(res1.DATA.rel);
if (oIpInfo.code == 0) {
sIPInfo = Tostr(oIpInfo.data);
}
}
});
}
});
$('[data-value=zh-TW]').parent().hide();
$("#gotop").gotop({ content: 980, bottom: 60, margin: "none", position: "right", scrollTop: 100, duration: 700 });
fnDrawPic();
$("#changeImg").click(function (e) {
e.preventDefault();
fnDrawPic();
});
$(".btnquery").click(function () {
$('.errormsg').text('').hide();
var sQueryNum = $('#queryNum').val(),
sRandomNum = $('#randomNum').val(),
sMsg = '';
if (!sQueryNum) {
sMsg = i18next.t('message.QueryNO_required'); //請輸入查詢號碼;
}
else if (!sRandomNum) {
sMsg = i18next.t('message.RandomNO_required'); //請輸入驗證碼;
}
else if (sRandomCode !== sRandomNum) {
sMsg = i18next.t('message.RandomNO_Incorrect'); // 驗證碼不正確;
}
if (sMsg) {
$('.errormsg').text(sMsg).show();
return false;
}
var sWaitting = i18next.t('message.Waitting'); // 查詢中...;
fnGetData(sQueryNum)
});
$(document).on('keydown', function (e) {
if (e.keyCode === 13) {
$(".btnquery").click();
}
});
setLang(sLang);
};
init();
});