1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081 |
- <!--
- * @Description: create
- * @Version: 1.0
- * @Autor: XuTongZhang
- * @Date: 2020-07-28 15:25:06
- * @LastEditors: XuTongZhang
- * @LastEditTime: 2020-08-18 17:00:57
- -->
- <template>
- <div class="candidateList">
- <v-input :btn="(isCollapse==1?btn1:isCollapse===2?btn2:isCollapse===3?btn3:btn0).slice(0, 1)" :list="list" :key="isCollapse+3" @del="delAll" @search="search" @through="throughAll" @notice="noticeAll" @eliminate="eliminateAll" @undetermined="undeterminedAll" @sendMail="sendMailAll"></v-input>
- <el-radio-group v-model="isCollapse" size="medium" style="margin-bottom: 20px;" fill="#00a0e9">
- <el-radio-button :label="0">候选人列表</el-radio-button>
- <el-radio-button :label="1">已通过候选人</el-radio-button>
- <el-radio-button :label="2">已淘汰候选人</el-radio-button>
- <el-radio-button :label="3">待定候选人</el-radio-button>
- </el-radio-group><br/>
- <el-dropdown v-if="table.button" @command="dropdownMethods">
- <el-button style="background: #00a0e9;color:#fff">
- 更多操作<i class="el-icon-arrow-down el-icon--right"></i>
- </el-button>
- <el-dropdown-menu slot="dropdown">
- <el-dropdown-item v-for="(item,index) in (isCollapse==1?btn1:isCollapse===2?btn2:isCollapse===3?btn3:btn0).slice(1)" :key="index" :command="{method: item.method}">{{item.name}}</el-dropdown-item>
- </el-dropdown-menu>
- </el-dropdown>
- <div style="height:20px"></div>
- <v-table :key="isCollapse" :table="isCollapse===1?table1:isCollapse===2?table2:isCollapse===3?table3:table" :tableList="tableList" :sortType="true" :form="searchForm" :queryData="queryData" @details="details" @eliminate="eliminate" @through="through" @notice="notice" @del="del" @undetermined="undetermined" @openDia="openDia" @update="update" @selection-change="selection" @sendMail="sendMail" id="id"></v-table>
- <v-pager @page="callPage" :total="totalrecords"></v-pager>
- <el-dialog :visible.sync="dialogFormVisible" width="600px" :before-close="close" :close-on-click-modal="false">
- <el-form :model="form" ref="form" label-width="140px" :rules="rules" label-position="left">
- <el-form-item label-width="0">
- <div class="title">通知群发列表</div>
- <div class="content">
- <el-tag v-for="(item, index) in copyPickList" :key="item" closable @close="copyPickList.splice(index, 1)" :type="errorlist.includes(item)?'danger':'success'">
- {{tableList.some(i => i.id === item) ? tableList.find(i => i.id === item).delivererName + (tableList.find(i => i.id === item).delivererMail || '(无邮箱)') : ''}}
- </el-tag>
- </div>
- </el-form-item>
- <el-form-item label="选择邀约岗位" prop="templateId">
- <el-select v-model="form.templateId" placeholder="请选择邀约岗位">
- <el-option v-for="item in downList.filter(item => item.sceneId===3)" :key="item.id" :label="item.templateName" :value="item.id"></el-option>
- </el-select>
- <!-- <div v-else>{{this.downList1.some(i => i.id === form.processId) ? this.downList1.find(i => i.id === form.processId).processName : ''}}</div> -->
- </el-form-item>
- <el-form-item label="群发邮箱">{{email}}</el-form-item>
- <el-form-item>
- <el-button @click="close">取消</el-button>
- <el-button type="primary" @click="launch">立即发出</el-button>
- </el-form-item>
- </el-form>
- </el-dialog>
- <el-dialog :visible.sync="dialogVisible" width="600px" :before-close="closeDia" :close-on-click-modal="false">
- <div class="title" slot="title">{{info.delivererName}}的面试视频</div>
- <div class="content">
- <div class="video">
- <video width="100%" controls :src="info.answerVideoList && info.answerVideoList.length ? $img + vedioUrl : ''"></video>
- </div>
- <div class="list" v-if="info.answerVideoList && info.answerVideoList.length">
- <div v-for="(item, index) in info.answerVideoList" :key="item.id" class="active" @click="detActive(index)" :class="info.active === index ? 'is-active' : ''">第{{index + 1}}段</div>
- </div>
- <div v-else class="prompt">暂无视频</div>
- </div>
- </el-dialog>
- <el-dialog :visible.sync="visible" width="600px" :before-close="closeVisible" :close-on-click-modal="false">
- <el-form :model="uform" ref="uform" label-width="140px" :rules="rule" label-position="right">
- <el-form-item label="姓名" prop="delivererName">
- <el-input placeholder="请输入姓名" v-model="uform.delivererName" maxlength="32" show-word-limit></el-input>
- </el-form-item>
- <el-form-item label="性别" prop="delivererSex">
- <el-select v-model="uform.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="简历投递职位" prop="positionApplied">
- <el-input placeholder="请输入投递职位" v-model="uform.positionApplied"></el-input>
- </el-form-item> -->
- <el-form-item label="工作年限" prop="delivererWorkExp">
- <el-input placeholder="请输入工作年限" v-model="uform.delivererWorkExp" maxlength="200" show-word-limit></el-input>
- </el-form-item>
- <el-form-item label="学历" prop="delivererEducation">
- <el-select class="select" v-model="uform.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="联系电话" prop="delivererPhone">
- <el-input placeholder="请输入联系电话" v-model.number="uform.delivererPhone" maxlength="11" show-word-limit></el-input>
- </el-form-item>
- <el-form-item label="邮箱地址" prop="delivererMail">
- <el-input placeholder="请输入邮箱地址" v-model="uform.delivererMail" maxlength="32" show-word-limit></el-input>
- </el-form-item>
- <el-form-item label="应聘职位" prop="desiredPositionId">
- <el-select class="select" v-model="uform.desiredPositionId" placeholder="请选择应聘职位">
- <el-option v-for="item in positionList" :key="item.value" :label="item.label" :value="item.value">
- </el-option>
- </el-select>
- </el-form-item>
- <el-form-item>
- <el-button @click="closeVisible">取 消</el-button>
- <el-button type="primary" @click="submit">修 改</el-button>
- </el-form-item>
- </el-form>
- </el-dialog>
- <resume :dialogFormVisible="visibleTwo" :close="closeTwo" :info="infoTwo" :searchForm="searchForm" :queryData="queryData"></resume>
- </div>
- </template>
- <script>
- import resume from './resume'
- export default {
- data () {
- let validator = (rule, value, callback) => {
- if (value === '') {
- callback(new Error('请输入手机号'))
- } else {
- if (!(/^1[3456789]\d{9}$/.test(value))) {
- callback(new Error('请输入正确的手机格式'))
- }
- callback()
- }
- }
- return {
- dialogFormVisible: false,
- dialogVisible: false,
- visible: false,
- visibleTwo: false,
- tableList: [],
- page: 1,
- isCollapse: 0,
- totalrecords: 0,
- pickList: [],
- copyPickList: [],
- downList: [],
- positionList: [],
- errorlist: [],
- searchForm: {},
- form: {},
- uform: {},
- email: '',
- state: 2,
- info: {},
- infoTwo: {},
- vedioUrl: '',
- rules: {
- templateId: [{
- required: true,
- message: '请选择选择邀约岗位',
- trigger: 'blur'
- }]
- },
- rule: {
- delivererEducation: [{
- required: true,
- message: '请选择学历',
- trigger: 'change'
- }],
- delivererName: [{
- required: true,
- message: '请输入姓名',
- trigger: 'change'
- }],
- delivererPhone: [{
- required: true,
- validator,
- trigger: 'change'
- }],
- delivererMail: [{
- required: true,
- message: '请输入邮箱',
- trigger: 'change'
- }],
- delivererSex: [{
- required: true,
- message: '请选择性别',
- trigger: 'change'
- }],
- delivererWorkExp: [{
- required: true,
- message: '请填写工作经验',
- trigger: 'change'
- }],
- // desiredPositionId: [
- // { required: true, message: '请选择应聘职位', trigger: 'change' }
- // ],
- positionApplied: [{
- required: true,
- message: '请填写投递职位',
- trigger: 'change'
- }]
- },
- list: [{
- placeholder: '请输入关键字查询',
- props: 'condition'
- },
- {
- type: 'select',
- placeholder: '性别',
- props: 'delivererSex',
- options: [{
- label: '全部',
- value: null
- }, {
- label: '男',
- value: 1
- }, {
- label: '女',
- value: 0
- }]
- },
- {
- type: 'select',
- placeholder: '来源',
- props: 'resumeFrom',
- options: [{
- label: '全部',
- value: null
- },
- {
- label: '51job',
- value: 0
- },
- {
- label: '智联',
- value: 1
- },
- {
- label: '58同城',
- value: 2
- },
- {
- label: '平台',
- value: 3
- }
- ]
- },
- {
- type: 'date'
- }
- ],
- btn0: [{
- name: '确定',
- type: 'primary',
- method: 'search'
- },
- {
- name: '通过',
- type: 'success',
- method: 'through'
- },
- {
- name: '淘汰',
- type: 'danger',
- method: 'eliminate'
- },
- {
- name: '待定',
- type: 'warning',
- method: 'undetermined'
- },
- {
- name: '邮件通知',
- method: 'sendMail',
- type: 'success'
- }
- ],
- btn1: [{
- name: '确定',
- type: 'primary',
- method: 'search'
- },
- {
- name: '通知成功',
- type: 'success',
- method: 'notice'
- }
- ],
- btn2: [{
- name: '确定',
- type: 'primary',
- method: 'search'
- },
- {
- name: '通过',
- type: 'success',
- method: 'through'
- },
- {
- name: '删除',
- type: 'danger',
- method: 'del'
- },
- {
- name: '邮件通知',
- method: 'sendMail',
- type: 'success'
- }
- ],
- btn3: [{
- name: '确定',
- type: 'primary',
- method: 'search'
- },
- {
- name: '通过',
- type: 'success',
- method: 'through'
- },
- {
- name: '淘汰',
- type: 'danger',
- method: 'eliminate'
- },
- {
- name: '邮件通知',
- method: 'sendMail',
- type: 'success'
- }
- ],
- table: {
- selection: true,
- column: [{
- label: this.$t('field.serialNumber'),
- props: 'serialNumber'
- },
- {
- label: '姓名',
- props: 'delivererName'
- },
- {
- label: '性别',
- props: 'delivererSex',
- options: ['女', '男']
- },
- {
- label: '简历来源',
- props: 'resumeFrom',
- options: ['51job', '智联招聘', '58同城', '平台']
- },
- {
- label: '招聘类型',
- props: 'recruitType',
- options: ['社招', '校招', '直接校招']
- },
- // {
- // label: '简历投递职位',
- // props: 'positionApplied'
- // },
- {
- label: '应聘职位',
- props: 'positionName'
- },
- {
- label: '工作年限',
- props: 'delivererWorkExp'
- },
- {
- label: '学历',
- props: 'delivererEducation'
- },
- {
- label: '联系电话',
- props: 'delivererPhone'
- },
- {
- label: '邮箱',
- props: 'delivererMail'
- },
- {
- label: '通知时间',
- props: 'sendMailTime'
- },
- {
- label: '完成时间',
- props: 'confirmInterviewTime'
- }
- ],
- width: 150,
- button: true,
- handle: [{
- title: '查看',
- method: 'details',
- type: 'info'
- },
- // {
- // title: '查看视频',
- // method: 'openDia',
- // type: 'info'
- // },
- {
- title: '通过',
- method: 'through',
- type: 'success'
- },
- {
- title: '淘汰',
- method: 'eliminate',
- type: 'danger'
- },
- {
- title: '待定',
- method: 'undetermined',
- type: 'warning'
- },
- {
- title: '修改',
- method: 'update',
- type: 'warning'
- },
- {
- title: '邮件通知',
- method: 'sendMail',
- type: 'success'
- }
- ]
- },
- table1: {
- selection: true,
- column: [{
- label: this.$t('field.serialNumber'),
- props: 'serialNumber'
- },
- {
- label: '姓名',
- props: 'delivererName'
- },
- {
- label: '性别',
- props: 'delivererSex',
- options: ['女', '男']
- },
- {
- label: '简历来源',
- props: 'resumeFrom',
- options: ['51job', '智联招聘', '58同城', '平台']
- },
- {
- label: '招聘类型',
- props: 'recruitType',
- options: ['社招', '校招', '直接校招']
- },
- // {
- // label: '简历投递职位',
- // props: 'positionApplied'
- // },
- {
- label: '应聘职位',
- props: 'positionName'
- },
- {
- label: '工作年限',
- props: 'delivererWorkExp'
- },
- {
- label: '学历',
- props: 'delivererEducation'
- },
- {
- label: '联系电话',
- props: 'delivererPhone'
- },
- {
- label: '邮箱',
- props: 'delivererMail'
- },
- {
- label: '通知时间',
- props: 'sendMailTime'
- },
- {
- label: '完成时间',
- props: 'confirmInterviewTime'
- },
- {
- label: '邮件发送状态',
- props: 'sendConfirmStatus',
- options: ['未发送', '发送中', '发送成功', '发送失败']
- }
- ],
- width: 150,
- button: true,
- handle: [{
- title: '查看',
- method: 'details',
- type: 'info'
- },
- // {
- // title: '查看视频',
- // method: 'openDia',
- // type: 'info'
- // },
- {
- title: '通知成功',
- method: 'notice',
- type: 'success'
- },
- {
- title: '修改',
- method: 'update',
- type: 'warning'
- }
- ]
- },
- table2: {
- selection: true,
- column: [{
- label: this.$t('field.serialNumber'),
- props: 'serialNumber'
- },
- {
- label: '姓名',
- props: 'delivererName'
- },
- {
- label: '性别',
- props: 'delivererSex',
- options: ['女', '男']
- },
- {
- label: '简历来源',
- props: 'resumeFrom',
- options: ['51job', '智联招聘', '58同城', '平台']
- },
- // {
- // label: '简历投递职位',
- // props: 'positionApplied'
- // },
- {
- label: '应聘职位',
- props: 'positionName'
- },
- {
- label: '工作年限',
- props: 'delivererWorkExp'
- },
- {
- label: '学历',
- props: 'delivererEducation'
- },
- {
- label: '联系电话',
- props: 'delivererPhone'
- },
- {
- label: '邮箱',
- props: 'delivererMail'
- },
- {
- label: '被标记未通过时间',
- props: 'rejectTime'
- },
- {
- label: '理由',
- props: 'rejectReason'
- }
- ],
- width: 150,
- button: true,
- handle: [{
- title: '查看',
- method: 'details',
- type: 'info'
- },
- {
- title: '通过',
- method: 'through',
- type: 'success'
- },
- {
- title: '删除',
- method: 'del',
- type: 'danger'
- },
- {
- title: '修改',
- method: 'update',
- type: 'warning'
- },
- {
- title: '邮件通知',
- method: 'sendMail',
- type: 'success'
- }
- ]
- },
- table3: {
- selection: true,
- column: [{
- label: this.$t('field.serialNumber'),
- props: 'serialNumber'
- },
- {
- label: '姓名',
- props: 'delivererName'
- },
- {
- label: '性别',
- props: 'delivererSex',
- options: ['女', '男']
- },
- {
- label: '简历来源',
- props: 'resumeFrom',
- options: ['51job', '智联招聘', '58同城', '平台']
- },
- // {
- // label: '简历投递职位',
- // props: 'positionApplied'
- // },
- {
- label: '应聘职位',
- props: 'positionName'
- },
- {
- label: '工作年限',
- props: 'delivererWorkExp'
- },
- {
- label: '学历',
- props: 'delivererEducation'
- },
- {
- label: '联系电话',
- props: 'delivererPhone'
- },
- {
- label: '邮箱',
- props: 'delivererMail'
- }
- ],
- width: 150,
- button: true,
- handle: [{
- title: '查看',
- method: 'details',
- type: 'info'
- },
- // {
- // title: '查看视频',
- // method: 'openDia',
- // type: 'info'
- // },
- {
- title: '通过',
- method: 'through',
- type: 'success'
- },
- {
- title: '淘汰',
- method: 'eliminate',
- type: 'danger'
- },
- {
- title: '修改',
- method: 'update',
- type: 'warning'
- },
- {
- title: '邮件通知',
- method: 'sendMail',
- type: 'success'
- }
- ]
- }
- }
- },
- components: {
- resume
- },
- mounted () {
- this.queryDownList()
- this.queryEmail()
- },
- methods: {
- dropdownMethods ({ method }) {
- console.log(method)
- this[method + 'All']()
- },
- queryData (form = {}) {
- let page = this.page
- this.searchForm = form
- let reqdata = form
- reqdata.interviewResult = this.isCollapse
- reqdata.isPass = 1
- reqdata.isSendInviteMail = 1
- this.$api
- .post('/resumeInfo/queryCandidateList', {
- reqdata,
- page
- })
- .then((res) => {
- this.totalrecords = res.totalrecords
- this.tableList = res.list.map((item, index) => {
- item.delivererSex = item.delivererSex - 0 || 0
- item.desiredPositionId = item.desiredPositionId - 0 || null
- item.serialNumber = (this.page - 1) * 10 + index + 1
- // item.desiredPositionId = item.desiredPositionId ? this.downList1.some(i => i.id === item.desiredPositionId) ? this.downList1.find(i => i.id === item.desiredPositionId).positionName : '' : ''
- return item
- })
- })
- },
- queryDownList () {
- this.$api
- .post('/position/queryPositionList', {
- reqdata: {}
- })
- .then((res) => {
- this.positionList = res.list.map((item) => ({
- value: item.id,
- label: item.positionName
- }))
- this.downList1 = res.list
- this.queryData()
- })
- this.$api
- .post('/template/queryTemplateList', {
- reqdata: {},
- rows: 100
- })
- .then((res) => {
- this.downList = res.list
- })
- },
- queryEmail () {
- this.$api
- .post('/companyAccount/queryCompanyAccountList', {
- reqdata: {}
- }).then(res => {
- this.email = res.list.some(item => item.useType === 1) ? res.list.find(item => item.useType === 1).cmpMailAccount : ''
- })
- },
- search (form) {
- this.queryData(form)
- },
- details (row) {
- // row.filePath ? window.open(this.$img + row.filePath) : this.$message({
- // type: 'info',
- // message: '无此人简历'
- // })
- this.openTwo()
- this.infoTwo = row
- },
- launch () {
- let a
- this.$refs['form'].validate((valid) => {
- a = valid
- })
- if (!a) return
- let resumeInfoStatusList = this.copyPickList.map(item => ({
- id: item,
- templateId: this.form.templateId
- }))
- this.copyPickList.length
- ? this.$api
- .post('/resumeInfo/sendMail', {
- reqdata: {
- resumeInfoStatusList,
- type: this.state
- }
- })
- .then((res) => {
- this.$alert('邮件正在发送中,请耐心等待!', '发送结果', {
- confirmButtonText: '确定',
- callback: action => {
- }
- })
- // this.errorlist = res.object.sendMailFailList.map(item => {
- // return item.id
- // })
- })
- : this.$message({
- type: 'info',
- message: '请添加需要通知的对象!'
- })
- },
- notice (row) {
- this.open()
- this.state = 2
- this.copyPickList = [row.id]
- },
- noticeAll () {
- this.pickList.length
- ? this.open()
- : this.$message({
- type: 'info',
- message: '请选择需要通知的对象!'
- })
- },
- through (row, type = false) {
- let ids = type ? row : [row.id]
- let resumeInfoStatusList = ids.map(item => ({
- id: item,
- interviewResult: 1
- }))
- this.$api
- .post('/resumeInfo/changeInterviewResult', {
- reqdata: {
- resumeInfoStatusList
- }
- })
- .then((res) => {
- this.queryData(this.searchForm)
- })
- },
- throughAll () {
- this.pickList.length
- ? this.through(this.pickList, true)
- : this.$message({
- type: 'info',
- message: '请选择通过的应聘者!'
- })
- },
- eliminate (row, type = false) {
- let ids = type ? row : [row.id]
- let resumeInfoStatusList = ids.map(item => ({
- id: item,
- interviewResult: 2
- }))
- this.$api
- .post('/resumeInfo/changeInterviewResult', {
- reqdata: {
- resumeInfoStatusList
- }
- })
- .then((res) => {
- this.queryData(this.searchForm)
- })
- },
- eliminateAll () {
- this.pickList.length
- ? this.eliminate(this.pickList, true)
- : this.$message({
- type: 'info',
- message: '请选择被淘汰的应聘者!'
- })
- },
- del (row, type = false) {
- let ids = type ? row : [row.id]
- let resumeInfoStatusList = ids.map(item => ({
- id: item,
- status: 1
- }))
- this.$confirm('此操作将永久删除该数据, 是否继续?', '提示', {
- confirmButtonText: '确定',
- cancelButtonText: '取消',
- type: 'warning'
- })
- .then(() => {
- this.$api
- .post('/resumeInfo/deleteResumeInfo', {
- reqdata: {
- resumeInfoStatusList
- }
- })
- .then((res) => {
- this.queryData(this.searchForm)
- this.$message({
- type: 'success',
- message: '删除成功!'
- })
- })
- })
- .catch(() => {
- this.$message({
- type: 'info',
- message: '已取消删除'
- })
- })
- },
- delAll () {
- this.pickList.length
- ? this.del(this.pickList, true)
- : this.$message({
- type: 'info',
- message: '请选择需要删除的内容'
- })
- },
- undetermined (row, type = false) {
- let ids = type ? row : [row.id]
- let resumeInfoStatusList = ids.map(item => ({
- id: item,
- interviewResult: 3
- }))
- this.$api
- .post('/resumeInfo/changeInterviewResult', {
- reqdata: {
- resumeInfoStatusList
- }
- })
- .then((res) => {
- this.queryData(this.searchForm)
- })
- },
- undeterminedAll () {
- this.pickList.length
- ? this.undetermined(this.pickList, true)
- : this.$message({
- type: 'info',
- message: '请选择待定的应聘者'
- })
- },
- selection (val) {
- this.$set(this.$data, 'pickList', val)
- },
- detActive (index) {
- this.$set(this.info, 'active', index)
- this.vedioUrl = this.info.answerVideoList[this.info.active || 0] ? this.info.answerVideoList[this.info.active || 0].answerVideoPath : ''
- },
- update (row) {
- this.openVisible()
- console.log(row)
- this.uform = Object.assign({}, row)
- },
- submit () {
- let a
- this.$refs['uform'].validate((valid) => {
- a = valid
- })
- if (!a) return
- let reqdata = this.uform
- this.$api
- .post('/resumeInfo/updateResumeInfo', {
- reqdata
- })
- .then((res) => {
- this.$message({
- message: '修改成功!',
- type: 'success'
- })
- this.closeVisible()
- this.queryData(this.searchForm)
- })
- },
- sendMail ({ id }) {
- this.open()
- this.state = 2
- this.copyPickList = [id]
- },
- sendMailAll () {
- if (this.pickList.length) {
- this.open()
- this.state = 2
- } else {
- this.$message({
- type: 'info',
- message: '请选择需通知的应聘者'
- })
- }
- },
- open () {
- this.dialogFormVisible = true
- },
- close () {
- this.dialogFormVisible = false
- this.form = {}
- this.queryData(this.searchForm)
- this.copyPickList = Array.from(this.pickList)
- },
- closeDia () {
- this.dialogVisible = false
- },
- openDia (row) {
- this.info = row
- this.info.active = 0
- this.vedioUrl = this.info.answerVideoList[this.info.active || 0] ? this.info.answerVideoList[this.info.active || 0].answerVideoPath : ''
- this.dialogVisible = true
- },
- openVisible () {
- this.visible = true
- },
- openTwo () {
- this.visibleTwo = true
- },
- closeTwo () {
- this.visibleTwo = false
- },
- closeVisible () {
- this.visible = false
- this.uform = {}
- },
- callPage (val) {
- this.page = val
- this.queryData(this.searchForm)
- }
- },
- watch: {
- isCollapse () {
- this.queryData(this.searchForm)
- this.isCollapse === 0 && this.$set(this.table, 'handle',
- [{
- title: '查看',
- method: 'details',
- type: 'info'
- },
- // {
- // title: '查看视频',
- // method: 'openDia',
- // type: 'info'
- // },
- {
- title: '通过',
- method: 'through',
- type: 'success'
- },
- {
- title: '淘汰',
- method: 'eliminate',
- type: 'danger'
- },
- {
- title: '待定',
- method: 'undetermined',
- type: 'warning'
- },
- {
- title: '修改',
- method: 'update',
- type: 'warning'
- },
- {
- title: '邮件通知',
- method: 'sendMail',
- type: 'success'
- }
- ]
- )
- },
- pickList () {
- this.copyPickList = Array.from(this.pickList)
- }
- }
- }
- </script>
- <style lang="scss" scoped>
- .title {
- font-size: 20px;
- font-weight: bold;
- }
- .prompt {
- text-align: center;
- height: 30px;
- line-height: 40px;
- font-size: 20px;
- color: #888;
- }
- </style><style lang="scss">
- .candidateList {
- .el-dialog__body {
- padding-top: 10px;
- }
- }
- .list {
- margin-top: 10px;
- font-size: 14px;
- display: flex;
- color: rgb(42, 117, 216);
- >div {
- cursor: pointer;
- margin: 10px;
- }
- .is-active {
- color: #000;
- font-size: 16px;
- margin-top: 7px;
- }
- }
- .content {
- min-height: 50px;
- >span {
- margin: 5px;
- }
- }
- </style>
|