parent
6c0cdc4750
commit
2348d22365
@ -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> |
Loading…
Reference in new issue