Commit a7bced1c authored by zhangderong's avatar zhangderong

A

parent 2618d792
......@@ -9,14 +9,14 @@ function resolve (dir) {
}
const createLintingRule = () => ({
test: /\.(js|vue)$/,
loader: 'eslint-loader',
enforce: 'pre',
include: [resolve('src'), resolve('test')],
options: {
formatter: require('eslint-friendly-formatter'),
emitWarning: !config.dev.showEslintErrorsInOverlay
}
// test: /\.(js|vue)$/,
// loader: 'eslint-loader',
// enforce: 'pre',
// include: [resolve('src'), resolve('test')],
// options: {
// formatter: require('eslint-friendly-formatter'),
// emitWarning: !config.dev.showEslintErrorsInOverlay
// }
})
module.exports = {
......
......@@ -31,7 +31,7 @@ const devWebpackConfig = merge(baseWebpackConfig, {
hot: true,
contentBase: false, // since we use CopyWebpackPlugin.
compress: true,
host: HOST || config.dev.host,
host: '192.168.28.10' || config.dev.host,
port: PORT || config.dev.port,
open: config.dev.autoOpenBrowser,
overlay: config.dev.errorOverlay
......@@ -76,6 +76,7 @@ module.exports = new Promise((resolve, reject) => {
} else {
// publish the new Port, necessary for e2e tests
process.env.PORT = port
devWebpackConfig.devServer.host = '0.0.0.0'
// add port to devServer config
devWebpackConfig.devServer.port = port
......
......@@ -10,10 +10,19 @@ module.exports = {
// Paths
assetsSubDirectory: 'static',
assetsPublicPath: '/',
proxyTable: {},
proxyTable: {
'/text':{
target:'http://recruit-ai3.liangkebang.net',
changeOrigin:true,
pathRewrite:{
'^/text':''
}
}
},
// Various Dev Server settings
host: 'localhost', // can be overwritten by process.env.HOST
host: '192.168.28.10', // can be overwritten by process.env.HOST
port: 8080, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined
autoOpenBrowser: true,
errorOverlay: true,
......
......@@ -3276,6 +3276,11 @@
"event-emitter": "~0.3.5"
}
},
"es6-promise": {
"version": "4.2.8",
"resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz",
"integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w=="
},
"es6-set": {
"version": "0.1.5",
"resolved": "http://npmprivate.quantgroups.com/es6-set/-/es6-set-0.1.5.tgz",
......
......@@ -12,6 +12,7 @@
},
"dependencies": {
"axios": "^0.19.0",
"es6-promise": "^4.2.8",
"iview": "^3.4.2",
"less": "^3.9.0",
"less-loader": "^5.0.0",
......
import axios from '../service/http.service'
import {
baseApi,contractApi
} from '../config/env.config'
import qs from 'qs'
\ No newline at end of file
import axios from '../service/http.service'
import {
baseApi,contractApi
} from '../config/env.config'
import qs from 'qs'
//登录
export function login(params) {
// params=qs.stringify(params)
return axios.post(`/text/api/login/doLogin`,params,{headers: {
'Content-Type':'application/json'
}})
}
\ No newline at end of file
import axios from '../service/http.service'
import {
baseApi,contractApi
} from '../config/env.config'
import qs from 'qs'
// 查询简历列表
export function serchList(parmars){
return axios.post(`/text/api/resume/findList`,parmars,{headers: {
'Content-Type':'application/json'
}})
}
\ No newline at end of file
......@@ -4,17 +4,58 @@ import {
} from '../config/env.config'
import qs from 'qs'
//账号列表查询
export function queryaccount(params) {
// params = checkParamsVoid(params)
params = qs.stringify(params)
return axios.post(`${contractApi}/api/user/findList`,params)
export function queryaccountList(params) {
return axios.post(`/text/api/user/findList`,params,{headers: {
'Content-Type':'application/json;',
}})
}
//添加账户
export function addAccount (params) {
console.log(params)
// params =qs.stringify(params)
return axios.post(`${contractApi}/api/user/add`,qs.stringify(params),{headers: {
'Accept':'application/json',
'Content-Type':'application/json'
return axios.post(`/text/api/user/add`,params,{headers: {
'Content-Type':'application/json',
"X-Requested-With":"XMLHttpRequest"
}})
}
//删除单条账户
export function Delateaccount(parmars){
return axios.get(`/text/api/user/delete/${parmars.id}`,{headers: {
'Content-Type':'application/json',
}})
}
//批量删除
export function delateAllAccount(params){
return axios.post(`/text//api/user/delete`,params,{headers: {
'Content-Type':'application/json',
}})
}
//恢复初始密码
export function recoveryPassword(parmars){
return axios.post(`/text/api/user/initial/${parmars.id}`,{headers: {
'Content-Type':'application/json',
}})
}
//查询邮箱列表
export function queryemailList(parmars){
console.log(parmars)
return axios.post(`/text/api/email/list`,parmars,{headers: {
'Content-Type':'application/json',
}})
}
// 同步邮箱
export function Synchronization(parmars){
parmars=qs.stringify(parmars)
console.log(parmars)
return axios.post(`/text/api/email/bind`,parmars,{headers: {
'Content-Type':'application/x-www-form-urlencoded',
'X-Requested-With':'XMLHttpRequest'
}})
}
// 解绑邮箱
export function jiebangEmail(parmars){
parmars=qs.stringify(parmars)
console.log(parmars)
return axios.post(`/text/api/email/unbind`,parmars,{headers: {
'Content-Type':'application/x-www-form-urlencoded',
'X-Requested-With':'XMLHttpRequest'
}})
}
\ No newline at end of file
const protocol = window.location.protocol
let baseApi = '',contractApi = ''
let baseApi = ''
let contractApi = ''
if(process.env.NODE_ENV === 'production'){
baseApi ='http://credit.xyqb.com'
......
......@@ -2,11 +2,11 @@
<div class="interview">
<div class="interview-left">
<div class="leftcontentTop" style="height:120px">
<div style="height:100%;float:left;width:220px;background:rgb(0,146,255);margin-left:30px"></div>
<div style="height:100%;float:left;width:300px;background:rgb(253,85,83);margin-left:30px"></div>
<div style="height:100%;float:left;width:350px;background:rgb(0,176,160);margin-left:30px"></div>
<div style="height:100%;float:left;width:20%;background:rgb(0,146,255);margin-left:30px"></div>
<div style="height:100%;float:left;width:30%;background:rgb(253,85,83);margin-left:30px"></div>
<div style="height:100%;float:left;width:30%;background:rgb(0,176,160);margin-left:30px"></div>
</div>
<div class="leftcontentContent" v-for="item in Essentialinformation">
<div class="leftcontentContent" v-for="(item,index) in Essentialinformation " :key='index'>
<div class="contentMassage" >
<p style="font-size:16px;color:black" >
<span style="margin-left:10px">{{item.name}} |</span>
......@@ -23,14 +23,19 @@
<div class="contentState">
<p style="font-size:14px;">
<span style="margin-left:20px" @click="modal4=true">当前状态</span>
<span style="float:right;margin:0 20px 0 10px;color:#2d8cf0" @click="Stopinterview">{{item.status}}</span>
<!-- <span style="float:right;margin:0 20px 0 10px;color:#2d8cf0" @click="UpdateStatus(item.status)">{{item.status}}</span> -->
<span style="float:right;margin:0 20px 0 10px;color:#2d8cf0" v-if="item.status==1" @click="Stopinterview">终止面试</span>
<span style="float:right;margin:0 20px 0 10px;color:#2d8cf0" v-if="item.status==2" @click="OPPeninterview">重启面试</span>
</p>
<p style="font-size:14px;margin-top:15px">
<span style="margin:0 20px 0 10px">面试结果待定</span>
<span style="float:right;margin:0 20px 0 10px;color:#2d8cf0" @click="step" >变更状态<br>
<select name="2" id="qq">
<option value="1"></option>
<option value=""></option>
</select>
<!-- <span style="float:right;margin:0 20px 0 10px;color:#2d8cf0">变更状态<br>
<Icon type="ios-arrow-down" style="margin-left:20px;color:#999999"/>
</span>
</span> -->
</p>
</div>
......@@ -40,62 +45,6 @@
<p>2019-07-02 12:07:33</p>
</div>
<div style="height:10px;width:100%;background:#F2F2F2;float:left"></div>
<div id="step">
<ol class="steps">
<li class="step-active" style="margin-left:120px">
<div class="step-line"></div>
<div class="step-content">
<span class="step-num">1</span>
<div>
<select name="1" id="a" style="margin-left:10px">
<option value="1">准备约面</option>
<option value="2">已邀约</option>
<option value="3">邀约失败</option>
</select>
</div>
</div>
</li>
<li class="step-active">
<div class="step-line"></div>
<div class="step-content">
<span class="step-num">2</span>
<div>
<select name="1" id="a" style="margin-left:10px">
<option value="1">面试结果</option>
<option value="2">面试淘汰</option>
<option value="3">面试合适</option>
</select>
</div>
</div>
</li>
<li class="step-active">
<div class="step-line"></div>
<div class="step-content">
<span class="step-num">3</span>
<div class="step-text">
<select name="1" id="a" style="margin-left:10px">
<option value="1">待offer</option>
<option value="2">已发offer</option>
</select>
</div>
</div>
</li>
<li class="step-active">
<div class="step-content">
<span class="step-num">4</span>
<div class="step-text">
<select name="1" id="a" style="margin-left:10px">
<option value="1">待入职</option>
<option value="2">已入职</option>
<option value="3">未入职</option>
</select>
</div>
</div>
</li>
</ol>
</div>
</div>
<div class="InpageBottom">
<Page :total="100" show-elevator style="text-align:center;margin-top:8px"/>
......@@ -104,7 +53,7 @@
<div class="interview-right">
<Form :label-width="80">
<FormItem label="关键词:" style="margin-top:20px">
<Input placeholder="请输入关键词" style="width:280px"></Input>
<Input placeholder="请输入关键词" style="width:280px"/>
</FormItem>
<FormItem label="学历:" class="Education2">
<span v-for="(item,index) in Education" :class="{'active':index==clickIndex1}" @click="clickIndex1 = index" :key="index"> {{item}}</span>
......@@ -169,13 +118,13 @@
<h3 style="text-align:center">更改约面信息</h3>
<Form :label-width="80">
<FormItem label="*邀约人" style="margin-top:20px">
<Input></Input>
<Input/>
</FormItem>
<FormItem label="*面试时间" style="margin-top:20px">
<DatePicker type="datetime" style="width:185px"></DatePicker>
</FormItem>
<FormItem label="*面试官" style="margin-top:20px">
<Input></Input>
<Input/>
</FormItem>
</Form>
<div slot='footer' style="text-align:center">
......@@ -242,7 +191,7 @@ export default {
clickIndex2: 0,
clickIndex3: 0,
Education:['不限','专科以下','专科及以上','本科及以上','硕士及以上','博士及以上','985/211'],
state:['不限','待邀约','已邀约','待面试','面试合适','面试淘汰','已到公司','待Offer','已发Offer','待入职','已入职','未入职'],
state:['不限','准备约面','已邀约','邀约失败','面试淘汰','待Offer','待入职','已入职','未入职','终止面试'],
activeName:'',
Essentialinformation:[
{
......@@ -252,7 +201,7 @@ export default {
Invitation:'张三',
Interviewer:'李四',
age:'33岁',
status:'终止面试',
status:'1',
sex:'',
work:'10年',
a:'java工程师',
......@@ -271,7 +220,7 @@ export default {
Interviewer:'李四',
work:'10年',
a:'java工程师',
status:'重启面试',
status:'2',
b:'2019-09-02',
data:'13:09:09',
qudao:'boss直聘',
......@@ -287,7 +236,7 @@ export default {
Interviewer:'李四',
work:'10年',
a:'java工程师',
status:'重启面试',
status:'2',
b:'2019-09-02',
data:'13:09:09',
qudao:'boss直聘',
......@@ -317,22 +266,27 @@ export default {
this.status=status
this.modal2=false
},
//操作步骤条
step(){
// var Ostep=document.getElementById("step")
// console.log(Ostep)
// this.Ostep.style.display="block"
if( document.getElementById('step').style.display=="block"){
document.getElementById('step').style.display="none"
return
}
document.getElementById('step').style.display="block"
},
//终止面试弹出框
Stopinterview(){
this.modal3=true
},
//重启面试
OPPeninterview(){
this.modal4=true
},
//操作状态
UpdateStatus(LLL){
let STATUS=LLL;
if(this.STATUS=='终止面试'){
console.log(this.STATUS)
this.modal3=true
}
if(this.STATUS=='重启面试'){
this.modal4=true
}
}
},
mounted(){
......@@ -348,14 +302,14 @@ export default {
}
.interview-left{
min-height: 1100px;
width: 1000px;
width: 65%;
float: left;
background: #F2F2F2;
}
.interview-right{
min-height: 1100px;
width: 500px;
width: 30%;
float: left;
margin-left: 3px;
background: white
......@@ -370,21 +324,21 @@ export default {
margin-top: 10px
}
.contentMassage{
width: 460px;
width: 50%;
height: 80px;
float: left;
margin-left: 15px;
background: white;
}
.contentState{
width: 300px;
width: 20%;
height: 80px;
float: left;
margin-left: 25px;
background: white;
}
.contentRecord{
width:150px;
width:15%;
height: 80px;
float: left;
margin-left: 25px;
......@@ -392,14 +346,6 @@ export default {
text-align: center;
line-height: 24px
}
#step{
width: 100%;
height: 64px;
float: left;
display: none;
border: 1px solid black;
text-align: center,
}
.Recode span{
margin-left:20px
}
......@@ -413,67 +359,6 @@ export default {
.active{
color: blue;
}
ol.steps::-webkit-scrollbar { /* chrome 隐藏滚动条*/
display: none;
}
ol.steps{
list-style: none;
display: flex;
overflow-x: auto;
height: 64px;
margin: 0 auto;
width: 850px
}
ol.steps:after,ol.steps li:after{
content: '';
display: block;
clear: both;
}
ol.steps li{
float: left;
flex: 1;
position: relative;
min-width: 120px;
}
ol.steps li .step-line{
height: 5px;
background-color: #e0e0e0;
box-shadow: inset 0 1px 1px rgba(0,0,0,.2);
margin-top: 15px;
}
ol.steps li.step-active .step-line{
background-color: #009ACD;
box-shadow: inset 0 1px 1px #009ACD;
margin-top:22px
}
ol.steps .step-content{
position: absolute;
top:0;
left:-15px ;
text-align: center;
margin-top:10px
}
ol.steps li .step-content .step-num{
display: inline-block;
height: 30px;
width: 30px;
color: #fff;
background-color: #b9b9b9;
line-height: 30px;
border-radius: 50%;
text-align: center;
border:2px solid rgba(224,224,224,1);
}
ol.steps li.step-active .step-content .step-num{
background-color: #009ACD;
}
ol.steps li.step-end{
width: 120px!important;
flex: inherit;
}
ol.steps li.step-end .step-line{
display: none;
}
select::-ms-expand{display:none;}
select{
appearance:none;
......
......@@ -13,12 +13,12 @@
<div class="login_content">
<Form ref="formInline" :model="formInline" :rules="ruleInline" >
<FormItem prop="user">
<Input type="text" v-model="formInline.user" placeholder="Username" class="wordStyle">
<Input type="text" v-model="formInline.user" placeholder="Username" class="wordStyle" >
<Icon type="ios-person-outline" slot="prepend"></Icon>
</Input>
</FormItem>
<FormItem prop="password">
<Input type="password" v-model="formInline.password" placeholder="Password" class="wordStyle">
<Input type="password" v-model="formInline.password" placeholder="Password" class="wordStyle" >
<Icon type="ios-lock-outline" slot="prepend"></Icon>
</Input>
</FormItem>
......@@ -35,6 +35,8 @@
</div>
</template>
<script>
import { login} from '../../api/login.server.js'
export default {
data () {
return {
......@@ -64,8 +66,18 @@ export default {
})
},
login(){
let params={
userCode:this.formInline.user,
password:this.formInline.password
}
login(params).then(res=>{
console.log(res)
if(res.data!==''){
this.$router.push({name:"allResume"})
}
})
// this.$router.push({name:"allResume"})
}
}
}
</script>
......@@ -76,19 +88,19 @@ export default {
background: #EAEAEA;
}
.login-content{
width: 1100px;
width: 1200px;
height: 1000px;
margin-left: 500px
margin-left: 500px;
}
.loginContent-left {
float: left;
width: 600px;
height: 800px
width: 620px;
height: 740px
}
.loginContent-right{
float: left;
width: 500px;
height: 800px;
height: 740px;
background: #ffffff
}
.loginContent-left img{
......
......@@ -3,19 +3,19 @@
<div class="allResume-left">
<Form :label-width="80">
<FormItem label="关键词:" style="margin-top:20px">
<Input placeholder="请输入关键词" style="width:300px"></Input>
<Input placeholder="请输入关键词" style="width:300px" v-model="keywords"/>
</FormItem>
<FormItem label="历任公司:">
<Input placeholder="请输入历任公司" style="width:300px"></Input>
<Input placeholder="请输入历任公司" style="width:300px" v-model="lrgs"/>
</FormItem>
<FormItem label="性别:" class="sex" >
<span v-for="(item,index) in sexs" :class="{'active':index==clickIndex1}" @click="clickIndex1 = index" :key="index"> {{item}}</span>
<FormItem label="性别:" class="sex">
<span v-for="(item,index) in sexs" :class="{'active':index==clickIndex1}" @click="selectElement1(item,index)" :key="index" > {{item}}</span>
</FormItem>
<FormItem label="学历:" class="Education">
<span v-for="(item,index) in Education" :class="{'active':index==clickIndex2}" @click="clickIndex2 = index" :key="index"> {{item}}</span>
<span v-for="(item,index) in Education" :class="{'active':index==clickIndex2}" @click="selectElement2(item,index)" :key="index"> {{item}}</span>
</FormItem>
<FormItem label="状态:" class="state">
<span v-for="(item,index) in state" :class="{'active':index==clickIndex3}" @click="clickIndex3 = index" :key="index"> {{item}}</span>
<span v-for="(item,index) in state" :class="{'active':index==clickIndex3}" @click="selectElement3(item,index)" :key="index"> {{item}}</span>
</FormItem>
<FormItem label="工作年限:">
<span style="width:100px">
......@@ -59,51 +59,50 @@
<div class="allResume-right">
<div class="resumeRightContentTop">
<div style="width:100%;height:80px;margin-top:20px">
<div style="width:500px;height:100%;float:left;background:rgb(61,169,247);margin-left:60px"></div>
<div style="width:600px;height:100%;float:left;background:rgb(253,85,83);margin-left:30px"></div>
<div style="width:45%;height:100%;float:left;background:rgb(61,169,247);margin-left:60px"></div>
<div style="width:45%;height:100%;float:left;background:rgb(253,85,83);margin-left:30px"></div>
</div>
<div style="margin-top:20px;height:30px;line-height:30px;border-bottom:1px solid black">
<input type='checkbox' class='input-checkbox' v-model='checked' v-on:click='checkedAll' style="margin-left:20px"><span style="margin-left:10px">全选</span>
<span style="margin-left:20px;background:#2d8cf0;width:60px;height:30px">下载简历</span>
<span style="margin-left:20px">删除</span>
<span style="margin-left:850px">导出列表</span>
<span style="margin-left:73%">导出列表</span>
</div>
<div class="Resumecontent">
<div v-for='(item,i) in ajaxData' :key="i" id="a">
<div style="width:500px;float:left;" class="massage">
<input type='checkbox' name='checkboxinput' class='input-checkbox' v-model='checkboxList' :value="item.id">
<span>{{item.name}} |</span><span>{{item.phone}} |</span><span>{{item.age}} |</span>
<span>{{item.sex}} |</span><span>{{item.work}} |</span><span>{{item.a}}<br></span>
<span style="margin-left:20px">{{item.b}}</span><span>{{item.data}}投递 |</span>
<span>{{item.qudao}} |</span><span>{{item.email}}</span><br>
<span>{{item.ownerName}} |</span><span>{{item.ownerMobile}} |</span><span>{{item.ownerAge}} |</span>
<span>{{item.ownerSex}} |</span><span>{{item.ownerWorkYears}} |</span><span>{{item.ownerExpectTitles}}<br></span>
<span >{{item.modifyTime}} 投递 |</span>
<span>{{item.optSource}} |</span><span>{{item.srcSite}}</span><br>
</div>
<div style="width:300px;float:left;height:60px;text-align:right;margin-left:40px">
<span style="margin-right:30px;margin-top:5px" v-if="item.status==1"><Icon type="ios-radio-button-on" style="color:#43CD80" /><span style="margin-left:10px">面试合适</span></span>
<span style="margin-right:30px;margin-top:5px" v-else-if="item.status==2"><Icon type="ios-radio-button-on" style="color:red" /><span style="margin-left:10px">面试淘汰</span></span>
<span style="margin-right:30px;margin-top:5px" v-else-if="item.status==3"><Icon type="ios-radio-button-on" style="color:red" /><span style="margin-left:10px">面试已终止</span></span>
<span style="margin-right:30px;margin-top:5px" v-else-if="item.status==4"><Icon type="ios-radio-button-on" style="color:red" /><span style="margin-left:10px">邀约失败</span></span>
<span style="margin-right:30px;margin-top:5px" v-else-if="item.status==5"><Icon type="ios-radio-button-on" style="color:red" /><span style="margin-left:10px">未入职</span></span>
<span style="margin-right:30px;margin-top:5px" v-else-if="item.status==6"><Icon type="ios-radio-button-on" style="color:#43CD80" /><span style="margin-left:10px">准备约面</span></span>
<span style="margin-right:30px;margin-top:5px" v-else-if="item.status==7"><Icon type="ios-radio-button-on" style="color:#43CD80" /><span style="margin-left:10px">已邀约</span></span>
<span style="margin-right:30px;margin-top:5px" v-else-if="item.status==8"><Icon type="ios-radio-button-on" style="color:#43CD80" /><span style="margin-left:10px">面试结果待定</span></span>
<span style="margin-right:30px;margin-top:5px" v-else-if="item.status==9"><Icon type="ios-radio-button-on" style="color:#43CD80" /><span style="margin-left:10px">待Offer</span></span>
<span style="margin-right:30px;margin-top:5px" v-else-if="item.status==10"><Icon type="ios-radio-button-on" style="color:#43CD80" /><span style="margin-left:10px">已发Offer</span></span>
<span style="margin-right:30px;margin-top:5px" v-else-if="item.status==11"><Icon type="ios-radio-button-on" style="color:#43CD80" /><span style="margin-left:10px">代入职</span></span>
<span style="margin-right:30px;margin-top:5px" v-else-if="item.status==12"><Icon type="ios-radio-button-on" style="color:#43CD80" /><span style="margin-left:10px">已入职</span></span>
<select name="1" id="a" style="margin-right:20px;margin-top:5px" @change="selectFn($event)" v-else="item.status==13">
<span style="margin-right:30px;margin-top:5px" v-if="item.flowStatus=='INTERVIEW_OK'"><Icon type="ios-radio-button-on" style="color:#43CD80" /><span style="margin-left:10px">面试合适</span></span>
<span style="margin-right:30px;margin-top:5px" v-else-if="item.flowStatus=='INTERVIEW_FAIL'"><Icon type="ios-radio-button-on" style="color:red" /><span style="margin-left:10px">面试淘汰</span></span>
<span style="margin-right:30px;margin-top:5px" v-else-if="item.flowStatus=='END'"><Icon type="ios-radio-button-on" style="color:red" /><span style="margin-left:10px">终止面试</span></span>
<span style="margin-right:30px;margin-top:5px" v-else-if="item.flowStatus=='SEE_FAIL'"><Icon type="ios-radio-button-on" style="color:red" /><span style="margin-left:10px">约面失败</span></span>
<span style="margin-right:30px;margin-top:5px" v-else-if="item.flowStatus=='NO_ENTRY'"><Icon type="ios-radio-button-on" style="color:red" /><span style="margin-left:10px">未入职</span></span>
<span style="margin-right:30px;margin-top:5px" v-else-if="item.flowStatus=='TO_SEE'"><Icon type="ios-radio-button-on" style="color:#43CD80" /><span style="margin-left:10px">准备约面</span></span>
<span style="margin-right:30px;margin-top:5px" v-else-if="item.flowStatus=='HAS_SEE'"><Icon type="ios-radio-button-on" style="color:#43CD80" /><span style="margin-left:10px">已邀约</span></span>
<span style="margin-right:30px;margin-top:5px" v-else-if="item.flowStatus=='OPTION'"><Icon type="ios-radio-button-on" style="color:#43CD80" /><span style="margin-left:10px">备选</span></span>
<span style="margin-right:30px;margin-top:5px" v-else-if="item.flowStatus=='TO_SENT_OFFER'"><Icon type="ios-radio-button-on" style="color:#43CD80" /><span style="margin-left:10px">待Offer</span></span>
<span style="margin-right:30px;margin-top:5px" v-else-if="item.flowStatus=='TO_SENT_OFFER'"><Icon type="ios-radio-button-on" style="color:#43CD80" /><span style="margin-left:10px">已发Offer</span></span>
<span style="margin-right:30px;margin-top:5px" v-else-if="item.flowStatus=='TO_ENTRY('"><Icon type="ios-radio-button-on" style="color:#43CD80" /><span style="margin-left:10px">代入职</span></span>
<span style="margin-right:30px;margin-top:5px" v-else-if="item.flowStatus==' HAS_ENTRY'"><Icon type="ios-radio-button-on" style="color:#43CD80" /><span style="margin-left:10px">已入职</span></span>
<select name="1" id="a" style="margin-right:20px;margin-top:5px" @change="selectFn($event)" v-else-if="item.status=='TO_DO'">
<option value="1">待处理</option>
<option value="2">pass</option>
<option value="3" @click="modal2=true">准备约面</option>
<option value="3">准备约面</option>
<option value="4">备选</option>
</select>
<p style="font-size:18px;margin:5px 35px 0 0"><span><Icon type="md-download" /></span>
<span ><Icon type="md-trash" /></span></p>
</div>
<div style="width:190px;float:left;height:60px;margin-left:40px">
<span style="margin:10px 0 0 10px;display:inline-block">最后操作人 |李宁</span><br>
<span >2019-09-09</span>
<span>10:09:09</span>
<p style="height:40px;width:30px;margin:-35px 0 0 150px;color:blue" @click="RecodeFrame">操作记录</p>
<span style="margin:10px 0 0 10px;display:inline-block">最后操作人 |</span><span style="margin-left:13px">{{item.modifier}}</span><br>
<span style="margin-left:10px">{{item.modifyTime}}</span>
<p style="height:40px;width:30px;margin:-35px 0 0 180px;color:blue" @click="RecodeFrame">操作记录</p>
</div>
</div>
</div>
......@@ -164,6 +163,7 @@
</div>
</template>
<script>
import { serchList} from '../../api/resume.server.js'
export default {
data () {
return {
......@@ -175,186 +175,21 @@
clickIndex1: 0,
clickIndex2: 0,
clickIndex3: 0,
keywords:'',
lrgs:'',
item:[],
searchInfo:{
pageSize:30,
pageIndex:'',
id:''
},
arr:[],
sexs:['不限','',''],
Education:['不限','专科以下','专科及以上','本科及以上','硕士及以上','博士及以上','985/211'],
state:['不限','待处理','备选','Pass','待约面','已约面','约面失败','面试合适','面试淘汰','已发Offer','待发Offer','已入职','未入职','流程终止'],
state:['不限','待处理','备选','Pass','准备约面','已邀约','邀约失败','面试淘汰','待Offer','待入职','已入职','未入职','终止面试'],
active:'',
value:[],
ajaxData: [{ // 后台请求过来的数据
id:'1',
name: '李宁',
phone: '12345678998',
age:'33岁',
status:13,
sex:'',
work:'10年',
a:'java工程师',
b:'2019-09-02',
data:'13:09:09',
qudao:'boss直聘',
email:'445151511516516@quiwhu.cn'
},{
id:'2',
name: 'pp',
phone: '12345678998',
age:'33岁',
sex:'',
status:2,
work:'10年',
a:'java工程师',
b:'2019-09-02',
data:'13:09:09',
qudao:'boss直聘',
email:'445151511516516@quiwhu.cn'
},{
id:'3',
name: 'oo',
phone: '12345678998',
age:'33岁',
sex:'',
work:'10年',
status:3,
a:'java工程师',
b:'2019-09-02',
data:'13:09:09',
qudao:'boss直聘',
email:'445151511516516@quiwhu.cn'
},{
id:'2',
name: 'pp',
phone: '12345678998',
age:'33岁',
sex:'',
status:1,
work:'10年',
a:'java工程师',
b:'2019-09-02',
data:'13:09:09',
qudao:'boss直聘',
email:'445151511516516@quiwhu.cn'
},{
id:'2',
name: 'pp',
phone: '12345678998',
age:'33岁',
sex:'',
status:4,
work:'10年',
a:'java工程师',
b:'2019-09-02',
data:'13:09:09',
qudao:'boss直聘',
email:'445151511516516@quiwhu.cn'
},
{
id:'2',
name: 'pp',
phone: '12345678998',
age:'33岁',
sex:'',
status:5,
work:'10年',
a:'java工程师',
b:'2019-09-02',
data:'13:09:09',
qudao:'boss直聘',
email:'445151511516516@quiwhu.cn'
},{
id:'2',
name: 'pp',
phone: '12345678998',
age:'33岁',
sex:'',
status:6,
work:'10年',
a:'java工程师',
b:'2019-09-02',
data:'13:09:09',
qudao:'boss直聘',
email:'445151511516516@quiwhu.cn'
},{
id:'2',
name: 'pp',
phone: '12345678998',
age:'33岁',
sex:'',
status:7,
work:'10年',
a:'java工程师',
b:'2019-09-02',
data:'13:09:09',
qudao:'boss直聘',
email:'445151511516516@quiwhu.cn'
},{
id:'2',
name: 'pp',
phone: '12345678998',
age:'33岁',
sex:'',
status:8,
work:'10年',
a:'java工程师',
b:'2019-09-02',
data:'13:09:09',
qudao:'boss直聘',
email:'445151511516516@quiwhu.cn'
},{
id:'2',
name: 'pp',
phone: '12345678998',
age:'33岁',
sex:'',
status:9,
work:'10年',
a:'java工程师',
b:'2019-09-02',
data:'13:09:09',
qudao:'boss直聘',
email:'445151511516516@quiwhu.cn'
},{
id:'2',
name: 'pp',
phone: '12345678998',
age:'33岁',
sex:'',
status:10,
work:'10年',
a:'java工程师',
b:'2019-09-02',
data:'13:09:09',
qudao:'boss直聘',
email:'445151511516516@quiwhu.cn'
},{
id:'2',
name: 'pp',
phone: '12345678998',
age:'33岁',
sex:'',
status:11,
work:'10年',
a:'java工程师',
b:'2019-09-02',
data:'13:09:09',
qudao:'boss直聘',
email:'445151511516516@quiwhu.cn'
},{
id:'2',
name: 'pp',
phone: '12345678998',
age:'33岁',
sex:'',
status:12,
work:'10年',
a:'java工程师',
b:'2019-09-02',
data:'13:09:09',
qudao:'boss直聘',
email:'445151511516516@quiwhu.cn'
}
],
ajaxData: [],
checkData: [] // 双向数据绑定的数组
}
},
......@@ -402,9 +237,55 @@
this.$Message.info('Clicked cancel');
},
// *********************************************
//查询简历列表
SearchList(){
let parmars={
pageSize:this.searchInfo.pageSize,
pageIndex:this.searchInfo.pageIndex
}
serchList(parmars).then(res=>{
console.log(res)
if(res.data.success==true){
console.log(res.data.body.items)
this.ajaxData=res.items.map((item,index)=>{
item.ownerName=item.ownerName
item.ownerSex=item.ownerSex
item.belongs=item.belongs
item.emailSendtime=item.emailSendtime
item.ownerMobile=item.ownerMobile
item.ownerHighestDegree=item.ownerHighestDegree
item.ownerExpectTitles=item.ownerExpectTitles
item.flowStatus=item.flowStatus
item.ownerAge=item.ownerAge
item.ownerWorkYears=item.ownerWorkYears
item.modifyTime=item.modifyTime
item.srcSite=item.srcSite
item.optSource=item.optSource
item.modifier=item.modifier
return item
})
}
})
},
//选择元素
selectElement1(tItem,Tindex){
let Item=tItem;
this.clickIndex1=Tindex
console.log(Item)
},
selectElement2(tItem,Tindex){
let Item=tItem;
this.clickIndex2=Tindex
console.log(Item)
},
selectElement3(tItem,Tindex){
let Item=tItem;
this.clickIndex3=Tindex
console.log(Item)
},
},
mounted(){
this.SearchList()
}
}
</script>
......@@ -415,16 +296,18 @@
}
.allResume-left{
min-height: 1100px;
width: 410px;
/* width: 410px; */
width: 26%;
float: left;
border: 1px solid #999999;
/* border: 1px solid #999999; */
}
.allResume-right{
/* height: 1500px; */
min-height: 1000px;
width: 1240px;
min-height:1800px;
width: 72%;
float: left;
margin-left: 15px
margin-left: 15px;
border:1px solid black
}
.Resumecontent{
width: 100%;
......@@ -443,7 +326,7 @@
}
.pageBottom{
height: 40px;
width:1200px;
width:1000px;
background:#EDEDED;
position: fixed;
bottom: 0;
......@@ -472,14 +355,26 @@ color: blue
.Education span:not(:first-child){
margin-left: 35px
}
.Education span:nth-child(2){
margin-left: 44px
}
.Education span:nth-child(3){
margin-left: 54px
}
.Education span:nth-child(4){
margin-left: 48px
}
.Education span:nth-child(5){
margin-left: 4px
margin-left: 5px
}
.state span:not(:first-child){
margin-left: 23px
margin-left: 28px
}
.state span:nth-child(7){
margin-left: 2px
margin-left:3px
}
.state span:nth-child(6){
margin-left: 20px
}
.state span:nth-child(8){
margin-left: 15px
......@@ -492,8 +387,12 @@ color: blue
}
.state span:nth-child(11){
margin-left: 10px
}.state span:nth-child(12){
margin-left: 3px
}
.state span:nth-child(12){
margin-left: 19px
}
.state span:nth-child(13){
margin-left: 6px
}
.text1{
width: 80%;
......
<template>
<div></div>
<div>
<h3 style="color:#2d8cf0;font-size:18px;margin:14px 0 0 15px">二维码管理</h3>
<h5 style="margin:24px 0 0 15px;display:inline-block">前台扫描二维码</h5>
<div class="Qrcode">
<img src="">
</div>
<p class="xiazai">下载</p>
</div>
</template>
<script>
export default {
......@@ -7,5 +14,22 @@ export default {
}
</script>
<style>
.Qrcode{
height: 200px;
width: 200px;
border: 1px solid black;
margin: 20px 0 0 15px
}
.xiazai{
height: 30px;
width: 100px;
background:#2d8cf0;
color: white;
line-height: 30px;
text-align: center;
border-radius: 5px ;
position: absolute;
left: 230px;
top:270px
}
</style>
......@@ -7,16 +7,16 @@
</p>
<Form :label-width="100" :model="formInline" :rules="ruleInline">
<FormItem label="配置登录账号" style="margin-top:20px" prop="PhoneNumber">
<Input placeholder="请输入正确的手机号" style="width:300px" v-model="formInline.PhoneNumber"></Input>
<Input placeholder="请输入正确的手机号" style="width:300px" v-model="formInline.PhoneNumber"/>
</FormItem>
<FormItem label="绑定真实姓名" style="margin-top:20px" prop="PerName">
<Input placeholder="请输入真实姓名" style="width:300px" v-model="formInline.PerName"></Input>
<Input placeholder="请输入真实姓名" style="width:300px" v-model="formInline.PerName"/>
</FormItem>
</Form>
<p>
<span style="margin-left:18px">初始登录密码</span>
<span style="margin-left:8px">默认是"123456",新用户首次登录需修改后才能进入系统。</span>
<span style=""><button style="width:55px;height:25px;font-size:14px;background:#436EEE;color:#ffffff;margin-left:20px" @click="addacount"> 添加</button></span>
<span style=""><button style="width:55px;height:25px;font-size:14px;background:#2d8cf0;color:#ffffff;margin-left:20px; border-radius: 5px" @click="addacount"> 添加</button></span>
</p>
</div>
<div class="accountMange">
......@@ -27,17 +27,16 @@
<p style="border-bottom:1px solid black;line-height:30px">
<input type='checkbox' class='input-checkbox' v-model='checked' v-on:click='checkedAll' style="margin-left:25px"><span style="margin-left:10px">全选</span>
<span style="margin-left:40px;color:#2d8cf0">删除</span>
<span style="margin-left:40px;color:#2d8cf0" >删除</span>
</p>
<!-- <Table ref="selection" :columns="columns4" :data="data1"></Table> -->
<div v-for='item in ajaxData' :key="item.id">
<div v-for='item in ajaxData' :key="item.id" class="detailQQ">
<input type='checkbox' name='checkboxinput' class='input-checkbox' v-model='checkboxList' :value="item.id" style="margin-left:25px;margin-top:20px">
<span style="margin-left:5px" >{{item.name}}</span>
<span style="margin-left:35px">{{item.phone}}</span>
<span style="margin-left:35px">{{item.b}}</span>
<span style="margin-left:10px">{{item.data}}</span>
<span style="margin-left:35px;color:#2d8cf0" @click="modal1=true">恢复初始密码</span>
<span style="margin-left:35px;color:#2d8cf0">删除</span>
<span style="margin-left:5px" >{{item.userName}}</span>
<span style="margin-left:35px">{{item.userCode}}</span>
<span style="margin-left:35px">{{item.createTime}}</span>
<span style="margin-left:35px;color:#2d8cf0" @click="recoveryModal(item.id)">恢复初始密码</span>
<span style="margin-left:35px;color:#2d8cf0" @click="delateMaodal(item.id)">删除</span>
</div>
<div class="pageBottom">
<Page :total="100" show-elevator style="text-align:center;margin-top:8px"/>
......@@ -51,26 +50,46 @@
width='250px'
@on-cancel="cancel">
<h3 style="text-align:center">提示</h3>
<p>是否将该账号的密码,恢复至初始状态。</p>
<p style="text-align:center">是否将该账号的密码,恢复至初始状态。</p>
<div slot='footer' style="text-align:center">
<Button type='primary' @click='modal1=false'>取消</Button>
<Button type='primary' >确定</Button>
<Button type='primary' @click="recovery()" >确定</Button>
</div>
</Modal>
<!-- 删除当前的账户 -->
<Modal
v-model="modal2"
@on-ok="ok"
:closable="false"
width='250px'
@on-cancel="cancel">
<h3 style="text-align:center">提示</h3>
<p style="text-align:center">是否确定删除当前账户</p>
<div slot='footer' style="text-align:center">
<Button type='primary' @click='modal2=false'>取消</Button>
<Button type='primary' @click="delateAccount">确定</Button>
</div>
</Modal>
</div>
</template>
<script>
import { queryaccount,addAccount} from '../../api/stystem.server.js'
import { queryaccountList,addAccount,Delateaccount,delateAllAccount,recoveryPassword} from '../../api/stystem.server.js'
export default {
data(){
return {
modal1:false,
modal2:false,
checkboxList:[],
checked: false,
userName:'',
userCode:'',
a:'',
id:'',
I:'',
searchInfo:{
pageSize:30,
pageIndex:'',
id:''
},
formInline: {
PhoneNumber: '',
PerName: ''
......@@ -84,43 +103,7 @@ export default {
{ type: 'string', message: '', trigger: 'blur' }
]
},
ajaxData: [{ // 后台请求过来的数据
id:'1',
name: '李宁',
phone: '12345678998',
age:'33岁',
sex:'',
work:'10年',
a:'java工程师',
b:'2019-09-02',
data:'13:09:09',
qudao:'boss直聘',
email:'445151511516516@quiwhu.cn'
},{
id:'2',
name: '李宁',
phone: '12345678998',
age:'33岁',
sex:'',
work:'10年',
a:'java工程师',
b:'2019-09-02',
data:'13:09:09',
qudao:'boss直聘',
email:'445151511516516@quiwhu.cn'
},{
id:'3',
name: '李宁',
phone: '12345678998',
age:'33岁',
sex:'',
work:'10年',
a:'java工程师',
b:'2019-09-02',
data:'13:09:09',
qudao:'boss直聘',
email:'445151511516516@quiwhu.cn'
}],
ajaxData:[],
checkData: [] ,// 双向数据绑定的数组
}
},
......@@ -151,13 +134,90 @@ export default {
userCode:this.formInline.PhoneNumber,
userName:this.formInline.PerName
}
// if(this.userCode==''||this.userName=='') return
if(this.formInline.PhoneNumber==''||this.formInline.PerName==''){
this.$Message.error('请填写正确的手机号和真实的姓名')
return
}
addAccount(parmars).then(res=>{
if(res.success){
// if(res.data.success==true){
this.$Message.success('添加成功')
}
this.SearchList()
this.formInline.PhoneNumber=''
this.formInline.PerName=''
// }
})
} ,
//查询账户列表
SearchList(){
let parmars={
pageSize:this.searchInfo.pageSize,
pageIndex:this.searchInfo.pageIndex
}
queryaccountList(parmars).then(res=>{
console.log(res)
if(res.data!==''){
// console.log(res.data.body.items)
this.ajaxData=res.data.body.items.map((item,index)=>{
item.id=item.id
item.userName=item.userName
item.userCode=item.userCode
item.createTime=item.createTime
return item
})
}
})
},
//删除单条账户弹框
delateMaodal(DID){
console.log(DID)
this.I=DID
console.log(this.I)
this.modal2=true
},
//删除单条账户
delateAccount(){
let parmars={
id:this.I
}
Delateaccount(parmars).then(res=>{
// if(res.data.success==true){
// this.SearchList()
// }
this.SearchList()
})
},
//批量删除账户
delateAll(id){
let parmars={
1:id
}
delateAllAccount(parmars).then(res=>{
if(res.data.success==true){
this.$Message.success('删除成功')
}
})
},
//恢复初始密码弹窗
recoveryModal(ID){
console.log(ID)
this.I=ID
console.log(this.I)
this.modal1=true
},
//确认恢复初始密码
recovery(){
let parmars={
id:this.I
}
console.log(parmars)
recoveryPassword(parmars).then(res=>{
console.log(res)
if(res.data.success==true){
this.$Message.success('恢复密码成功')
this.modal1=false
}
})
}
},
watch: {
......@@ -173,27 +233,14 @@ export default {
}
},
mounted(){
this.SearchList()
}
}
</script>
<style>
/* .account{
width: 100%;
height: 100%;
} */
.addAcount{
/* width: 1000px; */
height: 200px;
/* border: 1px solid black; */
}
.accountMange{
/* width: 1000px; */
/* height: 1000px; */
/* border: 1px solid black; */
}
.pageBottom{
height: 40px;
width:1800px;
......@@ -201,4 +248,20 @@ export default {
position: fixed;
bottom: 0;
}
.detailQQ{
height: 30px;
width: 100%
}
.detailQQ :nth-child(2){
width: 40px;
display: inline-block;
}
.detailQQ :nth-child(3){
width: 80px;
display: inline-block;
}
.detailQQ :nth-child(4){
width: 180px;
display: inline-block;
}
</style>
......@@ -7,20 +7,20 @@
</p>
<Form :label-width="100" :model="formInline" :rules="ruleInline">
<FormItem label="邮箱账号" style="margin-top:20px" prop="emailNumber">
<Input placeholder="请输入企业邮箱" style="width:300px" v-model="formInline.emailNumber"></Input>
<Input placeholder="请输入企业邮箱" style="width:300px" v-model="formInline.emailNumber"/>
</FormItem>
<FormItem label="请选择开始同步的时间" style="margin-top:20px; position: absolute;top:30px;left: 490px" :label-width="180">
<DatePicker type="datetime" format="yyyy-MM-dd HH:mm" placeholder="请选择日期" style="width: 200px"></DatePicker><br>
<span style="font-size:8px;margin-left:0px;"><Icon type="md-information-circle" />如不选取默认同步邮箱中的所有简历</span>
</FormItem>
<FormItem label="邮箱密码" style="margin-top:20px; position: absolute;top:110px;left: -80px" prop="emailPsd" :label-width="180">
<Input placeholder="请输入企业邮箱" style="width:300px" v-model="formInline.emailPsd"></Input><br>
<Input placeholder="请输入企业邮箱" style="width:300px" v-model="formInline.emailPsd"/><br>
<span style="font-size:8px;position: relative;top:0px left:30px"><Icon type="md-information-circle" />邮箱密码在绑定后再次修改,请及时点击修改来更新。</span>
</FormItem>
<FormItem label="所属人" style="margin-top:20px; position: absolute;top:110px;left: 410px" prop="UserName" :label-width="180">
<Input placeholder="请输入企业邮箱" style="width:300px" v-model="formInline.UserName"></Input>
<Input placeholder="请输入企业邮箱" style="width:300px" v-model="formInline.UserName"/>
</FormItem>
<button type="primary" style=" width:110px;height:30px;position: absolute;top:130px;left: 910px;border-radius: 5px;background:rgb(0, 146, 255);color:rgb(255,255,255)">绑定并开始同步</button>
<button type="primary" style=" width:110px;height:30px;position: absolute;top:130px;left: 910px;border-radius: 5px;background:rgb(0, 146, 255);color:rgb(255,255,255)" @click="bindingSynchronization">绑定并开始同步</button>
</Form>
</div>
<div class="Emailmange">
......@@ -33,40 +33,119 @@
<input type='checkbox' class='input-checkbox' v-model='checked' v-on:click='checkedAll' style="margin-left:25px">全选
<span style="margin-left:40px;color:#2d8cf0">解绑</span>
</p>
<div v-for='item in ajaxData' :key="item.id">
<div v-for='item in ajaxData' :key="item.id" class="emailList">
<input type='checkbox' name='checkboxinput' class='input-checkbox' v-model='checkboxList' :value="item.id" style="margin-left:25px;margin-top:20px">
<span style="margin-left:5px;width:100px" >{{item.name}}</span>
<span style="margin-left:35px;width:160px">{{item.phone}}</span>
<span style="margin-left:35px;width:200px">{{item.b}}</span>
<span style="margin-left:10px">{{item.data}}</span>
<span style="margin-left:35px;color:#2d8cf0">恢复初始密码</span>
<span style="margin-left:35px;color:#2d8cf0">删除</span>
<span style="margin-left:5px" >{{item.belongs}}</span>
<span style="margin-left:35px;">{{item.emailName}}</span>
<span style="margin-left:35px;">同步时间|{{item.syncStartDate}}开始</span>
<span style="margin-left:10px">新建时间|{{item.lastSyncDate}}</span>
<span style="margin-left:35px;color:#2d8cf0" @click="modal4=true">修改</span>
<span style="margin-left:35px;color:#2d8cf0" @click="UnbindingModal(item.emailName)">解绑</span>
<span style="margin-left:150px">正在进行</span>
</div>
</div>
<!-- 恢复初始密码 -->
<!--同步失败-->
<Modal
v-model="modal1"
@on-ok="ok"
:closable="false"
:footer-hide="true"
width='250px'
@on-cancel="cancel">
<h3 style="text-align:center">提示</h3>
<p>是否将该账号的密码,恢复至初始状态。</p>
<p style="text-align:center">系统错误,请联系开发者!</p>
<h2 style="text-align:center;font-size:18px;color:#2d8cf0" @click="modal1=false">确定</h2>
</Modal>
<!-- 同步成功 -->
<Modal
v-model="modal2"
@on-ok="ok"
:closable="false"
:footer-hide="true"
width='250px'
@on-cancel="cancel">
<h3 style="text-align:center">提示</h3>
<p style="text-align:center">同步完成,如密码发生改变,请及时点击<span>修改</span>来重置密码</p>
<h2 style="text-align:center;font-size:18px;color:#2d8cf0" @click="modal2=false">我已知晓</h2>
</Modal>
<!-- 同步绑定 -->
<Modal
v-model="modal3"
@on-ok="ok"
:closable="false"
:footer-hide="true"
width='250px'
@on-cancel="cancel">
<h3 style="text-align:center">提示</h3>
<p style="text-align:center;line-height:40px">同步中,请稍后...</p>
</Modal>
<!-- 修改弹出框 -->
<Modal
v-model="modal4"
@on-ok="ok"
:closable="false"
width='860px'
@on-cancel="cancel">
<span>修改绑定邮箱</span>
<div style="height:160px">
<Form>
<FormItem label="邮箱账号" style="margin-top:20px" prop="emailNumber">
<Input placeholder="请输入企业邮箱" v-model="formInline.emailNumber" style="width:300px"/>
</FormItem>
<FormItem label="请选择开始同步的时间" :label-width="180" style="position: absolute;top:50px;left:350px">
<DatePicker type="datetime" format="yyyy-MM-dd HH:mm" placeholder="请选择日期" style="width: 200px"></DatePicker><br>
<span style="font-size:8px;margin-left:0px;"><Icon type="md-information-circle" />如不选取默认同步邮箱中的所有简历</span>
</FormItem>
<FormItem label="邮箱密码" prop="emailPsd" :label-width="180" style="position: absolute;top:130px;left:-105px">
<Input placeholder="请输入企业邮箱密码" style="width:300px" v-model="formInline.emailPsd"/><br>
<span style="font-size:8px;position: relative;top:0px left:30px"><Icon type="md-information-circle" />邮箱密码在绑定后再次修改,请及时点击修改来更新。</span>
</FormItem>
<FormItem label="所属人" style="margin-top:20px; position: absolute;top:110px;left: 300px" prop="UserName" :label-width="180">
<Input placeholder="请输入所属着真实的姓名" style="width:280px" v-model="formInline.UserName"/>
</FormItem>
</Form>
</div>
<div slot='footer' style="text-align:center">
<Button type='primary' @click='modal4=false'>取消</Button>
<Button type='primary' >修改并重新绑定</Button>
<Button type='primary' >仅修改</Button>
</div>
</Modal>
<!-- 解绑弹出框 -->
<Modal
v-model="modal5"
@on-ok="ok"
:closable="false"
width='250px'
@on-cancel="cancel">
<h3 style="text-align:center">提示</h3>
<p style="text-align:center">解绑后如你需要再次绑定该邮箱,需重新输入账号,密码等信息重新绑定,是否确定解绑?</p>
<div slot='footer' style="text-align:center">
<Button type='primary' @click='modal1=false'>取消</Button>
<Button type='primary' >确定</Button>
<Button type='primary' @click='modal5=false'>取消</Button>
<Button type='primary' @click="Unbinding">确认</Button>
</div>
</Modal>
</div>
</template>
<script>
import { queryemailList,Synchronization,jiebangEmail} from '../../api/stystem.server.js'
export default {
data(){
return {
modal1:false,
modal2:false,
modal3:false,
modal4:false,
modal5:false,
NAme:"",
checkboxList:[],
checked: false,
searchInfo:{
pageSize:30,
pageIndex:'',
id:''
},
formInline: {
emailNumber: '',
emailPsd: '',
......@@ -86,43 +165,7 @@ export default {
{ type: 'string', min: 4, message: '', trigger: 'blur' }
]
},
ajaxData: [{ // 后台请求过来的数据
id:'1',
name: '李宁Q',
phone: '12345678998',
age:'33岁',
sex:'',
work:'10年',
a:'java工程师',
b:'2019-09-02',
data:'13:09:09',
qudao:'boss直聘',
email:'445151511516516@quiwhu.cn'
},{
id:'2',
name: '李宁',
phone: '12345678998',
age:'33岁',
sex:'',
work:'10年',
a:'java工程师',
b:'2019-09-02',
data:'13:09:09',
qudao:'boss直聘',
email:'445151511516516@quiwhu.cn'
},{
id:'3',
name: '李宁',
phone: '12345678998',
age:'33岁',
sex:'',
work:'10年',
a:'java工程师',
b:'2019-09-02',
data:'13:09:09',
qudao:'boss直聘',
email:'445151511516516@quiwhu.cn'
}],
ajaxData: [],
checkData: [] ,// 双向数据绑定的数组
}
},
......@@ -138,10 +181,72 @@ export default {
});
}
},
//确认恢复初始密码
Recognitionrecovery(){
ok () {
this.$Message.info('Clicked ok');
},
cancel () {
this.$Message.info('Clicked cancel');
},
//绑定同步邮箱
bindingSynchronization(){
if(this.formInline.emailNumber==''&&this.formInline.emailPsd==''&&this.formInline.UserName==''){
this.$Message.error('请正确填写信息')
return
}
this.modal3=true
let parmars={
emailName:this.formInline.emailNumber,
emailPassword:this.formInline.emailPsd,
belongs:this.formInline.UserName
}
Synchronization(parmars).then(res=>{
if(res.data.success==true){
this.modal3=false
this.modal2=true
this.SearchList()
}
},()=>{
this.modal3=false
this.modal1=true
})
},
//查询邮箱列表
SearchList(){
let parmars={
pageSize:this.searchInfo.pageSize,
pageIndex:this.searchInfo.pageIndex
}
queryemailList(parmars).then(res=>{
if(res.data.success==true){
// console.log(res.data.body.items)
this.ajaxData=res.data.body.items.map((item,index)=>{
item.syncStartDate=item.syncStartDate
item.lastSyncDate=item.lastSyncDate
item.belongs=item.belongs
item.emailName=item.emailName
return item
})
}
})
},
//解绑弹出框
UnbindingModal(EMi){
this.NAme=EMi,
this.modal5=true
},
//确认解绑邮箱
Unbinding(){
let parmars={
name:this.NAme
}
jiebangEmail(parmars).then(res=>{
if(res.data.success==true){
this.$Message.success('解绑成功')
this.modal5=false
this.SearchList()
}
})
}
},
......@@ -158,17 +263,14 @@ export default {
}
},
mounted(){
this.SearchList()
}
}
</script>
<style>
.emailMange{
/* height: 100%;
width:100%; */
/* background: #F2F2F2; */
}
.addEmail{
height: 220px;
/* border: 1px solid black; */
......@@ -179,4 +281,39 @@ export default {
/* border: 1px solid black; */
}
.emailList{
height: 40px;
line-height: 40px;
width:100%
}
.emailList :nth-child(2){
width: 80px;
display: inline-block;
}
.emailList :nth-child(3){
width: 230px;
display: inline-block;
}
.emailList :nth-child(4){
width: 230px;
display: inline-block;
}
.emailList :nth-child(5){
width: 230px;
display: inline-block;
}
.emailList :nth-child(6){
width: 30px;
display: inline-block;
}
.emailList :nth-child(7){
width: 30px;
display: inline-block;
}
.buTon :nth-child(1){
width: 70px;
height: 40px;
background: #2d8cf0;
color:white
}
</style>
import axios from 'axios'
import Promise from './promise.service.js'
import {Notice} from 'iview'
import Vue from 'vue'
var instance = axios.create({});
instance.defaults.timeout = 2500;
export default axios
\ No newline at end of file
//instance.defaults.headers.common['Authorization'] = AUTH_TOKEN;
instance.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';
instance.defaults.headers['X-Requested-With'] = 'XMLHttpRequest'
instance.defaults.headers['X-auth-Token'] = 'XMLHttpRequest'
instance.interceptors.request.use(function (config) {
// 在发送请求之前做些什么
if (!config.headers['Content-Type']) {
config.headers['Content-Type'] = 'application/x-www-form-urlencoded'
}
return config;
}, function (error) {
// 对请求错误做些什么
return Promise.reject(error);
});
instance.interceptors.response.use(function (response) {
// 在发送请求之前做些什么
if(response.status >= 200 && response.status < 300){
if(response.data.success){
return Promise.resolve(response.data.body)
} else {
if (response.data.body.message){
Notice.error({desc:`${response.data.body.message}`})
}
return Promise.reject(response.data);
}
} else {
return Promise.reject(response.data);
}
if (resopnse.status == 403 || resopnse.status == 401){
if (response.data.body.message){
Notice.error({desc:`${response.data.body.messag}`})
}
window.location.replace = `${window.location.origin}/login`
}
return response;
}, error => {
console.log(error)
});
export default instance
// export default axios
module.exports = require('es6-promise');
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment