Browse Source

前端-页面

armg 1 year ago
parent
commit
054df878c2

+ 9 - 0
ruoyi-ui/src/api/system/resume.js

@@ -42,3 +42,12 @@ export function delResume(resumeId) {
     method: 'delete'
   })
 }
+
+// 上传简历并进行解析
+export function uploadResumeSimilarity(data) {
+  return request({
+    url: '/system/resume/uploadResumeSimilarity',
+    method: 'post',
+    data: data
+  })
+}

+ 6 - 0
ruoyi-ui/src/router/index.js

@@ -238,6 +238,11 @@ export const constantRoutes = [
       }
     ]
   },
+  {
+    path: '/system/resume/add',
+    name:"systemResumeAdd",
+    component: () => import('../views/system/resume/add')
+  },
 ]
 
 // 动态路由,基于用户权限动态去加载
@@ -284,6 +289,7 @@ export const dynamicRoutes = [
       }
     ]
   },
+ 
   {
     path: '/monitor/job-log',
     component: Layout,

+ 10 - 7
ruoyi-ui/src/views/mobile/resume/index.vue

@@ -35,16 +35,19 @@
             v-for="(item, index) in list"
             :key="index"
             v-preventReClick
-            @click="toDetail(item.id)"
+            @click="toDetail(item.resumeId)"
           >
-            <div>{{ item.companyName }}</div>
-            <div>负责人:{{ item.createBy }}</div>
+            <div>{{ item.userName }}</div>
+            <!-- 性别|工作年限|学历|期望薪资 -->
+            <div>{{item.gender}}|{{item.experience}}|{{ item.degree }}|{{item.exceptedSalary}}</div>
+            <!-- 岗位 -->
+            <div>{{item.lastPosition}}</div>
+            <!-- 专业技能 -->
             <van-tag class="public-margin-t-10" type="primary" size="large">{{
-              item.companyEnterprisepro
-            }}</van-tag>
-            <van-tag class="public-margin-l-10" type="primary" size="large">{{
-              item.companyState
+              item.keyWords
             }}</van-tag>
+            <!-- 工作履历 -->
+            <p>{{item.resumeWork}}</p>
           </div>
         </van-list>
       </van-pull-refresh>

+ 150 - 0
ruoyi-ui/src/views/system/resume/add.vue

@@ -0,0 +1,150 @@
+<template>
+  <div>
+    <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+      <el-form-item label="候选人姓名" prop="userName">
+        <el-input v-model="form.userName" placeholder="请输入姓名" />
+      </el-form-item>
+      <el-form-item label="手机号码" prop="mobile">
+        <el-input v-model="form.mobile" placeholder="请输入手机号码" />
+      </el-form-item>
+      <el-form-item label="简历附件" prop="resumeFile">
+        <file-upload v-model="form.resumeFile" />
+      </el-form-item>
+      <el-form-item label="工作地" prop="workingPlace">
+        <el-input v-model="form.workingPlace" placeholder="请输入工作地" />
+      </el-form-item>
+      <el-form-item label="学历" prop="degree">
+        <el-input v-model="form.degree" placeholder="请输入学历" />
+      </el-form-item>
+      <el-form-item label="性别" prop="gender">
+        <el-input v-model="form.gender" placeholder="请输入性别" />
+      </el-form-item>
+      <el-form-item label="年龄" prop="age">
+        <el-input v-model="form.age" placeholder="请输入年龄" />
+      </el-form-item>
+      <el-form-item label="居住地" prop="residence">
+        <el-input v-model="form.residence" placeholder="请输入居住地" />
+      </el-form-item>
+      <el-form-item label="专业" prop="major">
+        <el-input v-model="form.major" placeholder="请输入专业" />
+      </el-form-item>
+      <el-form-item label="行业经验" prop="industryExperience">
+        <el-input
+          v-model="form.industryExperience"
+          type="textarea"
+          placeholder="请输入内容"
+        />
+      </el-form-item>
+      <el-form-item label="毕业院校" prop="graduateCollege">
+        <el-input v-model="form.graduateCollege" placeholder="请输入毕业院校" />
+      </el-form-item>
+      <el-form-item label="岗位" prop="position">
+        <el-input v-model="form.position" placeholder="请输入岗位" />
+      </el-form-item>
+      <el-form-item label="语言能力" prop="languageAbility">
+        <el-input
+          v-model="form.languageAbility"
+          type="textarea"
+          placeholder="请输入内容"
+        />
+      </el-form-item>
+      <el-form-item label="证书" prop="certificate">
+        <el-input
+          v-model="form.certificate"
+          type="textarea"
+          placeholder="请输入内容"
+        />
+      </el-form-item>
+      <el-form-item label="电子邮箱" prop="email">
+        <el-input v-model="form.email" placeholder="请输入电子邮箱" />
+      </el-form-item>
+      <el-form-item label="生日" prop="birthday">
+        <el-date-picker
+          clearable
+          v-model="form.birthday"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="请选择生日"
+        >
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="工作年限" prop="experience">
+        <el-input
+          v-model="form.experience"
+          type="textarea"
+          placeholder="请输入内容"
+        />
+      </el-form-item>
+      <el-form-item label="期望薪资" prop="exceptedSalary">
+        <el-input
+          v-model="form.exceptedSalary"
+          type="textarea"
+          placeholder="请输入内容"
+        />
+      </el-form-item>
+      <el-form-item label="最近工作公司" prop="lastCompany">
+        <el-input v-model="form.lastCompany" placeholder="请输入最近工作公司" />
+      </el-form-item>
+      <el-form-item label="最近工作行业" prop="lastIndustry">
+        <el-input
+          v-model="form.lastIndustry"
+          placeholder="请输入最近工作行业"
+        />
+      </el-form-item>
+      <el-form-item label="最近工作职位" prop="lastPosition">
+        <el-input
+          v-model="form.lastPosition"
+          placeholder="请输入最近工作职位"
+        />
+      </el-form-item>
+      <el-form-item label="专业技能" prop="keyWords">
+        <el-input
+          v-model="form.keyWords"
+          type="textarea"
+          placeholder="请输入内容"
+        />
+      </el-form-item>
+      <el-form-item label="自我评价" prop="selfEvaluation">
+        <el-input
+          v-model="form.selfEvaluation"
+          type="textarea"
+          placeholder="请输入内容"
+        />
+      </el-form-item>
+
+      <el-form-item label="工作履历" prop="resumeWork">
+        <el-input
+          v-model="form.resumeWork"
+          type="textarea"
+          placeholder="请输入内容"
+        />
+      </el-form-item>
+      <el-form-item label="项目经验" prop="resumeProject">
+        <el-input
+          v-model="form.resumeProject"
+          type="textarea"
+          placeholder="请输入内容"
+        />
+      </el-form-item>
+      <el-form-item label="教育经历" prop="resumeEducation">
+        <el-input
+          v-model="form.resumeEducation"
+          type="textarea"
+          placeholder="请输入内容"
+        />
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" @click="submitForm">提 交</el-button>
+        <el-button @click="cancel">返 回</el-button>
+      </el-form-item>
+    </el-form>
+  </div>
+</template>
+<script>
+export default {
+  name: "systemResumeAdd",
+  data() {
+    return {};
+  },
+};
+</script>

+ 139 - 62
ruoyi-ui/src/views/system/resume/index.vue

@@ -1,6 +1,13 @@
 <template>
   <div class="app-container">
-    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
+    <el-form
+      :model="queryParams"
+      ref="queryForm"
+      size="small"
+      :inline="true"
+      v-show="showSearch"
+      label-width="68px"
+    >
       <el-form-item label="姓名" prop="userName">
         <el-input
           v-model="queryParams.userName"
@@ -58,25 +65,37 @@
         />
       </el-form-item>
       <el-form-item label="导入开始时间" prop="startTime">
-        <el-date-picker clearable
-                        v-model="queryParams.startTime"
-                        type="date"
-                        value-format="yyyy-MM-dd"
-                        placeholder="请选择导入开始时间">
+        <el-date-picker
+          clearable
+          v-model="queryParams.startTime"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="请选择导入开始时间"
+        >
         </el-date-picker>
       </el-form-item>
       <el-form-item label="导入结束时间" prop="endTime">
-        <el-date-picker clearable
-                        v-model="queryParams.endTime"
-                        type="date"
-                        value-format="yyyy-MM-dd"
-                        placeholder="请选择导入结束时间">
+        <el-date-picker
+          clearable
+          v-model="queryParams.endTime"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="请选择导入结束时间"
+        >
         </el-date-picker>
       </el-form-item>
 
       <el-form-item>
-        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
-        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+        <el-button
+          type="primary"
+          icon="el-icon-search"
+          size="mini"
+          @click="handleQuery"
+          >搜索</el-button
+        >
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
+          >重置</el-button
+        >
       </el-form-item>
     </el-form>
 
@@ -89,7 +108,8 @@
           size="mini"
           @click="handleAdd"
           v-hasPermi="['system:resume:add']"
-        >新增</el-button>
+          >新增</el-button
+        >
       </el-col>
       <el-col :span="1.5">
         <el-button
@@ -100,7 +120,8 @@
           :disabled="single"
           @click="handleUpdate"
           v-hasPermi="['system:resume:edit']"
-        >修改</el-button>
+          >修改</el-button
+        >
       </el-col>
       <el-col :span="1.5">
         <el-button
@@ -111,7 +132,8 @@
           :disabled="multiple"
           @click="handleDelete"
           v-hasPermi="['system:resume:remove']"
-        >删除</el-button>
+          >删除</el-button
+        >
       </el-col>
       <el-col :span="1.5">
         <el-button
@@ -121,29 +143,68 @@
           size="mini"
           @click="handleExport"
           v-hasPermi="['system:resume:export']"
-        >导出</el-button>
+          >导出</el-button
+        >
       </el-col>
-      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+      <right-toolbar
+        :showSearch.sync="showSearch"
+        @queryTable="getList"
+      ></right-toolbar>
     </el-row>
 
-    <el-table v-loading="loading" :data="resumeList" @selection-change="handleSelectionChange">
+    <el-table
+      v-loading="loading"
+      :data="resumeList"
+      @selection-change="handleSelectionChange"
+    >
       <el-table-column type="selection" width="55" align="center" />
-      <el-table-column label="基本信息" width="300" align="center" prop="resumeId" >
+      <el-table-column
+        label="基本信息"
+        width="300"
+        align="center"
+        prop="resumeId"
+      >
         <template slot-scope="scope">
-          <span>{{scope.row.userName}}|{{ parseTime(scope.row.birthday, '{y}-{m}-{d}') }}|{{scope.row.gender}}
-            |{{scope.row.experience}}|{{scope.row.degree}}|{{scope.row.graduateCollege}}
-          |{{scope.row.major}}|{{scope.row.jobObjective}}|{{scope.row.residence}}
-          |{{scope.row.mobile}}|{{scope.row.email}}</span>
+          <span
+            >{{ scope.row.userName }}|{{
+              parseTime(scope.row.birthday, "{y}-{m}-{d}")
+            }}|{{ scope.row.gender }} |{{ scope.row.experience }}|{{
+              scope.row.degree
+            }}|{{ scope.row.graduateCollege }} |{{ scope.row.major }}|{{
+              scope.row.jobObjective
+            }}|{{ scope.row.residence }} |{{ scope.row.mobile }}|{{
+              scope.row.email
+            }}</span
+          >
         </template>
       </el-table-column>
-      <el-table-column label="职位" align="center" prop="position" width="100" />
-      <el-table-column label="导入时间" align="center" prop="createDate" width="150">
+      <el-table-column
+        label="职位"
+        align="center"
+        prop="position"
+        width="100"
+      />
+      <el-table-column
+        label="导入时间"
+        align="center"
+        prop="createDate"
+        width="150"
+      >
         <template slot-scope="scope">
-          <span>{{ parseTime(scope.row.createDate, '{y}-{m}-{d}') }}</span>
+          <span>{{ parseTime(scope.row.createDate, "{y}-{m}-{d}") }}</span>
         </template>
       </el-table-column>
-      <el-table-column label="导入人" align="center" prop="createUserName" width="100" />
-      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+      <el-table-column
+        label="导入人"
+        align="center"
+        prop="createUserName"
+        width="100"
+      />
+      <el-table-column
+        label="操作"
+        align="center"
+        class-name="small-padding fixed-width"
+      >
         <template slot-scope="scope">
           <el-button
             size="mini"
@@ -151,20 +212,22 @@
             icon="el-icon-edit"
             @click="handleUpdate(scope.row)"
             v-hasPermi="['system:resume:edit']"
-          >修改</el-button>
+            >修改</el-button
+          >
           <el-button
             size="mini"
             type="text"
             icon="el-icon-delete"
             @click="handleDelete(scope.row)"
             v-hasPermi="['system:resume:remove']"
-          >删除</el-button>
+            >删除</el-button
+          >
         </template>
       </el-table-column>
     </el-table>
 
     <pagination
-      v-show="total>0"
+      v-show="total > 0"
       :total="total"
       :page.sync="queryParams.pageNum"
       :limit.sync="queryParams.pageSize"
@@ -172,7 +235,7 @@
     />
 
     <!-- 添加或修改简历管理对话框 -->
-    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
+    <!-- <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
       <el-form ref="form" :model="form" :rules="rules" label-width="80px">
         <el-form-item label="候选人姓名" prop="userName">
           <el-input v-model="form.userName" placeholder="请输入姓名" />
@@ -263,12 +326,18 @@
         <el-button type="primary" @click="submitForm">确 定</el-button>
         <el-button @click="cancel">取 消</el-button>
       </div>
-    </el-dialog>
+    </el-dialog> -->
   </div>
 </template>
 
 <script>
-import { listResume, getResume, delResume, addResume, updateResume } from "@/api/system/resume";
+import {
+  listResume,
+  getResume,
+  delResume,
+  addResume,
+  updateResume,
+} from "@/api/system/resume";
 
 export default {
   name: "Resume",
@@ -345,13 +414,12 @@ export default {
         exceptedSalary: null,
         isEnabled: null,
         startTime: null,
-        endTime: null
+        endTime: null,
       },
       // 表单参数
       form: {},
       // 表单校验
-      rules: {
-      }
+      rules: {},
     };
   },
   created() {
@@ -361,7 +429,7 @@ export default {
     /** 查询简历管理列表 */
     getList() {
       this.loading = true;
-      listResume(this.queryParams).then(response => {
+      listResume(this.queryParams).then((response) => {
         this.resumeList = response.rows;
         this.total = response.total;
         this.loading = false;
@@ -425,7 +493,7 @@ export default {
         exceptedSalary: null,
         isEnabled: null,
         startTime: null,
-        endTime: null
+        endTime: null,
       };
       this.resetForm("form");
     },
@@ -441,21 +509,22 @@ export default {
     },
     // 多选框选中数据
     handleSelectionChange(selection) {
-      this.ids = selection.map(item => item.resumeId)
-      this.single = selection.length!==1
-      this.multiple = !selection.length
+      this.ids = selection.map((item) => item.resumeId);
+      this.single = selection.length !== 1;
+      this.multiple = !selection.length;
     },
     /** 新增按钮操作 */
     handleAdd() {
-      this.reset();
-      this.open = true;
-      this.title = "添加简历管理";
+      this.$router.push({ path: "/system/resume/add" });
+      // this.reset();
+      // this.open = true;
+      // this.title = "添加简历管理";
     },
     /** 修改按钮操作 */
     handleUpdate(row) {
       this.reset();
-      const resumeId = row.resumeId || this.ids
-      getResume(resumeId).then(response => {
+      const resumeId = row.resumeId || this.ids;
+      getResume(resumeId).then((response) => {
         this.form = response.data;
         this.open = true;
         this.title = "修改简历管理";
@@ -463,16 +532,16 @@ export default {
     },
     /** 提交按钮 */
     submitForm() {
-      this.$refs["form"].validate(valid => {
+      this.$refs["form"].validate((valid) => {
         if (valid) {
           if (this.form.resumeId != null) {
-            updateResume(this.form).then(response => {
+            updateResume(this.form).then((response) => {
               this.$modal.msgSuccess("修改成功");
               this.open = false;
               this.getList();
             });
           } else {
-            addResume(this.form).then(response => {
+            addResume(this.form).then((response) => {
               this.$modal.msgSuccess("新增成功");
               this.open = false;
               this.getList();
@@ -484,19 +553,27 @@ export default {
     /** 删除按钮操作 */
     handleDelete(row) {
       const resumeIds = row.resumeId || this.ids;
-      this.$modal.confirm('是否确认删除简历管理编号为"' + resumeIds + '"的数据项?').then(function() {
-        return delResume(resumeIds);
-      }).then(() => {
-        this.getList();
-        this.$modal.msgSuccess("删除成功");
-      }).catch(() => {});
+      this.$modal
+        .confirm('是否确认删除简历管理编号为"' + resumeIds + '"的数据项?')
+        .then(function () {
+          return delResume(resumeIds);
+        })
+        .then(() => {
+          this.getList();
+          this.$modal.msgSuccess("删除成功");
+        })
+        .catch(() => {});
     },
     /** 导出按钮操作 */
     handleExport() {
-      this.download('system/resume/export', {
-        ...this.queryParams
-      }, `resume_${new Date().getTime()}.xlsx`)
-    }
-  }
+      this.download(
+        "system/resume/export",
+        {
+          ...this.queryParams,
+        },
+        `resume_${new Date().getTime()}.xlsx`
+      );
+    },
+  },
 };
 </script>