【new】

开发完成人才库列表
正在开发人才库-新增人才
This commit is contained in:
tian.guangyuan
2020-03-13 18:26:48 +08:00
parent 4d3e41760d
commit 36c0f111bc
10 changed files with 236 additions and 15 deletions

View File

@@ -1,3 +1,4 @@
public
dist
node_modules
./node_modules

View File

@@ -1,10 +1,10 @@
import request from '@/assets/js/utils/request'
import getUrl from '@/assets/js/utils/get-url'
// 例子
export function demo(data) {
// 人才库列表查询接口
export function getAgentPersonnelList(data) {
return request({
url: getUrl('/url', 1),
url: getUrl('/agent/personnel/queryList', 1),
method: 'post',
data
})

View File

@@ -2017,5 +2017,14 @@ export default {
{ code: '01', value: '寿险' },
{ code: '02', value: '重疾' },
{ code: '03', value: '年金' }
],
// 活动量管理 - 人才库 - 状态
talentPoolStatus: [
{ id: 0, text: '暂不考虑' },
{ id: 1, text: '已加盟' },
{ id: 2, text: '确认加盟' },
{ id: 3, text: '三次接触以上' },
{ id: 4, text: '二次接触' },
{ id: 5, text: '首次接触 '}
]
}

View File

@@ -1,7 +1,8 @@
<template>
<div>
<van-cell :title="talentPoolInfo.name" is-link :icon="talentPoolInfo.avatarUrl" value-class="text-left">
<span>{{ talentPoolInfo.policyName }}</span>
<van-cell :title="talentPoolInfo.name" title-class="ml10" is-link value-class="text-left">
<van-icon slot="icon" :name="talentPoolInfo.avatarUrl || defaultAcatarUrl" style="line-height: inherit;" size="24" />
<span>{{ talentPoolInfo.sameCompany }}</span>
<van-icon slot="right-icon" name="edit" style="line-height: inherit;" color="#1989fa" size="24" />
</van-cell>
</div>
@@ -22,14 +23,15 @@ export default {
default: () => {
return {
name: '王辉',
avatarUrl: 'https://img.yzcdn.cn/vant/cat.jpeg',
policyName: '中国人寿'
sameCompany: '中国人寿'
}
}
}
},
data() {
return {}
return {
defaultAcatarUrl: 'https://b.yzcdn.cn/vant/icon-demo-1126.png'
}
}
}
</script>

View File

@@ -3,12 +3,16 @@
const Navigation = () => import('@/views/ebiz/manpower/Navigation')
const PersonalCenter = () => import('@/views/ebiz/manpower/PersonalCenter')
const IncreaseStaffTools = () => import('@/views/ebiz/manpower/IncreaseStaffTools')
const Training = () => import('@/views/ebiz/manpower/Training')
const ActiveManagement = () => import('@/views/ebiz/manpower/ActiveManagement')
const TalentPoolList = () => import('@/views/ebiz/manpower/talentPool/List')
const TalentPoolAdd = () => import('@/views/ebiz/manpower/talentPool/Add')
const TalentPoolEdit = () => import('@/views/ebiz/manpower/talentPool/Edit')
export default [
{
// 人力发展
@@ -59,5 +63,35 @@ export default [
title: '活动量管理',
index: 100
}
},
{
// 人才库
path: '/manpower/TalentPool/',
name: 'TalentPoolList',
component: TalentPoolList,
meta: {
title: '人才库',
index: 101
}
},
{
// 人才库-新增人才
path: '/manpower/TalentPool/Add',
name: 'TalentPoolAdd',
component: TalentPoolAdd,
meta: {
title: '基本信息',
index: 102
}
},
{
// 人才库-修改人才
path: '/manpower/TalentPool/Edit',
name: 'TalentPoolEdit',
component: TalentPoolEdit,
meta: {
title: '基本信息',
index: 103
}
}
]

View File

