ソースを参照

HR求职管理

yanliming 3 年 前
コミット
f9b3538ac5

+ 54 - 0
src/api/job/resumeDeliver.js

@@ -0,0 +1,54 @@
+import request from '@/utils/request'
+import constant from '@/constant'
+
+function pageList(formData){
+  return request.post(constant.serverUrl + "/job/resumeDeliver/pageList", formData);
+}
+
+function exportXls(formData){
+  return request.post(constant.serverUrl + "/job/resumeDeliver/exportXls", formData);
+}
+
+function create(){
+  return request.get(constant.serverUrl + "/job/resumeDeliver/create");
+}
+
+function edit(id){
+  return request.get(constant.serverUrl + "/job/resumeDeliver/edit/" + id);
+}
+
+function edit3(id){
+  return request.get(constant.serverUrl + "/job/resumeDeliver/edit3/" + id);
+}
+
+function add(formModel){
+  return request.post(constant.serverUrl + "/job/resumeDeliver/add", formModel,{
+    headers: {
+      "Content-Type": "application/json"
+    }
+  });
+}
+
+function update(formModel){  
+  return request.post(constant.serverUrl + "/job/resumeDeliver/update", formModel,{
+    headers: {
+      "Content-Type": "application/json"
+    }
+  });
+}
+
+function remove(id){
+  return request.post(constant.serverUrl + "/job/resumeDeliver/delete/" + id);
+}
+
+function batchRemove(idList){
+  return request.post(constant.serverUrl + "/job/resumeDeliver/batchDelete",idList,{
+    headers: {
+      "Content-Type": "application/json"
+    }
+  });
+}
+
+export default {
+  create,edit,edit3,add,update,remove,batchRemove,pageList,exportXls
+}

+ 46 - 0
src/api/job/resumeDeliverRecord.js

@@ -0,0 +1,46 @@
+import request from '@/utils/request'
+import constant from '@/constant'
+
+function pageList(formData){
+  return request.post(constant.serverUrl + "/job/resumeDeliverRecord/pageList", formData);
+}
+
+function create(){
+  return request.get(constant.serverUrl + "/job/resumeDeliverRecord/create");
+}
+
+function edit(id){
+  return request.get(constant.serverUrl + "/job/resumeDeliverRecord/edit/" + id);
+}
+
+function add(formModel){
+  return request.post(constant.serverUrl + "/job/resumeDeliverRecord/add", formModel,{
+    headers: {
+      "Content-Type": "application/json"
+    }
+  });
+}
+
+function update(formModel){  
+  return request.post(constant.serverUrl + "/job/resumeDeliverRecord/update", formModel,{
+    headers: {
+      "Content-Type": "application/json"
+    }
+  });
+}
+
+function remove(id){
+  return request.post(constant.serverUrl + "/job/resumeDeliverRecord/delete/" + id);
+}
+
+function batchRemove(idList){
+  return request.post(constant.serverUrl + "/job/resumeDeliverRecord/batchDelete",idList,{
+    headers: {
+      "Content-Type": "application/json"
+    }
+  });
+}
+
+export default {
+  create,edit,add,update,remove,batchRemove,pageList
+}

+ 2 - 0
src/routers/index.js

@@ -3,6 +3,7 @@ import Router from 'vue-router'
 import Layout from '@/views/layout'
 import Home from '@/views/Home.vue'
 import baseRouters from './modules/base'
+import jobRouters from './modules/job'
 import sysRouters from './modules/sys'
 import { Message } from 'element-ui'
 import NProgress from 'nprogress' // progress bar
@@ -28,6 +29,7 @@ export const constantRoutes = [
         }
       },
       ...baseRouters,
+      ...jobRouters,
       ...sysRouters,
     ]
   },

+ 16 - 0
src/routers/modules/job.js

@@ -0,0 +1,16 @@
+var routers = [
+    {
+            path: '/job/resumeDeliver/list',
+            name: 'jobResumeDeliverList',
+            // route level code-splitting
+            // this generates a separate chunk (about.[hash].js) for this route
+            // which is lazy-loaded when the route is visited.
+            component: () => import('@/views/job/resumeDeliver-list.vue'),
+            meta: {
+                    roles: ["admin"],
+                    title: '简历管理'
+            }
+    }
+]
+
+export default routers;

+ 153 - 0
src/views/job/resumeDeliver-detail.vue

@@ -0,0 +1,153 @@
+<style scoped>
+.user-panel {
+  margin: 10px auto;
+}
+</style>
+<template>
+  <el-dialog
+    :visible.sync="showDialog"
+    :title="modalTitle"
+    :modal-append-to-body="false"
+    style="text-align:left;"
+    @close="closeDialog"
+    :close-on-click-modal="false"
+    width="600px"
+  >
+    <div class="user-panel" v-loading="loading">
+        <el-form ref="form" :model="formModel" :rules="ruleValidate" :label-width="'100px'">
+            <el-form-item label="公司名称" prop="companyName">
+            <el-input v-model="formModel.companyName" disabled="disabled"  style="width:400px"></el-input>
+            </el-form-item>
+            <el-form-item label="联系人" prop="realName">
+            <el-input v-model="formModel.realName" placeholder="请输入联系人" style="width:400px"></el-input>
+            </el-form-item>
+            <el-form-item label="联系方式" prop="companyPhone">
+            <el-input v-model="formModel.companyPhone" placeholder="请输入联系方式" style="width:400px"></el-input>
+            </el-form-item>
+            <el-form-item label="沟通日期" prop="chatDate">
+            <el-date-picker
+                v-model="formModel.chatDate"
+                type="date"
+                placeholder="选择日期" style="width:400px">
+            </el-date-picker>
+            </el-form-item>
+            <el-form-item label="沟通时间" prop="chatTimeRange">
+                <el-time-picker
+                    is-range
+                    v-model="chatTimeRange"
+                    range-separator="至"
+                    start-placeholder="开始时间"
+                    end-placeholder="结束时间"
+                    placeholder="选择时间范围"
+                    style="width:400px"
+                    value-format="HH:mm"
+                    format="HH:mm">
+                </el-time-picker>
+            </el-form-item>
+        </el-form>
+    </div>
+    <span slot="footer" class="dialog-footer">
+      <el-button @click="closeDialog">取 消</el-button>
+      <el-button type="primary" @click="handleSubmit" :loading="submitting">确 定</el-button>
+    </span>
+  </el-dialog>
+</template>
+<script>
+import Constant from "@/constant";
+import resumeDeliverApi from "@/api/job/resumeDeliver";
+
+export default {
+  props: ["businessKey", "title"],
+  data() {
+    return {
+      formModel: {
+        id: "",
+        companyPerson:"",
+        companyPhone:"",
+        chatDate:"",
+        chatTime:"",
+        chatType:""
+      },
+      ruleValidate: {
+        realName: [{ required: true, message: "联系人不能为空", trigger: "blur" }],
+        companyPhone: [{ required: true, message: "联系方式不能为空", trigger: "blur" }],
+        chatDate: [{ required: true, message: "沟通日期不能为空", trigger: "blur" }],
+        chatTime: [{ required: true, message: "沟通时间不能为空", trigger: "blur" }],
+      },
+      chatTimeRange:"",
+      dataDictionaryList: [],
+      showDialog: true,
+      loading: false,
+      submitting: false
+    };
+  },
+  methods: {
+    closeDialog() {
+      this.$emit("close", false);
+    },
+    handleSubmit() {
+      var self = this;
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          (function() {
+            var id = self.formModel.id;
+
+            if(self.chatTimeRange!=null&&self.chatTimeRange!=""){
+                self.formModel.chatTime = self.chatTimeRange.toString();
+            }
+
+            self.formModel.chatType = "2";
+
+            return resumeDeliverApi.add(self.formModel);
+
+          })().then(function(response) {
+            var jsonData = response.data;
+
+            if (jsonData.result) {
+              self.$message({
+                message: "保存成功!",
+                type: "success"
+              });
+
+              self.$emit("close", true);
+            } else {
+              self.$message({
+                message: jsonData.message + "",
+                type: "warning"
+              });
+
+              self.$emit("close", false);
+            }
+          });
+        }
+      });
+    },
+  },
+  async mounted() {
+    var self = this;
+    self.loading = true;
+
+    (function() {
+      if (self.businessKey.length == 0) {
+        return resumeDeliverApi.create();
+      } else {
+        return resumeDeliverApi.edit(self.businessKey);
+      }
+    })()
+      .then(response => {
+        var jsonData = response.data;
+        self.loading = false;
+
+        if (jsonData.result) {
+          self.formModel = jsonData.data;
+          self.formModel.id = this.businessKey;
+        } else {
+          self.$message.error(jsonData.message + "");
+        }
+      })
+      .catch(error => {
+        self.$message.error(error + "");
+      });
+  }
+};
+</script>

