From 952a20f1c005d80e9bf881287c40e6f4e4266a0b Mon Sep 17 00:00:00 2001
From: lxp <1928192722@qq.com>
Date: 星期三, 12 三月 2025 15:34:52 +0800
Subject: [PATCH] Merge branch 'dev' of http://114.132.189.42:9002/r/center-lims-before-ruoyi into dev
---
src/views/CNAS/personnel/personnelInfo/Department/components/PersonnelInformation/index.vue | 948 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 948 insertions(+), 0 deletions(-)
diff --git a/src/views/CNAS/personnel/personnelInfo/Department/components/PersonnelInformation/index.vue b/src/views/CNAS/personnel/personnelInfo/Department/components/PersonnelInformation/index.vue
new file mode 100644
index 0000000..a6cd688
--- /dev/null
+++ b/src/views/CNAS/personnel/personnelInfo/Department/components/PersonnelInformation/index.vue
@@ -0,0 +1,948 @@
+<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="synchronous" :loading="synchronousLoading">鍚屾绗笁鏂逛俊鎭�</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: 180px;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">姝e紡</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.departmentCode" 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">
+ </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">
+ </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="鍚堝悓宸�" size="mini">鍚堝悓宸�</el-radio>
+ <el-radio label="姝e紡宸�" size="mini">姝e紡宸�</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">
+ </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">
+ </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">
+ </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.personBasicInfoAge" :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">
+ </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='宸插' size="mini">宸插</el-radio>
+ <el-radio label='鏈' 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='鏄�' size="mini">鏄�</el-radio>
+ <el-radio label='鍚�' 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">
+ </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.companyEmail" 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">
+ </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">
+ </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">
+ </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" :headers="uploadHeader"
+ :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" :headers="uploadHeader"
+ :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%;">
+ <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="绾у埆" prop="level">
+ <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">
+ </el-date-picker>
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row style="margin-top: 15px">
+ <el-col :span="16">
+ <el-form-item label="澶嶅嵃浠�" prop="copy">
+ <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="鍘熶欢" prop="original">
+ <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" :headers="uploadHeader" :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 {
+ getEmployees,
+ getAnnex,
+ updateAnnex,
+ getAnnexByUserId,
+ addAnnex,
+ deleteAnnex,
+ getCNASPersonnelInfo,
+ saveCNASPersonnelInfo,
+ deleteCNASFile
+} from '@/api/cnas/personnel/personnelInfo.js'
+export default {
+ dicts: ['personnl_type'],
+ props: {
+ clickNodeVal: {
+ type: Object,
+ default: () => { return {} }
+ },
+ },
+ data() {
+ return {
+ synchronousLoading: false,
+ 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,
+ }
+ },
+ created() {
+ this.init()
+ },
+ computed: {
+ action() {
+ return this.javaApi + '/personBasicInfo/saveCNASFile'
+ }
+ },
+ methods: {
+ synchronous() {
+ console.log('鍩烘湰淇℃伅', this.clickNodeVal);
+ this.synchronousLoading = true
+ getEmployees({ userId: this.clickNodeVal.userId }).then(res => {
+ this.synchronousLoading = false
+ this.getUserBasisInfo(this.clickNodeVal.userId)
+ this.$message.success("鍚屾鎴愬姛")
+
+ })
+ },
+ annexAdd(type, row) {
+ if (type === 1) {
+ this.title = '缂栬緫闄勪欢璧勬枡'
+ this.addOrupdate = 1
+ 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) {
+ updateAnnex(this.annex).then(res => {
+ if (res.code == 200) {
+ 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
+ addAnnex(this.annex).then(res => {
+ if (res.code == 200) {
+ 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(() => {
+ deleteAnnex(row.id).then(res => {
+ this.$message.success('鍒犻櫎鎴愬姛锛�')
+ this.annexList = this.annexList.filter(item => item.id != row.id)
+ })
+ })
+ },
+ beforeAvatarUpload(file) {
+ let flag = true
+ if (file.size > 1024 * 1024 * 10) {
+ this.$message.error('涓婁紶鏂囦欢涓嶈秴杩�10M');
+ this.$refs.upload.clearFiles()
+ flag = false
+ }
+ if (!flag) {
+ return Promise.reject(flag); //姝g‘鐨勭粓姝�
+ }
+ },
+ downloadFile(fileName) {
+ this.$download.saveAs(fileName, 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) {
+ getCNASPersonnelInfo({ 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 = ''
+ }
+ }
+ saveCNASPersonnelInfo(this.form).then(res => {
+ this.saveLoading = false
+ this.isSave = true
+ this.getUserBasisInfo(this.clickNodeVal.userId)
+ this.$message.success('淇濆瓨鎴愬姛锛�')
+ })
+ },
+ // 鍙栦汉鍛樺垎绫荤殑瀛楀吀
+ getComparisonList() {
+ // 鏂囦欢鐘舵��
+ this.getDicts("personnl_type").then((response) => {
+ this.personnelClassification = this.dictToValue(response.data);
+ this.checkList = this.form.personnelClassification ? this.form.personnelClassification.split('锛�') : []
+ });
+ },
+ clickPersonnelClassificationSure() {
+ this.dialogVisible = false
+ this.form.personnelClassification = this.checkList.filter(m => m).join('锛�')
+ },
+ async deleteFile(fileName, entityVal) {
+ await deleteCNASFile({ 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>
--
Gitblit v1.9.3