resume.blade.php 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276
  1. @extends('app.hardware.layout.hardware')
  2. @push('meta')
  3. @endpush
  4. @push('css')
  5. <link rel="stylesheet" href="{{theme_asset('app/css/pad/style.css')}}" />
  6. <link rel="stylesheet" href="{{theme_asset('app/css/pad/resume_read.css')}}"/>
  7. @endpush
  8. @push('js')
  9. <script type="text/javascript" src="{{theme_asset('app/js/pad/layer.js')}}"></script>
  10. <!--平板身份证读取-->
  11. <script type="text/javascript" src="{{theme_asset('app/js/pad/AndroidJSTest.js')}}"></script>
  12. <script type="text/javascript" src="{{theme_asset('app/js/pad/socket.io.js')}}"></script>
  13. @endpush
  14. @section('content')
  15. <header class="global-header">
  16. <div class="header-left" style="display:none;">
  17. <a href="{{route('hardware.pad.index')}}" class="header-back" id="pageback"><i class="w-icon w-icon-home"></i></a>
  18. </div>
  19. <div class="menu_title"><span class="title-only">投递简历</span></div>
  20. <div class="header-right">
  21. <a href="{{route('hardware.pad.index')}}" class="header-back" id="pageback"><i class="w-icon w-icon-home"></i></a>
  22. </div>
  23. </header>
  24. <div class="content" id="content" style="margin-top:62px;">
  25. <form method="POST" action="--WEBBOT-SELF--" name="form1">
  26. <div style="width:100%;position:fixed;top:62px;">
  27. <div style="width:860px;margin:auto;">
  28. <div class="remind">请在读取身份证、二维码之前,先点击以下对应按钮</div>
  29. <div class="scan_idcard">
  30. <input type="button" value="读取身份证" class="btn" style="margin-right:3%;" id="btnStartReadIDCard" >
  31. </div>
  32. <div class="scan_phone">
  33. <input type="button" value="读取二维码" class="btn" style="margin-right:3%;" id="qr_code" >
  34. </div>
  35. <div class="clear"></div>
  36. </div>
  37. <input type="button" id="back_b" value="返回首页" class="btn back_btn" name="ReadCardBtn" onClick="bake_home()">
  38. {{--<input type="button" value="填写简历" class="btn" name="ReadCardBtn" onClick="writeResume()">--}}
  39. </div>
  40. <div id="output" ></div>
  41. </form>
  42. </div>
  43. @endsection
  44. @section('script')
  45. <!--火狐ocx语法(舟山楼下旧电视读取身份证)-->
  46. <object id="TermbCardOcx" type="application/x-itst-activex" style="border:0px;width:0px;height:0px;" clsid="{18EE8930-6993-4ADA-B8BB-02BA5820AC94}" progid="Termb.cab#version=1,0,0,1"></object>
  47. <!--<OBJECT ID="TermbCardOcx" TYPE="application/x-itst-activex" clsid="{18EE8930-6993-4ADA-B8BB-02BA5820AC94}" width="0" height="0"></OBJECT>-->
  48. <!--IEocx语法(舟山楼下旧电视读取身份证)-->
  49. <!--<object classid="clsid:18EE8930-6993-4ADA-B8BB-02BA5820AC94" id="TermbCardOcx" CODEBASE="Termb.cab#version=1,0,0,1" width="0" height="0" VIEWASTEXT></object>-->
  50. <script language="javascript">
  51. //二维码扫码头
  52. $(function () {
  53. var qrcode_url="";
  54. var is_scan_qrcode=false;
  55. $(document).keypress(function(event){
  56. document.onkeydown = function () {
  57. if (window.event && window.event.keyCode === 13) {
  58. window.event.returnValue = is_scan_qrcode;
  59. $("#back_b").blur();
  60. }
  61. };
  62. if (is_scan_qrcode===true){
  63. if (event.keyCode!==13){
  64. qrcode_url=qrcode_url+event.key;
  65. } else{
  66. is_scan_qrcode=false;
  67. var qrcode_arr = [];
  68. if (!qrcode_url) {
  69. layer.msg('扫描二维码错误');
  70. is_scan_qrcode=false;
  71. qrcode_url="";
  72. }else {
  73. is_scan_qrcode = false;
  74. qrcode_arr = qrcode_url.split('/');
  75. qrcode_url = qrcode_arr[qrcode_arr.length-1];
  76. if (qrcode_url){
  77. var hashid = qrcode_url;
  78. qrcode_url="";
  79. is_scan_qrcode=false;
  80. var url = "{{route('hardware.pad.resume.qrcode')}}";
  81. $.post(
  82. url,
  83. {hashid: hashid,_token:"{{csrf_token()}}"},
  84. function (data) {
  85. if (data.status == 1) {
  86. is_scan_qrcode=false;
  87. qrcode_url="";
  88. var num = data.data.length;
  89. var html = data.html;
  90. layer.open({
  91. type: 1,
  92. title: '读取到该用户' + num + '份简历',
  93. skin: 'layui-layer-rim', //加上边框
  94. area: ['900px', '480px'], //宽高
  95. content: html,
  96. });
  97. }else if(data.status == -1){
  98. layer.msg('二维码校验错误');
  99. } else {
  100. is_scan_qrcode=false;
  101. qrcode_url="";
  102. layer.msg(data.msg);
  103. var url = "{{route('hardware.pad.resume.add')}}"+"?uid="+data.uid;
  104. window.location.href = url;
  105. }
  106. });
  107. }else {
  108. is_scan_qrcode=false;
  109. qrcode_url="";
  110. layer.msg('二维码校验错误');
  111. }
  112. }
  113. }
  114. }
  115. });
  116. $("#qr_code").on('click', function () {
  117. is_scan_qrcode=true;
  118. })
  119. });
  120. //平板身份证读取
  121. $(function() {
  122. document.form1.reset();
  123. $.AndroidHost.setEvents({
  124. onEvent: function (name, value) {
  125. if (typeof value == 'undefined') {
  126. output("读卡错误.");
  127. } else {
  128. var json = (new Function("return " + value))();
  129. var cardId = json.CardNo;
  130. var address = json.Address;
  131. var birthday = json.Birthday;
  132. var name = json.Name;
  133. var nation = json.Nation;
  134. var sex = json.Sex;
  135. var url = "{{route('hardware.pad.resume.cardid')}}";
  136. $.post(url, {cardId: cardId,_token:"{{csrf_token()}}"}, function (data) {
  137. if (data.status == 1) {
  138. var num = data.data.length;
  139. var html = data.html;
  140. layer.open({
  141. type: 1,
  142. title: '读取到该用户' + num + '份简历',
  143. skin: 'layui-layer-rim', //加上边框
  144. area: ['900px', '480px'], //宽高
  145. content: html,
  146. });
  147. } else {
  148. layer.msg(data.msg);
  149. var url = "{{route('hardware.pad.resume.add')}}"+"?androidIdNo="+cardId+"&androidIdName="+name+"&androidIdSex="+sex+"&androidIdNation="+address;
  150. window.location.href = url;
  151. }
  152. })
  153. }
  154. }
  155. });
  156. $('#btnStartReadIDCard').off().on('click', function () {
  157. if(typeof AndroidHost != 'undefined') {
  158. $.AndroidHost.startReadIDCard();
  159. }else {
  160. ReadCard_onclick();
  161. }
  162. });
  163. });
  164. //平板身份证读取
  165. function output(message) {
  166. $('#output').append('<div>' + message + '</div>');
  167. }
  168. function bake_home()
  169. {
  170. var url = "{{route('hardware.pad.index')}}";
  171. window.location.href=url;
  172. }
  173. //socket读取身份证
  174. var socket = io.connect('http://localhost:5000',{'timeout': 300000,'reconnectionDelayMax':1000,'reconnectionDelay':500});
  175. socket.on('card message', function(msg){
  176. console.log(2);
  177. var base = new Base64();
  178. //2.解密后是json字符串
  179. var result1 = base.decode(msg);
  180. var data = eval("("+result1+")");
  181. var cardId = data.cardno;
  182. var address = data.address;
  183. var name = data.name;
  184. var sex = data.sex;
  185. var url = "{{route('hardware.pad.resume.cardid')}}";
  186. $.post(url, {cardId: cardId,_token:"{{csrf_token()}}"}, function (data) {
  187. if (data.status == 1) {
  188. var num = data.data.length;
  189. var html = data.html;
  190. layer.open({
  191. type: 1,
  192. title: '读取到该用户' + num + '份简历',
  193. skin: 'layui-layer-rim', //加上边框
  194. area: ['900px', '480px'], //宽高
  195. content: html,
  196. });
  197. } else {
  198. layer.msg(data.msg);
  199. var url = "{{route('hardware.pad.resume.add')}}"+"?androidIdNo="+cardId+"&androidIdName="+name+"&androidIdSex="+sex+"&androidIdNation="+address;
  200. window.location.href = url;
  201. }
  202. })
  203. });
  204. function ReadCard_onclick()
  205. {
  206. console.log(1);
  207. socket.emit('startRead');
  208. socket.emit('stopRead');
  209. }
  210. function Base64() {
  211. // private property
  212. _keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
  213. // public method for decoding
  214. this.decode = function (input) {
  215. var output = "";
  216. var chr1, chr2, chr3;
  217. var enc1, enc2, enc3, enc4;
  218. var i = 0;
  219. input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");
  220. while (i < input.length) {
  221. enc1 = _keyStr.indexOf(input.charAt(i++));
  222. enc2 = _keyStr.indexOf(input.charAt(i++));
  223. enc3 = _keyStr.indexOf(input.charAt(i++));
  224. enc4 = _keyStr.indexOf(input.charAt(i++));
  225. chr1 = (enc1 << 2) | (enc2 >> 4);
  226. chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
  227. chr3 = ((enc3 & 3) << 6) | enc4;
  228. output = output + String.fromCharCode(chr1);
  229. if (enc3 != 64) {
  230. output = output + String.fromCharCode(chr2);
  231. }
  232. if (enc4 != 64) {
  233. output = output + String.fromCharCode(chr3);
  234. }
  235. }
  236. output = _utf8_decode(output);
  237. return output;
  238. };
  239. // private method for UTF-8 decoding
  240. _utf8_decode = function (utftext) {
  241. var string = "";
  242. var i = 0;
  243. var c = c1 = c2 = 0;
  244. while ( i < utftext.length ) {
  245. c = utftext.charCodeAt(i);
  246. if (c < 128) {
  247. string += String.fromCharCode(c);
  248. i++;
  249. } else if((c > 191) && (c < 224)) {
  250. c2 = utftext.charCodeAt(i+1);
  251. string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
  252. i += 2;
  253. } else {
  254. c2 = utftext.charCodeAt(i+1);
  255. c3 = utftext.charCodeAt(i+2);
  256. string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
  257. i += 3;
  258. }
  259. }
  260. return string;
  261. }
  262. }
  263. </script>
  264. @endsection