sign_up.blade.php 111 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076
  1. @extends('module.layouts.content')
  2. @push('meta')
  3. @endpush
  4. @push('css')
  5. <link href="{{ theme_asset('app/css/common.css') }}" rel="stylesheet">
  6. <link href="{{theme_asset('app/css/recruit/recruit.css')}}" rel="stylesheet" type="text/css"/>
  7. <link href="{{theme_asset('app/css/element.css')}}" rel="stylesheet" type="text/css"/>
  8. <style>
  9. table,table tr th, table tr td { border:1px solid #ccc; padding: 0 7px}
  10. table { width: 100%; min-height: 25px; line-height: 25px; text-align: center; border-collapse: collapse; padding:2px;}
  11. .el-form-item{
  12. margin-bottom: 0;
  13. }
  14. .require{
  15. color: #f56c6c;
  16. }
  17. .avatar-uploader{
  18. padding: 15px;
  19. }
  20. .avatar-uploader .el-upload {
  21. border: 1px dashed #d9d9d9;
  22. border-radius: 6px;
  23. cursor: pointer;
  24. position: relative;
  25. overflow: hidden;
  26. display: inline-block;
  27. vertical-align: middle;
  28. }
  29. .avatar-uploader .el-upload:hover {
  30. border-color: #409EFF;
  31. }
  32. .avatar-uploader-icon {
  33. font-size: 28px;
  34. color: #8c939d;
  35. width: 178px;
  36. height: 178px;
  37. line-height: 178px;
  38. text-align: center;
  39. }
  40. .avatar {
  41. width: 178px;
  42. height: 178px;
  43. display: block;
  44. }
  45. .ticket{
  46. border:3px solid #000;
  47. padding:10px;
  48. }
  49. .ticket h2{
  50. text-align:center;
  51. font:normal 20px/40px "microsoft yahei";
  52. }
  53. .ticket h3{
  54. text-align:center;
  55. font:normal 24px/30px "microsoft yahei";
  56. }
  57. .ex_rule{
  58. margin-top: 20px;
  59. }
  60. .ex_rule h4{
  61. font-size: 20px;
  62. line-height:50px;
  63. }
  64. .ex_rule p{
  65. text-indent: 30px;
  66. line-height: 25px;
  67. }
  68. .ticket .item{
  69. line-height: 30px;
  70. }
  71. @page {
  72. size: auto A4 landscape;
  73. margin: 3mm; /* this affects the margin in the printer settings */
  74. }
  75. </style>
  76. @endpush
  77. @push('js')
  78. @endpush
  79. @section('content')
  80. <div class="recruit_container" id="app" style="margin-top: 20px">
  81. <div role="alert" class="el-message el-message--error" style="position:relative" v-if="user.audit == 2">
  82. <i class="el-message__icon el-icon-error"></i>
  83. <p class="el-message__content">@{{ user.audit_log }}</p>
  84. </div>
  85. <div role="alert" class="el-message el-message--info" style="position:relative" v-if="user.audit == 1">
  86. <i class="el-message__icon el-icon-info"></i>
  87. <p class="el-message__content">您的报名资料正在审核中</p>
  88. </div>
  89. <div role="alert" class="el-message el-message--success" style="position:relative" v-if="user.audit == 3">
  90. <i class="el-message__icon el-icon-success"></i>
  91. <p class="el-message__content">您的报名资料已审核成功</p>
  92. </div>
  93. @if(in_array('internship',$module))
  94. <p style="text-align:center;line-height:37px;margin-top: 30px">
  95. <span style=";font-family:方正小标宋简体;font-size:29px"><span style="font-family:方正小标宋简体">{{$title}}招募实习报名表</span></span>
  96. </p>
  97. <el-form :model="user" ref="userForm" :status-icon="true" :show-message="false" :rules="rules" :disabled="formDisable">
  98. <table cellspacing="0" width="100%">
  99. <tbody>
  100. <tr style="height:52px;page-break-inside:avoid" class="firstRow">
  101. <td valign="center" width="100">
  102. <span class="require">*</span>姓名
  103. </td>
  104. <td valign="center" colspan="4" width="200">
  105. <el-form-item prop="realname" >
  106. <el-input v-model="user.realname" placeholder="请输入您的姓名" style="width: 200px"></el-input>
  107. </el-form-item>
  108. </td>
  109. <td valign="center" width="80">
  110. <span class="require">*</span>性别
  111. </td>
  112. <td valign="center" colspan="2">
  113. <el-form-item prop="sex" >
  114. <el-radio label="1" v-model="user.sex">男</el-radio>
  115. <el-radio label="0" v-model="user.sex">女</el-radio>
  116. </el-form-item>
  117. </td>
  118. <td valign="center" width="100">
  119. <span class="require">*</span>出生年月
  120. </td>
  121. <td valign="center" colspan="2" width="200">
  122. <el-form-item prop="birthday">
  123. <el-date-picker
  124. v-model="user.birthday"
  125. type="date"
  126. placeholder="选择您的出生年月日"
  127. value-format="yyyy-MM-dd">
  128. </el-date-picker>
  129. </el-form-item>
  130. </td>
  131. <td valign="center" rowspan="3" width="200">
  132. <el-form-item prop="avatar" ref="avatar">
  133. <el-upload
  134. class="avatar-uploader"
  135. action="{{ route('recruit.api.upload') }}"
  136. ref="user_avatar"
  137. :data="{name:'avatar',_token:'{{csrf_token()}}'}"
  138. :show-file-list="false"
  139. :before-upload="beforeImageUpload"
  140. :on-success="uploadSuccess">
  141. <img v-if="this.user.avatar" :src="this.user.avatar" class="avatar">
  142. <i v-else class="el-icon-plus avatar-uploader-icon"></i>
  143. </el-upload>
  144. </el-form-item>
  145. <div><span><span class="require">*</span>近期免冠证件照(2M以内)</span></div>
  146. </td>
  147. </tr>
  148. <tr style="height:52px;page-break-inside:avoid">
  149. <td valign="center" >
  150. <span class="require">*</span>身份证号码
  151. </td>
  152. <td valign="center" colspan="4" >
  153. <el-form-item prop="card">
  154. <el-input v-model="user.card" placeholder="请输入身份证号码 "></el-input>
  155. </el-form-item>
  156. </td>
  157. <td valign="center">
  158. <span class="require">*</span>民族
  159. </td>
  160. <td valign="center" colspan="2" >
  161. <el-form-item prop="nation">
  162. <el-input v-model="user.nation" placeholder="请输入您的民族"></el-input>
  163. </el-form-item>
  164. </td>
  165. <td valign="center" >
  166. <span class="require">*</span>籍贯
  167. </td>
  168. <td valign="center" colspan="2">
  169. <el-form-item prop="native_place">
  170. <el-input v-model="user.native_place" placeholder="请输入您的籍贯"></el-input>
  171. </el-form-item>
  172. </td>
  173. </tr>
  174. <tr style="height:52px;page-break-inside:avoid">
  175. <td valign="center" >
  176. <span class="require">*</span>政治面貌
  177. </td>
  178. <td valign="center" colspan="4" >
  179. <el-form-item prop="political_affiliation">
  180. <el-select v-model="user.political_affiliation" placeholder="请选择">
  181. <el-option
  182. v-for="item in political_affiliation"
  183. :key="item.value"
  184. :label="item.label"
  185. :value="item.value">
  186. </el-option>
  187. </el-select>
  188. </el-form-item>
  189. </td>
  190. <td valign="center" >
  191. 入党时间
  192. </td>
  193. <td valign="center" colspan="2">
  194. <el-input v-model="user.join_time" placeholder="非党员请放空"></el-input>
  195. </td>
  196. <td valign="center" >
  197. <span class="require">*</span>户籍所在地
  198. </td>
  199. <td valign="center" colspan="2" >
  200. <el-form-item prop="house_register">
  201. <el-input v-model="user.house_register" placeholder="按市县填写,如泉州晋江"></el-input>
  202. </el-form-item>
  203. </td>
  204. </tr>
  205. <tr style="height:52px;page-break-inside:avoid">
  206. <td valign="center" >
  207. <span class="require">*</span>年级
  208. </td>
  209. <td valign="center" colspan="7" >
  210. <el-form-item prop="education" label-width="70px">
  211. <el-select v-model="user.education" placeholder="请选择年级">
  212. <el-option label="大三在校生" value="大三在校生"></el-option>
  213. <el-option label="大四在校生" value="大四在校生"></el-option>
  214. <el-option label="大四应届生" value="大四应届生"></el-option>
  215. <el-option label="硕士在校生" value="硕士在校生"></el-option>
  216. <el-option label="博士在校生" value="博士在校生"></el-option>
  217. </el-select>
  218. </el-form-item>
  219. </td>
  220. <td valign="center" >
  221. <span class="require">*</span>就读院校
  222. </td>
  223. <td valign="center" colspan="4" >
  224. <el-form-item prop="school">
  225. <el-input v-model="user.school" autosize placeholder="请输入就读院校"></el-input>
  226. </el-form-item>
  227. </td>
  228. </tr>
  229. <tr style="height:52px;page-break-inside:avoid">
  230. <td valign="center" >
  231. <span class="require">*</span>所学专业
  232. </td>
  233. <td valign="center" colspan="7" >
  234. <el-form-item prop="pro">
  235. <el-input v-model="user.pro" autosize placeholder="多专业请用;分隔"></el-input>
  236. </el-form-item>
  237. </td>
  238. <td valign="center" >
  239. <span class="require">*</span>是否接受调剂
  240. </td>
  241. <td valign="center" colspan="4" >
  242. <el-form-item prop="adjust" >
  243. <el-radio label="1" v-model="user.adjust">是</el-radio>
  244. <el-radio label="0" v-model="user.adjust">否</el-radio>
  245. </el-form-item>
  246. </td>
  247. </tr>
  248. <tr style="height:52px;page-break-inside:avoid">
  249. <td valign="center" >
  250. <span class="require">*</span>联系电话
  251. </td>
  252. <td valign="center" colspan="7" >
  253. <el-form-item prop="mobile">
  254. <el-input v-model="user.mobile" placeholder="请输入联系电话"></el-input>
  255. </el-form-item>
  256. </td>
  257. <td valign="center" colspan="1" >
  258. <span class="require">*</span>电子邮箱
  259. </td>
  260. <td valign="center" colspan="3" >
  261. <el-form-item prop="email">
  262. <el-input v-model="user.email" placeholder="请输入电子邮箱"></el-input>
  263. </el-form-item>
  264. </td>
  265. </tr>
  266. <tr style="height:52px;page-break-inside:avoid">
  267. <td valign="center">
  268. <span class="require">*</span>通信地址
  269. </td>
  270. <td valign="center" colspan="7" >
  271. <el-form-item prop="address">
  272. <el-input v-model="user.address" placeholder="请输入地址"></el-input>
  273. </el-form-item>
  274. </td>
  275. <td valign="center" >
  276. <span class="require">*</span>报名岗位
  277. </td>
  278. <td valign="center" colspan="3" >
  279. <el-form-item prop="post_id">
  280. <el-select v-model="user.post_id" placeholder="请选择报名岗位" @change="postChange">
  281. <el-option
  282. v-for="item in post_data"
  283. :key="item.value"
  284. :label="item.label"
  285. :value="item.value">
  286. </el-option>
  287. </el-select>
  288. </el-form-item>
  289. </td>
  290. </tr>
  291. <tr style="height:52px;page-break-inside:avoid">
  292. <td valign="center" >
  293. <span class="require">*</span>紧急联系人<br />姓名
  294. </td>
  295. <td valign="center" colspan="7" >
  296. <el-form-item prop="concat_name">
  297. <el-input v-model="user.concat_name" placeholder="请输入紧急联系人姓名"></el-input>
  298. </el-form-item>
  299. </td>
  300. <td valign="center">
  301. <span class="require">*</span>联系电话
  302. </td>
  303. <td valign="center" colspan="7" >
  304. <el-form-item prop="concat_mobile">
  305. <el-input v-model="user.concat_mobile" placeholder="请输入联系电话"></el-input>
  306. </el-form-item>
  307. </td>
  308. </tr>
  309. <tr style="height:275px;page-break-inside:avoid">
  310. <td valign="center" >
  311. <span class="require">*</span>个<br />
  312. &nbsp;人<br />
  313. &nbsp;简<br />
  314. &nbsp;历
  315. </td>
  316. <td valign="center" colspan="11" >
  317. <el-form-item prop="resume">
  318. <el-input
  319. type="textarea"
  320. :rows="12"
  321. :placeholder="resume_tip"
  322. v-model="user.resume">
  323. </el-input>
  324. </el-form-item>
  325. </td>
  326. </tr>
  327. <tr style="height:94px;page-break-inside:avoid">
  328. <td valign="center" >
  329. 奖<br />
  330. 惩<br />
  331. 情<br />
  332. </td>
  333. <td valign="center" colspan="11" >
  334. <el-input
  335. type="textarea"
  336. :rows="3"
  337. placeholder="请输入奖惩情况(若有)"
  338. v-model="user.detail.rewards_and_punishments">
  339. </el-input>
  340. </td>
  341. </tr>
  342. <tr style="height:159px;page-break-inside:avoid">
  343. <td valign="center" >
  344. 个<br />
  345. 人<br />
  346. 情<br />
  347. 况<br />
  348. 介<br />
  349. </td>
  350. <td valign="center" colspan="11" >
  351. <el-input
  352. type="textarea"
  353. :rows="6"
  354. placeholder="包括但不限于:性格能力自评;个人优缺点;考虑从原单位离职原因;选择应聘本岗位的动机。"
  355. v-model="user.detail.introduce">
  356. </el-input>
  357. </td>
  358. </tr>
  359. <tr style="height:47px;page-break-inside:avoid">
  360. <td valign="center" :rowspan="this.user.family.length+1">
  361. 家庭成员及其主要社会关系<br />
  362. <el-button type="primary" icon="el-icon-plus" size="small" @click="addFamily">添加家庭成员</el-button><br />
  363. <el-button type="danger" icon="el-icon-minus" size="small" @click="delFamily">删除最后一行</el-button>
  364. </td>
  365. <td valign="center" >
  366. <p style=";text-align:center">
  367. <span style=";font-family:宋体;font-size:14px">称谓</span>
  368. </p>
  369. </td>
  370. <td width="200" valign="center" colspan="4" >
  371. <p style=";text-align:center">
  372. <span style=";font-family:宋体;font-size:14px">姓名</span>
  373. </p>
  374. </td>
  375. <td width="87" valign="center" colspan="2" >
  376. <p style=";text-align:center">
  377. <span style=";font-family:宋体;font-size:14px">出生年月</span>
  378. </p>
  379. </td>
  380. <td width="98" valign="center" colspan="1" >
  381. <p style=";text-align:center">
  382. <span style=";font-family:宋体;font-size:14px">政治面貌</span>
  383. </p>
  384. </td>
  385. <td width="241" valign="center" colspan="3" >
  386. <p style=";text-align:center">
  387. <span style=";font-family:宋体;font-size:14px">工作单位及职位</span>
  388. </p>
  389. </td>
  390. </tr>
  391. <tr style="height:52px;page-break-inside:avoid" v-for="(item,index) in user.family">
  392. <td width="85" valign="center">
  393. <el-form-item :prop="'family.'+index+'.relation'" :rules="{required: true, message: '称谓不能为空', trigger: 'blur'}">
  394. <el-input v-model="item.relation" placeholder="请输入称谓"></el-input>
  395. </el-form-item>
  396. </td>
  397. <td width="200" valign="center" colspan="4" >
  398. <el-form-item :prop="'family.'+index+'.realname'" :rules="{required: true, message: '真实姓名不能为空', trigger: 'blur'}">
  399. <el-input v-model="item.realname" placeholder="请输入真实姓名"></el-input>
  400. </el-form-item>
  401. </td>
  402. <td width="87" valign="center" colspan="2" >
  403. <el-form-item :prop="'family.'+index+'.birthday'" :rules="{required: true, message: '出生年月日不能为空', trigger: 'blur'}">
  404. <el-date-picker
  405. v-model="item.birthday"
  406. type="date"
  407. placeholder="选择出生年月日"
  408. value-format="yyyy-MM-dd">
  409. </el-date-picker>
  410. </el-form-item>
  411. </td>
  412. <td width="98" valign="center" colspan="1" >
  413. <el-form-item :prop="'family.'+index+'.political_affiliation'" :rules="{required: true, message: '请选择您的政治面貌', trigger: 'blur'}">
  414. <el-select v-model="item.political_affiliation" placeholder="请选择">
  415. <el-option
  416. v-for="select in political_affiliation"
  417. :key="select.value"
  418. :label="select.label"
  419. :value="select.value">
  420. </el-option>
  421. </el-select>
  422. </el-form-item>
  423. </td>
  424. <td width="241" valign="center" colspan="3" >
  425. <el-form-item :prop="'family.'+index+'.work'" :rules="{required: true, message: '请输入工作单位及职位', trigger: 'blur'}">
  426. <el-input v-model="item.work" placeholder="请输入工作单位及职位"></el-input>
  427. </el-form-item>
  428. </td>
  429. </tr>
  430. <tr style="height:52px;page-break-inside:avoid">
  431. <td valign="center" >
  432. <span class="require">*</span>身份证明<br />
  433. (身份证或其他身份证明证件)
  434. </td>
  435. <td valign="center" colspan="11">
  436. <el-form-item prop="identification" ref="identification">
  437. <div style="padding: 10px 0">
  438. <el-upload
  439. action="{{ route('recruit.api.upload') }}"
  440. list-type="picture-card"
  441. :data="{_token:'{{csrf_token()}}'}"
  442. :file-list="user.identification"
  443. :before-upload="beforeImageUpload"
  444. :on-success="uploadSuccessID"
  445. :multiple="true"
  446. :on-preview="handlePictureCardPreview"
  447. :on-remove="removeID">
  448. <i class="el-icon-plus"></i>
  449. </el-upload>
  450. </div>
  451. </el-form-item>
  452. </td>
  453. </tr>
  454. <tr style="height:52px;page-break-inside:avoid">
  455. <td valign="center" >
  456. <span class="require">*</span>学历证明<br />
  457. (学信网《教育部学籍在线验证报告》)
  458. </td>
  459. <td valign="center" colspan="11">
  460. <el-form-item prop="education_certification" ref="education_certification">
  461. <div style="padding: 10px 0">
  462. <el-upload
  463. action="{{ route('recruit.api.upload') }}"
  464. list-type="picture-card"
  465. :data="{_token:'{{csrf_token()}}'}"
  466. :file-list="user.education_certification"
  467. :before-upload="beforeImageUpload"
  468. :on-success="uploadSuccessEDU"
  469. :multiple="true"
  470. :on-preview="handlePictureCardPreview"
  471. :on-remove="removeEDU">
  472. <i class="el-icon-plus"></i>
  473. </el-upload>
  474. </div>
  475. </el-form-item>
  476. </td>
  477. </tr>
  478. <tr style="height:52px;page-break-inside:avoid">
  479. <td valign="center" >
  480. 其他证明<br />
  481. (党员、学生干部等证明)
  482. </td>
  483. <td valign="center" colspan="11">
  484. <div style="padding: 10px 0">
  485. <el-upload
  486. action="{{ route('recruit.api.upload') }}"
  487. list-type="picture-card"
  488. :data="{_token:'{{csrf_token()}}'}"
  489. :file-list="user.other_certification"
  490. :before-upload="beforeImageUpload"
  491. :on-success="uploadSuccessOther"
  492. :multiple="true"
  493. :on-preview="handlePictureCardPreview"
  494. :on-remove="removeOther">
  495. <i class="el-icon-plus"></i>
  496. </el-upload>
  497. </div>
  498. </td>
  499. </tr>
  500. </tbody>
  501. <tfoot>
  502. <tr>
  503. <td height="52" colspan="12" style="padding: 10px 0">
  504. <el-form-item size="large">
  505. <el-button type="primary" @click="save('userForm')" v-if="user.audit != 2">资料暂存</el-button>
  506. <el-button type="success" @click="submit('userForm')">提交报名</el-button>
  507. </el-form-item>
  508. <p style="color: #dd4250">
  509. 提示:若材料准备需要时间,可以使用资料暂存功能,先保存已填写的表单,资料齐全且无误后再点击提交报名
  510. </p>
  511. </td>
  512. </tr>
  513. </tfoot>
  514. </table>
  515. </el-form>
  516. @else
  517. <p style="text-align:center;line-height:37px;margin-top: 30px">
  518. <span style=";font-family:方正小标宋简体;font-size:29px"><span style="font-family:方正小标宋简体">{{$title}}公开招聘工作人员报名表</span></span>
  519. </p>
  520. <el-form :model="user" ref="userForm" :status-icon="true" :show-message="false" :rules="rules" :disabled="formDisable">
  521. <table cellspacing="0" width="100%">
  522. <tbody>
  523. <tr style="height:52px;page-break-inside:avoid" class="firstRow">
  524. <td valign="center" width="100">
  525. <span class="require">*</span>姓名
  526. </td>
  527. <td valign="center" colspan="4" width="200">
  528. <el-form-item prop="realname" >
  529. <el-input v-model="user.realname" placeholder="请输入您的姓名" style="width: 200px"></el-input>
  530. </el-form-item>
  531. </td>
  532. <td valign="center" width="80">
  533. <span class="require">*</span>性别
  534. </td>
  535. <td valign="center" colspan="2">
  536. <el-form-item prop="sex" >
  537. <el-radio label="1" v-model="user.sex">男</el-radio>
  538. <el-radio label="0" v-model="user.sex">女</el-radio>
  539. </el-form-item>
  540. </td>
  541. <td valign="center" width="100">
  542. <span class="require">*</span>出生年月
  543. </td>
  544. <td valign="center" colspan="2" width="200">
  545. <el-form-item prop="birthday">
  546. <el-date-picker
  547. v-model="user.birthday"
  548. type="date"
  549. placeholder="选择您的出生年月日"
  550. value-format="yyyy-MM-dd">
  551. </el-date-picker>
  552. </el-form-item>
  553. </td>
  554. <td valign="center" rowspan="3" width="200">
  555. <el-form-item prop="avatar" ref="avatar">
  556. <el-upload
  557. class="avatar-uploader"
  558. action="{{ route('recruit.api.upload') }}"
  559. ref="user_avatar"
  560. :data="{name:'avatar',_token:'{{csrf_token()}}'}"
  561. :show-file-list="false"
  562. :before-upload="beforeImageUpload"
  563. :on-success="uploadSuccess">
  564. <img v-if="this.user.avatar" :src="this.user.avatar" class="avatar">
  565. <i v-else class="el-icon-plus avatar-uploader-icon"></i>
  566. </el-upload>
  567. </el-form-item>
  568. <div><span><span class="require">*</span>近期免冠证件照(2M以内)</span></div>
  569. </td>
  570. </tr>
  571. <tr style="height:52px;page-break-inside:avoid">
  572. <td valign="center" >
  573. <span class="require">*</span>身份证号码
  574. </td>
  575. <td valign="center" colspan="4" >
  576. <el-form-item prop="card">
  577. <el-input v-model="user.card" placeholder="请输入身份证号码 "></el-input>
  578. </el-form-item>
  579. </td>
  580. <td valign="center">
  581. <span class="require">*</span>民族
  582. </td>
  583. <td valign="center" colspan="2" >
  584. <el-form-item prop="nation">
  585. <el-input v-model="user.nation" placeholder="请输入您的民族"></el-input>
  586. </el-form-item>
  587. </td>
  588. <td valign="center" >
  589. <span class="require">*</span>籍贯
  590. </td>
  591. <td valign="center" colspan="2">
  592. <el-form-item prop="native_place">
  593. <el-input v-model="user.native_place" placeholder="请输入您的籍贯"></el-input>
  594. </el-form-item>
  595. </td>
  596. </tr>
  597. <tr style="height:52px;page-break-inside:avoid">
  598. <td valign="center" >
  599. <span class="require">*</span>政治面貌
  600. </td>
  601. <td valign="center" colspan="4" >
  602. <el-form-item prop="political_affiliation">
  603. <el-select v-model="user.political_affiliation" placeholder="请选择">
  604. <el-option
  605. v-for="item in political_affiliation"
  606. :key="item.value"
  607. :label="item.label"
  608. :value="item.value">
  609. </el-option>
  610. </el-select>
  611. </el-form-item>
  612. </td>
  613. <td valign="center" >
  614. 入党时间
  615. </td>
  616. <td valign="center" colspan="2">
  617. <el-input v-model="user.join_time" placeholder="非党员请放空"></el-input>
  618. </td>
  619. <td valign="center" >
  620. <span class="require">*</span>户籍所在地
  621. </td>
  622. <td valign="center" colspan="2" >
  623. <el-form-item prop="house_register">
  624. <el-input v-model="user.house_register" placeholder="按市县填写,如泉州晋江"></el-input>
  625. </el-form-item>
  626. </td>
  627. </tr>
  628. <tr style="height:52px;page-break-inside:avoid">
  629. <td valign="center" colspan="8" >
  630. <el-form-item prop="education" label="学历" label-width="70px">
  631. <el-select v-model="user.education" placeholder="请选择学历">
  632. <el-option label="小学" value="小学"></el-option>
  633. <el-option label="初中" value="初中"></el-option>
  634. <el-option label="技校" value="技校"></el-option>
  635. <el-option label="职高" value="职高"></el-option>
  636. <el-option label="高中" value="高中"></el-option>
  637. <el-option label="中专" value="中专"></el-option>
  638. <el-option label="专科" value="专科"></el-option>
  639. <el-option label="本科" value="本科"></el-option>
  640. <el-option label="硕士" value="硕士"></el-option>
  641. <el-option label="博士" value="博士"></el-option>
  642. </el-select>
  643. </el-form-item>
  644. </td>
  645. <td valign="center" >
  646. <span class="require">*</span>毕业院校
  647. </td>
  648. <td valign="center" colspan="4" >
  649. <el-form-item prop="school">
  650. <el-input v-model="user.school" autosize placeholder="请输入毕业院校"></el-input>
  651. </el-form-item>
  652. </td>
  653. </tr>
  654. <tr style="height:52px;page-break-inside:avoid">
  655. <td valign="center" colspan="8" >
  656. <el-form-item prop="degree" label="学位" label-width="70px">
  657. <el-select v-model="user.degree" placeholder="请选择学位">
  658. <el-option label="" value=""></el-option>
  659. <el-option label="学士学位" value="学士学位"></el-option>
  660. <el-option label="硕士学位" value="硕士学位"></el-option>
  661. <el-option label="博士学位" value="博士学位"></el-option>
  662. </el-select>
  663. </el-form-item>
  664. </td>
  665. <td valign="center" >
  666. <span class="require">*</span>所学专业
  667. </td>
  668. <td valign="center" colspan="4" >
  669. <el-form-item prop="pro">
  670. <el-input v-model="user.pro" autosize placeholder="多专业请用;分隔"></el-input>
  671. </el-form-item>
  672. </td>
  673. </tr>
  674. <tr style="height:52px;page-break-inside:avoid">
  675. <td valign="center" >
  676. <span class="require">*</span>联系电话
  677. </td>
  678. <td valign="center" colspan="7" >
  679. <el-form-item prop="mobile">
  680. <el-input v-model="user.mobile" placeholder="请输入联系电话"></el-input>
  681. </el-form-item>
  682. </td>
  683. <td valign="center" colspan="1" >
  684. <span class="require">*</span>电子邮箱
  685. </td>
  686. <td valign="center" colspan="3" >
  687. <el-form-item prop="email">
  688. <el-input v-model="user.email" placeholder="请输入电子邮箱"></el-input>
  689. </el-form-item>
  690. </td>
  691. </tr>
  692. <tr style="height:52px;page-break-inside:avoid">
  693. <td valign="center">
  694. <span class="require">*</span>通信地址
  695. </td>
  696. <td valign="center" colspan="7" >
  697. <el-form-item prop="address">
  698. <el-input v-model="user.address" placeholder="请输入地址"></el-input>
  699. </el-form-item>
  700. </td>
  701. <td valign="center" >
  702. <span class="require">*</span>报名岗位
  703. </td>
  704. <td valign="center" colspan="3" >
  705. <el-form-item prop="post_id">
  706. <el-select v-model="user.post_id" placeholder="请选择报名岗位" @change="postChange">
  707. <el-option
  708. v-for="item in post_data"
  709. :key="item.value"
  710. :label="item.label"
  711. :value="item.value">
  712. </el-option>
  713. </el-select>
  714. </el-form-item>
  715. </td>
  716. </tr>
  717. <tr style="height:52px;page-break-inside:avoid">
  718. <td valign="center">
  719. 现工作单位及职务
  720. </td>
  721. <td valign="center" colspan="7" >
  722. <el-input v-model="user.work" placeholder="请输入现工作单位及职务"></el-input>
  723. </td>
  724. <td valign="center" >
  725. 职称或职业资格
  726. </td>
  727. <td valign="center" colspan="3">
  728. <el-input v-model="user.titles" placeholder="请输入职称或职业资格"></el-input>
  729. </td>
  730. </tr>
  731. <tr style="height:52px;page-break-inside:avoid">
  732. <td valign="center" >
  733. <span class="require">*</span>紧急联系人<br />姓名
  734. </td>
  735. <td valign="center" colspan="7" >
  736. <el-form-item prop="concat_name">
  737. <el-input v-model="user.concat_name" placeholder="请输入紧急联系人姓名"></el-input>
  738. </el-form-item>
  739. </td>
  740. <td valign="center">
  741. <span class="require">*</span>联系电话
  742. </td>
  743. <td valign="center" colspan="7" >
  744. <el-form-item prop="concat_mobile">
  745. <el-input v-model="user.concat_mobile" placeholder="请输入联系电话"></el-input>
  746. </el-form-item>
  747. </td>
  748. </tr>
  749. @if(in_array('expand_special',$module))
  750. <tr style="height:52px;page-break-inside:avoid">
  751. <td valign="center" >
  752. 是否申请加分
  753. </td>
  754. <td valign="center" colspan="4">
  755. <el-form-item prop="special.point_apply" >
  756. <el-radio label="1" v-model="user.special.point_apply">是</el-radio>
  757. <el-radio label="0" v-model="user.special.point_apply">否</el-radio>
  758. </el-form-item>
  759. </td>
  760. <td valign="center" colspan="3">
  761. 符合哪一项加分条件
  762. </td>
  763. <td valign="center" colspan="4" >
  764. <el-form-item prop="special_condition">
  765. <el-input v-model="user.special.condition" placeholder="请输入您符合的加分条件" :disabled="special_switch"></el-input>
  766. </el-form-item>
  767. </td>
  768. </tr>
  769. <tr style="height:52px;page-break-inside:avoid">
  770. <td valign="center" >
  771. 申请加分佐证材料
  772. </td>
  773. <td valign="center" colspan="11">
  774. <el-form-item prop="special_material" ref="special_material">
  775. <div style="padding: 10px 0">
  776. <el-upload
  777. action="{{ route('recruit.api.upload') }}"
  778. list-type="picture-card"
  779. :data="{_token:'{{csrf_token()}}'}"
  780. :file-list="user.special.material"
  781. :before-upload="beforeImageUpload"
  782. :on-success="uploadSuccessLP"
  783. :disabled="special_switch"
  784. :multiple="true"
  785. :on-preview="handlePictureCardPreview"
  786. :on-remove="removeLP">
  787. <i class="el-icon-plus"></i>
  788. </el-upload>
  789. </div>
  790. </el-form-item>
  791. </td>
  792. </tr>
  793. @endif
  794. <tr style="height:275px;page-break-inside:avoid">
  795. <td valign="center" >
  796. <span class="require">*</span>个<br />
  797. &nbsp;人<br />
  798. &nbsp;简<br />
  799. &nbsp;历
  800. </td>
  801. <td valign="center" colspan="11" >
  802. <el-form-item prop="resume">
  803. <el-input
  804. type="textarea"
  805. :rows="12"
  806. :placeholder="resume_tip"
  807. v-model="user.resume">
  808. </el-input>
  809. </el-form-item>
  810. </td>
  811. </tr>
  812. @if(in_array('detail',$module))
  813. <tr style="height:132px;page-break-inside:avoid">
  814. <td valign="center" >
  815. 培<br />
  816. 训<br />
  817. 学<br />
  818. 习<br />
  819. 经<br />
  820. </td>
  821. <td valign="center" colspan="11" >
  822. <el-input
  823. type="textarea"
  824. :rows="6"
  825. placeholder="请输入培训经历(若有)"
  826. v-model="user.detail.train">
  827. </el-input>
  828. </td>
  829. </tr>
  830. <tr style="height:94px;page-break-inside:avoid">
  831. <td valign="center" >
  832. 奖<br />
  833. 惩<br />
  834. 情<br />
  835. </td>
  836. <td valign="center" colspan="11" >
  837. <el-input
  838. type="textarea"
  839. :rows="3"
  840. placeholder="请输入奖惩情况(若有)"
  841. v-model="user.detail.rewards_and_punishments">
  842. </el-input>
  843. </td>
  844. </tr>
  845. <tr style="height:159px;page-break-inside:avoid">
  846. <td valign="center" >
  847. 个<br />
  848. 人<br />
  849. 情<br />
  850. 况<br />
  851. 介<br />
  852. </td>
  853. <td valign="center" colspan="11" >
  854. <el-input
  855. type="textarea"
  856. :rows="6"
  857. placeholder="包括但不限于:性格能力自评;个人优缺点;考虑从原单位离职原因;选择应聘本岗位的动机。"
  858. v-model="user.detail.introduce">
  859. </el-input>
  860. </td>
  861. </tr>
  862. @endif
  863. <tr style="height:47px;page-break-inside:avoid">
  864. <td valign="center" :rowspan="this.user.family.length+1">
  865. 家庭成员及其主要社会关系<br />
  866. <el-button type="primary" icon="el-icon-plus" size="small" @click="addFamily">添加家庭成员</el-button><br />
  867. <el-button type="danger" icon="el-icon-minus" size="small" @click="delFamily">删除最后一行</el-button>
  868. </td>
  869. <td valign="center" >
  870. <p style=";text-align:center">
  871. <span style=";font-family:宋体;font-size:14px">称谓</span>
  872. </p>
  873. </td>
  874. <td width="200" valign="center" colspan="4" >
  875. <p style=";text-align:center">
  876. <span style=";font-family:宋体;font-size:14px">姓名</span>
  877. </p>
  878. </td>
  879. <td width="87" valign="center" colspan="2" >
  880. <p style=";text-align:center">
  881. <span style=";font-family:宋体;font-size:14px">出生年月</span>
  882. </p>
  883. </td>
  884. <td width="98" valign="center" colspan="1" >
  885. <p style=";text-align:center">
  886. <span style=";font-family:宋体;font-size:14px">政治面貌</span>
  887. </p>
  888. </td>
  889. <td width="241" valign="center" colspan="3" >
  890. <p style=";text-align:center">
  891. <span style=";font-family:宋体;font-size:14px">工作单位及职位</span>
  892. </p>
  893. </td>
  894. </tr>
  895. <tr style="height:52px;page-break-inside:avoid" v-for="(item,index) in user.family">
  896. <td width="85" valign="center">
  897. <el-form-item :prop="'family.'+index+'.relation'" :rules="{required: true, message: '称谓不能为空', trigger: 'blur'}">
  898. <el-input v-model="item.relation" placeholder="请输入称谓"></el-input>
  899. </el-form-item>
  900. </td>
  901. <td width="200" valign="center" colspan="4" >
  902. <el-form-item :prop="'family.'+index+'.realname'" :rules="{required: true, message: '真实姓名不能为空', trigger: 'blur'}">
  903. <el-input v-model="item.realname" placeholder="请输入真实姓名"></el-input>
  904. </el-form-item>
  905. </td>
  906. <td width="87" valign="center" colspan="2" >
  907. <el-form-item :prop="'family.'+index+'.birthday'" :rules="{required: true, message: '出生年月日不能为空', trigger: 'blur'}">
  908. <el-date-picker
  909. v-model="item.birthday"
  910. type="date"
  911. placeholder="选择出生年月日"
  912. value-format="yyyy-MM-dd">
  913. </el-date-picker>
  914. </el-form-item>
  915. </td>
  916. <td width="98" valign="center" colspan="1" >
  917. <el-form-item :prop="'family.'+index+'.political_affiliation'" :rules="{required: true, message: '请选择您的政治面貌', trigger: 'blur'}">
  918. <el-select v-model="item.political_affiliation" placeholder="请选择">
  919. <el-option
  920. v-for="select in political_affiliation"
  921. :key="select.value"
  922. :label="select.label"
  923. :value="select.value">
  924. </el-option>
  925. </el-select>
  926. </el-form-item>
  927. </td>
  928. <td width="241" valign="center" colspan="3" >
  929. <el-form-item :prop="'family.'+index+'.work'" :rules="{required: true, message: '请输入工作单位及职位', trigger: 'blur'}">
  930. <el-input v-model="item.work" placeholder="请输入工作单位及职位"></el-input>
  931. </el-form-item>
  932. </td>
  933. </tr>
  934. @if(in_array('identification',$module))
  935. <tr style="height:52px;page-break-inside:avoid">
  936. <td valign="center" >
  937. <span class="require">*</span>身份证明<br />
  938. (本人有效身份证正反面或其他身份证明材料)
  939. </td>
  940. <td valign="center" colspan="11">
  941. <el-form-item prop="identification" ref="identification">
  942. <div style="padding: 10px 0">
  943. <el-upload
  944. action="{{ route('recruit.api.upload') }}"
  945. list-type="picture-card"
  946. :data="{_token:'{{csrf_token()}}'}"
  947. :file-list="user.identification"
  948. :before-upload="beforeImageUpload"
  949. :on-success="uploadSuccessID"
  950. :multiple="true"
  951. :on-preview="handlePictureCardPreview"
  952. :on-remove="removeID">
  953. <i class="el-icon-plus"></i>
  954. </el-upload>
  955. </div>
  956. </el-form-item>
  957. </td>
  958. </tr>
  959. @endif
  960. @if(in_array('education_certification',$module))
  961. <tr style="height:52px;page-break-inside:avoid">
  962. <td valign="center" >
  963. <span class="require">*</span>学历证明<br />
  964. (毕业证书、学位证书、学信网等及考试要求的证明材料)
  965. </td>
  966. <td valign="center" colspan="11">
  967. <el-form-item prop="education_certification" ref="education_certification">
  968. <div style="padding: 10px 0">
  969. <el-upload
  970. action="{{ route('recruit.api.upload') }}"
  971. list-type="picture-card"
  972. :data="{_token:'{{csrf_token()}}'}"
  973. :file-list="user.education_certification"
  974. :before-upload="beforeImageUpload"
  975. :on-success="uploadSuccessEDU"
  976. :multiple="true"
  977. :on-preview="handlePictureCardPreview"
  978. :on-remove="removeEDU">
  979. <i class="el-icon-plus"></i>
  980. </el-upload>
  981. </div>
  982. </el-form-item>
  983. </td>
  984. </tr>
  985. @endif
  986. @if(in_array('other_certification',$module))
  987. <tr style="height:52px;page-break-inside:avoid">
  988. <td valign="center" >
  989. 其他证明<br />
  990. (职业资格、职称证书、党员证明、工作经历证明等)
  991. </td>
  992. <td valign="center" colspan="11">
  993. <div style="padding: 10px 0">
  994. <el-upload
  995. action="{{ route('recruit.api.upload') }}"
  996. list-type="picture-card"
  997. :data="{_token:'{{csrf_token()}}'}"
  998. :file-list="user.other_certification"
  999. :before-upload="beforeImageUpload"
  1000. :on-success="uploadSuccessOther"
  1001. :multiple="true"
  1002. :on-preview="handlePictureCardPreview"
  1003. :on-remove="removeOther">
  1004. <i class="el-icon-plus"></i>
  1005. </el-upload>
  1006. </div>
  1007. </td>
  1008. </tr>
  1009. @endif
  1010. @if(in_array('remark',$module))
  1011. <tr style="height:52px;page-break-inside:avoid">
  1012. <td valign="center" >
  1013. 备注
  1014. </td>
  1015. <td valign="center" colspan="11">
  1016. <div style="padding: 10px 0">
  1017. <el-input
  1018. type="textarea"
  1019. :rows="2"
  1020. placeholder="若有备注请输入"
  1021. v-model="user.remark">
  1022. </el-input>
  1023. </div>
  1024. </td>
  1025. </tr>
  1026. @endif
  1027. </tbody>
  1028. <tfoot>
  1029. <tr>
  1030. <td height="52" colspan="12" style="padding: 10px 0">
  1031. <el-form-item size="large">
  1032. <el-button type="primary" @click="save('userForm')" v-if="user.audit != 2">资料暂存</el-button>
  1033. <el-button type="success" @click="submit('userForm')">提交报名</el-button>
  1034. </el-form-item>
  1035. <p style="color: #dd4250">
  1036. 提示:若材料准备需要时间,可以使用资料暂存功能,先保存已填写的表单,资料齐全且无误后再点击提交报名
  1037. </p>
  1038. </td>
  1039. </tr>
  1040. </tfoot>
  1041. </table>
  1042. </el-form>
  1043. @endif
  1044. <el-dialog :visible.sync="dialogVisible">
  1045. <img width="100%" :src="dialogImageUrl" alt="">
  1046. </el-dialog>
  1047. </div>
  1048. @endsection
  1049. @section('script')
  1050. <script src="{{theme_asset('app/js/vue.min.js')}}"></script>
  1051. <script src="{{theme_asset('app/js/axios.js')}}"></script>
  1052. <script src="{{theme_asset('app/js/qs.min.js')}}"></script>
  1053. <script src="{{theme_asset('app/js/element.js')}}"></script>
  1054. @if(in_array('internship',$module))
  1055. <script>
  1056. new Vue({
  1057. el: '#app',
  1058. data: function() {
  1059. return {
  1060. resume_tip:"个人简历请严格按如下格式填写:\r\n1993.09-1996.07 \t××市××中学(高中) 学生;\r\n1996.09-2000.07 \t×××××大学(本科)工商管理专业 学生;",
  1061. loading: this.$loading({
  1062. lock: false,
  1063. text: '加载中',
  1064. spinner: 'el-icon-loading',
  1065. background: 'rgba(0, 0, 0, 0.7)'
  1066. }),
  1067. user:eval({!! $appoint_info !!}),
  1068. formDisable:false,
  1069. rules:{
  1070. realname:[
  1071. {required: true, message: '请输入您的姓名', trigger: 'blur'}
  1072. ],
  1073. sex:[
  1074. { required: true, message: '请选择性别', trigger: 'change' }
  1075. ],
  1076. birthday:[
  1077. {required: true, message: '请选择出生日期', trigger: 'change' }
  1078. ],
  1079. avatar:[
  1080. {required: true, message: '请上传蓝底/红底近期证件照', trigger: 'change'}
  1081. ],
  1082. card:[
  1083. {required: true, message: '请输入证件号', trigger: 'blur'},
  1084. {validator:this.validID, trigger: 'blur'}
  1085. ],
  1086. nation:[
  1087. {required: true, message: '请输入您的民族', trigger: 'blur'}
  1088. ],
  1089. native_place:[
  1090. {required: true, message: '请输入您的籍贯', trigger: 'blur'}
  1091. ],
  1092. political_affiliation:[
  1093. {required: true, message: '请选择您的政治面貌', trigger: 'blur'}
  1094. ],
  1095. house_register:[
  1096. {required: true, message: '请输入您的户籍所在地', trigger: 'blur'}
  1097. ],
  1098. school:[
  1099. {required: true, message: '请输入学校信息', trigger: 'blur'}
  1100. ],
  1101. education:[
  1102. {required: true, message: '请选择年级信息', trigger: 'blur'}
  1103. ],
  1104. pro:[
  1105. {required: true, message: '请输入所学专业', trigger: 'blur'}
  1106. ],
  1107. mobile:[
  1108. {required: true, message: '请输入手机号', trigger: 'blur'},
  1109. {validator:this.validMobile, trigger: 'blur'}
  1110. ],
  1111. email:[
  1112. {required: true, message: '请输入电子邮箱', trigger: 'blur'},
  1113. {validator:this.validEmail, trigger: 'blur'}
  1114. ],
  1115. address:[
  1116. {required: true, message: '请输入地址', trigger: 'blur'}
  1117. ],
  1118. post_id:[
  1119. {required: true, message: '请选择报名岗位', trigger: 'blur'}
  1120. ],
  1121. adjust:[
  1122. { required: true, message: '请选择是否接受调剂', trigger: 'change' }
  1123. ],
  1124. concat_name:[
  1125. {required: true, message: '请输入紧急联系人姓名', trigger: 'blur'}
  1126. ],
  1127. concat_mobile:[
  1128. {required: true, message: '请输入紧急联系人电话', trigger: 'blur'}
  1129. ],
  1130. resume:[
  1131. {required: true, message: '请输入个人简历', trigger: 'blur'},
  1132. ],
  1133. //身份验证
  1134. identification:[
  1135. {validator:this.validIdentification, trigger: 'change'}
  1136. ],
  1137. education_certification:[
  1138. {validator:this.validEducertification, trigger: 'change'}
  1139. ],
  1140. },
  1141. init: 0,
  1142. upload: '',
  1143. post_data:eval({!! $post !!}),
  1144. political_affiliation: [ //国家关于政治面貌的分类标准
  1145. {
  1146. value: '01',
  1147. label: '中共党员'
  1148. },
  1149. {
  1150. value: '02',
  1151. label: '中共预备党员'
  1152. },
  1153. {
  1154. value: '03',
  1155. label: '共青团员'
  1156. },
  1157. {
  1158. value: '04',
  1159. label: '民革党员'
  1160. },
  1161. {
  1162. value: '05',
  1163. label: '民盟盟员'
  1164. },
  1165. {
  1166. value: '06',
  1167. label: '民建会员'
  1168. },
  1169. {
  1170. value: '07',
  1171. label: '民进会员'
  1172. },
  1173. {
  1174. value: '08',
  1175. label: '农工党党员'
  1176. },
  1177. {
  1178. value: '09',
  1179. label: '致公党党员'
  1180. },
  1181. {
  1182. value: '10',
  1183. label: '九三学社社员'
  1184. },
  1185. {
  1186. value: '11',
  1187. label: '台盟盟员'
  1188. },
  1189. {
  1190. value: '12',
  1191. label: '无党派人士'
  1192. },
  1193. {
  1194. value: '13',
  1195. label: '群众'
  1196. }
  1197. ],
  1198. dialogImageUrl: '',
  1199. dialogVisible: false,
  1200. post_limit: eval({!! $post_limit !!}),//所有岗位的报名限制条件
  1201. post_limit_value: {},//所选择的岗位限制条件
  1202. }
  1203. },
  1204. methods: {
  1205. //验证证件
  1206. validID: function(rule, value, callback){
  1207. if(!this.checkIDCard(value)) {
  1208. callback(new Error('身份证号不正确'));
  1209. }else{
  1210. callback();
  1211. }
  1212. },
  1213. checkIDCard:function(cardNo){
  1214. var weight_factor = [7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2];
  1215. var check_code = ['1', '0', 'X' , '9', '8', '7', '6', '5', '4', '3', '2'];
  1216. var code = cardNo + "";
  1217. var last = cardNo[17];//最后一位
  1218. var seventeen = code.substring(0,17);
  1219. var arr = seventeen.split("");
  1220. var len = arr.length;
  1221. var num = 0;
  1222. for(var i = 0; i < len; i++){
  1223. num = num + arr[i] * weight_factor[i];
  1224. }
  1225. var resisue = num%11;
  1226. var last_no = check_code[resisue];
  1227. var idcard_patter = /^[1-9][0-9]{5}([1][9][0-9]{2}|[2][0][0|1][0-9])([0][1-9]|[1][0|1|2])([0][1-9]|[1|2][0-9]|[3][0|1])[0-9]{3}([0-9]|[X])$/;
  1228. var format = idcard_patter.test(cardNo);
  1229. return last === last_no && format ? true : false;
  1230. },
  1231. //验证手机号码
  1232. validMobile:function(rule, value, callback){
  1233. if(!(/^1[3456789]\d{9}$/.test(value))){
  1234. callback(new Error('手机号码不正确'));
  1235. }
  1236. callback();
  1237. },
  1238. //验证邮箱
  1239. validEmail:function(rule, value, callback){
  1240. if(!(/^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/.test(value))){
  1241. callback(new Error('电子邮箱不正确'));
  1242. }
  1243. callback();
  1244. },
  1245. //验证头像
  1246. validAvatar:function(rule, value, callback){
  1247. callback();
  1248. },
  1249. validSpecialCondition:function(rule, value, callback){
  1250. if(this.user.special.point_apply == 1 && this.user.special.condition == ''){
  1251. callback(new Error('请输入符合加分的条件'));
  1252. }else{
  1253. callback();
  1254. }
  1255. },
  1256. validSpecialMaterial:function(rule, value, callback){
  1257. if(this.user.special.point_apply == 1 && this.user.special.material.length == 0){
  1258. callback(new Error('请上传佐证材料'));
  1259. }else{
  1260. callback();
  1261. }
  1262. },
  1263. validIdentification:function(rule, value, callback){
  1264. if(this.user.identification.length == 0){
  1265. callback(new Error('请上传身份证明证件'));
  1266. }else{
  1267. callback();
  1268. }
  1269. },
  1270. validEducertification:function(rule, value, callback){
  1271. if(this.user.education_certification.length == 0){
  1272. callback(new Error('请上传学历证明证件'));
  1273. }else{
  1274. callback();
  1275. }
  1276. },
  1277. beforeImageUpload:function(file) {
  1278. const isJPG = (file.type === 'image/jpeg' || file.type === 'image/png');
  1279. const isLt2M = file.size / 1024 / 1024 < 2;
  1280. if (!isJPG) {
  1281. this.$message.error('上传图片只能是 JPG、PNG 格式!');
  1282. }
  1283. if (!isLt2M) {
  1284. this.$message.error('上传图片大小不能超过 2MB!');
  1285. }
  1286. return isJPG && isLt2M;
  1287. },
  1288. uploadSuccess:function(response, file, fileList){
  1289. console.log(this.user)
  1290. if(response.status){
  1291. this.user.avatar = response.path;
  1292. }else{
  1293. this.$message.error(response.msg);
  1294. }
  1295. },
  1296. uploadSuccessLP:function(response, file, fileList){
  1297. if(response.status){
  1298. this.user.special.material = fileList
  1299. }else{
  1300. this.$message.error(response.msg);
  1301. }
  1302. },
  1303. uploadSuccessID:function(response, file, fileList){
  1304. if(response.status){
  1305. this.user.identification = fileList
  1306. }else{
  1307. this.$message.error(response.msg);
  1308. }
  1309. },
  1310. uploadSuccessEDU:function(response, file, fileList){
  1311. if(response.status){
  1312. this.user.education_certification = fileList
  1313. }else{
  1314. this.$message.error(response.msg);
  1315. }
  1316. },
  1317. uploadSuccessOther:function(response, file, fileList){
  1318. if(response.status){
  1319. this.user.other_certification = fileList
  1320. }else{
  1321. this.$message.error(response.msg);
  1322. }
  1323. },
  1324. removeID:function(file,fileList) {
  1325. this.user.identification = fileList
  1326. },
  1327. removeLP:function(file,fileList) {
  1328. this.user.special.material = fileList
  1329. },
  1330. removeEDU:function(file,fileList) {
  1331. this.user.education_certification = fileList
  1332. },
  1333. removeOther:function(file,fileList) {
  1334. this.user.other_certification = fileList
  1335. },
  1336. handlePictureCardPreview:function(file){
  1337. this.dialogImageUrl = file.url;
  1338. this.dialogVisible = true;
  1339. },
  1340. postChange:function(value){
  1341. this.post_limit_value = this.post_limit[value];
  1342. },
  1343. save:function(formName){
  1344. this.user.operation = 1;
  1345. this.$refs[formName].validate((valid,object) => {
  1346. if (valid) {
  1347. this.loading = this.$loading({
  1348. lock: false,
  1349. text: '加载中',
  1350. spinner: 'el-icon-loading',
  1351. background: 'rgba(0, 0, 0, 0.7)'
  1352. });
  1353. this.user._token = '{{csrf_token()}}';
  1354. axios.post("{{route('recruit.save_sign_up')}}",Qs.stringify(this.user)).then(response => {
  1355. if(response.data.status){
  1356. this.$alert(response.data.msg, '提交成功', {
  1357. confirmButtonText: '确定',
  1358. callback: action => {
  1359. window.location.reload();
  1360. }
  1361. });
  1362. }else{
  1363. this.$message.error(response.data.msg);
  1364. this.loading.close();
  1365. return false;
  1366. }
  1367. });
  1368. } else {
  1369. for(let key in object){
  1370. this.$message.error(object[key][0].message);
  1371. return false;
  1372. }
  1373. return false;
  1374. }
  1375. })
  1376. },
  1377. submit:function(formName){
  1378. this.user.operation = 2;
  1379. this.$refs[formName].validate((valid,object) => {
  1380. if (valid) {
  1381. if(this.post_limit_value != '' || this.post_limit_value != null){
  1382. for(let key in this.post_limit_value){//职位条件限制
  1383. switch(this.post_limit_value[key].op){
  1384. case '=':
  1385. if(this.user[key] != this.post_limit_value[key].value){
  1386. this.$message.error(this.post_limit_value[key].msg);
  1387. return false;
  1388. }
  1389. break;
  1390. case '>':
  1391. if(key == 'birthday'){
  1392. value = this.user[key].replace(/-/g,'');
  1393. }else{
  1394. value = this.user[key];
  1395. }
  1396. if(value <= this.post_limit_value[key].value){
  1397. this.$message.error(this.post_limit_value[key].msg);
  1398. return false;
  1399. }
  1400. break;
  1401. case '>=':
  1402. if(key == 'birthday'){
  1403. value = this.user[key].replace(/-/g,'');
  1404. }else{
  1405. value = this.user[key];
  1406. }
  1407. if(value < this.post_limit_value[key].value){
  1408. this.$message.error(this.post_limit_value[key].msg);
  1409. return false;
  1410. }
  1411. break;
  1412. case '<':
  1413. if(key == 'birthday'){
  1414. value = this.user[key].replace(/-/g,'');
  1415. }else{
  1416. value = this.user[key];
  1417. }
  1418. if(value < this.post_limit_value[key].value){
  1419. this.$message.error(this.post_limit_value[key].msg);
  1420. return false;
  1421. }
  1422. break;
  1423. case '<=':
  1424. if(key == 'birthday'){
  1425. value = this.user[key].replace(/-/g,'');
  1426. }else{
  1427. value = this.user[key];
  1428. }
  1429. if(value > this.post_limit_value[key].value){
  1430. this.$message.error(this.post_limit_value[key].msg);
  1431. return false;
  1432. }
  1433. break;
  1434. case '!=':
  1435. if(key == 'birthday'){
  1436. value = this.user[key].replace(/-/g,'');
  1437. }else{
  1438. value = this.user[key];
  1439. }
  1440. if(value == this.post_limit_value[key].value){
  1441. this.$message.error(this.post_limit_value[key].msg);
  1442. return false;
  1443. }
  1444. break;
  1445. case 'like':
  1446. if(this.user[key].indexOf(this.post_limit_value[key].value) < 0){
  1447. this.$message.error(this.post_limit_value[key].msg);
  1448. return false;
  1449. }
  1450. break;
  1451. case 'in':
  1452. if(this.post_limit_value[key].value.indexOf(this.user[key]) < 0){
  1453. this.$message.error(this.post_limit_value[key].msg);
  1454. return false;
  1455. }
  1456. break;
  1457. }
  1458. }
  1459. }
  1460. var msg = '资料请详细检查!';
  1461. this.$confirm(msg, '提示', {
  1462. confirmButtonText: '检查无误,确定提交',
  1463. cancelButtonText: '我需要再检查一遍',
  1464. type: 'warning'
  1465. }).then(() => {
  1466. this.loading = this.$loading({
  1467. lock: false,
  1468. text: '加载中',
  1469. spinner: 'el-icon-loading',
  1470. background: 'rgba(0, 0, 0, 0.7)'
  1471. });
  1472. this.user._token = '{{csrf_token()}}';
  1473. axios.post("{{route('recruit.save_sign_up')}}",Qs.stringify(this.user)).then(response => {
  1474. if(response.data.status){
  1475. this.$alert(response.data.msg, '提交成功', {
  1476. confirmButtonText: '确定',
  1477. callback: action => {
  1478. window.location.reload();
  1479. }
  1480. });
  1481. }else{
  1482. this.$message.error(response.data.msg);
  1483. this.loading.close();
  1484. return false;
  1485. }
  1486. });
  1487. }).catch(() => {
  1488. });
  1489. } else {
  1490. for(let key in object){
  1491. this.$message.error(object[key][0].message);
  1492. return false;
  1493. }
  1494. return false;
  1495. }
  1496. })
  1497. },
  1498. addFamily:function(){
  1499. this.user.family.push({
  1500. appellation:'',
  1501. realname:'',
  1502. birthday:'',
  1503. political_attitudes:'',
  1504. work:''
  1505. });
  1506. },
  1507. delFamily:function(){
  1508. var length = this.user.family.length;
  1509. if (length > 1) {
  1510. this.user.family.pop()
  1511. }else{
  1512. this.$message.error('只剩一条记录,不能再删啦');
  1513. }
  1514. }
  1515. },
  1516. computed:{
  1517. special_switch() {
  1518. if(this.user.special.point_apply == '0'){
  1519. return true;
  1520. }else{
  1521. return false;
  1522. }
  1523. }
  1524. },
  1525. created(){
  1526. this.loading.close();
  1527. var formDisabled = parseInt("{{ $formDisable }}");
  1528. if(this.user.audit == 1 || this.user.audit == 3 || formDisabled === 1){
  1529. this.formDisable = true
  1530. }else{
  1531. this.formDisable = false;
  1532. }
  1533. }
  1534. })
  1535. </script>
  1536. @else
  1537. <script>
  1538. new Vue({
  1539. el: '#app',
  1540. data: function() {
  1541. return {
  1542. resume_tip:"个人简历请严格按如下格式填写:\r\n1993.09-1996.07 \t××市××中学(高中) 学生;\r\n1996.09-2000.07 \t×××××大学(本科)工商管理专业 学生;\r\n2000.09-2001.03\t待业;\r\n2001.04-2004.08\t×××××有限公司(私营企业)总务科 后勤;\r\n2004.09-2007.06\t××市××单位(事业单位)非编 经办;\r\n2005.09-2008.07\t××省×××大学(在职研究生)工商管理专业 学生;\r\n2007.08-至今\t ××省×××单位(参公事业单位)在编 科员。\r\n说明:1.从高中写起到至今,中间不可中断。\r\n \t 2.对在职学习的,应注明。",
  1543. loading: this.$loading({
  1544. lock: false,
  1545. text: '加载中',
  1546. spinner: 'el-icon-loading',
  1547. background: 'rgba(0, 0, 0, 0.7)'
  1548. }),
  1549. user:eval({!! $appoint_info !!}),
  1550. formDisable:false,
  1551. rules:{
  1552. realname:[
  1553. {required: true, message: '请输入您的姓名', trigger: 'blur'}
  1554. ],
  1555. sex:[
  1556. { required: true, message: '请选择性别', trigger: 'change' }
  1557. ],
  1558. birthday:[
  1559. {required: true, message: '请选择出生日期', trigger: 'change' }
  1560. ],
  1561. avatar:[
  1562. {required: true, message: '请上传蓝底/红底近期证件照', trigger: 'change'}
  1563. ],
  1564. card:[
  1565. {required: true, message: '请输入证件号', trigger: 'blur'},
  1566. {validator:this.validID, trigger: 'blur'}
  1567. ],
  1568. nation:[
  1569. {required: true, message: '请输入您的民族', trigger: 'blur'}
  1570. ],
  1571. native_place:[
  1572. {required: true, message: '请输入您的籍贯', trigger: 'blur'}
  1573. ],
  1574. political_affiliation:[
  1575. {required: true, message: '请选择您的政治面貌', trigger: 'blur'}
  1576. ],
  1577. house_register:[
  1578. {required: true, message: '请输入您的户籍所在地', trigger: 'blur'}
  1579. ],
  1580. // edu_type:[
  1581. // {required: true, message: '请选择您的教育类型', trigger: 'change'}
  1582. // ],
  1583. school:[
  1584. {required: true, message: '请输入学校信息', trigger: 'blur'}
  1585. ],
  1586. education:[
  1587. {required: true, message: '请输入学历信息', trigger: 'blur'}
  1588. ],
  1589. pro:[
  1590. {required: true, message: '请输入所学专业', trigger: 'blur'}
  1591. ],
  1592. mobile:[
  1593. {required: true, message: '请输入手机号', trigger: 'blur'},
  1594. {validator:this.validMobile, trigger: 'blur'}
  1595. ],
  1596. email:[
  1597. {required: true, message: '请输入电子邮箱', trigger: 'blur'},
  1598. {validator:this.validEmail, trigger: 'blur'}
  1599. ],
  1600. address:[
  1601. {required: true, message: '请输入地址', trigger: 'blur'}
  1602. ],
  1603. post_id:[
  1604. {required: true, message: '请选择报名岗位', trigger: 'blur'}
  1605. ],
  1606. is_push:[
  1607. { required: true, message: '请选择是否接送推送', trigger: 'change' }
  1608. ],
  1609. concat_name:[
  1610. {required: true, message: '请输入紧急联系人姓名', trigger: 'blur'}
  1611. ],
  1612. concat_mobile:[
  1613. {required: true, message: '请输入紧急联系人电话', trigger: 'blur'}
  1614. ],
  1615. @if(in_array('expand_special',$module))
  1616. //扩展验证
  1617. special_condition:[
  1618. {validator:this.validSpecialCondition, trigger: 'blur'}
  1619. ],
  1620. special_material:[
  1621. {validator:this.validSpecialMaterial, trigger: 'change'}
  1622. ],
  1623. @endif
  1624. resume:[
  1625. {required: true, message: '请输入个人简历', trigger: 'blur'},
  1626. ],
  1627. @if(in_array('identification',$module))
  1628. //身份验证
  1629. identification:[
  1630. {validator:this.validIdentification, trigger: 'change'}
  1631. ],
  1632. @endif
  1633. @if(in_array('education_certification',$module))
  1634. education_certification:[
  1635. {validator:this.validEducertification, trigger: 'change'}
  1636. ],
  1637. @endif
  1638. },
  1639. init: 0,
  1640. upload: '',
  1641. post_data:eval({!! $post !!}),
  1642. political_affiliation: [ //国家关于政治面貌的分类标准
  1643. {
  1644. value: '01',
  1645. label: '中共党员'
  1646. },
  1647. {
  1648. value: '02',
  1649. label: '中共预备党员'
  1650. },
  1651. {
  1652. value: '03',
  1653. label: '共青团员'
  1654. },
  1655. {
  1656. value: '04',
  1657. label: '民革党员'
  1658. },
  1659. {
  1660. value: '05',
  1661. label: '民盟盟员'
  1662. },
  1663. {
  1664. value: '06',
  1665. label: '民建会员'
  1666. },
  1667. {
  1668. value: '07',
  1669. label: '民进会员'
  1670. },
  1671. {
  1672. value: '08',
  1673. label: '农工党党员'
  1674. },
  1675. {
  1676. value: '09',
  1677. label: '致公党党员'
  1678. },
  1679. {
  1680. value: '10',
  1681. label: '九三学社社员'
  1682. },
  1683. {
  1684. value: '11',
  1685. label: '台盟盟员'
  1686. },
  1687. {
  1688. value: '12',
  1689. label: '无党派人士'
  1690. },
  1691. {
  1692. value: '13',
  1693. label: '群众'
  1694. }
  1695. ],
  1696. dialogImageUrl: '',
  1697. dialogVisible: false,
  1698. post_limit: eval({!! $post_limit !!}),//所有岗位的报名限制条件
  1699. post_limit_value: {},//所选择的岗位限制条件
  1700. }
  1701. },
  1702. methods: {
  1703. //验证证件
  1704. validID(rule, value, callback){
  1705. if(!this.checkIDCard(value)) {
  1706. callback(new Error('身份证号不正确'));
  1707. }else{
  1708. callback();
  1709. }
  1710. },
  1711. checkIDCard(cardNo){
  1712. var weight_factor = [7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2];
  1713. var check_code = ['1', '0', 'X' , '9', '8', '7', '6', '5', '4', '3', '2'];
  1714. var code = cardNo + "";
  1715. var last = cardNo[17];//最后一位
  1716. var seventeen = code.substring(0,17);
  1717. var arr = seventeen.split("");
  1718. var len = arr.length;
  1719. var num = 0;
  1720. for(var i = 0; i < len; i++){
  1721. num = num + arr[i] * weight_factor[i];
  1722. }
  1723. var resisue = num%11;
  1724. var last_no = check_code[resisue];
  1725. var idcard_patter = /^[1-9][0-9]{5}([1][9][0-9]{2}|[2][0][0|1][0-9])([0][1-9]|[1][0|1|2])([0][1-9]|[1|2][0-9]|[3][0|1])[0-9]{3}([0-9]|[X])$/;
  1726. var format = idcard_patter.test(cardNo);
  1727. return last === last_no && format ? true : false;
  1728. },
  1729. //验证手机号码
  1730. validMobile(rule, value, callback){
  1731. if(!(/^1[3456789]\d{9}$/.test(value))){
  1732. callback(new Error('手机号码不正确'));
  1733. }
  1734. callback();
  1735. },
  1736. //验证邮箱
  1737. validEmail(rule, value, callback){
  1738. if(!(/^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/.test(value))){
  1739. callback(new Error('电子邮箱不正确'));
  1740. }
  1741. callback();
  1742. },
  1743. //验证头像
  1744. validAvatar(rule, value, callback){
  1745. callback();
  1746. },
  1747. validSpecialCondition(rule, value, callback){
  1748. if(this.user.special.point_apply == 1 && this.user.special.condition == ''){
  1749. callback(new Error('请输入符合加分的条件'));
  1750. }else{
  1751. callback();
  1752. }
  1753. },
  1754. validSpecialMaterial(rule, value, callback){
  1755. if(this.user.special.point_apply == 1 && this.user.special.material.length == 0){
  1756. callback(new Error('请上传佐证材料'));
  1757. }else{
  1758. callback();
  1759. }
  1760. },
  1761. validIdentification(rule, value, callback){
  1762. if(this.user.identification.length == 0){
  1763. callback(new Error('请上传身份证明证件'));
  1764. }else{
  1765. callback();
  1766. }
  1767. },
  1768. validEducertification(rule, value, callback){
  1769. if(this.user.education_certification.length == 0){
  1770. callback(new Error('请上传学历证明证件'));
  1771. }else{
  1772. callback();
  1773. }
  1774. },
  1775. beforeImageUpload(file) {
  1776. const isJPG = (file.type === 'image/jpeg' || file.type === 'image/png');
  1777. const isLt2M = file.size / 1024 / 1024 < 2;
  1778. if (!isJPG) {
  1779. this.$message.error('上传图片只能是 JPG、PNG 格式!');
  1780. }
  1781. if (!isLt2M) {
  1782. this.$message.error('上传图片大小不能超过 2MB!');
  1783. }
  1784. return isJPG && isLt2M;
  1785. },
  1786. uploadSuccess(response, file, fileList){
  1787. if(response.status){
  1788. this.user.avatar = response.path;
  1789. }else{
  1790. this.$message.error(response.msg);
  1791. }
  1792. },
  1793. uploadSuccessLP(response, file, fileList){
  1794. if(response.status){
  1795. this.user.special.material = fileList
  1796. }else{
  1797. this.$message.error(response.msg);
  1798. }
  1799. },
  1800. uploadSuccessID(response, file, fileList){
  1801. if(response.status){
  1802. this.user.identification = fileList
  1803. }else{
  1804. this.$message.error(response.msg);
  1805. }
  1806. },
  1807. uploadSuccessEDU(response, file, fileList){
  1808. if(response.status){
  1809. this.user.education_certification = fileList
  1810. }else{
  1811. this.$message.error(response.msg);
  1812. }
  1813. },
  1814. uploadSuccessOther(response, file, fileList){
  1815. if(response.status){
  1816. this.user.other_certification = fileList
  1817. }else{
  1818. this.$message.error(response.msg);
  1819. }
  1820. },
  1821. removeID(file,fileList) {
  1822. this.user.identification = fileList
  1823. },
  1824. removeLP(file,fileList) {
  1825. this.user.special.material = fileList
  1826. },
  1827. removeEDU(file,fileList) {
  1828. this.user.education_certification = fileList
  1829. },
  1830. removeOther(file,fileList) {
  1831. this.user.other_certification = fileList
  1832. },
  1833. handlePictureCardPreview(file){
  1834. this.dialogImageUrl = file.url;
  1835. this.dialogVisible = true;
  1836. },
  1837. postChange(value){
  1838. this.post_limit_value = this.post_limit[value];
  1839. },
  1840. save(formName){
  1841. this.user.operation = 1;
  1842. this.$refs[formName].validate((valid,object) => {
  1843. if (valid) {
  1844. this.loading = this.$loading({
  1845. lock: false,
  1846. text: '加载中',
  1847. spinner: 'el-icon-loading',
  1848. background: 'rgba(0, 0, 0, 0.7)'
  1849. });
  1850. this.user._token = '{{csrf_token()}}';
  1851. axios.post("{{route('recruit.save_sign_up')}}",Qs.stringify(this.user)).then(response => {
  1852. if(response.data.status){
  1853. this.$alert(response.data.msg, '提交成功', {
  1854. confirmButtonText: '确定',
  1855. callback: action => {
  1856. window.location.reload();
  1857. }
  1858. });
  1859. }else{
  1860. this.$message.error(response.data.msg);
  1861. this.loading.close();
  1862. return false;
  1863. }
  1864. });
  1865. } else {
  1866. for(let key in object){
  1867. this.$message.error(object[key][0].message);
  1868. return false;
  1869. }
  1870. return false;
  1871. }
  1872. })
  1873. },
  1874. submit(formName){
  1875. this.user.operation = 2;
  1876. this.$refs[formName].validate((valid,object) => {
  1877. if (valid) {
  1878. if(this.post_limit_value != '' || this.post_limit_value != null){
  1879. for(let key in this.post_limit_value){//职位条件限制
  1880. switch(this.post_limit_value[key].op){
  1881. case '=':
  1882. if(this.user[key] != this.post_limit_value[key].value){
  1883. this.$message.error(this.post_limit_value[key].msg);
  1884. return false;
  1885. }
  1886. break;
  1887. case '>':
  1888. if(key == 'birthday'){
  1889. value = this.user[key].replace(/-/g,'');
  1890. }else{
  1891. value = this.user[key];
  1892. }
  1893. if(value <= this.post_limit_value[key].value){
  1894. this.$message.error(this.post_limit_value[key].msg);
  1895. return false;
  1896. }
  1897. break;
  1898. case '>=':
  1899. if(key == 'birthday'){
  1900. value = this.user[key].replace(/-/g,'');
  1901. }else{
  1902. value = this.user[key];
  1903. }
  1904. if(value < this.post_limit_value[key].value){
  1905. this.$message.error(this.post_limit_value[key].msg);
  1906. return false;
  1907. }
  1908. break;
  1909. case '<':
  1910. if(key == 'birthday'){
  1911. value = this.user[key].replace(/-/g,'');
  1912. }else{
  1913. value = this.user[key];
  1914. }
  1915. if(value < this.post_limit_value[key].value){
  1916. this.$message.error(this.post_limit_value[key].msg);
  1917. return false;
  1918. }
  1919. break;
  1920. case '<=':
  1921. if(key == 'birthday'){
  1922. value = this.user[key].replace(/-/g,'');
  1923. }else{
  1924. value = this.user[key];
  1925. }
  1926. if(value > this.post_limit_value[key].value){
  1927. this.$message.error(this.post_limit_value[key].msg);
  1928. return false;
  1929. }
  1930. break;
  1931. case '!=':
  1932. if(key == 'birthday'){
  1933. value = this.user[key].replace(/-/g,'');
  1934. }else{
  1935. value = this.user[key];
  1936. }
  1937. if(value == this.post_limit_value[key].value){
  1938. this.$message.error(this.post_limit_value[key].msg);
  1939. return false;
  1940. }
  1941. break;
  1942. case 'like':
  1943. if(this.user[key].indexOf(this.post_limit_value[key].value) < 0){
  1944. this.$message.error(this.post_limit_value[key].msg);
  1945. return false;
  1946. }
  1947. break;
  1948. case 'in':
  1949. if(this.post_limit_value[key].value.indexOf(this.user[key]) < 0){
  1950. this.$message.error(this.post_limit_value[key].msg);
  1951. return false;
  1952. }
  1953. break;
  1954. }
  1955. }
  1956. }
  1957. var msg = '资料请详细检查!';
  1958. this.$confirm(msg, '提示', {
  1959. confirmButtonText: '检查无误,确定提交',
  1960. cancelButtonText: '我需要再检查一遍',
  1961. type: 'warning'
  1962. }).then(() => {
  1963. this.loading = this.$loading({
  1964. lock: false,
  1965. text: '加载中',
  1966. spinner: 'el-icon-loading',
  1967. background: 'rgba(0, 0, 0, 0.7)'
  1968. });
  1969. this.user._token = '{{csrf_token()}}';
  1970. axios.post("{{route('recruit.save_sign_up')}}",Qs.stringify(this.user)).then(response => {
  1971. if(response.data.status){
  1972. this.$alert(response.data.msg, '提交成功', {
  1973. confirmButtonText: '确定',
  1974. callback: action => {
  1975. window.location.reload();
  1976. }
  1977. });
  1978. }else{
  1979. this.$message.error(response.data.msg);
  1980. this.loading.close();
  1981. return false;
  1982. }
  1983. });
  1984. }).catch(() => {
  1985. });
  1986. } else {
  1987. for(let key in object){
  1988. this.$message.error(object[key][0].message);
  1989. return false;
  1990. }
  1991. return false;
  1992. }
  1993. })
  1994. },
  1995. addFamily(){
  1996. this.user.family.push({
  1997. appellation:'',
  1998. realname:'',
  1999. birthday:'',
  2000. political_attitudes:'',
  2001. work:''
  2002. });
  2003. },
  2004. delFamily(){
  2005. var length = this.user.family.length;
  2006. if (length > 1) {
  2007. this.user.family.pop()
  2008. }else{
  2009. this.$message.error('只剩一条记录,不能再删啦');
  2010. }
  2011. }
  2012. },
  2013. computed:{
  2014. special_switch() {
  2015. if(this.user.special.point_apply == '0'){
  2016. return true;
  2017. }else{
  2018. return false;
  2019. }
  2020. }
  2021. },
  2022. created(){
  2023. this.loading.close();
  2024. var formDisabled = parseInt("{{ $formDisable }}");
  2025. if(this.user.audit == 1 || this.user.audit == 3 || formDisabled === 1){
  2026. this.formDisable = true
  2027. }else{
  2028. this.formDisable = false;
  2029. }
  2030. }
  2031. })
  2032. </script>
  2033. @endif
  2034. @endsection