YYC
2023-05-12 50e355f5da5c366c81a92cfdbce95b3c7ffdc1ae
igds-app/js/admin/inout-in-handle-list.js
@@ -13,13 +13,24 @@
      "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;
   
   //获取入库待值仓列表
@@ -30,7 +41,7 @@
function getInHandleList() {
   inHandleData = null;
   
   //赋值参数的日期
   //查询的车牌号
   data.data.plateNum = mui("#plateNum")[0].value;
   //请求
@@ -53,38 +64,322 @@
         mui.alert("系统繁忙,请重试!", "提示", ["确定"], function() {}, "div")
      }
   })
   inHandleData = [{
         "id": "44",
         "plateNum": "97",
         "deHandle": "ut",
         "depotId": "16",
         "depotName": "青张列做总",
         "foodVariety": "magna pariatur laboris sunt dolor",
         "foodVarietyName": "提清除",
         "foodLevel": "fugiat",
         "foodLevelName": "应发热四民是始",
         "storeKeeperName": ""
      },
      {
         "id": "62",
         "plateNum": "71",
         "deHandle": "dolore ut non",
         "depotId": "79",
         "depotName": "增象定立样",
         "foodVariety": "Lorem est",
         "foodVarietyName": "市条群求被团两",
         "foodLevel": "ex labore",
         "foodLevelName": "持在写称情并",
         "storeKeeperName": "2"
      },
      {
         "id": "96",
         "plateNum": "61",
         "deHandle": "nulla magna ut proident cillum",
         "depotId": "42",
         "depotName": "条全他",
         "foodVariety": "aliquip",
         "foodVarietyName": "连开阶动际干",
         "foodLevel": "in id sunt",
         "foodLevelName": "没置定使文",
         "storeKeeperName": "3"
      },
      {
         "id": "61",
         "plateNum": "17",
         "deHandle": "commodo",
         "depotId": "80",
         "depotName": "展观快火全领",
         "foodVariety": "voluptate eu Lorem",
         "foodVarietyName": "他边派斯重离",
         "foodLevel": "dolor",
         "foodLevelName": "装第上",
         "storeKeeperName": "4"
      }
   ]
}
//渲染页面
function renderData() {
   var html = '';
   if(inHandleData){
      if (inHandleData && inHandleData.length > 0) {
         $.each(inHandleData, function(index, item) {
            html += '<li><div class="con"><div class="top">';
            html += '<div class="info">车牌号: <b>' + (item.plateNum == null ? "" : item.plateNum) +'</b></div>';
            html += '<a href="" class="link">值仓<span class="mui-icon mui-icon-arrowright"></span></a>';
            html += '</div><div class="box">';
            html += '<div class="item"><div class="conbox" style="background-image: url(images/icons/g-i19.png);">';
            html += '<div class="h3">' + (item.depotName == null ? "" : item.depotName) + '</div>';
            html += '<div class="bot">目标仓库</div></div></div>';
            html += '<div class="item"><div class="conbox" style="background-image: url(images/icons/g-i20.png);">';
            html += '<div class="h3">' + (item.foodVarietyName == null ? "" : item.foodVarietyName) + '</div>';
            html += '<div class="bot">粮食品种</div></div></div>';
            html += '<div class="item"><div class="conbox" style="background-image: url(images/icons/g-i21.png);">';
            html += '<div class="h3">' + (item.foodLevelName == null ? "" : item.foodLevelName) + '</div>';
            html += '<div class="bot">粮食等级</div></div></div>';
            html += '</div></div></li>';
         })
      } else {
         html += '<li><div class="con"><div style="text-align: center;font-size: 20px;color:#dd524d;padding-top: 16px;">暂无入库待值仓信息</div></div></li>';
      }
   }else{
      html += '<li><div class="con"><div style="text-align: center;font-size: 20px;color:#dd524d;padding-top: 16px;">暂无入库待值仓信息</div></div></li>';
   if (inHandleData && inHandleData.length > 0) {
      $.each(inHandleData, function(index, item) {
         html += '<li><div class="con"><div class="top">';
         html += '<div class="info">车牌号: <b>' + (item.plateNum == null ? "" : item.plateNum) +'</b></div>';
         html += '<a href="" id = "' + item.id + '" plateNum = "' + item.plateNum + '" depotName = "' + item.depotName + '" storeKeeperName = "' + (item.storeKeeperName == "" || item
               .storeKeeperName == "" ? '--' : item.storeKeeperName) + '" class="link">值仓<span class="mui-icon mui-icon-arrowright"></span></a>';
         html += '</div><div class="box">';
         html += '<div class="item"><div class="conbox" style="background-image: url(images/icons/g-i19.png);">';
         html += '<div class="h3">' + (item.depotName == null ? "" : item.depotName) + '</div>';
         html += '<div class="bot">目标仓库</div></div></div>';
         html += '<div class="item"><div class="conbox" style="background-image: url(images/icons/g-i20.png);">';
         html += '<div class="h3">' + (item.foodVarietyName == null ? "" : item.foodVarietyName) + '</div>';
         html += '<div class="bot">粮食品种</div></div></div>';
         html += '<div class="item"><div class="conbox" style="background-image: url(images/icons/g-i21.png);">';
         html += '<div class="h3">' + (item.foodLevelName == null ? "" : item.foodLevelName) + '</div>';
         html += '<div class="bot">粮食等级</div></div></div>';
         html += '</div></div></li>';
      })
   } else {
      html += '<li><div class="con"><div style="text-align: center;font-size: 20px;color:#dd524d;padding-top: 18px;">暂无入库待值仓信息</div></div></li>';
   }
   $("#handleList").html(html);
}
//功能模块跳转
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")
   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.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.TAG_DISCOVERED" == intent.getAction()) {  //真机调试
   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成功,赋值并发送请求查询
         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(data1),
      success: function(result) {
         if (result.code == "0000") {
            //弹窗信息:单子车牌跟仓库,去值仓则进入值仓页面,传递单子id;
            var btnArray = ["去值仓", "取消"];
            var text = '值仓仓库:' + result.data.depotName + '<br/>车牌号:' + result.data.plateNum + '<br/>保管员:' + result.data.plateNum
            mui.confirm(text, "检测到待值仓信息如下", btnArray, function(e) {
               if (e.index == 0) {
                  //先判断单子是否在值仓状态
                  if (result.data.progress == "HANDLE") {
                     //去值仓时判断单子类型是否是入库,不是给出提醒;
                     if (result.data.type == "IN") {
                        mui.openWindow({
                           url: "inout-in-handle.html",
                           id: "inout-in-handle",
                           extras: {
                              data: {
                                 serialNumber: result.data.id,
                                 plateNum: result.data.plateNum,
                                 depotName: result.data.depotName,
                                 storeKeeperName: result.data.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;
}
//滑动
mui('.mui-scroll-wrapper').scroll({
   indicators: false, //是否显示滚动条