index.blade.php 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399
  1. @extends('mobile.module.layouts.ic')
  2. @push('meta')
  3. @endpush
  4. @push('css')
  5. <link href="{{ theme_asset('mobile/css/personal.css') }}" rel="stylesheet">
  6. <link href="{{ theme_asset('mobile/css/nprogress.css') }}" rel="stylesheet">
  7. <style>
  8. .form-item{width:100%;background-color:#FFFFFF;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;-khtml-user-select:none;user-select:none;}
  9. .form-item .pic{float:left;height:100%;border-bottom:1px #FFFFFF solid;width:.4rem;}
  10. .form-item .tit{float:left;height:100%;border-bottom:1px #F2F2F2 solid;width:2.44rem;font-weight:700}
  11. .form-item .describe{position:relative;float:left;height:100%;border-bottom:1px #F2F2F2 solid;width:3.9rem;text-align:right;color:#999999;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;}
  12. </style>
  13. @endpush
  14. @push('js')
  15. @endpush
  16. @section('content')
  17. {{-- 头部--}}
  18. <div class="headernavfixed">
  19. <div class="headernav font18">
  20. <div class="title">
  21. <div class="n-tit-box">
  22. 宣讲会/招聘会
  23. </div>
  24. <div class="return js-back for-event" data-href="{{route('mobile.ic.index')}}"></div>
  25. </div>
  26. </div>
  27. </div>
  28. <form action="" id="form">
  29. <div class="list_height plist-txt qs-relative">
  30. <div class="pic"></div>
  31. <div class="tit font14">照片<span class="font_red_light">*</span></div>
  32. <div class="describe font13">
  33. <div class="avatar">
  34. <img id="avatars" src="{{asset('themes/default/assets/mobile/images/no_photo_male.png')}}">
  35. </div>
  36. </div>
  37. <div class="arrow"></div>
  38. <div class="clear"></div>
  39. <input type="hidden" id="avatar" name="avatar" value="">
  40. <input type="file" id="browseFile" class="browseFile">
  41. </div>
  42. <div class="list_height plist-txt notarrow">
  43. <div class="pic"></div>
  44. <div class="tit font14">姓名<span class="font_red_light">*</span></div>
  45. <div class="describe font13">
  46. <input type="text" id="realname" name="realname" placeholder="请输入姓名" value="">
  47. </div>
  48. <div class="arrow"></div>
  49. <div class="clear"></div>
  50. </div>
  51. <div class="list_height plist-txt notarrow">
  52. <div class="pic"></div>
  53. <div class="tit font14">性别<span class="font_red_light">*</span></div>
  54. <div id="sex" class="describe font13">
  55. <div class="radio-group x2">
  56. <div class="radio-cell">
  57. <label for="radio4">男</label>
  58. <input id="radio4" name="sex" type="radio" value="1" title="男" checked="checked">
  59. </div>
  60. <div class="radio-cell">
  61. <label for="radio5">女</label>
  62. <input id="radio5" name="sex" type="radio" value="0" title="女">
  63. </div>
  64. <div class="clear"></div>
  65. </div>
  66. </div>
  67. <div class="arrow"></div>
  68. <div class="clear"></div>
  69. </div>
  70. <div class="list_height plist-txt notarrow">
  71. <div class="pic"></div>
  72. <div class="tit font14">手机号码<span class="font_red_light">*</span></div>
  73. <div class="describe font13">
  74. <input type="text" id="mobile" name="mobile" placeholder="请输入联系方式" value="">
  75. </div>
  76. <div class="arrow"></div>
  77. <div class="clear"></div>
  78. </div>
  79. <div class="list_height plist-txt notarrow">
  80. <div class="pic"></div>
  81. <div class="tit font14">出生年份<span class="font_red_light">*</span></div>
  82. <div class="describe font13">
  83. <input readonly required id="birthday" name="birthday" type="text" placeholder="请选择年月日" value="">
  84. </div>
  85. <div class="arrow"></div>
  86. <div class="clear"></div>
  87. </div>
  88. <div class="list_height plist-txt js-actionParent">
  89. <div class="pic"></div>
  90. <div class="tit font14">籍贯<span class="font_red_light">*</span></div>
  91. <div class="describe font13 qs-temp js-showActionSheet" data-type="city2" data-base="QS_city_parent" data-source="QS_city" data-multiple="false" data-num="0" data-link="false" data-level="3" data-addjob="true">
  92. <span class="qs-temp-txt-city2" data-otxt="">请选择</span>
  93. <input class="qs-temp-code-city2" name="native_place" id="native_place" type="hidden" value="">
  94. </div>
  95. <div class="arrow"></div>
  96. <div class="clear"></div>
  97. <!--BEGIN actionSheet-->
  98. <div>
  99. <div class="qs-mask" style="display: none"></div>
  100. <div class="qs-actionsheet js-actionsheet">
  101. <div class="qs-actionsheet-menu">
  102. <div class="con-filter">
  103. <div class="f-selected-group f-selected-group-city2">
  104. <div class="s-bar">
  105. <div class="qs-btn qs-btn-inline qs-btn-small qs-btn-border-gray qs-left js-cancelActionSheet">取消</div>
  106. <div class="clear"></div>
  107. </div>
  108. <div class="s-list qs-hidden"></div>
  109. </div>
  110. <div class="f-box f-box-city2"></div>
  111. </div>
  112. </div>
  113. </div>
  114. </div>
  115. </div>
  116. <div class="list_height plist-txt">
  117. <div class="pic"></div>
  118. <div class="tit font14">是否应届<span class="font_red_light">*</span></div>
  119. <div class="describe font13">
  120. <span class="for-select"></span>
  121. <select id="fresh" name="fresh">
  122. <option value="">请选择</option>
  123. <option value="1">是</option>
  124. <option value="0">否</option>
  125. </select>
  126. </div>
  127. <div class="arrow"></div>
  128. <div class="clear"></div>
  129. </div>
  130. <div class="list_height plist-txt">
  131. <div class="pic"></div>
  132. <div class="tit font14">当前学历<span class="font_red_light">*</span></div>
  133. <div class="describe font13">
  134. <span class="for-select"></span>
  135. <select id="education" name="education">
  136. <option value="">请选择</option>
  137. @foreach($category['other']['AIX_education'] as $key => $val )
  138. <option value="{{ explode(',',$val)[0] }}" >{{ explode(',',$val)[1] }}</option>
  139. @endforeach
  140. </select>
  141. </div>
  142. <div class="arrow"></div>
  143. <div class="clear"></div>
  144. </div>
  145. <div class="list_height plist-txt notarrow">
  146. <div class="pic"></div>
  147. <div class="tit font14">毕业学校<span class="font_red_light">*</span></div>
  148. <div class="describe font13">
  149. <input type="text" id="school" name="school" placeholder="请输入毕业学校" value="">
  150. </div>
  151. <div class="arrow"></div>
  152. <div class="clear"></div>
  153. </div>
  154. <div class="list_height plist-txt notarrow">
  155. <div class="pic"></div>
  156. <div class="tit font14">院系<span class="font_red_light">*</span></div>
  157. <div class="describe font13">
  158. <input type="text" id="dep" name="dep" placeholder="请输入院系" value="">
  159. </div>
  160. <div class="arrow"></div>
  161. <div class="clear"></div>
  162. </div>
  163. <div class="list_height plist-txt js-actionParent">
  164. <div class="pic"></div>
  165. <div class="tit font14">专业<span class="font_red_light">*</span></div>
  166. <div class="describe font13 qs-temp-level-major js-showActionSheet" data-type="major" data-base="QS_major_parent" data-source="QS_major" data-multiple="false" data-num="0" data-link="false">
  167. <span class="qs-temp-txt-major" data-otxt="请选择">请选择</span>
  168. <input class="qs-temp-code-major" name="pro_type" id="pro_type" type="hidden" value="" />
  169. </div>
  170. <div class="arrow"></div>
  171. <div class="clear"></div>
  172. <!--BEGIN actionSheet-->
  173. <div>
  174. <div class="qs-mask" style="display: none"></div>
  175. <div class="qs-actionsheet js-actionsheet">
  176. <div class="qs-actionsheet-menu">
  177. <div class="con-filter">
  178. <div class="f-selected-group f-selected-group-major">
  179. <div class="s-bar">
  180. <div class="qs-btn qs-btn-inline qs-btn-small qs-btn-border-gray qs-left js-cancelActionSheet">取消</div>
  181. <div class="clear"></div>
  182. </div>
  183. <div class="s-list qs-hidden"></div>
  184. </div>
  185. <div class="f-box f-box-major"></div>
  186. </div>
  187. </div>
  188. </div>
  189. </div>
  190. </div>
  191. <div class="list_height plist-txt notarrow">
  192. <div class="pic"></div>
  193. <div class="tit font14">具体专业<span class="font_red_light">*</span></div>
  194. <div class="describe font13">
  195. <input type="text" id="pro_text" name="pro_text" placeholder="请输入具体专业" value="">
  196. </div>
  197. <div class="arrow"></div>
  198. <div class="clear"></div>
  199. </div>
  200. <div class="list_height plist-txt">
  201. <div class="pic"></div>
  202. <div class="tit font14">报名场次<span class="font_red_light">*</span></div>
  203. <div class="describe font13">
  204. <span class="for-select"></span>
  205. <select id="pid" name="pid">
  206. <option value="">请选择</option>
  207. @foreach($presentation_list as $presentation)
  208. <option value="{{$presentation['id']}}">{{$presentation['name']}}</option>
  209. @endforeach
  210. </select>
  211. </div>
  212. <div class="arrow"></div>
  213. <div class="clear"></div>
  214. </div>
  215. <div class="list_height form-item">
  216. <div class="pic"></div>
  217. <div class="tit font14">简历</div>
  218. <div class="describe font13">
  219. <span id="uploadPicButton">双击上传文件</span>
  220. <input type="file" id="uploadFile" accept="application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document,application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.ms-powerpoint,application/vnd.openxmlformats-officedocument.presentationml.presentation,text/plain,application/pdf" style="display: none;">
  221. </div>
  222. <div class="arrow"></div>
  223. <div class="clear"></div>
  224. <input type="hidden" id="attachment" name="attachment" value="">
  225. </div>
  226. <div class="btn-spacing">
  227. <button type="submit" class="qs-btn qs-btn-blue qs-btn-linear-orange bd4 font16 b-big">保存</button>
  228. </div>
  229. </form>
  230. @endsection
  231. @section('script')
  232. <script src="{{ theme_asset('mobile/js/mobileBUGFix.mini.js') }}"></script>
  233. <script src="{{ theme_asset('mobile/js/qsCategory.js') }}"></script>
  234. <script src="{{ theme_asset('mobile/js/LocalResizeIMG.js') }}"></script>
  235. <script src="{{ theme_asset('mobile/js/nprogress.js') }}"></script>
  236. <script src="{{ theme_asset('mobile/js/rolldate.min.js') }}"></script>
  237. <script>
  238. new Rolldate({
  239. el: '#birthday',
  240. format: 'YYYY-MM-DD',
  241. beginYear: 1900,
  242. endYear: 2100,
  243. value: "",
  244. })
  245. var default_district = '<?php echo $defaultCity;?>';
  246. var str_major = '<?php echo json_encode($category['major']['first']);?>';
  247. var QS_major_parent = eval(str_major);
  248. for(var i = 0;i <QS_major_parent.length;i ++){
  249. QS_major_parent[i].step_size = 0;
  250. }
  251. var major = '<?php echo json_encode($category['major']['sec']);?>';
  252. var QS_major = eval('('+major+')');
  253. for(var i = 0;i <QS_major.length;i ++){
  254. QS_major[i].step_size = 0;
  255. }
  256. var str = '<?php echo json_encode($category['jobs']['first']);?>';
  257. var QS_jobs_parent = eval(str);
  258. for(var i = 0;i <QS_jobs_parent.length;i ++){
  259. QS_jobs_parent[i].step_size = 0;
  260. }
  261. var jobs = '<?php echo json_encode($category['jobs']['sec']);?>';
  262. var QS_jobs = eval('('+jobs+')');
  263. for(var i = 0;i <QS_jobs.length;i ++){
  264. QS_jobs[i].step_size = 0;
  265. }
  266. var district = '<?php echo json_encode($category['district']['first']);?>';
  267. var QS_city_parent = eval(district);
  268. for(var i = 0;i <QS_city_parent.length;i ++){
  269. QS_city_parent[i].step_size = 0;
  270. }
  271. var districts = '<?php echo json_encode($category['district']['person']);?>';
  272. var QS_city = eval('('+districts+')');
  273. for(var i = 0;i <QS_city.length;i ++){
  274. QS_city[i].step_size = 0;
  275. }
  276. var other = '<?php echo json_encode($category['other']['AIX_trade']);?>';
  277. var QS_trade = eval(other);
  278. for(var i = 0;i <QS_trade.length;i ++){
  279. QS_trade[i].step_size = 0;
  280. }
  281. $(function(){
  282. $(".js-showActionSheet").on("click", function(){
  283. var $iosActionsheet = $(this).closest('.js-actionParent').find('.js-actionsheet');
  284. var $iosMask = $(this).closest('.js-actionParent').find('.qs-mask');
  285. $iosActionsheet.removeClass('qs-actionsheet-toggle');
  286. $iosActionsheet.addClass('qs-actionsheet-toggle');
  287. $iosMask.fadeIn(200);
  288. $iosMask.on('click', hideActionSheet);
  289. $(this).closest('.js-actionParent').find('.js-cancelActionSheet').on('click', hideActionSheet);
  290. $(this).closest('.js-actionParent').find('.qs-actionsheet-cell').on('click', hideActionSheet);
  291. function hideActionSheet() {
  292. $(this).closest('.js-actionParent').find('.js-actionsheet').removeClass('qs-actionsheet-toggle');
  293. $(this).closest('.js-actionParent').find('.qs-mask').fadeOut(200);
  294. }
  295. });
  296. });
  297. $('#browseFile').localResizeIMG({
  298. width: 400,
  299. quality: 1,
  300. success: function (result) {
  301. var submitData={
  302. pic1:result.clearBase64,
  303. };
  304. NProgress.start();
  305. $.ajax({
  306. headers: {'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')},
  307. type: "POST",
  308. url: "{{ route('mobile.ic.teach.uploadHead') }}",
  309. data: submitData,
  310. dataType:"json",
  311. success: function(result){
  312. console.log(result);
  313. if(result.status == 1){
  314. $('#avatars').attr('src','/storage/'+result.data);
  315. $('#avatar').val('/storage/'+result.data);
  316. }else{
  317. qsToast({type:2,context:'上传失败!'});
  318. }
  319. NProgress.done();
  320. },
  321. complete :function(XMLHttpRequest, textStatus){},
  322. error:function(XMLHttpRequest, textStatus, errorThrown){ //上传失败
  323. qsToast({type:2,context: '头像上传失败!'});
  324. }
  325. });
  326. }
  327. });
  328. $('#form').on('submit', function() {
  329. var data = $(this).serialize();
  330. $.ajax({
  331. headers: {'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')},
  332. url: "{{ route('mobile.ic.teach.save') }}",
  333. type: 'POST',
  334. dataType: 'json',
  335. data: data,
  336. success : function(result){
  337. if (result.status == 1) {
  338. alert('提交成功');
  339. location.href = "{{route('mobile.ic.index')}}";
  340. } else {
  341. qsToast({type:2,context: result.msg});
  342. }
  343. },
  344. error: function (errorData) {
  345. if (errorData.status==422) {//验证错误
  346. $.each(JSON.parse(errorData.response).errors,function (key,val) {
  347. qsToast({type:2,context: val[0]});
  348. return false;
  349. });
  350. }
  351. else if(errorData.status==400) {//业务错误
  352. qsToast({type:2,context: JSON.parse(errorData.response).message});
  353. return false;
  354. }
  355. }
  356. })
  357. return false;
  358. });
  359. $('#uploadPicButton').click(function(){
  360. $('#uploadFile').click();
  361. });
  362. $('#uploadFile').on('change',function(event) {
  363. $('#uploadPicButton').html('正在上传文件中');
  364. let file = this.files[0];
  365. let formData = new FormData();
  366. formData.append('files',file);
  367. $.ajax({
  368. url: "{{route('mobile.spring.uploadfile')}}",
  369. type: 'POST',
  370. data: formData,
  371. async: true,
  372. cache: false,
  373. contentType: false,
  374. processData: false,
  375. success: function(data) {
  376. if (data.status == 0) {
  377. alert(data.msg);
  378. $('#uploadPicButton').html('上传失败,重新选择');
  379. } else {
  380. $('#uploadPicButton').html(data.filename);
  381. $('#attachment').val(data.path);
  382. }
  383. }
  384. });
  385. });
  386. </script>
  387. @endsection