+ 144 - 0
src/views/job/resumeDeliver-detail2.vue

@@ -0,0 +1,144 @@
+<style scoped>
+.user-panel {
+  margin: 10px auto;
+}
+</style>
+<template>
+  <el-dialog
+    :visible.sync="showDialog"
+    :title="modalTitle"
+    :modal-append-to-body="false"
+    style="text-align:left;"
+    @close="closeDialog"
+    :close-on-click-modal="false"
+    width="600px"
+  >
+    <div class="user-panel" v-loading="loading">
+        <el-form ref="form" :model="formModel" :rules="ruleValidate" :label-width="'100px'">
+            <el-form-item label="公司名称" prop="companyName">
+            <el-input v-model="formModel.companyName" disabled="disabled"  style="width:400px"></el-input>
+            </el-form-item>
+            <el-form-item label="联系人" prop="realName">
+            <el-input v-model="formModel.realName" placeholder="请输入联系人" style="width:400px"></el-input>
+            </el-form-item>
+            <el-form-item label="联系方式" prop="companyPhone">
+            <el-input v-model="formModel.companyPhone" placeholder="请输入联系方式" style="width:400px"></el-input>
+            </el-form-item>
+            <el-form-item label="沟通时间" prop="chatDate">
+                <el-date-picker
+                    v-model="formModel.chatDate"
+                    type="date"
+                    placeholder="选择时间" 
+                    style="width:170px;margin-right:10px">
+                </el-date-picker>
+                <el-time-select
+                    v-model="formModel.chatTime"
+                    placeholder="选择时间">
+                </el-time-select>
+            </el-form-item>
+            <el-form-item label="备注" prop="remark">
+                <el-input type="textarea" :rows="2" v-model="formModel.remark" placeholder="请输入备注" style="width:400px"></el-input>
+            </el-form-item>
+
+        </el-form>
+    </div>
+    <span slot="footer" class="dialog-footer">
+      <el-button @click="closeDialog">取 消</el-button>
+      <el-button type="primary" @click="handleSubmit" :loading="submitting">确 定</el-button>
+    </span>
+  </el-dialog>
+</template>
+<script>
+import Constant from "@/constant";
+import resumeDeliverApi from "@/api/job/resumeDeliver";
+
+export default {
+  props: ["businessKey", "title"],
+  data() {
+    return {
+      formModel: {
+        id: "",
+        companyPerson:"",
+        companyPhone:"",
+        chatDate:"",
+        chatTime:"",
+        chatType:""
+      },
+      ruleValidate: {
+        realName: [{ required: true, message: "联系人不能为空", trigger: "blur" }],
+        companyPhone: [{ required: true, message: "联系方式不能为空", trigger: "blur" }],
+        chatDate: [{ required: true, message: "沟通日期不能为空", trigger: "blur" }],
+        chatTime: [{ required: true, message: "沟通时间不能为空", trigger: "blur" }],
+      },
+      dataDictionaryList: [],
+      showDialog: true,
+      loading: false,
+      submitting: false
+    };
+  },
+  methods: {
+    closeDialog() {
+      this.$emit("close", false);
+    },
+    handleSubmit() {
+      var self = this;
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          (function() {
+            var id = self.formModel.id;
+
+            self.formModel.chatType = "3";
+
+            return resumeDeliverApi.add(self.formModel);
+
+          })().then(function(response) {
+            var jsonData = response.data;
+
+            if (jsonData.result) {
+              self.$message({
+                message: "保存成功!",
+                type: "success"
+              });
+
+              self.$emit("close", true);
+            } else {
+              self.$message({
+                message: jsonData.message + "",
+                type: "warning"
+              });
+
+              self.$emit("close", false);
+            }
+          });
+        }
+      });
+    },
+  },
+  async mounted() {
+    var self = this;
+    self.loading = true;
+
+    (function() {
+      if (self.businessKey.length == 0) {
+        return resumeDeliverApi.create();
+      } else {
+        return resumeDeliverApi.edit(self.businessKey);
+      }
+    })()
+      .then(response => {
+        var jsonData = response.data;
+        self.loading = false;
+
+        if (jsonData.result) {
+          self.formModel = jsonData.data;
+          self.formModel.id = this.businessKey;
+        } else {
+          self.$message.error(jsonData.message + "");
+        }
+      })
+      .catch(error => {
+        self.$message.error(error + "");
+      });
+  }
+};
+</script>

+ 139 - 0
src/views/job/resumeDeliver-detail3.vue

