7.b451c3f8.chunk.js.map 116 KB

1
  1. {"version":3,"sources":["data/index.js","util/rule.js","util/fy.js","util/param.js","component/CardWrapper/index.js","component/InfoHeader/index.js","ui-component/LabelInput/index.js","ui-component/UploadImage/index.js","component/PhotoInfo/index.js","component/EmploymentInfo/index.js","data/cityData.js","component/PersonalInfo/index.js","component/CommunicationInfo/index.js","ui-component/ButtonAdd/index.js","component/EducationInfo/index.js","component/WorkInfo/index.js","component/SelfDescriptionInfo/index.js","component/Agreement/index.js","ui-component/UploadResume/matchData.js","ui-component/UploadResume/index.js","page/user/information.js","util/index.js","api/http.js","api/modules/base.js","api/modules/login.js","api/modules/user.js","api/httpForm.js","api/modules/upload.js","api/index.js"],"names":["__webpack_require__","d","__webpack_exports__","curStatuOptions","politicsOptions","marriageOptions","accountCharacterOptions","backgroundOptions","nationOptions","Rule","Reg_Require","Reg_Int","Reg_Phone","Reg_Email","Reg_Code","Reg_Identity","fy","name","department","sallary","sex","nation","height","nativePlace","identity","belief","dateOfBirth","politics","healthy","diseases","marriage","registration","accountCharacter","address","email","phone","urgentPhone","foreign","skillCertificate","skillType","fristWork","plan","curStatus","eduExperience","workExperience","description","startDate","endDate","school","education","major","educationBg","idPhoto","lifePhoto","Param","params","Object","C_code_FED_talent_inventory_system_app_node_modules_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_0__","this","error","i","_validate","key","rules","length","_validateType","type","val","rule","_execRequire","isFunction","isRegExp","_execReg","_execLength","flag","test","concat","fyForm","range","replace","split","CardWrapper","_react_16_8_6_react_default","a","createElement","className","props","children","Component","Test","title","tip","LabelInput","ButtonAdd","state","loading","file","isJPG","message","isLt2M","size","files","_this2","curFile","checkFile","getBase64","_ref","asyncToGenerator","regenerator_default","mark","_callee","imageUrl","wrap","_context","prev","next","changeFile","imageKey","stop","_x","apply","arguments","_this3","uploadButton","icon","onChange","e","handleChange","target","src","alt","PhotoInfo","value","transferMsg","InfoHeader_Test","CardWrapper_CardWrapper","row","col","span","LabelInput_LabelInput","UploadImage_ButtonAdd","bind","info","offset","Option","EmploymentInfo","_this","classCallCheck","possibleConstructorReturn","getPrototypeOf","call","departmentList","getDepartmentList","API","base","data","setState","es_select","placeholder","style","width","map","item","input","personalInfo","onComponentChange","index","addressData","北京市","天津市","河北省","山西省","内蒙古自治区","辽宁省","吉林省","黑龙江省","上海市","江苏省","浙江省","安徽省","福建省","江西省","山东省","河南省","湖北省","湖南省","广东省","广西壮族自治区","海南省","重庆市","四川省","贵州省","云南省","西藏自治区","陕西省","甘肃省","青海省","宁夏回族自治区","新疆维吾尔自治区","台湾省","香港特别行政区","澳门特别行政区","provinces","keys","citys","RadioGroup","es_radio","Group","PersonalInfo","province","parseInt","PersonalInfo_Option","onProvinceChange","npProvince","npCity","date_picker","format","moment","CommunicationInfo","onClick","theme","text","EducationInfo","push","splice","property","isEvent","undefined","expIndex","getAntdFormVal","fontSize","position","right","top","twoToneColor","onButtonDel","onExpChange","textAlign","EducationInfo_Option","ButtonAdd_ButtonAdd","onButtonAdd","WorkInfo","company","sally","reason","witness","witnessPhone","TextArea","SelfDescriptionInfo","autosize","minRows","maxRows","resize","Agreement","es_checkbox","checked","agree","baseMatch","期望职位","求职意向","姓名","期望薪资","证件照","生活照","身份证号","电话","手机号码","个人邮箱","职业规划","自我评价","自我描述","教育背景","教育经历","邮编","工作经验","专业技能","办公技能","软件技能","实习经验","实习经历","个人优势","项目经历","社交账号","perMatch","目前状态","性别","民族","宗教信仰","健康状况","重大疾病史","籍贯","政治面貌","婚姻状况","所在地","户口所在地","户口性质","家庭详细住址","出生日期","身高","外语及程度","语言技能","技能证书","职称及类别","首次参加工作时间","UploadResume","fileName","options","reduce","accumulator","cur","getOptionsRegStr","store","time","age","cont","perInfo","matchBase","matchEdu","matches","getMatchRegs","checks","res","match","Date","getFullYear","edu","indexOf","arr","arr2","regStr","join","reg","RegExp","contArr","console","log","enhanceMatch","transferMsgState","formData","FormData","append","resumeData","upload","upLoadResume","parseResume","t0","es_button","uploadResume","resume","href","originPhoto","Information","initState","window","onbeforeunload","event","returnValue","hasOwnProperty","defineProperty","obj","assign","userId","user","find","assginData","JSON","parse","t3","checkPersonalInfo","checkEduExperience","pInfo","Promise","reject","Error","getFormRules","param","checkParams","dataURItoBlob","upLoadImg","code","url","msg","_context2","t2","upLoadFile","resolve","checkForm","_context3","submitData","stringify","create","success","t1","mergeInfo","j","UploadResume_UploadResume","EmploymentInfo_EmploymentInfo","PhotoInfo_PhotoInfo","PersonalInfo_PersonalInfo","CommunicationInfo_CommunicationInfo","EducationInfo_EducationInfo","WorkInfo_WorkInfo","SelfDescriptionInfo_SelfDescriptionInfo","Agreement_Agreement","submitForm","spin","mInfo","showError","antd_es_message__WEBPACK_IMPORTED_MODULE_1__","arg","prototype","toString","callback","reader","FileReader","addEventListener","result","readAsDataURL","base64Data","byteString","atob","unescape","mimeString","ia","Uint8Array","charCodeAt","Blob","getCookie","document","cookie","host","location","port","ax","axios","baseURL","headers","Content-Type","transformRequest","Qs","transformResponse","withCredentials","interceptors","request","use","config","method","needAuth","token","logout","response","get","login","getCode","checkCode","_ref2","checkAdmin","_ref3","nodeId","post","preview","axForm"],"mappings":"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CA,qBACA,oDAEFC,2BAAM,CACJ,2BACA,iCACA,qBACA,qBACA,2BACA,qBACA,qBACA,2BACA,2BACA,2BACA,qBACA,qBACA,wCAEFC,qBAAK,CAAC,sBACNC,qBAAK,CACH,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,2BACA,qBACA,qBACA,qBACA,qBACA,qBACA,sBAEFC,qBAAK,CACH,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,sBAEFC,qBAAK,CACH,qBACA,qBACA,qBACA,qBACA,2BACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,sBAEFC,qBAAK,CACH,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,sBAEFC,qBAAK,CACH,qBACA,2BACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,sBAEFC,qBAAK,CACH,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,sBAEFC,qBAAK,CACH,qBACA,qBACA,qBACA,2BACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,2BACA,qBACA,qBACA,qBACA,qBACA,4BAEFC,qBAAK,CACH,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,gEAEFC,qBAAK,CACH,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,2BACA,qBACA,qBACA,qBACA,qBACA,qBACA,gEAEFC,qBAAK,CACH,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,sBAEFC,6CAAS,CACP,qBACA,qBACA,qBACA,qBACA,qBACA,2BACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,sBAEFC,qBAAK,CAAC,qBAAO,qBAAO,qBAAO,sBAC3BC,qBAAK,CAAC,sBACNC,qBAAK,CACH,qBACA,qBACA,2BACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,yDACA,6CACA,8CAEFC,qBAAK,CACH,qBACA,2BACA,qBACA,qBACA,qBACA,qBACA,qEACA,+DACA,gEAEFC,qBAAK,CACH,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,6CACA,+DACA,yDACA,yDACA,6CACA,+DACA,mDACA,8CAEFC,iCAAO,CACL,qBACA,2BACA,qBACA,qBACA,qBACA,2BACA,4BAEFC,qBAAK,CACH,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,sBAEFC,qBAAK,CACH,qBACA,2BACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,6CACA,8CAEFC,qBAAK,CACH,qBACA,qBACA,6CACA,6CACA,6CACA,6CACA,6CACA,gEAEFC,6CAAS,CAAC,qBAAO,2BAAQ,qBAAO,qBAAO,sBACvCC,mDAAU,CACR,iCACA,iCACA,2BACA,qBACA,6CACA,yDACA,yDACA,iCACA,qEACA,2BACA,2BACA,mDACA,2BACA,kCAEFC,qBAAK,GACLC,6CAAS,GACTC,6CAAS,oBCtXLC,EAAYlJ,OAAOmJ,KAAKpC,GAC1BqC,EAAQrC,EAAYmC,EAAU,IAE1B1D,aACF6D,EAAaC,EAAA,EAAMC,MAEJC,2LACDC,GAChBL,EAAQrC,EAAY0C,IAAa,GAE7BvJ,KAAK4B,OAAS5B,KAAK4B,MAAM+C,cAC3B3E,KAAK4B,MAAM+C,YAAY,aAAc4E,GACrCvJ,KAAK4B,MAAM+C,YAAY,SAAUuE,EAAM,sCAKzC,OACE1H,EAAAC,EAAAC,cAAA,OAAKC,UAAU,iBACbH,EAAAC,EAAAC,cAACkD,EAAD,CAAY5C,MAAM,6BAClBR,EAAAC,EAAAC,cAACmD,EAAD,KACErD,EAAAC,EAAAC,cAAAoD,EAAA,OACEtD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","file":"static/js/7.b451c3f8.chunk.js","sourcesContent":["export const departmentOptions = ['前端', 'PHP']\r\nexport const curStatuOptions = ['社会人士-在职', '社会人士-离职', '学生']\r\nexport const politicsOptions = ['党员', '民主派人士', '群众']\r\nexport const marriageOptions = ['未婚', '已婚', '离异', '丧偶']\r\nexport const accountCharacterOptions = ['城镇', '农村']\r\nexport const backgroundOptions = ['博士及以上', '硕士', '本科', '大专', '高中', '职高', '中专', '技校', '初中', '小学']\r\nexport const nationOptions = [\r\n '汉族',\r\n '阿昌族',\r\n '白族',\r\n '布朗族',\r\n '保安族',\r\n '布依族',\r\n '朝鲜族',\r\n '傣族',\r\n '德昂族',\r\n '侗族',\r\n '独龙族',\r\n '达斡尔族',\r\n '东乡族',\r\n '鄂温克族',\r\n '京族',\r\n '仡佬族',\r\n '高山族',\r\n '回族',\r\n '赫哲族',\r\n '基诺族',\r\n '景颇族',\r\n '柯尔克孜族',\r\n '哈萨克族',\r\n '珞巴族',\r\n '拉祜族',\r\n '黎族',\r\n '傈僳族',\r\n '满族',\r\n '门巴族',\r\n '蒙古族',\r\n '苗族',\r\n '仫佬族',\r\n '毛南族',\r\n '怒族',\r\n '纳西族',\r\n '鄂伦春族',\r\n '普米族',\r\n '羌族',\r\n '俄罗斯族',\r\n '畲族',\r\n '撒拉族',\r\n '水族',\r\n '塔吉克族',\r\n '土家族',\r\n '塔塔尔族',\r\n '土族',\r\n '维吾尔族',\r\n '乌孜别克族',\r\n '佤族',\r\n '锡伯族',\r\n '瑶族',\r\n '裕固族',\r\n '彝族',\r\n '藏族',\r\n '壮族',\r\n '穿青人族',\r\n '哈尼族'\r\n]\r\n","\r\nlet Rule = {\r\n Reg_Require: /\\S+/, // 非空\r\n Reg_Int: /[1-9]\\d*/, // 大于0正整数\r\n Reg_Phone: /^1(3|4|5|7|8)\\d{9}$/, // 手机号码\r\n Reg_Email: /\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*/, // 邮箱地址\r\n Reg_Code: /^\\d{6}$/, // 6位数\r\n // 身份证\r\n Reg_Identity: /(^[1-9]\\d{5}(18|19|([23]\\d))\\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\\d{3}[0-9Xx]$)|(^[1-9]\\d{5}\\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\\d{3}$)/\r\n}\r\n\r\nexport default Rule\r\n","// 表单翻译json\r\nconst fy = {\r\n name: '姓名',\r\n department: '应聘岗位',\r\n sallary: '期望薪资',\r\n sex: '性别',\r\n nation: '民族',\r\n height: '身高',\r\n nativePlace: '籍贯',\r\n identity: '身份证号',\r\n belief: '宗教信仰',\r\n dateOfBirth: '出生日期',\r\n politics: '政治面貌',\r\n healthy: '健康状况',\r\n diseases: '重大疾病史',\r\n marriage: '婚姻状况',\r\n registration: '户口所在地',\r\n accountCharacter: '户口性质',\r\n address: '家庭详细住址',\r\n email: '个人邮箱',\r\n phone: '手机号码',\r\n urgentPhone: '紧急联系人',\r\n foreign: '外语及程度',\r\n skillCertificate: '技能证书',\r\n skillType: '职称及类别',\r\n fristWork: '首次参加工作时间',\r\n plan: '三年内职业规划',\r\n curStatus: '是否与其他单位存在劳动关系',\r\n eduExperience: '教育经历',\r\n workExperience: '工作经历',\r\n description: '自我评价',\r\n startDate: '开始时间',\r\n endDate: '结束时间',\r\n school: '毕业学校',\r\n education: '学历',\r\n major: '专业名称',\r\n educationBg: '毕业时间/学制',\r\n idPhoto: '证件照',\r\n lifePhoto: '生活照'\r\n}\r\n\r\nexport default fy\r\n","import Rule from './rule'\r\nimport { isFunction, isRegExp } from './index'\r\nimport fyForm from '@/util/fy'\r\n\r\n/**\r\n * @des 路由参数校验\r\n */\r\nclass Param {\r\n constructor (params) {\r\n this.params = params\r\n this.error = ''\r\n }\r\n\r\n checkParams () {\r\n let params = this.params\r\n\r\n for (let i in params) {\r\n if (!this._validate(i, params[i])) {\r\n return false\r\n }\r\n }\r\n\r\n return true\r\n }\r\n\r\n _validate (key, rules) {\r\n for (var i = 1; i < rules.length; i++) {\r\n if (!this._validateType(key, rules[0], rules[i])) {\r\n return false\r\n }\r\n }\r\n\r\n return true\r\n }\r\n\r\n _validateType (type, val, rule) {\r\n if (rule === 'require') return this._execRequire(type, val)\r\n else if (isFunction(rule)) return rule(val)\r\n else if (isRegExp(rule)) return this._execReg(type, val, rule)\r\n else if(/^length_[0-9]{1,}-[0-9]{1,}$/) return this._execLength(type, val, rule)\r\n else return true\r\n }\r\n /**\r\n * 验证是否为空\r\n * @param {string} type key\r\n * @param {any} val val\r\n */\r\n _execRequire (type, val) {\r\n let flag = Rule.Reg_Require.test(val)\r\n if (!flag) this.error = `${fyForm[type] || type}不能为空`\r\n return flag\r\n }\r\n /**\r\n *\r\n * @param {string} type key\r\n * @param {any} val val\r\n * @param {RegExp} rule 正则表达式\r\n */\r\n _execReg (type, val, rule) {\r\n let flag = rule.test(val)\r\n if (!flag) this.error = `${fyForm[type] || type}格式不对`\r\n return flag\r\n }\r\n\r\n _execLength (type, val, rule) {\r\n let range = (rule.replace('length_','')).split(\"-\")\r\n if(val.length>=range[0] && val.length<=range[1]){\r\n return true\r\n }else{\r\n this.error = `${fyForm[type] || type}长度在${range[0]}-${range[1]}之间`\r\n return false\r\n }\r\n }\r\n}\r\n\r\nexport default Param\r\n","import React, { Component } from 'react'\r\nimport './index.scss'\r\n\r\nexport default class CardWrapper extends Component {\r\n render () {\r\n return <div className=\"mod-card\">{this.props.children}</div>\r\n }\r\n}\r\n","import React, { Component } from 'react'\r\nimport './index.scss'\r\n\r\nexport default class Test extends Component {\r\n render () {\r\n return (\r\n <header className=\"info-header\">\r\n {this.props.title}\r\n {this.props.tip && (\r\n <span className=\"hd-tip\">{this.props.tip}</span>\r\n )}\r\n </header>\r\n )\r\n }\r\n}\r\n","import React, { Component } from 'react'\r\nimport './index.scss'\r\nexport default class LabelInput extends Component {\r\n render () {\r\n return <p className=\"input-label\">{this.props.children}</p>\r\n }\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { Icon, message } from \"antd\";\r\nimport {getBase64} from '@/util'\r\nimport \"./index.scss\";\r\n\r\nexport default class ButtonAdd extends Component {\r\n state = {\r\n loading: false\r\n };\r\n\r\n checkFile(file) {\r\n if (!file) return false;\r\n\r\n const isJPG = file.type === \"image/jpeg\";\r\n if (!isJPG) {\r\n message.error(\"你只能上传JPG格式的图片哦\");\r\n }\r\n const isLt2M = file.size / 1024 / 1024 < 2;\r\n if (!isLt2M) {\r\n message.error(\"上传图片大小必须小于2M\");\r\n }\r\n return isJPG && isLt2M;\r\n }\r\n\r\n handleChange(files) {\r\n let curFile = files[0];\r\n\r\n if (!this.checkFile(curFile)) return;\r\n getBase64(curFile, async imageUrl => {\r\n this.props.changeFile(this.props.imageKey,imageUrl)\r\n });\r\n }\r\n\r\n render() {\r\n const uploadButton = (\r\n <div>\r\n <Icon type={this.state.loading ? \"loading\" : \"plus\"} />\r\n <div className=\"ant-upload-text\">Upload</div>\r\n </div>\r\n );\r\n const imageUrl = this.props.imageUrl;\r\n\r\n return (\r\n <div className=\"upload-wrap\">\r\n <div className=\"upload-select\">\r\n <input\r\n type=\"file\"\r\n onChange={e => {\r\n this.handleChange(e.target.files);\r\n }}\r\n />\r\n {imageUrl ? (\r\n <img src={imageUrl} alt=\"avatar\" />\r\n ) : (\r\n uploadButton\r\n )}\r\n </div>\r\n </div>\r\n );\r\n }\r\n}\r\n","import React, { Component } from \"react\";\r\nimport CardWrapper from \"@/component/CardWrapper\";\r\nimport InfoHeader from \"@/component/InfoHeader\";\r\nimport LabelInput from \"@/ui-component/LabelInput\";\r\nimport UploadImage from \"@/ui-component/UploadImage\";\r\nimport { Row, Col } from \"antd\";\r\n\r\nexport default class PhotoInfo extends Component {\r\n state = {\r\n loading: false\r\n };\r\n\r\n changeFile(key,value){\r\n this.props &&\r\n this.props.transferMsg &&\r\n this.props.transferMsg(key,value);\r\n }\r\n\r\n render() {\r\n return (\r\n <div className=\"photo-info\">\r\n <InfoHeader\r\n title=\"证件照与生活照\"\r\n tip=\"(每张图片大小不超过2M)\"\r\n />\r\n <CardWrapper>\r\n <Row>\r\n <Col span={10}>\r\n <LabelInput>证件照(一寸彩色免冠证件照)</LabelInput>\r\n <UploadImage changeFile={this.changeFile.bind(this)} imageKey=\"idPhoto\" imageUrl={this.props.info.idPhoto}></UploadImage>\r\n </Col>\r\n <Col span={10} offset={4}>\r\n <p className=\"input-label not-must\">生活照(个人近半年站立半身照)</p>\r\n <UploadImage changeFile={this.changeFile.bind(this)} imageKey=\"lifePhoto\" imageUrl={this.props.info.lifePhoto}></UploadImage>\r\n </Col>\r\n </Row>\r\n </CardWrapper>\r\n </div>\r\n );\r\n }\r\n}\r\n","import React, { Component } from 'react'\r\nimport CardWrapper from '@/component/CardWrapper'\r\nimport InfoHeader from '@/component/InfoHeader'\r\nimport LabelInput from '@/ui-component/LabelInput'\r\nimport { Row, Col, Select, Input } from 'antd'\r\nimport { onChange, onComponentChange } from '@/util'\r\nimport { curStatuOptions } from '@/data'\r\nimport API from '@/api'\r\n\r\nconst { Option } = Select\r\n\r\nexport default class EmploymentInfo extends Component {\r\n constructor(){\r\n super()\r\n\r\n this.getDepartmentList()\r\n }\r\n\r\n state={\r\n departmentList : []\r\n }\r\n\r\n async getDepartmentList(){\r\n let {data} = await API.base.getDepartmentList() \r\n this.setState({departmentList:data})\r\n }\r\n\r\n\r\n render () {\r\n return (\r\n <div className=\"employment-info\">\r\n <InfoHeader title=\"应聘信息\" />\r\n <CardWrapper>\r\n <Row>\r\n <Col span={10}>\r\n <LabelInput>应聘岗位</LabelInput>\r\n <Select\r\n placeholder=\"请选择岗位\"\r\n style={{ width: '100%' }}\r\n value={this.props.info.department||(this.state.departmentList[0] && this.state.departmentList[0].name)}\r\n onChange={onChange('department', true).bind(this)}\r\n >\r\n {\r\n this.state.departmentList.map(function (item) {\r\n return <Option key={item.name}>{item.name}</Option>\r\n })\r\n }\r\n </Select>\r\n </Col>\r\n <Col span={10} offset={4}>\r\n <LabelInput>期望薪资(请输入正整数)</LabelInput>\r\n <Input\r\n placeholder=\"请输入期望薪资\"\r\n value={this.props.info.sallary}\r\n onChange={onChange('sallary', true).bind(this)}\r\n />\r\n </Col>\r\n </Row>\r\n <Row>\r\n <Col span={10}>\r\n <LabelInput>目前状态</LabelInput>\r\n <Select\r\n placeholder=\"请选择目前状态\"\r\n style={{ width: '100%' }}\r\n value={this.props.info.personalInfo && curStatuOptions[this.props.info.personalInfo.curStatus]}\r\n onChange={onComponentChange('personalInfo', 'curStatus', true).bind(this)}\r\n >\r\n {\r\n curStatuOptions.map(function (item, index) {\r\n return <Option value={index} key={index}>{item}</Option>\r\n })\r\n }\r\n </Select>\r\n </Col>\r\n </Row>\r\n </CardWrapper>\r\n </div>\r\n )\r\n }\r\n}\r\n","const addressData = {\r\n 北京市: ['北京市'],\r\n 天津市: ['天津市'],\r\n 河北省: [\r\n '石家庄市',\r\n '唐山市',\r\n '秦皇岛市',\r\n '邯郸市',\r\n '邢台市',\r\n '保定市',\r\n '张家口市',\r\n '承德市',\r\n '沧州市',\r\n '廊坊市',\r\n '衡水市'\r\n ],\r\n 山西省: [\r\n '太原市',\r\n '大同市',\r\n '阳泉市',\r\n '长治市',\r\n '晋城市',\r\n '朔州市',\r\n '晋中市',\r\n '运城市',\r\n '忻州市',\r\n '临汾市',\r\n '吕梁市'\r\n ],\r\n 内蒙古自治区: [\r\n '呼和浩特市',\r\n '包头市',\r\n '乌海市',\r\n '赤峰市',\r\n '通辽市',\r\n '鄂尔多斯市',\r\n '呼伦贝尔市',\r\n '巴彦淖尔市',\r\n '乌兰察布市',\r\n '兴安盟',\r\n '锡林郭勒盟',\r\n '阿拉善盟'\r\n ],\r\n 辽宁省: [\r\n '沈阳市',\r\n '大连市',\r\n '鞍山市',\r\n '抚顺市',\r\n '本溪市',\r\n '丹东市',\r\n '锦州市',\r\n '营口市',\r\n '阜新市',\r\n '辽阳市',\r\n '盘锦市',\r\n '铁岭市',\r\n '朝阳市',\r\n '葫芦岛市'\r\n ],\r\n 吉林省: [\r\n '长春市',\r\n '吉林市',\r\n '四平市',\r\n '辽源市',\r\n '通化市',\r\n '白山市',\r\n '松原市',\r\n '白城市',\r\n '延边朝鲜族自治州'\r\n ],\r\n 黑龙江省: [\r\n '哈尔滨市',\r\n '齐齐哈尔市',\r\n '鸡西市',\r\n '鹤岗市',\r\n '双鸭山市',\r\n '大庆市',\r\n '伊春市',\r\n '佳木斯市',\r\n '七台河市',\r\n '牡丹江市',\r\n '黑河市',\r\n '绥化市',\r\n '大兴安岭地区'\r\n ],\r\n 上海市: ['上海市'],\r\n 江苏省: [\r\n '南京市',\r\n '无锡市',\r\n '徐州市',\r\n '常州市',\r\n '苏州市',\r\n '南通市',\r\n '连云港市',\r\n '淮安市',\r\n '盐城市',\r\n '扬州市',\r\n '镇江市',\r\n '泰州市',\r\n '宿迁市'\r\n ],\r\n 浙江省: [\r\n '杭州市',\r\n '宁波市',\r\n '温州市',\r\n '嘉兴市',\r\n '湖州市',\r\n '绍兴市',\r\n '金华市',\r\n '衢州市',\r\n '舟山市',\r\n '台州市',\r\n '丽水市'\r\n ],\r\n 安徽省: [\r\n '合肥市',\r\n '芜湖市',\r\n '蚌埠市',\r\n '淮南市',\r\n '马鞍山市',\r\n '淮北市',\r\n '铜陵市',\r\n '安庆市',\r\n '黄山市',\r\n '滁州市',\r\n '阜阳市',\r\n '宿州市',\r\n '六安市',\r\n '亳州市',\r\n '池州市',\r\n '宣城市'\r\n ],\r\n 福建省: [\r\n '福州市',\r\n '厦门市',\r\n '莆田市',\r\n '三明市',\r\n '泉州市',\r\n '漳州市',\r\n '南平市',\r\n '龙岩市',\r\n '宁德市'\r\n ],\r\n 江西省: [\r\n '南昌市',\r\n '景德镇市',\r\n '萍乡市',\r\n '九江市',\r\n '新余市',\r\n '鹰潭市',\r\n '赣州市',\r\n '吉安市',\r\n '宜春市',\r\n '抚州市',\r\n '上饶市'\r\n ],\r\n 山东省: [\r\n '济南市',\r\n '青岛市',\r\n '淄博市',\r\n '枣庄市',\r\n '东营市',\r\n '烟台市',\r\n '潍坊市',\r\n '济宁市',\r\n '泰安市',\r\n '威海市',\r\n '日照市',\r\n '莱芜市',\r\n '临沂市',\r\n '德州市',\r\n '聊城市',\r\n '滨州市',\r\n '菏泽市'\r\n ],\r\n 河南省: [\r\n '郑州市',\r\n '开封市',\r\n '洛阳市',\r\n '平顶山市',\r\n '安阳市',\r\n '鹤壁市',\r\n '新乡市',\r\n '焦作市',\r\n '濮阳市',\r\n '许昌市',\r\n '漯河市',\r\n '三门峡市',\r\n '南阳市',\r\n '商丘市',\r\n '信阳市',\r\n '周口市',\r\n '驻马店市'\r\n ],\r\n 湖北省: [\r\n '武汉市',\r\n '黄石市',\r\n '十堰市',\r\n '宜昌市',\r\n '襄阳市',\r\n '鄂州市',\r\n '荆门市',\r\n '孝感市',\r\n '荆州市',\r\n '黄冈市',\r\n '咸宁市',\r\n '随州市',\r\n '恩施土家族苗族自治州'\r\n ],\r\n 湖南省: [\r\n '长沙市',\r\n '株洲市',\r\n '湘潭市',\r\n '衡阳市',\r\n '邵阳市',\r\n '岳阳市',\r\n '常德市',\r\n '张家界市',\r\n '益阳市',\r\n '郴州市',\r\n '永州市',\r\n '怀化市',\r\n '娄底市',\r\n '湘西土家族苗族自治州'\r\n ],\r\n 广东省: [\r\n '广州市',\r\n '韶关市',\r\n '深圳市',\r\n '珠海市',\r\n '汕头市',\r\n '佛山市',\r\n '江门市',\r\n '湛江市',\r\n '茂名市',\r\n '肇庆市',\r\n '惠州市',\r\n '梅州市',\r\n '汕尾市',\r\n '河源市',\r\n '阳江市',\r\n '清远市',\r\n '东莞市',\r\n '中山市',\r\n '潮州市',\r\n '揭阳市',\r\n '云浮市'\r\n ],\r\n 广西壮族自治区: [\r\n '南宁市',\r\n '柳州市',\r\n '桂林市',\r\n '梧州市',\r\n '北海市',\r\n '防城港市',\r\n '钦州市',\r\n '贵港市',\r\n '玉林市',\r\n '百色市',\r\n '贺州市',\r\n '河池市',\r\n '来宾市',\r\n '崇左市'\r\n ],\r\n 海南省: ['海口市', '三亚市', '三沙市', '儋州市'],\r\n 重庆市: ['重庆市'],\r\n 四川省: [\r\n '成都市',\r\n '自贡市',\r\n '攀枝花市',\r\n '泸州市',\r\n '德阳市',\r\n '绵阳市',\r\n '广元市',\r\n '遂宁市',\r\n '内江市',\r\n '乐山市',\r\n '南充市',\r\n '眉山市',\r\n '宜宾市',\r\n '广安市',\r\n '达州市',\r\n '雅安市',\r\n '巴中市',\r\n '资阳市',\r\n '阿坝藏族羌族自治州',\r\n '甘孜藏族自治州',\r\n '凉山彝族自治州'\r\n ],\r\n 贵州省: [\r\n '贵阳市',\r\n '六盘水市',\r\n '遵义市',\r\n '安顺市',\r\n '毕节市',\r\n '铜仁市',\r\n '黔西南布依族苗族自治州',\r\n '黔东南苗族侗族自治州',\r\n '黔南布依族苗族自治州'\r\n ],\r\n 云南省: [\r\n '昆明市',\r\n '曲靖市',\r\n '玉溪市',\r\n '保山市',\r\n '昭通市',\r\n '丽江市',\r\n '普洱市',\r\n '临沧市',\r\n '楚雄彝族自治州',\r\n '红河哈尼族彝族自治州',\r\n '文山壮族苗族自治州',\r\n '西双版纳傣族自治州',\r\n '大理白族自治州',\r\n '德宏傣族景颇族自治州',\r\n '怒江傈僳族自治州',\r\n '迪庆藏族自治州'\r\n ],\r\n 西藏自治区: [\r\n '拉萨市',\r\n '日喀则市',\r\n '昌都市',\r\n '林芝市',\r\n '山南市',\r\n '那曲地区',\r\n '阿里地区'\r\n ],\r\n 陕西省: [\r\n '西安市',\r\n '铜川市',\r\n '宝鸡市',\r\n '咸阳市',\r\n '渭南市',\r\n '延安市',\r\n '汉中市',\r\n '榆林市',\r\n '安康市',\r\n '商洛市'\r\n ],\r\n 甘肃省: [\r\n '兰州市',\r\n '嘉峪关市',\r\n '金昌市',\r\n '白银市',\r\n '天水市',\r\n '武威市',\r\n '张掖市',\r\n '平凉市',\r\n '酒泉市',\r\n '庆阳市',\r\n '定西市',\r\n '陇南市',\r\n '临夏回族自治州',\r\n '甘南藏族自治州'\r\n ],\r\n 青海省: [\r\n '西宁市',\r\n '海东市',\r\n '海北藏族自治州',\r\n '黄南藏族自治州',\r\n '海南藏族自治州',\r\n '果洛藏族自治州',\r\n '玉树藏族自治州',\r\n '海西蒙古族藏族自治州'\r\n ],\r\n 宁夏回族自治区: ['银川市', '石嘴山市', '吴忠市', '固原市', '中卫市'],\r\n 新疆维吾尔自治区: [\r\n '乌鲁木齐市',\r\n '克拉玛依市',\r\n '吐鲁番市',\r\n '哈密市',\r\n '昌吉回族自治州',\r\n '博尔塔拉蒙古自治州',\r\n '巴音郭楞蒙古自治州',\r\n '阿克苏地区',\r\n '克孜勒苏柯尔克孜自治州',\r\n '喀什地区',\r\n '和田地区',\r\n '伊犁哈萨克自治州',\r\n '塔城地区',\r\n '阿勒泰地区'\r\n ],\r\n 台湾省: [],\r\n 香港特别行政区: [],\r\n 澳门特别行政区: []\r\n}\r\nexport default addressData\r\n","import React, { Component } from 'react'\r\nimport CardWrapper from '@/component/CardWrapper'\r\nimport InfoHeader from '@/component/InfoHeader'\r\nimport LabelInput from '@/ui-component/LabelInput'\r\nimport { Row, Col, Select, Radio, Input, DatePicker } from 'antd'\r\nimport addressData from '@/data/cityData'\r\nimport { politicsOptions, marriageOptions, accountCharacterOptions, nationOptions } from '@/data'\r\nimport { onChange, onComponentChange } from '@/util'\r\nimport moment from 'moment'\r\n\r\nconst provinces = Object.keys(addressData)\r\nlet citys = addressData[provinces[0]]\r\n\r\nconst { Option } = Select\r\nconst RadioGroup = Radio.Group\r\nconst isEvent = true\r\nexport default class PersonalInfo extends Component {\r\n onProvinceChange (province) {\r\n citys = addressData[province] || []\r\n\r\n if (this.props && this.props.transferMsg) {\r\n this.props.transferMsg('npProvince', province)\r\n this.props.transferMsg('npCity', citys[0])\r\n }\r\n }\r\n\r\n render () {\r\n return (\r\n <div className=\"personal-info\">\r\n <InfoHeader title=\"基本信息\" />\r\n <CardWrapper>\r\n <Row>\r\n <Col span={10}>\r\n <LabelInput>姓名</LabelInput>\r\n <Input\r\n placeholder=\"请输入姓名\"\r\n value={this.props.info.name}\r\n onChange={onChange('name', isEvent).bind(this)}\r\n />\r\n </Col>\r\n <Col span={10} offset={4}>\r\n <LabelInput>性别</LabelInput>\r\n <RadioGroup\r\n onChange={onComponentChange('personalInfo', 'sex', isEvent).bind(this)}\r\n value={parseInt(this.props.info.personalInfo && this.props.info.personalInfo.sex)}\r\n >\r\n <Radio value={1}>男</Radio>\r\n <Radio value={0}>女</Radio>\r\n </RadioGroup>\r\n </Col>\r\n </Row>\r\n <Row>\r\n <Col span={10}>\r\n <LabelInput>民族</LabelInput>\r\n <Select\r\n onChange={onComponentChange('personalInfo', 'nation').bind(this)}\r\n placeholder=\"请选择民族\"\r\n style={{ width: '100%' }}\r\n value={nationOptions[this.props.info.personalInfo && this.props.info.personalInfo.nation]}\r\n >\r\n {nationOptions.map((item, index) => (\r\n <Option key={index} value={index}>\r\n {item}\r\n </Option>\r\n ))}\r\n </Select>\r\n </Col>\r\n <Col span={10} offset={4}>\r\n <p className=\"input-label not-must\">宗教信仰</p>\r\n <Input\r\n placeholder=\"请输入宗教信仰\"\r\n onChange={onComponentChange('personalInfo', 'belief', isEvent).bind(this)}\r\n value={this.props.info.personalInfo && this.props.info.personalInfo.belief}\r\n />\r\n </Col>\r\n </Row>\r\n <Row>\r\n <Col span={10}>\r\n <LabelInput>健康状况</LabelInput>\r\n <Input\r\n placeholder=\"请输入健康状况\"\r\n onChange={onComponentChange('personalInfo', 'healthy', isEvent).bind(this)}\r\n value={this.props.info.personalInfo && this.props.info.personalInfo.healthy}\r\n />\r\n </Col>\r\n <Col span={10} offset={4}>\r\n <LabelInput>重大疾病史</LabelInput>\r\n <Input\r\n placeholder=\"请输入重大疾病史\"\r\n value={this.props.info.personalInfo && this.props.info.personalInfo.diseases}\r\n onChange={onComponentChange('personalInfo', 'diseases', isEvent).bind(this)}\r\n />\r\n </Col>\r\n </Row>\r\n <Row>\r\n <Col span={10}>\r\n <LabelInput>籍贯省市</LabelInput>\r\n <Col span={10}>\r\n <Select\r\n onChange={this.onProvinceChange.bind(this)}\r\n placeholder=\"请选择省\"\r\n style={{ width: '100%' }}\r\n value = {this.props.info.npProvince}\r\n >\r\n {provinces.map((item, index) => (\r\n <Option key={index} value={item}>\r\n {item}\r\n </Option>\r\n ))}\r\n </Select>\r\n </Col>\r\n <Col span={10} offset={4}>\r\n <Select\r\n onChange={onChange('npCity', true).bind(this)}\r\n placeholder=\"请选择市\"\r\n style={{ width: '100%' }}\r\n value = {this.props.info.npCity}\r\n >\r\n {addressData[this.props.info.npProvince].map((item) => (\r\n <Option key={item}>\r\n {item}\r\n </Option>\r\n ))}\r\n\r\n </Select>\r\n </Col>\r\n </Col>\r\n <Col span={10} offset={4}>\r\n <LabelInput>政治面貌</LabelInput>\r\n <RadioGroup\r\n onChange={onComponentChange('personalInfo', 'politics', isEvent).bind(this)}\r\n value={parseInt(this.props.info.personalInfo && this.props.info.personalInfo.politics)}\r\n >\r\n {politicsOptions.map((item, index) => (\r\n <Radio key={index} value={index}>\r\n {item}\r\n </Radio>\r\n ))}\r\n </RadioGroup>\r\n </Col>\r\n </Row>\r\n\r\n <Row>\r\n <Col span={10}>\r\n <LabelInput>身份证号</LabelInput>\r\n <Input\r\n onChange={onChange('identity', isEvent).bind(this)}\r\n placeholder=\"请输入身份证号\"\r\n value={this.props.info.identity}\r\n />\r\n </Col>\r\n <Col span={10} offset={4}>\r\n <LabelInput>婚姻状况</LabelInput>\r\n <RadioGroup\r\n onChange={onComponentChange('personalInfo', 'marriage', isEvent).bind(this)}\r\n value={parseInt(this.props.info.personalInfo && this.props.info.personalInfo.marriage)}\r\n >\r\n {marriageOptions.map((item, index) => (\r\n <Radio key={index} value={index}>\r\n {item}\r\n </Radio>\r\n ))}\r\n </RadioGroup>\r\n </Col>\r\n </Row>\r\n\r\n <Row>\r\n <Col span={10}>\r\n <LabelInput>户口所在地</LabelInput>\r\n <Input\r\n onChange={onComponentChange('personalInfo', 'registration', isEvent).bind(this)}\r\n placeholder=\"请输入户口所在地\"\r\n value={this.props.info.personalInfo && this.props.info.personalInfo.registration}\r\n />\r\n </Col>\r\n <Col span={10} offset={4}>\r\n <LabelInput>户口性质</LabelInput>\r\n <RadioGroup\r\n onChange={onComponentChange('personalInfo', 'accountCharacter', isEvent).bind(this)}\r\n value={parseInt(this.props.info.personalInfo && this.props.info.personalInfo.accountCharacter)}\r\n >\r\n {accountCharacterOptions.map((item, index) => (\r\n <Radio key={index} value={index}>\r\n {item}\r\n </Radio>\r\n ))}\r\n </RadioGroup>\r\n </Col>\r\n </Row>\r\n\r\n <Row>\r\n <Col span={10}>\r\n <LabelInput>家庭详细住址</LabelInput>\r\n <Input\r\n placeholder=\"请输入家庭详细住址\"\r\n onChange={onComponentChange('personalInfo', 'address', true).bind(this)}\r\n value={this.props.info.personalInfo && this.props.info.personalInfo.address}\r\n />\r\n </Col>\r\n <Col span={10} offset={4}>\r\n <p className=\"input-label not-must\">出生日期</p>\r\n <DatePicker\r\n onChange={onComponentChange('personalInfo', 'dateOfBirth').bind(this)}\r\n format=\"YYYY/MM/DD\"\r\n placeholder=\"请输入出生日期\"\r\n style={{ width: '100%' }}\r\n value = {this.props.info.personalInfo && this.props.info.personalInfo.dateOfBirth && moment(this.props.info.personalInfo && this.props.info.personalInfo.dateOfBirth, 'YYYY-MM-DD')}\r\n />\r\n </Col>\r\n </Row>\r\n <Row>\r\n <Col span={10}>\r\n <p className=\"input-label not-must\">身高</p>\r\n <Input\r\n placeholder=\"请输入身高\"\r\n value={this.props.info.personalInfo && this.props.info.personalInfo.height}\r\n onChange={onComponentChange('personalInfo', 'height', isEvent).bind(this)}\r\n />\r\n </Col>\r\n <Col span={10} offset={4}>\r\n <p className=\"input-label not-must\">外语及程度</p>\r\n <Input\r\n placeholder=\"请输入外语及程度\"\r\n value={this.props.info.personalInfo && this.props.info.personalInfo.foreign}\r\n onChange={onComponentChange('personalInfo', 'foreign', isEvent).bind(this)}\r\n />\r\n </Col>\r\n </Row>\r\n <Row>\r\n <Col span={10}>\r\n <p className=\"input-label not-must\">技能证书</p>\r\n <Input\r\n placeholder=\"请输入技能证书\"\r\n value={this.props.info.personalInfo && this.props.info.personalInfo.skillCertificate}\r\n onChange={onComponentChange('personalInfo', 'skillCertificate', isEvent).bind(this)}\r\n />\r\n </Col>\r\n <Col span={10} offset={4}>\r\n <p className=\"input-label not-must\">职称及类别</p>\r\n <Input\r\n placeholder=\"请输入职称及类别\"\r\n value={this.props.info.personalInfo && this.props.info.personalInfo.skillType}\r\n onChange={onComponentChange('personalInfo', 'skillType', isEvent).bind(this)}\r\n />\r\n </Col>\r\n </Row>\r\n <Row>\r\n <Col span={10}>\r\n <p className=\"input-label not-must\">首次参加工作时间</p>\r\n <DatePicker\r\n onChange={onComponentChange('personalInfo', 'fristWork').bind(this)}\r\n format=\"YYYY/MM/DD\"\r\n placeholder=\"请输入首次参加工作时间\"\r\n style={{ width: '100%' }}\r\n value = {this.props.info.personalInfo && this.props.info.personalInfo.fristWork && moment(this.props.info.personalInfo && this.props.info.personalInfo.fristWork, 'YYYY-MM-DD')}\r\n />\r\n </Col>\r\n </Row>\r\n </CardWrapper>\r\n </div>\r\n )\r\n }\r\n}\r\n","import React, { Component } from 'react'\r\nimport CardWrapper from '@/component/CardWrapper'\r\nimport InfoHeader from '@/component/InfoHeader'\r\nimport LabelInput from '@/ui-component/LabelInput'\r\nimport { Row, Col, Input } from 'antd'\r\nimport { onChange } from '@/util'\r\nexport default class CommunicationInfo extends Component {\r\n render () {\r\n return (\r\n <div className=\"communication-info\">\r\n <InfoHeader title=\"通讯信息\" />\r\n <CardWrapper>\r\n <Row>\r\n <Col span={10}>\r\n <LabelInput>手机号码</LabelInput>\r\n <Input\r\n placeholder=\"请输入手机号码\"\r\n onChange={onChange('phone', true).bind(this)}\r\n value={this.props.info.phone}\r\n />\r\n </Col>\r\n <Col span={10} offset={4}>\r\n <p className=\"input-label not-must\">\r\n 其他联系人号码/关系\r\n </p>\r\n <Input\r\n placeholder=\"请输入紧急联系人(格式:姓名_手机号)\"\r\n onChange={onChange('urgentPhone', true).bind(this)}\r\n value={this.props.info.urgentPhone}\r\n />\r\n </Col>\r\n </Row>\r\n\r\n <Row>\r\n <Col span={10}>\r\n <LabelInput>个人邮箱</LabelInput>\r\n <Input\r\n placeholder=\"请输入个人邮箱\"\r\n onChange={onChange('email', true).bind(this)}\r\n value={this.props.info.email}\r\n />\r\n </Col>\r\n </Row>\r\n </CardWrapper>\r\n </div>\r\n )\r\n }\r\n}\r\n","import React, { Component } from 'react'\r\nimport './index.scss'\r\nimport { Icon } from 'antd'\r\nexport default class ButtonAdd extends Component {\r\n render () {\r\n return (\r\n <div className=\"btn-add\" onClick={this.props.onClick}>\r\n <Icon type=\"plus-circle\" theme=\"twoTone\" />\r\n <span className=\"btn-text\">{this.props.text}</span>\r\n </div>\r\n )\r\n }\r\n}\r\n","import React, { Component } from \"react\";\r\nimport CardWrapper from \"@/component/CardWrapper\";\r\nimport InfoHeader from \"@/component/InfoHeader\";\r\nimport LabelInput from \"@/ui-component/LabelInput\";\r\nimport { Row, Col, DatePicker, Input, Select,Icon,Message } from \"antd\";\r\nimport ButtonAdd from \"@/ui-component/ButtonAdd\";\r\nimport { backgroundOptions } from \"@/data\";\r\nimport { getAntdFormVal } from \"@/util\";\r\nimport moment from \"moment\" \r\n\r\nconst Option = Select.Option;\r\n\r\nexport default class EducationInfo extends Component {\r\n state = {\r\n };\r\n\r\n onButtonAdd() {\r\n let eduExperience = this.props.info.eduExperience\r\n eduExperience.push({\r\n education:0\r\n })\r\n\r\n this.props && this.props.transferMsg && this.props.transferMsg(\"eduExperience\",eduExperience)\r\n }\r\n\r\n onButtonDel(index){\r\n return function(){\r\n let eduExperience = this.props.info.eduExperience\r\n if(eduExperience.length>1){\r\n eduExperience.splice(index,1)\r\n this.props && this.props.transferMsg && this.props.transferMsg(\"eduExperience\",eduExperience)\r\n }else{\r\n Message.error(\"至少填写一段教育经历\")\r\n }\r\n }\r\n }\r\n\r\n onExpChange(property, isEvent = false,expIndex = 0){\r\n return function(value,data){\r\n let val = getAntdFormVal(value, data,isEvent)\r\n\r\n let eduExperience = this.props.info.eduExperience\r\n eduExperience[expIndex][property] = val\r\n\r\n this.props && this.props.transferMsg && this.props.transferMsg(\"eduExperience\",eduExperience)\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n <div className=\"education-info\">\r\n <InfoHeader title=\"教育经历\" tip=\"(按最近教育经历倒序填写)\" />\r\n {\r\n this.props.info.eduExperience.map((item, index)=> {\r\n return (\r\n <CardWrapper key={index}>\r\n <Icon type=\"close-circle\" theme=\"twoTone\" style={{fontSize:\"24px\",position:\"absolute\",right: \"10px\",top: \"10px\"}} twoToneColor=\"#ff0000\" \r\n onClick={this.onButtonDel(index).bind(this)} />\r\n <Row>\r\n <Col span={10}>\r\n <LabelInput>起止日期</LabelInput>\r\n <Col span={11}>\r\n <DatePicker \r\n placeholder=\"开始日期\" \r\n value = {item.startDate && moment(item.startDate, 'YYYY-MM-DD')} \r\n onChange={this.onExpChange('startDate',true,index).bind(this)}\r\n />\r\n </Col>\r\n\r\n <Col\r\n span={2}\r\n style={{\r\n textAlign: \"center\",\r\n fontSize: \"16px\"\r\n }}\r\n >\r\n -\r\n </Col>\r\n\r\n <Col span={11}>\r\n <DatePicker \r\n placeholder=\"结束日期\" \r\n value = {item.endDate && moment(item.endDate, 'YYYY-MM-DD')} \r\n onChange={this.onExpChange('endDate',true,index).bind(this)}\r\n />\r\n </Col>\r\n </Col>\r\n\r\n <Col span={10} offset={4}>\r\n <LabelInput>毕业学校</LabelInput>\r\n <Input\r\n placeholder=\"请输入毕业学校\"\r\n style={{ width: \"100%\" }}\r\n onChange={this.onExpChange('school',true,index).bind(this)}\r\n value={item.school}\r\n />\r\n </Col>\r\n </Row>\r\n\r\n <Row>\r\n <Col span={10}>\r\n <LabelInput>学历</LabelInput>\r\n <Select\r\n placeholder=\"请选择学历\"\r\n style={{ width: \"100%\" }}\r\n onChange={this.onExpChange('education',true,index).bind(this)}\r\n value={backgroundOptions[item.education]}\r\n >\r\n {backgroundOptions.map(\r\n (item, index) => (\r\n <Option\r\n value={item}\r\n key={index}\r\n >\r\n {item}\r\n </Option>\r\n )\r\n )}\r\n </Select>\r\n </Col>\r\n\r\n <Col span={10} offset={4}>\r\n <LabelInput>专业名称</LabelInput>\r\n <Input\r\n placeholder=\"请输入专业名称\"\r\n style={{ width: \"100%\" }}\r\n onChange={this.onExpChange('major',true,index).bind(this)}\r\n value={item.major}\r\n />\r\n </Col>\r\n </Row>\r\n\r\n <Row>\r\n <Col span={10}>\r\n <LabelInput>毕业时间/学制</LabelInput>\r\n <Input\r\n placeholder=\"请输入专业名称\"\r\n style={{ width: \"100%\" }}\r\n onChange={this.onExpChange('educationBg',true,index).bind(this)}\r\n value={item.educationBg}\r\n />\r\n </Col>\r\n </Row>\r\n </CardWrapper>\r\n );\r\n })}\r\n <Row>\r\n <ButtonAdd\r\n text=\"新增教育经历\"\r\n onClick={this.onButtonAdd.bind(this)}\r\n />\r\n </Row>\r\n </div>\r\n );\r\n }\r\n}\r\n","import React, { Component } from \"react\";\r\nimport CardWrapper from \"@/component/CardWrapper\";\r\nimport InfoHeader from \"@/component/InfoHeader\";\r\nimport LabelInput from \"@/ui-component/LabelInput\";\r\nimport { Row, Col, DatePicker, Input } from \"antd\";\r\nimport { onComponentChange } from \"@/util\";\r\nimport moment from \"moment\" \r\n\r\n// const RadioGroup = Radio.Group;\r\n\r\nexport default class WorkInfo extends Component {\r\n state = {\r\n };\r\n \r\n render() {\r\n return (\r\n <div className=\"work-info\">\r\n <InfoHeader title=\"工作经历\" tip=\"(填写最近工作经历,没有可留空)\"/>\r\n\r\n <CardWrapper>\r\n <Row>\r\n <Col span={10}>\r\n <LabelInput>起止日期</LabelInput>\r\n <Col span={11}>\r\n <DatePicker \r\n placeholder=\"开始日期\"\r\n value = {this.props.info.workExperience.startDate && moment(this.props.info.workExperience.startDate, 'YYYY-MM-DD')} \r\n onChange={onComponentChange('workExperience','startDate',true).bind(this)}\r\n />\r\n </Col>\r\n\r\n <Col\r\n span={2}\r\n style={{\r\n textAlign: \"center\",\r\n fontSize: \"16px\"\r\n }}\r\n >\r\n -\r\n </Col>\r\n\r\n <Col span={11}>\r\n <DatePicker \r\n placeholder=\"结束日期\" \r\n value = {this.props.info.workExperience.endDate && moment(this.props.info.workExperience.endDate, 'YYYY-MM-DD')} \r\n onChange={onComponentChange('workExperience','endDate',true).bind(this)}\r\n />\r\n </Col>\r\n </Col>\r\n\r\n <Col span={10} offset={4}>\r\n <LabelInput>任职公司</LabelInput>\r\n <Input\r\n placeholder=\"请输入任职公司\"\r\n style={{ width: \"100%\" }}\r\n value={this.props.info.workExperience && this.props.info.workExperience.company}\r\n onChange={onComponentChange('workExperience','company',true).bind(this)}\r\n />\r\n </Col>\r\n </Row>\r\n\r\n <Row>\r\n <Col span={10}>\r\n <LabelInput>职位</LabelInput>\r\n <Input\r\n placeholder=\"请输入职位\"\r\n style={{ width: \"100%\" }}\r\n value={this.props.info.workExperience && this.props.info.workExperience.position}\r\n onChange={onComponentChange('workExperience','position',true).bind(this)}\r\n />\r\n </Col>\r\n\r\n <Col span={10} offset={4}>\r\n <LabelInput>税前月薪</LabelInput>\r\n <Input\r\n placeholder=\"请输入税前月薪\"\r\n style={{ width: \"100%\" }}\r\n value={this.props.info.workExperience && this.props.info.workExperience.sally}\r\n onChange={onComponentChange('workExperience','sally',true).bind(this)}\r\n />\r\n </Col>\r\n </Row>\r\n\r\n <Row>\r\n <Col span={10}>\r\n <LabelInput>离职原因</LabelInput>\r\n <Input\r\n placeholder=\"请输入离职原因\"\r\n style={{ width: \"100%\" }}\r\n value={this.props.info.workExperience && this.props.info.workExperience.reason}\r\n onChange={onComponentChange('workExperience','reason',true).bind(this)}\r\n />\r\n </Col>\r\n\r\n <Col span={10} offset={4}>\r\n <LabelInput>证明人及电话</LabelInput>\r\n\r\n <Col span={8}>\r\n <Input \r\n placeholder=\"证明人\" \r\n value={this.props.info.workExperience && this.props.info.workExperience.witness}\r\n onChange={onComponentChange('workExperience','witness',true).bind(this)}\r\n />\r\n </Col>\r\n\r\n <Col span={14} offset={2}>\r\n <Input \r\n placeholder=\"电话\" \r\n value={this.props.info.workExperience && this.props.info.workExperience.witnessPhone}\r\n onChange={onComponentChange('workExperience','witnessPhone',true).bind(this)}\r\n />\r\n </Col>\r\n </Col>\r\n </Row>\r\n </CardWrapper>\r\n </div>\r\n );\r\n }\r\n}\r\n","import React, { Component } from 'react'\r\nimport CardWrapper from '@/component/CardWrapper'\r\nimport InfoHeader from '@/component/InfoHeader'\r\nimport LabelInput from '@/ui-component/LabelInput'\r\nimport { Row, Col, Input } from 'antd'\r\nimport { onChange } from '@/util'\r\nconst TextArea = Input.TextArea\r\n\r\nexport default class SelfDescriptionInfo extends Component {\r\n render () {\r\n return (\r\n <div className=\"self-description-info\">\r\n <InfoHeader title=\"自我描述\" />\r\n\r\n <CardWrapper>\r\n <Row>\r\n <Col span={24}>\r\n <LabelInput>三年内职业规划</LabelInput>\r\n <TextArea\r\n placeholder=\"三年内职业规划\"\r\n autosize={{ minRows: 8, maxRows: 8 }}\r\n style={{ width: '100%', resize: 'none' }}\r\n onChange={onChange('plan', true).bind(this)}\r\n value={this.props.info.plan}\r\n />\r\n </Col>\r\n </Row>\r\n\r\n <Row>\r\n <Col span={24}>\r\n <LabelInput>工作业绩与自我评价</LabelInput>\r\n <TextArea\r\n placeholder=\"工作业绩与自我评价\"\r\n autosize={{ minRows: 8, maxRows: 8 }}\r\n style={{ width: '100%', resize: 'none' }}\r\n onChange={onChange('description', true).bind(this)}\r\n value={this.props.info.description}\r\n />\r\n </Col>\r\n </Row>\r\n </CardWrapper>\r\n </div>\r\n )\r\n }\r\n}\r\n","import React, { Component } from 'react'\r\nimport './index.scss'\r\nimport { Checkbox, Row } from 'antd'\r\nimport { onChange } from '@/util'\r\nexport default class Agreement extends Component {\r\n render () {\r\n return (\r\n <Row className=\"mod-agreement\">\r\n <dl>\r\n <dt>本人郑重声明:</dt>\r\n <dt>1.带*必填,请如实填写,没有内容的请写无;</dt>\r\n <dt>\r\n 2.如发现本资料虚假,本公司有调查核实本资料真实性的权利及相关处理。\r\n </dt>\r\n </dl>\r\n\r\n <p>\r\n <Checkbox\r\n style={{ fontSize: '16px' }}\r\n checked={this.props.info.agree}\r\n onChange={onChange('agree', true).bind(this)}\r\n >本人同意以上说明</Checkbox>\r\n </p>\r\n </Row>\r\n )\r\n }\r\n}\r\n","//基本匹配字段\r\nexport const baseMatch = {\r\n 期望职位:\"department\",\r\n 求职意向: \"department\",\r\n 姓名: \"name\",\r\n 期望薪资: \"sallary\",\r\n 证件照: \"idPhoto\",\r\n 生活照: \"lifePhoto\",\r\n 身份证号: \"identity\",\r\n 电话: \"phone\",\r\n 手机号码: \"phone\",\r\n 个人邮箱: \"email\",\r\n 职业规划: \"plan\",\r\n 自我评价: \"description\",\r\n 自我描述: \"description\",\r\n 教育背景: \"edu\",\r\n 教育经历: \"edu\",\r\n 邮编: \"\",\r\n 工作经验: \"work\",\r\n 专业技能: \"\",\r\n 办公技能: \"\",\r\n 软件技能: \"\",\r\n 实习经验: \"\",\r\n 实习经历:\"\",\r\n 个人优势:\"\",\r\n 项目经历:\"\",\r\n 社交账号:\"\"\r\n};\r\n//合并字段匹配\r\nexport const perMatch = {\r\n 目前状态: 0,\r\n 性别: \"sex\",\r\n 民族: \"nation\",\r\n 宗教信仰: \"belief\",\r\n 健康状况: \"healthy\",\r\n 重大疾病史: \"diseases\",\r\n 籍贯: \"nativePlace\",\r\n 政治面貌: \"politics\",\r\n 婚姻状况: \"marriage\",\r\n 所在地: \"registration\",\r\n 户口所在地: \"registration\",\r\n 户口性质: \"accountCharacter\",\r\n 家庭详细住址: \"address\",\r\n 出生日期: \"dateOfBirth\",\r\n 身高: \"height\",\r\n 外语及程度: \"foreign\",\r\n 语言技能: \"foreign\",\r\n 技能证书: \"skillCertificate\",\r\n 职称及类别: \"skillType\",\r\n 首次参加工作时间: \"fristWork\",\r\n};","import React, { Component } from \"react\";\r\nimport { Button,Message } from \"antd\";\r\nimport API from \"@/api\";\r\nimport { baseMatch, perMatch } from \"./matchData\";\r\nimport { backgroundOptions } from \"@/data\";\r\nimport \"./index.scss\";\r\nimport store from \"@/store\";\r\n\r\nexport default class UploadResume extends Component {\r\n state={\r\n fileName:''\r\n }\r\n getOptionsRegStr(options,key){\r\n let regStr = options.reduce((accumulator, cur) => {\r\n if(key==='department') return `${accumulator.name || accumulator}|${cur.name}`;\r\n else return `${accumulator}|${cur}`;\r\n });\r\n\r\n return \"(\" + regStr + \")+\";\r\n }\r\n getMatchRegs(){\r\n return {\r\n phone: /1(3|4|5|7|8)\\d{9}/i,\r\n email: /\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*/i,\r\n department: this.getOptionsRegStr(store.departmentList,'department'),\r\n education: this.getOptionsRegStr(backgroundOptions,'education'),\r\n time: /(\\d)+((-|—|至)(\\d+))?/i,\r\n sex: /男|女/i,\r\n sallary: /(\\d)+k(-(\\d+)k)?/i,\r\n age:/(\\d+)岁/\r\n };\r\n }\r\n //加强匹配\r\n enhanceMatch(cont, info, perInfo) {\r\n this.matchBase(cont, info, perInfo);\r\n this.matchEdu(cont, info, perInfo);\r\n }\r\n matchBase(cont, info, perInfo) {\r\n let matches = this.getMatchRegs()\r\n let checks = ['phone','email','department','sex','sallary','age']\r\n\r\n for (let i =0;i<checks.length;i++) {\r\n let key = checks[i]\r\n let res = cont.match(matches[key]);\r\n if (!res) continue\r\n if(key==='age'){perInfo.dateOfBirth=(new Date()).getFullYear()-res[0].replace('岁','')}\r\n else info[key] = res[0];\r\n }\r\n }\r\n matchEdu(cont, info, perInfo) {\r\n if (!info.edu) return;\r\n let matches = this.getMatchRegs()\r\n let checks = ['education','time']\r\n let eduExperience = {};\r\n \r\n for (let i =0;i<checks.length;i++) {\r\n let key = checks[i]\r\n let res = info.edu.match(matches[key]);\r\n if (!res) continue;\r\n switch (key) {\r\n case \"education\":\r\n eduExperience[key] = backgroundOptions.indexOf(res[0]);\r\n break;\r\n case \"time\":\r\n let arr = res[0].split(/-|—|至/);\r\n eduExperience[\"startDate\"] = arr[0];\r\n arr[1] && (eduExperience[\"endDate\"] = arr[1]);\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n let arr = info.edu.split(/学院|学校/);\r\n eduExperience.school = arr[0];\r\n if (arr[1]) {\r\n let arr2 = arr[1].split(/专业|技术/);\r\n eduExperience.major = arr2[0];\r\n }\r\n\r\n info.eduExperience[0] = eduExperience;\r\n }\r\n parseResume(cont) {\r\n cont = cont.replace(/↵|\\s/g, \"\");\r\n let regStr =\r\n Object.keys(baseMatch).join(\"|\") +\r\n \"|\" +\r\n Object.keys(perMatch).join(\"|\");\r\n let reg = new RegExp(\"(\" + regStr + \")+\");\r\n let contArr = cont.split(reg);\r\n let info = {\r\n eduExperience: [\r\n {\r\n education: 0\r\n }\r\n ]\r\n },\r\n perInfo = {};\r\n\r\n for (let i = 0; i < contArr.length - 1; i++) {\r\n let item = contArr[i];\r\n if (!item) continue;\r\n\r\n if (perMatch[item]) {\r\n !this.props.info.personalInfo[perMatch[item]] && (perInfo[perMatch[item]] = contArr[i + 1])\r\n } else if (baseMatch[item]) {\r\n !this.props.info[baseMatch[item]] && (info[baseMatch[item]] = contArr[i + 1])\r\n }\r\n item && console.log(item);\r\n }\r\n this.enhanceMatch(cont, info, perInfo);\r\n info.personalInfo = perInfo;\r\n this.props.transferMsgState(info);\r\n console.log(\"info\",info,perInfo)\r\n }\r\n\r\n async uploadResume(files) {\r\n let curFile = files[0]\r\n\r\n if(!/\\.(txt|docx|doc|pdf)$/.test(curFile.name)){\r\n Message.error('仅支持*.docx,.doc,txt,pdf格式文件上传')\r\n return\r\n }\r\n\r\n const isLt2M = curFile.size / 1024 / 1024 < 2;\r\n if (!isLt2M) {\r\n Message.error(\"上传简历大小必须小于2M\");\r\n }\r\n\r\n this.setState({'fileName':curFile.name})\r\n\r\n let formData = new FormData();\r\n formData.append(\"filedata\", curFile);\r\n\r\n this.props.transferMsgState({resumeData:formData});\r\n try {\r\n let {data} = await API.upload.upLoadResume(formData);\r\n console.log(\"upLoadResume data\",data)\r\n this.parseResume(data);\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n <div className=\"upload-resume\">\r\n <div className=\"btn-upload\">\r\n <Button type=\"primary\" size=\"small\">\r\n 简历上传\r\n </Button>\r\n <input\r\n type=\"file\"\r\n onChange={e => {\r\n this.uploadResume(e.target.files);\r\n }}\r\n />\r\n </div>\r\n <p className=\"tip\">\r\n {\r\n (this.state.fileName && `(已选择${this.state.fileName})`) ||\r\n (this.props.info.resume && <span>(已上传<a href={this.props.info.resume} target={'_blank'}>简历</a>)</span>)\r\n }\r\n 支持*.docx,doc,txt,pdf格式\r\n </p>\r\n </div>\r\n );\r\n }\r\n}\r\n","import React, {Component} from 'react'\r\nimport './information.scss'\r\nimport PhotoInfo from '@/component/PhotoInfo'\r\nimport EmploymentInfo from '@/component/EmploymentInfo'\r\nimport PersonalInfo from '@/component/PersonalInfo'\r\nimport CommunicationInfo from '@/component/CommunicationInfo'\r\nimport EducationInfo from '@/component/EducationInfo'\r\nimport WorkInfo from '@/component/WorkInfo'\r\nimport SelfDescriptionInfo from '@/component/SelfDescriptionInfo'\r\nimport Agreement from '@/component/Agreement'\r\nimport UploadResume from '@/ui-component/UploadResume'\r\nimport { Button,Message,Spin } from 'antd'\r\nimport Param from '@/util/param'\r\nimport Rule from '@/util/rule'\r\nimport fyForm from '@/util/fy'\r\nimport store from \"@/store\";\r\nimport {dataURItoBlob} from '@/util'\r\nimport API from '@/api'\r\n\r\nlet originPhoto = {\r\n idPhoto:\"\", //证件照\r\n lifePhoto:\"\" //生活照\r\n}\r\nexport default class Information extends Component {\r\n constructor(){\r\n super()\r\n this.initState()\r\n\r\n window.onbeforeunload=function(e){ \r\n e=window.event||e;\r\n e.returnValue=(\"确定离开当前页面吗?\"); \r\n }\r\n }\r\n state = {\r\n department : \"\", //应聘岗位\r\n name : \"\", //姓名\r\n sallary : \"\", //期望薪资\r\n idPhoto:\"\", //证件照\r\n lifePhoto:\"\", //生活照\r\n personalInfo: {\r\n curStatus : 0, //目前状态\r\n sex : 1, //性别[1:男,0:女]\r\n nation : 0, //民族\r\n belief : \"\", //宗教信仰\r\n healthy : \"\", //健康状况\r\n diseases : \"\", //重大疾病史\r\n nativePlace : \"\", //籍贯\r\n politics : 0, //政治面貌\r\n marriage : 0, //婚姻状况\r\n registration : \"\", //户口所在地\r\n accountCharacter : 0, //户口性质\r\n address : \"\", //家庭详细住址\r\n dateOfBirth : null, //出生日期\r\n height : null, //身高\r\n foreign : \"\", //外语及程度\r\n skillCertificate : \"\", //技能证书\r\n skillType : \"\", //职称及类别\r\n fristWork : null, //首次参加工作时间\r\n },\r\n identity : \"\", //身份证号\r\n phone : \"\", //手机号码\r\n urgentPhone : \"\", //紧急联系人[姓名_电话_关系]\r\n email : \"\", //个人邮箱\r\n eduExperience : [{\r\n education:0\r\n }], //教育经历\r\n workExperience : {}, //工作经历\r\n plan: \"\", //三年内职业规划\r\n description: \"\", //自我评价\r\n agree:true,\r\n npProvince:'北京市',//籍贯-省\r\n npCity: 0,//籍贯-市\r\n loading: false,\r\n resume:\"\", //简历地址\r\n resumeData:null\r\n }\r\n\r\n transferMsg(key,val){\r\n if(this.state.hasOwnProperty(key)){\r\n this.setState({\r\n [key]: val\r\n })\r\n }\r\n }\r\n\r\n transferMsgState(obj){\r\n if(obj.personalInfo) {\r\n obj.personalInfo = Object.assign(this.state.personalInfo,obj.personalInfo)\r\n }\r\n this.setState(Object.assign(this.state,obj))\r\n }\r\n\r\n async initState(){\r\n let userId = store.userId\r\n \r\n if(!userId) return\r\n try {\r\n let {data} = await API.user.find({userId:userId})\r\n let assginData = {}\r\n for(let i in data){\r\n if(data[i] && this.state.hasOwnProperty(i)){\r\n //工作经验\r\n if((i===\"workExperience\" || i===\"eduExperience\" || i===\"personalInfo\")) {\r\n try {\r\n let info = JSON.parse(data[i])\r\n assginData[i] = info\r\n \r\n if(i===\"personalInfo\" && info.nativePlace){\r\n let arr = info.nativePlace.split(\"-\")\r\n assginData['npProvince'] = arr[0]\r\n assginData['npCity'] = arr[1]\r\n }\r\n } catch (error) {\r\n break\r\n }\r\n } else {\r\n assginData[i] = data[i]\r\n if(i===\"idPhoto\" || i=== \"lifePhoto\" ) originPhoto[i] = data[i]\r\n }\r\n \r\n }\r\n }\r\n\r\n this.setState(Object.assign(this.state,assginData))\r\n } catch (error) {\r\n console.log(error)\r\n }\r\n }\r\n\r\n getFormRules(){\r\n let state = this.state\r\n\r\n let rules = {\r\n department : [state.department,'require'], //应聘岗位\r\n sallary : [state.sallary,'require',Rule.Reg_Int], //期望薪资\r\n idPhoto:[state.idPhoto,'require'], //证件照\r\n lifePhoto:[state.lifePhoto], //生活照\r\n name : [state.name,'require'], //姓名\r\n personalInfo:[state.personalInfo,this.checkPersonalInfo.bind(this)],\r\n identity : [state.identity,'require',Rule.Reg_Identity], //身份证号\r\n phone : [state.phone,'require',Rule.Reg_Phone], //手机号码\r\n email : [state.email,'require',Rule.Reg_Email], //个人邮箱\r\n urgentPhone : [state.urgentPhone], //紧急联系人[姓名_电话_关系]\r\n eduExperience : [state.eduExperience,this.checkEduExperience.bind(this)], //教育经历\r\n workExperience : [state.workExperience], //工作经历\r\n plan: [state.plan,'require','length_1-200'], //三年内职业规划\r\n description: [state.description,'require','length_1-200'], //自我评价\r\n resume : [state.resume]\r\n }\r\n\r\n return rules\r\n }\r\n\r\n async checkForm(){\r\n let state = this.state\r\n let pInfo = this.state.personalInfo\r\n\r\n if(this.state.loading) return Promise.reject(new Error(\"\"))\r\n pInfo.nativePlace = `${this.state.npProvince}-${this.state.npCity}`\r\n this.setState({personalInfo:pInfo})\r\n \r\n let rules = this.getFormRules()\r\n\r\n let param = new Param(rules)\r\n if(!param.checkParams()) {\r\n return Promise.reject(new Error(param.error))\r\n }\r\n\r\n if(!state.agree){\r\n return Promise.reject(new Error(\"提交资料请同意以上声明\"))\r\n }\r\n\r\n for(let i in originPhoto){\r\n let imageUrl = this.state[i]\r\n if(originPhoto[i] !== imageUrl){\r\n let formData = new FormData();\r\n formData.append(\"img\", dataURItoBlob(imageUrl));\r\n\r\n try {\r\n let res = await API.upload.upLoadImg(formData)\r\n if (res.data.code === 0) {\r\n originPhoto[i] = res.data.url\r\n this.setState({\r\n [i]: res.data.url\r\n })\r\n }else{\r\n return Promise.reject(new Error(res.data.msg))\r\n }\r\n } catch (err) {\r\n return Promise.reject(err)\r\n }\r\n }\r\n }\r\n\r\n if(this.state.resumeData!==null){\r\n try {\r\n let res = await API.upload.upLoadFile(this.state.resumeData);\r\n this.setState({\r\n resume: res.data.url\r\n })\r\n } catch (err) {\r\n return Promise.reject(err)\r\n }\r\n }\r\n return Promise.resolve(true)\r\n }\r\n async submitForm(){\r\n try{\r\n await this.checkForm()\r\n }catch(err){\r\n this.setState({loading:false})\r\n if(err.message) Message.error(err.message)\r\n return\r\n }\r\n\r\n let rules = this.getFormRules()\r\n let state = this.state\r\n let submitData = {}\r\n for(let i in rules){\r\n if((i===\"workExperience\" || i===\"eduExperience\" || i===\"personalInfo\") && state[i]) {\r\n //工作经验\r\n submitData[i] = JSON.stringify(state[i])\r\n } else {\r\n submitData[i] = state[i]\r\n }\r\n }\r\n\r\n try {\r\n this.setState({loading:true})\r\n await API.user.create(submitData)\r\n Message.success(\"提交成功\")\r\n } catch (e) {\r\n Message.error(e.message)\r\n }\r\n this.setState({loading:false})\r\n }\r\n\r\n //校验个人信息\r\n checkPersonalInfo(){\r\n let state = this.state\r\n let mergeInfo = [\"curStatus\",\"sex\",\"nation\",\"healthy\",\"diseases\",\"nativePlace\",\"politics\",\"marriage\",\"registration\",\"accountCharacter\",\"address\"]\r\n\r\n for(let j=0;j<mergeInfo.length;j++){\r\n let type = mergeInfo[j]\r\n let val = state.personalInfo[type] === undefined ? \"\" : state.personalInfo[type]\r\n let flag = Rule.Reg_Require.test(val)\r\n if(!flag) {\r\n Message.error(`${fyForm[type] || type}不能为空`)\r\n return false\r\n }\r\n }\r\n return true\r\n }\r\n\r\n //校验教育经历\r\n checkEduExperience(){\r\n let state = this.state\r\n let mergeInfo =[\"startDate\",\"endDate\",\"school\",\"education\",\"major\",\"educationBg\"]\r\n \r\n for(let i=0; i<state.eduExperience.length;i++){\r\n for(let j=0;j<mergeInfo.length;j++){\r\n let type = mergeInfo[j]\r\n let val = state.eduExperience[i][type] === undefined ? \"\" : state.eduExperience[i][type]\r\n let flag = Rule.Reg_Require.test(val)\r\n if(!flag) {\r\n Message.error(`${fyForm[type] || type}不能为空`)\r\n return false\r\n }\r\n }\r\n }\r\n return true\r\n }\r\n\r\n render(){\r\n return (\r\n <div className=\"mod-information\">\r\n <UploadResume\r\n transferMsgState={(obj)=>{this.transferMsgState(obj)}} \r\n info={this.state}>\r\n </UploadResume>\r\n <EmploymentInfo transferMsg={(key,value)=>{this.transferMsg(key,value)}} info={this.state}></EmploymentInfo>\r\n <PhotoInfo transferMsg={(key,value)=>{this.transferMsg(key,value)}} info={this.state}></PhotoInfo>\r\n <PersonalInfo transferMsg={(key,value)=>{this.transferMsg(key,value)}} info={this.state}></PersonalInfo>\r\n <CommunicationInfo transferMsg={(key,value)=>{this.transferMsg(key,value)}} info={this.state}></CommunicationInfo>\r\n <EducationInfo transferMsg={(key,value)=>{this.transferMsg(key,value)}} info={this.state}></EducationInfo>\r\n <WorkInfo transferMsg={(key,value)=>{this.transferMsg(key,value)}} info={this.state}></WorkInfo>\r\n <SelfDescriptionInfo transferMsg={(key,value)=>{this.transferMsg(key,value)}} info={this.state}></SelfDescriptionInfo>\r\n <Agreement transferMsg={(key,value)=>{this.transferMsg(key,value)}} info={this.state}></Agreement>\r\n <Button className=\"btn-submit\" type=\"primary\" size=\"large\" onClick={this.submitForm.bind(this)}>\r\n 提交{this.state.loading && <Spin />}\r\n </Button>\r\n </div>\r\n )\r\n }\r\n}","import { message } from 'antd'\r\n\r\nexport function getAntdFormVal (value, data, isEvent) {\r\n let val\r\n if (data && data.props) val = data.key // 下拉框\r\n else if (data) val = data // 日历插件\r\n else if (isEvent) val = value.target.type === 'checkbox' ? value.target.checked : value.target.value // 多选/普通文本框\r\n else val = value\r\n\r\n return val\r\n}\r\n\r\nexport function onChange (property, isEvent = false) {\r\n return function (value, data) {\r\n let val = getAntdFormVal(value, data, isEvent)\r\n\r\n this.props &&\r\n this.props.transferMsg &&\r\n this.props.transferMsg(property, val)\r\n }\r\n}\r\n\r\nexport function onComponentChange (mergeInfo, property, isEvent = false) {\r\n return function (value, data) {\r\n let val = getAntdFormVal(value, data, isEvent)\r\n\r\n let mInfo = this.props.info[mergeInfo]\r\n mInfo[property] = val\r\n\r\n this.props &&\r\n this.props.transferMsg &&\r\n this.props.transferMsg(mergeInfo, mInfo)\r\n }\r\n}\r\n\r\nexport function showSuccess (text) {\r\n message.success(text)\r\n}\r\n\r\nexport function showError (text) {\r\n message.error(text)\r\n}\r\n\r\nexport function showWarning (text) {\r\n message.warning(text)\r\n}\r\n\r\nexport function isFunction (arg) {\r\n return Object.prototype.toString.call(arg) === '[object Function]'\r\n}\r\n\r\nexport function isRegExp (arg) {\r\n return Object.prototype.toString.call(arg) === '[object RegExp]'\r\n}\r\n\r\nexport function getBase64(file, callback) {\r\n const reader = new FileReader();\r\n reader.addEventListener(\"load\", () => callback(reader.result));\r\n reader.readAsDataURL(file);\r\n}\r\n\r\n//base64转blod\r\nexport function dataURItoBlob (base64Data) {\r\n var byteString\r\n if (base64Data.split(',')[0].indexOf('base64') >= 0) { byteString = atob(base64Data.split(',')[1]) } else byteString = unescape(base64Data.split(',')[1])\r\n var mimeString = base64Data\r\n .split(',')[0]\r\n .split(':')[1]\r\n .split(';')[0]\r\n var ia = new Uint8Array(byteString.length)\r\n for (var i = 0; i < byteString.length; i++) {\r\n ia[i] = byteString.charCodeAt(i)\r\n }\r\n return new Blob([ia], {\r\n type: mimeString\r\n })\r\n}\r\n\r\n/**\r\n * 获取Url上指定参数\r\n * @param {String} name 参数名\r\n */\r\nexport function getUrlParam (name) {\r\n var reg = new RegExp('[?&]' + name + '=([^&#?]*)(&|#|$)')\r\n var r = window.location.href.match(reg)\r\n return r ? r[1] : null\r\n}\r\n\r\nexport function getCookie (name) {\r\n var arr; var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)')\r\n arr = document.cookie.match(reg)\r\n if (arr) { return unescape(arr[2]) } else { return null }\r\n}\r\n","import axios from 'axios'\r\nimport Qs from 'qs'\r\nimport store from '@/store'\r\nimport { showError } from '@/util'\r\n\r\nlet host = ''\r\nif (window.location.port === '3000') {\r\n host = '//localhost:1024/'\r\n}else if (window.location.host.match('test')) {\r\n host = '//test-api-hr.duowan.com'\r\n} else{\r\n host = '//api-hr.duowan.com'\r\n}\r\n\r\nlet ax = axios.create({\r\n baseURL: host,\r\n headers: { 'Content-Type': 'application/x-www-form-urlencoded' },\r\n transformRequest: [\r\n function (data, headers) {\r\n data = Qs.stringify(data)\r\n return data\r\n }\r\n ],\r\n transformResponse: [],\r\n withCredentials: true\r\n})\r\n\r\nax.host = host\r\n\r\nax.interceptors.request.use(\r\n config => {\r\n let param = config.method === 'post' ? config.data : config.params\r\n if (param && param.needAuth) {\r\n if (!(store.userId && store.token)) {\r\n showError('登录态失效,请重新登录')\r\n store.logout()\r\n return Promise.reject('请先登录')\r\n } else {\r\n store.userId && (param.userId = store.userId)\r\n param.token = store.token\r\n delete param.needAuth\r\n }\r\n }\r\n // 在发送请求之前做些什么\r\n return config\r\n },\r\n error => {\r\n // 对请求错误做些什么\r\n return Promise.reject(error)\r\n }\r\n)\r\n\r\n// 拦截器处理错误\r\nax.interceptors.response.use(\r\n response => {\r\n if (response.data.code === 0) {\r\n return Promise.resolve(response.data)\r\n } else if (response.data.code === -5) {\r\n showError(response.data.msg)\r\n store.logout()\r\n } else {\r\n return Promise.reject(new Error(response.data.msg))\r\n }\r\n },\r\n error => {\r\n return Promise.reject(error)\r\n }\r\n)\r\n\r\nexport default ax\r\n","import ax from '../http'\r\n\r\nexport default {\r\n getDepartmentList (params) {\r\n return ax.get('/department/list', {\r\n params\r\n })\r\n }\r\n}\r\n","import axios from 'axios'\r\nimport ax from '../http'\r\n\r\nexport default {\r\n getCode ({ phone }) {\r\n return ax.get('/login/getCode', {\r\n params: { phone }\r\n })\r\n },\r\n checkCode ({ phone, code }) {\r\n return ax.get('/login/checkCode', {\r\n params: { phone, code }\r\n })\r\n },\r\n // 管理员权限校验\r\n checkAdmin ({ nodeId, userId }) {\r\n return axios.post('//test.admin.duowan.com/open/checkRight2', {\r\n params: { nodeId, userId }\r\n })\r\n }\r\n}\r\n","import ax from '../http'\r\n\r\nexport default {\r\n find (params) {\r\n Object.assign(params, { needAuth: true })\r\n return ax.get('/user/find', {\r\n params\r\n })\r\n },\r\n preview (params) {\r\n return ax.get('/user/preview', {\r\n params\r\n })\r\n },\r\n create (params) {\r\n Object.assign(params, { needAuth: true })\r\n return ax.post('/user/create', params)\r\n }\r\n}\r\n","import axios from 'axios'\r\n\r\nlet host = ''\r\nif (window.location.port === '3000') {\r\n host = '//localhost:1024/'\r\n}else if (window.location.host.match('test')) {\r\n host = '//test-api-hr.duowan.com'\r\n} else{\r\n host = '//api-hr.duowan.com'\r\n}\r\n\r\nlet ax = axios.create({\r\n baseURL: host,\r\n headers: { 'Content-Type': 'multipart/form-data' },\r\n transformRequest: [],\r\n transformResponse: [],\r\n withCredentials: true\r\n})\r\n\r\nax.host = host\r\n\r\nax.interceptors.request.use(\r\n \r\n)\r\n\r\n// 拦截器处理错误\r\nax.interceptors.response.use(\r\n response => {\r\n return Promise.resolve(response.data)\r\n },\r\n error => {\r\n return Promise.reject(error)\r\n }\r\n)\r\n\r\nexport default ax\r\n","import axios from 'axios'\r\nimport axForm from '../httpForm'\r\n\r\nexport default {\r\n // 上传图片\r\n upLoadImg (params) {\r\n return axios.post('//video.duowan.com/jsapi/imgUpload', params, {\r\n headers: {\r\n 'Content-Type': 'multipart/form-data'\r\n }\r\n })\r\n },\r\n // 上传文件\r\n upLoadFile (params) {\r\n console.log(\"params\",params)\r\n return axios.post('https://ad.duowan.com/?r=test/otherUpload&hehe=1', params, {\r\n headers: {\r\n 'Content-Type': 'multipart/form-data'\r\n }\r\n })\r\n },\r\n // 上传简历-仅作文件解析\r\n upLoadResume (params) {\r\n return axForm.post('/upload/resume', params)\r\n }\r\n}\r\n","import base from './modules/base'\r\nimport login from './modules/login'\r\nimport user from './modules/user'\r\nimport upload from './modules/upload'\r\n\r\nexport default {\r\n base,\r\n login,\r\n user,\r\n upload\r\n}\r\n"],"sourceRoot":""}