siminfo.1.js 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539
  1. var parentUserName = $('#parentUserName', parent.document).html();
  2. if (!(parentUserName == 'admin' || parentUserName == 'user')) {
  3. $('.rechargeA').remove();
  4. }else{
  5. $('.rechargeA').show();
  6. }
  7. function strToObj(str) {
  8. str = str.replace(/&/g, "','");
  9. str = str.replace(/=/g, "':'");
  10. str = "({'" + str + "'})";
  11. obj = eval(str);
  12. return obj;
  13. }
  14. function Fill_null_Table(table_id) {
  15. var table = document.getElementById(table_id).children[1];
  16. var row = table.insertRow(table.rows.length);
  17. var c1 = row.insertCell(0);
  18. c1.setAttribute('colspan', '16');
  19. c1.setAttribute('class', 'nullData');
  20. c1.innerHTML = "暂无数据";
  21. }
  22. function Fill_Table(table_id, dat) {
  23. var table = document.getElementById(table_id).children[1];
  24. for (var i = 0; i < dat.length; i++) {
  25. var row = table.insertRow(table.rows.length);
  26. var c1 = row.insertCell(0);
  27. c1.innerHTML = '<div class="deviceId">' + dat[i].equip_id + '</div>';
  28. var c2 = row.insertCell(1);
  29. if (dat[i].equip_name == "") c2.innerHTML = "无";
  30. else c2.innerHTML = dat[i].equip_name;
  31. var c3 = row.insertCell(2);
  32. if (dat[i].iccid) {
  33. c3.innerHTML = dat[i].iccid;
  34. } else {
  35. c3.innerHTML = '暂无SIM卡数据';
  36. }
  37. var c4 = row.insertCell(3);
  38. if (dat[i].iccid) {
  39. c4.innerHTML = dat[i].msisdn;
  40. } else {
  41. c4.innerHTML = '--';
  42. }
  43. var c5 = row.insertCell(4);
  44. var status;
  45. if (dat[i].account_status == "0") {
  46. status = "未知";
  47. } else if (dat[i].account_status == "1") {
  48. status = "测试期";
  49. } else if (dat[i].account_status == "2") {
  50. status = "沉默期";
  51. } else if (dat[i].account_status == "3") {
  52. status = "使用中";
  53. } else if (dat[i].account_status == "4") {
  54. status = "停机";
  55. } else if (dat[i].account_status == "5") {
  56. status = "停机保号";
  57. } else if (dat[i].account_status == "6") {
  58. status = "预销号";
  59. } else if (dat[i].account_status == "7") {
  60. status = "销号";
  61. }
  62. if (dat[i].iccid) {
  63. c5.innerHTML = status;
  64. } else {
  65. c5.innerHTML = '--';
  66. }
  67. var c6 = row.insertCell(5);
  68. if (dat[i].iccid) {
  69. c6.innerHTML = dat[i].data_plan;
  70. } else {
  71. c6.innerHTML = '--';
  72. }
  73. var c7 = row.insertCell(6);
  74. if (dat[i].iccid) {
  75. c7.innerHTML = dat[i].data_usage;
  76. } else {
  77. c7.innerHTML = '--';
  78. }
  79. var c8 = row.insertCell(7);
  80. if (dat[i].iccid) {
  81. c8.innerHTML = dat[i].data_balance;
  82. } else {
  83. c8.innerHTML = '--';
  84. }
  85. var c9 = row.insertCell(8);
  86. if (dat[i].iccid) {
  87. var timestamp4 = new Date(dat[i].expiry_date * 1000);//直接用 new Date(时间戳) 格式转化获得当前时间
  88. c9.innerHTML = timestamp4.toLocaleDateString().replace(/\//g, "-") + " " + timestamp4.toTimeString().substr(0, 8);
  89. } else {
  90. c9.innerHTML = '--';
  91. }
  92. }
  93. }
  94. // 时间插件初始化
  95. layui.use('laydate', function () {
  96. var laydate = layui.laydate;
  97. //执行一个laydate实例
  98. laydate.render({
  99. elem: '#timSelectBox' //指定元素
  100. , range: true
  101. , done: function (value, date) {
  102. var dateArray = value.split(' - ')
  103. $('#begin').val(dateArray[0])
  104. $('#end').val(dateArray[1])
  105. }
  106. });
  107. });
  108. //筛选:
  109. function sub_filter() {
  110. var formdata = $('#sub_filter').serialize();
  111. var form = strToObj(formdata);
  112. $("#datatable tr:not(:first)").html("");
  113. $.ajax({
  114. type: "post",
  115. url: "equiplist_filter",
  116. data: {
  117. f_type: form['type'],
  118. f_id: form['identity'],
  119. f_tbegin: form['begin'],
  120. f_tend: form['end'],
  121. page: 1
  122. },
  123. dataType: "json",
  124. success: function (data) {
  125. // js循环读取json数据
  126. if (data.dat.length > 0) {
  127. Fill_Table('datatable', data.dat);
  128. $('#page').parent().show();
  129. } else {
  130. Fill_null_Table('datatable');
  131. $('#page').parent().hide();
  132. }
  133. var datas = {
  134. f_type: form['type'],
  135. f_id: form['identity'],
  136. f_tbegin: form['begin'],
  137. f_tend: form['end'],
  138. page: '1'
  139. }
  140. initSearchPage(data.nums, 'equiplist_filter', datas);
  141. if ($('.content').height() > 750) {
  142. $('#iframe-main', parent.document).css('height', $('.content').height() + 20)
  143. } else {
  144. $('#iframe-main', parent.document).css('height', '750px')
  145. }
  146. }
  147. });
  148. }
  149. layui.use('laypage', function () {
  150. var laypage = layui.laypage;
  151. laypage.render({
  152. elem: 'page' //注意,这里的 test1 是 ID,不用加 # 号
  153. // ,count: 30
  154. , count: $('#totalPage').val()
  155. , theme: '#428BCA'
  156. , layout: ['prev', 'page', 'next', 'skip']
  157. , jump: function (obj) {
  158. $("#datatable tr:not(:first)").html("");
  159. $.ajax({
  160. type: 'post',
  161. url: 'siminfo',
  162. data: {
  163. req: "reqdat",
  164. page: obj.curr
  165. },
  166. dataType: "json",
  167. beforeSend: function () {
  168. $('#loadingParent').show();
  169. },
  170. complete: function () {
  171. $('#loadingParent').hide();
  172. },
  173. success: function (data) {
  174. // js循环读取json数据
  175. if (data.length > 0) {
  176. Fill_Table('datatable', data);
  177. $('#page').parent().show();
  178. } else {
  179. Fill_null_Table('datatable');
  180. $('#page').parent().hide();
  181. }
  182. if ($('.content').height() > 750) {
  183. $('#iframe-main', parent.document).css('height', $('.content').height() + 20)
  184. } else {
  185. $('#iframe-main', parent.document).css('height', '750px')
  186. }
  187. }
  188. })
  189. }
  190. });
  191. });
  192. //搜索分页
  193. function initSearchPage(page, url, datas) {
  194. layui.use('laypage', function () {
  195. var laypage = layui.laypage;
  196. laypage.render({
  197. elem: 'page' //注意,这里的 test1 是 ID,不用加 # 号
  198. // , count: 30
  199. , count: page
  200. , theme: '#428BCA'
  201. , layout: ['prev', 'page', 'next', 'skip']
  202. , jump: function (obj, first) {
  203. datas.page = obj.curr;
  204. if (!first) {
  205. $.ajax({
  206. url: url,
  207. type: 'post',
  208. data: datas,
  209. dataType: 'json',
  210. success: function (data) {
  211. $("#datatable tr:not(:first)").html("");
  212. if (data.dat.length > 0) {
  213. Fill_Table('datatable', data.dat);
  214. } else {
  215. Fill_null_Table('datatable');
  216. }
  217. if ($('.content').height() > 750) {
  218. $('#iframe-main', parent.document).css('height', $('.content').height() + 20)
  219. } else {
  220. $('#iframe-main', parent.document).css('height', '750px')
  221. }
  222. }
  223. })
  224. }
  225. }
  226. });
  227. });
  228. }
  229. // 充值
  230. function rechargeFun() {
  231. layui.use('layer', function () {
  232. var layer = layui.layer;
  233. layer.prompt({ formType: 0, title: '请输入iccid' }, function (text, index) {
  234. $.ajax({
  235. url: 'iccid_select',
  236. type: 'post',
  237. dataType: 'json',
  238. data: {
  239. iccid: text,
  240. },
  241. success: function (data) {
  242. if (data.code == 0) {
  243. $('#voucherModel .currIccid').val(text);
  244. var dat = data.data.products;
  245. if(dat.length){
  246. var html = '';
  247. for(var i = 0;i<dat.length;i++){
  248. var name = dat[i].product_name.split('/');
  249. html += '<div class="layui-col-xs4"><div class="recharge-demo">'+
  250. '<input type="hidden" value="'+dat[i].product_id+'" class="product_id"><div class="recharge-name">'+name[0]+'B</div>'+
  251. '<div><div class="price">'+dat[i].price+'<span>元</span></div><div class="desc">'+dat[i].added_month+'个月每月'+name[0]+'b</div>'+
  252. '</div><div class="switchIcon"></div></div></div>';
  253. if(i == dat.length-1){
  254. $('#voucherModel .layui-row').html(html);
  255. }
  256. }
  257. }
  258. layer.open({
  259. type: 1
  260. , title: false //不显示标题栏
  261. , closeBtn: false
  262. , area: '800px;'
  263. , shade: 0.3
  264. , id: 'LAY_layuipro' //设定一个id,防止重复弹出
  265. // , btn: ['我知道了']
  266. , btnAlign: 'c'
  267. , moveType: 1 //拖拽模式,0或者1
  268. , content: $('#voucherModel')
  269. , success: function (layero) {
  270. }
  271. });
  272. layer.close(index);
  273. } else if (data.code == "1") {
  274. layer.msg('操作失败!');
  275. } else if (data.code == "2") {
  276. layer.msg('错误参数!');
  277. } else if (data.code == "4") {
  278. layer.msg('没有权限!');
  279. } else if (data.code == "99") {
  280. layer.msg('服务器错误!');
  281. } else {
  282. layer.msg('未知错误!');
  283. }
  284. },
  285. error:function(type){
  286. layer.msg('请求失败!')
  287. layer.close(index);
  288. }
  289. })
  290. });
  291. });
  292. }
  293. // 套餐筛选
  294. $('.rechargeParent').on('click','.recharge-demo',function(){
  295. $('.rechargeParent .recharge-demo').removeClass('active');
  296. $(this).addClass('active');
  297. $('.increaseBtnDiv .increaseVal').val(1);
  298. })
  299. //减数量
  300. function reductionOf(obj) {
  301. //减前判断
  302. if ($(obj).next().val() == '') {
  303. $(obj).next().val(1);
  304. }
  305. if(parseInt($(obj).next().val()) - 1 > 0){
  306. $(obj).next().val(parseInt($(obj).next().val()) - 1);//数值减
  307. $(obj).next().val($(obj).next().val());//赋值给框
  308. }
  309. };
  310. //加数量
  311. function add(obj) {
  312. //加前判断
  313. if ($(obj).prev().val() == '') {
  314. $(obj).prev().val(1);
  315. }
  316. $(obj).prev().val(parseInt($(obj).prev().val()) + 1);//数值加
  317. $(obj).prev().val($(obj).prev().val());//赋值给框
  318. };
  319. //校验数字格式(只能输入正整数)
  320. function checkNumber(obj) {
  321. var reg = /^[1-9]\d*$/;
  322. if (!reg.test($(obj).val()) || $(obj).val() == '') {
  323. $(obj).val(1);
  324. }
  325. }
  326. // 确定充值
  327. function confirmFun(){
  328. if(!$('.recharge-demo.active').length){
  329. layer.msg('请选择一项套餐');
  330. return false;
  331. }
  332. var curActive = $('.recharge-demo.active');
  333. var productId = curActive.find('.product_id').val();
  334. var currIccid = $('.currIccid').val();
  335. var num = $('.increaseBtnDiv .increaseVal').val();
  336. $.ajax({
  337. url:'iccid_pay',
  338. type:'post',
  339. data:{
  340. product_id:productId,
  341. iccid:currIccid,
  342. num:num
  343. },
  344. dataType:'json',
  345. success:function(data){
  346. if(data.code == 0){
  347. layer.msg('充值成功!');
  348. } else if (data.code == "1") {
  349. layer.msg('操作失败!');
  350. } else if (data.code == "2") {
  351. layer.msg('错误参数!');
  352. } else if (data.code == "4") {
  353. layer.msg('没有权限!');
  354. } else if (data.code == "99") {
  355. layer.msg('服务器错误!');
  356. } else {
  357. layer.msg('未知错误!');
  358. }
  359. cancelFun();
  360. },
  361. error:function(type){
  362. console.log(type)
  363. }
  364. })
  365. }
  366. // 取消
  367. function cancelFun(){
  368. layer.closeAll();
  369. }
  370. // 绑定设备查询
  371. function examineEquip() {
  372. layui.use('layer', function () {
  373. var layer = layui.layer;
  374. var index = layer.prompt({ title: '绑定设备查询', formType: 0, title: '请输入iccid' }, function (text, index) {
  375. $.ajax({
  376. url: 'reverse_lookup',
  377. type: 'post',
  378. dataType: 'json',
  379. data: {
  380. simid: text,
  381. },
  382. success: function (data) {
  383. var dat = data.data;
  384. if (data.length) {
  385. // 获取位置
  386. var geoc = new BMap.Geocoder();
  387. $('#curIccid').html('iccid:' + text)
  388. var html = '';
  389. for (var i = 0; i < data.length; i++) {
  390. (function (i) {
  391. // 经纬度装换
  392. var lng1 = wgs84togcj02(data[i].lng, data[i].lat);
  393. var lng2 = gcj02tobd09(lng1[0], lng1[1]);
  394. var pt = new BMap.Point(lng2[0], lng2[1]);
  395. geoc.getLocation(pt, function (rs) {
  396. var addComp = rs.addressComponents;
  397. html += '<div>IMEI:' + data[i].id + '<br />经度:' + data[i].lat + '<br />纬度:' + data[i].lng + '<br />地区:' + addComp.province + ", " + addComp.city + ", " + addComp.district + '<br />离线时间:' + data[i].offtime + '</div>'
  398. if (i + 1 == data.length) {
  399. $('#bindingRes').html(html);
  400. var layuiopen = layer.open({
  401. type: 1
  402. , title: false //不显示标题栏
  403. , closeBtn: false
  404. , area: '400px;'
  405. , shade: 0.8
  406. , id: 'LAY_layuipro' //设定一个id,防止重复弹出
  407. , btn: ['我知道了']
  408. , btnAlign: 'c'
  409. , moveType: 1 //拖拽模式,0或者1
  410. , content: $('#bindingEquipBox')
  411. , success: function (layero) { }
  412. , yes: function (layero) {
  413. $('#bindingEquipBox').hide()
  414. layer.close(layuiopen)
  415. }
  416. });
  417. layer.close(index);
  418. }
  419. })
  420. }(i))
  421. }
  422. } else {
  423. layer.msg('暂无设备!');
  424. // layer.close(index);
  425. }
  426. }
  427. })
  428. });
  429. });
  430. }
  431. // sim卡查询
  432. function examineSIM() {
  433. layui.use('layer', function () {
  434. var layer = layui.layer;
  435. layer.prompt({ title: 'SIM卡查询', formType: 0, title: '请输入iccid' }, function (text, index) {
  436. $.ajax({
  437. url: 'siminfo',
  438. type: 'post',
  439. dataType: 'json',
  440. data: {
  441. simid: text,
  442. },
  443. success: function (data) {
  444. var dat = data.data;
  445. if (data.code == 0) {
  446. var status;
  447. if (dat.account_status == "0") {
  448. status = "未知";
  449. } else if (dat.account_status == "1") {
  450. status = "测试期";
  451. } else if (dat.account_status == "2") {
  452. status = "沉默期";
  453. } else if (dat.account_status == "3") {
  454. status = "使用中";
  455. } else if (dat.account_status == "4") {
  456. status = "停机";
  457. } else if (dat.account_status == "5") {
  458. status = "停机保号";
  459. } else if (dat.account_status == "6") {
  460. status = "预销号";
  461. } else if (dat.account_status == "7") {
  462. status = "销号";
  463. }
  464. var usage;
  465. if (dat.iccid) {
  466. usage = dat.data_usage;
  467. } else {
  468. usage.innerHTML = '--';
  469. }
  470. var balance;
  471. if (dat.iccid) {
  472. balance = dat.data_balance;
  473. } else {
  474. balance = '--';
  475. }
  476. var time;
  477. if (dat.iccid) {
  478. var timestamp4 = new Date(dat.expiry_date * 1000);//直接用 new Date(时间戳) 格式转化获得当前时间
  479. time = timestamp4.toLocaleDateString().replace(/\//g, "-") + " " + timestamp4.toTimeString().substr(0, 8);
  480. } else {
  481. time = '--';
  482. }
  483. layer.open({
  484. type: 1
  485. , title: false //不显示标题栏
  486. , closeBtn: false
  487. , area: '300px;'
  488. , shade: 0.8
  489. , id: 'LAY_layuipro' //设定一个id,防止重复弹出
  490. , btn: ['我知道了']
  491. , btnAlign: 'c'
  492. , moveType: 1 //拖拽模式,0或者1
  493. , content: '<div style="padding: 50px; line-height: 22px; background-color: #393D49; color: #fff; font-weight: 300;">SIM卡查询结果<br>ICCID:' + text + '<br><br>状态:' + status + '<br>套餐:' + dat.data_plan + 'Mb<br>已用流量:' + usage + 'Mb<br>剩余流量:' + balance + 'Mb<br>到期时间:' + time + '</div>'
  494. , success: function (layero) {
  495. }
  496. });
  497. layer.close(index);
  498. } else {
  499. layer.msg('查询失败!');
  500. }
  501. }
  502. })
  503. });
  504. });
  505. }