Tang hace 4 años
padre
commit
cc330b8cb1

+ 15 - 8
src/api/recruitmentCalendar.js

@@ -1,13 +1,13 @@
 import request from '@/utils/request' //引入axios请求及拦截器
 import request from '@/utils/request' //引入axios请求及拦截器
 export default {
 export default {
-    //查询招聘面试日历列表
-    recruitinterviewlist(data) {
-        return request({
-            url: '/recruit/interview/list',
-            method: 'get',
-            params: data
-        })
-    },
+  //查询招聘面试日历列表
+  recruitinterviewlist(data) {
+    return request({
+      url: '/recruit/interview/list',
+      method: 'get',
+      params: data
+    })
+  },
   recruitinterviewlistAll(data) {
   recruitinterviewlistAll(data) {
     return request({
     return request({
       url: '/recruit/interview/listAll',
       url: '/recruit/interview/listAll',
@@ -23,4 +23,11 @@ export default {
       data
       data
     })
     })
   },
   },
+  // 查询详情招聘面试简历
+  recruitinterview(data) {
+    return request({
+      url: '/recruit/interview/' + data,
+      method: 'get',
+    })
+  },
 }
 }

BIN
src/assets/images/pdf@3x.png


+ 640 - 0
src/components/resumexq.vue

@@ -0,0 +1,640 @@
+<template>
+  <div id="resumexq">
+    <el-dialog
+      :visible.sync="dialogBox"
+      width="780px"
+      :show-close="false"
+      :destroy-on-close="true"
+      :before-close="closeBefore"
+      :fullscreen="fullscreen"
+    >
+      <div slot="title" class="hearders">
+        <div class="leftTitle">详情</div>
+        <div class="rightBoxs">
+          <img
+            src="@/assets/images/Max@2x.png"
+            alt=""
+            @click="fullscreen = !fullscreen"
+          />
+          <img src="@/assets/images/Close@2x.png" alt="" @click="closeBefore" />
+        </div>
+      </div>
+      <el-row class="contentBox" :gutter="30">
+        <div class="topLsBtn">
+          <div
+            class="lstext"
+            :class="activeStatus === 1 ? 'activesSty' : ''"
+            @click="activeChanges(1)"
+          >
+            {{pageInfo.realname || userVo.realname}}-在线简历
+          </div>
+          <div
+            class="lstext"
+            :class="activeStatus === 2 ? 'activesSty' : ''"
+            @click="activeChanges(2)"
+          >
+            附件简历详情
+          </div>
+        </div>
+        <div v-if="activeStatus === 1">
+          <p class="pList">
+            应聘岗位:{{ pageInfo.job }} | {{ pageInfo.jobType }}
+          </p>
+          <p class="pList">
+            投递时间:{{ $methodsTools.onlyForma(pageInfo.createTime) }}
+          </p>
+          <div class="userBoxs">
+            <div class="imgBoxsZing">
+              <img
+                style="width: 100%; height: 100%"
+                :src="$methodsTools.splitImgHost(userVo.oneInchPhotos)"
+                alt=""
+              />
+            </div>
+            <div class="riglist">
+              <h2 class="hesz">
+                {{ pageInfo.realname || userVo.realname }}
+                <i class="topRislz">简历完成度:{{ pageInfo.completeness }}%</i>
+              </h2>
+              <p>
+                {{ pageInfo.sex === 1 ? "男" : "女" }} |
+                {{ getYears(pageInfo.userBirth) }}岁 ({{ pageInfo.userBirth }})
+                | 现居 {{ pageInfo.city + "-" + pageInfo.district }} |
+                {{ getYearsNum(pageInfo.startYear) }}年工作经验 |
+                {{ pageInfo.comeWorkTime }}
+              </p>
+              <p>邮箱号:{{ pageInfo.email }}</p>
+              <p>手机号:{{ pageInfo.telphone }}</p>
+              <div class="sdzz">
+                <h3>个人视频</h3>
+                <i
+                  v-if="
+                    pageInfo.introduceVideoUrl !== null &&
+                    pageInfo.introduceVideoUrl !== ''
+                  "
+                  class="el-icon-video-play"
+                  @click="openVideo"
+                ></i>
+                <span v-else>无</span>
+              </div>
+            </div>
+          </div>
+          <div class="qzyx">
+            <div class="tyHeaderStyle">求职意向</div>
+            <p style="font-weight: 600">
+              {{ pageInfo.job }} {{ pageInfo.city + "-" + pageInfo.district }}
+              {{ pageInfo.wantIncomeStart }}-{{ pageInfo.wantIncomeEnd }}/{{
+                pageInfo.wantIncomeType === 1 ? "月" : "年"
+              }}
+            </p>
+            <p>
+              {{ pageInfo.jobType }} | 到岗时间:{{ pageInfo.comeWorkTime }}
+            </p>
+            <div class="dis_sf">
+              <div>自我评价:</div>
+              <div>{{ pageInfo.selfEvaluation }}</div>
+            </div>
+          </div>
+          <div class="userInfosPres">
+            <div class="tyHeaderStyle">个人信息</div>
+            <p>
+              户口/户籍:{{
+                userVo.houseProvince + userVo.houseCity + userVo.houseDistrict
+              }}
+            </p>
+            <p>政治面貌:{{ userVo.politic }}</p>
+            <p>婚姻状况:{{ userVo.marry }}</p>
+          </div>
+          <div class="gzjl">
+            <div class="tyHeaderStyle">工作经历</div>
+            <div
+              class="dis_fz"
+              v-for="(item, index) in pageInfo.workExperienceJson"
+              :key="index"
+            >
+              <div class="yearsSty">
+                {{ item.startTime }} ~ {{ item.endTime }}
+              </div>
+              <div>{{ item.company }}</div>
+              <div style="margin-left: 40px">{{ item.job }}</div>
+            </div>
+          </div>
+          <div class="gzjl">
+            <div class="tyHeaderStyle">项目经验</div>
+            <div
+              style="margin-bottom: 20px"
+              v-for="(item, index) in pageInfo.projectExperienceJson"
+              :key="index"
+            >
+              <div class="dis_fz">
+                <div class="yearsSty">
+                  {{ item.startTime }} ~ {{ item.endTime }}
+                </div>
+                <div>{{ item.job }}</div>
+              </div>
+              <div>项目描述:{{ item.projectDescription }}</div>
+            </div>
+          </div>
+          <div class="gzjl">
+            <div class="tyHeaderStyle">教育经历</div>
+            <div
+              class="dis_fz"
+              v-for="(item, index) in pageInfo.eduExperienceJson"
+              :key="index"
+            >
+              <div class="yearsSty">
+                {{ item.startTime }} ~ {{ item.endTime }}
+              </div>
+              <div>{{ item.school }}</div>
+              <div style="margin-left: 40px">{{ item.Professional }}</div>
+              <div style="margin-left: 40px">{{ item.edu }}</div>
+            </div>
+          </div>
+          <div class="zhengshu">
+            <div class="tyHeaderStyle">证书</div>
+            <div>
+              <div class="hty">建筑资历证书</div>
+              <div
+                v-for="(item, index) in pageInfo.certificateJson"
+                :key="index"
+              >
+                <div class="fiss" v-if="item.cfType === '0'">
+                  <div class="YEARS_S">{{ item.endTime }}</div>
+                  <div>{{ item.categoryName }}</div>
+                </div>
+              </div>
+            </div>
+            <div>
+              <div class="hty">非建筑资历证书</div>
+              <div
+                v-for="(item, index) in pageInfo.certificateJson"
+                :key="index"
+              >
+                <div class="fiss" v-if="item.cfType === '1'">
+                  <div class="YEARS_S">{{ item.endTime }}</div>
+                  <div>{{ item.cfName }}</div>
+                </div>
+              </div>
+            </div>
+          </div>
+          <div>
+            <div class="tyHeaderStyle">操作动态</div>
+            <div style="max-height: 300px; overflow: auto">
+              <el-steps direction="vertical" :active="voList.length">
+                <el-step
+                  v-for="(item, index) in voList"
+                  :key="index"
+                  :title="
+                    item.status === 1
+                      ? '邀请面试'
+                      : item.status === 2
+                      ? '查看简历'
+                      : item.status === 3
+                      ? '投递简历'
+                      : '未知状态'
+                  "
+                  :description="
+                    item.userName +
+                    ' ' +
+                    $methodsTools.onlyForma(item.createTime)
+                  "
+                  icon="el-icon-circle-check"
+                ></el-step>
+              </el-steps>
+            </div>
+          </div>
+        </div>
+        <div v-if="activeStatus === 2">
+          <div
+            class="die_s"
+            v-if="pageInfo.attachUrl !== null && pageInfo.attachUrl !== ''"
+          >
+            <a
+              :href="$methodsTools.splitImgHost(pageInfo.attachUrl)"
+              target="_blank"
+              class="img_pdf"
+              ><img
+                style="width: 100%; height: 100%"
+                src="@/assets/images/pdf@3x.png"
+                alt="PDF图"
+            /></a>
+            <div>{{ pageInfo.attachName }}</div>
+          </div>
+          <div style="text-align: center" v-else>暂无附件</div>
+        </div>
+        <div class="qusts" v-if="upPageInfos.userVo === 0">
+          <el-button type="warning" @click="addClick(1)">拒绝</el-button
+          ><el-button type="primary" @click="addClick(0)">邀请面试</el-button>
+        </div>
+      </el-row>
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="closeBefore">关闭</el-button>
+      </div>
+
+      <el-dialog
+        :visible.sync="openVideoStatus"
+        width="500px"
+        :show-close="false"
+        :append-to-body="true"
+        :destroy-on-close="true"
+      >
+        <div slot="title" class="hearders">
+          <div class="leftTitle">详情</div>
+          <div class="rightBoxs">
+            <img
+              src="@/assets/images/Close@2x.png"
+              alt=""
+              @click="closeBeforefs"
+            />
+          </div>
+        </div>
+        <el-row class="contentBox" :gutter="30">
+          <div style="width: 100%; height: 100%">
+            <video
+              controls
+              preload
+              style="width: 100%; height: 100%"
+              :src="$methodsTools.splitImgHost(pageInfo.introduceVideoUrl)"
+            ></video>
+          </div>
+        </el-row>
+        <div slot="footer" class="dialog-footer">
+          <el-button @click="closeBeforefs">关闭</el-button>
+        </div>
+      </el-dialog>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+export default {
+  data() {
+    return {
+      activeStatus: 1,
+      openVideoStatus: false,
+      fullscreen: false,
+      dialogBox: false,
+      pageInfo: {},
+      userVo: {},
+      voList: [],
+      upPageInfos: {},
+    };
+  },
+  methods: {
+    openVideo() {
+      this.openVideoStatus = true;
+    },
+    init(v) {
+      var self = this;
+      this.$api.recruitinterview(v).then((res) => {
+        if (res.code === 200) {
+          if (res.data.recruitResumeVo.certificateJson) {
+            res.data.recruitResumeVo.certificateJson = JSON.parse(
+              res.data.recruitResumeVo.certificateJson
+            );
+          }
+          if (res.data.recruitResumeVo.eduExperienceJson) {
+            res.data.recruitResumeVo.eduExperienceJson = JSON.parse(
+              res.data.recruitResumeVo.eduExperienceJson
+            );
+          }
+          if (res.data.recruitResumeVo.projectExperienceJson) {
+            res.data.recruitResumeVo.projectExperienceJson = JSON.parse(
+              res.data.recruitResumeVo.projectExperienceJson
+            );
+          }
+          if (res.data.recruitResumeVo.workExperienceJson) {
+            res.data.recruitResumeVo.workExperienceJson = JSON.parse(
+              res.data.recruitResumeVo.workExperienceJson
+            );
+          }
+          if (res.data.recruitResumeVo.userBirth) {
+            res.data.recruitResumeVo.userBirth =
+              res.data.recruitResumeVo.userBirth.slice(
+                0,
+                res.data.recruitResumeVo.userBirth.indexOf("T")
+              );
+          }
+          self.pageInfo = res.data.recruitResumeVo;
+          self.userVo = res.data.userVo;
+          self.voList = res.data.recruitInterviewLogVoList.reverse();
+          self.dialogBox = true;
+        }
+      });
+    },
+    getCInfos(options) {
+      this.upPageInfos = options;
+    },
+    addClick(int) {
+      this.$emit("addClicks", this.upPageInfos, int);
+    },
+    activeChanges(int) {
+      this.activeStatus = int;
+    },
+    closeBefore() {
+      this.dialogBox = false;
+    },
+    closeBeforefs() {
+      this.openVideoStatus = false;
+    },
+    getYearsNum(int) {
+      var d = new Date();
+      var nowYear = d.getFullYear();
+      return nowYear - int;
+    },
+    getYears(strBirthday) {
+      if (strBirthday === undefined || strBirthday === null) {
+        return "-";
+      }
+      var returnAge;
+      var strBirthdayArr = strBirthday.split("-");
+      var birthYear = strBirthdayArr[0];
+      var birthMonth = strBirthdayArr[1];
+      var birthDay = strBirthdayArr[2];
+      var d = new Date();
+      var nowYear = d.getFullYear();
+      var nowMonth = d.getMonth() + 1;
+      var nowDay = d.getDate();
+
+      if (nowYear == birthYear) {
+        returnAge = 0; //同年 则为0岁
+      } else {
+        var ageDiff = nowYear - birthYear; //年之差
+        if (ageDiff > 0) {
+          if (nowMonth == birthMonth) {
+            var dayDiff = nowDay - birthDay; //日之差
+            if (dayDiff < 0) {
+              returnAge = ageDiff - 1;
+            } else {
+              returnAge = ageDiff;
+            }
+          } else {
+            var monthDiff = nowMonth - birthMonth; //月之差
+            if (monthDiff < 0) {
+              returnAge = ageDiff - 1;
+            } else {
+              returnAge = ageDiff;
+            }
+          }
+        } else {
+          returnAge = -1; //返回-1 表示出生日期输入错误 晚于今天
+        }
+      }
+      return returnAge; //返回周岁年龄
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped>
+.trLists {
+  td {
+    background-color: rgb(249, 250, 252);
+    font-weight: 600;
+  }
+}
+td {
+  padding: 10px;
+}
+th {
+  padding: 10px;
+  background-color: rgb(249, 250, 252);
+}
+.label {
+  text-align: right;
+  background-color: rgb(249, 250, 252);
+  width: 15%;
+}
+.flex {
+  width: 35%;
+}
+/deep/.el-button {
+  border-radius: 8px;
+}
+/deep/.el-dialog {
+  border-radius: 8px;
+  .el-dialog__header {
+    padding: 0;
+    .hearders {
+      height: 40px;
+      display: flex;
+      align-items: center;
+      justify-content: space-between;
+      padding: 0px 18px 0px 20px;
+      border-bottom: 1px solid #e2e2e2;
+      .leftTitle {
+        font-size: 14px;
+        font-weight: bold;
+        color: #2f4378;
+      }
+      .rightBoxs {
+        display: flex;
+        align-items: center;
+        img {
+          width: 14px;
+          height: 14px;
+          margin-left: 13px;
+          cursor: pointer;
+        }
+      }
+    }
+  }
+  .el-dialog__footer {
+    padding: 0;
+    .dialog-footer {
+      padding: 0px 40px;
+      height: 70px;
+      border-top: 1px solid #e2e2e2;
+      display: flex;
+      align-items: center;
+      justify-content: flex-end;
+    }
+  }
+}
+.imgBox {
+  width: 100%;
+  // height: 210px;
+  border: 1px solid #e2e2e2;
+  border-radius: 8px;
+  padding: 8px 8px 3px;
+  display: flex;
+  flex-direction: column;
+  align-items: center;
+  .imgLabel {
+    flex: 1;
+    width: 100%;
+    border: 1px dotted #e2e2e2;
+    color: #999;
+    font-size: 14px;
+    cursor: pointer;
+    border-radius: 8px;
+    .msPhoto {
+      display: flex;
+      justify-content: center;
+      align-items: center;
+      max-width: 100%;
+      max-height: 270px;
+      img {
+        max-width: 100%;
+        max-height: 270px;
+      }
+    }
+    .imgbbx {
+      display: flex;
+      flex-direction: column;
+      align-items: center;
+      justify-content: center;
+      width: 100%;
+      height: 100%;
+      i {
+        font-weight: bold;
+        margin: 14px 0;
+        font-size: 24px;
+      }
+    }
+  }
+  p {
+    margin: 5px 0px;
+  }
+}
+.contentBox {
+  padding: 0px 20px;
+}
+.topLsBtn {
+  display: flex;
+  align-items: center;
+  margin-bottom: 10px;
+  .lstext {
+    font-weight: bold;
+    margin-right: 40px;
+    font-size: 16px;
+    padding-bottom: 10px;
+    cursor: pointer;
+    color: #333;
+    border-bottom: 3px solid transparent;
+  }
+  .activesSty {
+    color: rgb(2, 167, 240);
+    border-bottom-color: rgb(2, 167, 240);
+  }
+}
+.pList {
+  margin-bottom: 14px;
+}
+i {
+  font-style: normal;
+}
+.userBoxs {
+  display: flex;
+  margin-bottom: 40px;
+  .imgBoxsZing {
+    width: 200px;
+    height: 280px;
+    border-radius: 8px;
+    margin-right: 30px;
+  }
+  .riglist {
+    .topRislz {
+      margin-left: 40px;
+      font-size: 16px;
+      font-weight: 400;
+    }
+    .hesz {
+      margin-bottom: 10px;
+    }
+    p {
+      margin-bottom: 10px;
+    }
+    .sdzz {
+      display: flex;
+      align-items: center;
+      h3 {
+        color: rgb(2, 167, 240);
+      }
+      i {
+        margin-left: 40px;
+        font-size: 24px;
+        cursor: pointer;
+        color: #000;
+        transition: all 0.2s;
+      }
+      i:hover {
+        color: rgb(2, 167, 240);
+      }
+    }
+  }
+}
+.tyHeaderStyle {
+  color: rgb(2, 167, 240);
+  font-size: 16px;
+  font-weight: bold;
+  margin-bottom: 14px;
+}
+.qzyx {
+  margin-bottom: 40px;
+  p {
+    margin-bottom: 10px;
+  }
+  .dis_sf {
+    display: flex;
+  }
+}
+.userInfosPres {
+  margin-bottom: 40px;
+  p {
+    margin-bottom: 10px;
+  }
+}
+.gzjl {
+  margin-bottom: 40px;
+  .dis_fz {
+    display: flex;
+    align-items: center;
+    .yearsSty {
+      width: 200px;
+    }
+  }
+}
+.zhengshu {
+  margin-bottom: 40px;
+  .hty {
+    height: 30px;
+    line-height: 30px;
+    padding: 0px 15px;
+    margin-bottom: 14px;
+    background-color: rgb(242, 242, 242);
+  }
+  .fiss {
+    padding-left: 15px;
+    display: flex;
+    align-items: center;
+    margin-bottom: 10px;
+    .YEARS_S {
+      width: 200px;
+    }
+  }
+}
+.qusts {
+  display: flex;
+  align-items: center;
+  justify-content: center;
+}
+/deep/.el-step.is-vertical {
+  min-height: 70px;
+}
+.die_s {
+  display: flex;
+  align-items: center;
+  .img_pdf {
+    display: block;
+    width: 65px;
+    height: 80px;
+    margin-right: 20px;
+    cursor: pointer;
+    transition: all 0.3s;
+  }
+}
+.img_pdf:hover {
+  transform: scale(1.1);
+}
+</style>

+ 35 - 0
src/components/searchBox.vue

@@ -20,6 +20,34 @@
               :value="items.value"
               :value="items.value"
             ></el-option>
             ></el-option>
           </el-select>
           </el-select>
+          <div v-else-if="item.scope === 'numList'">
+            <el-input-number
+            :controls="false"
+            v-model="formData[item.prop1]"
+            controls-position="right"
+            :min="0"
+            :max="100"
+            size="small"
+             @change="handleChanges(formData[item.prop1],formData[item.prop2])"
+          ></el-input-number>~
+          <el-input-number
+          :controls="false"
+            v-model="formData[item.prop2]"
+            controls-position="right"
+            :min="0"
+            :max="100"
+            size="small"
+            @change="handleChanges(formData[item.prop1],formData[item.prop2])"
+          ></el-input-number>
+          </div>
+          <el-input-number
+            v-else-if="item.scope === 'inputNumber'"
+            v-model="formData[item.prop]"
+            controls-position="right"
+            :min="0"
+            :max="100"
+            size="small"
+          ></el-input-number>
           <el-cascader
           <el-cascader
             v-else-if="item.scope === 'cascader'"
             v-else-if="item.scope === 'cascader'"
             v-model="formData[item.prop]"
             v-model="formData[item.prop]"
@@ -123,6 +151,13 @@ export default {
       this.formData = {};
       this.formData = {};
       this.$emit("init");
       this.$emit("init");
     },
     },
+    handleChanges(int1,int2){
+      if(int1 !== undefined && int2 !== undefined){
+        if(int1 > int2){
+          this.$message.error('请规范输入取值范围')
+        }
+      }
+    },
   },
   },
 };
 };
 </script>
 </script>

