| | |
| | | <template> |
| | | <div> |
| | | <div style="background-color: #fff;height: 100%;"> |
| | | <el-container> |
| | | <el-header :height="headerHeight"> |
| | | <el-row style="margin-bottom: 10px;"> |
| | | <el-col :span="16"> |
| | | <el-col :span="15"> |
| | | <h3 class="bu-tian-jia-title">在职员工</h3> |
| | | </el-col> |
| | | <el-col :span="8" style="margin-top: 15px;"> |
| | | <el-input v-model="queryParams.vague" placeholder="请输入内容" style="width:200px" /> |
| | | <el-button type="primary" @click="vagueSearch">查询</el-button> |
| | | <el-button type="danger" @click="advancedQueryShowMethods">高级查询</el-button> |
| | | <el-col :span="9" style="margin-top: 15px;"> |
| | | <el-input v-model="queryParams.baseKey" placeholder="请输入内容" style="width:300px" /> |
| | | <span class="search-btn" @click="vagueSearch">查询</span> |
| | | <span class="sup-search-btn" @click="advancedQueryShowMethods">高级查询</span> |
| | | </el-col> |
| | | </el-row> |
| | | <div v-show="advancedQueryShow"> |
| | |
| | | <el-col :span="4">身份证号: |
| | | <el-input v-model="queryParams.certificateNumb" size="small" maxlength="18" style="width:140px" /> |
| | | </el-col> |
| | | <el-col :span="3">护卫点: |
| | | <el-col :span="4">部门(护卫点): |
| | | <el-input v-model="queryParams.deptName" size="small" maxlength="20" style="width:100px" /> |
| | | </el-col> |
| | | <el-col :span="8">入职日期: |
| | | <el-col :span="7">入职日期: |
| | | <el-date-picker |
| | | v-model="queryParams.entryDateStr" |
| | | size="small" |
| | | type="daterange" |
| | | align="right" |
| | | unlink-panels |
| | | range-separator="至" |
| | | range-separator="~" |
| | | value-format="yyyy-MM-dd" |
| | | start-placeholder="开始日期" |
| | | end-placeholder="结束日期" |
| | |
| | | <td class="td-group"> |
| | | <el-checkbox-group v-model="queryParams.sex" class="fj-checkbox"> |
| | | <el-checkbox label="" @change="selectAllSex">全部</el-checkbox> |
| | | <el-checkbox label="1">男性</el-checkbox> |
| | | <el-checkbox label="2">女性</el-checkbox> |
| | | <el-checkbox |
| | | v-for="data in sexOptions" |
| | | :key="data.dicItemName" |
| | | :label="data.dicItemCode" |
| | | > |
| | | {{ data.dicItemName }} |
| | | </el-checkbox> |
| | | </el-checkbox-group> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td class="td">最高学历:</td> |
| | | <td class="td">学历:</td> |
| | | <td class="td-group"> |
| | | <el-checkbox-group v-model="queryParams.education" class="fj-checkbox"> |
| | | <el-checkbox label="" @change="selectAllEducation">全部</el-checkbox> |
| | | <el-checkbox label="91">无学历</el-checkbox> |
| | | <el-checkbox label="81">小学</el-checkbox> |
| | | <el-checkbox label="71">初中</el-checkbox> |
| | | <el-checkbox label="61">高中</el-checkbox> |
| | | <el-checkbox label="42">中技</el-checkbox> |
| | | <el-checkbox label="41">中专</el-checkbox> |
| | | <el-checkbox label="31">大学专科</el-checkbox> |
| | | <el-checkbox label="21">大学本科</el-checkbox> |
| | | <el-checkbox label="11">硕士</el-checkbox> |
| | | <el-checkbox label="10">博士</el-checkbox> |
| | | <el-checkbox |
| | | v-for="data in educationOptions" |
| | | :key="data.dicItemName" |
| | | :label="data.dicItemCode" |
| | | > |
| | | {{ data.dicItemName }} |
| | | </el-checkbox> |
| | | </el-checkbox-group> |
| | | </td> |
| | | </tr> |
| | |
| | | <td class="td-group"> |
| | | <el-checkbox-group v-model="queryParams.politics" class="fj-checkbox"> |
| | | <el-checkbox label="" @change="selectAllPolitics">全部</el-checkbox> |
| | | <el-checkbox label="01">党员</el-checkbox> |
| | | <el-checkbox label="02">预备</el-checkbox> |
| | | <el-checkbox label="03">共青</el-checkbox> |
| | | <el-checkbox label="04">民革</el-checkbox> |
| | | <el-checkbox label="05">民盟</el-checkbox> |
| | | <el-checkbox label="06">民建</el-checkbox> |
| | | <el-checkbox label="07">民进</el-checkbox> |
| | | <el-checkbox label="08">农工</el-checkbox> |
| | | <el-checkbox label="09">致公</el-checkbox> |
| | | <el-checkbox label="10">九三</el-checkbox> |
| | | <el-checkbox label="11">台盟</el-checkbox> |
| | | <el-checkbox label="12">民主</el-checkbox> |
| | | <el-checkbox label="13">群众</el-checkbox> |
| | | <el-checkbox |
| | | v-for="data in statusOptions" |
| | | :key="data.dicItemName" |
| | | :label="data.dicItemCode" |
| | | > |
| | | {{ data.dicItemName }} |
| | | </el-checkbox> |
| | | </el-checkbox-group> |
| | | </td> |
| | | </tr> |
| | |
| | | <td class="td-group"> |
| | | <el-checkbox-group v-model="queryParams.ageStr" class="fj-checkbox"> |
| | | <el-checkbox label="" @change="selectAllAgeStr">全部</el-checkbox> |
| | | <el-checkbox label="18-29">18-29</el-checkbox> |
| | | <el-checkbox label="30-39">30-39</el-checkbox> |
| | | <el-checkbox label="40-49">40-49</el-checkbox> |
| | | <el-checkbox label="50-59">50-59</el-checkbox> |
| | | <el-checkbox label="60-69">60-69</el-checkbox> |
| | | <el-checkbox label="69-999">69及以上</el-checkbox> |
| | | <el-checkbox |
| | | v-for="data in ageStrOptions" |
| | | :key="data.dicItemName" |
| | | :label="data.dicItemCode" |
| | | > |
| | | {{ data.dicItemName }} |
| | | </el-checkbox> |
| | | </el-checkbox-group> |
| | | </td> |
| | | </tr> |
| | |
| | | <td class="td-group"> |
| | | <el-checkbox-group v-model="queryParams.archivesStatus" class="fj-checkbox"> |
| | | <el-checkbox label="" @change="selectAllArchivesStatus">全部</el-checkbox> |
| | | <el-checkbox label="0">已移交</el-checkbox> |
| | | <el-checkbox label="1">未移交</el-checkbox> |
| | | <el-checkbox |
| | | v-for="data in archivesStatusOptions" |
| | | :key="data.dicItemName" |
| | | :label="data.dicItemCode" |
| | | > |
| | | {{ data.dicItemName }} |
| | | </el-checkbox> |
| | | </el-checkbox-group> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td class="td">保险类型:</td> |
| | | <td class="td">社保档位:</td> |
| | | <td class="td-group"> |
| | | <el-checkbox-group v-model="queryParams.insuranceType" class="fj-checkbox"> |
| | | <el-checkbox label="" @change="selectAllInsuranceType">全部</el-checkbox> |
| | | <el-checkbox label="1">深户(五险一档)</el-checkbox> |
| | | <el-checkbox label="2">非深户(五险一档)</el-checkbox> |
| | | <el-checkbox label="3">非深户(五险二档)</el-checkbox> |
| | | <el-checkbox label="4">非深户(五险三档)</el-checkbox> |
| | | <el-checkbox label="5">非深户(四险三档)</el-checkbox> |
| | | <el-checkbox |
| | | v-for="data in insuranceTypeOptions" |
| | | :key="data.dicItemName" |
| | | :label="data.dicItemCode" |
| | | > |
| | | {{ data.dicItemName }} |
| | | </el-checkbox> |
| | | </el-checkbox-group> |
| | | </td> |
| | | </tr> |
| | | <!-- <tr> |
| | | <td class="td">员工状态:</td> |
| | | <tr> |
| | | <td class="td">工作证:</td> |
| | | <td class="td-group"> |
| | | <el-checkbox-group v-model="queryParams.empStatus" class="fj-checkbox"> |
| | | <el-checkbox label="" @change="selectAllEmpStatus">全部</el-checkbox> |
| | | <el-checkbox label="0">在职</el-checkbox> |
| | | <el-checkbox label="1">离职</el-checkbox> |
| | | <el-checkbox label="2">退休</el-checkbox> |
| | | <el-checkbox-group v-model="queryParams.empCardStatus" class="fj-checkbox"> |
| | | <el-checkbox label="" @change="selectAllEmpCardStatus">全部</el-checkbox> |
| | | <el-checkbox |
| | | v-for="data in empCardStatusOptions" |
| | | :key="data.dicItemName" |
| | | :label="data.dicItemCode" |
| | | > |
| | | {{ data.dicItemName }} |
| | | </el-checkbox> |
| | | </el-checkbox-group> |
| | | </td> |
| | | </tr> --> |
| | | </tr> |
| | | <tr> |
| | | <td class="td">员工手册:</td> |
| | | <td class="td-group"> |
| | | <el-checkbox-group v-model="queryParams.handbookStatus" class="fj-checkbox"> |
| | | <el-checkbox label="" @change="selectAllHandbookStatus">全部</el-checkbox> |
| | | <el-checkbox |
| | | v-for="data in handbookStatusOptions" |
| | | :key="data.dicItemName" |
| | | :label="data.dicItemCode" |
| | | > |
| | | {{ data.dicItemName }} |
| | | </el-checkbox> |
| | | </el-checkbox-group> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td class="td">员工类型:</td> |
| | | <td class="td-group"> |
| | | <el-checkbox-group v-model="queryParams.empType" class="fj-checkbox"> |
| | | <el-checkbox label="" @change="selectAllEmpType">全部</el-checkbox> |
| | | <el-checkbox |
| | | v-for="data in empTypeOptions" |
| | | :key="data.dicItemName" |
| | | :label="data.dicItemCode" |
| | | > |
| | | {{ data.dicItemName }} |
| | | </el-checkbox> |
| | | </el-checkbox-group> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td class="td">入职类型:</td> |
| | | <td class="td-group"> |
| | | <el-checkbox-group v-model="queryParams.entryType" class="fj-checkbox"> |
| | | <el-checkbox label="" @change="selectAllEntryType">全部</el-checkbox> |
| | | <el-checkbox :label="20">新入职</el-checkbox> |
| | | <el-checkbox :label="21">重新入职</el-checkbox> |
| | | <el-checkbox :label="22">返聘入职</el-checkbox> |
| | | <!-- <el-checkbox--> |
| | | <!-- v-for="data in dimissionTypeOptions"--> |
| | | <!-- :key="data.dicItemName"--> |
| | | <!-- :label="data.dicItemCode"--> |
| | | <!-- >--> |
| | | <!-- {{ data.dicItemName }}--> |
| | | <!-- </el-checkbox>--> |
| | | </el-checkbox-group> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td class="td">相关证件:</td> |
| | | <td class="td-group"> |
| | | <el-checkbox-group v-model="queryParams.certificateList" class="fj-checkbox"> |
| | | <el-checkbox label="" @change="selectAllCertificateList">全部</el-checkbox> |
| | | <el-checkbox |
| | | v-for="data in certificateListOptions" |
| | | :key="data.dicItemName" |
| | | :label="data.dicItemCode" |
| | | > |
| | | {{ data.dicItemName }} |
| | | </el-checkbox> |
| | | </el-checkbox-group> |
| | | </td> |
| | | </tr> |
| | | </table> |
| | | </el-col> |
| | | </el-row> |
| | |
| | | <el-row style="margin: 10px 0 10px 0;"> |
| | | <el-col :span="24"> |
| | | <el-button type="danger" class="hr-but-all" @click="showXzyg(0)">新增员工</el-button> |
| | | <el-button type="primary" @click="delEmp">删除员工</el-button> |
| | | <el-button type="primary" style="background-color: #409EFF" @click="delEmp">删除员工</el-button> |
| | | <el-button type="danger" class="hr-but-all" @click="showYgdg(0)">员工调岗</el-button> |
| | | <el-button type="danger" class="hr-but-all" @click="showDryg(0)">导入员工</el-button> |
| | | <el-button type="danger" class="hr-but-all" @click="showDcyg(0)">导出员工</el-button> |
| | | <el-button type="danger" class="hr-but-all" @click="doDcda">导出档案</el-button> |
| | | <el-button type="danger" class="hr-but-all" @click="showGbda(0)">关闭档案</el-button> |
| | | <!-- <el-button type="danger" class="hr-but-all" @click="showDryg(0)">导入员工</el-button> --> |
| | | <el-button type="danger" class="hr-but-all" @click="showDcyg(0)">导出EXCEL</el-button> |
| | | <el-button type="primary" style="background-color: #409EFF" @click="showGbda(0)">关闭档案</el-button> |
| | | </el-col> |
| | | </el-row> |
| | | <el-table ref="multipleTable" :data="tableData" style="width: 100%;color: #000;"> |
| | | <el-table |
| | | ref="multipleTable" |
| | | :data="tableData" |
| | | :cell-style="{padding:'7px 0','text-align':'center'}" |
| | | :header-cell-style="{'height':'5.3vh','background-color':'#e6e6e6','text-align':'center'}" |
| | | stripe |
| | | border |
| | | style="width: 100%;color: #000;" |
| | | @sort-change="changeSort" |
| | | > |
| | | <el-table-column type="selection" width="55" /> |
| | | <el-table-column label="操作" width="100"> |
| | | <el-table-column label="操作" width="130"> |
| | | <template slot-scope="scope"> |
| | | <el-button |
| | | type="text" |
| | | size="small" |
| | | <!-- <el-button--> |
| | | <!-- type="text"--> |
| | | <!-- size="small"--> |
| | | <!-- @click="editArchives(scope.row)"--> |
| | | <!-- >--> |
| | | <!-- 档案</el-button>--> |
| | | <!-- <el-button type="text" size="small" @click="editEmpBase(scope.row)">编辑</el-button>--> |
| | | |
| | | <span |
| | | style="color: #a00515;display: inline-block;width: 40%;cursor: pointer" |
| | | @click="editArchives(scope.row)" |
| | | > |
| | | 档案</el-button> |
| | | <el-button type="text" size="small" @click="editEmpBase(scope.row)">编辑</el-button> |
| | | >档案</span> |
| | | <span |
| | | style="color: #a00515;display: inline-block;width: 40%;cursor: pointer" |
| | | @click="editEmpBase(scope.row)" |
| | | >编辑</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="deptName" label="护卫点" width="100" /> |
| | | <el-table-column prop="jobName" label="岗位" width="100" /> |
| | | <el-table-column prop="empNumb" label="员工编号" width="100" /> |
| | | <el-table-column prop="empName" label="姓名" width="100" /> |
| | | <el-table-column prop="certificateNumb" label="身份证号码" width="180" /> |
| | | <el-table-column prop="sexName" label="性别" width="50" /> |
| | | <el-table-column prop="age" label="年龄" /> |
| | | <el-table-column prop="educationName" label="最高学历" width="100" /> |
| | | <el-table-column prop="nativePlaceName" label="籍贯" /> |
| | | <el-table-column prop="telePhone" label="联系电话" /> |
| | | <el-table-column prop="entryDate" label="入职日期" width="100" /> |
| | | <el-table-column prop="empStatus" label="员工状态"> |
| | | <el-table-column show-overflow-tooltip prop="empNumb" label="编号" width="80" sortable="custom" :sort-orders="['ascending', 'descending']" /> |
| | | <el-table-column show-overflow-tooltip prop="allDeptName" label="部门(护卫点)" width="300" sortable="custom" :sort-orders="['ascending', 'descending']" /> |
| | | <el-table-column show-overflow-tooltip prop="jobName" label="岗位" width="80" /> |
| | | <el-table-column show-overflow-tooltip prop="empName" label="姓名" width="100" sortable="custom" :sort-orders="['ascending', 'descending']" /> |
| | | <el-table-column show-overflow-tooltip prop="certificateNumb" label="身份证号码" width="160" /> |
| | | <el-table-column show-overflow-tooltip prop="sex" label="性别" width="60" :formatter="sexFormat" /> |
| | | <el-table-column show-overflow-tooltip prop="age" label="年龄" width="80" sortable="custom" :sort-orders="['ascending', 'descending']" /> |
| | | <el-table-column show-overflow-tooltip prop="education" label="学历" width="80" :formatter="educationFormat" sortable="custom" :sort-orders="['ascending', 'descending']" /> |
| | | <el-table-column show-overflow-tooltip prop="nativePlace" label="籍贯" width="70" :formatter="nativePlaceFormat" /> |
| | | <el-table-column show-overflow-tooltip prop="telePhone" label="联系电话" width="110" /> |
| | | <el-table-column show-overflow-tooltip prop="empTypeName" label="员工类型" width="80" /> |
| | | <el-table-column show-overflow-tooltip prop="entryDate" label="入职日期" width="110" sortable="custom" :sort-orders="['ascending', 'descending']" /> |
| | | <el-table-column show-overflow-tooltip prop="empStatus" label="员工状态" width="80"> |
| | | <template slot-scope="{row}"> |
| | | {{ transEmpStatus(row.empStatus) }} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="entryType" label="入职类型" width="120" sortable="custom" :sort-orders="['ascending', 'descending']"> |
| | | <template slot-scope="{row}"> |
| | | {{ transEntryType(row.entryType) }} |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <pagination |
| | | v-show="total>0" |
| | | style="text-align: right;width: 98%;" |
| | | :total="total" |
| | | :page.sync="pagination.num" |
| | | :limit.sync="pagination.size" |
| | |
| | | /> |
| | | </el-main> |
| | | </el-container> |
| | | <el-dialog title="新增员工" :visible.sync="dialogShowXzyg" width="50%"> |
| | | <el-form |
| | | ref="empBaseInfoForm" |
| | | :model="empBaseInfoForm" |
| | | :rules="empBaseInfoRules" |
| | | label-position="right" |
| | | label-width="120px" |
| | | > |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="档案号" prop="archivesNumb"> |
| | | <el-input v-model="empBaseInfoForm.archivesNumb" /> |
| | | </el-form-item> |
| | | <el-form-item label="员工编号" prop="empNumb"> |
| | | <el-input v-model="empBaseInfoForm.empNumb" /> |
| | | </el-form-item> |
| | | <el-form-item label="身份证号码" prop="certificateNumb"> |
| | | <el-input |
| | | v-model="empBaseInfoForm.certificateNumb" |
| | | @input="generateUserInfo(0,empBaseInfoForm.certificateNumb)" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="员工类别" prop="empType"> |
| | | <el-select v-model="empBaseInfoForm.empType" placeholder="请选择员工类型"> |
| | | <el-option label="高层" value="01" /> |
| | | <el-option label="高级管理人员" value="02" /> |
| | | <el-option label="中级管理人员" value="03" /> |
| | | <el-option label="初级管理人员" value="04" /> |
| | | <el-option label="文职人员" value="05" /> |
| | | <el-option label="一般人员" value="06" /> |
| | | <el-option label="其他" value="07" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="民族" prop="nation"> |
| | | <el-select v-model="empBaseInfoForm.nation" placeholder="请选择民族"> |
| | | <el-option label="汉族" value="01" /> |
| | | <el-option label="蒙古族" value="02" /> |
| | | <el-option label="回族" value="03" /> |
| | | <el-option label="藏族" value="04" /> |
| | | <el-option label="维吾尔族" value="05" /> |
| | | <el-option label="苗族" value="06" /> |
| | | <el-option label="彝族" value="07" /> |
| | | <el-option label="壮族" value="08" /> |
| | | <el-option label="布衣族" value="09" /> |
| | | <el-option label="朝鲜族" value="10" /> |
| | | <el-option label="满族" value="11" /> |
| | | <el-option label="侗族" value="12" /> |
| | | <el-option label="瑶族" value="13" /> |
| | | <el-option label="白族" value="14" /> |
| | | <el-option label="土家族" value="15" /> |
| | | <el-option label="哈尼族" value="16" /> |
| | | <el-option label="哈萨克族" value="17" /> |
| | | <el-option label="傣族" value="18" /> |
| | | <el-option label="黎族" value="19" /> |
| | | <el-option label="傈傈族" value="20" /> |
| | | <el-option label="瓦族" value="21" /> |
| | | <el-option label="畲族" value="22" /> |
| | | <el-option label="高山族" value="23" /> |
| | | <el-option label="拉祜族" value="24" /> |
| | | <el-option label="水族" value="25" /> |
| | | <el-option label="东乡族" value="26" /> |
| | | <el-option label="纳西族" value="27" /> |
| | | <el-option label="景颇族" value="28" /> |
| | | <el-option label="柯尔克孜族" value="29" /> |
| | | <el-option label="土族" value="30" /> |
| | | <el-option label="达斡尔族" value="31" /> |
| | | <el-option label="仫佬族" value="32" /> |
| | | <el-option label="羌族" value="33" /> |
| | | <el-option label="布朗族" value="34" /> |
| | | <el-option label="撒拉族" value="35" /> |
| | | <el-option label="毛难族" value="36" /> |
| | | <el-option label="仡佬族" value="37" /> |
| | | <el-option label="锡伯族" value="38" /> |
| | | <el-option label="阿昌族" value="39" /> |
| | | <el-option label="普米族" value="40" /> |
| | | <el-option label="塔吉克族" value="41" /> |
| | | <el-option label="怒族" value="42" /> |
| | | <el-option label="乌孜别克族" value="43" /> |
| | | <el-option label="俄罗斯族" value="44" /> |
| | | <el-option label="鄂温克族" value="45" /> |
| | | <el-option label="崩龙族" value="46" /> |
| | | <el-option label="保安族" value="47" /> |
| | | <el-option label="裕固族" value="48" /> |
| | | <el-option label="京族" value="49" /> |
| | | <el-option label="塔塔尔族" value="50" /> |
| | | <el-option label="独龙族" value="51" /> |
| | | <el-option label="鄂伦春" value="52" /> |
| | | <el-option label="郝哲族" value="53" /> |
| | | <el-option label="门巴族" value="54" /> |
| | | <el-option label="珞巴族" value="55" /> |
| | | <el-option label="基诺族" value="56" /> |
| | | <el-option label="其他族" value="91" /> |
| | | <el-option label="外国民族" value="98" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="婚姻状态" prop="marriage"> |
| | | <el-select v-model="empBaseInfoForm.marriage" placeholder="请选择婚姻状态"> |
| | | <el-option label="未婚" value="1" /> |
| | | <el-option label="已婚" value="2" /> |
| | | <el-option label="丧偶" value="3" /> |
| | | <el-option label="离婚" value="4" /> |
| | | <el-option label="再婚" value="5" /> |
| | | <el-option label="其它" value="9" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="身高(cm)" prop="stature"> |
| | | <el-input v-model="empBaseInfoForm.stature" /> |
| | | </el-form-item> |
| | | <el-form-item label="政治面貌" prop="politics"> |
| | | <el-select v-model="empBaseInfoForm.politics" placeholder="请选择政治面貌"> |
| | | <el-option label="中共党员" value="01" /> |
| | | <el-option label="预备党员" value="02" /> |
| | | <el-option label="共青团员" value="03" /> |
| | | <el-option label="民革会员" value="04" /> |
| | | <el-option label="民盟盟员" value="05" /> |
| | | <el-option label="民建会员" value="06" /> |
| | | <el-option label="民进会员" value="07" /> |
| | | <el-option label="农工党员" value="08" /> |
| | | <el-option label="致公党员" value="09" /> |
| | | <el-option label="九三社员" value="10" /> |
| | | <el-option label="台盟盟员" value="11" /> |
| | | <el-option label="民主人士" value="12" /> |
| | | <el-option label="群众" value="13" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="最高学历" prop="education"> |
| | | <el-select v-model="empBaseInfoForm.education" placeholder="请选择最高学历"> |
| | | <el-option label="博士" value="10" /> |
| | | <el-option label="硕士" value="11" /> |
| | | <el-option label="大学本科" value="21" /> |
| | | <el-option label="大学专科" value="31" /> |
| | | <el-option label="中专" value="41" /> |
| | | <el-option label="中技" value="42" /> |
| | | <el-option label="高中" value="61" /> |
| | | <el-option label="初中" value="71" /> |
| | | <el-option label="小学" value="81" /> |
| | | <el-option label="无学历" value="91" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="籍贯" prop="nativePlaceName"> |
| | | <el-autocomplete |
| | | v-model="empBaseInfoForm.nativePlaceName" |
| | | class="inline-input" |
| | | :fetch-suggestions="querySearch" |
| | | placeholder="请选择籍贯" |
| | | @select="placeNameSelect" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="现住址" prop="currentAddress"> |
| | | <el-input v-model="empBaseInfoForm.currentAddress" /> |
| | | </el-form-item> |
| | | <el-form-item label="电话号码" prop="telePhone"> |
| | | <el-input v-model="empBaseInfoForm.telePhone" /> |
| | | </el-form-item> |
| | | <el-form-item label="招聘介绍人" prop="introducer"> |
| | | <el-input v-model="empBaseInfoForm.introducer" /> |
| | | </el-form-item> |
| | | <el-form-item label="银行名称" prop="bankName"> |
| | | <el-input v-model="empBaseInfoForm.bankName" /> |
| | | </el-form-item> |
| | | <el-form-item label="保险类型" prop="insuranceType"> |
| | | <el-select v-model="empBaseInfoForm.insuranceType" placeholder="请选择保险类型"> |
| | | <el-option label="(深户)五险一档" value="1" /> |
| | | <el-option label="(非深户)五险一档" value="2" /> |
| | | <el-option label="(非深户)五险二档" value="3" /> |
| | | <el-option label="(非深户)五险三档" value="4" /> |
| | | <el-option label="(非深户)四险一档" value="5" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="家庭成员及关系" prop="family"> |
| | | <el-input v-model="empBaseInfoForm.family" /> |
| | | </el-form-item> |
| | | <el-form-item label="紧急联系电话" prop="urgencyPhone"> |
| | | <el-input v-model="empBaseInfoForm.urgencyPhone" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="姓名" prop="empName"> |
| | | <el-input v-model="empBaseInfoForm.empName" /> |
| | | </el-form-item> |
| | | <el-form-item label="部门(护卫点)" required message="请选择护卫点" prop="deptId"> |
| | | <treeselect |
| | | v-model="empBaseInfoForm.deptId" |
| | | :multiple="false" |
| | | :options="depts" |
| | | :clear-value-text="$t('common.clear')" |
| | | placeholder="请选择部门(护卫点)" |
| | | style="width:100%" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="岗位" prop="jobName"> |
| | | <el-autocomplete |
| | | v-model="empBaseInfoForm.jobName" |
| | | class="inline-input" |
| | | :fetch-suggestions="querySearchJob" |
| | | placeholder="请输入岗位" |
| | | @select="jobNameSelect" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="性别" prop="sex"> |
| | | <el-select v-model="empBaseInfoForm.sex" placeholder="请选择性别"> |
| | | <el-option label="男" value="1" /> |
| | | <el-option label="女" value="2" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="身份证有效期" prop="certificateValidity"> |
| | | <el-date-picker |
| | | v-model="empBaseInfoForm.certificateValidity" |
| | | type="date" |
| | | value-format="yyyy-MM-dd" |
| | | placeholder="选择日期" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="年龄" prop="age"> |
| | | <el-input v-model="empBaseInfoForm.age" /> |
| | | </el-form-item> |
| | | <el-form-item label="出生日期" prop="birthdate"> |
| | | <el-date-picker |
| | | v-model="empBaseInfoForm.birthdate" |
| | | type="date" |
| | | value-format="yyyy-MM-dd" |
| | | placeholder="选择日期" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="入职日期" prop="entryDate"> |
| | | <el-date-picker |
| | | v-model="empBaseInfoForm.entryDate" |
| | | type="date" |
| | | value-format="yyyy-MM-dd" |
| | | placeholder="选择日期" |
| | | @input="calculateSeniority" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="入司工龄" prop="seniority"> |
| | | <el-input v-model="empBaseInfoForm.seniority" /> |
| | | </el-form-item> |
| | | <el-form-item label="户籍地址" prop="censusAddress"> |
| | | <el-input v-model="empBaseInfoForm.censusAddress" /> |
| | | </el-form-item> |
| | | <el-form-item label="保安员证号" prop="guardNumb"> |
| | | <el-input v-model="empBaseInfoForm.guardNumb" /> |
| | | </el-form-item> |
| | | <el-form-item label="保安员回执" prop="returnReceipt"> |
| | | <el-input v-model="empBaseInfoForm.returnReceipt" /> |
| | | </el-form-item> |
| | | <el-form-item label="档案情况" prop="archivesStatus"> |
| | | <el-select v-model="empBaseInfoForm.archivesStatus" placeholder="请选择档案情况"> |
| | | <el-option label="未移交" value="0" /> |
| | | <el-option label="已移交" value="1" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="银行账号" prop="bankNumb"> |
| | | <el-input v-model="empBaseInfoForm.bankNumb" /> |
| | | </el-form-item> |
| | | <el-form-item label="社保电脑号" prop="socialNumb"> |
| | | <el-input v-model="empBaseInfoForm.socialNumb" /> |
| | | </el-form-item> |
| | | <el-form-item label="员工手册"> |
| | | <el-select v-model="empBaseInfoForm.handbookStatus" placeholder="请选择员工手册"> |
| | | <el-option label="未发" value="0" /> |
| | | <el-option label="已发" value="1" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="工作证" prop="empCardStatus"> |
| | | <el-select v-model="empBaseInfoForm.empCardStatus" placeholder="请选择工作证"> |
| | | <el-option label="未发" value="0" /> |
| | | <el-option label="已发" value="1" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="24"> |
| | | <el-form-item label="相关证件" prop="certificateList"> |
| | | <el-select v-model="empBaseInfoForm.certificateList" placeholder="请选择相关证件"> |
| | | <el-option label="高中毕业证" value="1" /> |
| | | <el-option label="专科毕业证" value="2" /> |
| | | <el-option label="本科毕业证" value="3" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | </el-form> |
| | | <el-dialog title="基本信息" :visible.sync="dialogShowXzyg" width="50%" class="baseinfo"> |
| | | <el-container> |
| | | <el-aside width="200px"> |
| | | <el-upload |
| | | class="avatar-uploader" |
| | | action="#" |
| | | :show-file-list="false" |
| | | :on-change="handlePictureCardPreview" |
| | | :auto-upload="false" |
| | | > |
| | | <div slot="tip" class="el-upload__tip">只能上传jpg/png文件,且不超过4MB</div> |
| | | <img v-if="empBaseInfoImageUrl" :src="empBaseInfoImageUrl" class="avatar"> |
| | | <i v-else class="el-icon-plus avatar-uploader-icon" /> |
| | | </el-upload> |
| | | </el-aside> |
| | | <el-main> |
| | | <el-form |
| | | ref="empBaseInfoForm" |
| | | :model="empBaseInfoForm" |
| | | :rules="rules" |
| | | label-position="right" |
| | | label-width="120px" |
| | | > |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="档案号" prop="archivesNumb"> |
| | | <el-input v-model="empBaseInfoForm.archivesNumb" /> |
| | | </el-form-item> |
| | | <el-form-item label="员工编号" prop="empNumb"> |
| | | <el-input v-model="empBaseInfoForm.empNumb" /> |
| | | </el-form-item> |
| | | <el-form-item label="身份证号码" prop="certificateNumb"> |
| | | <el-input |
| | | v-model="empBaseInfoForm.certificateNumb" |
| | | @input="generateUserInfo(0,empBaseInfoForm.certificateNumb)" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="员工类别" prop="empType"> |
| | | <el-select v-model="empBaseInfoForm.empType" placeholder="请选择员工类型"> |
| | | <el-option |
| | | v-for="dict in empTypeOptions" |
| | | :key="dict.dicItemCode" |
| | | :label="dict.dicItemName" |
| | | :value="dict.dicItemCode" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="民族" prop="nation"> |
| | | <el-select v-model="empBaseInfoForm.nation" filterable placeholder="请选择民族"> |
| | | <el-option |
| | | v-for="dict in nationOptions" |
| | | :key="dict.dicItemCode" |
| | | :label="dict.dicItemName" |
| | | :value="dict.dicItemCode" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="婚姻状态" prop="marriage"> |
| | | <el-select v-model="empBaseInfoForm.marriage" placeholder="请选择婚姻状态"> |
| | | <el-option |
| | | v-for="dict in marriageOptions" |
| | | :key="dict.dicItemCode" |
| | | :label="dict.dicItemName" |
| | | :value="dict.dicItemCode" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="身高(cm)" prop="stature"> |
| | | <el-input v-model="empBaseInfoForm.stature" /> |
| | | </el-form-item> |
| | | <el-form-item label="政治面貌" prop="politics"> |
| | | <el-select v-model="empBaseInfoForm.politics" placeholder="请选择政治面貌"> |
| | | <el-option |
| | | v-for="dict in statusOptions" |
| | | :key="dict.dicItemCode" |
| | | :label="dict.dicItemName" |
| | | :value="dict.dicItemCode" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="学历" prop="education"> |
| | | <el-select v-model="empBaseInfoForm.education" placeholder="请选择学历"> |
| | | <el-option |
| | | v-for="dict in educationOptions" |
| | | :key="dict.dicItemCode" |
| | | :label="dict.dicItemName" |
| | | :value="dict.dicItemCode" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="籍贯" prop="nativePlaceName"> |
| | | <el-autocomplete |
| | | v-model="empBaseInfoForm.nativePlaceName" |
| | | class="inline-input" |
| | | :fetch-suggestions="querySearch" |
| | | placeholder="请输入籍贯" |
| | | @select="placeNameSelect" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="现住址" prop="currentAddress"> |
| | | <el-input v-model="empBaseInfoForm.currentAddress" /> |
| | | </el-form-item> |
| | | <el-form-item label="电话号码" prop="telePhone"> |
| | | <el-input v-model="empBaseInfoForm.telePhone" /> |
| | | </el-form-item> |
| | | <el-form-item label="招聘介绍人" prop="introducer"> |
| | | <el-input v-model="empBaseInfoForm.introducer" /> |
| | | </el-form-item> |
| | | <el-form-item label="银行名称"> |
| | | <el-input v-model="empBaseInfoForm.bankName" /> |
| | | </el-form-item> |
| | | <el-form-item label="社保档位" prop="insuranceType"> |
| | | <el-select v-model="empBaseInfoForm.insuranceType" placeholder="请选择社保档位"> |
| | | <el-option |
| | | v-for="dict in insuranceTypeOptions" |
| | | :key="dict.dicItemCode" |
| | | :label="dict.dicItemName" |
| | | :value="dict.dicItemCode" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="家庭成员及关系" prop="family"> |
| | | <el-input v-model="empBaseInfoForm.family" /> |
| | | </el-form-item> |
| | | <el-form-item label="紧急联系电话" prop="urgencyPhone"> |
| | | <el-input v-model="empBaseInfoForm.urgencyPhone" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="姓名" prop="empName"> |
| | | <el-input v-model="empBaseInfoForm.empName" /> |
| | | </el-form-item> |
| | | <el-form-item label="部门(护卫点)" required message="请选择护卫点" prop="deptId"> |
| | | <treeselect |
| | | v-model="empBaseInfoForm.deptId" |
| | | :multiple="false" |
| | | :options="depts" |
| | | :clear-value-text="$t('common.clear')" |
| | | placeholder="请选择部门(护卫点)" |
| | | style="width:100%" |
| | | @select="empDeptNameSelect" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="岗位" prop="jobName"> |
| | | <el-autocomplete |
| | | v-model="empBaseInfoForm.jobName" |
| | | class="inline-input" |
| | | :fetch-suggestions="querySearchJob" |
| | | placeholder="请输入岗位" |
| | | @select="jobNameSelect" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="性别" prop="sex"> |
| | | <el-select v-model="empBaseInfoForm.sex" placeholder="请选择性别"> |
| | | <el-option |
| | | v-for="dict in sexOptions" |
| | | :key="dict.dicItemCode" |
| | | :label="dict.dicItemName" |
| | | :value="dict.dicItemCode" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="身份证有效期" prop="certificateValidity"> |
| | | <el-date-picker |
| | | v-model="empBaseInfoForm.certificateValidity" |
| | | type="date" |
| | | value-format="yyyy-MM-dd" |
| | | placeholder="选择日期" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="年龄" prop="age"> |
| | | <el-input v-model="empBaseInfoForm.age" /> |
| | | </el-form-item> |
| | | <el-form-item label="出生日期" prop="birthdate"> |
| | | <el-date-picker |
| | | v-model="empBaseInfoForm.birthdate" |
| | | type="date" |
| | | value-format="yyyy-MM-dd" |
| | | placeholder="选择日期" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="入职日期" prop="entryDate"> |
| | | <el-date-picker |
| | | v-model="empBaseInfoForm.entryDate" |
| | | type="date" |
| | | value-format="yyyy-MM-dd" |
| | | placeholder="选择日期" |
| | | @input="calculateSeniority" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="入司工龄" prop="seniority"> |
| | | <el-input v-model="empBaseInfoForm.seniority" /> |
| | | </el-form-item> |
| | | <el-form-item label="户籍地址" prop="censusAddress"> |
| | | <el-input v-model="empBaseInfoForm.censusAddress" /> |
| | | </el-form-item> |
| | | <el-form-item label="保安员证号" prop="guardNumb"> |
| | | <el-input v-model="empBaseInfoForm.guardNumb" /> |
| | | </el-form-item> |
| | | <el-form-item label="保安员回执" prop="returnReceipt"> |
| | | <el-input v-model="empBaseInfoForm.returnReceipt" /> |
| | | </el-form-item> |
| | | <el-form-item label="档案情况" prop="archivesStatus"> |
| | | <el-select v-model="empBaseInfoForm.archivesStatus" placeholder="请选择档案情况"> |
| | | <el-option |
| | | v-for="dict in archivesStatusOptions" |
| | | :key="dict.dicItemCode" |
| | | :label="dict.dicItemName" |
| | | :value="dict.dicItemCode" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="银行账号"> |
| | | <el-input v-model="empBaseInfoForm.bankNumb" /> |
| | | </el-form-item> |
| | | <el-form-item label="社保电脑号" prop="socialNumb"> |
| | | <el-input v-model="empBaseInfoForm.socialNumb" /> |
| | | </el-form-item> |
| | | <el-form-item label="员工手册" prop="handbookStatus"> |
| | | <el-select v-model="empBaseInfoForm.handbookStatus" placeholder="请选择员工手册"> |
| | | <el-option |
| | | v-for="dict in handbookStatusOptions" |
| | | :key="dict.dicItemCode" |
| | | :label="dict.dicItemName" |
| | | :value="dict.dicItemCode" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="工作证" prop="empCardStatus"> |
| | | <el-select v-model="empBaseInfoForm.empCardStatus" placeholder="请选择工作证"> |
| | | <el-option |
| | | v-for="dict in empCardStatusOptions" |
| | | :key="dict.dicItemCode" |
| | | :label="dict.dicItemName" |
| | | :value="dict.dicItemCode" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="24"> |
| | | <el-form-item label="相关证件" prop="certificateList"> |
| | | <el-select v-model="empBaseInfoForm.certificateList" multiple placeholder="请选择相关证件"> |
| | | <el-option |
| | | v-for="dict in certificateListOptions" |
| | | :key="dict.dicItemCode" |
| | | :label="dict.dicItemName" |
| | | :value="dict.dicItemCode" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | </el-form> |
| | | </el-main> |
| | | </el-container> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button type="primary" @click="putEmpBase('empBaseInfoForm')">保 存</el-button> |
| | | <el-button type="primary" @click="putEmpBaseContinue('empBaseInfoForm')">保存并继续新增</el-button> |
| | |
| | | </el-form-item> |
| | | <el-form-item label="调岗类型" prop="changeType"> |
| | | <el-select v-model="ygdgForm.changeType" placeholder="请选择"> |
| | | <el-option label="升职" value="2" /> |
| | | <el-option label="调动" value="3" /> |
| | | <el-option |
| | | v-for="dict in changeTypeOptions" |
| | | :key="dict.dicItemCode" |
| | | :label="dict.dicItemName" |
| | | :value="dict.dicItemCode" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="调岗日期" prop="changeDate"> |
| | |
| | | <el-upload |
| | | ref="upload" |
| | | class="upload-demo" |
| | | action="http://120.24.23.155:8301/hr/empBaseInfo/importEmp" |
| | | action="http://127.0.0.1:8301/hr/empBaseInfo/importEmp" |
| | | accept=".xls, .xlsx, .excel" |
| | | :headers="headers()" |
| | | :file-list="fileList" |
| | |
| | | <el-col span="24"> |
| | | <el-form-item label="离职类型" prop="dimissionType"> |
| | | <el-radio-group v-model="gbdaForm.dimissionType" @change="changeDimissionType"> |
| | | <el-radio :label="1">正常离职</el-radio> |
| | | <el-radio :label="2">自动离职</el-radio> |
| | | <el-radio :label="3">公司劝退</el-radio> |
| | | <el-radio :label="4">公司辞退</el-radio> |
| | | <el-radio :label="1">合同期满</el-radio> |
| | | <el-radio :label="2">公司劝退</el-radio> |
| | | <el-radio :label="3">公司辞退</el-radio> |
| | | <el-radio :label="4">自动离职</el-radio> |
| | | <el-radio :label="5">试用期内</el-radio> |
| | | <el-radio :label="6">正常离职</el-radio> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col v-if="selectDimissionType === 2" span="12"> |
| | | <el-col v-if="selectDimissionType === 4" span="12"> |
| | | <el-form-item label="自离天数" prop="selfLeaveDay"> |
| | | <el-input v-model="gbdaForm.selfLeaveDay" onkeyup="value=value.replace(/[^0-9.]/g,'')" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col v-if="selectDimissionType === 2" span="12"> |
| | | <el-col v-if="selectDimissionType === 4" span="12"> |
| | | <el-form-item label="报告人" prop="reporter"> |
| | | <el-input v-model="gbdaForm.reporter" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col span="24"> |
| | | <el-form-item label="离职操作" prop="afterOperation"> |
| | | <el-checkbox-group v-model="gbdaForm.afterOperation"> |
| | | <el-checkbox label="1">解除劳动合同</el-checkbox> |
| | | <el-checkbox label="2">禁用登录账号</el-checkbox> |
| | | </el-checkbox-group> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col span="24"> |
| | |
| | | <el-button type="primary" @click="showGbda(2,'gbdaForm')">确 定</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | <el-dialog title="导出员工 请勾选需要导出的字段" :visible.sync="dialogShowDcyg" width="40%"> |
| | | <el-dialog title="导出员工" :visible.sync="dialogShowDcyg" width="40%"> |
| | | <div style="font-size: 16px;font-weight: 400;height: 35px;margin-top: -30px;color: #409EFF;">请勾选需要导出的字段</div> |
| | | <table id="dcygTable" width="100%"> |
| | | <tr> |
| | | <td colspan="6" style="text-align: left;"> |
| | |
| | | <tr> |
| | | <td>部门(护卫点)</td> |
| | | <td> |
| | | <el-checkbox label="deptName"><span /></el-checkbox> |
| | | <el-checkbox label="allDeptName"><span /></el-checkbox> |
| | | </td> |
| | | <td>所属岗位</td> |
| | | <td> |
| | |
| | | <td> |
| | | <el-checkbox label="birthdate"><span /></el-checkbox> |
| | | </td> |
| | | <td>最高学历</td> |
| | | <td>学历</td> |
| | | <td> |
| | | <el-checkbox label="educationName"><span /></el-checkbox> |
| | | </td> |
| | |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td>家庭成员及关系</td> |
| | | <td> |
| | | <el-checkbox label="family"><span /></el-checkbox> |
| | | </td> |
| | | <td>员工状态</td> |
| | | <td> |
| | | <el-checkbox label="empStatusName"><span /></el-checkbox> |
| | | </td> |
| | | <td>离职日期</td> |
| | | <td> |
| | | <el-checkbox label="dimissionDate"><span /></el-checkbox> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td>入职日期</td> |
| | | <td> |
| | | <el-checkbox label="entryDate"><span /></el-checkbox> |
| | | </td> |
| | | <td>保险类型</td> |
| | | <td>社保档位</td> |
| | | <td> |
| | | <el-checkbox label="InsuranceTypeName"><span /></el-checkbox> |
| | | <el-checkbox label="insuranceTypeName"><span /></el-checkbox> |
| | | </td> |
| | | <td>社保电脑号</td> |
| | | <td> |
| | |
| | | </td> |
| | | <td>工作证</td> |
| | | <td> |
| | | <el-checkbox label="empCardStatus"><span /></el-checkbox> |
| | | <el-checkbox label="empCardStatusName"><span /></el-checkbox> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td>相关证件</td> |
| | | <td> |
| | | <el-checkbox label="certificateList"><span /></el-checkbox> |
| | | <el-checkbox label="certificateListName"><span /></el-checkbox> |
| | | </td> |
| | | <td>紧急联系电话</td> |
| | | <td> |
| | |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td>家庭成员及关系</td> |
| | | <td>入职类型</td> |
| | | <td> |
| | | <el-checkbox label="family"><span /></el-checkbox> |
| | | <el-checkbox label="entryTypeName"><span /></el-checkbox> |
| | | </td> |
| | | <td /> |
| | | <td /> |
| | | <td /> |
| | | <td /> |
| | | <td>离职类型</td> |
| | | <td> |
| | | <el-checkbox label="dimissionTypeName"><span /></el-checkbox> |
| | | </td> |
| | | <td>编号</td> |
| | | <td> |
| | | <el-checkbox label="empNumb"><span /></el-checkbox> |
| | | </td> |
| | | </tr> |
| | | <!-- <tr>--> |
| | | <!-- <td>家庭成员及关系</td>--> |
| | | <!-- <td>--> |
| | | <!-- <el-checkbox label="family"><span /></el-checkbox>--> |
| | | <!-- </td>--> |
| | | <!-- <td />--> |
| | | <!-- <td />--> |
| | | <!-- <td />--> |
| | | <!-- <td />--> |
| | | <!-- </tr>--> |
| | | </el-checkbox-group> |
| | | </table> |
| | | <div slot="footer" class="dialog-footer"> |
| | |
| | | :dialog-visible="dialog.isVisible" |
| | | :title="dialog.title" |
| | | :type="dialog.type" |
| | | @success="editSuccess" |
| | | @close="editClose" |
| | | /> |
| | | <el-dialog title="打开档案" :visible.sync="dialogShowDkda" width="50%"> |
| | | <el-form |
| | | ref="openArchivesForm" |
| | | :model="openArchivesForm" |
| | | rules="openArchivesRules" |
| | | label-position="right" |
| | | label-width="120px" |
| | | > |
| | | <el-row> |
| | | <el-col span="24"> |
| | | <el-form-item label="打开类型" prop="region"> |
| | | <el-radio-group v-model="openArchivesForm.openType"> |
| | | <el-radio :label="20">重新入职</el-radio> |
| | | <el-radio :label="21">返聘</el-radio> |
| | | </el-radio-group> |
| | | (主要对已退休员工返聘) |
| | | </el-form-item> |
| | | <el-form-item label="打开日期"> |
| | | <el-date-picker |
| | | v-model="openArchivesForm.openDate" |
| | | value-format="yyyy-MM-dd" |
| | | type="date" |
| | | placeholder="选择打开日期" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="备注说明"> |
| | | <el-input v-model="openArchivesForm.remark" type="textarea" :rows="4" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | </el-form> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button @click="showDkda(1, '')">取 消</el-button> |
| | | <el-button type="primary" @click="showDkda(2, 'openArchivesForm')">确 定</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | <script> |
| | |
| | | import Pagination from '@/components/Pagination' |
| | | import Treeselect from '@riophae/vue-treeselect' |
| | | import '@riophae/vue-treeselect/dist/vue-treeselect.css' |
| | | import { calculateSeniority, toCardGetUserInfo } from '@/utils/myUtil' |
| | | import { calculateSeniority, toCardGetUserInfo, dateToString } from '@/utils/myUtil' |
| | | import ArchivesEdit from './archivesEdit' |
| | | import { pages } from '@/settings' |
| | | |
| | | export default { |
| | | components: { |
| | |
| | | }, |
| | | total: 0, // 总数量 |
| | | queryParams: { |
| | | baseKey: '', |
| | | empNumb: '', |
| | | vague: '', |
| | | sex: [], |
| | |
| | | ageStr: [], |
| | | archivesStatus: [], |
| | | insuranceType: [], |
| | | empStatus: [] |
| | | empStatus: [], |
| | | empCardStatus: [], |
| | | handbookStatus: [], |
| | | entryType: [], |
| | | empType: [], |
| | | certificateList: [] |
| | | }, // 查询参数 |
| | | sort: {}, // 排序 |
| | | pagination: { // 分页参数 |
| | | size: 10, |
| | | size: 15, |
| | | num: 1 |
| | | }, |
| | | baseicInformationForm: { |
| | | }, |
| | | baseicInformationForm: {}, |
| | | empBaseInfoImageUrl: '', |
| | | empBaseInfoForm: { |
| | | imagePath: '', |
| | | empId: '', |
| | | customerId: '', |
| | | archivesNumb: '', |
| | | deptId: '', |
| | | deptId: null, |
| | | deptName: '', |
| | | empNumb: '', |
| | | allDeptName: '', |
| | | empName: '', |
| | | sex: '1', |
| | | JobId: '', |
| | | jobName: '', |
| | | empType: '1', |
| | | empType: '01', |
| | | certificateType: '', |
| | | certificateNumb: '', |
| | | nation: '01', |
| | |
| | | birthdate: '', |
| | | politics: '13', |
| | | entryDate: '', |
| | | education: '61', |
| | | education: '17', |
| | | seniority: '', |
| | | nativePlace: '', |
| | | nativePlaceName: '', |
| | |
| | | modifier: '', |
| | | delFlag: '0', |
| | | empStatus: 0, |
| | | version: '' |
| | | version: '', |
| | | entryType: '20' |
| | | }, |
| | | ygdgForm: {}, |
| | | ygdgForm: { |
| | | empIds: [], |
| | | empNames: [], |
| | | oldDeptNames: [], |
| | | oldJobNames: [], |
| | | changeType: '', |
| | | changeDate: '', |
| | | changeReason: '', |
| | | jobId: '', |
| | | newJobName: '', |
| | | deptId: '', |
| | | newDeptName: '', |
| | | allDeptName: '' |
| | | }, |
| | | gbdaForm: { |
| | | dgryIds: '', |
| | | dimissionType: '1', |
| | | dimissionType: 1, |
| | | dimissionDate: new Date(), |
| | | remark: '' |
| | | remark: '', |
| | | afterOperation: [] |
| | | }, |
| | | depts: [], |
| | | fileList: [], |
| | | empBaseInfoRules: { |
| | | rules: { |
| | | archivesNumb: [{ required: true, message: '请输入档案号', trigger: 'blur' }, { |
| | | max: 20, |
| | | message: this.$t('rules.noMoreThan20'), |
| | | trigger: 'blur' |
| | | }], |
| | | empName: [{ required: true, message: '请输入员工姓名', trigger: 'blur' }, |
| | | { min: 2, max: 32, message: '长度不超过32个字符', trigger: 'blur' }], |
| | | empName: [{ required: true, message: '请输入姓名', trigger: 'blur' }, |
| | | { min: 2, max: 50, message: this.$t('rules.noMoreThan50'), trigger: 'blur' }], |
| | | empNumb: [{ required: true, message: '请输入员工编号', trigger: 'blur' }, |
| | | { min: 2, max: 20, message: this.$t('rules.noMoreThan20'), trigger: 'blur' }], |
| | | deptName: [ |
| | | { required: true, message: '请选择护卫点', trigger: 'input' } |
| | | ], |
| | | certificateNumb: [{ required: true, message: '请输入身份证号', trigger: 'blur' }, { |
| | | min: 15, |
| | | max: 18, |
| | | message: '身份证长度为15-18位', |
| | | trigger: 'blur' |
| | | }], |
| | | certificateNumb: [{ required: true, message: '请输入身份证号', trigger: 'blur' }], |
| | | jobName: [{ required: true, message: '请选择岗位', trigger: 'change' }], |
| | | nativePlaceName: [{ required: true, message: '请选择籍贯', trigger: 'change' }], |
| | | bankName: [{ required: true, message: '请输入银行名称', trigger: 'blur' }, { |
| | |
| | | message: '长度不超过36个字符', |
| | | trigger: 'blur' |
| | | }], |
| | | insuranceType: [{ required: true, message: '请选择保险类型', trigger: 'change' }], |
| | | insuranceType: [{ required: true, message: '请选择社保档位', trigger: 'change' }], |
| | | entryDate: [{ required: true, message: '请选择入职日期', trigger: 'change' }], |
| | | seniority: [{ required: true, message: '请输入入司工龄', trigger: 'blur' }], |
| | | archivesStatus: [{ required: true, message: '请选择档案情况', trigger: 'change' }], |
| | |
| | | dialogShowYgdg: false, |
| | | dialogShowDryg: false, |
| | | dialogShowGbda: false, |
| | | dialogShowDkda: false, |
| | | exportUrl: '', |
| | | checkAll: false, |
| | | isIndeterminate: false, |
| | | cityOptions: ['archivesNumb', 'deptName', 'jobName', 'empName', 'certificateNumb', 'certificateValidity', 'sexName', 'nationName', 'age', 'marriageName', 'stature', 'birthdate', 'politicsName', 'empTypeName', 'educationName', 'nativePlaceName', 'censusAddress', 'currentAddress', 'guardNumb', 'returnReceipt', 'archivesStatusName', 'bankName', 'bankNumb', 'telePhone', 'entryDate', 'InsuranceTypeName', 'socialNumb', 'introducer', 'seniority', 'empCardStatus', 'certificateList', 'urgencyPhone', 'handbookStatusName', 'family'], |
| | | cityOptions: ['archivesNumb', 'allDeptName', 'jobName', 'empName', 'certificateNumb', 'certificateValidity', 'sexName', 'nationName', 'age', 'marriageName', 'stature', 'birthdate', 'politicsName', 'empTypeName', 'educationName', 'nativePlaceName', 'censusAddress', 'currentAddress', 'guardNumb', 'returnReceipt', 'archivesStatusName', 'bankName', 'bankNumb', 'telePhone', 'entryDate', 'insuranceTypeName', 'socialNumb', 'introducer', 'seniority', 'empCardStatusName', 'certificateListName', 'urgencyPhone', 'handbookStatusName', 'family', 'empStatusName', 'dimissionDate', 'entryTypeName', 'dimissionTypeName', 'empNumb'], |
| | | checkedCities: [], |
| | | tableData: [], |
| | | selectDimissionType: 1 |
| | | selectDimissionType: 1, |
| | | statusOptions: [], |
| | | empTypeOptions: [], |
| | | inTypeOptions: [], |
| | | nationOptions: [], |
| | | marriageOptions: [], |
| | | educationOptions: [], |
| | | nativePlaceOptions: [], |
| | | archivesStatusOptions: [], |
| | | insuranceTypeOptions: [], |
| | | empCardStatusOptions: [], |
| | | handbookStatusOptions: [], |
| | | ecgOptions: [], |
| | | certificateListOptions: [], |
| | | physicalExamTypeOptions: [], |
| | | contractStatusOptions: [], |
| | | leaveTypeOptions: [], |
| | | insuranceGaersOptions: [], |
| | | applayStatusOptions: [], |
| | | reportStatusOptions: [], |
| | | hospitalizatioFlagOptions: [], |
| | | settleStatusOptions: [], |
| | | arbitrationTypeOptions: [], |
| | | changeTypeOptions: [], |
| | | dimissionTypeOptions: [], |
| | | ageStrOptions: [], |
| | | sexOptions: [], |
| | | openArchivesForm: { } |
| | | } |
| | | }, |
| | | mounted() { |
| | | this.fetch() |
| | | this.initDept() |
| | | this.getDicts('ageStr').then(response => { |
| | | this.ageStrOptions = response.data |
| | | }) |
| | | this.getDicts('PLITICAL').then(response => { |
| | | this.statusOptions = response.data |
| | | }) |
| | | this.getDicts('sex').then(response => { |
| | | this.sexOptions = response.data |
| | | }) |
| | | this.getDicts('empType').then(response => { |
| | | this.empTypeOptions = response.data |
| | | }) |
| | | this.getDicts('NATION').then(response => { |
| | | this.nationOptions = response.data |
| | | }) |
| | | this.getDicts('MARRIAGE').then(response => { |
| | | this.marriageOptions = response.data |
| | | }) |
| | | this.getDicts('EDUCATION').then(response => { |
| | | this.educationOptions = response.data |
| | | }) |
| | | this.getDicts('NATIVEPLACE').then(response => { |
| | | this.nativePlaceOptions = response.data |
| | | }) |
| | | this.getDicts('archivesStatus').then(response => { |
| | | this.archivesStatusOptions = response.data |
| | | }) |
| | | this.getDicts('INSURANCETYPE').then(response => { |
| | | this.insuranceTypeOptions = response.data |
| | | }) |
| | | this.getDicts('empCardStatus').then(response => { |
| | | this.empCardStatusOptions = response.data |
| | | }) |
| | | this.getDicts('handbookStatus').then(response => { |
| | | this.handbookStatusOptions = response.data |
| | | }) |
| | | this.getDicts('certificateList').then(response => { |
| | | this.certificateListOptions = response.data |
| | | }) |
| | | this.getDicts('PHYSICALEXAMTYPE').then(response => { |
| | | this.physicalExamTypeOptions = response.data |
| | | }) |
| | | this.getDicts('ECG').then(response => { |
| | | this.ecgOptions = response.data |
| | | }) |
| | | this.getDicts('CONTRACTSTATUS').then(response => { |
| | | this.contractStatusOptions = response.data |
| | | }) |
| | | this.getDicts('LEAVETYPE').then(response => { |
| | | this.leaveTypeOptions = response.data |
| | | }) |
| | | this.getDicts('INSURANCETYPE').then(response => { |
| | | this.insuranceGaersOptions = response.data |
| | | }) |
| | | this.getDicts('applayStatus').then(response => { |
| | | this.applayStatusOptions = response.data |
| | | }) |
| | | this.getDicts('reportStatus').then(response => { |
| | | this.reportStatusOptions = response.data |
| | | }) |
| | | this.getDicts('hospitalizatioFlag').then(response => { |
| | | this.hospitalizatioFlagOptions = response.data |
| | | }) |
| | | this.getDicts('settleStatus').then(response => { |
| | | this.settleStatusOptions = response.data |
| | | }) |
| | | this.getDicts('ZCTYPE').then(response => { |
| | | this.arbitrationTypeOptions = response.data |
| | | }) |
| | | this.getDicts('changeType').then(response => { |
| | | this.changeTypeOptions = response.data |
| | | }) |
| | | this.getDicts('LZTYPE').then(response => { |
| | | this.dimissionTypeOptions = response.data |
| | | }) |
| | | this.initJob() |
| | | }, |
| | | methods: { |
| | | exportExcel() { |
| | | this.queryParams.baseKey = this.queryParams.vague |
| | | this.queryParams.delFlag = 0 |
| | | this.queryParams.empStatus = 0 |
| | | var params = this.queryParams |
| | | this.$download('hr/empBaseInfo/exportEmpAll', { ...params }, `基本信息_${new Date().getTime()}.xls`).then(() => { |
| | | this.$message({ |
| | | message: '下载成功!', |
| | | type: 'success' |
| | | }) |
| | | }) |
| | | }, |
| | | editArchives(row) { |
| | | this.$refs.article.setArchives(row) |
| | | this.dialog.title = '档案管理' |
| | | this.dialog.title = row.empName + '员工档案' |
| | | this.dialog.isVisible = true |
| | | }, |
| | | editClose() { |
| | |
| | | ageStr: [], |
| | | archivesStatus: [], |
| | | insuranceType: [], |
| | | empStatus: [] |
| | | empStatus: [], |
| | | empCardStatus: [], |
| | | handbookStatus: [], |
| | | baseKey: '', |
| | | empType: [], |
| | | entryType: [], |
| | | certificateList: [] |
| | | } |
| | | this.search() |
| | | }, |
| | | initJob() { |
| | | this.$get('system/position/dicJob').then((r) => { |
| | | this.restaurJob = r.data.data |
| | | }) |
| | | }, |
| | | // 翻页方法 |
| | | search() { |
| | | this.queryParams.baseKey = '' |
| | | this.fetch({ |
| | | ...this.queryParams, |
| | | ...this.sort |
| | |
| | | }, |
| | | vagueSearch() { |
| | | this.fetch({ |
| | | empNumb: this.queryParams.vague, |
| | | empName: this.queryParams.vague, |
| | | deptName: this.queryParams.vague |
| | | baseKey: this.queryParams.baseKey |
| | | }) |
| | | }, |
| | | transEmpStatus(empStatus) { |
| | |
| | | case '2': |
| | | return '退休' |
| | | } |
| | | }, |
| | | transEntryType(entryType) { |
| | | switch (entryType) { |
| | | case '20': |
| | | return '新入职' |
| | | case '21': |
| | | return '重新入职' |
| | | case '22': |
| | | return '返聘入职' |
| | | } |
| | | }, |
| | | typeFormat(row, column) { |
| | | return this.selectDictLabel(this.physicalExamTypeOptions, row.physicalExamType) |
| | | }, |
| | | empTypeFormat(row, column) { |
| | | return this.selectDictLabel(this.empTypeOptions, row.empType) |
| | | }, |
| | | sexFormat(row, column) { |
| | | return this.selectDictLabel(this.sexOptions, row.sex) |
| | | }, |
| | | nationFormat(row, column) { |
| | | return this.selectDictLabel(this.nationOptions, row.nation) |
| | | }, |
| | | marriageFormat(row, column) { |
| | | return this.selectDictLabel(this.marriageOptions, row.marriage) |
| | | }, |
| | | politicsFormat(row, column) { |
| | | return this.selectDictLabel(this.statusOptions, row.politics) |
| | | }, |
| | | educationFormat(row, column) { |
| | | return this.selectDictLabel(this.educationOptions, row.education) |
| | | }, |
| | | nativePlaceFormat(row, column) { |
| | | return this.selectDictLabel(this.nativePlaceOptions, row.nativePlace) |
| | | }, |
| | | insuranceTypeFormat(row, column) { |
| | | return this.selectDictLabel(this.insuranceTypeOptions, row.insuranceType) |
| | | }, |
| | | ecgNameFormat(row, column) { |
| | | return this.selectDictLabel(this.ecgOptions, row.ecg) |
| | | }, |
| | | contractStatusFormat(row, column) { |
| | | return this.selectDictLabel(this.contractStatusOptions, row.contractStatus) |
| | | }, |
| | | changeTypeFormat(row, column) { |
| | | return this.selectDictLabel(this.changeTypeOptions, row.changeType) |
| | | }, |
| | | leaveTypeFormat(row, column) { |
| | | return this.selectDictLabel(this.leaveTypeOptions, row.leaveType) |
| | | }, |
| | | dimissionTypeFormat(row, column) { |
| | | return this.selectDictLabel(this.dimissionTypeOptions, row.dimissionType) |
| | | }, |
| | | insuranceGaersFormat(row, column) { |
| | | return this.selectDictLabel(this.insuranceGaersOptions, row.insuranceGaers) |
| | | }, |
| | | reportStatusFormat(row, column) { |
| | | return this.selectDictLabel(this.reportStatusOptions, row.reportStatus) |
| | | }, |
| | | applayStatusFormat(row, column) { |
| | | return this.selectDictLabel(this.applayStatusOptions, row.applayStatus) |
| | | }, |
| | | hospitalizatioFlagFormat(row, column) { |
| | | return this.selectDictLabel(this.hospitalizatioFlagOptions, row.hospitalizatioFlag) |
| | | }, |
| | | arbitrationTypeFormat(row, column) { |
| | | return this.selectDictLabel(this.arbitrationTypeOptions, row.arbitrationType) |
| | | }, |
| | | arbitrationStatusFormat(row, column) { |
| | | return this.selectDictLabel(this.settleStatusOptions, row.arbitrationStatus) |
| | | }, |
| | | initDept() { |
| | | this.$get('system/dept').then((r) => { |
| | |
| | | this.headerHeight = '30px' |
| | | this.advancedQueryShow = false |
| | | } else { |
| | | this.headerHeight = '330px' |
| | | this.headerHeight = 'auto' |
| | | this.advancedQueryShow = true |
| | | } |
| | | }, |
| | | calculateSeniority(val) { |
| | | this.empBaseInfoForm.seniority = calculateSeniority(val) |
| | | }, |
| | | // 获取图片的Blob值 |
| | | getImageBlob(url, cb) { |
| | | var xhr = new XMLHttpRequest() |
| | | xhr.open('get', url, true) |
| | | xhr.responseType = 'blob' |
| | | xhr.onload = function() { |
| | | if (this.status === 200) { |
| | | if (cb) cb(this.response) |
| | | } |
| | | } |
| | | xhr.send() |
| | | }, |
| | | preView(url) { |
| | | var this_ = this |
| | | const reader = new FileReader() |
| | | this.getImageBlob(url, function(blob) { |
| | | reader.readAsDataURL(blob) |
| | | }) |
| | | reader.onload = function(e) { |
| | | // 获取bolb里面数据时,生成预览 |
| | | var img = document.createElement('img') |
| | | img.src = e.target.result |
| | | this_.empBaseInfoForm.imagePath = e.target.result |
| | | } |
| | | }, |
| | | // 图片预览 |
| | | handlePictureCardPreview(file) { |
| | | this.empBaseInfoImageUrl = URL.createObjectURL(file.raw) // 获取URL |
| | | // 判断图片大小 |
| | | if (file.size < 4400000) { |
| | | // 判断图片格式是否为jpg,png,jepg,gif |
| | | var fileName = file.name |
| | | // var suffixIndex=fileName.lastIndexOf(".") |
| | | // var suffix=fileName.substring(suffixIndex+1).toUpperCase() |
| | | var suffix = fileName.substring(fileName.lastIndexOf('.') + 1).toUpperCase() |
| | | if (suffix === 'JPG' || suffix === 'PNG') { |
| | | this.preView(this.empBaseInfoImageUrl) |
| | | } else { |
| | | this.$message.error('只能上传jpg/png文件,且不超过4MB,请重新上传!') |
| | | } |
| | | } else { |
| | | this.$message.error('图片大小超过4M,请重新上传') |
| | | } |
| | | }, |
| | | cleanEmpBase() { |
| | | this.empBaseInfoForm.empId = '' |
| | |
| | | this.empBaseInfoForm.archivesStatus = '' |
| | | this.empBaseInfoForm.bankName = '' |
| | | this.empBaseInfoForm.bankNumb = '' |
| | | this.empBaseInfoForm.InsuranceType = '' |
| | | this.empBaseInfoForm.insuranceType = '' |
| | | this.empBaseInfoForm.socialNumb = '' |
| | | this.empBaseInfoForm.family = '' |
| | | this.empBaseInfoForm.handbookStatus = '' |
| | |
| | | this.empBaseInfoForm.modifier = '' |
| | | this.empBaseInfoForm.delFlag = '' |
| | | this.empBaseInfoForm.version = '' |
| | | this.empBaseInfoForm.imagePath = '' |
| | | this.empBaseInfoImageUrl = '' |
| | | }, |
| | | editEmpBase(row) { |
| | | console.log(row) |
| | | this.isAdd = false |
| | | this.empBaseInfoForm.empId = row.empId |
| | | this.empBaseInfoForm.customerId = row.customerId |
| | |
| | | this.empBaseInfoForm.deptName = row.deptName |
| | | this.empBaseInfoForm.empNumb = row.empNumb |
| | | this.empBaseInfoForm.empName = row.empName |
| | | this.empBaseInfoForm.sex = row.sex |
| | | this.empBaseInfoForm.JobId = row.JobId |
| | | this.empBaseInfoForm.jobName = row.jobName |
| | | this.empBaseInfoForm.empType = row.empType |
| | | this.empBaseInfoForm.certificateType = row.certificateType |
| | | this.empBaseInfoForm.certificateNumb = row.certificateNumb |
| | | this.empBaseInfoForm.nation = row.nation |
| | | this.empBaseInfoForm.certificateValidity = row.certificateValidity |
| | | this.empBaseInfoForm.marriage = row.marriage |
| | | this.empBaseInfoForm.age = row.age |
| | | this.empBaseInfoForm.certificateNumb = row.certificateNumb |
| | | if (!row.birthdate) { |
| | | var userinfo = toCardGetUserInfo(this.empBaseInfoForm.certificateNumb) |
| | | if (userinfo !== null) { |
| | | this.empBaseInfoForm.age = userinfo.age |
| | | this.empBaseInfoForm.birthdate = userinfo.birth |
| | | this.empBaseInfoForm.sex = userinfo.sex |
| | | } |
| | | } else { |
| | | this.empBaseInfoForm.age = row.age |
| | | this.empBaseInfoForm.birthdate = row.birthdate |
| | | this.empBaseInfoForm.sex = row.sex |
| | | } |
| | | this.empBaseInfoForm.stature = row.stature |
| | | this.empBaseInfoForm.birthdate = row.birthdate |
| | | this.empBaseInfoForm.politics = row.politics |
| | | this.empBaseInfoForm.entryDate = row.entryDate |
| | | this.empBaseInfoForm.education = row.education |
| | |
| | | this.empBaseInfoForm.handbookStatus = row.handbookStatus |
| | | this.empBaseInfoForm.urgencyPhone = row.urgencyPhone |
| | | this.empBaseInfoForm.empCardStatus = row.empCardStatus |
| | | let certificateList = [] |
| | | if (row.certificateList && typeof row.certificateList === 'string') { |
| | | certificateList = row.certificateList.split(',') |
| | | row.certificateList = certificateList |
| | | } |
| | | this.empBaseInfoForm.certificateList = row.certificateList |
| | | this.empBaseInfoForm.createTime = row.createTime |
| | | this.empBaseInfoForm.creator = row.creator |
| | |
| | | this.empBaseInfoForm.modifier = row.modifier |
| | | this.empBaseInfoForm.delFlag = row.delFlag |
| | | this.empBaseInfoForm.version = row.version |
| | | // this.empBaseInfoImageUrl = '' |
| | | this.empBaseInfoImageUrl = pages.getEmpBaseInfoImage + row.empId + '?t=' + parseInt(100 * Math.random()) |
| | | this.showXzyg(1) |
| | | }, |
| | | putEmpBase(formName) { |
| | | this.$refs[formName].validate((valid) => { |
| | | if (valid) { |
| | | if (this.isAdd) { |
| | | this.$post('hr/empBaseInfo', { ...this.empBaseInfoForm }).then(() => { |
| | | this.buttonLoading = false |
| | | this.$message({ |
| | | message: this.$t('tips.createSuccess'), |
| | | type: 'success' |
| | | }) |
| | | this.cleanEmpBase() |
| | | }) |
| | | } else { |
| | | this.$put('hr/empBaseInfo', { ...this.empBaseInfoForm }).then(() => { |
| | | this.$message({ |
| | | message: this.$t('tips.updateSuccess'), |
| | | type: 'success' |
| | | }) |
| | | this.$emit('success') |
| | | this.cleanEmpBase() |
| | | }) |
| | | } |
| | | this.submitEmpInfo() |
| | | this.fetch({ |
| | | ...this.queryParams, |
| | | ...this.sort |
| | |
| | | putEmpBaseContinue(formName) { |
| | | this.$refs[formName].validate((valid) => { |
| | | if (valid) { |
| | | if (this.isAdd) { |
| | | this.$post('hr/empBaseInfo', { ...this.empBaseInfoForm }).then(() => { |
| | | this.buttonLoading = false |
| | | this.$message({ |
| | | message: this.$t('tips.createSuccess'), |
| | | type: 'success' |
| | | }) |
| | | this.cleanEmpBase() |
| | | }) |
| | | } |
| | | this.submitEmpInfo() |
| | | this.cleanEmpBase() |
| | | this.fetch({ |
| | | ...this.queryParams, |
| | |
| | | }, |
| | | showXzyg(val) { |
| | | if (val === 0) { |
| | | // this.cleanEmpBase() |
| | | this.isAdd = true |
| | | } |
| | | if (!this.dialogShowXzyg) { |
| | |
| | | break |
| | | case 2: |
| | | var params = this.queryParams |
| | | params.empStatus = '0' |
| | | params.exportField = this.checkedCities.join(',') |
| | | this.$download('hr/empBaseInfo/exportWithField', { ...params }, '在职员工列表.xls').then(() => { |
| | | this.$message({ |
| | |
| | | }) |
| | | break |
| | | } |
| | | }, |
| | | editSuccess() { |
| | | this.search() |
| | | }, |
| | | showYgdg(operate, formName) { |
| | | switch (operate) { |
| | |
| | | var data = selection[i] |
| | | ids.push(data.empId) |
| | | names.push(data.empName) |
| | | deptNames.push(data.deptName) |
| | | deptNames.push(data.allDeptName) |
| | | jobNames.push(data.jobName) |
| | | } |
| | | this.ygdgForm = { |
| | |
| | | this.empBaseInfoForm.nativePlace = item.code |
| | | }, |
| | | deptNameSelect(node) { |
| | | this.ygdgForm.deptId = node.deptId |
| | | this.ygdgForm.newDeptName = node.label |
| | | this.ygdgForm.allDeptName = node.allDeptName |
| | | }, |
| | | querySearchJob(queryString, cb) { |
| | | const restaurants = this.restaurJob |
| | |
| | | |
| | | this.ygdgForm.newJobName = item.value |
| | | this.ygdgForm.jobId = item.code |
| | | }, empDeptNameSelect(val) { |
| | | this.empBaseInfoForm.deptId = val.id |
| | | this.empBaseInfoForm.deptName = val.label |
| | | this.empBaseInfoForm.allDeptName = val.allDeptName |
| | | }, |
| | | generateUserInfo(index, val) { |
| | | var userinfo = toCardGetUserInfo(val) |
| | |
| | | }, |
| | | changeDimissionType(value) { |
| | | this.selectDimissionType = value |
| | | console.log('值:' + value) |
| | | }, |
| | | validSelfLeaveDay(rule, value, callback) { |
| | | const type = this.gbdaForm.dimissionType |
| | |
| | | var ids = [] |
| | | var names = [] |
| | | var dates = [] |
| | | var numbers = [] |
| | | for (var i = 0; i < selection.length; i++) { |
| | | var data = selection[i] |
| | | ids.push(data.empId) |
| | | names.push(data.empName) |
| | | dates.push(data.entryDate) |
| | | numbers.push(data.certificateNumb) |
| | | } |
| | | const nowDate = new Date() |
| | | const year = nowDate.getFullYear() |
| | |
| | | empIds: ids.join(','), |
| | | dgryNames: names.join(','), |
| | | entryDates: dates.join(','), |
| | | dimissionType: '1', |
| | | dimissionType: 1, |
| | | dimissionDate: year + '-' + month + '-' + day, |
| | | remark: '' |
| | | remark: '', |
| | | afterOperation: ['1'], |
| | | certificateNumb: numbers.join(',') |
| | | } |
| | | this.dialogShowGbda = true |
| | | } |
| | |
| | | } |
| | | }, |
| | | doDcda() { |
| | | this.$confirm('是否确定要导出档案?', '提示', { |
| | | this.$confirm('是否确定要导出档案,请耐心等待?', '提示', { |
| | | confirmButtonText: '确定', |
| | | cancelButtonText: '取消', |
| | | type: 'warning' |
| | | }).then(() => { |
| | | this.$message({ |
| | | type: 'success', |
| | | message: '导出成功!' |
| | | var params = this.queryParams |
| | | this.$post('hr/pdf/exportWithField', { |
| | | ...params |
| | | }).then((r) => { |
| | | const data = r.data.data |
| | | for (let i = 0; i < data.length; i++) { |
| | | this.$download('hr/pdf/contract', { |
| | | empNumb: data[i].empNumb |
| | | }, `${data[i].empName}.pdf`) |
| | | } |
| | | }) |
| | | }).catch(() => { |
| | | this.$message({ |
| | |
| | | }) |
| | | }) |
| | | }, |
| | | // dic列表转为数组 |
| | | dicListToArr(dicList) { |
| | | var arr = [] |
| | | for (var i = 0; i < dicList.length; i++) { |
| | | var dic = dicList[i] |
| | | arr.push(dic.dicItemCode) |
| | | } |
| | | return arr |
| | | }, |
| | | selectAllSex(val) { |
| | | if (val) { |
| | | this.queryParams.sex = ['1', '2'] |
| | | this.queryParams.sex = this.dicListToArr(this.sexOptions) |
| | | } else { |
| | | this.queryParams.sex = [] |
| | | } |
| | | }, |
| | | selectAllEducation(val) { |
| | | if (val) { |
| | | this.queryParams.education = ['91', '81', '71', '61', '42', '41', '31', '21', '11', '10'] |
| | | this.queryParams.education = this.dicListToArr(this.educationOptions) |
| | | } else { |
| | | this.queryParams.education = [] |
| | | } |
| | | }, |
| | | selectAllPolitics(val) { |
| | | if (val) { |
| | | this.queryParams.politics = ['01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12', '13'] |
| | | this.queryParams.politics = this.dicListToArr(this.statusOptions) |
| | | } else { |
| | | this.queryParams.politics = [] |
| | | } |
| | | }, |
| | | selectAllAgeStr(val) { |
| | | if (val) { |
| | | this.queryParams.ageStr = ['18-29', '30-39', '40-49', '50-59', '60-69', '69-999'] |
| | | this.queryParams.ageStr = this.dicListToArr(this.ageStrOptions) |
| | | } else { |
| | | this.queryParams.ageStr = [] |
| | | } |
| | | }, |
| | | selectAllArchivesStatus(val) { |
| | | if (val) { |
| | | this.queryParams.archivesStatus = ['0', '1'] |
| | | this.queryParams.archivesStatus = this.dicListToArr(this.archivesStatusOptions) |
| | | } else { |
| | | this.queryParams.archivesStatus = [] |
| | | } |
| | | }, |
| | | selectAllInsuranceType(val) { |
| | | if (val) { |
| | | this.queryParams.insuranceType = ['1', '2', '3', '4', '5'] |
| | | this.queryParams.insuranceType = this.dicListToArr(this.insuranceTypeOptions) |
| | | } else { |
| | | this.queryParams.insuranceType = [] |
| | | } |
| | | }, |
| | | selectAllEmpStatus(val) { |
| | | selectAllEmpCardStatus(val) { |
| | | if (val) { |
| | | this.queryParams.empStatus = ['0', '1', '2', '3'] |
| | | this.queryParams.empCardStatus = this.dicListToArr(this.empCardStatusOptions) |
| | | } else { |
| | | this.queryParams.empStatus = [] |
| | | this.queryParams.empCardStatus = [] |
| | | } |
| | | }, |
| | | selectAllHandbookStatus(val) { |
| | | if (val) { |
| | | this.queryParams.handbookStatus = this.dicListToArr(this.handbookStatusOptions) |
| | | } else { |
| | | this.queryParams.handbookStatus = [] |
| | | } |
| | | }, |
| | | selectAllEmpType(val) { |
| | | if (val) { |
| | | this.queryParams.empType = this.dicListToArr(this.empTypeOptions) |
| | | } else { |
| | | this.queryParams.empType = [] |
| | | } |
| | | }, |
| | | selectAllEntryType(val) { |
| | | if (val) { |
| | | this.queryParams.entryType = [20, 21, 22] |
| | | } else { |
| | | this.queryParams.entryType = [] |
| | | } |
| | | }, |
| | | selectAllCertificateList(val) { |
| | | if (val) { |
| | | this.queryParams.certificateList = this.dicListToArr(this.certificateListOptions) |
| | | } else { |
| | | this.queryParams.certificateList = [] |
| | | } |
| | | }, |
| | | headers() { |
| | |
| | | } else { |
| | | return null |
| | | } |
| | | }, |
| | | getDateString() { |
| | | return dateToString(new Date()) |
| | | }, |
| | | submitEmpInfo() { |
| | | if (this.isAdd) { |
| | | this.$post('hr/empBaseInfo/addInEmp', { ...this.empBaseInfoForm }).then((r) => { |
| | | if (r.data != null) { |
| | | if (r.data.data.empStatus === '0') { |
| | | this.$confirm('该员工已存在,是否修改?', '提示', { |
| | | confirmButtonText: '确定', |
| | | cancelButtonText: '取消', |
| | | type: 'warning' |
| | | }).then(() => { |
| | | this.editEmpBase(r.data.data) |
| | | }) |
| | | } else { |
| | | let tempName |
| | | switch (r.data.data.dimissionType) { |
| | | case '1': |
| | | tempName = '合同期满' |
| | | break |
| | | case '2': |
| | | tempName = '公司劝退' |
| | | break |
| | | case '3': |
| | | tempName = '公司辞退' |
| | | break |
| | | case '4': |
| | | tempName = '自动离职' |
| | | break |
| | | case '5': |
| | | tempName = '试用期内' |
| | | break |
| | | case '6': |
| | | tempName = '正常离职' |
| | | break |
| | | } |
| | | var msg = '该员工已存在,' + tempName + '状态!\n\r' |
| | | msg += r.data.data.remark + '\n\r' |
| | | msg += '由于' + r.data.data.empName + '已离职,是否重新打开档案?' |
| | | this.$confirm(msg, '提示', { |
| | | confirmButtonText: '确定', |
| | | cancelButtonText: '取消', |
| | | type: 'warning' |
| | | }).then(() => { |
| | | this.openArchivesForm = { |
| | | empId: r.data.data.empId, |
| | | empName: r.data.data.empName, |
| | | certificateNumb: r.data.data.certificateNumb, |
| | | openType: 20, |
| | | openDate: this.getDateString(), |
| | | remark: '' |
| | | } |
| | | this.dialogShowDkda = true |
| | | // this.$post('hr/empOpenArchives', { ...this.openArchivesForm }).then(() => { |
| | | // this.$message({ |
| | | // message: this.$t('员工档案打开成功'), |
| | | // type: 'success' |
| | | // }) |
| | | // }) |
| | | }) |
| | | } |
| | | } |
| | | }) |
| | | } else { |
| | | this.$put('hr/empBaseInfo', { ...this.empBaseInfoForm }).then(() => { |
| | | this.$message({ |
| | | message: this.$t('tips.updateSuccess'), |
| | | type: 'success' |
| | | }) |
| | | this.$emit('success') |
| | | this.cleanEmpBase() |
| | | }) |
| | | } |
| | | }, |
| | | changeSort(val) { |
| | | this.sort.field = val.prop |
| | | this.sort.order = val.order |
| | | this.search() |
| | | }, |
| | | showDkda(operate, formName) { |
| | | switch (operate) { |
| | | // case 0: |
| | | // var selection = this.$refs.multipleTable.store.states.selection |
| | | // if (selection.length === 1) { |
| | | // var id = selection[0].empId |
| | | // var name = selection[0].empName |
| | | // var number = selection[0].certificateNumb |
| | | // const nowDate = new Date() |
| | | // const year = nowDate.getFullYear() |
| | | // const month = nowDate.getMonth() + 1 |
| | | // const day = nowDate.getDate() |
| | | // this.baseicInformationForm = { |
| | | // empId: id, |
| | | // empName: name, |
| | | // certificateNumb: number, |
| | | // openType: 2, |
| | | // openDate: year + '-' + month + '-' + day, |
| | | // remark: '' |
| | | // } |
| | | // this.dialogShowDkda = true |
| | | // } else { |
| | | // this.$message({ |
| | | // message: '请选中一个要打开档案的人员', |
| | | // type: 'error' |
| | | // }) |
| | | // } |
| | | // break |
| | | case 1: |
| | | this.dialogShowDkda = false |
| | | break |
| | | case 2: |
| | | this.$refs[formName].validate((valid) => { |
| | | if (valid) { |
| | | this.$post('hr/empOpenArchives', { ...this.openArchivesForm }).then(() => { |
| | | this.dialogShowDkda = false |
| | | this.$message({ |
| | | message: this.$t('员工档案打开成功'), |
| | | type: 'success' |
| | | }) |
| | | this.fetch({ |
| | | ...this.queryParams, |
| | | ...this.sort |
| | | }) |
| | | }) |
| | | } |
| | | }) |
| | | break |
| | | } |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | <style lang="scss"> |
| | | |
| | | .fj-checkbox{ |
| | | .el-checkbox__input.is-checked .el-checkbox__inner { |
| | | border-color: #a32c30;; |
| | | background: #a32c30;; |
| | | .zzyg-table { |
| | | .el-table th, .el-table td { |
| | | padding: 7px 0; |
| | | } |
| | | } |
| | | |
| | | .fj-checkbox { |
| | | .el-checkbox__input.is-checked .el-checkbox__inner { |
| | | border-color: #a32c30;; |
| | | background: #a32c30;; |
| | | } |
| | | |
| | | .el-checkbox__label { |
| | | color: #000 !important; |
| | | } |
| | | } |
| | | </style> |
| | | <style lang="scss" scoped> |
| | | .baseinfo .el-container { |
| | | .el-aside { |
| | | background-color: #fff; |
| | | } |
| | | |
| | | .el-main { |
| | | background-color: #fff; |
| | | } |
| | | |
| | | } |
| | | |
| | | .el-main { |
| | | height: 600px; |
| | | } |
| | |
| | | } |
| | | |
| | | .searchTable { |
| | | margin-top: 10px; |
| | | border-collapse: collapse; |
| | | width: 100%; |
| | | .td { |
| | | background-color: #dddcdc !important; |
| | | width: 160px; |
| | | text-align: center; |
| | | margin-top: 10px; |
| | | border-collapse: collapse; |
| | | width: 100%; |
| | | |
| | | tr { |
| | | border-bottom: 1px dashed #d9dadb; |
| | | } |
| | | |
| | | .td { |
| | | width: 90px; |
| | | text-align: right; |
| | | } |
| | | |
| | | .td-group { |
| | | padding-left: 20px; |
| | | padding-left: 20px; |
| | | } |
| | | } |
| | | |
| | | .searchTable td, |
| | | .searchTable th { |
| | | border: 1px solid #b0b0b0; |
| | | color: #000; |
| | | height: 40px; |
| | | background-color: #fff; |
| | | color: #000; |
| | | height: 50px; |
| | | background-color: #fff; |
| | | } |
| | | |
| | | #ygxq table { |
| | |
| | | |
| | | #dcygTable { |
| | | border-collapse: collapse; |
| | | tr { |
| | | width: 100%; |
| | | border-bottom: 1px dashed #ccc; |
| | | >td:nth-child(even) { |
| | | width: 100px; |
| | | text-align: left; |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | | #dcygTable td { |
| | | width: 130px; |
| | | width: 160px; |
| | | text-align: center; |
| | | border: 1px solid darkgray; |
| | | height: 30px; |
| | | font-size:15px; |
| | | height: 35px; |
| | | line-height: 35px; |
| | | font-size: 15px; |
| | | font-weight: 400; |
| | | } |
| | | |
| | | .search-btn { |
| | | display: inline-block; |
| | | width: 3.64vw; |
| | | height: 3.2vh; |
| | | line-height: 3.2vh; |
| | | text-align: center; |
| | | background-color: #a00515; |
| | | color: #fff; |
| | | margin-left: 1vw; |
| | | box-sizing: border-box; |
| | | cursor: pointer; |
| | | vertical-align: middle; |
| | | } |
| | | |
| | | .sup-search-btn { |
| | | display: inline-block; |
| | | width: 5.2vw; |
| | | height: 3.2vh; |
| | | line-height: 3.2vh; |
| | | text-align: center; |
| | | margin-left: 1vw; |
| | | color: #a00515; |
| | | border: 1px solid #a00515; |
| | | box-sizing: border-box; |
| | | cursor: pointer; |
| | | vertical-align: middle; |
| | | } |
| | | </style> |