@@ -0,0 +1,139 @@
+<style scoped>
+.user-panel {
+  margin: 10px auto;
+}
+</style>
+<template>
+  <el-dialog
+    :visible.sync="showDialog"
+    :title="modalTitle"
+    :modal-append-to-body="false"
+    style="text-align:left;"
+    @close="closeDialog"
+    :close-on-click-modal="false"
+    width="600px"
+  >
+    <div class="user-panel" v-loading="loading">
+        <el-form ref="form" :model="formModel" :rules="ruleValidate" :label-width="'100px'">
+            <el-form-item label="公司名称" prop="companyName">
+            <el-input v-model="formModel.companyName" disabled="disabled"  style="width:400px"></el-input>
+            </el-form-item>
+            <el-form-item label="录用人" prop="realName">
+            <el-input v-model="formModel.realName" placeholder="请输入录用人" disabled="disabled" style="width:400px"></el-input>
+            </el-form-item>
+            <el-form-item label="身份证号" prop="idCard">
+            <el-input v-model="formModel.idCard" placeholder="请输入身份证号" disabled="disabled" style="width:400px"></el-input>
+            </el-form-item>
+            <el-form-item label="入职岗位" prop="entryPosition">
+            <el-input v-model="formModel.entryPosition" placeholder="请输入入职岗位" style="width:400px"></el-input>
+            </el-form-item>
+            <el-form-item label="入职部门" prop="entryDepartment">
+            <el-input v-model="formModel.entryDepartment" placeholder="请输入入职部门" style="width:400px"></el-input>
+            </el-form-item>
+            <el-form-item label="工作地" prop="area">
+            <el-input v-model="formModel.area" placeholder="请输入工作地" disabled="disabled" style="width:400px"></el-input>
+            </el-form-item>
+
+        </el-form>
+    </div>
+    <span slot="footer" class="dialog-footer">
+      <el-button @click="closeDialog">取 消</el-button>
+      <el-button type="primary" @click="handleSubmit" :loading="submitting">确 定</el-button>
+    </span>
+  </el-dialog>
+</template>
+<script>
+import Constant from "@/constant";
+import resumeDeliverApi from "@/api/job/resumeDeliver";
+
+export default {
+  props: ["businessKey", "title"],
+  data() {
+    return {
+      formModel: {
+        id: "",
+        idCard:"",
+        companyPhone:"",
+        chatDate:"",
+        chatTime:"",
+        chatType:"",
+        entryPosition:"",
+        entryDepartment:"",
+      },
+      ruleValidate: {
+        entryPosition: [{ required: true, message: "入职岗位不能为空", trigger: "blur" }],
+        entryDepartment: [{ required: true, message: "入职部门不能为空", trigger: "blur" }],
+      },
+      dataDictionaryList: [],
+      showDialog: true,
+      loading: false,
+      submitting: false
+    };
+  },
+  methods: {
+    closeDialog() {
+      this.$emit("close", false);
+    },
+    handleSubmit() {
+      var self = this;
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          (function() {
+            var id = self.formModel.id;
+
+            self.formModel.chatType = "4";
+            self.formModel.chatTime = self.formModel.entryPosition +","+ self.formModel.entryDepartment;
+
+            return resumeDeliverApi.add(self.formModel);
+
+          })().then(function(response) {
+            var jsonData = response.data;
+
+            if (jsonData.result) {
+              self.$message({
+                message: "保存成功!",
+                type: "success"
+              });
+
+              self.$emit("close", true);
+            } else {
+              self.$message({
+                message: jsonData.message + "",
+                type: "warning"
+              });
+
+              self.$emit("close", false);
+            }
+          });
+        }
+      });
+    },
+  },
+  async mounted() {
+    var self = this;
+    self.loading = true;
+
+    (function() {
+      if (self.businessKey.length == 0) {
+        return resumeDeliverApi.create();
+      } else {
+        return resumeDeliverApi.edit3(self.businessKey);
+      }
+    })()
+      .then(response => {
+        var jsonData = response.data;
+        self.loading = false;
+
+        if (jsonData.result) {
+          self.formModel = jsonData.data;
+          self.formModel.id = this.businessKey;
+        } else {
+          self.$message.error(jsonData.message + "");
+        }
+      })
+      .catch(error => {
+        self.$message.error(error + "");
+      });
+  }
+};
+</script>

+ 124 - 0
src/views/job/resumeDeliver-detail4.vue

@@ -0,0 +1,124 @@
+<style scoped>
+.user-panel {
+  margin: 10px auto;
+}
+</style>
+<template>
+  <el-dialog
+    :visible.sync="showDialog"
+    :title="modalTitle"
+    :modal-append-to-body="false"
+    style="text-align:left;"
+    @close="closeDialog"
+    :close-on-click-modal="false"
+    width="600px"
+  >
+    <div class="user-panel" v-loading="loading">
+        <el-form ref="form" :model="formModel" :label-width="'100px'">
+            <el-form-item label="应聘人" prop="realName">
+            <el-input v-model="formModel.realName" placeholder="请输入应聘人" disabled="disabled" style="width:400px"></el-input>
+            </el-form-item>
+            <el-form-item label="身份证号" prop="idCard">
+            <el-input v-model="formModel.idCard" placeholder="请输入身份证号" disabled="disabled" style="width:400px"></el-input>
+            </el-form-item>
+            <el-form-item label="拒绝原因" prop="remark">
+                <el-input type="textarea" :rows="4" v-model="formModel.remark" placeholder="请输入备注" style="width:400px"></el-input>
+            </el-form-item>
+
+        </el-form>
+    </div>
+    <span slot="footer" class="dialog-footer">
+      <el-button @click="closeDialog">取 消</el-button>
+      <el-button type="primary" @click="handleSubmit" :loading="submitting">确 定</el-button>
+    </span>
+  </el-dialog>
+</template>
+<script>
+import Constant from "@/constant";
+import resumeDeliverApi from "@/api/job/resumeDeliver";
+
+export default {
+  props: ["businessKey", "title"],
+  data() {
+    return {
+      formModel: {
+        id: "",
+        idCard:"",
+        companyPhone:"",
+        chatDate:"",
+        chatTime:"",
+        chatType:"",
+        remark:"",
+      },
+      dataDictionaryList: [],
+      showDialog: true,
+      loading: false,
+      submitting: false
+    };
+  },
+  methods: {
+    closeDialog() {
+      this.$emit("close", false);
+    },
+    handleSubmit() {
+      var self = this;
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          (function() {
+            var id = self.formModel.id;
+
+            self.formModel.chatType = "6";
+
+            return resumeDeliverApi.add(self.formModel);
+
+          })().then(function(response) {
+            var jsonData = response.data;
+
+            if (jsonData.result) {
+              self.$message({
+                message: "保存成功!",
+                type: "success"
+              });
+
+              self.$emit("close", true);
+            } else {
+              self.$message({
+                message: jsonData.message + "",
+                type: "warning"
+              });
+
+              self.$emit("close", false);
+            }
+          });
+        }
+      });
+    },
+  },
+  async mounted() {
+    var self = this;
+    self.loading = true;
+
+    (function() {
+      if (self.businessKey.length == 0) {
+        return resumeDeliverApi.create();
+      } else {
+        return resumeDeliverApi.edit3(self.businessKey);
+      }
+    })()
+      .then(response => {
+        var jsonData = response.data;
+        self.loading = false;
+
+        if (jsonData.result) {
+          self.formModel = jsonData.data;
+          self.formModel.id = this.businessKey;
+        } else {
+          self.$message.error(jsonData.message + "");
+        }
+      })
+      .catch(error => {
+        self.$message.error(error + "");
+      });
+  }
+};
+</script>

+ 1079 - 0
src/views/job/resumeDeliver-list.vue

