Commit da20719c authored by zhangderong's avatar zhangderong

扫码测试验证

parent 6e47fc4b
......@@ -24,6 +24,9 @@ module.exports = {
entry: {
app: './src/main.js'
},
externals:{
'CKEDITOR':'window.CKEDITOR'
},
output: {
path: config.build.assetsRoot,
filename: '[name].js',
......
......@@ -10,4 +10,5 @@
<div id="app"></div>
<!-- built files will be auto injected -->
</body>
<script type="text/javascript" src="/static/ckeditor/ckeditor.js"></script>
</html>
......@@ -96,3 +96,16 @@ export function updatastatus(parmars) {
'Content-Type':'application/json'
}})
}
//获取邮件模板
export function getEmailMoo() {
return axios.post(`${sapi}/api/emailTemplate/getAllTemplateList`,{headers: {
'Content-Type':'application/json'
}})
}
//根据获取id邮件模板内容
export function getEmailContent(parmars) {
console.log(parmars,76666666666)
return axios.post(`${sapi}/api/emailTemplate/loadTemplate`,parmars,{headers: {
'Content-Type':'application/json'
}})
}
\ No newline at end of file
......@@ -45,6 +45,7 @@
<Button type="primary" size="small" style="margin-left:2%;width:50px" @click="downloadAll">下载</Button>
<Button type="primary" size="small" style="margin-left:2%;width:50px" @click="delateAll">删除</Button>
<Button type="primary" size="small" style="float:right;margin-right:20px;margin-top:0.6%" @click="allexport">导出列表</Button>
<Button type="primary" size="small" style="float:right;margin-right:20px;margin-top:0.6%" @click="sendEmail">发送邮件</Button>
</div>
<div style="width:100%;float:left;margin-bottom:40px;overflow-y: auto;height:100%" class="a">
<div style="margin:50px auto;width:300px;height:200px;line-height:200px;text-align:center;font-size:20px;color:LightGray" v-show="ajaxData.length==0">暂无数据</div>
......@@ -110,7 +111,7 @@
<option value="3">邀请面试</option>
<option value="4">备选</option>
</select>
<span><Icon type="md-download" @click="downloadONE(item.id)" style="font-size:15px;cursor:pointer"/></span>
<span><Icon type="md-download" @click="downloadONE(item.id)" style="font-size:15px;cursor:pointer;color:#0092FF"/></span>
<span ><Icon type="md-trash" v-if="item.flowStatus=='TO_SEE'" @click="undelate" style="color:#b5b5b5;font-size:15px;cursor:pointer"/></span>
<span ><Icon type="md-trash" v-if="item.flowStatus=='HAS_SEE'" @click="undelate" style="color:#b5b5b5;font-size:15px;cursor:pointer"/></span>
<span ><Icon type="md-trash" v-if="item.flowStatus=='SEE_FAIL'" @click="undelate" style="color:#b5b5b5;font-size:15px;cursor:pointer"/></span>
......@@ -122,9 +123,9 @@
<span ><Icon type="md-trash" v-if="item.flowStatus=='NO_ENTRY'" @click="undelate" style="color:#b5b5b5;font-size:15px;cursor:pointer"/></span>
<span ><Icon type="md-trash" v-if="item.flowStatus=='END'" @click="undelate" style="color:#b5b5b5;font-size:15px;cursor:pointer"/></span>
<span ><Icon type="md-trash" v-if="item.flowStatus=='HAS_SENT_OFFER'" @click="undelate" style="color:#b5b5b5;font-size:15px;cursor:pointer"/></span>
<span ><Icon type="md-trash" v-if="item.flowStatus=='PASS'" @click="delateR(item.id)" style="font-size:15px;cursor:pointer"/></span>
<span ><Icon type="md-trash" v-if="item.flowStatus=='OPTION'" @click="delateR(item.id)" style="font-size:15px;cursor:pointer"/></span>
<span ><Icon type="md-trash" v-if="item.flowStatus=='TO_DO'" @click="delateR(item.id)" style="font-size:15px;cursor:pointer"/></span>
<span ><Icon type="md-trash" v-if="item.flowStatus=='PASS'" @click="delateR(item.id)" style="font-size:15px;cursor:pointer;color:rgb(242, 93, 87);"/></span>
<span ><Icon type="md-trash" v-if="item.flowStatus=='OPTION'" @click="delateR(item.id)" style="font-size:15px;cursor:pointer;color:rgb(242, 93, 87);"/></span>
<span ><Icon type="md-trash" v-if="item.flowStatus=='TO_DO'" @click="delateR(item.id)" style="font-size:15px;cursor:pointer;color:rgb(242, 93, 87);"/></span>
<span @click="RecordSEE(item.id,item.ownerName)" style="color:#0092FF;cursor:pointer">记录</span>
</span>
</p>
......@@ -226,7 +227,7 @@
</div>
<div slot='footer' style="text-align:center">
<Button type='primary' @click='pushlist'>取消</Button>
<Button type='primary' @click="addINTERVIEW" >确定</Button>
<Button type='primary' @click="nextStep" >下一步</Button>
</div>
</Modal>
<!-- 可删除状态下,删除提示框 -->
......@@ -283,18 +284,80 @@
<Button type='primary' @click='modal6=false'>取消</Button>
</div>
</Modal>
<!-- 发送邮件 -->
<Modal
v-model="emailMOdal"
width='1000px'
:closable='false'>
<div >
<h2 style="text-align:center;color:black">发送邮件</h2>
</div>
<div class="emailModal-title">
<div class="emailModalTitle-left">
<p>
<Form :label-width="60" :model="emailInline" label-position="left" style="margin-left:20px">
<FormItem label="选择模板" style="margin-top:20px" >
<Select style="width:95%" @on-change='getEmailContentValue'>
<Option v-for="(item,index) in emailInline.modalArr" :key="index" :value="item.templateCode">{{item.templateName}}</Option>
</Select>
</FormItem>
<FormItem label="收件人" style="margin-top:20px">
<Input style="width:95%" v-model="emailInline.receiveEmail"/>
</FormItem>
<FormItem label="抄送" style="margin-top:20px">
<Input style="width:95%" v-model="emailInline.copyname"/>
</FormItem>
<FormItem label="主题" style="margin-top:20px">
<Input style="width:95%" v-model="emailInline.theme"/>
</FormItem>
</Form>
</p>
</div>
<div class="emailModalTitle-right" v-show="interviewIsShow==true">
<h3 style="text-align:center;margin-top:30px">请输入约面信息</h3>
<Form :label-width="75" ref="formInline" :rules="ruleInline" :model="formInline" style="margin-top:27px" label-position="left">
<FormItem label="邀约人" style="margin-top:20px" prop="UpdateOWER">
<Input v-model="formInline.UpdateOWER" style="width:80%" :maxlength="5"/>
</FormItem>
<FormItem label="面试时间" style="margin-top:20px" prop="UpdateTIME">
<DatePicker type="datetime" style="width:80%" v-model="formInline.UpdateTIME" format="yyyy-MM-dd HH:mm" @on-change="changeTime" :options="options3" :editable='false'></DatePicker>
</FormItem>
<FormItem label="面试官" style="margin-top:20px" prop='UpdateVIEW'>
<Input v-model="formInline.UpdateVIEW" style="width:80%" :maxlength="5"/>
</FormItem>
</Form>
</div>
</div>
<div class="ckeditor">{{emailInline.templateContent}}</div>
<div class="uploadEnclosure">
<p><span>添加附件</span><span style="margin-left:10px">
<Upload
multiple
action="">
<Button >选择文件</Button>
</Upload>
</span>
</p>
<p></p>
</div>
<div slot='footer' style="text-align:center" class="Ubt">
<Button type='primary' @click='emailModalPush'>取消</Button>
<Button type='primary' @click='emailMOdal=false' v-show="beforeBtu==true">上一步</Button>
<Button type='primary' @click='emailMOdal=false'>发送</Button>
<Button type='primary' @click='emailMOdal=false'>添加约面并发送</Button>
</div>
</Modal>
</div>
</template>
<script>
import moment from 'moment'
import { serchList,downloadone,sousuoList,seedetail,PASS,OPTION,deleteREsume,downloadOne,exportLIST,recodeLIST,addinterview,updatastatus,TODORes} from '../../api/resume.server'
import { serchList,downloadone,sousuoList,seedetail,PASS,OPTION,deleteREsume,downloadOne,exportLIST,recodeLIST,addinterview,updatastatus,TODORes,getEmailMoo,getEmailContent} from '../../api/resume.server'
import qs from 'qs'
import {
sapi
} from '../../config'
import Router from 'vue-router';
// import ckeditor from '../../../static/ckeditor'
export default {
data () {
return {
......@@ -314,7 +377,19 @@ import Router from 'vue-router';
UpdateTIME:'',
UpdateVIEW:''
},
emailInline:{
modalArr:[],
copyname:'',
receiveEmail:'',//收件人
theme:'',//主题
Enclosure:[],//附件
templateContent:'',//模板内容
},
isShowAll:false,
RescopyArr:[],
interelement:'1',
emailId:'',
emailCode:'',
modal1:false,
modal2:false,
modal3:false,
......@@ -322,6 +397,7 @@ import Router from 'vue-router';
modal5:false,
modal6:false,
modal7:false,
emailMOdal:false,
DOSTA:'',
DOWNLOAD:'',
spinShow: true,
......@@ -345,6 +421,8 @@ import Router from 'vue-router';
rpList:[],//项目经历列表
reList:[],//教育经历列表
a:[],
interviewIsShow:false,
beforeBtu:false,
checked: false,
activeClass: 0,
clickIndex1: 0,
......@@ -463,14 +541,17 @@ import Router from 'vue-router';
})
},
//操作处理面试状态
selectFn1(e,SID,itemsta) {
this.toseeid=SID
this.emailId=SID
this.isShowAll=true
this.ITEMSTA=itemsta
// 准备约面
if(e.target.value==3){
this.modal2=true
// TOSEE().then()
getEmailMoo().then(res=>{
this.emailInline.modalArr.push(res.data.body[0])
})
this.emailMOdal=true
}
// 简历PASS
if(e.target.value==2){
......@@ -524,17 +605,22 @@ import Router from 'vue-router';
}
})
},
nextStep(){
this.beforeBtu=true
this.modal2=false
this.emailMOdal=true
},
selectFn2(e,SID,itemsta) {
this.ITEMSTA=itemsta
this.toseeid=SID
// 准备约面
if(e.target.value==1){
let parmars={
status:"TO_SEE",
id:SID,
}
getEmailMoo().then(res=>{
this.emailInline.modalArr.push(res.data.body[0])
})
this.emailMOdal=true
this.modal2=true
// this.modal2=true
}
// 简历PASS
if(e.target.value==3){
......@@ -577,12 +663,11 @@ import Router from 'vue-router';
this.toseeid=SID
// 准备约面
if(e.target.value==2){
let parmars={
status:"TO_SEE",
id:SID,
}
this.modal2=true
getEmailMoo().then(res=>{
this.emailInline.modalArr.push(res.data.body[0])
})
this.emailMOdal=true
// this.modal2=true
}
// 简历PASS
if(e.target.value==3){
......@@ -625,12 +710,10 @@ import Router from 'vue-router';
this.toseeid=SID
// 准备约面
if(e.target.value==2){
let parmars={
status:"TO_SEE",
id:SID,
}
this.modal2=true
getEmailMoo().then(res=>{
this.emailInline.modalArr.push(res.data.body[0])
})
this.emailMOdal=true
}
// 简历PASS
if(e.target.value==1){
......@@ -856,6 +939,7 @@ import Router from 'vue-router';
// 选择input元素
selectInputElement(index,doID,doStatus,sss){
this.DOWNLOAD=doID
this.emailId=doID
sss=!sss
this.ajaxData[index].STATES=sss
Array.prototype.indexOf = function(val) {
......@@ -1074,8 +1158,45 @@ import Router from 'vue-router';
},
movleave(index,vvv){
this.ajaxData[index].isShow=false
},
// 发送邮件
sendEmail(){
this.emailInline.modalArr=[]
this.emailMOdal=true
getEmailMoo().then(res=>{
this.emailInline.modalArr=res.data.body
})
},
getEmailContentValue(value){
if(value=='TEMP_0001'){
this.interviewIsShow=true
this.interviewBtu=true
}else{
this.interviewIsShow=false
this.interviewBtu=false
}
this.emailCode=value
let parmars={
resumeId:this.emailId,
templateCode:this.emailCode
}
getEmailContent(parmars).then(res=>{
this.emailInline.theme=res.data.body.templateSubject
this.emailInline.receiveEmail=res.data.body.receiveEmail
this.emailInline.templateContent=res.data.body.templateContent
})
},
// 发送全部内容
sendContent(){},
emailModalPush(){
this.emailInline.modalArr=[]
this.emailInline.theme=''
this.emailInline.receiveEmail=''
this.emailInline.templateContent=''
this.emailMOdal=false
this.SouSuo(this.pageT)
}
},
mounted(){
this.SearchList()
......@@ -1123,8 +1244,9 @@ select{
-moz-appearance:none;
-webkit-appearance:none;
outline: none;
border: none;
color: #0092FF
border: none;
color: #0092FF;
background-color: rgba(255,255,255,0.0)
}
.active1{
color:#0092FF
......@@ -1184,4 +1306,33 @@ color: #0092FF
.a div:nth-child(2n){
background:rgba(241,241,241,1);
}
.emailModal-title{
height: 260px;
width: 100%;
border: 1px solid black
}
.emailModalTitle-left{
height: 100%;
width: 60%;
float: left;
}
.emailModalTitle-right{
height: 100%;
width: 40%;
float: left;
}
.ckeditor{
height:200px;
width:100%;
border: 1px solid black;
}
.uploadEnclosure{
height: 200px;
width: 100%;
border: 1px solid red
}
.Ubt button{
margin-left: 40px
}
</style>
......@@ -107,21 +107,21 @@
<option value="3">邀请面试</option>
<option value="4">备选</option>
</select>
<span><Icon type="md-download" @click="downloadONE(item.id)" style=";cursor:pointer"/></span>
<span ><Icon type="md-trash" v-if="item.flowStatus=='TO_SEE'" @click="undelate" style="color:#b5b5b5;cursor:pointer"/></span>
<span ><Icon type="md-trash" v-if="item.flowStatus=='HAS_SEE'" @click="undelate" style="color:#b5b5b5;cursor:pointer"/></span>
<span ><Icon type="md-trash" v-if="item.flowStatus=='SEE_FAIL'" @click="undelate" style="color:#b5b5b5;cursor:pointer"/></span>
<span ><Icon type="md-trash" v-if="item.flowStatus=='INTERVIEW_FAIL'" @click="undelate" style="color:#b5b5b5;cursor:pointer"/></span>
<span ><Icon type="md-trash" v-if="item.flowStatus=='TO_SENT_OFFER'" @click="undelate" style="color:#b5b5b5;cursor:pointer"/></span>
<span ><Icon type="md-trash" v-if="item.flowStatus=='TO_ENTRY'" @click="undelate" style="color:#b5b5b5;cursor:pointer"/></span>
<span ><Icon type="md-trash" v-if="item.flowStatus=='HAS_ENTRY'" @click="undelate" style="color:#b5b5b5;cursor:pointer"/></span>
<span ><Icon type="md-trash" v-if="item.flowStatus=='NO_ENTRY'" @click="undelate" style="color:#b5b5b5;cursor:pointer"/></span>
<span ><Icon type="md-trash" v-if="item.flowStatus=='END'" @click="undelate" style="color:#b5b5b5;cursor:pointer"/></span>
<span ><Icon type="md-trash" v-if="item.flowStatus=='HAS_SENT_OFFER'" @click="undelate" style="color:#b5b5b5;cursor:pointer"/></span>
<span ><Icon type="md-trash" v-if="item.flowStatus=='ARRIVED'" @click="undelate" style="color:#b5b5b5;cursor:pointer"/></span>
<span ><Icon type="md-trash" v-if="item.flowStatus=='PASS'" @click="delateR(item.id)" style=";cursor:pointer"/></span>
<span ><Icon type="md-trash" v-if="item.flowStatus=='OPTION'" @click="delateR(item.id)" style=";cursor:pointer"/></span>
<span ><Icon type="md-trash" v-if="item.flowStatus=='TO_DO'" @click="delateR(item.id)" style=";cursor:pointer"/></span>
<span><Icon type="md-download" @click="downloadONE(item.id)" style="font-size:15px;cursor:pointer;color:#0092FF"/></span>
<span ><Icon type="md-trash" v-if="item.flowStatus=='TO_SEE'" @click="undelate" style="color:#b5b5b5;cursor:pointer;font-size:15px"/></span>
<span ><Icon type="md-trash" v-if="item.flowStatus=='HAS_SEE'" @click="undelate" style="color:#b5b5b5;cursor:pointer;font-size:15px"/></span>
<span ><Icon type="md-trash" v-if="item.flowStatus=='SEE_FAIL'" @click="undelate" style="color:#b5b5b5;cursor:pointer;font-size:15px"/></span>
<span ><Icon type="md-trash" v-if="item.flowStatus=='INTERVIEW_FAIL'" @click="undelate" style="color:#b5b5b5;cursor:pointer;font-size:15px"/></span>
<span ><Icon type="md-trash" v-if="item.flowStatus=='TO_SENT_OFFER'" @click="undelate" style="color:#b5b5b5;cursor:pointer;font-size:15px"/></span>
<span ><Icon type="md-trash" v-if="item.flowStatus=='TO_ENTRY'" @click="undelate" style="color:#b5b5b5;cursor:pointer;font-size:15px"/></span>
<span ><Icon type="md-trash" v-if="item.flowStatus=='HAS_ENTRY'" @click="undelate" style="color:#b5b5b5;cursor:pointer;font-size:15px"/></span>
<span ><Icon type="md-trash" v-if="item.flowStatus=='NO_ENTRY'" @click="undelate" style="color:#b5b5b5;cursor:pointer;font-size:15px"/></span>
<span ><Icon type="md-trash" v-if="item.flowStatus=='END'" @click="undelate" style="color:#b5b5b5;cursor:pointer;font-size:15px"/></span>
<span ><Icon type="md-trash" v-if="item.flowStatus=='HAS_SENT_OFFER'" @click="undelate" style="color:#b5b5b5;cursor:pointer;font-size:15px"/></span>
<span ><Icon type="md-trash" v-if="item.flowStatus=='ARRIVED'" @click="undelate" style="color:#b5b5b5;cursor:pointer;font-size:15px"/></span>
<span ><Icon type="md-trash" v-if="item.flowStatus=='PASS'" @click="delateR(item.id)" style=";cursor:pointer;color:rgb(242, 93, 87);;font-size:15px;"/></span>
<span ><Icon type="md-trash" v-if="item.flowStatus=='OPTION'" @click="delateR(item.id)" style="color:rgb(242, 93, 87);;font-size:15px;;cursor:pointer"/></span>
<span ><Icon type="md-trash" v-if="item.flowStatus=='TO_DO'" @click="delateR(item.id)" style="color:rgb(242, 93, 87);;font-size:15px;;cursor:pointer"/></span>
<span @click="RecordSEE(item.id,item.ownerName)" style=";cursor:pointer;color:#2d8cf0">记录</span>
</span>
</p>
......@@ -1115,14 +1115,15 @@ export default {
.Recode span{
margin-left:20px
}
select::-ms-expand{display:none;}
select::-ms-expand{display:none;}
select{
appearance:none;
-moz-appearance:none;
-webkit-appearance:none;
outline: none;
border: none;
color:#2d8cf0
color:#2d8cf0;
background-color: rgba(255,255,255,0.0)
}
.active3{
color:#2d8cf0;
......
......@@ -284,7 +284,8 @@ export default {
margin-left:30px;
float: left;
margin-top: 30px;
line-height: 30px
line-height: 30px;
margin-bottom: 20px
}
.detailTitel{
width: 860px;
......
......@@ -9,12 +9,13 @@
<Input placeholder="请输入" style="width:85%;" v-model="formInline.Inviter" size="large"/>
</FormItem>
<FormItem label="邀约人手机" style="" class="phone">
<Input placeholder="请输入" style="width:85%;" v-model="formInline.InviterPhoneNumber" size="large" /><br>
<Input placeholder="请输入" style="width:85%;" v-model="formInline.InviterPhoneNumber" size="large" @on-blur='jedugePhone' /><br>
<span style="position: absolute;top: 100%;left: 0;line-height: 1;padding-top: 6px;color:#ed4014;" v-show="isV==true">请输入正确的手机号码</span>
</FormItem>
<FormItem label="面试时间" prop="time">
<Input placeholder="请输入" style="width:40%;" v-model="formInline.date" :readonly="true" size="large" />
<FormItem label="面试时间" prop="time" style="margin-top:0.05rem">
<Input placeholder="请输入" style="width:40%;margin-top:0.05rem" v-model="formInline.date" :readonly="true" size="large" />
<!-- <DatePicker type="date" placeholder="请选择日期" style="width: 120px;margin-left:20px" v-model="formInline.date" @on-change="selectDate" :options="options3" ></DatePicker> -->
<TimePicker type="time" placeholder="请选择时间" style="width: 43%" v-model="formInline.time" format="HH:mm" @on-change="selectTime" @on-focus="defaultRRRR" :editable="false" size="large"></TimePicker>
<TimePicker type="time" placeholder="请选择时间" style="width: 43%;margin-top:0.05rem" v-model="formInline.time" format="HH:mm" @on-change="selectTime" @on-focus="defaultRRRR" :editable="false" size="large"></TimePicker>
</FormItem>
<FormItem label="应聘职位" prop="position">
<Input placeholder="请输入" style="width:85%;" v-model="formInline.position" size="large"/>
......@@ -159,6 +160,7 @@ export default {
phoneNUmber:'',
name:'',
},
isV:false,
hh:['01',"02","03","04","05","06","07","08","09","10","11","12"],
mm:['00','10','20','30','40','50','60']
}
......@@ -174,6 +176,10 @@ export default {
this.$Message.error('请输入正确的手机号')
return
}
if(this.formInline.InviterPhoneNumber!==''&&!(/^[1][3,4,5,7,8,6,9][0-9]{9}$/.test(this.formInline.InviterPhoneNumber))){
this.$Message.error('请输入正确的手机号')
return
}
let parmars={
invitePerson:this.formInline.Inviter,
inviterMobile:this.formInline.InviterPhoneNumber,
......@@ -208,14 +214,14 @@ export default {
welconme(){
this.modal3=true
},
// jedugePhone(){
// if(!(/^[1][3,4,5,7,8,6,9][0-9]{9}$/.test(this.formInline.InviterPhoneNumber,))){
// this.isV=true
// setTimeout(() => {
// this.isV=false
// }, 3000);
// }
// },
jedugePhone(){
if(!(/^[1][3,4,5,7,8,6,9][0-9]{9}$/.test(this.formInline.InviterPhoneNumber))){
this.isV=true
setTimeout(() => {
this.isV=false
}, 3000);
}
},
// 阻止弹出键盘
defaultRRRR(){
document.activeElement.blur()
......
......@@ -335,13 +335,11 @@ import {uploadFile} from '../../service/ajax'
},
onSuccess: res => {
this.handleSuccess(res, this.files);
// this.getnumber()
this.activeT=true
this.filetile='上传完成'
},
onError: (err, response) => {
this.handleError(err, response, this.files);
// this.activeT=true
}
})
},
......@@ -696,7 +694,8 @@ import {uploadFile} from '../../service/ajax'
margin-left:30px;
float: left;
margin-top: 30px;
line-height: 30px
line-height: 30px;
margin-bottom: 20px
}
.bestmessage{
width: 860px;
......
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