<template>
|
<div>
|
<div style="text-align: right;margin-bottom: 10px">
|
<!-- <el-button size="small" @click="$emit('goBackList')">返回</el-button>-->
|
<el-button size="small" type="primary" @click="dialogVisible = true">人员分类</el-button>
|
<el-button :loading="saveLoading" size="small" type="primary" @click="save">保存</el-button>
|
</div>
|
<div>
|
<div style="display: flex;flex-direction: row;">
|
<div style="width: 12em">
|
<el-image :src="javaApi + '/img/' + form.pictureUrl" fit="fill"
|
style="width:100%;height: 300px;border: 1px solid #000;border-radius: 10px;margin-left: 6px;margin-top: 10px;">
|
<div slot="error" class="image-slot">
|
<i class="el-icon-picture-outline" style="font-size: 40px;"></i>
|
</div>
|
</el-image>
|
<el-image :src="javaApi + '/img/' + form.signatureUrl" fit="fill"
|
style="width:80%;height: 50px;border: 1px solid #000;border-radius: 10px;margin-left: 22px;margin-top: 20px;">
|
<div slot="error" class="image-slot">
|
<i class="el-icon-picture-outline" style="font-size: 40px;"></i>
|
</div>
|
</el-image>
|
</div>
|
<div style="height: calc(100vh - 14em);overflow-y: auto">
|
<el-form ref="form" :model="form" label-width="110px">
|
<el-row>
|
<el-col :span="8">
|
<el-form-item label="姓名">
|
<el-input v-model="form.name" clearable size="small"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="8">
|
<el-form-item label="登录账号">
|
<el-input v-model="form.account" clearable size="small"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="8">
|
<el-form-item label="当前状态">
|
<el-radio-group v-model="form.currentState">
|
<el-radio label="1formal" size="mini">正式</el-radio>
|
<el-radio label="2intern" size="mini">实习</el-radio>
|
<el-radio label="3leaveOffice" size="mini">离职</el-radio>
|
</el-radio-group>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row>
|
<el-col :span="8">
|
<el-form-item label="工号">
|
<el-input v-model="form.jobNumber" clearable size="small"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="8">
|
<el-form-item label="员工子编号">
|
<el-input v-model="form.subordinateNumber" clearable size="small"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="8">
|
<el-form-item label="性别">
|
<el-radio-group v-model="form.sex">
|
<el-radio label="1" size="mini">男</el-radio>
|
<el-radio label="0" size="mini">女</el-radio>
|
</el-radio-group>
|
</el-form-item>
|
</el-col>
|
<!-- <el-col :span="8">
|
<el-form-item label="入职时间">
|
<el-date-picker v-model="form.entryTime" type="date" placeholder="选择日期" size="small"
|
style="width: 99%;" format="yyyy-MM-dd" value-format="yyyy-MM-dd HH:mm:ss">
|
</el-date-picker>
|
</el-form-item>
|
</el-col> -->
|
<!-- <el-col :span="8">
|
<el-form-item label="当前职务">
|
<el-input v-model="form.currentPosition" size="small" clearable></el-input>
|
</el-form-item>
|
</el-col> -->
|
</el-row>
|
<el-row>
|
<el-col :span="8">
|
<el-form-item label="公司名称">
|
<el-input v-model="form.corporateName" clearable size="small"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="8">
|
<el-form-item label="部门编号">
|
<el-input v-model="form.department" clearable size="small"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="8">
|
<el-form-item label="所属部门">
|
<el-cascader v-model="form.departLimsId" :options="department" :props="{ label: 'name', value: 'id',checkStrictly: true }" filterable style="width: 100%;"></el-cascader>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row>
|
<el-col :span="8">
|
<el-form-item label="岗位类别">
|
<el-input v-model="form.postType" clearable size="small"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="8">
|
<el-form-item label="岗位编号">
|
<el-input v-model="form.postCode" clearable size="small"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="8">
|
<el-form-item label="岗位名称">
|
<el-input v-model="form.postName" clearable size="small"></el-input>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row>
|
<el-col :span="8">
|
<el-form-item label="入集团时间">
|
<el-date-picker v-model="form.groupTime" format="yyyy-MM-dd" placeholder="选择日期" size="small"
|
style="width: 99%;" type="date" value-format="yyyy-MM-dd HH:mm:ss">
|
</el-date-picker>
|
</el-form-item>
|
</el-col>
|
<el-col :span="8">
|
<el-form-item label="入单位时间">
|
<el-date-picker v-model="form.unitTime" format="yyyy-MM-dd" placeholder="选择日期"
|
size="small" style="width: 99%;" type="date"
|
value-format="yyyy-MM-dd HH:mm:ss">
|
</el-date-picker>
|
</el-form-item>
|
</el-col>
|
<el-col :span="8">
|
<el-form-item label="直接上级">
|
<el-input v-model="form.reportingTo" clearable size="small"></el-input>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row>
|
<el-col :span="8">
|
<el-form-item label="劳动关系">
|
<el-radio-group v-model="form.laborRelations">
|
<el-radio :label=0 size="mini">合同工</el-radio>
|
<el-radio :label=1 size="mini">正式工</el-radio>
|
</el-radio-group>
|
</el-form-item>
|
</el-col>
|
<el-col :span="8">
|
<el-form-item label="试用开始时间">
|
<el-date-picker v-model="form.trialStartTime" format="yyyy-MM-dd" placeholder="选择日期" size="small"
|
style="width: 99%;" type="date" value-format="yyyy-MM-dd HH:mm:ss">
|
</el-date-picker>
|
</el-form-item>
|
</el-col>
|
<el-col :span="8">
|
<el-form-item label="试用结束时间">
|
<el-date-picker v-model="form.trialEndTime" format="yyyy-MM-dd" placeholder="选择日期" size="small"
|
style="width: 99%;" type="date" value-format="yyyy-MM-dd HH:mm:ss">
|
</el-date-picker>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row>
|
<el-col :span="24" style="text-align: left;">
|
<el-form-item label="人员分类">
|
<span style="color: #000;">{{ form.personnelClassification }}</span>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row>
|
<el-col :span="8">
|
<el-form-item label="出生日期">
|
<el-date-picker v-model="form.dateBirth" format="yyyy-MM-dd" placeholder="选择日期" size="small"
|
style="width: 99%;" type="date" value-format="yyyy-MM-dd HH:mm:ss">
|
</el-date-picker>
|
</el-form-item>
|
</el-col>
|
<el-col :span="8">
|
<el-form-item label="籍贯">
|
<el-input v-model="form.nativePlace" clearable size="small"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="8">
|
<el-form-item label="民族">
|
<el-input v-model="form.nation" clearable size="small"></el-input>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row>
|
<el-col :span="8">
|
<el-form-item label="证件类型">
|
<el-input v-model="form.idType" clearable size="small"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="8">
|
<el-form-item label="身份证号">
|
<el-input v-model="form.identityCard" clearable size="small"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="8">
|
<el-form-item label="年龄">
|
<el-input-number v-model="form.age" :max="130" :min="1"
|
controls-position="right" size="small" style="width: 99%;"></el-input-number>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row>
|
<el-col :span="8">
|
<el-form-item label="证件有效期">
|
<el-date-picker v-model="form.validityPeriod" format="yyyy-MM-dd" placeholder="选择日期"
|
size="small" style="width: 99%;" type="date"
|
value-format="yyyy-MM-dd HH:mm:ss">
|
</el-date-picker>
|
</el-form-item>
|
</el-col>
|
<el-col :span="8">
|
<el-form-item label="婚姻状况">
|
<el-radio-group v-model="form.maritalStatus">
|
<el-radio :label=0 size="mini">已婚</el-radio>
|
<el-radio :label=1 size="mini">未婚</el-radio>
|
</el-radio-group>
|
</el-form-item>
|
</el-col>
|
<el-col :span="8">
|
<el-form-item label="证件地址">
|
<el-input v-model="form.idAddress" clearable size="small"></el-input>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row>
|
<el-col :span="8">
|
<el-form-item label="证件详细地址">
|
<el-input v-model="form.idDetailAddress" clearable size="small"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="8">
|
<el-form-item label="现居地址">
|
<el-input v-model="form.currentAddress" clearable size="small"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="8">
|
<el-form-item label="现居详细地址">
|
<el-input v-model="form.currentDetailAddress" clearable size="small"></el-input>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row>
|
<el-col :span="8">
|
<el-form-item label="送达地址">
|
<el-input v-model="form.serviceAddress" clearable size="small"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="8">
|
<el-form-item label="送达详细地址">
|
<el-input v-model="form.serviceDetailAddress" clearable size="small"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="8">
|
<el-form-item label="是否退伍军人">
|
<el-radio-group v-model="form.retiredSoldiers">
|
<el-radio :label=1 size="mini">是</el-radio>
|
<el-radio :label=0 size="mini">否</el-radio>
|
</el-radio-group>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row>
|
<el-col :span="8">
|
<el-form-item label="政治面貌">
|
<el-input v-model="form.politicalStatus" clearable size="small"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="8">
|
<el-form-item label="入党/团时间">
|
<el-date-picker v-model="form.dumplingTime" format="yyyy-MM-dd" placeholder="选择日期"
|
size="small" style="width: 99%;" type="date"
|
value-format="yyyy-MM-dd HH:mm:ss">
|
</el-date-picker>
|
</el-form-item>
|
</el-col>
|
<el-col :span="8">
|
<el-form-item label="手机号">
|
<el-input v-model="form.telephone" clearable size="small"></el-input>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row>
|
<el-col :span="8">
|
<el-form-item label="短号">
|
<el-input v-model="form.cornet" clearable size="small"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="8">
|
<el-form-item label="办公电话">
|
<el-input v-model="form.officePhone" clearable size="small"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="8">
|
<el-form-item label="公司邮箱">
|
<el-input v-model="form.email" clearable size="small"></el-input>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row>
|
<el-col :span="8">
|
<el-form-item label="计算机等级">
|
<el-input v-model="form.ncre" clearable size="small"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="8">
|
<el-form-item label="最高学历">
|
<el-input v-model="form.officialAcademicRedentials" clearable size="small"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="8">
|
<el-form-item label="最高学位">
|
<el-input v-model="form.highestDegree" clearable size="small"></el-input>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row>
|
<el-col :span="8">
|
<el-form-item label="毕业院校1">
|
<el-input v-model="form.graduatedInstitutions1" clearable size="small"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="8">
|
<el-form-item label="专业1">
|
<el-input v-model="form.major1" clearable size="small"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="8">
|
<el-form-item label="毕业时间1">
|
<el-date-picker v-model="form.graduationTime1" format="yyyy-MM-dd" placeholder="选择日期"
|
size="small" style="width: 99%;" type="date"
|
value-format="yyyy-MM-dd HH:mm:ss">
|
</el-date-picker>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row>
|
<el-col :span="8">
|
<el-form-item label="毕业院校2">
|
<el-input v-model="form.graduatedInstitutions2" clearable size="small"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="8">
|
<el-form-item label="专业2">
|
<el-input v-model="form.major2" clearable size="small"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="8">
|
<el-form-item label="毕业时间2">
|
<el-date-picker v-model="form.graduationTime2" format="yyyy-MM-dd" placeholder="选择日期"
|
size="small" style="width: 99%;" type="date"
|
value-format="yyyy-MM-dd HH:mm:ss">
|
</el-date-picker>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row>
|
<el-col :span="8">
|
<el-form-item label="是否全日制">
|
<el-radio-group v-model="form.fullTime">
|
<el-radio :label="1" size="mini">是</el-radio>
|
<el-radio :label= "0" size="mini">否</el-radio>
|
</el-radio-group>
|
</el-form-item>
|
</el-col>
|
<el-col :span="8">
|
<el-form-item label="是否属于中天">
|
<el-radio-group v-model="form.enroll">
|
<el-radio :label=1 size="mini">是</el-radio>
|
<el-radio :label=0 size="mini">否</el-radio>
|
</el-radio-group>
|
</el-form-item>
|
</el-col>
|
<el-col :span="8">
|
<el-form-item label="XX届大学生">
|
<el-input v-model="form.collegeStudents" clearable size="small"></el-input>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row>
|
<el-col :span="8">
|
<el-form-item label="紧急联系人">
|
<el-input v-model="form.emergencyContact" clearable size="small"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="8">
|
<el-form-item label="紧急联系电话">
|
<el-input v-model="form.emergencyContactPhone" clearable size="small"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="8">
|
<el-form-item label="最后更新时间">
|
<el-date-picker v-model="form.lastUpdateTime" format="yyyy-MM-dd" placeholder="选择日期"
|
size="small" style="width: 99%;" type="date"
|
value-format="yyyy-MM-dd HH:mm:ss">
|
</el-date-picker>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row>
|
<el-col :span="18">
|
<el-form-item label="个人照片">
|
<el-input v-model="form.pictureUrl" disabled size="small">
|
<el-button v-if="form.pictureUrl" slot="append" icon="el-icon-delete-solid"
|
@click="deleteFile(form.pictureUrl, 'pictureUrl')"></el-button>
|
</el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="6">
|
<el-upload ref="upload" :action="action" :on-success="(response, file, fileList) => onSuccess(response, file, fileList, 'pictureUrl')"
|
:show-file-list="false"
|
style="float: left; margin: 0 10px 0 10px;">
|
<el-button slot="trigger" class="uploadFile" size="mini" type="primary">上传</el-button>
|
</el-upload>
|
<el-button v-if="form.pictureUrl" class="uploadFile" size="mini"
|
type="primary" @click="downloadFile(form.pictureUrl)">下载</el-button>
|
</el-col>
|
</el-row>
|
<el-row>
|
<el-col :span="18">
|
<el-form-item label="电子签名">
|
<el-input v-model="form.signatureUrl" disabled size="small">
|
<el-button v-if="form.signatureUrl" slot="append" icon="el-icon-delete-solid"
|
@click="deleteFile(form.signatureUrl, 'signatureUrl')"></el-button>
|
</el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="6">
|
<el-upload ref="upload" :action="action" :on-success="(response, file, fileList) => onSuccess(response, file, fileList, 'signatureUrl')"
|
:show-file-list="false"
|
style="float: left; margin: 0 10px 0 10px;">
|
<el-button slot="trigger" class="uploadFile" size="small" type="primary">上传</el-button>
|
</el-upload>
|
<el-button v-if="form.signatureUrl" class="uploadFile" size="small"
|
type="primary" @click="downloadFile(form.signatureUrl)">下载</el-button>
|
</el-col>
|
</el-row>
|
<!-- <el-row>
|
<el-col :span="20">
|
<el-form-item label="附件资料">
|
<el-input v-model="form.attachmentInformation" size="small" disabled>
|
<el-button v-if="form.attachmentInformation" slot="append"
|
icon="el-icon-delete-solid"
|
@click="deleteFile(form.attachmentInformation, 'attachmentInformation')"></el-button>
|
</el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="4">
|
<el-upload ref="upload" style="float: left; margin: 0 20px;" :action="action"
|
:show-file-list="false"
|
:on-success="(response, file, fileList) => onSuccess(response, file, fileList, 'attachmentInformation')">
|
<el-button class="uploadFile" slot="trigger" size="mini" type="primary">浏览</el-button>
|
</el-upload>
|
<el-button class="uploadFile" size="mini" type="primary" @click="downloadFile(form.attachmentInformation)">下载</el-button>
|
</el-col>
|
</el-row> -->
|
|
<el-row>
|
<el-col :span="20">
|
<el-form-item label="附件资料" >
|
</el-form-item>
|
</el-col>
|
<el-col :span="4">
|
<el-button size="mini" style="float: right;margin-right: 25px" type="primary" @click="annexAdd(0)">新增</el-button>
|
</el-col>
|
</el-row>
|
<el-table :data="annexList" border height="200" style="width: 96%;float: right;">
|
<el-table-column label="序号" type="index" width="80px">
|
</el-table-column>
|
<el-table-column label="证件号" prop="idNumber" width="150px">
|
</el-table-column>
|
<el-table-column label="发证单位" prop="issueUnit" width="150px">
|
</el-table-column>
|
<el-table-column label="文件名称" prop="fileName" show-overflow-tooltip width="200px">
|
</el-table-column>
|
<el-table-column label="级别" prop="level" width="150px">
|
</el-table-column>
|
<el-table-column label="有效期" prop="periodValidity" width="150px">
|
</el-table-column>
|
<el-table-column label="添加时间" prop="createTime" width="150px">
|
</el-table-column>
|
<el-table-column fixed="right" label="操作" width="150px">
|
<template slot-scope="scope">
|
<el-button size="mini" type="text" @click="downloadFile(scope.row.fileName)">下载</el-button>
|
<el-button size="mini" type="text" @click="annexAdd(1,scope.row)">编辑</el-button>
|
<el-button size="mini" type="text" @click="deleteAnnex(scope.row)">删除</el-button>
|
</template>
|
</el-table-column>
|
</el-table>
|
</el-form>
|
<el-row>
|
</el-row>
|
</div>
|
</div>
|
</div>
|
<!-- 人员分类弹框 -->
|
<el-dialog :visible.sync="dialogVisible" title="提示" width="40%" @open="getComparisonList">
|
<div style="height: 30vh;">
|
<el-row>
|
<el-col :span="4">
|
人员分类:
|
</el-col>
|
<el-col :span="20" style="text-align: left;">
|
<el-checkbox-group v-model="checkList">
|
<el-checkbox v-for="v in personnelClassification" :key="v.value"
|
:label="v.value"></el-checkbox>
|
</el-checkbox-group>
|
</el-col>
|
</el-row>
|
</div>
|
<span slot="footer" class="dialog-footer">
|
<el-button @click="dialogVisible = false">取 消</el-button>
|
<el-button type="primary" @click="clickPersonnelClassificationSure">确 定</el-button>
|
</span>
|
</el-dialog>
|
|
<!-- 新增附件资料 -->
|
<el-dialog :before-close="handleClose" :title="title" :visible.sync="dialogVisible1" width="40%" @open="getComparisonList">
|
<el-form ref="annex" :model="annex" :rules="rules" label-width="100px">
|
<el-row>
|
<el-col :span="16">
|
<el-form-item label="证件号" prop="idNumber">
|
<el-input v-model="annex.idNumber" clearable size="small" style="width: 100%;"></el-input>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row style="margin-top: 15px">
|
<el-col :span="16">
|
<el-form-item label="发证单位" prop="issueUnit">
|
<el-input v-model="annex.issueUnit" clearable size="small"></el-input>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row style="margin-top: 15px">
|
<el-col :span="16">
|
<el-form-item label="级别">
|
<el-input v-model="annex.level" clearable size="small"></el-input>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row style="margin-top: 15px">
|
<el-col :span="16">
|
<el-form-item label="有效期" prop="periodValidity">
|
<el-date-picker v-model="annex.periodValidity" format="yyyy-MM-dd" placeholder="选择日期" size="small"
|
style="width: 99%;" type="date" value-format="yyyy-MM-dd HH:mm:ss">
|
</el-date-picker>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row style="margin-top: 15px">
|
<el-col :span="16">
|
<el-form-item label="复印件">
|
<el-input v-model="annex.copy" clearable size="small"></el-input>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
|
<el-row style="margin-top: 15px">
|
<el-col :span="16">
|
<el-form-item label="原件">
|
<el-input v-model="annex.original" clearable size="small"></el-input>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row style="margin-top: 15px">
|
<el-col :span="16">
|
<el-form-item label="文件">
|
<el-upload
|
:action="action"
|
:before-upload="beforeAvatarUpload"
|
:on-success="(response,file,fileList) => onSuccess(response, file, fileList, 'fileName')"
|
:show-file-list="false">
|
<img v-if="imageUrl" :src="imageUrl" class="avatar">
|
<i v-else class="el-icon-upload avatar-uploader-icon"></i>
|
</el-upload>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
</el-form>
|
<span slot="footer" class="dialog-footer">
|
<el-button @click="cancellation">取 消</el-button>
|
<el-button type="primary" @click="submitForm('annex')">确 定</el-button>
|
</span>
|
</el-dialog>
|
</div>
|
</template>
|
|
<script>
|
import fileDownload from '../../../util/file'
|
export default {
|
props: {
|
clickNodeVal: {
|
type: Object,
|
default: () => { return {} }
|
},
|
},
|
data() {
|
return {
|
addOrupdate: null,
|
title: '',
|
annexList: [],
|
imageUrl: '',
|
annex: {
|
userId: '',
|
idNumber: '',
|
issueUnit: '',
|
level: '',
|
periodValidity: '',
|
copy: '',
|
original: '',
|
fileName: ''
|
},
|
rules: {
|
idNumber: [
|
{ required: true, message: '请输入证件号', trigger: 'blur' }
|
],
|
issueUnit: [
|
{ required: true, message: '请输入发证单位', trigger: 'blur' }
|
],
|
periodValidity: [
|
{ required: true, message: '请选择有效期', trigger: 'blur' }
|
]
|
},
|
dialogVisible1: false,
|
form: {
|
userId: '',
|
name: '',
|
account: '',
|
currentState: '',
|
jobNumber: '',
|
subordinateNumber: '',
|
sex: '',
|
corporateName: '',
|
department: '',
|
departLimsId: [],
|
postType: '',
|
postCode: '',
|
postName: '',
|
groupTime: '',
|
unitTime: '',
|
reportingTo: '',
|
laborRelations: '',
|
trialStartTime: '',
|
trialEndTime: '',
|
personnelClassification: '',
|
dateBirth: '',
|
nativePlace: '',
|
nation: '',
|
idType: '',
|
identityCard: '',
|
age: '',
|
validityPeriod: '',
|
maritalStatus: '',
|
idAddress: '',
|
idDetailAddress: '',
|
currentAddress: '',
|
currentDetailAddress: '',
|
serviceAddress: '',
|
serviceDetailAddress: '',
|
retiredSoldiers: '',
|
politicalStatus: '',
|
dumplingTime: '',
|
telephone: '',
|
cornet: '',
|
officePhone: '',
|
email: '',
|
ncre: '',
|
officialAcademicRedentials: '',
|
highestDegree: '',
|
graduatedInstitutions1: '',
|
major1: '',
|
graduationTime1: '',
|
graduatedInstitutions2: '',
|
major2: '',
|
graduationTime2: '',
|
fullTime: '',
|
enroll: '',
|
collegeStudents: '',
|
emergencyContact: '',
|
emergencyContactPhone: '',
|
lastUpdateTime: '',
|
pictureUrl: '',
|
signatureUrl: '',
|
},
|
department: [],
|
saveLoading: false,
|
dialogVisible: false,
|
personnelClassification: [],
|
checkList: [],
|
successFileList: [], // 防止后端出现脏数据
|
isSave: false,
|
}
|
},
|
components: {
|
fileDownload
|
},
|
created() {
|
this.init()
|
},
|
computed: {
|
action() {
|
return this.javaApi + this.$api.personnel.saveCNASFile
|
}
|
},
|
methods: {
|
annexAdd(type,row) {
|
if(type === 1) {
|
this.title = '编辑附件资料'
|
this.addOrupdate = 1
|
this.$axios.get(this.$api.personnel.getAnnex + '?id=' + row.id).then(res => {
|
this.annex = res.data
|
this.imageUrl = this.javaApi + '/img/' + res.data.fileName
|
})
|
}else {
|
this.title = '新增附件资料'
|
this.addOrupdate = 2
|
}
|
this.dialogVisible1 = true
|
},
|
submitForm(formName) {
|
this.$refs[formName].validate((valid) => {
|
if (valid) {
|
this.addAnnex()
|
} else {
|
return false
|
}
|
})
|
},
|
addAnnex() {
|
if(this.annex.fileName == "" || this.annex.fileName == null || this.annex.fileName == undefined) {
|
this.$message.error("请上传文件")
|
return
|
}
|
this.annex.userId = this.clickNodeVal.userId
|
if(this.addOrupdate === 1) {
|
this.$axios.post(this.$api.personnel.updateAnnex, this.annex, {
|
headers: {
|
'Content-Type': 'application/json'
|
}
|
}).then(res => {
|
if(res.code == 200) {
|
this.$axios.get(this.$api.personnel.getAnnexByUserId + '?userId=' + this.clickNodeVal.userId).then(res => {
|
this.dialogVisible1 = false
|
this.imageUrl = ''
|
this.resetForm('annex')
|
this.annexList = res.data
|
this.$message.success('更新成功!')
|
})
|
}
|
})
|
}else {
|
this.annex.id = null
|
this.$axios.post(this.$api.personnel.addAnnex, this.annex, {
|
headers: {
|
'Content-Type': 'application/json'
|
}
|
}).then(res => {
|
if(res.code == 200) {
|
this.$axios.get(this.$api.personnel.getAnnexByUserId + '?userId=' + this.clickNodeVal.userId).then(res => {
|
this.dialogVisible1 = false
|
this.imageUrl = ''
|
this.resetForm('annex')
|
this.annexList = res.data
|
this.$message.success('保存成功')
|
})
|
}
|
})
|
}
|
},
|
deleteAnnex(row) {
|
this.$confirm('此操作将永久删除该文件, 是否继续?', '提示', {
|
confirmButtonText: '确定',
|
cancelButtonText: '取消',
|
type: 'warning'
|
}).then(() => {
|
this.$axios.delete(this.$api.personnel.deleteAnnex + '/' + row.id).then(res => {
|
this.$message.success('删除成功!')
|
this.annexList = this.annexList.filter(item => item.id != row.id)
|
})
|
})
|
},
|
beforeAvatarUpload(file) {
|
const isJPGorPNG = file.type === 'image/jpeg' || file.type === 'image/png' || file.type === 'image/gif';
|
const isLt2MB = file.size / 1024 / 1024 < 2;
|
if (!isJPGorPNG) {
|
this.$message.error('上传图片只能是 JPG/PNG 格式!');
|
return false;
|
}
|
if (!isLt2MB) {
|
this.$message.error('上传图片大小不能超过 2MB!');
|
}
|
// 校验通过才返回 true,允许文件上传
|
return isJPGorPNG && isLt2MB;
|
},
|
downloadFile(fileName) {
|
let url = this.javaApi + '/img/' + fileName;
|
fileDownload.downloadIamge(url, fileName)
|
},
|
async onSuccess(response, file, fileList, entityVal) {
|
if(entityVal == 'fileName') {
|
this.annex.fileName = response.data
|
this.imageUrl = this.javaApi + '/img/' + response.data
|
}
|
// 在保存赋值新文件
|
this.successFileList.push(response.data)
|
this.$set(this.form, entityVal, response.data)
|
},
|
// 初始化调用
|
init() {
|
if (!this.clickNodeVal.userId) {
|
let user = JSON.parse(localStorage.getItem('user'))
|
this.getUserBasisInfo(user.userId)
|
this.clickNodeVal.userId = user.userId
|
} else {
|
this.getUserBasisInfo(this.clickNodeVal.userId)
|
}
|
},
|
getUserBasisInfo(userId) {
|
this.$axios.get(this.$api.personnel.getCNASPersonnelInfo + '?userId=' + userId).then(res => {
|
this.form = res.data.PersonBasicInfoDto
|
this.department = res.data.department
|
this.annexList = res.data.annexList
|
this.form.departLimsId = res.data.PersonBasicInfoDto.departLimsId.split(',').filter(a => a != "").map(Number)
|
console.log('res.data',res);
|
})
|
},
|
async save() {
|
this.saveLoading = true
|
this.form.userId = this.clickNodeVal.userId
|
if(Array.isArray(this.form.departLimsId)) {
|
if(this.form.departLimsId.length > 0) {
|
this.form.departLimsId = this.form.departLimsId.join(',').trim() + ','
|
}else {
|
this.form.departLimsId = ''
|
}
|
}
|
this.$axios.post(this.$api.personnel.saveCNASPersonnelInfo, this.form, {
|
headers: {
|
'Content-Type': 'application/json'
|
}
|
}).then(res => {
|
this.saveLoading = false
|
this.isSave = true
|
this.getUserBasisInfo(this.clickNodeVal.userId)
|
this.$message.success('保存成功!')
|
})
|
},
|
// 取人员分类的字典
|
getComparisonList() {
|
this.$axios.post(this.$api.enums.selectEnumByCategory, {
|
category: "人员分类"
|
}).then(res => {
|
let data = res.data
|
this.personnelClassification = data;
|
this.checkList = this.form.personnelClassification.split(',')
|
})
|
},
|
clickPersonnelClassificationSure() {
|
this.dialogVisible = false
|
this.form.personnelClassification = this.checkList.filter(m=>m).join(',')
|
},
|
async deleteFile(fileName, entityVal) {
|
await this.$axios.delete(this.$api.personnel.deleteCNASFile + "?fileName=" + fileName).then(res => {
|
this.$message.success('删除成功!')
|
this.$set(this.form, entityVal, null)
|
let index = this.successFileList.indexOf(fileName)
|
if (index != -1) {
|
this.successFileList.splice(index, 1)
|
}
|
})
|
},
|
validateFileSize(rule, value, callback) {
|
if (!value) {
|
return callback(new Error('请上传文件'));
|
}else {
|
callback();
|
}
|
},
|
cancellation() {
|
this.dialogVisible1 = false
|
this.imageUrl = ''
|
this.resetForm('annex')
|
},
|
handleClose(done) {
|
this.imageUrl = ''
|
this.annex = {
|
userId: '',
|
idNumber: '',
|
issueUnit: '',
|
level: '',
|
periodValidity: '',
|
copy: '',
|
original: '',
|
fileName: ''
|
}
|
done();
|
},
|
resetForm(formName) {
|
this.$refs[formName].resetFields();
|
}
|
},
|
watch: {
|
// 监听点击el-tree的数据,进行数据刷新
|
clickNodeVal: {
|
handler(newVal, oldVal) {
|
if (newVal.userId) {
|
this.getUserBasisInfo(newVal.userId)
|
}
|
},
|
}
|
}
|
}
|
</script>
|
|
<style scoped>
|
>>>.el-form-item {
|
margin-bottom: 3px;
|
}
|
|
.el-input {
|
border-radius: 15px;
|
}
|
|
.el-icon-picture-outline {
|
position: absolute;
|
left: 50%;
|
top: 50%;
|
transform: translate(-50%, -50%);
|
}
|
|
.uploadFile {
|
margin-top: 2px;
|
float: left;
|
}
|
.avatar-uploader-icon {
|
font-size: 28px;
|
color: #0f8bf1;
|
width: 178px;
|
height: 50px;
|
text-align: center;
|
border: 1px solid #d9d9d9;
|
}
|
.avatar {
|
width: 178px;
|
height: 178px;
|
display: block;
|
}
|
</style>
|