@@ -0,0 +1,1079 @@
+<template>
+  <div>
+    <el-breadcrumb separator=">">
+      <el-breadcrumb-item :to="{ path: '/' }">首页</el-breadcrumb-item>
+      <el-breadcrumb-item>
+        <a href="#">企业HR管理</a>
+      </el-breadcrumb-item>
+      <el-breadcrumb-item>
+        <a href="/resume">简历管理</a>
+      </el-breadcrumb-item>
+    </el-breadcrumb>
+    <el-divider></el-divider>
+    <!--
+      要resetFields起作用,必须配置:model和prop
+    -->
+    <el-form
+      ref="queryForm"
+      :model="queryModel"
+      inline
+      class="demo-form-inline"
+    >
+      <el-form-item label="求职者姓名" prop="name">
+        <el-input type="text" size="mini" v-model="queryModel.name"></el-input>
+      </el-form-item>
+      <el-form-item label="应聘岗位" prop="type">
+        <el-input type="text" size="mini" v-model="queryModel.type"></el-input>
+      </el-form-item>
+      <el-form-item label="求职状态" prop="scale">
+        <el-input type="text" size="mini" v-model="queryModel.scale"></el-input>
+      </el-form-item>
+      <el-form-item>
+        <el-button
+          type="primary"
+          size="mini"
+          icon="ios-search"
+          @click="handleSearch(1)"
+          :loading="loading"
+          >查询</el-button
+        >&nbsp;
+        <el-button
+          type="info"
+          size="mini"
+          style="margin-left: 8px"
+          @click="handleReset('queryForm')"
+          >重置</el-button
+        >&nbsp;
+      </el-form-item>
+    </el-form>
+    <el-divider></el-divider>
+    <el-row class="button-group">
+      <el-button
+        type="primary"
+        size="small"
+        plain
+        icon="el-icon-upload"
+        @click="exportXls"
+        >导出记录</el-button
+      >
+    </el-row>
+    <template>
+    <el-tabs v-model="activeName" type="card" @tab-click="handleClick">
+        <el-tab-pane label="全部" name="first">
+            <el-table
+            :data="tableData1"
+            style="min-height: 400px"
+            v-loading="loading1"
+            stripe
+            >
+                <el-table-column prop="name" label="姓名" width="100"></el-table-column>
+                <el-table-column prop="position" label="应聘职位" width="150"></el-table-column>
+                <el-table-column prop="positionNumber" label="招聘人数" width="80"></el-table-column>
+                <el-table-column prop="dreamMoney" label="期望薪资" width="80"></el-table-column>
+                <el-table-column prop="workExp" label="工作经验" width="80"></el-table-column>
+                <el-table-column prop="education" label="学历" width="100"></el-table-column>
+                <el-table-column prop="birthday" label="出生年月" width="120"></el-table-column>
+                <el-table-column prop="workExp" label="工作经历" width="80">
+                    <template>
+                        <el-link href="#" target="_blank" type="primary">查看</el-link>
+                    </template>
+                </el-table-column>
+                <el-table-column prop="sortNo" label="简历附件" width="80">
+                    <template>
+                        <el-link href="#" target="_blank" type="primary">下载</el-link>
+                    </template>
+                </el-table-column>
+                <el-table-column prop="jobStatusN" label="工作状态" width="80"></el-table-column>
+                <el-table-column prop="chatStatusN" label="沟通状态" ></el-table-column>
+                <el-table-column label="操作" width="280">
+                    <template slot-scope="{ row }">
+                    <el-button size="mini" type="success" @click="handleRecordList(row)"
+                        >沟通记录</el-button
+                    >
+                    
+                    <el-dropdown size="mini" split-button class="dropdown1" type="primary" v-if="row.chatStatusList.length>0">
+                      修改状态
+                      <el-dropdown-menu slot="dropdown" class="dropdownMenu1" >
+                        <el-dropdown-item v-for="item in row.chatStatusList" v-bind:key="item" @click.native="handleSelect(row,item.value)">
+                            {{item.name}}
+                        </el-dropdown-item>
+                      </el-dropdown-menu>
+                    </el-dropdown>
+                    </template>
+                </el-table-column>
+            </el-table>
+            <el-pagination
+            :current-page.sync="pageIndex1"
+            :total="totalElements1"
+            :page-sizes="pageSizeList1"
+            @current-change="changePage"
+            @size-change="pageSizeChange1"
+            layout="total, sizes, prev, pager, next, jumper"
+            ></el-pagination>
+        </el-tab-pane>
+        <el-tab-pane label="已投递" name="second">
+            <el-table
+            :data="tableData2"
+            style="min-height: 400px"
+            v-loading="loading2"
+            stripe
+            >
+                <el-table-column prop="name" label="姓名" width="100"></el-table-column>
+                <el-table-column prop="position" label="应聘职位" width="150"></el-table-column>
+                <el-table-column prop="positionNumber" label="招聘人数" width="80"></el-table-column>
+                <el-table-column prop="dreamMoney" label="期望薪资" width="80"></el-table-column>
+                <el-table-column prop="workExp" label="工作经验" width="80"></el-table-column>
+                <el-table-column prop="education" label="学历" width="100"></el-table-column>
+                <el-table-column prop="birthday" label="出生年月" width="120"></el-table-column>
+                <el-table-column prop="workExp" label="工作经历" width="80">
+                    <template>
+                        <el-link href="#" target="_blank" type="primary">查看</el-link>
+                    </template>
+                </el-table-column>
+                <el-table-column prop="sortNo" label="简历附件" width="80">
+                    <template>
+                        <el-link href="#" target="_blank" type="primary">下载</el-link>
+                    </template>
+                </el-table-column>
+                <el-table-column prop="jobStatusN" label="工作状态" width="80"></el-table-column>
+                <el-table-column prop="chatStatusN" label="沟通状态"></el-table-column>
+                <el-table-column label="操作" width="280">
+                    <template slot-scope="{ row }">
+                    <el-button size="mini" type="success" @click="handleRecordList(row)"
+                        >沟通记录</el-button
+                    >
+                    
+                    <el-dropdown size="mini" split-button class="dropdown1" type="primary" v-if="row.chatStatusList.length>0">
+                      修改状态
+                      <el-dropdown-menu slot="dropdown" class="dropdownMenu1" >
+                        <el-dropdown-item v-for="item in row.chatStatusList" v-bind:key="item" @click.native="handleSelect(row,item.value)">
+                            {{item.name}}
+                        </el-dropdown-item>
+                      </el-dropdown-menu>
+                    </el-dropdown>
+                    </template>
+                </el-table-column>
+            </el-table>
+            <el-pagination
+            :current-page.sync="pageIndex2"
+            :total="totalElements2"
+            :page-sizes="pageSizeList2"
+            @current-change="changePage2"
+            @size-change="pageSizeChange2"
+            layout="total, sizes, prev, pager, next, jumper"
+            ></el-pagination>
+        </el-tab-pane>
+        <el-tab-pane label="邀请沟通" name="third">
+          <el-table
+            :data="tableData3"
+            style="min-height: 400px"
+            v-loading="loading3"
+            stripe
+            >
+                <el-table-column prop="name" label="姓名" width="100"></el-table-column>
+                <el-table-column prop="position" label="应聘职位" width="150"></el-table-column>
+                <el-table-column prop="positionNumber" label="招聘人数" width="80"></el-table-column>
+                <el-table-column prop="dreamMoney" label="期望薪资" width="80"></el-table-column>
+                <el-table-column prop="workExp" label="工作经验" width="80"></el-table-column>
+                <el-table-column prop="education" label="学历" width="100"></el-table-column>
+                <el-table-column prop="birthday" label="出生年月" width="120"></el-table-column>
+                <el-table-column prop="workExp" label="工作经历" width="80">
+                    <template>
+                        <el-link href="#" target="_blank" type="primary">查看</el-link>
+                    </template>
+                </el-table-column>
+                <el-table-column prop="sortNo" label="简历附件" width="80">
+                    <template>
+                        <el-link href="#" target="_blank" type="primary">下载</el-link>
+                    </template>
+                </el-table-column>
+                <el-table-column prop="jobStatusN" label="工作状态" width="80"></el-table-column>
+                <el-table-column prop="chatStatusN" label="沟通状态"></el-table-column>
+                <el-table-column label="操作" width="280">
+                    <template slot-scope="{ row }">
+                    <el-button size="mini" type="success" @click="handleRecordList(row)"
+                        >沟通记录</el-button
+                    >
+                    
+                    <el-dropdown size="mini" split-button class="dropdown1" type="primary" v-if="row.chatStatusList.length>0">
+                      修改状态
+                      <el-dropdown-menu slot="dropdown" class="dropdownMenu1" >
+                        <el-dropdown-item v-for="item in row.chatStatusList" v-bind:key="item" @click.native="handleSelect(row,item.value)">
+                            {{item.name}}
+                        </el-dropdown-item>
+                      </el-dropdown-menu>
+                    </el-dropdown>
+                    </template>
+                </el-table-column>
+            </el-table>
+            <el-pagination
+            :current-page.sync="pageIndex3"
+            :total="totalElements3"
+            :page-sizes="pageSizeList3"
+            @current-change="changePage3"
+            @size-change="pageSizeChange3"
+            layout="total, sizes, prev, pager, next, jumper"
+            ></el-pagination>
+        </el-tab-pane>
+        <el-tab-pane label="邀请面试" name="fourth">
+          <el-table
+            :data="tableData4"
+            style="min-height: 400px"
+            v-loading="loading4"
+            stripe
+            >
+                <el-table-column prop="name" label="姓名" width="100"></el-table-column>
+                <el-table-column prop="position" label="应聘职位" width="150"></el-table-column>
+                <el-table-column prop="positionNumber" label="招聘人数" width="80"></el-table-column>
+                <el-table-column prop="dreamMoney" label="期望薪资" width="80"></el-table-column>
+                <el-table-column prop="workExp" label="工作经验" width="80"></el-table-column>
+                <el-table-column prop="education" label="学历" width="100"></el-table-column>
+                <el-table-column prop="birthday" label="出生年月" width="120"></el-table-column>
+                <el-table-column prop="workExp" label="工作经历" width="80">
+                    <template>
+                        <el-link href="#" target="_blank" type="primary">查看</el-link>
+                    </template>
+                </el-table-column>
+                <el-table-column prop="sortNo" label="简历附件" width="80">
+                    <template>
+                        <el-link href="#" target="_blank" type="primary">下载</el-link>
+                    </template>
+                </el-table-column>
+                <el-table-column prop="jobStatusN" label="工作状态" width="80"></el-table-column>
+                <el-table-column prop="chatStatusN" label="沟通状态" ></el-table-column>
+                <el-table-column label="操作" width="280">
+                    <template slot-scope="{ row }">
+                    <el-button size="mini" type="success" @click="handleRecordList(row)"
+                        >沟通记录</el-button
+                    >
+                    
+                    <el-dropdown size="mini" split-button class="dropdown1" type="primary" v-if="row.chatStatusList.length>0">
+                      修改状态
+                      <el-dropdown-menu slot="dropdown" class="dropdownMenu1" >
+                        <el-dropdown-item v-for="item in row.chatStatusList" v-bind:key="item" @click.native="handleSelect(row,item.value)">
+                            {{item.name}}
+                        </el-dropdown-item>
+                      </el-dropdown-menu>
+                    </el-dropdown>
+
+                    </template>
+                </el-table-column>
+            </el-table>
+            <el-pagination
+            :current-page.sync="pageIndex4"
+            :total="totalElements4"
+            :page-sizes="pageSizeList4"
+            @current-change="changePage4"
+            @size-change="pageSizeChange4"
+            layout="total, sizes, prev, pager, next, jumper"
+            ></el-pagination>
+        </el-tab-pane>
+        <el-tab-pane label="邀请入职" name="5">
+          <el-table
+            :data="tableData5"
+            style="min-height: 400px"
+            v-loading="loading5"
+            stripe
+            >
+                <el-table-column prop="name" label="姓名" width="100"></el-table-column>
+                <el-table-column prop="position" label="应聘职位" width="150"></el-table-column>
+                <el-table-column prop="positionNumber" label="招聘人数" width="80"></el-table-column>
+                <el-table-column prop="dreamMoney" label="期望薪资" width="80"></el-table-column>
+                <el-table-column prop="workExp" label="工作经验" width="80"></el-table-column>
+                <el-table-column prop="education" label="学历" width="100"></el-table-column>
+                <el-table-column prop="birthday" label="出生年月" width="120"></el-table-column>
+                <el-table-column prop="workExp" label="工作经历" width="80">
+                    <template>
+                        <el-link href="#" target="_blank" type="primary">查看</el-link>
+                    </template>
+                </el-table-column>
+                <el-table-column prop="sortNo" label="简历附件" width="80">
+                    <template>
+                        <el-link href="#" target="_blank" type="primary">下载</el-link>
+                    </template>
+                </el-table-column>
+                <el-table-column prop="jobStatusN" label="工作状态" width="80"></el-table-column>
+                <el-table-column prop="chatStatusN" label="沟通状态" ></el-table-column>
+                <el-table-column label="操作" width="280">
+                    <template slot-scope="{ row }">
+                    <el-button size="mini" type="success" @click="handleRecordList(row)"
+                        >沟通记录</el-button
+                    >
+                    
+                    <el-dropdown size="mini" split-button class="dropdown1" type="primary" v-if="row.chatStatusList.length>0">
+                      修改状态
+                      <el-dropdown-menu slot="dropdown" class="dropdownMenu1" >
+                        <el-dropdown-item v-for="item in row.chatStatusList" v-bind:key="item" @click.native="handleSelect(row,item.value)">
+                            {{item.name}}
+                        </el-dropdown-item>
+                      </el-dropdown-menu>
+                    </el-dropdown>
+                    </template>
+                </el-table-column>
+            </el-table>
+            <el-pagination
+            :current-page.sync="pageIndex5"
+            :total="totalElements5"
+            :page-sizes="pageSizeList5"
+            @current-change="changePage5"
+            @size-change="pageSizeChange5"
+            layout="total, sizes, prev, pager, next, jumper"
+            ></el-pagination>
+        </el-tab-pane>
+        <el-tab-pane label="接收入职" name="6">
+          <el-table
+            :data="tableData6"
+            style="min-height: 400px"
+            v-loading="loading6"
+            stripe
+            >
+                <el-table-column prop="name" label="姓名" width="100"></el-table-column>
+                <el-table-column prop="position" label="应聘职位" width="150"></el-table-column>
+                <el-table-column prop="positionNumber" label="招聘人数" width="80"></el-table-column>
+                <el-table-column prop="dreamMoney" label="期望薪资" width="80"></el-table-column>
+                <el-table-column prop="workExp" label="工作经验" width="80"></el-table-column>
+                <el-table-column prop="education" label="学历" width="100"></el-table-column>
+                <el-table-column prop="birthday" label="出生年月" width="120"></el-table-column>
+                <el-table-column prop="workExp" label="工作经历" width="80">
+                    <template>
+                        <el-link href="#" target="_blank" type="primary">查看</el-link>
+                    </template>
+                </el-table-column>
+                <el-table-column prop="sortNo" label="简历附件" width="80">
+                    <template>
+                        <el-link href="#" target="_blank" type="primary">下载</el-link>
+                    </template>
+                </el-table-column>
+                <el-table-column prop="jobStatusN" label="工作状态" width="80"></el-table-column>
+                <el-table-column prop="chatStatusN" label="沟通状态" ></el-table-column>
+                <el-table-column label="操作" width="280">
+                    <template slot-scope="{ row }">
+                    <el-button size="mini" type="success" @click="handleRecordList(row)"
+                        >沟通记录</el-button
+                    >
+                    
+                    <el-dropdown size="mini" split-button class="dropdown1" type="primary" v-if="row.chatStatusList.length>0">
+                      修改状态
+                      <el-dropdown-menu slot="dropdown" class="dropdownMenu1" >
+                        <el-dropdown-item v-for="item in row.chatStatusList" v-bind:key="item" @click.native="handleSelect(row,item.value)">
+                            {{item.name}}
+                        </el-dropdown-item>
+                      </el-dropdown-menu>
+                    </el-dropdown>
+                    </template>
+                </el-table-column>
+            </el-table>
+            <el-pagination
+            :current-page.sync="pageIndex6"
+            :total="totalElements6"
+            :page-sizes="pageSizeList6"
+            @current-change="changePage6"
+            @size-change="pageSizeChange6"
+            layout="total, sizes, prev, pager, next, jumper"
+            ></el-pagination>
+        </el-tab-pane>
+        <el-tab-pane label="拒绝/不合适" name="7">
+          <el-table
+            :data="tableData7"
+            style="min-height: 400px"
+            v-loading="loading7"
+            stripe
+            >
+                <el-table-column prop="name" label="姓名" width="100"></el-table-column>
+                <el-table-column prop="position" label="应聘职位" width="150"></el-table-column>
+                <el-table-column prop="positionNumber" label="招聘人数" width="80"></el-table-column>
+                <el-table-column prop="dreamMoney" label="期望薪资" width="80"></el-table-column>
+                <el-table-column prop="workExp" label="工作经验" width="80"></el-table-column>
+                <el-table-column prop="education" label="学历" width="100"></el-table-column>
+                <el-table-column prop="birthday" label="出生年月" width="120"></el-table-column>
+                <el-table-column prop="workExp" label="工作经历" width="80">
+                    <template>
+                        <el-link href="#" target="_blank" type="primary">查看</el-link>
+                    </template>
+                </el-table-column>
+                <el-table-column prop="sortNo" label="简历附件" width="80">
+                    <template>
+                        <el-link href="#" target="_blank" type="primary">下载</el-link>
+                    </template>
+                </el-table-column>
+                <el-table-column prop="jobStatusN" label="工作状态" width="80"></el-table-column>
+                <el-table-column prop="chatStatusN" label="沟通状态" ></el-table-column>
+                <el-table-column label="操作" width="280">
+                    <template slot-scope="{ row }">
+                    <el-button size="mini" type="success" @click="handleRecordList(row)"
+                        >沟通记录</el-button
+                    >
+                    
+                    <el-dropdown size="mini" split-button class="dropdown1" type="primary" v-if="row.chatStatusList.length>0">
+                      修改状态
+                      <el-dropdown-menu slot="dropdown" class="dropdownMenu1" >
+                        <el-dropdown-item v-for="item in row.chatStatusList" v-bind:key="item" @click.native="handleSelect(row,item.value)">
+                            {{item.name}}
+                        </el-dropdown-item>
+                      </el-dropdown-menu>
+                    </el-dropdown>
+                    </template>
+                </el-table-column>
+            </el-table>
+            <el-pagination
+            :current-page.sync="pageIndex7"
+            :total="totalElements7"
+            :page-sizes="pageSizeList7"
+            @current-change="changePage7"
+            @size-change="pageSizeChange7"
+            layout="total, sizes, prev, pager, next, jumper"
+            ></el-pagination>
+        </el-tab-pane>
+    </el-tabs>
+    </template>
+
+    <resumeDeliverRecord-list
+      v-if="showModal1"
+      :businessKey="businessKey"
+      :title="modalTitle1"
+      @close="onDetailModalCloseLog"
+    ></resumeDeliverRecord-list>
+
+    <resumeDeliver-detail
+      v-if="showModal"
+      :businessKey="businessKey"
+      :title="modalTitle"
+      @close="onDetailModalClose"
+    ></resumeDeliver-detail>
+
+    <resumeDeliver-detail2
+      v-if="showModal2"
+      :businessKey="businessKey"
+      :title="modalTitle2"
+      @close="onDetailModalClose2"
+    ></resumeDeliver-detail2>
+
+    <resumeDeliver-detail3
+      v-if="showModal3"
+      :businessKey="businessKey"
+      :title="modalTitle3"
+      @close="onDetailModalClose3"
+    ></resumeDeliver-detail3>
+
+    <resumeDeliver-detail4
+      v-if="showModal4"
+      :businessKey="businessKey"
+      :title="modalTitle4"
+      @close="onDetailModalClose4"
+    ></resumeDeliver-detail4>
+  </div>
+</template>
+<script>
+import Constant from "@/constant";
+import resumeDeliverDetail from "./resumeDeliver-detail";
+import resumeDeliverDetail2 from "./resumeDeliver-detail2";
+import resumeDeliverDetail3 from "./resumeDeliver-detail3";
+import resumeDeliverDetail4 from "./resumeDeliver-detail4";
+import resumeDeliverRecordList from "./resumeDeliverRecord-list";
+import resumeDeliverApi from "@/api/job/resumeDeliver";
+import NProgress from "nprogress"; // progress bar
+import "nprogress/nprogress.css"; // progress bar style
+
+export default {
+  name: 'jobResumeList',
+  data() {
+    var self = this;
+
+    return {
+      queryModel: {
+        id: "",
+        name: "",
+        type: "",
+        scale: "",
+        industry: "",
+        address: "",
+        introduction: "",
+      },
+      loading:false,
+      activeName: 'first',
+      loading1: false,
+      tableData1: [],
+      pageIndex1: 1,
+      pageSize1: 10,
+      totalPages1: 0,
+      totalElements1: 0,
+      pageSizeList1: [10, 20, 30],
+
+      loading2: false,
+      tableData2: [],
+      pageIndex2: 1,
+      pageSize2: 10,
+      totalPages2: 0,
+      totalElements2: 0,
+      pageSizeList2: [10, 20, 30],
+
+      loading3: false,
+      tableData3: [],
+      pageIndex3: 1,
+      pageSize3: 10,
+      totalPages3: 0,
+      totalElements3: 0,
+      pageSizeList3: [10, 20, 30],
+
+      loading4: false,
+      tableData4: [],
+      pageIndex4: 1,
+      pageSize4: 10,
+      totalPages4: 0,
+      totalElements4: 0,
+      pageSizeList4: [10, 20, 30],
+
+      loading5: false,
+      tableData5: [],
+      pageIndex5: 1,
+      pageSize5: 10,
+      totalPages5: 0,
+      totalElements5: 0,
+      pageSizeList5: [10, 20, 30],
+
+      loading6: false,
+      tableData6: [],
+      pageIndex6: 1,
+      pageSize6: 10,
+      totalPages6: 0,
+      totalElements6: 0,
+      pageSizeList6: [10, 20, 30],
+
+      loading7: false,
+      tableData7: [],
+      pageIndex7: 1,
+      pageSize7: 10,
+      totalPages7: 0,
+      totalElements7: 0,
+      pageSizeList7: [10, 20, 30],
+
+
+      field: "",
+      direction: "",
+      showModal: false,
+      modalTitle: "",
+
+      showModal1: false,
+      modalTitle1: "",
+
+      showModal2: false,
+      modalTitle2: "",
+
+      showModal3: false,
+      modalTitle3: "",
+
+      showModal4: false,
+      modalTitle4: "",
+      businessKey: "",
+    };
+  },
+  methods: {
+    changePage(pageIndex1) {
+      var self = this;
+
+      self.loading1 = true;
+
+      self.pageIndex1 = pageIndex1;
+      var formData = new FormData();
+
+      formData.append("pageIndex", self.pageIndex1);
+      formData.append("pageSize", self.pageSize1);
+      formData.append("name", self.queryModel.name);
+
+      formData.append("chatStatus", "0");
+
+
+      resumeDeliverApi
+        .pageList(formData)
+        .then(function (response) {
+          self.loading1= false;
+
+          var jsonData = response.data.data;
+
+          self.tableData1 = jsonData.data;
+          self.totalPages1 = jsonData.totalPages;
+          self.totalElements1 = jsonData.recordsTotal;
+        })
+        .catch((error) => {
+          self.loading1 = false;
+          // self.$message.error(error + "");
+        });
+    },
+
+    changePage2(pageIndex2) {
+      var self = this;
+
+      self.loading2 = true;
+
+      self.pageIndex2 = pageIndex2;
+      var formData = new FormData();
+
+      formData.append("pageIndex", self.pageIndex2);
+      formData.append("pageSize", self.pageSize2);
+      formData.append("name", self.queryModel.name);
+
+      formData.append("chatStatus", "1");
+
+
+      resumeDeliverApi
+        .pageList(formData)
+        .then(function (response) {
+          self.loading2= false;
+
+          var jsonData = response.data.data;
+
+          self.tableData2 = jsonData.data;
+          self.totalPages2 = jsonData.totalPages;
+          self.totalElements2 = jsonData.recordsTotal;
+        })
+        .catch((error) => {
+          self.loading2 = false;
+          // self.$message.error(error + "");
+        });
+    },
+
+    changePage3(pageIndex3) {
+      var self = this;
+
+      self.loading3 = true;
+
+      self.pageIndex3 = pageIndex3;
+      var formData = new FormData();
+
+      formData.append("pageIndex", self.pageIndex3);
+      formData.append("pageSize", self.pageSize3);
+      formData.append("name", self.queryModel.name);
+
+      formData.append("chatStatus", "2");
+
+
+      resumeDeliverApi
+        .pageList(formData)
+        .then(function (response) {
+          self.loading3= false;
+
+          var jsonData = response.data.data;
+
+          self.tableData3 = jsonData.data;
+          self.totalPages3 = jsonData.totalPages;
+          self.totalElements3 = jsonData.recordsTotal;
+        })
+        .catch((error) => {
+          self.loading3 = false;
+          // self.$message.error(error + "");
+        });
+    },
+
+    changePage4(pageIndex4) {
+      var self = this;
+
+      self.loading4 = true;
+
+      self.pageIndex4 = pageIndex4;
+      var formData = new FormData();
+
+      formData.append("pageIndex", self.pageIndex4);
+      formData.append("pageSize", self.pageSize4);
+      formData.append("name", self.queryModel.name);
+
+      formData.append("chatStatus", "3");
+
+
+      resumeDeliverApi
+        .pageList(formData)
+        .then(function (response) {
+          self.loading4= false;
+
+          var jsonData = response.data.data;
+
+          self.tableData4 = jsonData.data;
+          self.totalPages4 = jsonData.totalPages;
+          self.totalElements4 = jsonData.recordsTotal;
+        })
+        .catch((error) => {
+          self.loading4 = false;
+          // self.$message.error(error + "");
+        });
+    },
+
+    changePage5(pageIndex5) {
+      var self = this;
+
+      self.loading5 = true;
+
+      self.pageIndex5 = pageIndex5;
+      var formData = new FormData();
+
+      formData.append("pageIndex", self.pageIndex5);
+      formData.append("pageSize", self.pageSize5);
+      formData.append("name", self.queryModel.name);
+
+      formData.append("chatStatus", "4");
+
+
+      resumeDeliverApi
+        .pageList(formData)
+        .then(function (response) {
+          self.loading5= false;
+
+          var jsonData = response.data.data;
+
+          self.tableData5 = jsonData.data;
+          self.totalPages5 = jsonData.totalPages;
+          self.totalElements5 = jsonData.recordsTotal;
+        })
+        .catch((error) => {
+          self.loading5 = false;
+          // self.$message.error(error + "");
+        });
+    },
+    changePage6(pageIndex6) {
+      var self = this;
+
+      self.loading6 = true;
+
+      self.pageIndex6 = pageIndex6;
+      var formData = new FormData();
+
+      formData.append("pageIndex", self.pageIndex6);
+      formData.append("pageSize", self.pageSize6);
+      formData.append("name", self.queryModel.name);
+
+      formData.append("chatStatus", "5");
+
+
+      resumeDeliverApi
+        .pageList(formData)
+        .then(function (response) {
+          self.loading6= false;
+
+          var jsonData = response.data.data;
+
+          self.tableData6 = jsonData.data;
+          self.totalPages6 = jsonData.totalPages;
+          self.totalElements6 = jsonData.recordsTotal;
+        })
+        .catch((error) => {
+          self.loading6 = false;
+          // self.$message.error(error + "");
+        });
+    },
+
+    changePage7(pageIndex7) {
+      var self = this;
+
+      self.loading7 = true;
+
+      self.pageIndex7 = pageIndex7;
+      var formData = new FormData();
+
+      formData.append("pageIndex", self.pageIndex7);
+      formData.append("pageSize", self.pageSize7);
+      formData.append("name", self.queryModel.name);
+
+      formData.append("chatStatus", "6");
+
+
+      resumeDeliverApi
+        .pageList(formData)
+        .then(function (response) {
+          self.loading7= false;
+
+          var jsonData = response.data.data;
+
+          self.tableData7 = jsonData.data;
+          self.totalPages7 = jsonData.totalPages;
+          self.totalElements7 = jsonData.recordsTotal;
+        })
+        .catch((error) => {
+          self.loading7 = false;
+          // self.$message.error(error + "");
+        });
+    },
+    handleClick(tab, event) {
+        console.log(tab, event);
+    },
+    pageSizeChange1(pageSize1) {
+      this.pageSize1 = pageSize1;
+
+      this.$nextTick(() => {
+        this.changePage(this.pageIndex1);
+      });
+    },
+    pageSizeChange2(pageSize2) {
+      this.pageSize2 = pageSize2;
+
+      this.$nextTick(() => {
+        this.changePage2(this.pageSize2);
+      });
+    },
+    pageSizeChange3(pageSize3) {
+      this.pageSize3 = pageSize3;
+
+      this.$nextTick(() => {
+        this.changePage3(this.pageSize3);
+      });
+    },
+    pageSizeChange4(pageSize4) {
+      this.pageSize4 = pageSize4;
+
+      this.$nextTick(() => {
+        this.changePage4(this.pageSize4);
+      });
+    },
+    pageSizeChange5(pageSize5) {
+      this.pageSize5 = pageSize5;
+
+      this.$nextTick(() => {
+        this.changePage5(this.pageSize5);
+      });
+    },
+    pageSizeChange6(pageSize6) {
+      this.pageSize6 = pageSize6;
+
+      this.$nextTick(() => {
+        this.changePage6(this.pageSize6);
+      });
+    },
+    pageSizeChange7(pageSize7) {
+      this.pageSize7 = pageSize7;
+
+      this.$nextTick(() => {
+        this.changePage7(this.pageSize7);
+      });
+    },
+    handleReset(name) {
+      this.$refs[name].resetFields();
+    },
+    handleAdd() {
+      this.modalTitle = "新增";
+      this.businessKey = "";
+      this.showModal = true;
+    },
+    handleEdit(record) {
+      this.modalTitle = "编辑";
+      this.businessKey = record.id;
+      this.showModal = true;
+    },
+    handleDelete(record) {
+      var self = this;
+
+      self
+        .$confirm("是否确认删除?", "提示", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning",
+        })
+        .then(() => {
+          resumeDeliverApi.remove(record.id).then(function (response) {
+            var jsonData = response.data;
+
+            if (jsonData.result) {
+              // var index = self.tableData.indexOf(record);
+              // self.tableData.splice(index, 1);
+              self.changePage(self.pageIndex);
+
+              self.$message({
+                type: "success",
+                message: "删除成功!",
+              });
+            }
+          });
+        });
+    },
+    handleBatchDelete() {
+      var self = this;
+
+      var idList = this.multipleSelection.map((record) => {
+        return record.id;
+      });
+
+      this.$confirm("是否确认删除选中项?", "提示", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      }).then(() => {
+        resumeDeliverApi.batchRemove(idList).then(function (response) {
+          var jsonData = response.data;
+
+          if (jsonData.result) {
+            self.changePage(self.pageIndex);
+
+            self.$message({
+              type: "success",
+              message: "删除成功!",
+            });
+          }
+        });
+      });
+    },
+    onDetailModalClose(refreshed) {
+      //保存成功后回调
+      this.showModal = false;
+
+      if (refreshed) {
+        this.handleSearch(1);
+      }
+    },
+    onDetailModalClose2(refreshed) {
+      //保存成功后回调
+      this.showModal2 = false;
+
+      if (refreshed) {
+        this.handleSearch(1);
+      }
+    },
+    onDetailModalClose3(refreshed) {
+      //保存成功后回调
+      this.showModal3 = false;
+
+      if (refreshed) {
+        this.handleSearch(1);
+      }
+    },
+    onDetailModalClose4(refreshed) {
+      //保存成功后回调
+      this.showModal4 = false;
+
+      if (refreshed) {
+        this.handleSearch(1);
+      }
+    },
+    onDetailModalCloseLog(refreshed) {
+      //保存成功后回调
+      this.showModal1 = false;
+    },
+    handleSearch(pageIndex){
+      this.changePage(pageIndex);
+      this.changePage2(pageIndex);
+      this.changePage3(pageIndex);
+      this.changePage4(pageIndex);
+      this.changePage5(pageIndex);
+      this.changePage6(pageIndex);
+      this.changePage7(pageIndex);
+    },
+    handleSelect(record,value){
+        if(value=='2'){
+          this.modalTitle = record.chatStatusN;
+          this.businessKey = record.id;
+          this.showModal = true;
+        }
+        else if(value=='3'){
+          this.modalTitle2 = record.chatStatusN;
+          this.businessKey = record.id;
+          this.showModal2 = true;
+        }
+        else if(value=='4'){
+          this.modalTitle3 = record.chatStatusN;
+          this.businessKey = record.id;
+          this.showModal3 = true;
+        }
+        else if(value=='5'){
+          console.log("5")
+        }
+        else if(value=='6'){
+          this.modalTitle4 = record.chatStatusN;
+          this.businessKey = record.id;
+          this.showModal4 = true;
+        }
+    },
+    handleRecordList(record){
+      this.modalTitle1 = "沟通记录";
+      this.businessKey = record.id;
+      this.showModal1 = true;
+    },
+    exportXls(){
+      var self = this;
+
+      self.loading1 = true;
+
+      var formData = new FormData();
+
+      formData.append("pageIndex", 1);
+      formData.append("pageSize", 10000);
+      formData.append("name", self.queryModel.name);
+
+
+      resumeDeliverApi
+        .exportXls(formData)
+        .then(function (response) {
+          self.loading1= false;
+
+          var jsonData = response.data;
+
+          if(jsonData.result) {
+            if(document.location.href.startsWith("https://")){
+                jsonData.data = jsonData.data.replace("http://","https://");
+            }
+            
+            //导出
+            self.$message({
+              showClose: true,
+              type: "success",
+              message: `报表已生成,<a href="${jsonData.data}">请点击链接下载</a>`,
+              dangerouslyUseHTMLString: true,
+              duration: 30000
+            });
+            
+          }
+          else{
+            self.$message.warning(jsonData.message);
+          }
+
+        })
+        .catch((error) => {
+          self.loading1 = false;
+          // self.$message.error(error + "");
+        });
+    }
+  },
+  mounted: function () {
+    this.changePage(1);
+    this.changePage2(1);
+    this.changePage3(1);
+    this.changePage4(1);
+    this.changePage5(1);
+    this.changePage6(1);
+    this.changePage7(1);
+  },
+  components: {
+    "resumeDeliverRecordList":resumeDeliverRecordList,
+    "resumeDeliver-detail": resumeDeliverDetail,
+    "resumeDeliver-detail2": resumeDeliverDetail2,
+    "resumeDeliver-detail3": resumeDeliverDetail3,
+    "resumeDeliver-detail4": resumeDeliverDetail4,
+  },
+};
+</script>
+<style lang="scss" scoped>
+.el-breadcrumb {
+  margin: 10px;
+  line-height: 20px;
+}
+
+.el-divider {
+  margin: 5px 0;
+}
+
+.demo-form-inline {
+  margin-left: 10px;
+  text-align: left;
+}
+
+.button-group {
+  margin-right: 10px;
+  text-align: right;
+  margin-top: 10px;
+  margin-bottom: 10px;
+}
+
+.dropdown1{
+  margin-left: 10px;
+  margin-right: 10px;
+}
+
+.dropdownMenu1{
+  width: 110px;
+  text-align: center;
+}
+</style>

