|
@@ -0,0 +1,342 @@
|
|
|
+<template>
|
|
|
+ <div class="mobileWrapper">
|
|
|
+ <van-nav-bar
|
|
|
+ left-text="返回"
|
|
|
+ left-arrow
|
|
|
+ v-preventReClick
|
|
|
+ @click-left="onClickLeft"
|
|
|
+ :title="title"
|
|
|
+ />
|
|
|
+ <van-form ref="userForm" @submit="onSubmit">
|
|
|
+ <!-- <h5>简历</h5> -->
|
|
|
+ <van-field
|
|
|
+ v-model="userForm.userName"
|
|
|
+ name="userName"
|
|
|
+ label="姓名"
|
|
|
+ maxlength="20"
|
|
|
+ placeholder="请输入姓名"
|
|
|
+ :rules="[{ required: true }]"
|
|
|
+ />
|
|
|
+ <van-field
|
|
|
+ v-model="userForm.mobile"
|
|
|
+ name="mobile"
|
|
|
+ type="tel"
|
|
|
+ maxlength="11"
|
|
|
+ label="手机号码"
|
|
|
+ placeholder="请输入手机号码"
|
|
|
+ :rules="[
|
|
|
+ { required: true, message: '请输入手机号码' },
|
|
|
+ { pattern: /^1[3456789]\d{9}$/, message: '手机号码格式错误!' },
|
|
|
+ ]"
|
|
|
+ />
|
|
|
+ <van-field name="resumeFile" label="简历" :rules="[{ required: true }]">
|
|
|
+ <template #input>
|
|
|
+ <van-uploader
|
|
|
+ v-model="userForm.resumeFile"
|
|
|
+ >
|
|
|
+ <van-button icon="plus" type="primary" size="small">上传简历</van-button>
|
|
|
+ </van-uploader>
|
|
|
+ </template>
|
|
|
+ </van-field>
|
|
|
+
|
|
|
+ <van-field
|
|
|
+ v-model="userForm.workingPlace"
|
|
|
+ name="workingPlace"
|
|
|
+ label="工作地"
|
|
|
+ placeholder="请输入工作地"
|
|
|
+ />
|
|
|
+ <van-field
|
|
|
+ v-model="userForm.degree"
|
|
|
+ name="degree"
|
|
|
+ label="学历"
|
|
|
+ placeholder="请输入学历"
|
|
|
+ />
|
|
|
+ <van-field
|
|
|
+ readonly
|
|
|
+ clickable
|
|
|
+ :value="userForm.gender"
|
|
|
+ name="gender"
|
|
|
+ label="性别"
|
|
|
+ placeholder="请选择性别"
|
|
|
+ @click="showPicker_gender = true"
|
|
|
+ />
|
|
|
+ <van-popup v-model="showPicker_gender" position="bottom">
|
|
|
+ <van-picker
|
|
|
+ show-toolbar
|
|
|
+ :columns="columns_gender"
|
|
|
+ @confirm="onConfirmGender"
|
|
|
+ @cancel="showPicker_gender = false"
|
|
|
+ />
|
|
|
+ <!-- value-key="dictLabel" -->
|
|
|
+ </van-popup>
|
|
|
+ <van-field
|
|
|
+ v-model="userForm.age"
|
|
|
+ name="age"
|
|
|
+ label="年龄"
|
|
|
+ placeholder="请输入年龄"
|
|
|
+ />
|
|
|
+ <van-field
|
|
|
+ v-model="userForm.residence"
|
|
|
+ name="residence"
|
|
|
+ label="居住地"
|
|
|
+ placeholder="请输入居住地"
|
|
|
+ />
|
|
|
+ <van-field
|
|
|
+ v-model="userForm.major"
|
|
|
+ name="major"
|
|
|
+ label="专业"
|
|
|
+ placeholder="请输入专业"
|
|
|
+ />
|
|
|
+ <van-field
|
|
|
+ v-model="userForm.industryExperience"
|
|
|
+ name="industryExperience"
|
|
|
+ label="行业经验"
|
|
|
+ placeholder="请输入行业经验"
|
|
|
+ />
|
|
|
+ <van-field
|
|
|
+ v-model="userForm.graduateCollege"
|
|
|
+ name="graduateCollege"
|
|
|
+ label="毕业院校"
|
|
|
+ placeholder="请输入毕业院校"
|
|
|
+ />
|
|
|
+ <van-field
|
|
|
+ v-model="userForm.position"
|
|
|
+ name="position"
|
|
|
+ label="岗位"
|
|
|
+ placeholder="请输入岗位"
|
|
|
+ />
|
|
|
+ <van-field
|
|
|
+ v-model="userForm.languageAbility"
|
|
|
+ name="languageAbility"
|
|
|
+ label="语言能力"
|
|
|
+ placeholder="请输入语言能力"
|
|
|
+ />
|
|
|
+ <van-field
|
|
|
+ v-model="userForm.certificate"
|
|
|
+ name="certificate"
|
|
|
+ label="证书"
|
|
|
+ placeholder="请输入证书"
|
|
|
+ />
|
|
|
+ <van-field
|
|
|
+ v-model="userForm.email"
|
|
|
+ name="email"
|
|
|
+ label="电子邮箱"
|
|
|
+ placeholder="请输入电子邮箱"
|
|
|
+ />
|
|
|
+ <van-field
|
|
|
+ readonly
|
|
|
+ clickable
|
|
|
+ name="birthday"
|
|
|
+ :value="userForm.birthday"
|
|
|
+ label="生日"
|
|
|
+ placeholder="点击选择生日"
|
|
|
+ @click="showPicker_birthday = true"
|
|
|
+ :rules="[{ required: true }]"
|
|
|
+ />
|
|
|
+ <van-popup v-model="showPicker_birthday" position="bottom">
|
|
|
+ <van-datetime-picker
|
|
|
+ :value="currentDate"
|
|
|
+ type="date"
|
|
|
+ :min-date="minDate"
|
|
|
+ :max-date="maxDate"
|
|
|
+ @cancel="showPicker_birthday = false"
|
|
|
+ @confirm="onUpdateBirthday"
|
|
|
+ />
|
|
|
+ </van-popup>
|
|
|
+ <van-field
|
|
|
+ v-model="userForm.experience"
|
|
|
+ name="experience"
|
|
|
+ label="工作年限"
|
|
|
+ placeholder="请输入工作年限"
|
|
|
+ />
|
|
|
+ <van-field
|
|
|
+ v-model="userForm.exceptedSalary"
|
|
|
+ name="exceptedSalary"
|
|
|
+ label="期望薪资"
|
|
|
+ placeholder="请输入期望薪资"
|
|
|
+ />
|
|
|
+ <van-field
|
|
|
+ v-model="userForm.lastCompany"
|
|
|
+ name="lastCompany"
|
|
|
+ label="最近工作公司"
|
|
|
+ placeholder="请输入最近工作公司"
|
|
|
+ />
|
|
|
+ <van-field
|
|
|
+ v-model="userForm.lastIndustry"
|
|
|
+ name="lastIndustry"
|
|
|
+ label="最近工作行业"
|
|
|
+ placeholder="请输入最近工作行业"
|
|
|
+ />
|
|
|
+ <van-field
|
|
|
+ v-model="userForm.lastPosition"
|
|
|
+ name="lastPosition"
|
|
|
+ label="最近工作职位"
|
|
|
+ placeholder="请输入最近工作职位"
|
|
|
+ />
|
|
|
+ <van-field
|
|
|
+ v-model="userForm.keyWords"
|
|
|
+ name="keyWords"
|
|
|
+ label="专业技能"
|
|
|
+ placeholder="请输入专业技能"
|
|
|
+ />
|
|
|
+ <van-field
|
|
|
+ v-model="userForm.selfEvaluation"
|
|
|
+ name="selfEvaluation"
|
|
|
+ label="自我评价"
|
|
|
+ placeholder="请输入自我评价"
|
|
|
+ />
|
|
|
+ <van-field
|
|
|
+ v-model="userForm.resumeWork"
|
|
|
+ name="resumeWork"
|
|
|
+ label="工作履历"
|
|
|
+ placeholder="请输入工作履历"
|
|
|
+ />
|
|
|
+ <van-field
|
|
|
+ v-model="userForm.resumeProject"
|
|
|
+ name="resumeProject"
|
|
|
+ label="项目经验"
|
|
|
+ placeholder="请输入项目经验"
|
|
|
+ />
|
|
|
+ <van-field
|
|
|
+ v-model="userForm.resumeEducation"
|
|
|
+ name="resumeEducation"
|
|
|
+ label="教育经历"
|
|
|
+ placeholder="请输入教育经历"
|
|
|
+ />
|
|
|
+ <div style="margin: 16px">
|
|
|
+ <van-button round block type="info" native-type="submit"
|
|
|
+ >提交</van-button
|
|
|
+ >
|
|
|
+ </div>
|
|
|
+ </van-form>
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+<script>
|
|
|
+import moment from "moment";
|
|
|
+import {
|
|
|
+ listResume,
|
|
|
+ getResume,
|
|
|
+ delResume,
|
|
|
+ addResume,
|
|
|
+ updateResume,
|
|
|
+} from "@/api/system/resume";
|
|
|
+export default {
|
|
|
+ name: "MobileResumeForm",
|
|
|
+ dicts: [
|
|
|
+ // "CUSTOMER_STATUS", //客户状态
|
|
|
+ ],
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ columns_gender: ["男", "女"],
|
|
|
+ showPicker_gender: false,
|
|
|
+ showPicker_birthday: false,
|
|
|
+ title: "新增简历",
|
|
|
+ id: "",
|
|
|
+ minDate: new Date(1924, 1, 1),
|
|
|
+ maxDate: new Date(),
|
|
|
+ currentDate: new Date(),
|
|
|
+ userForm: {
|
|
|
+ userName: "",
|
|
|
+ mobile: "",
|
|
|
+ resumeFile: [],
|
|
|
+ workingPlace: "",
|
|
|
+ degree: "",
|
|
|
+ gender: "",
|
|
|
+ age: "",
|
|
|
+ residence: "",
|
|
|
+ major: "",
|
|
|
+ industryExperience: "",
|
|
|
+ graduateCollege: "",
|
|
|
+ position: "",
|
|
|
+ languageAbility: "",
|
|
|
+ certificate: "",
|
|
|
+ email: "",
|
|
|
+ birthday: "",
|
|
|
+ experience: "",
|
|
|
+ exceptedSalary: "",
|
|
|
+ lastCompany: "",
|
|
|
+ lastIndustry: "",
|
|
|
+ lastPosition: "",
|
|
|
+ keyWords: "",
|
|
|
+ selfEvaluation: "",
|
|
|
+ resumeWork: "",
|
|
|
+ resumeProject: "",
|
|
|
+ resumeEducation: "",
|
|
|
+ },
|
|
|
+ };
|
|
|
+ },
|
|
|
+ created() {},
|
|
|
+ mounted() {
|
|
|
+ this.getDicts("CUSTOMER_NATURE").then((res) => {
|
|
|
+ this.columns_nature = res.data;
|
|
|
+ });
|
|
|
+
|
|
|
+ let that = this;
|
|
|
+ this.title = this.$route.query.type == 2 ? "修改简历" : "新增简历";
|
|
|
+ this.id = this.$route.query.id ? this.$route.query.id : null;
|
|
|
+ if (this.id) {
|
|
|
+ getResume(this.id)
|
|
|
+ .then((response) => {
|
|
|
+ that.userForm = response.data;
|
|
|
+ })
|
|
|
+ .catch((err) => {
|
|
|
+ that.$toast(err.msg);
|
|
|
+ });
|
|
|
+ }
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ onUpdateBirthday(value) {
|
|
|
+ // 使用moment格式化日期
|
|
|
+ const data = moment(value).format("YYYY-MM-DD");
|
|
|
+ this.userForm.birthday = data;
|
|
|
+ this.showPicker_birthday = false;
|
|
|
+ },
|
|
|
+ onConfirmGender(value) {
|
|
|
+ this.userForm.gender = value;
|
|
|
+ this.showPicker_gender = false;
|
|
|
+ },
|
|
|
+ onSubmit(values) {
|
|
|
+ let that = this;
|
|
|
+ // console.log("submit", values);
|
|
|
+ if (that.id) {
|
|
|
+ values.id = that.id;
|
|
|
+ updateResume(values)
|
|
|
+ .then((response) => {
|
|
|
+ if (response.code == 200) {
|
|
|
+ that.$toast.success(response.msg);
|
|
|
+ setTimeout(() => {
|
|
|
+ that.$router.go(-2);
|
|
|
+ that.$toast.clear();
|
|
|
+ }, 1000);
|
|
|
+ }
|
|
|
+ })
|
|
|
+ .catch((err) => {
|
|
|
+ that.$toast(err.msg);
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ addResume(values)
|
|
|
+ .then((response) => {
|
|
|
+ if (response.code == 200) {
|
|
|
+ that.$toast.success(response.msg);
|
|
|
+ setTimeout(() => {
|
|
|
+ that.$router.back(-1);
|
|
|
+ that.$toast.clear();
|
|
|
+ }, 1000);
|
|
|
+ }
|
|
|
+ })
|
|
|
+ .catch((err) => {
|
|
|
+ that.$toast(err.msg);
|
|
|
+ });
|
|
|
+ }
|
|
|
+ },
|
|
|
+ onClickLeft() {
|
|
|
+ this.$router.back(-1);
|
|
|
+ },
|
|
|
+ },
|
|
|
+};
|
|
|
+</script>
|
|
|
+<style lang="scss" scoped>
|
|
|
+h5 {
|
|
|
+ margin: 10px 5px;
|
|
|
+}
|
|
|
+</style>
|