main
lijingyu007 5 months ago
parent 6c0cdc4750
commit 2348d22365
  1. 1
      .env.development
  2. 9
      src/api/cloudUser/index.js
  3. 9
      src/api/system/ApplicationReview.js
  4. 248
      src/views/cloudUser/cloudList.vue
  5. 156
      src/views/cloudUser/cloudSkill.vue
  6. 4
      src/views/system/ApplicationReview/index.vue
  7. 2
      src/views/trainService/talentPool.vue

@ -6,6 +6,7 @@ VUE_APP_BASE_API = '/prod-api'
# VUE_APP_BASE_TARGET = 'https://www.keyitest.cn/test-api'
VUE_APP_BASE_TARGET = 'http://192.168.0.229:9999'
# VUE_APP_BASE_TARGET = 'http://192.168.0.129:9999'
# VUE_APP_BASE_TARGET = 'http://172.16.36.180:9999'
# 路由懒加载

@ -37,4 +37,13 @@ export function getJobAllList(params) {
})
}
// 云员工管理列表
export function getCloudList(params) {
return request({
url: '/tester/cert/admin/cloudEmps',
method: 'get',
params
})
}

@ -149,3 +149,12 @@ export function getUserJL(id) {
method: 'get',
})
}
// 下载用户简历
export function downloadPdf(id) {
return request({
url: '/personal/download/resume/' + id,
method: 'get',
responseType: 'blob',
})
}