@@ -65,8 +65,7 @@ export default {
personnelNames: ['1'],
talentPoolInfo: {
name: '王辉',
avatarUrl: 'https://img.yzcdn.cn/vant/cat.jpeg',
policyName: '中国人寿'
sameCompany: '中国人寿'
},
ActivityLogInfo: {
name: '王辉',

View File

@@ -36,7 +36,7 @@ export default {
{
title: '活动量管理',
src: 'http://localhost:8080/favicon.ico',
path: '/'
path: '/manpower/ActiveManagement'
},
{
title: '培训上岗',

View File

@@ -1 +1,87 @@
<!-- 人才库-新增人才 -->
<!-- 人才库-新增人才 -->
<template>
<div class="container">
<van-field v-model="formData.name" required clearable label="姓名" name="姓名" placeholder="请输入" v-validate="'required|name'" />
<van-field v-model="formData.mobile" clearable label="手机号码" name="手机号码" placeholder="请输入" maxlength="11" type="tel" v-validate="'mobile'" />
<van-field v-model="formData.sameCompany" required clearable label="同业公司" name="同业公司" placeholder="请输入" v-validate="'required'" />
<select-radio :radios="gradeType" label="岗位类型" name="岗位类型" :value.sync="formData.gradeType" :required="true"></select-radio>
<van-field v-model="formData.grade" required clearable label="职级/岗位" name="职级/岗位" placeholder="请输入" v-validate="'required'" />
<van-field v-model="formData.workYears" required clearable label="从业年限" name="从业年限" placeholder="请输入" v-validate="'required'" />
<van-field
:value="formData.status | idToText('talentPoolStatus')"
readonly
required
label="状态"
name="状态"
right-icon="arrow"
placeholder="请选择"
@click="toSelect"
/>
<van-popup v-model="popupShow" position="bottom">
<van-picker show-toolbar :columns="columns" @confirm="onConfirm" @cancel="popupShow = false" />
</van-popup>
</div>
</template>
<script>
import { Field, CellGroup, Cell, Popup, Picker } from 'vant'
import filter from '@/filters/index'
import DataDictionary from '@/assets/js/utils/data-dictionary'
import SelectRadio from '@/components/ebiz/SelectRadio'
export default {
name: 'TalentPoolAdd',
components: {
[Field.name]: Field,
[CellGroup.name]: CellGroup,
[Cell.name]: Cell,
[Popup.name]: Popup,
[Picker.name]: Picker,
[SelectRadio.name]: SelectRadio
},
filters: {
idToText: filter.idToText
},
data() {
return {
popupShow: false,
formData: {
name: '',
mobile: '',
sameCompany: '',
gradeType: '0',
grade: '',
workYears: '',
status: 0
},
gradeType: [
{
label: '内勤',
value: '0'
},
{
label: '外勤',
value: '1'
}
],
columns: DataDictionary.talentPoolStatus
}
},
watch: {},
created() {},
mounted() {},
methods: {
toSelect() {
this.popupShow = true
},
onConfirm(value) {
this.popupShow = false
this.formData.status = value.id
}
}
}
</script>
<style scoped="scoped" lang="scss">
.container {
}
</style>

View File

@@ -1 +1,20 @@
<!-- 人才库-修改人才 -->
<!-- 人才库-修改人才 -->
<template>
<div>TalentPoolEdit 人才库-修改人才</div>
</template>
<script>
export default {
name: 'TalentPoolEdit',
components: {},
data() {
return {}
},
watch: {},
created() {},
mounted() {},
methods: {}
}
</script>
<style scoped="scoped" lang="scss"></style>

View File

@@ -1 +1,72 @@
<!-- 人才库-人才列表 -->
<!-- 人才库-人才列表 -->
<template>
<div class="container">
<van-search placeholder="请输入要查询人的姓名" v-model="searchName" @input="searchList" />
<div v-if="talentPoolList">
<van-index-bar :index-list="indexList">
<div v-for="(item, key) in talentPoolList" :key="key" class="bg-white mb10 mr20">
<van-index-anchor :index="key" class="border-gb" />
<TalentPoolItem v-for="talentPoolInfo in item" :key="talentPoolInfo.personnelCode" :talentPoolInfo="talentPoolInfo"> </TalentPoolItem>
</div>
</van-index-bar>
</div>
<van-button type="info" class="bottom-btn" @click="add" v-no-more-click="1000">新增</van-button>
</div>
</template>
<script>
import { Search, Cell, IndexBar, IndexAnchor, Popup, Button, Tag } from 'vant'
import TalentPoolItem from '@/components/ebiz/manpower/TalentPoolItem'
export default {
name: 'TalentPoolList',
components: {
[Search.name]: Search,
[Cell.name]: Cell,
[IndexBar.name]: IndexBar,
[IndexAnchor.name]: IndexAnchor,
[Popup.name]: Popup,
[Button.name]: Button,
[Tag.name]: Tag,
TalentPoolItem
},
data() {
return {
searchName: '',
indexList: ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '#'],
talentPoolList: {
A: [{ name: '王辉', sameCompany: '中国人寿', personnelCode: 123 }, { name: '辉大概', sameCompany: '中国的分工', personnelCode: 85 }],
B: [{ name: '好的', sameCompany: '中的人寿', personnelCode: 852 }]
}
}
},
watch: {},
created() {},
mounted() {},
methods: {
searchList() {},
add() {
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/manpower/talentPool/Add'
},
routerInfo: {
path: '/manpower/talentPool/Add'
}
})
}
}
}
</script>
<style scoped="scoped" lang="scss">
.container {
.van-search__content {
background: #fff !important;
border-radius: 10px;
}
.van-search {
background: none !important;
}
}
</style>