123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076 |
- @extends('module.layouts.content')
- @push('meta')
- @endpush
- @push('css')
- <link href="{{ theme_asset('app/css/common.css') }}" rel="stylesheet">
- <link href="{{theme_asset('app/css/recruit/recruit.css')}}" rel="stylesheet" type="text/css"/>
- <link href="{{theme_asset('app/css/element.css')}}" rel="stylesheet" type="text/css"/>
- <style>
- table,table tr th, table tr td { border:1px solid #ccc; padding: 0 7px}
- table { width: 100%; min-height: 25px; line-height: 25px; text-align: center; border-collapse: collapse; padding:2px;}
- .el-form-item{
- margin-bottom: 0;
- }
- .require{
- color: #f56c6c;
- }
- .avatar-uploader{
- padding: 15px;
- }
- .avatar-uploader .el-upload {
- border: 1px dashed #d9d9d9;
- border-radius: 6px;
- cursor: pointer;
- position: relative;
- overflow: hidden;
- display: inline-block;
- vertical-align: middle;
- }
- .avatar-uploader .el-upload:hover {
- border-color: #409EFF;
- }
- .avatar-uploader-icon {
- font-size: 28px;
- color: #8c939d;
- width: 178px;
- height: 178px;
- line-height: 178px;
- text-align: center;
- }
- .avatar {
- width: 178px;
- height: 178px;
- display: block;
- }
- .ticket{
- border:3px solid #000;
- padding:10px;
- }
- .ticket h2{
- text-align:center;
- font:normal 20px/40px "microsoft yahei";
- }
- .ticket h3{
- text-align:center;
- font:normal 24px/30px "microsoft yahei";
- }
- .ex_rule{
- margin-top: 20px;
- }
- .ex_rule h4{
- font-size: 20px;
- line-height:50px;
- }
- .ex_rule p{
- text-indent: 30px;
- line-height: 25px;
- }
- .ticket .item{
- line-height: 30px;
- }
- @page {
- size: auto A4 landscape;
- margin: 3mm; /* this affects the margin in the printer settings */
- }
- </style>
- @endpush
- @push('js')
- @endpush
- @section('content')
- <div class="recruit_container" id="app" style="margin-top: 20px">
- <div role="alert" class="el-message el-message--error" style="position:relative" v-if="user.audit == 2">
- <i class="el-message__icon el-icon-error"></i>
- <p class="el-message__content">@{{ user.audit_log }}</p>
- </div>
- <div role="alert" class="el-message el-message--info" style="position:relative" v-if="user.audit == 1">
- <i class="el-message__icon el-icon-info"></i>
- <p class="el-message__content">您的报名资料正在审核中</p>
- </div>
- <div role="alert" class="el-message el-message--success" style="position:relative" v-if="user.audit == 3">
- <i class="el-message__icon el-icon-success"></i>
- <p class="el-message__content">您的报名资料已审核成功</p>
- </div>
- @if(in_array('internship',$module))
- <p style="text-align:center;line-height:37px;margin-top: 30px">
- <span style=";font-family:方正小标宋简体;font-size:29px"><span style="font-family:方正小标宋简体">{{$title}}招募实习报名表</span></span>
- </p>
- <el-form :model="user" ref="userForm" :status-icon="true" :show-message="false" :rules="rules" :disabled="formDisable">
- <table cellspacing="0" width="100%">
- <tbody>
- <tr style="height:52px;page-break-inside:avoid" class="firstRow">
- <td valign="center" width="100">
- <span class="require">*</span>姓名
- </td>
- <td valign="center" colspan="4" width="200">
- <el-form-item prop="realname" >
- <el-input v-model="user.realname" placeholder="请输入您的姓名" style="width: 200px"></el-input>
- </el-form-item>
- </td>
- <td valign="center" width="80">
- <span class="require">*</span>性别
- </td>
- <td valign="center" colspan="2">
- <el-form-item prop="sex" >
- <el-radio label="1" v-model="user.sex">男</el-radio>
- <el-radio label="0" v-model="user.sex">女</el-radio>
- </el-form-item>
- </td>
- <td valign="center" width="100">
- <span class="require">*</span>出生年月
- </td>
- <td valign="center" colspan="2" width="200">
- <el-form-item prop="birthday">
- <el-date-picker
- v-model="user.birthday"
- type="date"
- placeholder="选择您的出生年月日"
- value-format="yyyy-MM-dd">
- </el-date-picker>
- </el-form-item>
- </td>
- <td valign="center" rowspan="3" width="200">
- <el-form-item prop="avatar" ref="avatar">
- <el-upload
- class="avatar-uploader"
- action="{{ route('recruit.api.upload') }}"
- ref="user_avatar"
- :data="{name:'avatar',_token:'{{csrf_token()}}'}"
- :show-file-list="false"
- :before-upload="beforeImageUpload"
- :on-success="uploadSuccess">
- <img v-if="this.user.avatar" :src="this.user.avatar" class="avatar">
- <i v-else class="el-icon-plus avatar-uploader-icon"></i>
- </el-upload>
- </el-form-item>
- <div><span><span class="require">*</span>近期免冠证件照(2M以内)</span></div>
- </td>
- </tr>
- <tr style="height:52px;page-break-inside:avoid">
- <td valign="center" >
- <span class="require">*</span>身份证号码
- </td>
- <td valign="center" colspan="4" >
- <el-form-item prop="card">
- <el-input v-model="user.card" placeholder="请输入身份证号码 "></el-input>
- </el-form-item>
- </td>
- <td valign="center">
- <span class="require">*</span>民族
- </td>
- <td valign="center" colspan="2" >
- <el-form-item prop="nation">
- <el-input v-model="user.nation" placeholder="请输入您的民族"></el-input>
- </el-form-item>
- </td>
- <td valign="center" >
- <span class="require">*</span>籍贯
- </td>
- <td valign="center" colspan="2">
- <el-form-item prop="native_place">
- <el-input v-model="user.native_place" placeholder="请输入您的籍贯"></el-input>
- </el-form-item>
- </td>
- </tr>
- <tr style="height:52px;page-break-inside:avoid">
- <td valign="center" >
- <span class="require">*</span>政治面貌
- </td>
- <td valign="center" colspan="4" >
- <el-form-item prop="political_affiliation">
- <el-select v-model="user.political_affiliation" placeholder="请选择">
- <el-option
- v-for="item in political_affiliation"
- :key="item.value"
- :label="item.label"
- :value="item.value">
- </el-option>
- </el-select>
- </el-form-item>
- </td>
- <td valign="center" >
- 入党时间
- </td>
- <td valign="center" colspan="2">
- <el-input v-model="user.join_time" placeholder="非党员请放空"></el-input>
- </td>
- <td valign="center" >
- <span class="require">*</span>户籍所在地
- </td>
- <td valign="center" colspan="2" >
- <el-form-item prop="house_register">
- <el-input v-model="user.house_register" placeholder="按市县填写,如泉州晋江"></el-input>
- </el-form-item>
- </td>
- </tr>
- <tr style="height:52px;page-break-inside:avoid">
- <td valign="center" >
- <span class="require">*</span>年级
- </td>
- <td valign="center" colspan="7" >
- <el-form-item prop="education" label-width="70px">
- <el-select v-model="user.education" placeholder="请选择年级">
- <el-option label="大三在校生" value="大三在校生"></el-option>
- <el-option label="大四在校生" value="大四在校生"></el-option>
- <el-option label="大四应届生" value="大四应届生"></el-option>
- <el-option label="硕士在校生" value="硕士在校生"></el-option>
- <el-option label="博士在校生" value="博士在校生"></el-option>
- </el-select>
- </el-form-item>
- </td>
- <td valign="center" >
- <span class="require">*</span>就读院校
- </td>
- <td valign="center" colspan="4" >
- <el-form-item prop="school">
- <el-input v-model="user.school" autosize placeholder="请输入就读院校"></el-input>
- </el-form-item>
- </td>
- </tr>
- <tr style="height:52px;page-break-inside:avoid">
- <td valign="center" >
- <span class="require">*</span>所学专业
- </td>
- <td valign="center" colspan="7" >
- <el-form-item prop="pro">
- <el-input v-model="user.pro" autosize placeholder="多专业请用;分隔"></el-input>
- </el-form-item>
- </td>
- <td valign="center" >
- <span class="require">*</span>是否接受调剂
- </td>
- <td valign="center" colspan="4" >
- <el-form-item prop="adjust" >
- <el-radio label="1" v-model="user.adjust">是</el-radio>
- <el-radio label="0" v-model="user.adjust">否</el-radio>
- </el-form-item>
- </td>
- </tr>
- <tr style="height:52px;page-break-inside:avoid">
- <td valign="center" >
- <span class="require">*</span>联系电话
- </td>
- <td valign="center" colspan="7" >
- <el-form-item prop="mobile">
- <el-input v-model="user.mobile" placeholder="请输入联系电话"></el-input>
- </el-form-item>
- </td>
- <td valign="center" colspan="1" >
- <span class="require">*</span>电子邮箱
- </td>
- <td valign="center" colspan="3" >
- <el-form-item prop="email">
- <el-input v-model="user.email" placeholder="请输入电子邮箱"></el-input>
- </el-form-item>
- </td>
- </tr>
- <tr style="height:52px;page-break-inside:avoid">
- <td valign="center">
- <span class="require">*</span>通信地址
- </td>
- <td valign="center" colspan="7" >
- <el-form-item prop="address">
- <el-input v-model="user.address" placeholder="请输入地址"></el-input>
- </el-form-item>
- </td>
- <td valign="center" >
- <span class="require">*</span>报名岗位
- </td>
- <td valign="center" colspan="3" >
- <el-form-item prop="post_id">
- <el-select v-model="user.post_id" placeholder="请选择报名岗位" @change="postChange">
- <el-option
- v-for="item in post_data"
- :key="item.value"
- :label="item.label"
- :value="item.value">
- </el-option>
- </el-select>
- </el-form-item>
- </td>
- </tr>
- <tr style="height:52px;page-break-inside:avoid">
- <td valign="center" >
- <span class="require">*</span>紧急联系人<br />姓名
- </td>
- <td valign="center" colspan="7" >
- <el-form-item prop="concat_name">
- <el-input v-model="user.concat_name" placeholder="请输入紧急联系人姓名"></el-input>
- </el-form-item>
- </td>
- <td valign="center">
- <span class="require">*</span>联系电话
- </td>
- <td valign="center" colspan="7" >
- <el-form-item prop="concat_mobile">
- <el-input v-model="user.concat_mobile" placeholder="请输入联系电话"></el-input>
- </el-form-item>
- </td>
- </tr>
- <tr style="height:275px;page-break-inside:avoid">
- <td valign="center" >
- <span class="require">*</span>个<br />
- 人<br />
- 简<br />
- 历
- </td>
- <td valign="center" colspan="11" >
- <el-form-item prop="resume">
- <el-input
- type="textarea"
- :rows="12"
- :placeholder="resume_tip"
- v-model="user.resume">
- </el-input>
- </el-form-item>
- </td>
- </tr>
- <tr style="height:94px;page-break-inside:avoid">
- <td valign="center" >
- 奖<br />
- 惩<br />
- 情<br />
- 况
- </td>
- <td valign="center" colspan="11" >
- <el-input
- type="textarea"
- :rows="3"
- placeholder="请输入奖惩情况(若有)"
- v-model="user.detail.rewards_and_punishments">
- </el-input>
- </td>
- </tr>
- <tr style="height:159px;page-break-inside:avoid">
- <td valign="center" >
- 个<br />
- 人<br />
- 情<br />
- 况<br />
- 介<br />
- 绍
- </td>
- <td valign="center" colspan="11" >
- <el-input
- type="textarea"
- :rows="6"
- placeholder="包括但不限于:性格能力自评;个人优缺点;考虑从原单位离职原因;选择应聘本岗位的动机。"
- v-model="user.detail.introduce">
- </el-input>
- </td>
- </tr>
- <tr style="height:47px;page-break-inside:avoid">
- <td valign="center" :rowspan="this.user.family.length+1">
- 家庭成员及其主要社会关系<br />
- <el-button type="primary" icon="el-icon-plus" size="small" @click="addFamily">添加家庭成员</el-button><br />
- <el-button type="danger" icon="el-icon-minus" size="small" @click="delFamily">删除最后一行</el-button>
- </td>
- <td valign="center" >
- <p style=";text-align:center">
- <span style=";font-family:宋体;font-size:14px">称谓</span>
- </p>
- </td>
- <td width="200" valign="center" colspan="4" >
- <p style=";text-align:center">
- <span style=";font-family:宋体;font-size:14px">姓名</span>
- </p>
- </td>
- <td width="87" valign="center" colspan="2" >
- <p style=";text-align:center">
- <span style=";font-family:宋体;font-size:14px">出生年月</span>
- </p>
- </td>
- <td width="98" valign="center" colspan="1" >
- <p style=";text-align:center">
- <span style=";font-family:宋体;font-size:14px">政治面貌</span>
- </p>
- </td>
- <td width="241" valign="center" colspan="3" >
- <p style=";text-align:center">
- <span style=";font-family:宋体;font-size:14px">工作单位及职位</span>
- </p>
- </td>
- </tr>
- <tr style="height:52px;page-break-inside:avoid" v-for="(item,index) in user.family">
- <td width="85" valign="center">
- <el-form-item :prop="'family.'+index+'.relation'" :rules="{required: true, message: '称谓不能为空', trigger: 'blur'}">
- <el-input v-model="item.relation" placeholder="请输入称谓"></el-input>
- </el-form-item>
- </td>
- <td width="200" valign="center" colspan="4" >
- <el-form-item :prop="'family.'+index+'.realname'" :rules="{required: true, message: '真实姓名不能为空', trigger: 'blur'}">
- <el-input v-model="item.realname" placeholder="请输入真实姓名"></el-input>
- </el-form-item>
- </td>
- <td width="87" valign="center" colspan="2" >
- <el-form-item :prop="'family.'+index+'.birthday'" :rules="{required: true, message: '出生年月日不能为空', trigger: 'blur'}">
- <el-date-picker
- v-model="item.birthday"
- type="date"
- placeholder="选择出生年月日"
- value-format="yyyy-MM-dd">
- </el-date-picker>
- </el-form-item>
- </td>
- <td width="98" valign="center" colspan="1" >
- <el-form-item :prop="'family.'+index+'.political_affiliation'" :rules="{required: true, message: '请选择您的政治面貌', trigger: 'blur'}">
- <el-select v-model="item.political_affiliation" placeholder="请选择">
- <el-option
- v-for="select in political_affiliation"
- :key="select.value"
- :label="select.label"
- :value="select.value">
- </el-option>
- </el-select>
- </el-form-item>
- </td>
- <td width="241" valign="center" colspan="3" >
- <el-form-item :prop="'family.'+index+'.work'" :rules="{required: true, message: '请输入工作单位及职位', trigger: 'blur'}">
- <el-input v-model="item.work" placeholder="请输入工作单位及职位"></el-input>
- </el-form-item>
- </td>
- </tr>
- <tr style="height:52px;page-break-inside:avoid">
- <td valign="center" >
- <span class="require">*</span>身份证明<br />
- (身份证或其他身份证明证件)
- </td>
- <td valign="center" colspan="11">
- <el-form-item prop="identification" ref="identification">
- <div style="padding: 10px 0">
- <el-upload
- action="{{ route('recruit.api.upload') }}"
- list-type="picture-card"
- :data="{_token:'{{csrf_token()}}'}"
- :file-list="user.identification"
- :before-upload="beforeImageUpload"
- :on-success="uploadSuccessID"
- :multiple="true"
- :on-preview="handlePictureCardPreview"
- :on-remove="removeID">
- <i class="el-icon-plus"></i>
- </el-upload>
- </div>
- </el-form-item>
- </td>
- </tr>
- <tr style="height:52px;page-break-inside:avoid">
- <td valign="center" >
- <span class="require">*</span>学历证明<br />
- (学信网《教育部学籍在线验证报告》)
- </td>
- <td valign="center" colspan="11">
- <el-form-item prop="education_certification" ref="education_certification">
- <div style="padding: 10px 0">
- <el-upload
- action="{{ route('recruit.api.upload') }}"
- list-type="picture-card"
- :data="{_token:'{{csrf_token()}}'}"
- :file-list="user.education_certification"
- :before-upload="beforeImageUpload"
- :on-success="uploadSuccessEDU"
- :multiple="true"
- :on-preview="handlePictureCardPreview"
- :on-remove="removeEDU">
- <i class="el-icon-plus"></i>
- </el-upload>
- </div>
- </el-form-item>
- </td>
- </tr>
- <tr style="height:52px;page-break-inside:avoid">
- <td valign="center" >
- 其他证明<br />
- (党员、学生干部等证明)
- </td>
- <td valign="center" colspan="11">
- <div style="padding: 10px 0">
- <el-upload
- action="{{ route('recruit.api.upload') }}"
- list-type="picture-card"
- :data="{_token:'{{csrf_token()}}'}"
- :file-list="user.other_certification"
- :before-upload="beforeImageUpload"
- :on-success="uploadSuccessOther"
- :multiple="true"
- :on-preview="handlePictureCardPreview"
- :on-remove="removeOther">
- <i class="el-icon-plus"></i>
- </el-upload>
- </div>
- </td>
- </tr>
- </tbody>
- <tfoot>
- <tr>
- <td height="52" colspan="12" style="padding: 10px 0">
- <el-form-item size="large">
- <el-button type="primary" @click="save('userForm')" v-if="user.audit != 2">资料暂存</el-button>
- <el-button type="success" @click="submit('userForm')">提交报名</el-button>
- </el-form-item>
- <p style="color: #dd4250">
- 提示:若材料准备需要时间,可以使用资料暂存功能,先保存已填写的表单,资料齐全且无误后再点击提交报名
- </p>
- </td>
- </tr>
- </tfoot>
- </table>
- </el-form>
- @else
- <p style="text-align:center;line-height:37px;margin-top: 30px">
- <span style=";font-family:方正小标宋简体;font-size:29px"><span style="font-family:方正小标宋简体">{{$title}}公开招聘工作人员报名表</span></span>
- </p>
- <el-form :model="user" ref="userForm" :status-icon="true" :show-message="false" :rules="rules" :disabled="formDisable">
- <table cellspacing="0" width="100%">
- <tbody>
- <tr style="height:52px;page-break-inside:avoid" class="firstRow">
- <td valign="center" width="100">
- <span class="require">*</span>姓名
- </td>
- <td valign="center" colspan="4" width="200">
- <el-form-item prop="realname" >
- <el-input v-model="user.realname" placeholder="请输入您的姓名" style="width: 200px"></el-input>
- </el-form-item>
- </td>
- <td valign="center" width="80">
- <span class="require">*</span>性别
- </td>
- <td valign="center" colspan="2">
- <el-form-item prop="sex" >
- <el-radio label="1" v-model="user.sex">男</el-radio>
- <el-radio label="0" v-model="user.sex">女</el-radio>
- </el-form-item>
- </td>
- <td valign="center" width="100">
- <span class="require">*</span>出生年月
- </td>
- <td valign="center" colspan="2" width="200">
- <el-form-item prop="birthday">
- <el-date-picker
- v-model="user.birthday"
- type="date"
- placeholder="选择您的出生年月日"
- value-format="yyyy-MM-dd">
- </el-date-picker>
- </el-form-item>
- </td>
- <td valign="center" rowspan="3" width="200">
- <el-form-item prop="avatar" ref="avatar">
- <el-upload
- class="avatar-uploader"
- action="{{ route('recruit.api.upload') }}"
- ref="user_avatar"
- :data="{name:'avatar',_token:'{{csrf_token()}}'}"
- :show-file-list="false"
- :before-upload="beforeImageUpload"
- :on-success="uploadSuccess">
- <img v-if="this.user.avatar" :src="this.user.avatar" class="avatar">
- <i v-else class="el-icon-plus avatar-uploader-icon"></i>
- </el-upload>
- </el-form-item>
- <div><span><span class="require">*</span>近期免冠证件照(2M以内)</span></div>
- </td>
- </tr>
- <tr style="height:52px;page-break-inside:avoid">
- <td valign="center" >
- <span class="require">*</span>身份证号码
- </td>
- <td valign="center" colspan="4" >
- <el-form-item prop="card">
- <el-input v-model="user.card" placeholder="请输入身份证号码 "></el-input>
- </el-form-item>
- </td>
- <td valign="center">
- <span class="require">*</span>民族
- </td>
- <td valign="center" colspan="2" >
- <el-form-item prop="nation">
- <el-input v-model="user.nation" placeholder="请输入您的民族"></el-input>
- </el-form-item>
- </td>
- <td valign="center" >
- <span class="require">*</span>籍贯
- </td>
- <td valign="center" colspan="2">
- <el-form-item prop="native_place">
- <el-input v-model="user.native_place" placeholder="请输入您的籍贯"></el-input>
- </el-form-item>
- </td>
- </tr>
- <tr style="height:52px;page-break-inside:avoid">
- <td valign="center" >
- <span class="require">*</span>政治面貌
- </td>
- <td valign="center" colspan="4" >
- <el-form-item prop="political_affiliation">
- <el-select v-model="user.political_affiliation" placeholder="请选择">
- <el-option
- v-for="item in political_affiliation"
- :key="item.value"
- :label="item.label"
- :value="item.value">
- </el-option>
- </el-select>
- </el-form-item>
- </td>
- <td valign="center" >
- 入党时间
- </td>
- <td valign="center" colspan="2">
- <el-input v-model="user.join_time" placeholder="非党员请放空"></el-input>
- </td>
- <td valign="center" >
- <span class="require">*</span>户籍所在地
- </td>
- <td valign="center" colspan="2" >
- <el-form-item prop="house_register">
- <el-input v-model="user.house_register" placeholder="按市县填写,如泉州晋江"></el-input>
- </el-form-item>
- </td>
- </tr>
- <tr style="height:52px;page-break-inside:avoid">
- <td valign="center" colspan="8" >
- <el-form-item prop="education" label="学历" label-width="70px">
- <el-select v-model="user.education" placeholder="请选择学历">
- <el-option label="小学" value="小学"></el-option>
- <el-option label="初中" value="初中"></el-option>
- <el-option label="技校" value="技校"></el-option>
- <el-option label="职高" value="职高"></el-option>
- <el-option label="高中" value="高中"></el-option>
- <el-option label="中专" value="中专"></el-option>
- <el-option label="专科" value="专科"></el-option>
- <el-option label="本科" value="本科"></el-option>
- <el-option label="硕士" value="硕士"></el-option>
- <el-option label="博士" value="博士"></el-option>
- </el-select>
- </el-form-item>
- </td>
- <td valign="center" >
- <span class="require">*</span>毕业院校
- </td>
- <td valign="center" colspan="4" >
- <el-form-item prop="school">
- <el-input v-model="user.school" autosize placeholder="请输入毕业院校"></el-input>
- </el-form-item>
- </td>
- </tr>
- <tr style="height:52px;page-break-inside:avoid">
- <td valign="center" colspan="8" >
- <el-form-item prop="degree" label="学位" label-width="70px">
- <el-select v-model="user.degree" placeholder="请选择学位">
- <el-option label="" value=""></el-option>
- <el-option label="学士学位" value="学士学位"></el-option>
- <el-option label="硕士学位" value="硕士学位"></el-option>
- <el-option label="博士学位" value="博士学位"></el-option>
- </el-select>
- </el-form-item>
- </td>
- <td valign="center" >
- <span class="require">*</span>所学专业
- </td>
- <td valign="center" colspan="4" >
- <el-form-item prop="pro">
- <el-input v-model="user.pro" autosize placeholder="多专业请用;分隔"></el-input>
- </el-form-item>
- </td>
- </tr>
- <tr style="height:52px;page-break-inside:avoid">
- <td valign="center" >
- <span class="require">*</span>联系电话
- </td>
- <td valign="center" colspan="7" >
- <el-form-item prop="mobile">
- <el-input v-model="user.mobile" placeholder="请输入联系电话"></el-input>
- </el-form-item>
- </td>
- <td valign="center" colspan="1" >
- <span class="require">*</span>电子邮箱
- </td>
- <td valign="center" colspan="3" >
- <el-form-item prop="email">
- <el-input v-model="user.email" placeholder="请输入电子邮箱"></el-input>
- </el-form-item>
- </td>
- </tr>
- <tr style="height:52px;page-break-inside:avoid">
- <td valign="center">
- <span class="require">*</span>通信地址
- </td>
- <td valign="center" colspan="7" >
- <el-form-item prop="address">
- <el-input v-model="user.address" placeholder="请输入地址"></el-input>
- </el-form-item>
- </td>
- <td valign="center" >
- <span class="require">*</span>报名岗位
- </td>
- <td valign="center" colspan="3" >
- <el-form-item prop="post_id">
- <el-select v-model="user.post_id" placeholder="请选择报名岗位" @change="postChange">
- <el-option
- v-for="item in post_data"
- :key="item.value"
- :label="item.label"
- :value="item.value">
- </el-option>
- </el-select>
- </el-form-item>
- </td>
- </tr>
- <tr style="height:52px;page-break-inside:avoid">
- <td valign="center">
- 现工作单位及职务
- </td>
- <td valign="center" colspan="7" >
- <el-input v-model="user.work" placeholder="请输入现工作单位及职务"></el-input>
- </td>
- <td valign="center" >
- 职称或职业资格
- </td>
- <td valign="center" colspan="3">
- <el-input v-model="user.titles" placeholder="请输入职称或职业资格"></el-input>
- </td>
- </tr>
- <tr style="height:52px;page-break-inside:avoid">
- <td valign="center" >
- <span class="require">*</span>紧急联系人<br />姓名
- </td>
- <td valign="center" colspan="7" >
- <el-form-item prop="concat_name">
- <el-input v-model="user.concat_name" placeholder="请输入紧急联系人姓名"></el-input>
- </el-form-item>
- </td>
- <td valign="center">
- <span class="require">*</span>联系电话
- </td>
- <td valign="center" colspan="7" >
- <el-form-item prop="concat_mobile">
- <el-input v-model="user.concat_mobile" placeholder="请输入联系电话"></el-input>
- </el-form-item>
- </td>
- </tr>
- @if(in_array('expand_special',$module))
- <tr style="height:52px;page-break-inside:avoid">
- <td valign="center" >
- 是否申请加分
- </td>
- <td valign="center" colspan="4">
- <el-form-item prop="special.point_apply" >
- <el-radio label="1" v-model="user.special.point_apply">是</el-radio>
- <el-radio label="0" v-model="user.special.point_apply">否</el-radio>
- </el-form-item>
- </td>
- <td valign="center" colspan="3">
- 符合哪一项加分条件
- </td>
- <td valign="center" colspan="4" >
- <el-form-item prop="special_condition">
- <el-input v-model="user.special.condition" placeholder="请输入您符合的加分条件" :disabled="special_switch"></el-input>
- </el-form-item>
- </td>
- </tr>
- <tr style="height:52px;page-break-inside:avoid">
- <td valign="center" >
- 申请加分佐证材料
- </td>
- <td valign="center" colspan="11">
- <el-form-item prop="special_material" ref="special_material">
- <div style="padding: 10px 0">
- <el-upload
- action="{{ route('recruit.api.upload') }}"
- list-type="picture-card"
- :data="{_token:'{{csrf_token()}}'}"
- :file-list="user.special.material"
- :before-upload="beforeImageUpload"
- :on-success="uploadSuccessLP"
- :disabled="special_switch"
- :multiple="true"
- :on-preview="handlePictureCardPreview"
- :on-remove="removeLP">
- <i class="el-icon-plus"></i>
- </el-upload>
- </div>
- </el-form-item>
- </td>
- </tr>
- @endif
- <tr style="height:275px;page-break-inside:avoid">
- <td valign="center" >
- <span class="require">*</span>个<br />
- 人<br />
- 简<br />
- 历
- </td>
- <td valign="center" colspan="11" >
- <el-form-item prop="resume">
- <el-input
- type="textarea"
- :rows="12"
- :placeholder="resume_tip"
- v-model="user.resume">
- </el-input>
- </el-form-item>
- </td>
- </tr>
- @if(in_array('detail',$module))
- <tr style="height:132px;page-break-inside:avoid">
- <td valign="center" >
- 培<br />
- 训<br />
- 学<br />
- 习<br />
- 经<br />
- 历
- </td>
- <td valign="center" colspan="11" >
- <el-input
- type="textarea"
- :rows="6"
- placeholder="请输入培训经历(若有)"
- v-model="user.detail.train">
- </el-input>
- </td>
- </tr>
- <tr style="height:94px;page-break-inside:avoid">
- <td valign="center" >
- 奖<br />
- 惩<br />
- 情<br />
- 况
- </td>
- <td valign="center" colspan="11" >
- <el-input
- type="textarea"
- :rows="3"
- placeholder="请输入奖惩情况(若有)"
- v-model="user.detail.rewards_and_punishments">
- </el-input>
- </td>
- </tr>
- <tr style="height:159px;page-break-inside:avoid">
- <td valign="center" >
- 个<br />
- 人<br />
- 情<br />
- 况<br />
- 介<br />
- 绍
- </td>
- <td valign="center" colspan="11" >
- <el-input
- type="textarea"
- :rows="6"
- placeholder="包括但不限于:性格能力自评;个人优缺点;考虑从原单位离职原因;选择应聘本岗位的动机。"
- v-model="user.detail.introduce">
- </el-input>
- </td>
- </tr>
- @endif
- <tr style="height:47px;page-break-inside:avoid">
- <td valign="center" :rowspan="this.user.family.length+1">
- 家庭成员及其主要社会关系<br />
- <el-button type="primary" icon="el-icon-plus" size="small" @click="addFamily">添加家庭成员</el-button><br />
- <el-button type="danger" icon="el-icon-minus" size="small" @click="delFamily">删除最后一行</el-button>
- </td>
- <td valign="center" >
- <p style=";text-align:center">
- <span style=";font-family:宋体;font-size:14px">称谓</span>
- </p>
- </td>
- <td width="200" valign="center" colspan="4" >
- <p style=";text-align:center">
- <span style=";font-family:宋体;font-size:14px">姓名</span>
- </p>
- </td>
- <td width="87" valign="center" colspan="2" >
- <p style=";text-align:center">
- <span style=";font-family:宋体;font-size:14px">出生年月</span>
- </p>
- </td>
- <td width="98" valign="center" colspan="1" >
- <p style=";text-align:center">
- <span style=";font-family:宋体;font-size:14px">政治面貌</span>
- </p>
- </td>
- <td width="241" valign="center" colspan="3" >
- <p style=";text-align:center">
- <span style=";font-family:宋体;font-size:14px">工作单位及职位</span>
- </p>
- </td>
- </tr>
- <tr style="height:52px;page-break-inside:avoid" v-for="(item,index) in user.family">
- <td width="85" valign="center">
- <el-form-item :prop="'family.'+index+'.relation'" :rules="{required: true, message: '称谓不能为空', trigger: 'blur'}">
- <el-input v-model="item.relation" placeholder="请输入称谓"></el-input>
- </el-form-item>
- </td>
- <td width="200" valign="center" colspan="4" >
- <el-form-item :prop="'family.'+index+'.realname'" :rules="{required: true, message: '真实姓名不能为空', trigger: 'blur'}">
- <el-input v-model="item.realname" placeholder="请输入真实姓名"></el-input>
- </el-form-item>
- </td>
- <td width="87" valign="center" colspan="2" >
- <el-form-item :prop="'family.'+index+'.birthday'" :rules="{required: true, message: '出生年月日不能为空', trigger: 'blur'}">
- <el-date-picker
- v-model="item.birthday"
- type="date"
- placeholder="选择出生年月日"
- value-format="yyyy-MM-dd">
- </el-date-picker>
- </el-form-item>
- </td>
- <td width="98" valign="center" colspan="1" >
- <el-form-item :prop="'family.'+index+'.political_affiliation'" :rules="{required: true, message: '请选择您的政治面貌', trigger: 'blur'}">
- <el-select v-model="item.political_affiliation" placeholder="请选择">
- <el-option
- v-for="select in political_affiliation"
- :key="select.value"
- :label="select.label"
- :value="select.value">
- </el-option>
- </el-select>
- </el-form-item>
- </td>
- <td width="241" valign="center" colspan="3" >
- <el-form-item :prop="'family.'+index+'.work'" :rules="{required: true, message: '请输入工作单位及职位', trigger: 'blur'}">
- <el-input v-model="item.work" placeholder="请输入工作单位及职位"></el-input>
- </el-form-item>
- </td>
- </tr>
- @if(in_array('identification',$module))
- <tr style="height:52px;page-break-inside:avoid">
- <td valign="center" >
- <span class="require">*</span>身份证明<br />
- (本人有效身份证正反面或其他身份证明材料)
- </td>
- <td valign="center" colspan="11">
- <el-form-item prop="identification" ref="identification">
- <div style="padding: 10px 0">
- <el-upload
- action="{{ route('recruit.api.upload') }}"
- list-type="picture-card"
- :data="{_token:'{{csrf_token()}}'}"
- :file-list="user.identification"
- :before-upload="beforeImageUpload"
- :on-success="uploadSuccessID"
- :multiple="true"
- :on-preview="handlePictureCardPreview"
- :on-remove="removeID">
- <i class="el-icon-plus"></i>
- </el-upload>
- </div>
- </el-form-item>
- </td>
- </tr>
- @endif
- @if(in_array('education_certification',$module))
- <tr style="height:52px;page-break-inside:avoid">
- <td valign="center" >
- <span class="require">*</span>学历证明<br />
- (毕业证书、学位证书、学信网等及考试要求的证明材料)
- </td>
- <td valign="center" colspan="11">
- <el-form-item prop="education_certification" ref="education_certification">
- <div style="padding: 10px 0">
- <el-upload
- action="{{ route('recruit.api.upload') }}"
- list-type="picture-card"
- :data="{_token:'{{csrf_token()}}'}"
- :file-list="user.education_certification"
- :before-upload="beforeImageUpload"
- :on-success="uploadSuccessEDU"
- :multiple="true"
- :on-preview="handlePictureCardPreview"
- :on-remove="removeEDU">
- <i class="el-icon-plus"></i>
- </el-upload>
- </div>
- </el-form-item>
- </td>
- </tr>
- @endif
- @if(in_array('other_certification',$module))
- <tr style="height:52px;page-break-inside:avoid">
- <td valign="center" >
- 其他证明<br />
- (职业资格、职称证书、党员证明、工作经历证明等)
- </td>
- <td valign="center" colspan="11">
- <div style="padding: 10px 0">
- <el-upload
- action="{{ route('recruit.api.upload') }}"
- list-type="picture-card"
- :data="{_token:'{{csrf_token()}}'}"
- :file-list="user.other_certification"
- :before-upload="beforeImageUpload"
- :on-success="uploadSuccessOther"
- :multiple="true"
- :on-preview="handlePictureCardPreview"
- :on-remove="removeOther">
- <i class="el-icon-plus"></i>
- </el-upload>
- </div>
- </td>
- </tr>
- @endif
- @if(in_array('remark',$module))
- <tr style="height:52px;page-break-inside:avoid">
- <td valign="center" >
- 备注
- </td>
- <td valign="center" colspan="11">
- <div style="padding: 10px 0">
- <el-input
- type="textarea"
- :rows="2"
- placeholder="若有备注请输入"
- v-model="user.remark">
- </el-input>
- </div>
- </td>
- </tr>
- @endif
- </tbody>
- <tfoot>
- <tr>
- <td height="52" colspan="12" style="padding: 10px 0">
- <el-form-item size="large">
- <el-button type="primary" @click="save('userForm')" v-if="user.audit != 2">资料暂存</el-button>
- <el-button type="success" @click="submit('userForm')">提交报名</el-button>
- </el-form-item>
- <p style="color: #dd4250">
- 提示:若材料准备需要时间,可以使用资料暂存功能,先保存已填写的表单,资料齐全且无误后再点击提交报名
- </p>
- </td>
- </tr>
- </tfoot>
- </table>
- </el-form>
- @endif
- <el-dialog :visible.sync="dialogVisible">
- <img width="100%" :src="dialogImageUrl" alt="">
- </el-dialog>
- </div>
- @endsection
- @section('script')
- <script src="{{theme_asset('app/js/vue.min.js')}}"></script>
- <script src="{{theme_asset('app/js/axios.js')}}"></script>
- <script src="{{theme_asset('app/js/qs.min.js')}}"></script>
- <script src="{{theme_asset('app/js/element.js')}}"></script>
- @if(in_array('internship',$module))
- <script>
- new Vue({
- el: '#app',
- data: function() {
- return {
- resume_tip:"个人简历请严格按如下格式填写:\r\n1993.09-1996.07 \t××市××中学(高中) 学生;\r\n1996.09-2000.07 \t×××××大学(本科)工商管理专业 学生;",
- loading: this.$loading({
- lock: false,
- text: '加载中',
- spinner: 'el-icon-loading',
- background: 'rgba(0, 0, 0, 0.7)'
- }),
- user:eval({!! $appoint_info !!}),
- formDisable:false,
- rules:{
- realname:[
- {required: true, message: '请输入您的姓名', trigger: 'blur'}
- ],
- sex:[
- { required: true, message: '请选择性别', trigger: 'change' }
- ],
- birthday:[
- {required: true, message: '请选择出生日期', trigger: 'change' }
- ],
- avatar:[
- {required: true, message: '请上传蓝底/红底近期证件照', trigger: 'change'}
- ],
- card:[
- {required: true, message: '请输入证件号', trigger: 'blur'},
- {validator:this.validID, trigger: 'blur'}
- ],
- nation:[
- {required: true, message: '请输入您的民族', trigger: 'blur'}
- ],
- native_place:[
- {required: true, message: '请输入您的籍贯', trigger: 'blur'}
- ],
- political_affiliation:[
- {required: true, message: '请选择您的政治面貌', trigger: 'blur'}
- ],
- house_register:[
- {required: true, message: '请输入您的户籍所在地', trigger: 'blur'}
- ],
- school:[
- {required: true, message: '请输入学校信息', trigger: 'blur'}
- ],
- education:[
- {required: true, message: '请选择年级信息', trigger: 'blur'}
- ],
- pro:[
- {required: true, message: '请输入所学专业', trigger: 'blur'}
- ],
- mobile:[
- {required: true, message: '请输入手机号', trigger: 'blur'},
- {validator:this.validMobile, trigger: 'blur'}
- ],
- email:[
- {required: true, message: '请输入电子邮箱', trigger: 'blur'},
- {validator:this.validEmail, trigger: 'blur'}
- ],
- address:[
- {required: true, message: '请输入地址', trigger: 'blur'}
- ],
- post_id:[
- {required: true, message: '请选择报名岗位', trigger: 'blur'}
- ],
- adjust:[
- { required: true, message: '请选择是否接受调剂', trigger: 'change' }
- ],
- concat_name:[
- {required: true, message: '请输入紧急联系人姓名', trigger: 'blur'}
- ],
- concat_mobile:[
- {required: true, message: '请输入紧急联系人电话', trigger: 'blur'}
- ],
- resume:[
- {required: true, message: '请输入个人简历', trigger: 'blur'},
- ],
- //身份验证
- identification:[
- {validator:this.validIdentification, trigger: 'change'}
- ],
- education_certification:[
- {validator:this.validEducertification, trigger: 'change'}
- ],
- },
- init: 0,
- upload: '',
- post_data:eval({!! $post !!}),
- political_affiliation: [ //国家关于政治面貌的分类标准
- {
- value: '01',
- label: '中共党员'
- },
- {
- value: '02',
- label: '中共预备党员'
- },
- {
- value: '03',
- label: '共青团员'
- },
- {
- value: '04',
- label: '民革党员'
- },
- {
- value: '05',
- label: '民盟盟员'
- },
- {
- value: '06',
- label: '民建会员'
- },
- {
- value: '07',
- label: '民进会员'
- },
- {
- value: '08',
- label: '农工党党员'
- },
- {
- value: '09',
- label: '致公党党员'
- },
- {
- value: '10',
- label: '九三学社社员'
- },
- {
- value: '11',
- label: '台盟盟员'
- },
- {
- value: '12',
- label: '无党派人士'
- },
- {
- value: '13',
- label: '群众'
- }
- ],
- dialogImageUrl: '',
- dialogVisible: false,
- post_limit: eval({!! $post_limit !!}),//所有岗位的报名限制条件
- post_limit_value: {},//所选择的岗位限制条件
- }
- },
- methods: {
- //验证证件
- validID: function(rule, value, callback){
- if(!this.checkIDCard(value)) {
- callback(new Error('身份证号不正确'));
- }else{
- callback();
- }
- },
- checkIDCard:function(cardNo){
- var weight_factor = [7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2];
- var check_code = ['1', '0', 'X' , '9', '8', '7', '6', '5', '4', '3', '2'];
- var code = cardNo + "";
- var last = cardNo[17];//最后一位
- var seventeen = code.substring(0,17);
- var arr = seventeen.split("");
- var len = arr.length;
- var num = 0;
- for(var i = 0; i < len; i++){
- num = num + arr[i] * weight_factor[i];
- }
- var resisue = num%11;
- var last_no = check_code[resisue];
- 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])$/;
- var format = idcard_patter.test(cardNo);
- return last === last_no && format ? true : false;
- },
- //验证手机号码
- validMobile:function(rule, value, callback){
- if(!(/^1[3456789]\d{9}$/.test(value))){
- callback(new Error('手机号码不正确'));
- }
- callback();
- },
- //验证邮箱
- validEmail:function(rule, value, callback){
- if(!(/^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/.test(value))){
- callback(new Error('电子邮箱不正确'));
- }
- callback();
- },
- //验证头像
- validAvatar:function(rule, value, callback){
- callback();
- },
- validSpecialCondition:function(rule, value, callback){
- if(this.user.special.point_apply == 1 && this.user.special.condition == ''){
- callback(new Error('请输入符合加分的条件'));
- }else{
- callback();
- }
- },
- validSpecialMaterial:function(rule, value, callback){
- if(this.user.special.point_apply == 1 && this.user.special.material.length == 0){
- callback(new Error('请上传佐证材料'));
- }else{
- callback();
- }
- },
- validIdentification:function(rule, value, callback){
- if(this.user.identification.length == 0){
- callback(new Error('请上传身份证明证件'));
- }else{
- callback();
- }
- },
- validEducertification:function(rule, value, callback){
- if(this.user.education_certification.length == 0){
- callback(new Error('请上传学历证明证件'));
- }else{
- callback();
- }
- },
- beforeImageUpload:function(file) {
- const isJPG = (file.type === 'image/jpeg' || file.type === 'image/png');
- const isLt2M = file.size / 1024 / 1024 < 2;
- if (!isJPG) {
- this.$message.error('上传图片只能是 JPG、PNG 格式!');
- }
- if (!isLt2M) {
- this.$message.error('上传图片大小不能超过 2MB!');
- }
- return isJPG && isLt2M;
- },
- uploadSuccess:function(response, file, fileList){
- console.log(this.user)
- if(response.status){
- this.user.avatar = response.path;
- }else{
- this.$message.error(response.msg);
- }
- },
- uploadSuccessLP:function(response, file, fileList){
- if(response.status){
- this.user.special.material = fileList
- }else{
- this.$message.error(response.msg);
- }
- },
- uploadSuccessID:function(response, file, fileList){
- if(response.status){
- this.user.identification = fileList
- }else{
- this.$message.error(response.msg);
- }
- },
- uploadSuccessEDU:function(response, file, fileList){
- if(response.status){
- this.user.education_certification = fileList
- }else{
- this.$message.error(response.msg);
- }
- },
- uploadSuccessOther:function(response, file, fileList){
- if(response.status){
- this.user.other_certification = fileList
- }else{
- this.$message.error(response.msg);
- }
- },
- removeID:function(file,fileList) {
- this.user.identification = fileList
- },
- removeLP:function(file,fileList) {
- this.user.special.material = fileList
- },
- removeEDU:function(file,fileList) {
- this.user.education_certification = fileList
- },
- removeOther:function(file,fileList) {
- this.user.other_certification = fileList
- },
- handlePictureCardPreview:function(file){
- this.dialogImageUrl = file.url;
- this.dialogVisible = true;
- },
- postChange:function(value){
- this.post_limit_value = this.post_limit[value];
- },
- save:function(formName){
- this.user.operation = 1;
- this.$refs[formName].validate((valid,object) => {
- if (valid) {
- this.loading = this.$loading({
- lock: false,
- text: '加载中',
- spinner: 'el-icon-loading',
- background: 'rgba(0, 0, 0, 0.7)'
- });
- this.user._token = '{{csrf_token()}}';
- axios.post("{{route('recruit.save_sign_up')}}",Qs.stringify(this.user)).then(response => {
- if(response.data.status){
- this.$alert(response.data.msg, '提交成功', {
- confirmButtonText: '确定',
- callback: action => {
- window.location.reload();
- }
- });
- }else{
- this.$message.error(response.data.msg);
- this.loading.close();
- return false;
- }
- });
- } else {
- for(let key in object){
- this.$message.error(object[key][0].message);
- return false;
- }
- return false;
- }
- })
- },
- submit:function(formName){
- this.user.operation = 2;
- this.$refs[formName].validate((valid,object) => {
- if (valid) {
- if(this.post_limit_value != '' || this.post_limit_value != null){
- for(let key in this.post_limit_value){//职位条件限制
- switch(this.post_limit_value[key].op){
- case '=':
- if(this.user[key] != this.post_limit_value[key].value){
- this.$message.error(this.post_limit_value[key].msg);
- return false;
- }
- break;
- case '>':
- if(key == 'birthday'){
- value = this.user[key].replace(/-/g,'');
- }else{
- value = this.user[key];
- }
- if(value <= this.post_limit_value[key].value){
- this.$message.error(this.post_limit_value[key].msg);
- return false;
- }
- break;
- case '>=':
- if(key == 'birthday'){
- value = this.user[key].replace(/-/g,'');
- }else{
- value = this.user[key];
- }
- if(value < this.post_limit_value[key].value){
- this.$message.error(this.post_limit_value[key].msg);
- return false;
- }
- break;
- case '<':
- if(key == 'birthday'){
- value = this.user[key].replace(/-/g,'');
- }else{
- value = this.user[key];
- }
- if(value < this.post_limit_value[key].value){
- this.$message.error(this.post_limit_value[key].msg);
- return false;
- }
- break;
- case '<=':
- if(key == 'birthday'){
- value = this.user[key].replace(/-/g,'');
- }else{
- value = this.user[key];
- }
- if(value > this.post_limit_value[key].value){
- this.$message.error(this.post_limit_value[key].msg);
- return false;
- }
- break;
- case '!=':
- if(key == 'birthday'){
- value = this.user[key].replace(/-/g,'');
- }else{
- value = this.user[key];
- }
- if(value == this.post_limit_value[key].value){
- this.$message.error(this.post_limit_value[key].msg);
- return false;
- }
- break;
- case 'like':
- if(this.user[key].indexOf(this.post_limit_value[key].value) < 0){
- this.$message.error(this.post_limit_value[key].msg);
- return false;
- }
- break;
- case 'in':
- if(this.post_limit_value[key].value.indexOf(this.user[key]) < 0){
- this.$message.error(this.post_limit_value[key].msg);
- return false;
- }
- break;
- }
- }
- }
- var msg = '资料请详细检查!';
- this.$confirm(msg, '提示', {
- confirmButtonText: '检查无误,确定提交',
- cancelButtonText: '我需要再检查一遍',
- type: 'warning'
- }).then(() => {
- this.loading = this.$loading({
- lock: false,
- text: '加载中',
- spinner: 'el-icon-loading',
- background: 'rgba(0, 0, 0, 0.7)'
- });
- this.user._token = '{{csrf_token()}}';
- axios.post("{{route('recruit.save_sign_up')}}",Qs.stringify(this.user)).then(response => {
- if(response.data.status){
- this.$alert(response.data.msg, '提交成功', {
- confirmButtonText: '确定',
- callback: action => {
- window.location.reload();
- }
- });
- }else{
- this.$message.error(response.data.msg);
- this.loading.close();
- return false;
- }
- });
- }).catch(() => {
- });
- } else {
- for(let key in object){
- this.$message.error(object[key][0].message);
- return false;
- }
- return false;
- }
- })
- },
- addFamily:function(){
- this.user.family.push({
- appellation:'',
- realname:'',
- birthday:'',
- political_attitudes:'',
- work:''
- });
- },
- delFamily:function(){
- var length = this.user.family.length;
- if (length > 1) {
- this.user.family.pop()
- }else{
- this.$message.error('只剩一条记录,不能再删啦');
- }
- }
- },
- computed:{
- special_switch() {
- if(this.user.special.point_apply == '0'){
- return true;
- }else{
- return false;
- }
- }
- },
- created(){
- this.loading.close();
- var formDisabled = parseInt("{{ $formDisable }}");
- if(this.user.audit == 1 || this.user.audit == 3 || formDisabled === 1){
- this.formDisable = true
- }else{
- this.formDisable = false;
- }
- }
- })
- </script>
- @else
- <script>
- new Vue({
- el: '#app',
- data: function() {
- return {
- 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.对在职学习的,应注明。",
- loading: this.$loading({
- lock: false,
- text: '加载中',
- spinner: 'el-icon-loading',
- background: 'rgba(0, 0, 0, 0.7)'
- }),
- user:eval({!! $appoint_info !!}),
- formDisable:false,
- rules:{
- realname:[
- {required: true, message: '请输入您的姓名', trigger: 'blur'}
- ],
- sex:[
- { required: true, message: '请选择性别', trigger: 'change' }
- ],
- birthday:[
- {required: true, message: '请选择出生日期', trigger: 'change' }
- ],
- avatar:[
- {required: true, message: '请上传蓝底/红底近期证件照', trigger: 'change'}
- ],
- card:[
- {required: true, message: '请输入证件号', trigger: 'blur'},
- {validator:this.validID, trigger: 'blur'}
- ],
- nation:[
- {required: true, message: '请输入您的民族', trigger: 'blur'}
- ],
- native_place:[
- {required: true, message: '请输入您的籍贯', trigger: 'blur'}
- ],
- political_affiliation:[
- {required: true, message: '请选择您的政治面貌', trigger: 'blur'}
- ],
- house_register:[
- {required: true, message: '请输入您的户籍所在地', trigger: 'blur'}
- ],
- // edu_type:[
- // {required: true, message: '请选择您的教育类型', trigger: 'change'}
- // ],
- school:[
- {required: true, message: '请输入学校信息', trigger: 'blur'}
- ],
- education:[
- {required: true, message: '请输入学历信息', trigger: 'blur'}
- ],
- pro:[
- {required: true, message: '请输入所学专业', trigger: 'blur'}
- ],
- mobile:[
- {required: true, message: '请输入手机号', trigger: 'blur'},
- {validator:this.validMobile, trigger: 'blur'}
- ],
- email:[
- {required: true, message: '请输入电子邮箱', trigger: 'blur'},
- {validator:this.validEmail, trigger: 'blur'}
- ],
- address:[
- {required: true, message: '请输入地址', trigger: 'blur'}
- ],
- post_id:[
- {required: true, message: '请选择报名岗位', trigger: 'blur'}
- ],
- is_push:[
- { required: true, message: '请选择是否接送推送', trigger: 'change' }
- ],
- concat_name:[
- {required: true, message: '请输入紧急联系人姓名', trigger: 'blur'}
- ],
- concat_mobile:[
- {required: true, message: '请输入紧急联系人电话', trigger: 'blur'}
- ],
- @if(in_array('expand_special',$module))
- //扩展验证
- special_condition:[
- {validator:this.validSpecialCondition, trigger: 'blur'}
- ],
- special_material:[
- {validator:this.validSpecialMaterial, trigger: 'change'}
- ],
- @endif
- resume:[
- {required: true, message: '请输入个人简历', trigger: 'blur'},
- ],
- @if(in_array('identification',$module))
- //身份验证
- identification:[
- {validator:this.validIdentification, trigger: 'change'}
- ],
- @endif
- @if(in_array('education_certification',$module))
- education_certification:[
- {validator:this.validEducertification, trigger: 'change'}
- ],
- @endif
- },
- init: 0,
- upload: '',
- post_data:eval({!! $post !!}),
- political_affiliation: [ //国家关于政治面貌的分类标准
- {
- value: '01',
- label: '中共党员'
- },
- {
- value: '02',
- label: '中共预备党员'
- },
- {
- value: '03',
- label: '共青团员'
- },
- {
- value: '04',
- label: '民革党员'
- },
- {
- value: '05',
- label: '民盟盟员'
- },
- {
- value: '06',
- label: '民建会员'
- },
- {
- value: '07',
- label: '民进会员'
- },
- {
- value: '08',
- label: '农工党党员'
- },
- {
- value: '09',
- label: '致公党党员'
- },
- {
- value: '10',
- label: '九三学社社员'
- },
- {
- value: '11',
- label: '台盟盟员'
- },
- {
- value: '12',
- label: '无党派人士'
- },
- {
- value: '13',
- label: '群众'
- }
- ],
- dialogImageUrl: '',
- dialogVisible: false,
- post_limit: eval({!! $post_limit !!}),//所有岗位的报名限制条件
- post_limit_value: {},//所选择的岗位限制条件
- }
- },
- methods: {
- //验证证件
- validID(rule, value, callback){
- if(!this.checkIDCard(value)) {
- callback(new Error('身份证号不正确'));
- }else{
- callback();
- }
- },
- checkIDCard(cardNo){
- var weight_factor = [7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2];
- var check_code = ['1', '0', 'X' , '9', '8', '7', '6', '5', '4', '3', '2'];
- var code = cardNo + "";
- var last = cardNo[17];//最后一位
- var seventeen = code.substring(0,17);
- var arr = seventeen.split("");
- var len = arr.length;
- var num = 0;
- for(var i = 0; i < len; i++){
- num = num + arr[i] * weight_factor[i];
- }
- var resisue = num%11;
- var last_no = check_code[resisue];
- 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])$/;
- var format = idcard_patter.test(cardNo);
- return last === last_no && format ? true : false;
- },
- //验证手机号码
- validMobile(rule, value, callback){
- if(!(/^1[3456789]\d{9}$/.test(value))){
- callback(new Error('手机号码不正确'));
- }
- callback();
- },
- //验证邮箱
- validEmail(rule, value, callback){
- if(!(/^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/.test(value))){
- callback(new Error('电子邮箱不正确'));
- }
- callback();
- },
- //验证头像
- validAvatar(rule, value, callback){
- callback();
- },
- validSpecialCondition(rule, value, callback){
- if(this.user.special.point_apply == 1 && this.user.special.condition == ''){
- callback(new Error('请输入符合加分的条件'));
- }else{
- callback();
- }
- },
- validSpecialMaterial(rule, value, callback){
- if(this.user.special.point_apply == 1 && this.user.special.material.length == 0){
- callback(new Error('请上传佐证材料'));
- }else{
- callback();
- }
- },
- validIdentification(rule, value, callback){
- if(this.user.identification.length == 0){
- callback(new Error('请上传身份证明证件'));
- }else{
- callback();
- }
- },
- validEducertification(rule, value, callback){
- if(this.user.education_certification.length == 0){
- callback(new Error('请上传学历证明证件'));
- }else{
- callback();
- }
- },
- beforeImageUpload(file) {
- const isJPG = (file.type === 'image/jpeg' || file.type === 'image/png');
- const isLt2M = file.size / 1024 / 1024 < 2;
- if (!isJPG) {
- this.$message.error('上传图片只能是 JPG、PNG 格式!');
- }
- if (!isLt2M) {
- this.$message.error('上传图片大小不能超过 2MB!');
- }
- return isJPG && isLt2M;
- },
- uploadSuccess(response, file, fileList){
- if(response.status){
- this.user.avatar = response.path;
- }else{
- this.$message.error(response.msg);
- }
- },
- uploadSuccessLP(response, file, fileList){
- if(response.status){
- this.user.special.material = fileList
- }else{
- this.$message.error(response.msg);
- }
- },
- uploadSuccessID(response, file, fileList){
- if(response.status){
- this.user.identification = fileList
- }else{
- this.$message.error(response.msg);
- }
- },
- uploadSuccessEDU(response, file, fileList){
- if(response.status){
- this.user.education_certification = fileList
- }else{
- this.$message.error(response.msg);
- }
- },
- uploadSuccessOther(response, file, fileList){
- if(response.status){
- this.user.other_certification = fileList
- }else{
- this.$message.error(response.msg);
- }
- },
- removeID(file,fileList) {
- this.user.identification = fileList
- },
- removeLP(file,fileList) {
- this.user.special.material = fileList
- },
- removeEDU(file,fileList) {
- this.user.education_certification = fileList
- },
- removeOther(file,fileList) {
- this.user.other_certification = fileList
- },
- handlePictureCardPreview(file){
- this.dialogImageUrl = file.url;
- this.dialogVisible = true;
- },
- postChange(value){
- this.post_limit_value = this.post_limit[value];
- },
- save(formName){
- this.user.operation = 1;
- this.$refs[formName].validate((valid,object) => {
- if (valid) {
- this.loading = this.$loading({
- lock: false,
- text: '加载中',
- spinner: 'el-icon-loading',
- background: 'rgba(0, 0, 0, 0.7)'
- });
- this.user._token = '{{csrf_token()}}';
- axios.post("{{route('recruit.save_sign_up')}}",Qs.stringify(this.user)).then(response => {
- if(response.data.status){
- this.$alert(response.data.msg, '提交成功', {
- confirmButtonText: '确定',
- callback: action => {
- window.location.reload();
- }
- });
- }else{
- this.$message.error(response.data.msg);
- this.loading.close();
- return false;
- }
- });
- } else {
- for(let key in object){
- this.$message.error(object[key][0].message);
- return false;
- }
- return false;
- }
- })
- },
- submit(formName){
- this.user.operation = 2;
- this.$refs[formName].validate((valid,object) => {
- if (valid) {
- if(this.post_limit_value != '' || this.post_limit_value != null){
- for(let key in this.post_limit_value){//职位条件限制
- switch(this.post_limit_value[key].op){
- case '=':
- if(this.user[key] != this.post_limit_value[key].value){
- this.$message.error(this.post_limit_value[key].msg);
- return false;
- }
- break;
- case '>':
- if(key == 'birthday'){
- value = this.user[key].replace(/-/g,'');
- }else{
- value = this.user[key];
- }
- if(value <= this.post_limit_value[key].value){
- this.$message.error(this.post_limit_value[key].msg);
- return false;
- }
- break;
- case '>=':
- if(key == 'birthday'){
- value = this.user[key].replace(/-/g,'');
- }else{
- value = this.user[key];
- }
- if(value < this.post_limit_value[key].value){
- this.$message.error(this.post_limit_value[key].msg);
- return false;
- }
- break;
- case '<':
- if(key == 'birthday'){
- value = this.user[key].replace(/-/g,'');
- }else{
- value = this.user[key];
- }
- if(value < this.post_limit_value[key].value){
- this.$message.error(this.post_limit_value[key].msg);
- return false;
- }
- break;
- case '<=':
- if(key == 'birthday'){
- value = this.user[key].replace(/-/g,'');
- }else{
- value = this.user[key];
- }
- if(value > this.post_limit_value[key].value){
- this.$message.error(this.post_limit_value[key].msg);
- return false;
- }
- break;
- case '!=':
- if(key == 'birthday'){
- value = this.user[key].replace(/-/g,'');
- }else{
- value = this.user[key];
- }
- if(value == this.post_limit_value[key].value){
- this.$message.error(this.post_limit_value[key].msg);
- return false;
- }
- break;
- case 'like':
- if(this.user[key].indexOf(this.post_limit_value[key].value) < 0){
- this.$message.error(this.post_limit_value[key].msg);
- return false;
- }
- break;
- case 'in':
- if(this.post_limit_value[key].value.indexOf(this.user[key]) < 0){
- this.$message.error(this.post_limit_value[key].msg);
- return false;
- }
- break;
- }
- }
- }
- var msg = '资料请详细检查!';
- this.$confirm(msg, '提示', {
- confirmButtonText: '检查无误,确定提交',
- cancelButtonText: '我需要再检查一遍',
- type: 'warning'
- }).then(() => {
- this.loading = this.$loading({
- lock: false,
- text: '加载中',
- spinner: 'el-icon-loading',
- background: 'rgba(0, 0, 0, 0.7)'
- });
- this.user._token = '{{csrf_token()}}';
- axios.post("{{route('recruit.save_sign_up')}}",Qs.stringify(this.user)).then(response => {
- if(response.data.status){
- this.$alert(response.data.msg, '提交成功', {
- confirmButtonText: '确定',
- callback: action => {
- window.location.reload();
- }
- });
- }else{
- this.$message.error(response.data.msg);
- this.loading.close();
- return false;
- }
- });
- }).catch(() => {
- });
- } else {
- for(let key in object){
- this.$message.error(object[key][0].message);
- return false;
- }
- return false;
- }
- })
- },
- addFamily(){
- this.user.family.push({
- appellation:'',
- realname:'',
- birthday:'',
- political_attitudes:'',
- work:''
- });
- },
- delFamily(){
- var length = this.user.family.length;
- if (length > 1) {
- this.user.family.pop()
- }else{
- this.$message.error('只剩一条记录,不能再删啦');
- }
- }
- },
- computed:{
- special_switch() {
- if(this.user.special.point_apply == '0'){
- return true;
- }else{
- return false;
- }
- }
- },
- created(){
- this.loading.close();
- var formDisabled = parseInt("{{ $formDisable }}");
- if(this.user.audit == 1 || this.user.audit == 3 || formDisabled === 1){
- this.formDisable = true
- }else{
- this.formDisable = false;
- }
- }
- })
- </script>
- @endif
- @endsection
|