@ -0,0 +1,248 @@
<template>
<div class="cloudUser">
<el-form :model="queryParams" ref="queryForm" :inline="true">
<el-form-item label="姓名" prop="name">
<el-input
v-model="queryParams.name"
placeholder="请输入姓名"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="手机号" prop="title">
<el-input
v-model="queryParams.title"
placeholder="请输入手机号"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</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-form-item>
</el-form>
<el-table v-loading="loading" :data="cloudUserList">
<el-table-column label="用户编号" align="center" prop="userId" />
<el-table-column label="姓名" align="center" prop="name" />
<el-table-column label="手机号" align="center" prop="sex" />
<el-table-column label="技能" align="center" prop="testSkills" />
<el-table-column label="毕业年份" align="center" prop="title" />
<el-table-column label="简历完整度" align="center" prop="title" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="260px">
<template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-edit" @click="cloudUserDetail(scope.row)"
>查看详情</el-button
>
<el-button size="mini" type="text" icon="el-icon-download" @click="downloadFn(scope.row)"
>下载简历</el-button
>
<el-button size="mini" type="text" icon="el-icon-turn-off" @click="downloadFn(scope.row)"
>隐藏简历</el-button
>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 简历弹层 -->
<!-- 用户详情 -->
<el-dialog title="详情" :visible.sync="cloudUserOpen" width="700px" append-to-body class="cloudi">
<div class="sintitle">
<div class="line"></div>
个人信息
</div>
<div class="newfont">
<div>姓名{{ cloudUserOpenRow.name || '未填写' }}</div>
<div>性别{{ cloudUserOpenRow.sex || '未填写' }}</div>
<div>手机号{{ cloudUserOpenRow.phonenumber || '未填写' }}</div>
<div>所在城市{{ cloudUserOpenRow.city || '未填写' }}</div>
<div>技能方向{{ cloudUserOpenRow.testSkills || '未填写' }}</div>
<div>个人优势{{ cloudUserOpenRow.personalAdvantage || '未填写' }}</div>
</div>
<div class="sintitle">
<div class="line"></div>
工作经历
</div>
<div v-if="workList.length">
<div class="newfont" v-for="it in workList" :key="it.caseId">
<div>公司名称{{ it.name }}</div>
<div>在职时间{{ it.startTime }} - {{ it.endTime }}</div>
<div>职位名称{{ it.title }}</div>
<div>工作内容{{ it.intro }}</div>
</div>
</div>
<p v-else style="color: #333333; margin: 20px 30px; text-align: left">未填写</p>
<div class="sintitle">
<div class="line"></div>
项目经历
</div>
<div v-if="proList.length">
<div class="newfont" v-for="it in proList" :key="it.caseId">
<div>公司名称{{ it.name }}</div>
<div>在职时间{{ it.startTime }} - {{ it.endTime }}</div>
<div>担任角色{{ it.title }}</div>
<div>应用技术{{ it.applyTech }}</div>
<div>工作内容{{ it.intro }}</div>
</div>
</div>
<p v-else style="color: #333333; margin: 20px 30px; text-align: left">未填写</p>
<div class="sintitle">
<div class="line"></div>
教育经历
</div>
<div v-if="eduList.length">
<div class="newfont" v-for="it in eduList" :key="it.caseId">
<div>学校名称{{ it.name }}</div>
<div>在校时间{{ it.startTime }} - {{ it.endTime }}</div>
<div>学历{{ it.education }}</div>
<div>专业{{ it.major }}</div>
</div>
</div>
<p v-else style="color: #333333; margin: 20px 30px; text-align: left">未填写</p>
<div class="sintitle">
<div class="line"></div>
技能证书
</div>
<div v-if="bookList.length">
<div class="newfont" v-for="it in bookList" :key="it.fileId">
<div>证书名称{{ it.fileName }}</div>
<img :src="it.fileUrl" style="width: 360px; height: 150px" alt="" />
</div>
</div>
<p v-else style="color: #333333; margin: 20px 30px; text-align: left">未填写</p>
</el-dialog>
</div>
</template>
<script>
import { downloadPdf, getUserJL } from '@/api/system/ApplicationReview'
import { getCloudList } from '@/api/cloudUser'
import { saveAs } from 'file-saver'
export default {
data() {
return {
loading: false,
cloudUserList: [],
total: 0,
queryParams: {
pageNum: 1,
pageSize: 10,
},
companyApplyOpen: false,
//
workList: [],
//
proList: [],
//
eduList: [],
//
bookList: [],
cloudUserOpenRow: {},
cloudUserOpen: false,
base: process.env.VUE_APP_BASE_TARGET,
}
},
created() {
this.getList()
},
methods: {
//
getList() {
this.loading = true
getCloudList(this.queryParams)
.then((res) => {
this.loading = false
this.total = res.total
this.cloudUserList = res.rows
})
.catch((error) => {
this.loading = false
})
},
//
downloadFn(row) {
downloadPdf(row.userId).then((res) => {
const blob = new Blob([res])
saveAs(blob, row.name + '简历.pdf')
})
// window.open(this.base + '/prod-api/personal/download/resume/' + row.userId)
},
//
cloudUserDetail(row) {
this.cloudUserOpenRow = {}
this.workList = []
this.proList = []
this.eduList = []
this.bookList = []
getUserJL(row.userId).then((res) => {
this.cloudUserOpenRow = res.personalInfo
if (res.experience && res.experience.length) {
this.workList = res.experience.filter((it) => it.type == 1)
this.proList = res.experience.filter((it) => it.type == 0)
this.eduList = res.experience.filter((it) => it.type == 2)
}
if (res.credentials && res.credentials.length) {
this.bookList = res.credentials
}
this.cloudUserOpen = true
})
},
detailFn() {},
/** 搜索按钮操作 */
handleQuery() {
this.getList()
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm('queryForm')
this.handleQuery()
},
},
}
</script>
<style lang="scss" scoped>
.cloudUser {
padding: 20px;
}
.addbtnbtn {
margin: 10px 0 20px 0;
}
.cloudi >>> .el-dialog__body {
max-height: 700px;
overflow: auto;
padding: 0 20px !important;
}
.sintitle {
font-size: 16px;
color: #000000;
font-weight: bold;
margin-top: 20px;
margin-bottom: 10px;
display: flex;
align-items: center;
}
.newfont {
padding: 0 20px;
box-sizing: border-box;
}
.newfont div {
margin-bottom: 5px;
}
.line {
width: 4px;
height: 18px;
background: #1890ff;
margin-right: 5px;
border-radius: 2px;
}
</style>

