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
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();
|
|
});
|