|
|
@@ -0,0 +1,1464 @@
|
|
|
+<template>
|
|
|
+ <view>
|
|
|
+ <view class="pad_59">
|
|
|
+ <view class="lisbox">
|
|
|
+ <view class="lis">
|
|
|
+ <view class="titleLis">简历名称</view>
|
|
|
+ <input class="inputs" v-model="formTableInfos.resumeName" type="text" value="" placeholder="请输入简历名称" />
|
|
|
+ </view>
|
|
|
+ <view class="lis">
|
|
|
+ <view class="titleLis" style="margin-bottom: 24rpx;">
|
|
|
+ 基本信息
|
|
|
+ <u-icon style="margin-left: 36rpx;" name="arrow-right" color="#666" size="28" @click="jumpUserinfo"></u-icon>
|
|
|
+ </view>
|
|
|
+ <view class="color_b" style="display: flex;align-items: center;margin-bottom: 24rpx;">
|
|
|
+ <span>姓名:</span>
|
|
|
+ <input type="text" v-model="formTableInfos.realname" placeholder="请输入姓名" />
|
|
|
+ </view>
|
|
|
+ <!-- <view class="color_b" style="margin-bottom: 24rpx;">{{ userInfo.realname }}</view> -->
|
|
|
+ <view class="dis_fy" style="margin-bottom: 24rpx;">
|
|
|
+ <view class="le_h">{{ userInfo.sex === 0 ? '男' : '女' }}</view>
|
|
|
+ <view class="fgs"></view>
|
|
|
+ <view class="le_h">{{ getYears(userInfo.userBirth) }}岁</view>
|
|
|
+ <view class="fgs"></view>
|
|
|
+ <view class="le_h">{{ userInfo.houseCity }} - {{ userInfo.houseDistrict }}</view>
|
|
|
+ </view>
|
|
|
+ <!-- {{ userInfo.telphone }} -->
|
|
|
+ <view class="le_h" style="margin-bottom: 24rpx;display: flex;align-items: center;">
|
|
|
+ <span>手机号:</span>
|
|
|
+ <input type="text" v-model="formTableInfos.telphone" placeholder="请输入手机号" />
|
|
|
+ </view>
|
|
|
+ <view class="le_h" style="margin-bottom: 24rpx;display: flex;align-items: center;">
|
|
|
+ <span>学历:</span>
|
|
|
+ <!-- <input type="text" v-model="formTableInfos.eduLevel" placeholder="请选择学历" /> -->
|
|
|
+ <picker @change="bindPickerChangeLevel" :value="index_level" :range="dictObj['edu_level']">
|
|
|
+ <view class="picker">{{ index_level === null ? '请选择学历' : dictObj['edu_level'][index_level] }}</view>
|
|
|
+ </picker>
|
|
|
+ </view>
|
|
|
+ <view class="le_h" style="display: flex;align-items: center;">
|
|
|
+ <span>邮箱号:</span>
|
|
|
+ <input type="text" v-model="formTableInfos.email" placeholder="请输入邮箱号" />
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ <view class="lis">
|
|
|
+ <view class="titleLis">
|
|
|
+ 求职意向
|
|
|
+ <u-icon
|
|
|
+ style="margin-left: 27rpx;font-weight: bold;"
|
|
|
+ name="plus-circle"
|
|
|
+ :color="formTableInfos.job ? '#999999' : '#2A4174'"
|
|
|
+ size="36"
|
|
|
+ @click="formTableInfos.job ? '' : showqzyx(1)"
|
|
|
+ ></u-icon>
|
|
|
+ </view>
|
|
|
+ <view class="jslist" v-if="formTableInfos.job" @click="showqzyx(0)">
|
|
|
+ <view class="dis_fjusBtw">
|
|
|
+ <view class="color_b">
|
|
|
+ {{ formTableInfos.job }}
|
|
|
+ <span style="margin-left: 34rpx;">
|
|
|
+ {{ formTableInfos.wantIncomeStart }} ~ {{ formTableInfos.wantIncomeEnd }}元/{{ formTableInfos.wantIncomeType === 1 ? '月' : '年' }}
|
|
|
+ </span>
|
|
|
+ </view>
|
|
|
+ <u-icon style="margin-left: 36rpx;" name="arrow-right" color="#666" size="28"></u-icon>
|
|
|
+ </view>
|
|
|
+ <view class="dis_fy">
|
|
|
+ <view class="le_h">{{ formTableInfos.city }}-{{ formTableInfos.district }}</view>
|
|
|
+ <view class="fgs"></view>
|
|
|
+ <view class="le_h">{{ formTableInfos.jobType }}</view>
|
|
|
+ <view class="fgs"></view>
|
|
|
+ <view class="le_h">{{ formTableInfos.comeWorkTime }}</view>
|
|
|
+ <view class="fgs"></view>
|
|
|
+ <view class="le_h">{{ formTableInfos.startYear }}</view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ <view class="lis">
|
|
|
+ <view class="titleLis">
|
|
|
+ 工作经历
|
|
|
+ <u-icon style="margin-left: 27rpx;font-weight: bold;" name="plus-circle" color="#2A4174" size="36" @click="showwork(1)"></u-icon>
|
|
|
+ </view>
|
|
|
+ <view v-if="formTableInfos.workExperienceJson.length">
|
|
|
+ <view class="jslist" v-for="(item, index) in formTableInfos.workExperienceJson" :key="index">
|
|
|
+ <view class="dis_fjusBtw">
|
|
|
+ <view class="color_b">{{ item.company }}</view>
|
|
|
+ <u-icon style="margin-left: 36rpx;" name="arrow-right" color="#666" size="28" @click="showwork(0, item, index)"></u-icon>
|
|
|
+ </view>
|
|
|
+ <view class="dis_btn">
|
|
|
+ <view class="le_h">{{ item.job }}</view>
|
|
|
+ <view class="le_h" style="margin-right: 30rpx;">{{ item.startTime }} ~ {{ item.endTime }}</view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ <view class="lis">
|
|
|
+ <view class="titleLis">
|
|
|
+ 项目经历
|
|
|
+ <u-icon style="margin-left: 27rpx;font-weight: bold;" name="plus-circle" color="#2A4174" size="36" @click="showItem(1)"></u-icon>
|
|
|
+ </view>
|
|
|
+ <view v-if="formTableInfos.projectExperienceJson.length">
|
|
|
+ <view class="jslist" v-for="(item, index) in formTableInfos.projectExperienceJson" :key="index">
|
|
|
+ <view class="dis_fjusBtw">
|
|
|
+ <view class="color_b">{{ item.job }}</view>
|
|
|
+ <view class="">
|
|
|
+ <span class="le_h">{{ item.startTime }} ~ {{ item.endTime }}</span>
|
|
|
+ <u-icon name="arrow-right" color="#666" size="28" @click="showItem(0, item, index)"></u-icon>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ <view class="le_h">{{ item.projectDescription }}</view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ <view class="lis">
|
|
|
+ <view class="titleLis">
|
|
|
+ 教育经历
|
|
|
+ <u-icon style="margin-left: 27rpx;font-weight: bold;" name="plus-circle" color="#2A4174" size="36" @click="showEducation(1)"></u-icon>
|
|
|
+ </view>
|
|
|
+ <view v-if="formTableInfos.eduExperienceJson.length">
|
|
|
+ <view class="jslist" v-for="(item, index) in formTableInfos.eduExperienceJson" :key="index">
|
|
|
+ <view class="dis_fjusBtw">
|
|
|
+ <view class="color_b">{{ item.school }}</view>
|
|
|
+ <u-icon style="margin-left: 36rpx;" name="arrow-right" color="#666" size="28" @click="showEducation(0, item, index)"></u-icon>
|
|
|
+ </view>
|
|
|
+ <view class="dis_btn">
|
|
|
+ <view class="le_h">{{ item.edu }} {{ item.Professional }}</view>
|
|
|
+ <view class="le_h" style="margin-right: 30rpx;">{{ item.startTime }} ~ {{ item.endTime }}</view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ <view class="lis">
|
|
|
+ <view class="titleLis">
|
|
|
+ 证书
|
|
|
+ <u-icon style="margin-left: 27rpx;font-weight: bold;" name="plus-circle" color="#2A4174" size="36" @click="showCfcation(1)"></u-icon>
|
|
|
+ </view>
|
|
|
+ <view class="jslist">
|
|
|
+ <view class="le_h" style="margin-top: 34rpx;">建筑资历证书</view>
|
|
|
+ <view v-for="(item, index) in formTableInfos.certificateJson" :key="index">
|
|
|
+ <view class="dis_fjusBtw" style="margin: 15rpx;0rpx" v-if="item.cfType === '0'">
|
|
|
+ <view class="color_b">{{ item.categoryName }}</view>
|
|
|
+ <view class="">
|
|
|
+ <span class="color_b">{{ item.endTime }}</span>
|
|
|
+ <u-icon name="arrow-right" color="#666" size="28" @click="showCfcation(0, item, index)"></u-icon>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ <view class="le_h">非建筑资历证书</view>
|
|
|
+ <view v-for="(item, index) in formTableInfos.certificateJson" :key="index">
|
|
|
+ <view class="dis_fjusBtw" style="margin: 15rpx;0rpx" v-if="item.cfType === '1'">
|
|
|
+ <view class="color_b">{{ item.cfName }}</view>
|
|
|
+ <view class="">
|
|
|
+ <span class="color_b">{{ item.endTime }}</span>
|
|
|
+ <u-icon name="arrow-right" color="#666" size="28" @click="showCfcation(0, item, index)"></u-icon>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ <view class="lis">
|
|
|
+ <view class="titleLis">
|
|
|
+ 自我评价
|
|
|
+ <u-icon
|
|
|
+ style="margin-left: 27rpx;font-weight: bold;"
|
|
|
+ name="plus-circle"
|
|
|
+ :color="formTableInfos.selfEvaluation ? '#999999' : '#2A4174'"
|
|
|
+ size="36"
|
|
|
+ @click="formTableInfos.selfEvaluation ? '' : showMy(1)"
|
|
|
+ ></u-icon>
|
|
|
+ </view>
|
|
|
+ <view class="dis_sty" v-if="formTableInfos.selfEvaluation">
|
|
|
+ <view class="le_h srystr" style="margin-top: 15rpx;">{{ formTableInfos.selfEvaluation }}</view>
|
|
|
+ <u-icon name="arrow-right" color="#666" size="28" @click="showMy(0)"></u-icon>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ <view class="lis">
|
|
|
+ <view class="titleLis">
|
|
|
+ 视频介绍
|
|
|
+ <u-icon
|
|
|
+ style="margin-left: 27rpx;font-weight: bold;"
|
|
|
+ name="plus-circle"
|
|
|
+ :color="videoUrl === '' ? '#2A4174' : '#999999'"
|
|
|
+ size="36"
|
|
|
+ @click="videoUrl === '' ? videoLZ(1) : ''"
|
|
|
+ ></u-icon>
|
|
|
+ <!-- <u-icon style="margin-left: 27rpx;font-weight: bold;" name="plus-circle" color="#2A4174" size="36" @click="videoLZ"></u-icon> -->
|
|
|
+ </view>
|
|
|
+ <view class="vid_box" v-if="videoUrl !== ''">
|
|
|
+ <image style="width: 100%;height: 100%;" src="../../static/avatar1.png" mode="">
|
|
|
+ <view class="zzc"><image class="imgcen" src="../../static/play@3x.png" mode="" @click="playVideo"></image></view>
|
|
|
+ </image>
|
|
|
+ <image class="img_auto" src="@/static/del@3x.png" mode="" @click="clearVideo"></image>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ <view class="lis">
|
|
|
+ <view class="titleLis">
|
|
|
+ 附件简历
|
|
|
+ <u-icon
|
|
|
+ style="margin-left: 27rpx;font-weight: bold;"
|
|
|
+ name="plus-circle"
|
|
|
+ :color="attachUrl === '' ? '#2A4174' : '#999999'"
|
|
|
+ size="36"
|
|
|
+ @click="attachUrl === '' ? attachUrlLZ(1) : ''"
|
|
|
+ ></u-icon>
|
|
|
+ <!-- <u-icon style="margin-left: 27rpx;font-weight: bold;" name="plus-circle" color="#2A4174" size="36" @click="videoLZ"></u-icon> -->
|
|
|
+ </view>
|
|
|
+ <view class="pdf_box" v-if="attachUrl !== ''">
|
|
|
+ <image style="width: 100%;height: 100%;" src="../../static/pdf@3x.png" mode="" @click="openPdf"></image>
|
|
|
+ <image class="img_auto" src="@/static/del@3x.png" mode="" @click="clearAttachUrl"></image>
|
|
|
+ </view>
|
|
|
+ <view v-if="attachUrl !== ''">
|
|
|
+ {{attachName}}
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ <view class="btn_fot" @click="submitForms">提交</view>
|
|
|
+ </view>
|
|
|
+ <u-popup mode="bottom" v-model="qzYX" border-radius="14">
|
|
|
+ <view class="pad_pg" style="max-height: 95vh;">
|
|
|
+ <view class="hed">求职意向</view>
|
|
|
+ <u-form :model="jobIntentionForm" ref="uForm" label-position="top">
|
|
|
+ <u-form-item label="岗位" prop="job"><u-input v-model="jobIntentionForm.job" /></u-form-item>
|
|
|
+ <u-form-item label="薪资类型" prop="index_PriceType">
|
|
|
+ <picker @change="bindPickerChangePriceType" :value="jobIntentionForm.index_PriceType" :range="array_PriceType">
|
|
|
+ <view class="picker">{{ array_PriceType[jobIntentionForm.index_PriceType] }}</view>
|
|
|
+ </picker>
|
|
|
+ </u-form-item>
|
|
|
+ <u-form-item label="薪资范围(元)" prop="wantIncomeEnd">
|
|
|
+ <view class="dis_fy" style="justify-content: space-around;">
|
|
|
+ <u-input :clearable="false" input-align="center" v-model="jobIntentionForm.wantIncomeStart" />
|
|
|
+ ~
|
|
|
+ <u-input input-align="center" :clearable="false" v-model="jobIntentionForm.wantIncomeEnd" />
|
|
|
+ </view>
|
|
|
+ </u-form-item>
|
|
|
+ <u-form-item label="城市" prop="district">
|
|
|
+ <pick-regions :defaultRegion="defaultRegionCode" @getRegion="handleGetRegion">
|
|
|
+ <view class="picker">{{ jobIntentionForm.province }} {{ jobIntentionForm.city }} {{ jobIntentionForm.district }}</view>
|
|
|
+ </pick-regions>
|
|
|
+ </u-form-item>
|
|
|
+ <u-form-item label="工作类型" prop="index_JobType">
|
|
|
+ <picker @change="bindPickerChangeJobType" :value="jobIntentionForm.index_JobType" :range="array_JobType">
|
|
|
+ <view class="picker">{{ array_JobType[jobIntentionForm.index_JobType] }}</view>
|
|
|
+ </picker>
|
|
|
+ </u-form-item>
|
|
|
+ <u-form-item label="开始工作年限">
|
|
|
+ <picker mode="date" header-text="选择时间" fields="year" :value="jobIntentionForm.startYear" @change="bindPickerChangeArrivalYearstime">
|
|
|
+ <view class="picker">{{ jobIntentionForm.startYear }}</view>
|
|
|
+ </picker>
|
|
|
+ </u-form-item>
|
|
|
+ <u-form-item label="到岗时间" prop="index_Arrivaltime">
|
|
|
+ <picker @change="bindPickerChangeArrivaltime" :value="jobIntentionForm.index_Arrivaltime" :range="array_Arrivaltime">
|
|
|
+ <view class="picker">{{ array_Arrivaltime[jobIntentionForm.index_Arrivaltime] }}</view>
|
|
|
+ </picker>
|
|
|
+ </u-form-item>
|
|
|
+ </u-form>
|
|
|
+ <view class="btn_fot" @click="submitjobIntention">保存</view>
|
|
|
+ </view>
|
|
|
+ </u-popup>
|
|
|
+ <u-popup mode="bottom" v-model="qzWorkStatus" border-radius="14">
|
|
|
+ <view class="pad_pg">
|
|
|
+ <view class="hed">工作经历</view>
|
|
|
+ <u-form :model="workJLForm" ref="uForm" label-position="top">
|
|
|
+ <u-form-item label="公司" prop="company"><u-input v-model="workJLForm.company" /></u-form-item>
|
|
|
+ <u-form-item label="岗位" prop="job"><u-input v-model="workJLForm.job" /></u-form-item>
|
|
|
+ <u-form-item label="入职时间" prop="startTime" :label-width="auto">
|
|
|
+ <picker mode="date" header-text="选择时间" fields="month" :value="workJLForm.startTime" @change="bindDateChange1">
|
|
|
+ <view class="picker">{{ workJLForm.startTime }}</view>
|
|
|
+ </picker>
|
|
|
+ </u-form-item>
|
|
|
+ <u-form-item label="离职时间" prop="endTime" :label-width="auto">
|
|
|
+ <picker mode="date" header-text="选择时间" fields="month" :value="workJLForm.endTime" @change="bindDateChange2">
|
|
|
+ <view class="picker">{{ workJLForm.endTime }}</view>
|
|
|
+ </picker>
|
|
|
+ </u-form-item>
|
|
|
+ </u-form>
|
|
|
+ <view class="btn_fot" v-if="workStatus === 1" @click="submitWorking">保存</view>
|
|
|
+ <view v-if="workStatus === 0" class="btn_boxs">
|
|
|
+ <view class="leftDel" @click="dels">删除</view>
|
|
|
+ <view class="rightedit" @click="submitWorking">保存</view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ </u-popup>
|
|
|
+ <u-popup mode="bottom" v-model="qzeduStatus" border-radius="14">
|
|
|
+ <view class="pad_pg">
|
|
|
+ <view class="hed">教育经历</view>
|
|
|
+ <u-form :model="eduJLForm" ref="uForm" label-position="top">
|
|
|
+ <u-form-item label="学校" prop="company"><u-input v-model="eduJLForm.school" /></u-form-item>
|
|
|
+ <u-form-item label="学历" prop="job">
|
|
|
+ <picker @change="bindPickerChangeEduType" :value="eduJLForm.edu" :range="array_eduType">
|
|
|
+ <view class="picker">{{ array_eduType[eduJLForm.edu] }}</view>
|
|
|
+ </picker>
|
|
|
+ </u-form-item>
|
|
|
+ <u-form-item label="专业" prop="company"><u-input v-model="eduJLForm.Professional" /></u-form-item>
|
|
|
+ <u-form-item label="在校开始时间" prop="startTime" :label-width="auto">
|
|
|
+ <picker mode="date" header-text="选择时间" fields="month" :value="eduJLForm.startTime" @change="bindDateChangeEdu1">
|
|
|
+ <view class="picker">{{ eduJLForm.startTime }}</view>
|
|
|
+ </picker>
|
|
|
+ </u-form-item>
|
|
|
+ <u-form-item label="在校结束时间" prop="endTime" :label-width="auto">
|
|
|
+ <picker mode="date" header-text="选择时间" fields="month" :value="eduJLForm.endTime" @change="bindDateChangeEdu2">
|
|
|
+ <view class="picker">{{ eduJLForm.endTime }}</view>
|
|
|
+ </picker>
|
|
|
+ </u-form-item>
|
|
|
+ </u-form>
|
|
|
+ <view class="btn_fot" v-if="eduStatus === 1" @click="submiteduing">保存</view>
|
|
|
+ <view v-if="eduStatus === 0" class="btn_boxs">
|
|
|
+ <view class="leftDel" @click="delsedu">删除</view>
|
|
|
+ <view class="rightedit" @click="submiteduing">保存</view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ </u-popup>
|
|
|
+ <u-popup mode="bottom" v-model="qzCfStatus" border-radius="14">
|
|
|
+ <view class="pad_pg">
|
|
|
+ <view class="hed">证书</view>
|
|
|
+ <u-form :model="cfJLForm" ref="uForm" label-position="top">
|
|
|
+ <u-form-item label="证书类型">
|
|
|
+ <picker @change="bindPickerChangeCfType" :value="cfJLForm.cfType" :range="array_cfType">
|
|
|
+ <view class="picker">{{ array_cfType[cfJLForm.cfType] }}</view>
|
|
|
+ </picker>
|
|
|
+ </u-form-item>
|
|
|
+ <u-form-item label="证书名称">
|
|
|
+ <!-- <picker v-if="cfJLForm.cfType === 0" @change="bindPickerChangeCfName" :value="cfJLForm.cfName" :range="array_cfType">
|
|
|
+ <view class="picker">{{ array_cfType[cfJLForm.cfName] }}</view>
|
|
|
+ </picker>
|
|
|
+ <u-input v-else v-model="eduJLForm.cfNameF" /> -->
|
|
|
+ <view v-if="cfJLForm.cfType === '0'" class="" @click="openTrees">{{ cfJLForm.categoryId == null ? '请选择' : cfJLForm.categoryName }}</view>
|
|
|
+ <u-input v-if="cfJLForm.cfType === '1'" v-model="cfJLForm.cfName" />
|
|
|
+ <tki-tree
|
|
|
+ style="height: 800rpx;"
|
|
|
+ title="证书列表"
|
|
|
+ :foldAll="true"
|
|
|
+ ref="trees"
|
|
|
+ :range="range"
|
|
|
+ rangeKey="categoryName"
|
|
|
+ confirmColor="#4e8af7"
|
|
|
+ @confirm="getTreeActiveInfo"
|
|
|
+ />
|
|
|
+ </u-form-item>
|
|
|
+ <u-form-item label="证书到期时间" :label-width="auto">
|
|
|
+ <picker mode="date" header-text="选择时间" :value="cfJLForm.endTime" @change="bindDateChangeCf1">
|
|
|
+ <view class="picker">{{ cfJLForm.endTime }}</view>
|
|
|
+ </picker>
|
|
|
+ </u-form-item>
|
|
|
+ </u-form>
|
|
|
+ <view class="btn_fot" v-if="cfStatus === 1" @click="submitcfing">保存</view>
|
|
|
+ <view v-if="cfStatus === 0" class="btn_boxs">
|
|
|
+ <view class="leftDel" @click="delscf">删除</view>
|
|
|
+ <view class="rightedit" @click="submitcfing">保存</view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ </u-popup>
|
|
|
+ </view>
|
|
|
+ <u-popup mode="bottom" v-model="qzitemStatus" border-radius="14">
|
|
|
+ <scroll-view scroll-y="true" style="max-height: 98vh;">
|
|
|
+ <view class="pad_pg">
|
|
|
+ <view class="hed">项目经历</view>
|
|
|
+ <u-form :model="itemJLForm" ref="uForm" label-position="top">
|
|
|
+ <u-form-item label="岗位" prop="job"><u-input v-model="itemJLForm.job" /></u-form-item>
|
|
|
+ <u-form-item label="项目开始时间" prop="startTime" :label-width="auto">
|
|
|
+ <picker mode="date" header-text="选择时间" fields="month" :value="itemJLForm.startTime" @change="bindDateChangeItem1">
|
|
|
+ <view class="picker">{{ itemJLForm.startTime }}</view>
|
|
|
+ </picker>
|
|
|
+ </u-form-item>
|
|
|
+ <u-form-item label="项目结束时间" prop="endTime" :label-width="auto">
|
|
|
+ <picker mode="date" header-text="选择时间" fields="month" :value="itemJLForm.endTime" @change="bindDateChangeItem2">
|
|
|
+ <view class="picker">{{ itemJLForm.endTime }}</view>
|
|
|
+ </picker>
|
|
|
+ </u-form-item>
|
|
|
+ <u-form-item label="项目描述">
|
|
|
+ <u-input type="textarea" border :height="100" auto-height :maxlength="1000" v-model="itemJLForm.projectDescription" placeholder="请输入项目描述" />
|
|
|
+ </u-form-item>
|
|
|
+ </u-form>
|
|
|
+ <view class="btn_fot" v-if="itemStatus === 1" @click="submitItem">保存</view>
|
|
|
+ <view v-if="itemStatus === 0" class="btn_boxs">
|
|
|
+ <view class="leftDel" @click="delsitem">删除</view>
|
|
|
+ <view class="rightedit" @click="submitItem">保存</view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ </scroll-view>
|
|
|
+ </u-popup>
|
|
|
+ <u-popup mode="bottom" v-model="qzMyStatus" border-radius="14">
|
|
|
+ <scroll-view scroll-y="true" style="max-height: 98vh;">
|
|
|
+ <view class="pad_pg">
|
|
|
+ <view class="hed">自我介绍</view>
|
|
|
+ <u-input type="textarea" border :height="1000" auto-height :maxlength="1000" v-model="myInfos" placeholder="请输入自我介绍内容" />
|
|
|
+ <view class="btn_fot" @click="submitMy">保存</view>
|
|
|
+ </view>
|
|
|
+ </scroll-view>
|
|
|
+ </u-popup>
|
|
|
+ <u-popup v-model="showVideo" mode="center" border-radius="14" closeable><video :src="videoUrl"></video></u-popup>
|
|
|
+ </view>
|
|
|
+</template>
|
|
|
+
|
|
|
+<script>
|
|
|
+import tkiTree from '@/components/tki-tree/tki-tree.vue';
|
|
|
+import { mapGetters } from 'vuex';
|
|
|
+import * as baseUrls from '@/common/request.js';
|
|
|
+import * as fileUrls from '@/common/methodTool.js';
|
|
|
+export default {
|
|
|
+ components: { tkiTree },
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ range: [],
|
|
|
+ showVideo: false, //视频弹窗
|
|
|
+ qzYX: false, //求职意向弹窗状态
|
|
|
+ qzWorkStatus: false, //工作经历弹窗状态
|
|
|
+ qzitemStatus: false, //项目经历弹窗状态
|
|
|
+ qzeduStatus: false, //教育经历弹窗状态
|
|
|
+ qzMyStatus: false, //自我介绍弹窗状态
|
|
|
+ qzCfStatus: false, //证书弹窗状态
|
|
|
+ formTableInfos: {
|
|
|
+ workExperienceJson: [],
|
|
|
+ projectExperienceJson: [],
|
|
|
+ eduExperienceJson: [],
|
|
|
+ certificateJson: []
|
|
|
+ }, //表单数据
|
|
|
+ index_level: null, //学历等级
|
|
|
+ jobIntentionForm: {}, //求职意向表
|
|
|
+ videoUrl: '', //视频介绍临时路径
|
|
|
+ attachUrl: '', //附件简历临时路径
|
|
|
+ attachName: '', //附件简历名称
|
|
|
+ workJLForm: {}, //当前弹窗工作经历表
|
|
|
+ itemJLForm: {}, //当前弹窗项目经历表
|
|
|
+ eduJLForm: {}, //当前弹窗教育经历表
|
|
|
+ myInfos: '', //自我介绍内容
|
|
|
+ cfJLForm: {}, //当前弹窗证书表
|
|
|
+ workStatus: 0, //工作经历新增or修改判断
|
|
|
+ itemStatus: 0, //项目经历新增or修改判断
|
|
|
+ eduStatus: 0, //教育经历新增or修改判断
|
|
|
+ cfStatus: 0, //证书新增or修改判断
|
|
|
+ workId: 0, //当前选择工作经历index
|
|
|
+ itemId: 0, //当前选择项目经历index
|
|
|
+ eduId: 0, //当前选择教育经历index
|
|
|
+ cfId: 0, //当前选择证书index
|
|
|
+ array_PriceType: ['月薪', '年薪'],
|
|
|
+ array_JobType: ['全职', '兼职', '实习生'],
|
|
|
+ array_Arrivaltime: ['随时', '1周内', '1个月内', '3个月内', '待定'],
|
|
|
+ array_eduType: ['小学', '初中', '中专/高中', '专科', '本科', '硕士研究生', '博士研究生'],
|
|
|
+ array_cfType: ['建筑资历证书', '非建筑资历证书'],
|
|
|
+ rules: {
|
|
|
+ job: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: '请输入岗位名称',
|
|
|
+ // 可以单个或者同时写两个触发验证方式
|
|
|
+ trigger: ['change', 'blur']
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ index_PriceType: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: '请选择薪资类型',
|
|
|
+ // 可以单个或者同时写两个触发验证方式
|
|
|
+ trigger: ['change']
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ wantIncomeEnd: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: '请输入薪资范围',
|
|
|
+ // 可以单个或者同时写两个触发验证方式
|
|
|
+ trigger: ['change', 'blur']
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ district: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: '请选择城市',
|
|
|
+ // 可以单个或者同时写两个触发验证方式
|
|
|
+ trigger: ['change']
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ index_JobType: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: '请选择工作类型',
|
|
|
+ // 可以单个或者同时写两个触发验证方式
|
|
|
+ trigger: ['change']
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ index_Arrivaltime: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: '请选择到岗时间',
|
|
|
+ // 可以单个或者同时写两个触发验证方式
|
|
|
+ trigger: ['change']
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ userInfo: {},
|
|
|
+ userSchool: {},
|
|
|
+ id: null
|
|
|
+ };
|
|
|
+ },
|
|
|
+ onLoad(options) {
|
|
|
+ this.getUserInfo();
|
|
|
+ this.getUserSchool();
|
|
|
+ if (options.id !== undefined) {
|
|
|
+ this.id = options.id;
|
|
|
+ this.init(options.id);
|
|
|
+ }
|
|
|
+ },
|
|
|
+ // 必须要在onReady生命周期,因为onLoad生命周期组件可能尚未创建完毕
|
|
|
+ onReady() {
|
|
|
+ this.$refs.uForm.setRules(this.rules);
|
|
|
+ },
|
|
|
+ computed: { ...mapGetters(['dictObj']) },
|
|
|
+ mounted() {
|
|
|
+ this.getCateList();
|
|
|
+ console.log(this.dictObj,85)
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ init(v) {
|
|
|
+ var self = this;
|
|
|
+ this.$api.recruitresumeId(v).then(res => {
|
|
|
+ console.log(res);
|
|
|
+ if (res.data.code === 200) {
|
|
|
+ res.data.data.certificateJson = JSON.parse(res.data.data.certificateJson);
|
|
|
+ res.data.data.eduExperienceJson = JSON.parse(res.data.data.eduExperienceJson);
|
|
|
+ res.data.data.projectExperienceJson = JSON.parse(res.data.data.projectExperienceJson);
|
|
|
+ res.data.data.workExperienceJson = JSON.parse(res.data.data.workExperienceJson);
|
|
|
+ res.data.data.userBirth = self.getYears(res.data.data.userBirth.slice(0, res.data.data.userBirth.indexOf('T')));
|
|
|
+ if(res.data.data.eduLevel){
|
|
|
+ self.index_level = self.dictObj['edu_level'].indexOf(res.data.data.eduLevel)
|
|
|
+ }
|
|
|
+ if (res.data.data.attachUrl) {
|
|
|
+ self.attachUrl = fileUrls.BASE_IMG_URL + res.data.data.attachUrl;
|
|
|
+ self.attachName = res.data.data.attachName
|
|
|
+ }
|
|
|
+ if (res.data.data.introduceVideoUrl) {
|
|
|
+ self.videoUrl = fileUrls.BASE_IMG_URL + res.data.data.introduceVideoUrl;
|
|
|
+ }
|
|
|
+ this.formTableInfos = res.data.data;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ getUserInfo() {
|
|
|
+ this.$api.getInfo().then(res => {
|
|
|
+ this.userInfo = res.data.data;
|
|
|
+ });
|
|
|
+ },
|
|
|
+ getUserSchool() {
|
|
|
+ this.$api.getSchoolInfo().then(res => {
|
|
|
+ this.userSchool = res.data.data;
|
|
|
+ });
|
|
|
+ },
|
|
|
+ showwork(v, item, index) {
|
|
|
+ this.workStatus = v;
|
|
|
+ if (v === 1) {
|
|
|
+ (this.workJLForm = {
|
|
|
+ startTime: '2021-09',
|
|
|
+ endTime: '2021-09'
|
|
|
+ }),
|
|
|
+ (this.qzWorkStatus = true);
|
|
|
+ }
|
|
|
+ if (v === 0) {
|
|
|
+ this.workId = index;
|
|
|
+ this.workJLForm = item;
|
|
|
+ this.qzWorkStatus = true;
|
|
|
+ }
|
|
|
+ },
|
|
|
+ showEducation(v, item, index) {
|
|
|
+ this.eduStatus = v;
|
|
|
+ if (v === 1) {
|
|
|
+ this.eduJLForm = {
|
|
|
+ edu: 0,
|
|
|
+ startTime: '2021-09',
|
|
|
+ endTime: '2021-09'
|
|
|
+ };
|
|
|
+ this.qzeduStatus = true;
|
|
|
+ }
|
|
|
+ if (v === 0) {
|
|
|
+ this.eduId = index;
|
|
|
+ this.eduJLForm = JSON.parse(JSON.stringify(item));
|
|
|
+ this.eduJLForm.edu = this.array_eduType.indexOf(this.eduJLForm.edu);
|
|
|
+ this.qzeduStatus = true;
|
|
|
+ }
|
|
|
+ },
|
|
|
+ showCfcation(v, item, index) {
|
|
|
+ this.cfStatus = v;
|
|
|
+ if (v === 1) {
|
|
|
+ this.cfJLForm = {
|
|
|
+ cfType: '0',
|
|
|
+ cfName: '',
|
|
|
+ categoryId: null,
|
|
|
+ categoryName: '',
|
|
|
+ endTime: '2021-09-01'
|
|
|
+ };
|
|
|
+ this.qzCfStatus = true;
|
|
|
+ }
|
|
|
+ if (v === 0) {
|
|
|
+ this.cfId = index;
|
|
|
+ this.cfJLForm = JSON.parse(JSON.stringify(item));
|
|
|
+ this.qzCfStatus = true;
|
|
|
+ }
|
|
|
+ },
|
|
|
+ openTrees() {
|
|
|
+ this.$refs.trees._show();
|
|
|
+ },
|
|
|
+ getTreeActiveInfo(v) {
|
|
|
+ this.cfJLForm.categoryId = v[0].categoryId;
|
|
|
+ this.cfJLForm.categoryName = v[0].categoryName;
|
|
|
+ },
|
|
|
+ showItem(v, item, index) {
|
|
|
+ this.itemStatus = v;
|
|
|
+ if (v === 1) {
|
|
|
+ (this.itemJLForm = {
|
|
|
+ startTime: '2021-09',
|
|
|
+ endTime: '2021-09'
|
|
|
+ }),
|
|
|
+ (this.qzitemStatus = true);
|
|
|
+ }
|
|
|
+ if (v === 0) {
|
|
|
+ this.itemId = index;
|
|
|
+ this.itemJLForm = item;
|
|
|
+ this.qzitemStatus = true;
|
|
|
+ }
|
|
|
+ },
|
|
|
+ showMy(v) {
|
|
|
+ var self = this;
|
|
|
+ if (v === 1) {
|
|
|
+ this.myInfos = '';
|
|
|
+ this.qzMyStatus = true;
|
|
|
+ } else {
|
|
|
+ this.myInfos = this.formTableInfos.selfEvaluation;
|
|
|
+ this.qzMyStatus = true;
|
|
|
+ }
|
|
|
+ },
|
|
|
+ showqzyx(v) {
|
|
|
+ var self = this;
|
|
|
+ if (v === 1) {
|
|
|
+ this.jobIntentionForm = {
|
|
|
+ job: '',
|
|
|
+ jobType: '',
|
|
|
+ province: '广东省',
|
|
|
+ city: '广州市',
|
|
|
+ district: '天河区',
|
|
|
+ index_JobType: 0,
|
|
|
+ index_Arrivaltime: 0,
|
|
|
+ index_PriceType: 0,
|
|
|
+ startYear: 2021
|
|
|
+ };
|
|
|
+ this.qzYX = true;
|
|
|
+ } else {
|
|
|
+ this.jobIntentionForm = {
|
|
|
+ startYear: self.formTableInfos.startYear,
|
|
|
+ job: self.formTableInfos.job,
|
|
|
+ jobType: self.formTableInfos.jobType,
|
|
|
+ province: self.formTableInfos.province,
|
|
|
+ city: self.formTableInfos.city,
|
|
|
+ district: self.formTableInfos.district,
|
|
|
+ wantIncomeStart: self.formTableInfos.wantIncomeStart,
|
|
|
+ wantIncomeEnd: self.formTableInfos.wantIncomeEnd,
|
|
|
+ index_JobType: self.array_JobType.indexOf(self.formTableInfos.jobType),
|
|
|
+ index_Arrivaltime: self.array_Arrivaltime.indexOf(self.formTableInfos.comeWorkTime),
|
|
|
+ index_PriceType: self.formTableInfos.wantIncomeType === 1 ? 0 : 1
|
|
|
+ };
|
|
|
+ this.qzYX = true;
|
|
|
+ }
|
|
|
+ },
|
|
|
+ submit() {
|
|
|
+ this.$refs.uForm.validate(valid => {
|
|
|
+ if (valid) {
|
|
|
+ console.log('验证通过');
|
|
|
+ } else {
|
|
|
+ console.log('验证失败');
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ bindPickerChangeJobType(e) {
|
|
|
+ this.jobIntentionForm.index_JobType = e.detail.value;
|
|
|
+ },
|
|
|
+ bindPickerChangeArrivaltime(e) {
|
|
|
+ this.jobIntentionForm.index_Arrivaltime = e.detail.value;
|
|
|
+ },
|
|
|
+ bindPickerChangeArrivalYearstime(e) {
|
|
|
+ this.jobIntentionForm.startYear = e.detail.value;
|
|
|
+ },
|
|
|
+ bindPickerChangePriceType(e) {
|
|
|
+ this.jobIntentionForm.index_PriceType = e.detail.value;
|
|
|
+ },
|
|
|
+ bindPickerChangeEduType(e) {
|
|
|
+ this.eduJLForm.edu = e.detail.value;
|
|
|
+ },
|
|
|
+ bindPickerChangeCfType(e) {
|
|
|
+ this.cfJLForm.cfType = e.detail.value;
|
|
|
+ },
|
|
|
+ bindPickerChangeLevel(e) {
|
|
|
+ this.index_level = e.detail.value;
|
|
|
+ },
|
|
|
+ handleGetRegion(region) {
|
|
|
+ this.jobIntentionForm.province = region[0].name;
|
|
|
+ this.jobIntentionForm.city = region[1].name;
|
|
|
+ this.jobIntentionForm.district = region[2].name;
|
|
|
+ },
|
|
|
+ //保存求职意向
|
|
|
+ submitjobIntention() {
|
|
|
+ var testPrice = /((^[1-9]\d*)|^0)(\.\d{0,2}){0,1}$/
|
|
|
+ if(!this.jobIntentionForm.job){
|
|
|
+ uni.showToast({
|
|
|
+ title:'请输入求职岗位',
|
|
|
+ icon: 'none',
|
|
|
+ duration:1500
|
|
|
+ })
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if(!this.jobIntentionForm.wantIncomeStart){
|
|
|
+ uni.showToast({
|
|
|
+ title:'请输入开始薪资范围',
|
|
|
+ icon: 'none',
|
|
|
+ duration:1500
|
|
|
+ })
|
|
|
+ return
|
|
|
+ }else{
|
|
|
+ if(!testPrice.test(this.jobIntentionForm.wantIncomeStart)){
|
|
|
+ uni.showToast({
|
|
|
+ title:'请规范输入薪资起点',
|
|
|
+ icon: 'none',
|
|
|
+ duration:1500
|
|
|
+ })
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(!this.jobIntentionForm.wantIncomeEnd){
|
|
|
+ uni.showToast({
|
|
|
+ title:'请输入结束薪资范围',
|
|
|
+ icon: 'none',
|
|
|
+ duration:1500
|
|
|
+ })
|
|
|
+ return
|
|
|
+ }else{
|
|
|
+ if(!testPrice.test(this.jobIntentionForm.wantIncomeEnd)){
|
|
|
+ uni.showToast({
|
|
|
+ title:'请规范输入薪资结点',
|
|
|
+ icon: 'none',
|
|
|
+ duration:1500
|
|
|
+ })
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(this.jobIntentionForm.wantIncomeEnd < this.jobIntentionForm.wantIncomeStart){
|
|
|
+
|
|
|
+ uni.showToast({
|
|
|
+ title:'请规范输入薪资范围',
|
|
|
+ icon: 'none',
|
|
|
+ duration:1500
|
|
|
+ })
|
|
|
+ return
|
|
|
+ }
|
|
|
+ this.formTableInfos.job = this.jobIntentionForm.job;
|
|
|
+ this.formTableInfos.wantIncomeType = this.jobIntentionForm.index_PriceType === 0 ? 1 : 2;
|
|
|
+ this.formTableInfos.wantIncomeStart = this.jobIntentionForm.wantIncomeStart;
|
|
|
+ this.formTableInfos.wantIncomeEnd = this.jobIntentionForm.wantIncomeEnd;
|
|
|
+ this.formTableInfos.province = this.jobIntentionForm.province;
|
|
|
+ this.formTableInfos.city = this.jobIntentionForm.city;
|
|
|
+ this.formTableInfos.district = this.jobIntentionForm.district;
|
|
|
+ this.formTableInfos.jobType = this.array_JobType[this.jobIntentionForm.index_JobType];
|
|
|
+ this.formTableInfos.comeWorkTime = this.array_Arrivaltime[this.jobIntentionForm.index_Arrivaltime];
|
|
|
+ this.formTableInfos.startYear = this.jobIntentionForm.startYear;
|
|
|
+ console.log(this.formTableInfos.wantIncomeType)
|
|
|
+ this.qzYX = false;
|
|
|
+ },
|
|
|
+ //保存工作经历
|
|
|
+ submitWorking() {
|
|
|
+ var self = this;
|
|
|
+ if(!this.workJLForm.company){
|
|
|
+ uni.showToast({
|
|
|
+ title:'请输入公司',
|
|
|
+ icon: 'none',
|
|
|
+ duration:1500
|
|
|
+ })
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if(!this.workJLForm.job){
|
|
|
+ uni.showToast({
|
|
|
+ title:'请输入岗位',
|
|
|
+ icon: 'none',
|
|
|
+ duration:1500
|
|
|
+ })
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if (this.workStatus === 0) {
|
|
|
+ this.formTableInfos.workExperienceJson.forEach((item, index) => {
|
|
|
+ if (index === self.workId) {
|
|
|
+ self.$set(self.formTableInfos.workExperienceJson, index, self.workJLForm);
|
|
|
+ self.qzWorkStatus = false;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ if (this.workStatus === 1) {
|
|
|
+ this.formTableInfos.workExperienceJson.push(this.workJLForm);
|
|
|
+ this.qzWorkStatus = false;
|
|
|
+ }
|
|
|
+ },
|
|
|
+ //保存教育
|
|
|
+ submiteduing() {
|
|
|
+ var self = this;
|
|
|
+ if(!this.eduJLForm.school){
|
|
|
+ uni.showToast({
|
|
|
+ title:'请输入学校',
|
|
|
+ icon: 'none',
|
|
|
+ duration:1500
|
|
|
+ })
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if(!this.eduJLForm.Professional){
|
|
|
+ uni.showToast({
|
|
|
+ title:'请输入专业',
|
|
|
+ icon: 'none',
|
|
|
+ duration:1500
|
|
|
+ })
|
|
|
+ return
|
|
|
+ }
|
|
|
+ this.eduJLForm.edu = this.array_eduType[Number(this.eduJLForm.edu)];
|
|
|
+ if (this.eduStatus === 0) {
|
|
|
+ this.formTableInfos.eduExperienceJson.forEach((item, index) => {
|
|
|
+ if (index === self.eduId) {
|
|
|
+ self.$set(self.formTableInfos.eduExperienceJson, index, self.eduJLForm);
|
|
|
+ self.qzeduStatus = false;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ if (this.eduStatus === 1) {
|
|
|
+ this.formTableInfos.eduExperienceJson.push(this.eduJLForm);
|
|
|
+ this.qzeduStatus = false;
|
|
|
+ }
|
|
|
+ },
|
|
|
+ //保存证书
|
|
|
+ submitcfing() {
|
|
|
+ var self = this;
|
|
|
+ if(this.cfJLForm.cfType == '0'){
|
|
|
+ if(!this.cfJLForm.categoryId === null){
|
|
|
+ uni.showToast({
|
|
|
+ title:'请选择证书名称',
|
|
|
+ icon: 'none',
|
|
|
+ duration:1500
|
|
|
+ })
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(this.cfJLForm.cfType == '1'){
|
|
|
+ if(!this.cfJLForm.cfName){
|
|
|
+ uni.showToast({
|
|
|
+ title:'请输入证书名称',
|
|
|
+ icon: 'none',
|
|
|
+ duration:1500
|
|
|
+ })
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // this.eduJLForm.edu = this.array_eduType[Number(this.eduJLForm.edu)];
|
|
|
+ if (this.cfStatus === 0) {
|
|
|
+ this.formTableInfos.certificateJson.forEach((item, index) => {
|
|
|
+ if (index === self.cfId) {
|
|
|
+ self.$set(self.formTableInfos.certificateJson, index, self.cfJLForm);
|
|
|
+ self.qzCfStatus = false;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ if (this.cfStatus === 1) {
|
|
|
+ this.formTableInfos.certificateJson.push(this.cfJLForm);
|
|
|
+ this.qzCfStatus = false;
|
|
|
+ }
|
|
|
+ },
|
|
|
+ //保存项目
|
|
|
+ submitItem() {
|
|
|
+ var self = this;
|
|
|
+ if(!this.itemJLForm.job){
|
|
|
+ uni.showToast({
|
|
|
+ title:'请输入岗位',
|
|
|
+ icon: 'none',
|
|
|
+ duration:1500
|
|
|
+ })
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if(!this.itemJLForm.projectDescription){
|
|
|
+ uni.showToast({
|
|
|
+ title:'请输入项目描述',
|
|
|
+ icon: 'none',
|
|
|
+ duration:1500
|
|
|
+ })
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if (this.itemStatus === 0) {
|
|
|
+ this.formTableInfos.projectExperienceJson.forEach((item, index) => {
|
|
|
+ if (index === self.itemId) {
|
|
|
+ self.$set(self.formTableInfos.projectExperienceJson, index, self.itemJLForm);
|
|
|
+ self.qzitemStatus = false;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ if (this.itemStatus === 1) {
|
|
|
+ this.formTableInfos.projectExperienceJson.push(this.itemJLForm);
|
|
|
+ this.qzitemStatus = false;
|
|
|
+ }
|
|
|
+ },
|
|
|
+ //保存自我评价
|
|
|
+ submitMy() {
|
|
|
+ if(!this.myInfos){
|
|
|
+ uni.showToast({
|
|
|
+ title:'请输入自我评价',
|
|
|
+ icon: 'none',
|
|
|
+ duration:1500
|
|
|
+ })
|
|
|
+ return
|
|
|
+ }
|
|
|
+ this.formTableInfos.selfEvaluation = this.myInfos;
|
|
|
+ this.qzMyStatus = false;
|
|
|
+ },
|
|
|
+ async submitForms() {
|
|
|
+ var self = this;
|
|
|
+ if(!this.formTableInfos.resumeName){
|
|
|
+ uni.showToast({
|
|
|
+ title:'请输入简历名称',
|
|
|
+ icon: 'none',
|
|
|
+ duration:1500
|
|
|
+ })
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if(!this.formTableInfos.realname){
|
|
|
+ uni.showToast({
|
|
|
+ title:'请输入姓名',
|
|
|
+ icon: 'none',
|
|
|
+ duration:1500
|
|
|
+ })
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if(!this.formTableInfos.telphone){
|
|
|
+ uni.showToast({
|
|
|
+ title:'请输入手机号',
|
|
|
+ icon: 'none',
|
|
|
+ duration:1500
|
|
|
+ })
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if(this.index_level === null){
|
|
|
+ uni.showToast({
|
|
|
+ title:'请选择学历',
|
|
|
+ icon: 'none',
|
|
|
+ duration:1500
|
|
|
+ })
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if(!this.formTableInfos.email){
|
|
|
+ uni.showToast({
|
|
|
+ title:'请输入邮箱号',
|
|
|
+ icon: 'none',
|
|
|
+ duration:1500
|
|
|
+ })
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if(!this.formTableInfos.job){
|
|
|
+ uni.showToast({
|
|
|
+ title:'请增加求职意向',
|
|
|
+ icon: 'none',
|
|
|
+ duration:1500
|
|
|
+ })
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if(!this.formTableInfos.selfEvaluation){
|
|
|
+ uni.showToast({
|
|
|
+ title:'请输入自我评价',
|
|
|
+ icon: 'none',
|
|
|
+ duration:1500
|
|
|
+ })
|
|
|
+ return
|
|
|
+ }
|
|
|
+ uni.showLoading({
|
|
|
+ title: '提交中'
|
|
|
+ });
|
|
|
+ var data = JSON.parse(JSON.stringify(this.formTableInfos));
|
|
|
+ if(self.videoUrl){
|
|
|
+ const waitUpload1 = await self.uploadFile(self.videoUrl, 6, '视频');
|
|
|
+ if(waitUpload1 !== undefined){
|
|
|
+ data.introduceVideoUrl = waitUpload1;}
|
|
|
+
|
|
|
+ }else{
|
|
|
+ data.introduceVideoUrl = null
|
|
|
+ }
|
|
|
+ if(self.attachUrl){
|
|
|
+ const waitUpload2 = await self.uploadFile(self.attachUrl, 6, '附件');
|
|
|
+ if(waitUpload2 !== undefined){
|
|
|
+ data.attachUrl = waitUpload2;
|
|
|
+ data.attachName = self.attachName;}
|
|
|
+ }else{
|
|
|
+ data.attachUrl = null;
|
|
|
+ data.attachName = null;
|
|
|
+ }
|
|
|
+ data.sex = self.userInfo.sex === 0 ? 1 : self.userInfo.sex === 1 ? 2 : null;
|
|
|
+ data.userBirth = self.userInfo.userBirth;
|
|
|
+ data.eduLevel = self.dictObj['edu_level'][self.index_level];
|
|
|
+ data.status = 1;
|
|
|
+ data.certificateJson = JSON.stringify(data.certificateJson);
|
|
|
+ data.eduExperienceJson = JSON.stringify(data.eduExperienceJson);
|
|
|
+ data.projectExperienceJson = JSON.stringify(data.projectExperienceJson);
|
|
|
+ data.workExperienceJson = JSON.stringify(data.workExperienceJson);
|
|
|
+ console.log(data);
|
|
|
+ if (this.id === null) {
|
|
|
+ const awaitsMys = await this.$api.addrecruitresume(data);
|
|
|
+ uni.hideLoading();
|
|
|
+ if (awaitsMys.data.code === 200) {
|
|
|
+ uni.showToast({
|
|
|
+ title: '提交成功',
|
|
|
+ icon: 'success',
|
|
|
+ duration: 1000,
|
|
|
+ success: function() {
|
|
|
+ setTimeout(() => {
|
|
|
+ uni.navigateBack({
|
|
|
+ delta: 1
|
|
|
+ });
|
|
|
+ }, 1000);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ uni.showToast({
|
|
|
+ title: '提交失败',
|
|
|
+ icon: 'error',
|
|
|
+ duration: 1000
|
|
|
+ });
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ data.resumeId = this.id;
|
|
|
+ const awaitsMys = await this.$api.editrecruitresume(data);
|
|
|
+ uni.hideLoading();
|
|
|
+ if (awaitsMys.data.code === 200) {
|
|
|
+ uni.showToast({
|
|
|
+ title: '修改成功',
|
|
|
+ icon: 'success',
|
|
|
+ duration: 1000,
|
|
|
+ success: function() {
|
|
|
+ setTimeout(() => {
|
|
|
+ uni.navigateBack({
|
|
|
+ delta: 1
|
|
|
+ });
|
|
|
+ }, 1000);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ uni.showToast({
|
|
|
+ title: '修改失败',
|
|
|
+ icon: 'error',
|
|
|
+ duration: 1000
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ dels() {
|
|
|
+ this.formTableInfos.workExperienceJson.splice(this.workId, 1);
|
|
|
+ this.qzWorkStatus = false;
|
|
|
+ },
|
|
|
+ delsedu() {
|
|
|
+ this.formTableInfos.eduExperienceJson.splice(this.eduId, 1);
|
|
|
+ this.qzeduStatus = false;
|
|
|
+ },
|
|
|
+ delsitem() {
|
|
|
+ this.formTableInfos.projectExperienceJson.splice(this.itemId, 1);
|
|
|
+ this.qzitemStatus = false;
|
|
|
+ },
|
|
|
+ delscf() {
|
|
|
+ this.formTableInfos.certificateJson.splice(this.cfId, 1);
|
|
|
+ this.qzCfStatus = false;
|
|
|
+ },
|
|
|
+ bindDateChange1(e) {
|
|
|
+ this.workJLForm.startTime = e.detail.value;
|
|
|
+ },
|
|
|
+ bindDateChange2(e) {
|
|
|
+ this.workJLForm.endTime = e.detail.value;
|
|
|
+ },
|
|
|
+ bindDateChangeItem1(e) {
|
|
|
+ this.itemJLForm.startTime = e.detail.value;
|
|
|
+ },
|
|
|
+ bindDateChangeItem2(e) {
|
|
|
+ this.itemJLForm.endTime = e.detail.value;
|
|
|
+ },
|
|
|
+ bindDateChangeEdu1(e) {
|
|
|
+ this.eduJLForm.startTime = e.detail.value;
|
|
|
+ },
|
|
|
+ bindDateChangeEdu2(e) {
|
|
|
+ this.eduJLForm.endTime = e.detail.value;
|
|
|
+ },
|
|
|
+ bindDateChangeCf1(e) {
|
|
|
+ this.cfJLForm.endTime = e.detail.value;
|
|
|
+ },
|
|
|
+ videoLZ() {
|
|
|
+ var self = this;
|
|
|
+ uni.chooseVideo({
|
|
|
+ count: 1,
|
|
|
+ camera: 'front',
|
|
|
+ sourceType: ['camera', 'album'],
|
|
|
+ success: function(res) {
|
|
|
+ self.videoUrl = res.tempFilePath;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ attachUrlLZ() {
|
|
|
+ var self = this;
|
|
|
+ wx.chooseMessageFile({
|
|
|
+ count: 1,
|
|
|
+ success: function(res) {
|
|
|
+ if (res.errMsg == 'chooseMessageFile:ok') {
|
|
|
+ self.attachUrl = res.tempFiles[0].path;
|
|
|
+ self.attachName = res.tempFiles[0].name;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ playVideo() {
|
|
|
+ var self = this;
|
|
|
+ this.showVideo = true;
|
|
|
+ },
|
|
|
+ openPdf() {
|
|
|
+ wx.downloadFile({
|
|
|
+ url: this.attachUrl,
|
|
|
+ success: function(res) {
|
|
|
+ console.log(res, 9);
|
|
|
+ wx.openDocument({
|
|
|
+ filePath: res.tempFilePath,
|
|
|
+ success: function(result) {},
|
|
|
+ fail: function(errsult) {
|
|
|
+ uni.showToast({
|
|
|
+ title: '文件打开失败',
|
|
|
+ icon: 'none'
|
|
|
+ });
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ fail: function(err) {
|
|
|
+ uni.showToast({
|
|
|
+ title: '文件下载失败',
|
|
|
+ icon: 'none'
|
|
|
+ });
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ clearVideo() {
|
|
|
+ var self = this;
|
|
|
+ uni.showModal({
|
|
|
+ title: '提示',
|
|
|
+ content: '是否移除视频',
|
|
|
+ success: function(res) {
|
|
|
+ if (res.confirm) {
|
|
|
+ self.videoUrl = '';
|
|
|
+ uni.showToast({
|
|
|
+ title: '移除成功',
|
|
|
+ icon: 'none'
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ clearAttachUrl() {
|
|
|
+ var self = this;
|
|
|
+ uni.showModal({
|
|
|
+ title: '提示',
|
|
|
+ content: '是否移除附件简历',
|
|
|
+ success: function(res) {
|
|
|
+ if (res.confirm) {
|
|
|
+ self.attachUrl = '';
|
|
|
+ self.attachName = '';
|
|
|
+ uni.showToast({
|
|
|
+ title: '移除成功',
|
|
|
+ icon: 'none'
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ uploadFile(options, int, names) {
|
|
|
+ return new Promise((resolve, reject) => {
|
|
|
+ var self = this;
|
|
|
+ var data = {
|
|
|
+ file: options,
|
|
|
+ imageStatus: int
|
|
|
+ };
|
|
|
+ uni.uploadFile({
|
|
|
+ url: baseUrls.BASE_URL + '/aliyun/oss/upload', //仅为示例,非真实的接口地址
|
|
|
+ filePath: options,
|
|
|
+ header: {
|
|
|
+ AuthorizationToken: 'WX ' + uni.getStorageSync('token'),
|
|
|
+ TenantId: baseUrls.tenantId
|
|
|
+ },
|
|
|
+ formData: {
|
|
|
+ imageStatus: int
|
|
|
+ },
|
|
|
+ name: 'file',
|
|
|
+ success: res => {
|
|
|
+ var asary = JSON.parse(res.data);
|
|
|
+ if (asary.code === 200) {
|
|
|
+ resolve(asary.data);
|
|
|
+ } else {
|
|
|
+ uni.showToast({
|
|
|
+ itle: names + '上传失败',
|
|
|
+ icon: 'none'
|
|
|
+ });
|
|
|
+ resolve();
|
|
|
+ }
|
|
|
+ },
|
|
|
+ fail: error => {
|
|
|
+ uni.showToast({
|
|
|
+ title: names + '上传报错',
|
|
|
+ icon: 'none'
|
|
|
+ });
|
|
|
+ resolve();
|
|
|
+ }
|
|
|
+ });
|
|
|
+ });
|
|
|
+ },
|
|
|
+ getCateList() {
|
|
|
+ var self = this;
|
|
|
+ this.$api.coursecategorylist().then(res => {
|
|
|
+ if (res.data.code === 200) {
|
|
|
+ self.arrayChangeType(res.data.rows);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ // 接口数据转换级联类型
|
|
|
+ arrayChangeType(options) {
|
|
|
+ let result = [];
|
|
|
+ if (!Array.isArray(options)) {
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+ options.forEach(item => {
|
|
|
+ delete item.children;
|
|
|
+ });
|
|
|
+ let map = {};
|
|
|
+ options.forEach(item => {
|
|
|
+ map[item.categoryId] = item;
|
|
|
+ });
|
|
|
+ options.forEach(item => {
|
|
|
+ let parent = map[item.pid];
|
|
|
+ if (parent) {
|
|
|
+ (parent.children || (parent.children = [])).push(item);
|
|
|
+ } else {
|
|
|
+ result.push(item);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ result = result.sort(this.sortBy('sort', true));
|
|
|
+ result.forEach((item, index) => {
|
|
|
+ if (item.children) {
|
|
|
+ item.children.sort(this.sortBy('sort', true));
|
|
|
+ }
|
|
|
+ });
|
|
|
+ this.range = result;
|
|
|
+ },
|
|
|
+ sortBy(attr, rev) {
|
|
|
+ //第二个参数没有传递 默认升序排列
|
|
|
+ if (rev == undefined) {
|
|
|
+ rev = 1;
|
|
|
+ } else {
|
|
|
+ rev = rev ? 1 : -1;
|
|
|
+ }
|
|
|
+
|
|
|
+ return function(a, b) {
|
|
|
+ a = a[attr];
|
|
|
+ b = b[attr];
|
|
|
+ if (a < b) {
|
|
|
+ return rev * -1;
|
|
|
+ }
|
|
|
+ if (a > b) {
|
|
|
+ return rev * 1;
|
|
|
+ }
|
|
|
+ return 0;
|
|
|
+ };
|
|
|
+ },
|
|
|
+ jumpUserinfo() {
|
|
|
+ this.$navTo.togo('/pages2/wd/info', {});
|
|
|
+ },
|
|
|
+ getYears(strBirthday) {
|
|
|
+ if (strBirthday === undefined) {
|
|
|
+ return '-';
|
|
|
+ }
|
|
|
+ var returnAge;
|
|
|
+ var strBirthdayArr = strBirthday.split('-');
|
|
|
+ var birthYear = strBirthdayArr[0];
|
|
|
+ var birthMonth = strBirthdayArr[1];
|
|
|
+ var birthDay = strBirthdayArr[2];
|
|
|
+ var d = new Date();
|
|
|
+ var nowYear = d.getFullYear();
|
|
|
+ var nowMonth = d.getMonth() + 1;
|
|
|
+ var nowDay = d.getDate();
|
|
|
+
|
|
|
+ if (nowYear == birthYear) {
|
|
|
+ returnAge = 0; //同年 则为0岁
|
|
|
+ } else {
|
|
|
+ var ageDiff = nowYear - birthYear; //年之差
|
|
|
+ if (ageDiff > 0) {
|
|
|
+ if (nowMonth == birthMonth) {
|
|
|
+ var dayDiff = nowDay - birthDay; //日之差
|
|
|
+ if (dayDiff < 0) {
|
|
|
+ returnAge = ageDiff - 1;
|
|
|
+ } else {
|
|
|
+ returnAge = ageDiff;
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ var monthDiff = nowMonth - birthMonth; //月之差
|
|
|
+ if (monthDiff < 0) {
|
|
|
+ returnAge = ageDiff - 1;
|
|
|
+ } else {
|
|
|
+ returnAge = ageDiff;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ returnAge = -1; //返回-1 表示出生日期输入错误 晚于今天
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return returnAge; //返回周岁年龄
|
|
|
+ }
|
|
|
+ }
|
|
|
+};
|
|
|
+</script>
|
|
|
+
|
|
|
+<style scoped>
|
|
|
+.pad_59 {
|
|
|
+ padding: 15rpx 28rpx 59rpx 59rpx;
|
|
|
+}
|
|
|
+.lis {
|
|
|
+ padding-top: 33rpx;
|
|
|
+ padding-bottom: 35rpx;
|
|
|
+ border-bottom: 1rpx solid #eee;
|
|
|
+}
|
|
|
+.titleLis {
|
|
|
+ color: #2a4174;
|
|
|
+ font-weight: bold;
|
|
|
+ font-size: 30rpx;
|
|
|
+}
|
|
|
+.inputs {
|
|
|
+ margin-top: 22rpx;
|
|
|
+ font-size: 30rpx;
|
|
|
+ color: #2a4174;
|
|
|
+ font-weight: 400;
|
|
|
+}
|
|
|
+.dis_fjusBtw {
|
|
|
+ margin-bottom: 24rpx;
|
|
|
+ margin-top: 31rpx;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: space-between;
|
|
|
+}
|
|
|
+.dis_sty {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: space-between;
|
|
|
+}
|
|
|
+.color_b {
|
|
|
+ color: #2a4174;
|
|
|
+ font-weight: bold;
|
|
|
+ font-size: 26rpx;
|
|
|
+}
|
|
|
+.dis_btn {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: space-between;
|
|
|
+}
|
|
|
+.le_h {
|
|
|
+ color: #666;
|
|
|
+ font-size: 24rpx;
|
|
|
+}
|
|
|
+.dis_fy {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+}
|
|
|
+.fgs {
|
|
|
+ width: 2rpx;
|
|
|
+ height: 23rpx;
|
|
|
+ margin: 0rpx 30rpx;
|
|
|
+ background-color: #666;
|
|
|
+}
|
|
|
+.vid_box {
|
|
|
+ width: 202rpx;
|
|
|
+ height: 292rpx;
|
|
|
+ border-radius: 16rpx;
|
|
|
+ margin-top: 25rpx;
|
|
|
+ position: relative;
|
|
|
+}
|
|
|
+.pdf_box {
|
|
|
+ width: 70rpx;
|
|
|
+ height: 86rpx;
|
|
|
+ border-radius: 16rpx;
|
|
|
+ margin-top: 25rpx;
|
|
|
+ position: relative;
|
|
|
+}
|
|
|
+.img_auto {
|
|
|
+ position: absolute;
|
|
|
+ width: 65rpx;
|
|
|
+ height: 65rpx;
|
|
|
+ right: -100rpx;
|
|
|
+ top: 50%;
|
|
|
+ transform: translateY(-50%);
|
|
|
+}
|
|
|
+.zzc {
|
|
|
+ position: absolute;
|
|
|
+ top: 0;
|
|
|
+ left: 0;
|
|
|
+ right: 0;
|
|
|
+ bottom: 0;
|
|
|
+ border-radius: 16rpx;
|
|
|
+ background-color: rgba(0, 0, 0, 0.6);
|
|
|
+}
|
|
|
+.imgcen {
|
|
|
+ position: absolute;
|
|
|
+ left: 50%;
|
|
|
+ top: 50%;
|
|
|
+ width: 60rpx;
|
|
|
+ height: 60rpx;
|
|
|
+ transform: translateX(-50%) translateY(-50%);
|
|
|
+}
|
|
|
+.pad_pg {
|
|
|
+ padding: 32rpx 32rpx 50rpx;
|
|
|
+}
|
|
|
+.hed {
|
|
|
+ text-align: center;
|
|
|
+ font-weight: bold;
|
|
|
+ color: #0c141f;
|
|
|
+ font-size: 32rpx;
|
|
|
+ margin: 20rpx 0rpx;
|
|
|
+}
|
|
|
+.btn_fot {
|
|
|
+ margin-top: 12rpx;
|
|
|
+ background-color: #32467b;
|
|
|
+ font-size: 30rpx;
|
|
|
+ font-weight: 500;
|
|
|
+ color: #fff;
|
|
|
+ border-radius: 32rpx;
|
|
|
+ height: 88rpx;
|
|
|
+ line-height: 88rpx;
|
|
|
+ text-align: center;
|
|
|
+ box-shadow: 0rpx 0rpx 16rpx 4rpx rgba(145, 156, 178, 0.1);
|
|
|
+}
|
|
|
+.btn_boxs {
|
|
|
+ margin-top: 12rpx;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: space-between;
|
|
|
+}
|
|
|
+.leftDel {
|
|
|
+ width: 30%;
|
|
|
+ background-color: #eb4d3d;
|
|
|
+ font-size: 30rpx;
|
|
|
+ font-weight: 500;
|
|
|
+ color: #fff;
|
|
|
+ border-radius: 32rpx;
|
|
|
+ height: 88rpx;
|
|
|
+ line-height: 88rpx;
|
|
|
+ text-align: center;
|
|
|
+ box-shadow: 0rpx 0rpx 16rpx 4rpx rgba(235, 77, 61, 0.1);
|
|
|
+}
|
|
|
+.rightedit {
|
|
|
+ width: 60%;
|
|
|
+ background-color: #32467b;
|
|
|
+ font-size: 30rpx;
|
|
|
+ font-weight: 500;
|
|
|
+ color: #fff;
|
|
|
+ border-radius: 32rpx;
|
|
|
+ height: 88rpx;
|
|
|
+ line-height: 88rpx;
|
|
|
+ text-align: center;
|
|
|
+ box-shadow: 0rpx 0rpx 16rpx 4rpx rgba(145, 156, 178, 0.1);
|
|
|
+}
|
|
|
+.srystr {
|
|
|
+ margin-right: 20rpx;
|
|
|
+ display: -webkit-box;
|
|
|
+ overflow: hidden;
|
|
|
+ word-break: break-all; /* break-all(允许在单词内换行。) */
|
|
|
+ text-overflow: ellipsis; /* 超出部分省略号 */
|
|
|
+ -webkit-box-orient: vertical;
|
|
|
+ -webkit-line-clamp: 2; /** 显示的行数 **/
|
|
|
+}
|
|
|
+</style>
|