Przeglądaj źródła

上传简历功能

noob 4 lat temu
rodzic
commit
b14eda67d6
1 zmienionych plików z 192 dodań i 3 usunięć
  1. 192 3
      src/views/candidateManage/candidateAll.vue

+ 192 - 3
src/views/candidateManage/candidateAll.vue

@@ -3,12 +3,12 @@
  * @Version: 1.0
  * @Autor: XuTongZhang
  * @Date: 2020-07-30 10:17:25
- * @LastEditors: XuTongZhang
- * @LastEditTime: 2020-08-17 15:57:05
+ * @LastEditors  : yuanrunwei
+ * @LastEditTime : 2021-02-04 20:21:30
 -->
 <template>
 <div class="indexPage">
-    <v-input :btn="btn" :list="list" @search="search" @exports="exports"></v-input>
+    <v-input :btn="btn" :list="list" @search="search" @exports="exports" @upload="upload=true"></v-input>
     <v-table :table="table" :tableList="tableList" :sortType="true" :queryData="queryData" :form="searchForm" @details="details" @update="update"></v-table>
     <v-pager @page="callPage" :total="totalrecords"></v-pager>
     <!-- <resume :dialogFormVisible="dialogFormVisible" :close="close" :info="info" :searchForm="searchForm" :queryData="queryData"></resume> -->
@@ -53,6 +53,94 @@
             </el-form-item>
         </el-form>
     </el-dialog>
+    <!-- upload -->
+    <el-dialog :visible.sync="upload" width="600px" :before-close="() => {upload=false}" :close-on-click-modal="false">
+        <el-form label-width="140px" label-position="right">
+            <el-form-item label="姓名">
+                <el-input placeholder="请输入姓名" v-model="uploadForm.delivererName" maxlength="32" show-word-limit></el-input>
+            </el-form-item>
+            <el-form-item label="性别">
+                <el-select v-model="uploadForm.delivererSex" class="select" placeholder="请选择性别">
+                    <el-option v-for="item in [{ value: 0, label: '女' }, { value: 1, label: '男' }]" :key="item.value" :label="item.label" :value="item.value">
+                    </el-option>
+                </el-select>
+            </el-form-item>
+            <el-form-item label="请选择出生日期">
+                <el-date-picker
+                  v-model="uploadForm.delivererBirthday"
+                  value-format="yyyy/MM/dd"
+                  type="date"
+                  placeholder="选择日期">
+                </el-date-picker>
+            </el-form-item>
+            <el-form-item label="手机号码">
+                <el-input placeholder="请输入手机号码" v-model.number="uploadForm.delivererPhone" maxlength="11" show-word-limit></el-input>
+            </el-form-item>
+            <el-form-item label="邮箱">
+                <el-input placeholder="请输入邮箱" v-model="uploadForm.delivererMail" maxlength="32" show-word-limit></el-input>
+            </el-form-item>
+            <el-form-item label="国籍">
+                <el-input placeholder="请输入国籍" v-model="uploadForm.delivererNationality" maxlength="32" show-word-limit></el-input>
+            </el-form-item>
+            <el-form-item label="联系地址">
+                <el-input placeholder="请输入联系地址" v-model="uploadForm.delivererAddress" maxlength="32" show-word-limit></el-input>
+            </el-form-item>
+            <el-form-item label="意向城市-省市">
+                <!-- <el-input placeholder="请选择意向城市-省市" v-model="uploadForm.delivererIntention" maxlength="32" show-word-limit></el-input> -->
+                <!-- <el-cascader placeholder="请选择意向城市-省市" v-model="uploadForm.delivererIntention" :props="{
+                  lazy: true,
+                  value: 'id',
+                  label: 'name',
+                  lazyLoad (node, resolve) {
+                    const { level } = node;
+                    $api.post('/addr/all_addr').then(result=>{
+                      resolve(result.list.map(item => ({
+                        value: item.id,
+                        label: item.name,
+                        leaf: level >= 2,
+                      })))
+                    })
+                  }
+                }"></el-cascader> -->
+                <el-cascader :options="addrOptions" placeholder="请选择意向城市-省市" v-model="uploadForm.delivererIntention" :props="{
+                  value: 'name',
+                  label: 'name'
+                }"></el-cascader>
+            </el-form-item>
+            <el-form-item label="学历">
+                <el-select class="select" v-model="uploadForm.delivererEducation" placeholder="请选择学历">
+                    <el-option v-for="item in ['大专', '本科', '研究生', '博士', '其他']" :key="item" :label="item" :value="item"></el-option>
+                </el-select>
+            </el-form-item>
+            <el-form-item label="年级">
+                <el-input placeholder="请输入年级" v-model="uploadForm.delivererGrade" maxlength="200" show-word-limit></el-input>
+            </el-form-item>
+            <el-form-item label="语言能力">
+                <el-cascader
+                  v-model="uploadForm.delivererLanguageAbility"
+                  :options="options"
+                  :props="{
+                    multiple:false,
+                    emitPath:false
+                  }"
+                  :show-all-levels="false"
+                  clearable></el-cascader>
+            </el-form-item>
+            <el-form-item label="期望薪资">
+                <el-input placeholder="请输入期望薪资" v-model="uploadForm.delivererExpectSalary" maxlength="200" show-word-limit></el-input>
+            </el-form-item>
+            <el-form-item label="工作年限">
+                <el-select v-model="uploadForm.delivererWorkExp" class="select" placeholder="请选择工作年限">
+                    <el-option v-for="item in expOptions" :key="item.value" :label="item.label" :value="item.value">
+                    </el-option>
+                </el-select>
+            </el-form-item>
+            <el-form-item>
+                <el-button @click="upload = false">取 消</el-button>
+                <el-button type="primary" @click="handleSubmit">提 交</el-button>
+            </el-form-item>
+        </el-form>
+    </el-dialog>
 </div>
 </template>
 
