var url = null;
var inHandleData = null;
var data = {
"interfaceId": "5206",
"sign": "10206",
"outId": "10206",
"reqDateTime": new Date(),
"tokenAuth": "",
"data": {
"deptId": "",
"type": "IN",
"plateNum": "",
"intelCard": ""
}
};
var data1 = {
"interfaceId": "5208",
"outId": "10208",
"reqDateTime": new Date(),
"tokenAuth": "",
"data": {
"type": "IN",
"id": "",
"intelCard": ""
}
};
//初始化数据
function init() {
var user = JSON.parse(localStorage.getItem('user'));
var selectDeptId = JSON.parse(localStorage.getItem('selectDeptId'));
url = user.url + "/api/phone/v35/gateway";
data.tokenAuth = user.tokenAuth;
data1.tokenAuth = user.tokenAuth;
data.data.deptId = selectDeptId;
//获取入库待值仓列表
getInHandleList();
}
window.addEventListener('refresh2', function(e){//执行刷新
getInHandleList();
});
//查询入库记录
function getInHandleList() {
inHandleData = null;
//查询的车牌号
data.data.plateNum = mui("#plateNum")[0].value;
//请求
mui.ajax(url, {
type: "POST",
dataType: "json",
crossDomain: true,
contentType: "application/json;charset=utf-8",
data: JSON.stringify(data),
success: function(result) {
if (result.code == "0000") {
inHandleData = result.data;
renderData();
} else {
renderData();
mui.toast(result.msg);
}
},
error: function() {
mui.alert("系统繁忙,请重试!", "提示", ["确定"], function() {}, "div")
}
})
}
//渲染页面
function renderData() {
var html = '';
if (inHandleData && inHandleData.length > 0) {
$.each(inHandleData, function(index, item) {
html += '
';
html += '
车牌号: ' + (item.plateNum == null ? "" : item.plateNum) + '
';
html += '
值仓';
html += '
';
html +=
'
';
html += '
' + (item.depotName == null ? "" : item.depotName) + '
';
html += '
目标仓库
';
html +=
'
';
html += '
' + (item.foodVarietyName == null ? "" : item.foodVarietyName) + '
';
html += '
粮食品种
';
html +=
'
';
html += '
' + (item.foodLevelName == null ? "" : item.foodLevelName) + '
';
html += '
粮食等级
';
html += '
';
})
} else {
html +=
'';
}
$("#handleList").html(html);
}
//查询
mui(".g-sobox").on("tap", ".row button", function() {
var plateNum = mui("#plateNum")[0].value
data.data.plateNum = plateNum;
getInHandleList();
})
//功能模块跳转
mui(".mui-scroll-wrapper").on("tap", ".mui-scroll ul li a", function() {
var id = this.getAttribute("id");
var depotName = this.getAttribute("depotName")
var plateNum = this.getAttribute("plateNum")
var storeKeeperName = this.getAttribute("storeKeeperName")
console.log(JSON.stringify(storeKeeperName))
var picker = new mui.PopPicker();
picker.setData([{
value: "photo",
text: "现场值仓"
}, {
value: "snap",
text: "远程值仓"
}])
picker.pickers[0].setSelectedValue('photo');
picker.show(function(SelectedItem) {
console.log(JSON.stringify(SelectedItem));
//现场值仓
if (SelectedItem[0].value == 'photo') {
mui.openWindow({
url: "inout-in-handle.html",
id: "inout-in-handle",
extras: {
data: {
serialNumber: id,
plateNum: plateNum,
depotName: depotName,
storeKeeperName: storeKeeperName
}
}
})
} else { //远程值仓
mui.openWindow({
url: "inout-in-handle.html",
id: "inout-in-handle",
extras: {
data: {
serialNumber: id,
plateNum: plateNum,
depotName: depotName,
storeKeeperName: storeKeeperName
}
}
})
}
})
});
/*---------------NFC读卡功能-------------------*/
var waiting;
var readyRead = false;
//读卡方法
function readCard() {
readyRead = true;
listenNFCStatus();
}
var NfcAdapter;
var NdefRecord;
var NdefMessage;
var count = 0;
//监听NFC状态
function listenNFCStatus() {
try {
var main = plus.android.runtimeMainActivity();
var Intent = plus.android.importClass('android.content.Intent');
var Activity = plus.android.importClass('android.app.Activity');
var PendingIntent = plus.android.importClass('android.app.PendingIntent');
var IntentFilter = plus.android.importClass('android.content.IntentFilter');
NfcAdapter = plus.android.importClass('android.nfc.NfcAdapter');
var nfcAdapter = NfcAdapter.getDefaultAdapter(main);
//判断设备是否支持NFC功能
if (nfcAdapter == null) {
mui.alert("设备不支持NFC功能!", '提示', ["确定"], function() {}, "div");
return;
}
//判断设备是否开启NFC功能
if (!nfcAdapter.isEnabled()) {
mui.alert("请在系统设置中启用NFC功能!", '提示', ["确定"], function() {}, "div");
return;
}
waiting = plus.nativeUI.showWaiting("请将NFC标签靠近!");
//倒计时10秒,读取不到后提示是否重新读卡
var interval = setInterval(function() {
//定义定时器
count++;
if (count == 10 && readyRead) {
readyRead = false;
count = 0;
waiting.close();
//清除定时器
clearInterval(interval);
var btnArray = ["重试", "取消"];
mui.confirm("已超时,是否重新读卡!", "提示", btnArray, function(e) {
if (e.index == 0) {
readCard();
}
}, "div")
}
}, 1000);
var intent = new Intent(main, main.getClass());
intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
var pendingIntent = PendingIntent.getActivity(main, 0, intent, 0);
var ndef = new IntentFilter("android.nfc.action.TECH_DISCOVERED");
ndef.addDataType("*/*");
var intentFiltersArray = [ndef];
var techListsArray = [
["android.nfc.tech.IsoDep"],
["android.nfc.tech.NfcA"],
["android.nfc.tech.NfcB"],
["android.nfc.tech.NfcF"],
["android.nfc.tech.Ndef"],
["android.nfc.tech.NfcV"],
["android.nfc.tech.NdefFormatable"],
["android.nfc.tech.MifareClassic"],
["android.nfc.tech.MifareUltralight"]
];
document.addEventListener("newintent",
function() {
setTimeout(readData, 1000);
}, false);
document.addEventListener("pause",
function(e) {
if (nfcAdapter) {
nfcAdapter.disableForegroundDispatch(main);
}
}, false);
document.addEventListener("resume",
function(e) {
if (nfcAdapter) {
nfcAdapter.enableForegroundDispatch(main, pendingIntent, intentFiltersArray, techListsArray);
}
}, false);
nfcAdapter.enableForegroundDispatch(main, pendingIntent, intentFiltersArray, techListsArray);
} catch (e) {
mui.toast("读卡失败,请重试!");
waiting.close();
}
}
//读取数据
function readData() {
NdefRecord = plus.android.importClass("android.nfc.NdefRecord");
NdefMessage = plus.android.importClass("android.nfc.NdefMessage");
var main = plus.android.runtimeMainActivity();
var intent = main.getIntent();
if ("android.nfc.action.TECH_DISCOVERED" == intent.getAction()) { //打包时
if (readyRead) {
readyRead = false;
waiting.setTitle('请勿移开标签\n正在读取数据...');
var Parcelable = plus.android.importClass("android.os.Parcelable");
//读取id
var byteId = intent.getByteArrayExtra(NfcAdapter.EXTRA_ID);
//将id转为16进制字符串
var id = ByteArrayToHexString(byteId);
//关闭等待圆圈
waiting.close();
id = tran_LH8(id);
//读取id成功,赋值并发送请求查询
data1.data.intelCard = id;
getInoutDetail();
}
} else {
waiting.close();
mui.alert('读取失败,请重试!', '提示', ["确定"], function() {}, "div");
}
}
//获取值仓单子详细信息
function getInoutDetail() {
mui.ajax(url, {
type: "POST",
dataType: "json",
crossDomain: true,
contentType: "application/json;charset=utf-8",
data: JSON.stringify(data),
success: function(result) {
if (result.code == "0000") {
//弹窗信息:单子车牌跟仓库,去值仓则进入值仓页面,传递单子id;
var btnArray = ["去值仓", "取消"];
var text = '值仓仓库:' + result.data[0].depotName + '
车牌号:' + result.data[0].plateNum +
'
保管员:' + result.data[0].storeKeeperName
mui.confirm(text, "检测到待值仓信息如下", btnArray, function(e) {
if (e.index == 0) {
//先判断单子是否在值仓状态
if (result.data[0].progress == "HANDLE") {
//去值仓时判断单子类型是否是入库,不是给出提醒;
if (result.data[0].type == "IN") {
mui.openWindow({
url: "inout-in-handle.html",
id: "inout-in-handle",
extras: {
data: {
serialNumber: result.data[0].id,
plateNum: result.data[0].plateNum,
depotName: result.data[0].depotName,
storeKeeperName: result.data[0].storeKeeperName
}
}
})
} else {
mui.alert("该卡信息不是入库类型,请核对!", "提示", ["确定"], function() {}, "div")
}
} else {
mui.alert("当前卡不在值仓状态,请核查!", "提示", ["确定"], function() {}, "div")
}
}
}, "div")
} else {
mui.toast(result.msg);
}
},
error: function() {
mui.alert('系统繁忙,请重试!', '提示', ["确定"], function() {}, "div");
}
})
}
//将字节数组转为16进制字符串
function ByteArrayToHexString(inarray) {
var i, j, inn;
hex = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F"];
out = "";
for (j = 0; j < inarray.length; ++j) {
inn = inarray[j] & 0xff;
i = (inn >>> 4) & 0x0f;
out += hex[i];
i = inn & 0x0f;
out += hex[i];
}
return out;
}
//16进制字符串 高低换位 8个字符
function tran_LH8(info) {
var tag = tran_LH(info.substring(4)) + tran_LH(info.substring(0, 4));
return hex2int(tag);
}
//16进制字符串 高低换位 4个字符
function tran_LH(info) {
return info.substring(2) + info.substring(0, 2);
}
function hex2int(hex) {
var len = hex.length,
a = new Array(len),
code;
for (var i = 0; i < len; i++) {
code = hex.charCodeAt(i);
if (48 <= code && code < 58) {
code -= 48;
} else {
code = (code & 0xdf) - 65 + 10;
}
a[i] = code;
}
return a.reduce(function(acc, c) {
acc = 16 * acc + c;
return acc;
}, 0);
}
//滑动
mui('.mui-scroll-wrapper').scroll({
indicators: false, //是否显示滚动条
deceleration: 0.0006, //阻尼系数,系数越小滑动越灵敏
bounce: false, //是否启用回弹
deceleration: 0.0005 //flick 减速系数,系数越大,滚动速度越慢,滚动距离越小,默认值0.0006
});