+ 89 - 0
src/views/job/resumeDeliverRecord-list.vue

@@ -0,0 +1,89 @@
+<style scoped>
+.user-panel {
+  margin: 10px auto;
+}
+</style>
+<template>
+  <el-dialog
+    :visible.sync="showDialog"
+    :title="modalTitle"
+    :modal-append-to-body="false"
+    style="text-align:left;"
+    @close="closeDialog"
+    :close-on-click-modal="false"
+    width="800px"
+  >
+    <div class="user-panel" >
+        <el-table
+        :data="tableData"
+        style="min-height: 400px"
+        v-loading="loading"
+        stripe
+        >
+            <el-table-column prop="createTime" label="操作时间" width="150"></el-table-column>
+            <el-table-column prop="createByN" label="操作人" width="100"></el-table-column>
+            <el-table-column prop="step" label="操作步骤" width="130"></el-table-column>
+            <el-table-column prop="remark" label="备注"></el-table-column>
+        </el-table>
+    </div>
+    <span slot="footer" class="dialog-footer">
+      <el-button @click="closeDialog">取 消</el-button>
+    </span>
+  </el-dialog>
+</template>
+<script>
+import Constant from "@/constant";
+import resumeDeliverRecordApi from "@/api/job/resumeDeliverRecord";
+
+export default {
+  props: ["businessKey", "title"],
+  data() {
+    return {
+      formModel: {
+        id: "",
+        companyPerson:"",
+        companyPhone:"",
+        chatDate:"",
+        chatTime:"",
+        chatType:""
+      },
+      tableData:[],
+      showDialog: true,
+      loading: false,
+      submitting: false,
+      modalTitle:"",
+    };
+  },
+  methods: {
+    closeDialog() {
+      this.$emit("close", false);
+    },
+    changePage() {
+      var self = this;
+
+      self.loading = true;
+
+      var formData = new FormData();
+
+      formData.append("pageIndex", 1);
+      formData.append("pageSize", 10000);
+      formData.append("resumeDeliverId", this.businessKey);
+
+      resumeDeliverRecordApi.pageList(formData).then(function (response) {
+          self.loading= false;
+
+          var jsonData = response.data.data;
+
+          self.tableData = jsonData.data;
+        })
+        .catch((error) => {
+          self.loading = false;
+          // self.$message.error(error + "");
+        });
+    },
+  },
+  async mounted() {
+    this.changePage();
+  }
+};
+</script>