@@ -73,12 +161,52 @@ export default {
       tableList: [],
       dialogFormVisible: false,
       dialogVisible: false,
+      upload: false,
       page: 1,
       totalrecords: 0,
       pickList: [],
       downList1: [],
       searchForm: {},
       form: {},
+      uploadForm: {
+        delivererName: '',
+        delivererSex: 0,
+        delivererBirthday: '',
+        delivererPhone: '',
+        delivererMail: '',
+        delivererNationality: '',
+        delivererAddress: '',
+        delivererIntention: '',
+        delivererEducation: '',
+        delivererGrade: '',
+        delivererLanguageAbility: '',
+        delivererExpectSalary: '',
+        delivererWorkExp: ''
+      },
+      options: [],
+      addrOptions: [],
+      expOptions: [
+        {
+          value: '1年以内工作经验',
+          label: '1年以内工作经验'
+        },
+        {
+          value: '1-3年工作经验',
+          label: '1-3年工作经验'
+        },
+        {
+          value: '3-5年工作经验',
+          label: '3-5年工作经验'
+        },
+        {
+          value: '5-10年工作经验',
+          label: '5-10年工作经验'
+        },
+        {
+          value: '10年以上工作经验',
+          label: '10年以上工作经验'
+        }
+      ],
       rules: {
         delivererEducation: [{
           required: true,
@@ -182,6 +310,11 @@ export default {
         name: '导出',
         type: 'primary',
         method: 'exports'
+      },
+      {
+        name: '上传简历',
+        type: 'primary',
+        method: 'upload'
       }
       ],
       table: {
@@ -279,6 +412,7 @@ export default {
   mounted () {
     this.queryData()
     this.queryDownList()
+    this.handleOptions()
   },
   methods: {
     queryData (form = {}) {
@@ -371,6 +505,61 @@ export default {
     callPage (val) {
       this.page = val
       this.queryData(this.searchForm)
+    },
+    handleOptions () {
+      this.options = ['不限', '英语', '日语', '俄语', '阿拉伯语', '法语', '德语', '西班牙语', '葡萄牙语', '意大利语', '韩语/朝鲜语', '普通话', '粤语', '闽南话', '上海话', '其他'].map(item => {
+        return {
+          label: item,
+          value: item,
+          children: [item + '-一般', item + '-良好', item + '-熟练', item + '-精通'].map(item => {
+            return {
+              label: item,
+              value: item
+            }
+          })
+        }
+      })
+      this.$api.post('/addr/all_addr').then(result => {
+        this.addrOptions = result.list.map(item => (
+          {
+            name: item.name,
+            children: item.children.map(item => ({
+              name: item.name
+            }))
+          }
+        ))
+      })
+    },
+    handleSubmit () {
+      const reg = /^\w+@[a-z0-9]+\.[a-z]{2,4}$/
+      if (!reg.test(this.uploadForm.delivererMail)) {
+        this.$message.error('请输入正确的邮箱')
+        return false
+      }
+      this.$api.post('/resumeInfo/uploadResume', {
+        reqdata: {
+          ...this.uploadForm,
+          delivererIntention: `${this.uploadForm.delivererIntention[0]} ${this.uploadForm.delivererIntention[1]}`
+        }
+      }).then(result => {
+        this.upload = false
+        this.uploadForm = {
+          delivererName: '',
+          delivererSex: 0,
+          delivererBirthday: '',
+          delivererPhone: '',
+          delivererMail: '',
+          delivererNationality: '',
+          delivererAddress: '',
+          delivererIntention: '',
+          delivererEducation: '',
+          delivererGrade: '',
+          delivererLanguageAbility: '',
+          delivererExpectSalary: '',
+          delivererWorkExp: ''
+        }
+        this.queryData()
+      })
     }
   }
 }