@ -0,0 +1,156 @@
<template>
<div class="cloudUser">
<!-- <el-form :model="queryParams" ref="queryForm" :inline="true">
<el-form-item label="职位名称" prop="title">
<el-input
v-model="queryParams.title"
placeholder="请输入职位名称"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</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-form-item>
</el-form> -->
<div class="addbtnbtn">
<el-button type="primary" icon="el-icon-plus" size="mini" @click="addFn">新增</el-button>
</div>
<el-table v-loading="loading" :data="cloudUserList">
<el-table-column label="编号" align="center" prop="user_id" />
<el-table-column label="云员工技能方向" align="center" prop="nick_name" />
<el-table-column label="语言" align="center" prop="sex" />
<el-table-column label="云员工技能定义" align="center" prop="phonenumber" />
<el-table-column label="排序" align="center" prop="title" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-edit" @click="editFn(scope.row)">修改</el-button>
<el-button size="mini" type="text" icon="el-icon-delete" @click="delFn(scope.row)">删除</el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 审核弹层 -->
<el-dialog :title="title" :visible.sync="detailOpen" width="700px" append-to-body @close="closeFn">
<el-form :model="form" :rules="rules" ref="form" label-width="130px">
<el-form-item label="云员工技能方向" prop="name">
<el-input v-model="form.name"></el-input>
</el-form-item>
<el-form-item label="语言" prop="name">
<el-input v-model="form.name"></el-input>
</el-form-item>
<el-form-item label="云员工技能定义" prop="name">
<el-input v-model="form.name"></el-input>
</el-form-item>
<el-form-item label="排序" prop="name">
<el-input v-model="form.name"></el-input>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="closeFn"> </el-button>
<el-button type="primary" @click="submitFn"> </el-button>
</span>
</el-dialog>
</div>
</template>
<script>
import { getJobEdList } from '@/api/cloudUser'
export default {
data() {
return {
loading: false,
cloudUserList: [],
detailOpen: false,
total: 0,
queryParams: {
pageNum: 1,
pageSize: 10,
},
form: {},
rules: {},
title: ''
}
},
created() {
this.getList()
},
methods: {
getList() {
this.loading = true
getJobEdList(this.queryParams)
.then((res) => {
this.loading = false
this.total = res.total
this.cloudUserList = res.rows
})
.catch((error) => {
this.loading = false
})
},
delFn() {
this.$confirm('此操作将永久云员工, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
})
.then(() => {
this.$message({
type: 'success',
message: '删除成功!',
})
})
.catch(() => {})
},
closeFn() {
this.form = {}
this.$refs['form'].resetFields()
this.detailOpen = false
},
addFn() {
this.detailOpen = true
this.title = '新增技能方向'
},
editFn() {
this.detailOpen = true
this.title = '修改技能方向'
},
//
submitFn() {
this.$refs['form'].validate((valid) => {
if (valid) {
this.closeFn()
} else {
return false
}
})
},
/** 搜索按钮操作 */
handleQuery() {
this.getList()
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm('queryForm')
this.handleQuery()
},
},
}
</script>
<style lang="scss" scoped>
.cloudUser {
padding: 20px;
}
.addbtnbtn {
margin: 10px 0 20px 0;
}
</style>

@ -44,8 +44,8 @@
<el-table v-if="activeName === 'second'" :data="companyApplyList">
<el-table-column label="公司编号" align="center" prop="applyId" />
<el-table-column label="姓名" align="center" prop="name" />
<el-table-column label="公司名称" align="center" prop="companyDesc" />
<el-table-column label="姓名" align="center" prop="contactName" />
<el-table-column label="公司名称" align="center" prop="name" />
<el-table-column key="second" label="状态" align="center" prop="status" width="180">
<template slot-scope="scope">
<span v-if="scope.row.status == 0" style="color: #e6a23c">待审核</span>

@ -271,8 +271,6 @@ export default {
/** 下载模板操作 */
importTemplate() {
importTemplate().then((response) => {
console.log(response)
const blob = new Blob([response])
saveAs(blob, '人才导入模板.xlsx')
})

Loading…
Cancel
Save