+ 111 - 17
src/components/tableList.vue

@@ -118,7 +118,9 @@
                 lazy
                 lazy
                 :src="$methodsTools.splitImgHost(scope.row[item.prop])"
                 :src="$methodsTools.splitImgHost(scope.row[item.prop])"
                 style="height: 100%"
                 style="height: 100%"
-                :preview-src-list="[$methodsTools.splitImgHost(scope.row[item.prop])]"
+                :preview-src-list="[
+                  $methodsTools.splitImgHost(scope.row[item.prop]),
+                ]"
                 alt="加载失败..."
                 alt="加载失败..."
               >
               >
               </el-image>
               </el-image>
@@ -130,7 +132,7 @@
                 ? "关闭"
                 ? "关闭"
                 : Number(scope.row[item.prop]) === -1
                 : Number(scope.row[item.prop]) === -1
                 ? "已删除"
                 ? "已删除"
-                :"未知"
+                : "未知"
             }}</span>
             }}</span>
             <span v-else-if="item.scope === 'statusZpFB'">{{
             <span v-else-if="item.scope === 'statusZpFB'">{{
               Number(scope.row[item.prop]) === 1
               Number(scope.row[item.prop]) === 1
@@ -172,7 +174,7 @@
                 <div
                 <div
                   v-for="(items, indexs) in scope.row[item.prop]"
                   v-for="(items, indexs) in scope.row[item.prop]"
                   :key="indexs"
                   :key="indexs"
-                  style="margin-bottom:6px;"
+                  style="margin-bottom: 6px"
                 >
                 >
                   {{ $methodsTools.onlyForma(items.startTime) }} ~
                   {{ $methodsTools.onlyForma(items.startTime) }} ~
                   {{ $methodsTools.onlyForma(items.endTime) }}
                   {{ $methodsTools.onlyForma(items.endTime) }}
@@ -180,9 +182,37 @@
                 <el-button slot="reference" size="mini">查看</el-button>
                 <el-button slot="reference" size="mini">查看</el-button>
               </el-popover>
               </el-popover>
             </span>
             </span>
+            <div v-else-if="item.scope === 'video'">
+              <i v-if="scope.row[item.prop][item.prop1] !== null" class="el-icon-video-play cvideo" @click="openVideo($methodsTools.splitImgHost(scope.row[item.prop][item.prop1]))"></i>
+            </div>
+            <div
+              v-else-if="item.scope === 'PDF'"
+              style="display: flex; align-items: center"
+            >
+              <a
+              v-if="scope.row[item.prop][item.prop1] !== null"
+                :href="
+                  $methodsTools.splitImgHost(scope.row[item.prop][item.prop1])
+                "
+                target="_blank"
+                style="
+                  display: block;
+                  width: 35px;
+                  height: 45px;
+                  margin-right: 10px;
+                "
+              >
+                <img class="imgHover" src="@/assets/images/pdf@3x.png" alt="" />
+              </a>
+              <div>{{ scope.row[item.prop][item.prop2] }}</div>
+            </div>
             <span v-else-if="item.scope === 'Salary'">
             <span v-else-if="item.scope === 'Salary'">
-              {{scope.row[item.prop1] === 1 ? '月薪':'年薪'}}
-              {{scope.row[item.prop2] === scope.row[item.prop3] ? scope.row[item.prop2] : scope.row[item.prop2] + '~' + scope.row[item.prop3]}}
+              {{ scope.row[item.prop1] === 1 ? "月薪" : "年薪" }}
+              {{
+                scope.row[item.prop2] === scope.row[item.prop3]
+                  ? scope.row[item.prop2]
+                  : scope.row[item.prop2] + "~" + scope.row[item.prop3]
+              }}
             </span>
             </span>
             <span v-else-if="item.scope === 'activityType'">{{
             <span v-else-if="item.scope === 'activityType'">{{
               Number(scope.row[item.prop]) === 0
               Number(scope.row[item.prop]) === 0
@@ -218,9 +248,22 @@
                 ? "活动地点:" + scope.row["liveAdress"]
                 ? "活动地点:" + scope.row["liveAdress"]
                 : "未知"
                 : "未知"
             }}</span>
             }}</span>
-            <span v-else-if="item.scope === 'isUrgent'">{{scope.row[item.prop] === 0? '不是':scope.row[item.prop] === 1?'是':'未知'}}</span>
-            <span v-else-if="item.scope === 'peopleNum'">{{scope.row[item.prop] === 0? '不限制':scope.row[item.prop]}}</span>
-            <span v-else-if="item.scope === 'address'">{{scope.row[item.prop1] + scope.row[item.prop2] + scope.row[item.prop3] + scope.row[item.prop4]}}</span>
+            <span v-else-if="item.scope === 'isUrgent'">{{
+              scope.row[item.prop] === 0
+                ? "不是"
+                : scope.row[item.prop] === 1
+                ? "是"
+                : "未知"
+            }}</span>
+            <span v-else-if="item.scope === 'peopleNum'">{{
+              scope.row[item.prop] === 0 ? "不限制" : scope.row[item.prop]
+            }}</span>
+            <span v-else-if="item.scope === 'address'">{{
+              scope.row[item.prop1] +
+              scope.row[item.prop2] +
+              scope.row[item.prop3] +
+              scope.row[item.prop4]
+            }}</span>
             <span v-else-if="item.scope === 'statusActivity'">{{
             <span v-else-if="item.scope === 'statusActivity'">{{
               Number(scope.row[item.prop]) === 0
               Number(scope.row[item.prop]) === 0
                 ? "已删除"
                 ? "已删除"
@@ -376,9 +419,8 @@
             <span v-else-if="item.scope === 'time'">{{
             <span v-else-if="item.scope === 'time'">{{
               numTime(scope.row[item.prop])
               numTime(scope.row[item.prop])
             }}</span>
             }}</span>
-            <span v-else-if="item.scope === 'timeBtn'">{{
-              numTime(scope.row[item.prop])
-            }}
+            <span v-else-if="item.scope === 'timeBtn'"
+              >{{ numTime(scope.row[item.prop]) }}
               <el-button type="text" @click="getxq(scope.row)">详情</el-button>
               <el-button type="text" @click="getxq(scope.row)">详情</el-button>
             </span>
             </span>
             <span v-else-if="item.scope === 'minute'">{{
             <span v-else-if="item.scope === 'minute'">{{
@@ -407,6 +449,36 @@
         </template>
         </template>
       </el-table-column>
       </el-table-column>
     </el-table>
     </el-table>
+    <el-dialog
+        :visible.sync="diaBox"
+        width="500px"
+        :show-close="false"
+        :destroy-on-close="true"
+      >
+        <div slot="title" class="hearders">
+          <div class="leftTitle">详情</div>
+          <div class="rightBoxs">
+            <img
+              src="@/assets/images/Close@2x.png"
+              alt=""
+              @click="closeBeforefs"
+            />
+          </div>
+        </div>
+        <el-row class="contentBox" :gutter="30">
+          <div style="width: 100%; height: 100%">
+            <video
+              controls
+              preload
+              style="width: 100%; height: 100%"
+              :src="$methodsTools.splitImgHost(videoUrls)"
+            ></video>
+          </div>
+        </el-row>
+        <div slot="footer" class="dialog-footer">
+          <el-button @click="closeBeforefs">关闭</el-button>
+        </div>
+      </el-dialog>
   </div>
   </div>
 </template>
 </template>
 
 
@@ -421,6 +493,8 @@ export default {
       checkedCities: [], //自定义列 选中数组
       checkedCities: [], //自定义列 选中数组
       cities: [], //自定义列 总数组
       cities: [], //自定义列 总数组
       isIndeterminate: false,
       isIndeterminate: false,
+      videoUrls: '',
+      diaBox:false,
     };
     };
   },
   },
   computed: {
   computed: {
@@ -452,12 +526,11 @@ export default {
     this.inittableSet = JSON.stringify(this.tableSet);
     this.inittableSet = JSON.stringify(this.tableSet);
     this.initTR();
     this.initTR();
   },
   },
-  mounted(){
-  },
+  mounted() {},
   methods: {
   methods: {
     timeStyle(column) {
     timeStyle(column) {
-      if(column.columnIndex === 0&&this.navText.firstColLeft) {
-        return "text-align:left!important;  padding-left: 40px;"
+      if (column.columnIndex === 0 && this.navText.firstColLeft) {
+        return "text-align:left!important;  padding-left: 40px;";
       }
       }
     },
     },
     //初始化
     //初始化
@@ -580,8 +653,15 @@ export default {
     load(tree, treeNode, resolve) {
     load(tree, treeNode, resolve) {
       this.$emit("load", tree, treeNode, resolve);
       this.$emit("load", tree, treeNode, resolve);
     },
     },
-    getxq(option){
-      this.$emit("getxq",option.userId)
+    getxq(option) {
+      this.$emit("getxq", option.userId);
+    },
+    openVideo(url){
+      this.videoUrls = url
+      this.diaBox = true
+    },
+    closeBeforefs(){
+      this.diaBox = false
     },
     },
   },
   },
 };
 };
@@ -676,5 +756,19 @@ export default {
     }
     }
   }
   }
 }
 }
+.imgHover {
+  width: 100%;
+  height: 100%;
+  cursor: pointer;
+}
+.cvideo{
+  transition: all 0.2s;
+  color: #333;
+  cursor: pointer;
+  font-size: 30px;
+}
+.cvideo:hover{
+  color: #47a6ff;
+}
 </style>
 </style>
 
 

+ 5 - 2
src/utils/methodsTool.js

@@ -16,7 +16,7 @@ export default {
 		}
 		}
 		return BASE_IMG_URL + '/' + url
 		return BASE_IMG_URL + '/' + url
 	},
 	},
-	onlyForma(timeStamp) {
+	onlyForma(timeStamp,Diszing = true) {
 		var date = new Date(timeStamp * 1000); //时间戳为10位需*1000,时间戳为13位的话不需乘1000
 		var date = new Date(timeStamp * 1000); //时间戳为10位需*1000,时间戳为13位的话不需乘1000
 		var Y = date.getFullYear() + '-';
 		var Y = date.getFullYear() + '-';
 		var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-';
 		var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-';
@@ -24,7 +24,10 @@ export default {
 		var h = (date.getHours() < 10 ? '0' + date.getHours() : date.getHours()) + ':';
 		var h = (date.getHours() < 10 ? '0' + date.getHours() : date.getHours()) + ':';
 		var m = (date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes()) + ':';
 		var m = (date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes()) + ':';
 		var s = date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds();
 		var s = date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds();
-		return Y + M + D + ' ' + h + m + s; //时分秒可以根据自己的需求加上
+		if(Diszing){
+			return Y + M + D + ' ' + h + m + s; //时分秒可以根据自己的需求加上
+		}
+		return Y + M + D;
 	},
 	},
 	computedAge(birthday) {
 	computedAge(birthday) {
 		let birthDayTime = new Date(birthday).getTime(); 
 		let birthDayTime = new Date(birthday).getTime(); 

+ 368 - 261
src/view/jobSearchManagement/resumeCenter/index.vue

@@ -12,17 +12,33 @@
         <el-button type="text" @click="addClick(props.scope.row, 2)"
         <el-button type="text" @click="addClick(props.scope.row, 2)"
           >详情</el-button
           >详情</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>
+        <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>
       </template>
     </table-list>
     </table-list>
     <pagination
     <pagination
       :total="total"
       :total="total"
       :pageSize="searchPamam.pageSize"
       :pageSize="searchPamam.pageSize"
-      :currentPage="searchPamam.currentPage"
+      :currentPage="searchPamam.pageNum"
       @handleSizeChange="handleSizeChange"
       @handleSizeChange="handleSizeChange"
       @handleCurrentChange="handleCurrentChange"
       @handleCurrentChange="handleCurrentChange"
     />
     />
@@ -31,57 +47,88 @@
       :visible.sync="calendarDialogVisible"
       :visible.sync="calendarDialogVisible"
       width="30%"
       width="30%"
       custom-class="inviteDialog"
       custom-class="inviteDialog"
-      center>
-     <div style="min-width: 360px">
+      center
+    >
+      <div style="min-width: 360px">
         <div class="d_title">
         <div class="d_title">
-          <div>当前共有 {{peopleNum}}  人需要面试</div>
+          <div>当前共有 {{ peopleNum }} 人需要面试</div>
           <div class="d_title_r">查看全部</div>
           <div class="d_title_r">查看全部</div>
         </div>
         </div>
-       <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>
+        <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"
+          :key="index"
+          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" :key="index_c">
+              {{ 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">
       <span slot="footer" class="dialog-footer">
-    <el-button @click="calendarDialogVisible = false">取 消</el-button>
-    <el-button type="primary" @click="submitForm(0)">发送邀请</el-button>
-  </span>
+        <el-button @click="calendarDialogVisible = false">取 消</el-button>
+        <el-button type="primary" @click="submitForm(0)">发送邀请</el-button>
+      </span>
     </el-dialog>
     </el-dialog>
-    <el-dialog
-      :visible.sync="refuseDialogVisible"
-      width="30%"
-      center>
+    <el-dialog :visible.sync="refuseDialogVisible" width="30%" center>
       <div style="min-width: 360px">
       <div style="min-width: 360px">
         <div style="margin-top: 30px">
         <div style="margin-top: 30px">
           <div style="width: 100%">
           <div style="width: 100%">
@@ -90,32 +137,33 @@
                 type="textarea"
                 type="textarea"
                 :rows="2"
                 :rows="2"
                 placeholder="请输入内容"
                 placeholder="请输入内容"
-                :disabled="radio=='2'"
-                v-model="refuseText1">
+                :disabled="radio == '2'"
+                v-model="refuseText1"
+              >
               </el-input>
               </el-input>
             </el-radio>
             </el-radio>
           </div>
           </div>
           <div style="margin-top: 30px">
           <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-radio v-model="radio" label="2"> 自定义原因 </el-radio>
+            <div style="margin-left: 25px; margin-top: 10px; width: 90%">
               <el-input
               <el-input
                 type="textarea"
                 type="textarea"
                 :rows="2"
                 :rows="2"
-                :disabled="radio=='1'"
+                :disabled="radio == '1'"
                 placeholder="请输入内容"
                 placeholder="请输入内容"
-                v-model="refuseText2">
+                v-model="refuseText2"
+              >
               </el-input>
               </el-input>
             </div>
             </div>
           </div>
           </div>
         </div>
         </div>
       </div>
       </div>
-       <span slot="footer" class="dialog-footer">
-    <el-button @click="refuseDialogVisible = false">取 消</el-button>
-    <el-button type="primary" @click="submitForm(1)">确认</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>
     </el-dialog>
+    <resumes ref="resumes" @addClicks="addClick"></resumes>
   </div>
   </div>
 </template>
 </template>
 
 
@@ -123,37 +171,39 @@
 import searchBox from "@/components/searchBox";
 import searchBox from "@/components/searchBox";
 import tableList from "@/components/tableList";
 import tableList from "@/components/tableList";
 import pagination from "@/components/pagination";
 import pagination from "@/components/pagination";
+import resumes from "@/components/resumexq";
 export default {
 export default {
-  components: { searchBox, tableList, pagination },
+  components: { searchBox, tableList, pagination, resumes },
   data() {
   data() {
     return {
     return {
-      radio:'1',
-      refuseText1:'您的简历已经纳入我们公司的人才储备库,如果有适合您的岗位,我们会第一时间通知您,祝您求职成功,心想事成。',
-      refuseText2:'',
-      refuseForm:{
-        refuse:''
+      radio: "1",
+      refuseText1:
+        "您的简历已经纳入我们公司的人才储备库,如果有适合您的岗位,我们会第一时间通知您,祝您求职成功,心想事成。",
+      refuseText2: "",
+      refuseForm: {
+        refuse: "",
       },
       },
       refuseDialogVisible: false,
       refuseDialogVisible: false,
       dayValue: new Date(),
       dayValue: new Date(),
       calendarDialogVisible: false,
       calendarDialogVisible: false,
-      weekDay:['一','二','三','四','五','六','日'],
-      weekDayList:[],
-      weekDay1:new Date(),
-      weekDay2:new Date(),
-      recruitList:[],
-      dayInterviewVos:[],
-      form:{
-        companyName:'',
-        linkMan:'',
-        linkTel:'',
-        address:'',
-        resumeTime:''
+      weekDay: ["一", "二", "三", "四", "五", "六", "日"],
+      weekDayList: [],
+      weekDay1: new Date(),
+      weekDay2: new Date(),
+      recruitList: [],
+      dayInterviewVos: [],
+      form: {
+        companyName: "",
+        linkMan: "",
+        linkTel: "",
+        address: "",
+        resumeTime: "",
       },
       },
-      peopleNum:0,
+      peopleNum: 0,
       loading: false, //当前表单加载是否加载动画
       loading: false, //当前表单加载是否加载动画
-      searchPamam:{
+      searchPamam: {
         pageSize: 10, //每页多少条数据
         pageSize: 10, //每页多少条数据
-        currentPage: 1, //当前页码
+        pageNum: 1, //当前页码
         statusArray: "0,1",
         statusArray: "0,1",
       },
       },
       navText: {
       navText: {
@@ -162,7 +212,7 @@ export default {
         ch: "条",
         ch: "条",
         num: true,
         num: true,
         choice: false,
         choice: false,
-        addHide: false,
+        addHide: true,
         backFatherBtn: {
         backFatherBtn: {
           status: false,
           status: false,
           title: "未定义",
           title: "未定义",
@@ -171,34 +221,34 @@ export default {
       //搜索
       //搜索
       formList: [
       formList: [
         {
         {
-          label: "工作年限",
-          prop: "dictName",
-          placeholder: "请输入公司名称",
-        },
-        {
-          label: "年龄",
-          prop: "dictName",
-          placeholder: "请输入岗位名称",
+          label: "应聘岗位",
+          prop: "job",
+          placeholder: "请输入应聘岗位",
         },
         },
         {
         {
-          label: "薪资要求",
-          prop: "dictName",
-          placeholder: "请输入公司名称",
+          label: "工作年限",
+          prop1: "workStart",
+          prop2: "workEnd",
+          scope: "numList",
         },
         },
         {
         {
-          label: "工作类型",
-          prop: "dictName",
-          placeholder: "请输入岗位名称",
+          label: "年龄",
+          prop1: "ageStart",
+          prop2: "ageEnd",
+          scope: "numList",
         },
         },
         {
         {
-          label: "性别",
-          prop: "dictName",
-          placeholder: "请输入公司名称",
+          label: "学历",
+          prop: "eduLevel",
+          scope: "select",
+          options: [],
+          placeholder: "请选择学历",
         },
         },
         {
         {
-          label: "状态",
-          prop: "dictName",
-          placeholder: "请输入岗位名称",
+          label: "简历完成度(%)",
+          prop: "completeness",
+          scope: "inputNumber",
+          placeholder: "请输入简历完成度",
         },
         },
       ],
       ],
       // 表单
       // 表单
@@ -232,56 +282,62 @@ export default {
           label: "联系电话",
           label: "联系电话",
           prop: "telphone",
           prop: "telphone",
           hidden: true,
           hidden: true,
-          width:"200px"
+          width: "200px",
         },
         },
         {
         {
           label: "期望薪资",
           label: "期望薪资",
           prop: "wantIncomeLabel",
           prop: "wantIncomeLabel",
           hidden: true,
           hidden: true,
-          width:"200px"
+          width: "200px",
         },
         },
         {
         {
           label: "地点",
           label: "地点",
           prop: "district",
           prop: "district",
           hidden: true,
           hidden: true,
-          width:"240px"
+          width: "240px",
         },
         },
         {
         {
           label: "应聘岗位",
           label: "应聘岗位",
           prop: "job",
           prop: "job",
           hidden: true,
           hidden: true,
-          width:"300px"
+          width: "300px",
         },
         },
         {
         {
           label: "工作类型",
           label: "工作类型",
           prop: "jobType",
           prop: "jobType",
           hidden: true,
           hidden: true,
-          width:"240px"
+          width: "240px",
         },
         },
         {
         {
           label: "视频介绍",
           label: "视频介绍",
-          prop: "dictType",
+          prop: "recruitResumeVo",
+          prop1: "introduceVideoUrl",
           hidden: true,
           hidden: true,
-          width:"300px"
+          scope: "video",
+          width: "300px",
         },
         },
         {
         {
           label: "简历完成度",
           label: "简历完成度",
           prop: "completenessLabel",
           prop: "completenessLabel",
           hidden: true,
           hidden: true,
-          width:"240px"
+          width: "240px",
         },
         },
         {
         {
           label: "投递时间",
           label: "投递时间",
-          prop: "dictType",
+          scope: "aTimeList",
+          prop: "createTime",
           hidden: true,
           hidden: true,
-          width:"300px"
+          width: "300px",
         },
         },
         {
         {
           label: "附件简历",
           label: "附件简历",
-          prop: "remark",
+          prop: "recruitResumeVo",
+          prop1: "attachUrl",
+          prop2: "attachName",
+          scope: "PDF",
           hidden: true,
           hidden: true,
-          width:"240px"
-        }
+          width: "240px",
+        },
       ],
       ],
       tableData: [], //表单数据
       tableData: [], //表单数据
       total: 0, //一共多少条
       total: 0, //一共多少条
@@ -322,179 +378,225 @@ export default {
       dialogVisible: false,
       dialogVisible: false,
       //表单验证
       //表单验证
       rules: {
       rules: {
-        linkTel: [{ required: true, message: "请填写联系电话", trigger: "blur" }],
-        address: [{ required: true, message: "请填写面试地址", trigger: "blur" }],
-        companyName: [{ 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" }],
         linkMan: [{ required: true, message: "请填写联系人", trigger: "blur" }],
-        resumeTime: [{ required: true, message: "请选择面试时间", trigger: "blur" }],
+        resumeTime: [
+          { required: true, message: "请选择面试时间", trigger: "blur" },
+        ],
       },
       },
-      companyGMdata:[],//公司规模
-      companyLXdata:[],//公司类型
+      companyGMdata: [], //公司规模
+      companyLXdata: [], //公司类型
     };
     };
   },
   },
-  created(){
-
-  },
+  created() {},
   mounted() {
   mounted() {
     this.search();
     this.search();
-    this.searchCalendar()
-    this.getNowTime()
+    this.searchCalendar();
+    this.getNowTime();
+    this.pushDict();
   },
   },
   methods: {
   methods: {
-    editrecruitinterviewRefuse(refuse){
+    pushDict() {
+      var dictList = this.$store.state.UserDict.filter((item, index) => {
+        return item.dictType === "edu_level";
+      });
+      var arrays = [];
+      dictList.forEach((item, index) => {
+        arrays.push({ label: item.dictLabel, value: item.dictLabel });
+      });
+      this.formList.forEach((item, index) => {
+        if (item.prop === "eduLevel") {
+          item.options = arrays;
+        }
+      });
+    },
+    editrecruitinterviewRefuse(refuse) {
       let data = JSON.parse(JSON.stringify(this.refuseForm));
       let data = JSON.parse(JSON.stringify(this.refuseForm));
-      data.status = 3
-      data.refuse = refuse
-      let that = this
+      data.status = 3;
+      data.refuse = refuse;
+      let that = this;
       this.$api.editrecruitinterview(data).then((res) => {
       this.$api.editrecruitinterview(data).then((res) => {
-        if(res.code==200){
-          that.calendarDialogVisible = false
-          that.refuseDialogVisible = false
+        if (res.code == 200) {
+          that.calendarDialogVisible = false;
+          that.refuseDialogVisible = false;
           that.search();
           that.search();
         }
         }
       });
       });
     },
     },
-    editrecruitinterview(){
+    editrecruitinterview() {
       let data = JSON.parse(JSON.stringify(this.form));
       let data = JSON.parse(JSON.stringify(this.form));
-      data.status = 1
-      data.resumeTime = parseInt(data.resumeTime/1000)
-      let that = this
+      data.status = 1;
+      data.resumeTime = parseInt(data.resumeTime / 1000);
+      let that = this;
       this.$api.editrecruitinterview(data).then((res) => {
       this.$api.editrecruitinterview(data).then((res) => {
-        if(res.code==200){
-          that.calendarDialogVisible = false
+        if (res.code == 200) {
+          that.calendarDialogVisible = false;
           that.search();
           that.search();
         }
         }
       });
       });
     },
     },
-    submitForm(type){
-      if(type==0){
-        this.$refs['inviteForm'].validate((valid) => {
+    submitForm(type) {
+      if (type == 0) {
+        this.$refs["inviteForm"].validate((valid) => {
           if (valid) {
           if (valid) {
-            this.editrecruitinterview()
+            this.editrecruitinterview();
           } else {
           } else {
-            console.log('error submit!!');
+            console.log("error submit!!");
             return false;
             return false;
           }
           }
         });
         });
       }
       }
-      if(type==1){
-        let refuse = ''
-        if(this.radio=='1'){
-          if(this.refuseText1==''){
+      if (type == 1) {
+        let refuse = "";
+        if (this.radio == "1") {
+          if (this.refuseText1 == "") {
             this.$message({
             this.$message({
-              message: '请输入拒绝原因',
-              type: 'warning'
+              message: "请输入拒绝原因",
+              type: "warning",
             });
             });
-            return
+            return;
           }
           }
-          refuse = this.refuseText1
+          refuse = this.refuseText1;
         }
         }
-        if(this.radio=='2'){
-          if(this.refuseText2==''){
+        if (this.radio == "2") {
+          if (this.refuseText2 == "") {
             this.$message({
             this.$message({
-              message: '请输入拒绝原因',
-              type: 'warning'
+              message: "请输入拒绝原因",
+              type: "warning",
             });
             });
-            return
+            return;
           }
           }
-          refuse = this.refuseText2
+          refuse = this.refuseText2;
         }
         }
-        this.editrecruitinterviewRefuse(refuse)
+        this.editrecruitinterviewRefuse(refuse);
       }
       }
     },
     },
-    getNowTime(){
+    getNowTime() {
       let t = new Date();
       let t = new Date();
-      let newTime = t.getTime()-(t.getMinutes()*60+t.getSeconds())*1000+3600*1000
+      let newTime =
+        t.getTime() -
+        (t.getMinutes() * 60 + t.getSeconds()) * 1000 +
+        3600 * 1000;
       t.setTime(newTime);
       t.setTime(newTime);
-      this.dayValue = t
+      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)
+    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)
+    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)
+      if (index == 1) {
+        this.dayValue.setTime(
+          this.dayValue.getTime() + 7 * 24 * 60 * 60 * 1000
+        );
       }
       }
-      this.searchCalendar()
+      this.searchCalendar();
     },
     },
-    selDay(day,index){
-      this.dayValue = day.day
-      this.makeRecruitList(this.dayInterviewVos[index].quantumList)
+    selDay(day, index) {
+      this.dayValue = day.day;
+      this.makeRecruitList(this.dayInterviewVos[index].quantumList);
     },
     },
     searchCalendar() {
     searchCalendar() {
-      let that = this
+      let that = this;
       this.loading = true;
       this.loading = true;
       var data = {
       var data = {
         year: this.dayValue.getFullYear(),
         year: this.dayValue.getFullYear(),
-        month: this.dayValue.getMonth()+1,
-        day: this.dayValue.getDate()
+        month: this.dayValue.getMonth() + 1,
+        day: this.dayValue.getDate(),
       };
       };
       this.$api.recruitinterviewlist(data).then((res) => {
       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)
+        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 = {
             let weekDay = {
-              num:that.dayInterviewVos[i].date
-            }
-            that.weekDayList.push(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
+          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
+            if (i == 6) {
+              that.weekDay2 = d;
             }
             }
           }
           }
-
         }
         }
       });
       });
       this.loading = false;
       this.loading = false;
     },
     },
-    search() {
+    search(v) {
       this.loading = true;
       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
+      let that = this;
+      var data = JSON.parse(JSON.stringify(this.searchPamam));
+      if (v !== undefined) {
+        data = Object.assign(data, v);
+      }
+      this.$api.recruitinterviewlistAll(data).then((res) => {
+        if (res.code == 200) {
+          that.tableData = res.rows;
+          that.total = res.total;
           that.navText.index = 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 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 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]+'岁'
+            let birthday = [
+              userBirth.getFullYear(),
+              userBirth.getMonth() + 1,
+              userBirth.getDate(),
+            ];
+            item.age =
+              item.recruitResumeVo.userBirth == null
+                ? "暂无数据"
+                : this.getAge(birthday)[0] + "岁";
           }
           }
         }
         }
       });
       });
@@ -503,44 +605,49 @@ export default {
     },
     },
     getAge(birthday) {
     getAge(birthday) {
       // 新建日期对象
       // 新建日期对象
-      let date = new Date()
+      let date = new Date();
       // 今天日期,数组,同 birthday
       // 今天日期,数组,同 birthday
-      let today = [date.getFullYear(), date.getMonth() + 1, date.getDate()]
+      let today = [date.getFullYear(), date.getMonth() + 1, date.getDate()];
       // 分别计算年月日差值
       // 分别计算年月日差值
       let age = today.map((value, index) => {
       let age = today.map((value, index) => {
-        return value - birthday[index]
-      })
+        return value - birthday[index];
+      });
       // 当天数为负数时,月减 1,天数加上月总天数
       // 当天数为负数时,月减 1,天数加上月总天数
       if (age[2] < 0) {
       if (age[2] < 0) {
         // 简单获取上个月总天数的方法,不会错
         // 简单获取上个月总天数的方法,不会错
-        let lastMonth = new Date(today[0], today[1], 0)
-        age[1]--
-        age[2] += lastMonth.getDate()
+        let lastMonth = new Date(today[0], today[1], 0);
+        age[1]--;
+        age[2] += lastMonth.getDate();
       }
       }
       // 当月数为负数时,年减 1,月数加上 12
       // 当月数为负数时,年减 1,月数加上 12
       if (age[1] < 0) {
       if (age[1] < 0) {
-        age[0]--
-        age[1] += 12
+        age[0]--;
+        age[1] += 12;
       }
       }
-      return age
+      return age;
     },
     },
     init() {
     init() {
       this.search();
       this.search();
     },
     },
     addClick(v, int) {
     addClick(v, int) {
-      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 == 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
+      if (int == 1) {
+        this.refuseDialogVisible = true;
+        this.refuseForm.interviewId = v.interviewId;
+        return;
+      }
+      if (int == 2) {
+        this.$refs.resumes.getCInfos(v);
+        this.$refs.resumes.init(v.interviewId);
+        // this.$refs.resumes.dialogBox = true
       }
       }
     },
     },
     submit(formName) {
     submit(formName) {
@@ -579,31 +686,31 @@ export default {
     },
     },
     handleSizeChange(v) {
     handleSizeChange(v) {
       this.searchPamam.pageSize = v;
       this.searchPamam.pageSize = v;
-      this.searchPamam.currentPage = 1;
+      this.searchPamam.pageNum = 1;
       this.search();
       this.search();
     },
     },
     handleCurrentChange(v) {
     handleCurrentChange(v) {
-      this.searchPamam.currentPage = v;
+      this.searchPamam.pageNum = v;
       this.search();
       this.search();
     },
     },
   },
   },
 };
 };
 </script>
 </script>
 <style>
 <style>
