|
|
@@ -12,82 +12,109 @@
|
|
|
<el-button type="text" @click="addClick(props.scope.row, 2)"
|
|
|
>详情</el-button
|
|
|
>
|
|
|
- <el-button type="text" @click="addClick(props.scope.row, 0)"
|
|
|
- >修改</el-button
|
|
|
- >
|
|
|
- <el-button type="text" @click="del(props.scope.row)">删除</el-button>
|
|
|
+ <el-button type="text" v-if="props.scope.row.status==0" @click="addClick(props.scope.row, 0)">邀请</el-button>
|
|
|
+ <el-button type="text" v-if="props.scope.row.status==0" @click="addClick(props.scope.row, 1)">拒绝</el-button>
|
|
|
+ <el-button type="text" v-if="props.scope.row.status==1" >已邀请</el-button>
|
|
|
+ <el-button type="text" v-if="props.scope.row.status==3" >已谢绝</el-button>
|
|
|
+ <el-button type="text" v-if="props.scope.row.status==2" >已确定</el-button>
|
|
|
</template>
|
|
|
</table-list>
|
|
|
<pagination
|
|
|
:total="total"
|
|
|
- :pageSize="pageSize"
|
|
|
- :currentPage="currentPage"
|
|
|
+ :pageSize="searchPamam.pageSize"
|
|
|
+ :currentPage="searchPamam.currentPage"
|
|
|
@handleSizeChange="handleSizeChange"
|
|
|
@handleCurrentChange="handleCurrentChange"
|
|
|
/>
|
|
|
+
|
|
|
<el-dialog
|
|
|
- :visible.sync="dialogVisible"
|
|
|
- width="560px"
|
|
|
- :show-close="false"
|
|
|
- :before-close="close"
|
|
|
- >
|
|
|
- <div slot="title" class="hearders">
|
|
|
- <div class="leftTitle">
|
|
|
- {{ statusPop === 1 ? "添加" : statusPop === 0 ? "修改" : "详情" }}
|
|
|
+ :visible.sync="calendarDialogVisible"
|
|
|
+ width="30%"
|
|
|
+ custom-class="inviteDialog"
|
|
|
+ center>
|
|
|
+ <div style="min-width: 360px">
|
|
|
+ <div class="d_title">
|
|
|
+ <div>当前共有 {{peopleNum}} 人需要面试</div>
|
|
|
+ <div class="d_title_r">查看全部</div>
|
|
|
</div>
|
|
|
- <div class="rightBoxs">
|
|
|
- <img src="@/assets/images/Close@2x.png" alt="" @click="close" />
|
|
|
+ <div class="week_box">
|
|
|
+ <i class="el-icon-arrow-left" style="cursor: pointer;margin-top: 5px" @click="changeWeek(-1)"></i>
|
|
|
+ <div v-for="(item, index) in weekDay" :key="index" class="card_date">
|
|
|
+ <div>{{ item }}</div>
|
|
|
+ <div v-if="weekDayList.length>0" :class="dayValue.getDate()==weekDayList[index].num?'selCircle':'selNone'" @click="selDay(weekDayList[index],index)">{{ weekDayList[index].num }}</div>
|
|
|
+ </div>
|
|
|
+ <i class="el-icon-arrow-right" style="cursor: pointer;margin-top: 5px" @click="changeWeek(1)"></i>
|
|
|
+ </div>
|
|
|
+ <div v-for="(item, index) in recruitList" style="display: flex;padding: 20px">
|
|
|
+ <div>{{item.timeStr}}</div>
|
|
|
+ <div style="display: flex;margin-left: 30px">
|
|
|
+ <div v-for="(item_c, index_c) in item.list">
|
|
|
+ {{item_c.job}}-{{item_c.recruitResumeVo.realname}}<span v-if="index_c<item.list.length-1">,</span>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div>
|
|
|
+ <el-form :model="form" :rules="rules" label-width="80px" ref="inviteForm">
|
|
|
+ <el-form-item label="公司" prop="companyName">
|
|
|
+ <el-input v-model="form.companyName"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="时间" prop="resumeTime">
|
|
|
+ <el-date-picker type="datetime" placeholder="选择时间" v-model="form.resumeTime" value-format="timestamp"></el-date-picker>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="地点" prop="address">
|
|
|
+ <el-input v-model="form.address" ></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="电话" prop="linkTel">
|
|
|
+ <el-input v-model="form.linkTel"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="联系人" prop="linkMan">
|
|
|
+ <el-input v-model="form.linkMan"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <span slot="footer" class="dialog-footer">
|
|
|
+ <el-button @click="calendarDialogVisible = false">取 消</el-button>
|
|
|
+ <el-button type="primary" @click="submitForm(0)">发送邀请</el-button>
|
|
|
+ </span>
|
|
|
+ </el-dialog>
|
|
|
+ <el-dialog
|
|
|
+ :visible.sync="refuseDialogVisible"
|
|
|
+ width="30%"
|
|
|
+ center>
|
|
|
+ <div style="min-width: 360px">
|
|
|
+ <div style="margin-top: 30px">
|
|
|
+ <div style="width: 100%">
|
|
|
+ <el-radio v-model="radio" label="1">
|
|
|
+ <el-input
|
|
|
+ type="textarea"
|
|
|
+ :rows="2"
|
|
|
+ placeholder="请输入内容"
|
|
|
+ :disabled="radio=='2'"
|
|
|
+ v-model="refuseText1">
|
|
|
+ </el-input>
|
|
|
+ </el-radio>
|
|
|
+ </div>
|
|
|
+ <div style="margin-top: 30px">
|
|
|
+ <el-radio v-model="radio" label="2">
|
|
|
+ 自定义原因
|
|
|
+ </el-radio>
|
|
|
+ <div style="margin-left: 25px;margin-top: 10px;width: 90%">
|
|
|
+ <el-input
|
|
|
+ type="textarea"
|
|
|
+ :rows="2"
|
|
|
+ :disabled="radio=='1'"
|
|
|
+ placeholder="请输入内容"
|
|
|
+ v-model="refuseText2">
|
|
|
+ </el-input>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div>
|
|
|
- <el-form
|
|
|
- label-position="right"
|
|
|
- label-width="80px"
|
|
|
- :model="listData"
|
|
|
- :rules="rules"
|
|
|
- ref="listData"
|
|
|
- >
|
|
|
- <el-form-item
|
|
|
- v-for="(items, indexs) in listitem"
|
|
|
- :key="indexs"
|
|
|
- :label="items.label"
|
|
|
- :prop="items.prop"
|
|
|
- >
|
|
|
- <el-radio-group
|
|
|
- v-if="items.scope === 'status'"
|
|
|
- v-model="listData[items.prop]"
|
|
|
- >
|
|
|
- <el-radio
|
|
|
- v-for="(item, index) in items.options"
|
|
|
- :key="index"
|
|
|
- :label="item.value"
|
|
|
- :disabled="statusPop === 2"
|
|
|
- >{{ item.label }}</el-radio
|
|
|
- >
|
|
|
- </el-radio-group>
|
|
|
- <el-input
|
|
|
- :disabled="statusPop === 2"
|
|
|
- v-else-if="items.scope === 'textarea'"
|
|
|
- type="textarea"
|
|
|
- v-model="listData[items.prop]"
|
|
|
- ></el-input>
|
|
|
- <el-input
|
|
|
- :disabled="statusPop === 2"
|
|
|
- v-else
|
|
|
- v-model="listData[items.prop]"
|
|
|
- ></el-input>
|
|
|
- </el-form-item>
|
|
|
- </el-form>
|
|
|
- </div>
|
|
|
- <span slot="footer" class="dialog-footer">
|
|
|
- <el-button @click="close">取 消</el-button>
|
|
|
- <el-button
|
|
|
- type="primary"
|
|
|
- v-if="statusPop !== 2"
|
|
|
- @click="submit('listData')"
|
|
|
- >确 定</el-button
|
|
|
- >
|
|
|
- </span>
|
|
|
+ <span slot="footer" class="dialog-footer">
|
|
|
+ <el-button @click="refuseDialogVisible = false">取 消</el-button>
|
|
|
+ <el-button type="primary" @click="submitForm(1)">确认</el-button>
|
|
|
+ </span>
|
|
|
</el-dialog>
|
|
|
</div>
|
|
|
</template>
|
|
|
@@ -100,7 +127,35 @@ export default {
|
|
|
components: { searchBox, tableList, pagination },
|
|
|
data() {
|
|
|
return {
|
|
|
+ radio:'1',
|
|
|
+ refuseText1:'您的简历已经纳入我们公司的人才储备库,如果有适合您的岗位,我们会第一时间通知您,祝您求职成功,心想事成。',
|
|
|
+ refuseText2:'',
|
|
|
+ refuseForm:{
|
|
|
+ refuse:''
|
|
|
+ },
|
|
|
+ refuseDialogVisible: false,
|
|
|
+ dayValue: new Date(),
|
|
|
+ calendarDialogVisible: false,
|
|
|
+ weekDay:['一','二','三','四','五','六','日'],
|
|
|
+ weekDayList:[],
|
|
|
+ weekDay1:new Date(),
|
|
|
+ weekDay2:new Date(),
|
|
|
+ recruitList:[],
|
|
|
+ dayInterviewVos:[],
|
|
|
+ form:{
|
|
|
+ companyName:'',
|
|
|
+ linkMan:'',
|
|
|
+ linkTel:'',
|
|
|
+ address:'',
|
|
|
+ resumeTime:''
|
|
|
+ },
|
|
|
+ peopleNum:0,
|
|
|
loading: false, //当前表单加载是否加载动画
|
|
|
+ searchPamam:{
|
|
|
+ pageSize: 10, //每页多少条数据
|
|
|
+ currentPage: 1, //当前页码
|
|
|
+ statusArray: "0,1",
|
|
|
+ },
|
|
|
navText: {
|
|
|
title: "简历中心",
|
|
|
index: 0,
|
|
|
@@ -150,55 +205,56 @@ export default {
|
|
|
tableSet: [
|
|
|
{
|
|
|
label: "姓名",
|
|
|
- prop: "dictId",
|
|
|
+ prop: "resumeRealName",
|
|
|
hidden: true,
|
|
|
},
|
|
|
{
|
|
|
label: "性别",
|
|
|
- prop: "dictName",
|
|
|
+ prop: "sexLabel",
|
|
|
hidden: true,
|
|
|
},
|
|
|
{
|
|
|
label: "工作年限",
|
|
|
- prop: "dictType",
|
|
|
+ prop: "workYear",
|
|
|
hidden: true,
|
|
|
},
|
|
|
{
|
|
|
label: "年龄",
|
|
|
- prop: "status",
|
|
|
+ prop: "age",
|
|
|
hidden: true,
|
|
|
},
|
|
|
{
|
|
|
label: "邮箱",
|
|
|
- prop: "remark",
|
|
|
+ prop: "email",
|
|
|
hidden: true,
|
|
|
},
|
|
|
{
|
|
|
label: "联系电话",
|
|
|
- prop: "dictType",
|
|
|
+ prop: "telphone",
|
|
|
hidden: true,
|
|
|
width:"200px"
|
|
|
},
|
|
|
{
|
|
|
label: "期望薪资",
|
|
|
- prop: "status",
|
|
|
+ prop: "wantIncomeLabel",
|
|
|
hidden: true,
|
|
|
+ width:"200px"
|
|
|
},
|
|
|
{
|
|
|
label: "地点",
|
|
|
- prop: "remark",
|
|
|
+ prop: "district",
|
|
|
hidden: true,
|
|
|
width:"240px"
|
|
|
},
|
|
|
{
|
|
|
label: "应聘岗位",
|
|
|
- prop: "dictType",
|
|
|
+ prop: "job",
|
|
|
hidden: true,
|
|
|
width:"300px"
|
|
|
},
|
|
|
{
|
|
|
label: "工作类型",
|
|
|
- prop: "remark",
|
|
|
+ prop: "jobType",
|
|
|
hidden: true,
|
|
|
width:"240px"
|
|
|
},
|
|
|
@@ -210,7 +266,7 @@ export default {
|
|
|
},
|
|
|
{
|
|
|
label: "简历完成度",
|
|
|
- prop: "remark",
|
|
|
+ prop: "completenessLabel",
|
|
|
hidden: true,
|
|
|
width:"240px"
|
|
|
},
|
|
|
@@ -229,8 +285,6 @@ export default {
|
|
|
],
|
|
|
tableData: [], //表单数据
|
|
|
total: 0, //一共多少条
|
|
|
- pageSize: 10, //每页多少条数据
|
|
|
- currentPage: 1, //当前页码
|
|
|
// 弹窗字段
|
|
|
listitem: [
|
|
|
{
|
|
|
@@ -268,151 +322,226 @@ export default {
|
|
|
dialogVisible: false,
|
|
|
//表单验证
|
|
|
rules: {
|
|
|
- dictName: [
|
|
|
- { required: true, message: "请输入字典名称", trigger: "blur" },
|
|
|
- {
|
|
|
- min: 2,
|
|
|
- max: 10,
|
|
|
- message: "长度在 2 到 10 个字符",
|
|
|
- trigger: "blur",
|
|
|
- },
|
|
|
- ],
|
|
|
- dictType: [
|
|
|
- { required: true, message: "请输入字典类型", trigger: "blur" },
|
|
|
- ],
|
|
|
- status: [{ required: true, message: "请选择状态", trigger: "change" }],
|
|
|
- remark: [{ required: true, message: "请填写备注", trigger: "blur" }],
|
|
|
+ linkTel: [{ required: true, message: "请填写联系电话", trigger: "blur" }],
|
|
|
+ address: [{ required: true, message: "请填写面试地址", trigger: "blur" }],
|
|
|
+ companyName: [{ required: true, message: "请填写公司名称", trigger: "blur" }],
|
|
|
+ linkMan: [{ required: true, message: "请填写联系人", trigger: "blur" }],
|
|
|
+ resumeTime: [{ required: true, message: "请选择面试时间", trigger: "blur" }],
|
|
|
},
|
|
|
companyGMdata:[],//公司规模
|
|
|
companyLXdata:[],//公司类型
|
|
|
};
|
|
|
},
|
|
|
created(){
|
|
|
- this.companyGM()
|
|
|
- this.companyLX()
|
|
|
+
|
|
|
},
|
|
|
mounted() {
|
|
|
this.search();
|
|
|
+ this.searchCalendar()
|
|
|
+ this.getNowTime()
|
|
|
},
|
|
|
methods: {
|
|
|
- companyGM(){
|
|
|
- var arays = []
|
|
|
- var newArrays = []
|
|
|
- arays = this.$store.state.UserDict.filter((item,index) => {
|
|
|
- return item.dictType == "company_size"
|
|
|
- })
|
|
|
- arays.forEach((item,index) => {
|
|
|
- let arrayList = {
|
|
|
- label: item.dictLabel,
|
|
|
- value: item.dictValue
|
|
|
+ editrecruitinterviewRefuse(refuse){
|
|
|
+ let data = JSON.parse(JSON.stringify(this.refuseForm));
|
|
|
+ data.status = 3
|
|
|
+ data.refuse = refuse
|
|
|
+ let that = this
|
|
|
+ this.$api.editrecruitinterview(data).then((res) => {
|
|
|
+ if(res.code==200){
|
|
|
+ that.calendarDialogVisible = false
|
|
|
+ that.refuseDialogVisible = false
|
|
|
+ that.search();
|
|
|
}
|
|
|
- newArrays.push(arrayList)
|
|
|
- })
|
|
|
- for(let i = 0; i < this.formList.length; i++){
|
|
|
- if(this.formList[i].label === '公司规模'){
|
|
|
- this.formList[i].options = newArrays
|
|
|
+ });
|
|
|
+ },
|
|
|
+ editrecruitinterview(){
|
|
|
+ let data = JSON.parse(JSON.stringify(this.form));
|
|
|
+ data.status = 1
|
|
|
+ data.resumeTime = parseInt(data.resumeTime/1000)
|
|
|
+ let that = this
|
|
|
+ this.$api.editrecruitinterview(data).then((res) => {
|
|
|
+ if(res.code==200){
|
|
|
+ that.calendarDialogVisible = false
|
|
|
+ that.search();
|
|
|
}
|
|
|
- }
|
|
|
- this.companyGMdata = newArrays
|
|
|
+ });
|
|
|
},
|
|
|
- companyLX(){
|
|
|
- var arays = []
|
|
|
- var newArrays = []
|
|
|
- arays = this.$store.state.UserDict.filter((item,index) => {
|
|
|
- return item.dictType == "company_type"
|
|
|
- })
|
|
|
- arays.forEach((item,index) => {
|
|
|
- let arrayList = {
|
|
|
- label: item.dictLabel,
|
|
|
- value: item.dictValue
|
|
|
+ submitForm(type){
|
|
|
+ if(type==0){
|
|
|
+ this.$refs['inviteForm'].validate((valid) => {
|
|
|
+ if (valid) {
|
|
|
+ this.editrecruitinterview()
|
|
|
+ } else {
|
|
|
+ console.log('error submit!!');
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ if(type==1){
|
|
|
+ let refuse = ''
|
|
|
+ if(this.radio=='1'){
|
|
|
+ if(this.refuseText1==''){
|
|
|
+ this.$message({
|
|
|
+ message: '请输入拒绝原因',
|
|
|
+ type: 'warning'
|
|
|
+ });
|
|
|
+ return
|
|
|
+ }
|
|
|
+ refuse = this.refuseText1
|
|
|
}
|
|
|
- newArrays.push(arrayList)
|
|
|
- })
|
|
|
- for(let i = 0; i < this.formList.length; i++){
|
|
|
- if(this.formList[i].label === '公司类型'){
|
|
|
- this.formList[i].options = newArrays
|
|
|
+ if(this.radio=='2'){
|
|
|
+ if(this.refuseText2==''){
|
|
|
+ this.$message({
|
|
|
+ message: '请输入拒绝原因',
|
|
|
+ type: 'warning'
|
|
|
+ });
|
|
|
+ return
|
|
|
+ }
|
|
|
+ refuse = this.refuseText2
|
|
|
}
|
|
|
+ this.editrecruitinterviewRefuse(refuse)
|
|
|
}
|
|
|
- this.companyLXdata = newArrays
|
|
|
},
|
|
|
- search(v) {
|
|
|
- this.loading = true;
|
|
|
- if (v === undefined) {
|
|
|
- v = {
|
|
|
- statusArray: "0,1",
|
|
|
- pageSize: this.pageSize,
|
|
|
- pageNum: this.currentPage,
|
|
|
- };
|
|
|
+ getNowTime(){
|
|
|
+ let t = new Date();
|
|
|
+ let newTime = t.getTime()-(t.getMinutes()*60+t.getSeconds())*1000+3600*1000
|
|
|
+ t.setTime(newTime);
|
|
|
+ this.dayValue = t
|
|
|
+ },
|
|
|
+ makeRecruitList(quantumList){
|
|
|
+ this.form.resumeTime = this.dayValue.getTime()
|
|
|
+ this.recruitList = []
|
|
|
+ this.peopleNum = 0
|
|
|
+ for(let i =0;i<quantumList.length;i++){
|
|
|
+ let item = quantumList[i]
|
|
|
+ if(item.recruitInterviewList.length>0){
|
|
|
+ this.peopleNum+=item.recruitInterviewList.length
|
|
|
+ let timeStr = item.timingStart+"点 ~ "+item.timingEnd+"点"
|
|
|
+ let newItem = {timeStr:timeStr,list:item.recruitInterviewList}
|
|
|
+ this.recruitList.push(newItem)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ changeWeek(index){
|
|
|
+ if(index==-1){
|
|
|
+ this.dayValue.setTime(this.dayValue.getTime()-7*24*60*60*1000)
|
|
|
+ }
|
|
|
+ if(index==1){
|
|
|
+ this.dayValue.setTime(this.dayValue.getTime()+7*24*60*60*1000)
|
|
|
}
|
|
|
+ this.searchCalendar()
|
|
|
+ },
|
|
|
+ selDay(day,index){
|
|
|
+ this.dayValue = day.day
|
|
|
+ this.makeRecruitList(this.dayInterviewVos[index].quantumList)
|
|
|
+ },
|
|
|
+ searchCalendar() {
|
|
|
+ let that = this
|
|
|
+ this.loading = true;
|
|
|
var data = {
|
|
|
- dictName: v.dictName || "",
|
|
|
- dictType: v.dictType || "",
|
|
|
- statusArray: v.status === undefined ? "0,1" : v.status,
|
|
|
- pageSize: this.pageSize,
|
|
|
- pageNum: this.currentPage,
|
|
|
+ year: this.dayValue.getFullYear(),
|
|
|
+ month: this.dayValue.getMonth()+1,
|
|
|
+ day: this.dayValue.getDate()
|
|
|
};
|
|
|
- this.tableData = [
|
|
|
- {
|
|
|
- createBy: "admin",
|
|
|
- createTime: "2021-05-08 14:45:46",
|
|
|
- dictId: 1,
|
|
|
- dictName: "用户性别",
|
|
|
- dictType: "sys_user_sex",
|
|
|
- pageNum: null,
|
|
|
- pageSize: null,
|
|
|
- params: {},
|
|
|
- remark: "用户性别列表",
|
|
|
- status: "1",
|
|
|
- statusArray: null,
|
|
|
- updateBy: "admin",
|
|
|
- updateTime: "2021-06-09 15:55:04",
|
|
|
- },
|
|
|
- ];
|
|
|
+ this.$api.recruitinterviewlist(data).then((res) => {
|
|
|
+ if(res.code==200){
|
|
|
+ that.dayInterviewVos = res.data.dayInterviewVos
|
|
|
+ that.weekDayList = []
|
|
|
+ for(let i = 0; i < that.dayInterviewVos.length; i++) {
|
|
|
+ if(res.data.dayInterviewVos[i].date==that.dayValue.getDate()){
|
|
|
+ that.currIndex = i
|
|
|
+ that.makeRecruitList(res.data.dayInterviewVos[i].quantumList)
|
|
|
+ }
|
|
|
+ let weekDay = {
|
|
|
+ num:that.dayInterviewVos[i].date
|
|
|
+ }
|
|
|
+ that.weekDayList.push(weekDay)
|
|
|
+ }
|
|
|
+ for(let i = 0; i < that.weekDayList.length; i++) {
|
|
|
+ var d=new Date();
|
|
|
+ d.setTime(that.dayValue.getTime()+(i-that.currIndex)*24*60*60*1000)
|
|
|
+ that.weekDayList[i].day = d
|
|
|
+ if(i==0){
|
|
|
+ that.weekDay1 = d
|
|
|
+ }
|
|
|
+ if(i==6){
|
|
|
+ that.weekDay2 = d
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ });
|
|
|
this.loading = false;
|
|
|
},
|
|
|
- init() {
|
|
|
- this.search();
|
|
|
+ search() {
|
|
|
+ this.loading = true;
|
|
|
+ let that = this
|
|
|
+ this.$api.recruitinterviewlistAll(this.searchPamam).then((res) => {
|
|
|
+ if(res.code==200){
|
|
|
+ that.tableData = res.rows
|
|
|
+ that.total = res.total
|
|
|
+ that.navText.index = res.total;
|
|
|
+ let nowYear = (new Date()).getFullYear()
|
|
|
+ for(let i=0;i<that.tableData.length;i++){
|
|
|
+ let item = that.tableData[i]
|
|
|
+ item.sexLabel = item.sex==1?'男':'女'
|
|
|
+ item.wantIncomeLabel = item.recruitResumeVo.wantIncomeStart+'-'+item.recruitResumeVo.wantIncomeEnd
|
|
|
+ item.resumeRealName = item.recruitResumeVo.realname
|
|
|
+ item.telphone = item.recruitResumeVo.telphone
|
|
|
+ item.email = item.recruitResumeVo.email
|
|
|
+ item.workYear = item.recruitResumeVo.startYear?(nowYear-item.recruitResumeVo.startYear) +'年':'暂无数据'
|
|
|
+ item.jobType = item.recruitResumeVo.jobType
|
|
|
+ item.completenessLabel = item.recruitResumeVo.completeness+'%'
|
|
|
+ let userBirth = new Date(item.recruitResumeVo.userBirth);
|
|
|
+ let birthday = [userBirth.getFullYear(),userBirth.getMonth()+1,userBirth.getDate()]
|
|
|
+ item.age = item.recruitResumeVo.userBirth==null?'暂无数据':this.getAge(birthday)[0]+'岁'
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ this.loading = false;
|
|
|
},
|
|
|
- del(v) {
|
|
|
- this.$confirm("此操作将删除该字典类型, 是否继续?", "提示", {
|
|
|
- confirmButtonText: "确定",
|
|
|
- cancelButtonText: "取消",
|
|
|
- type: "warning",
|
|
|
+ getAge(birthday) {
|
|
|
+ // 新建日期对象
|
|
|
+ let date = new Date()
|
|
|
+ // 今天日期,数组,同 birthday
|
|
|
+ let today = [date.getFullYear(), date.getMonth() + 1, date.getDate()]
|
|
|
+ // 分别计算年月日差值
|
|
|
+ let age = today.map((value, index) => {
|
|
|
+ return value - birthday[index]
|
|
|
})
|
|
|
- .then(() => {
|
|
|
- this.$message.success("删除成功");
|
|
|
- })
|
|
|
- .catch(() => {
|
|
|
- this.$message({
|
|
|
- type: "info",
|
|
|
- message: "已取消删除",
|
|
|
- });
|
|
|
- });
|
|
|
+ // 当天数为负数时,月减 1,天数加上月总天数
|
|
|
+ if (age[2] < 0) {
|
|
|
+ // 简单获取上个月总天数的方法,不会错
|
|
|
+ let lastMonth = new Date(today[0], today[1], 0)
|
|
|
+ age[1]--
|
|
|
+ age[2] += lastMonth.getDate()
|
|
|
+ }
|
|
|
+ // 当月数为负数时,年减 1,月数加上 12
|
|
|
+ if (age[1] < 0) {
|
|
|
+ age[0]--
|
|
|
+ age[1] += 12
|
|
|
+ }
|
|
|
+ return age
|
|
|
+ },
|
|
|
+ init() {
|
|
|
+ this.search();
|
|
|
},
|
|
|
addClick(v, int) {
|
|
|
- if (v === undefined) {
|
|
|
- this.statusPop = 1;
|
|
|
- this.listData = {};
|
|
|
- } else {
|
|
|
- this.statusPop = int;
|
|
|
- var data = v.dictId;
|
|
|
- this.listData = {
|
|
|
- createBy: "admin",
|
|
|
- createTime: "2021-05-08 14:45:46",
|
|
|
- dictId: 1,
|
|
|
- dictName: "用户性别",
|
|
|
- dictType: "sys_user_sex",
|
|
|
- pageNum: null,
|
|
|
- pageSize: null,
|
|
|
- params: {},
|
|
|
- remark: "用户性别列表",
|
|
|
- status: "1",
|
|
|
- statusArray: null,
|
|
|
- updateBy: "admin",
|
|
|
- updateTime: "2021-06-09 15:55:04",
|
|
|
- };
|
|
|
+ if(int==0){
|
|
|
+ this.calendarDialogVisible = true
|
|
|
+ this.form.companyName = v.companyName
|
|
|
+ this.form.address = v.city+' '+v.district+' '+v.companyAddress
|
|
|
+ this.form.linkMan = v.linkMan
|
|
|
+ this.form.linkTel = v.linkTel
|
|
|
+ this.form.interviewId = v.interviewId
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if(int==1){
|
|
|
+ this.refuseDialogVisible = true
|
|
|
+ this.refuseForm.interviewId = v.interviewId
|
|
|
+ return
|
|
|
}
|
|
|
- this.dialogVisible = true;
|
|
|
},
|
|
|
submit(formName) {
|
|
|
this.$refs[formName].validate((valid) => {
|
|
|
@@ -449,19 +578,68 @@ export default {
|
|
|
.catch(() => {});
|
|
|
},
|
|
|
handleSizeChange(v) {
|
|
|
- this.pageSize = v;
|
|
|
- this.currentPage = 1;
|
|
|
+ this.searchPamam.pageSize = v;
|
|
|
+ this.searchPamam.currentPage = 1;
|
|
|
this.search();
|
|
|
},
|
|
|
handleCurrentChange(v) {
|
|
|
- this.currentPage = v;
|
|
|
+ this.searchPamam.currentPage = v;
|
|
|
this.search();
|
|
|
},
|
|
|
},
|
|
|
};
|
|
|
</script>
|
|
|
-
|
|
|
+<style>
|
|
|
+.el-cascader-node>.el-radio, .el-radio:last-child{
|
|
|
+ width: 90%;
|
|
|
+}
|
|
|
+#resumeCenter .el-dialog{
|
|
|
+ min-width: 400px !important;
|
|
|
+}
|
|
|
+</style>
|
|
|
<style lang="less" scoped>
|
|
|
+
|
|
|
+.selNone {
|
|
|
+ margin: 13px auto;
|
|
|
+ cursor: pointer;
|
|
|
+ border-radius: 50%;
|
|
|
+ border:1px solid #000000;
|
|
|
+ width: 30px;
|
|
|
+ height: 30px;
|
|
|
+ text-align: center;
|
|
|
+ line-height: 30px;
|
|
|
+}
|
|
|
+.selCircle {
|
|
|
+ border-radius: 50%;
|
|
|
+ width: 30px;
|
|
|
+ height: 30px;
|
|
|
+ color: #ffffff !important;
|
|
|
+ background-color: #3494F7;
|
|
|
+ text-align: center;
|
|
|
+ line-height: 30px;
|
|
|
+ margin: 13px auto;
|
|
|
+ cursor: pointer;
|
|
|
+}
|
|
|
+.card_date {
|
|
|
+ width: 14%;
|
|
|
+ text-align: center;
|
|
|
+ color: #000;
|
|
|
+}
|
|
|
+.week_box{
|
|
|
+ width: 100%;
|
|
|
+ display: flex;
|
|
|
+ justify-content:center;
|
|
|
+ margin-top: 20px;
|
|
|
+}
|
|
|
+.d_title_r{
|
|
|
+ color: #3494F7;
|
|
|
+ cursor: pointer;
|
|
|
+}
|
|
|
+.d_title{
|
|
|
+ display: flex;
|
|
|
+ justify-content: space-between;
|
|
|
+ margin-top: 30px;
|
|
|
+}
|
|
|
/deep/.el-button {
|
|
|
border-radius: 8px;
|
|
|
}
|