-.el-cascader-node>.el-radio, .el-radio:last-child{
+.el-cascader-node > .el-radio,
+.el-radio:last-child {
   width: 90%;
   width: 90%;
 }
 }
-#resumeCenter .el-dialog{
+#resumeCenter .el-dialog {
   min-width: 400px !important;
   min-width: 400px !important;
 }
 }
 </style>
 </style>
 <style lang="less" scoped>
 <style lang="less" scoped>
-
 .selNone {
 .selNone {
   margin: 13px auto;
   margin: 13px auto;
   cursor: pointer;
   cursor: pointer;
   border-radius: 50%;
   border-radius: 50%;
-  border:1px solid #000000;
+  border: 1px solid #000000;
   width: 30px;
   width: 30px;
   height: 30px;
   height: 30px;
   text-align: center;
   text-align: center;
@@ -614,7 +721,7 @@ export default {
   width: 30px;
   width: 30px;
   height: 30px;
   height: 30px;
   color: #ffffff !important;
   color: #ffffff !important;
-  background-color: #3494F7;
+  background-color: #3494f7;
   text-align: center;
   text-align: center;
   line-height: 30px;
   line-height: 30px;
   margin: 13px auto;
   margin: 13px auto;
@@ -625,17 +732,17 @@ export default {
   text-align: center;
   text-align: center;
   color: #000;
   color: #000;
 }
 }
-.week_box{
+.week_box {
   width: 100%;
   width: 100%;
   display: flex;
   display: flex;
-  justify-content:center;
+  justify-content: center;
   margin-top: 20px;
   margin-top: 20px;
 }
 }
-.d_title_r{
-  color: #3494F7;
+.d_title_r {
+  color: #3494f7;
   cursor: pointer;
   cursor: pointer;
 }
 }
-.d_title{
+.d_title {
   display: flex;
   display: flex;
   justify-content: space-between;
   justify-content: space-between;
   margin-top: 30px;
   margin-top: 30px;