Browse Source

护理技术档案

XU 4 months ago
parent
commit
b5038fe894

+ 387 - 1
src/api/technology-archives/technology-archives.js

@@ -580,4 +580,390 @@ export function selectTechnologyArchivesMainDict(){
         method: 'get',
         params: { },
     })
-}
+}
+
+// 查询护理基本信息
+export function selectHLEmployeeInfo(text) {
+    return request({
+        url: '/hltechnologyArchives/selectHLEmployeeInfo',
+        method: 'get',
+        params: { text },
+    })
+}
+
+export function selectHLImage1(socialNo) {
+    return request({
+        url: '/hltechnologyArchives/selectHLImage1',
+        method: 'get',
+        params: { socialNo},
+    })
+}
+
+
+// 保存护理技术文档基本信息
+export function saveTechnologyArchivesHLMain(data) {
+    return request({
+        url: '/hltechnologyArchives/saveTechnologyArchivesHLMain',
+        method: 'post',
+        data,
+    })
+}
+
+export function setHLImage(url, socialNo) {
+    return request({
+        url: '/hltechnologyArchives/setHLImage',
+        method: 'get',
+        params: { url, socialNo },
+    })
+}
+
+// 查询专业技术资格证书取得情况
+export function selectTechnologyArchivesHL1() {
+    return request({
+        url: '/hltechnologyArchives/selectTechnologyArchivesHL1',
+        method: 'get',
+        params: { },
+    })
+}
+
+export function setHL1Image(socialNo, getTime, url) {
+    return request({
+        url: '/hltechnologyArchives/setHL1Image',
+        method: 'get',
+        params: { socialNo, getTime, url },
+    })
+}
+
+// 查询专业技术资格证书取得情况的图片
+export function selectHL1Image(socialNo, getTime) {
+    return request({
+        url: '/hltechnologyArchives/selectHL1Image',
+        method: 'get',
+        params: { socialNo, getTime },
+    })
+}
+
+// 保存专业技术资格证书取得情况
+export function saveTechnologyArchivesHL1(data) {
+    return request({
+        url: '/hltechnologyArchives/saveTechnologyArchivesHL1',
+        method: 'post',
+        data,
+    })
+}
+
+// 根据serialNo, getTime删除专业技术资格证书取得情况
+export function delTechnologyArchivesHL1ByCode(socialNo, getTime) {
+    return request({
+        url: '/hltechnologyArchives/delTechnologyArchivesHL1ByCode',
+        method: 'get',
+        params: { socialNo, getTime },
+    })
+}
+
+export function selectTechnologyArchivesHLMainDict(){
+    return request({
+        url: '/technologyArchives/selectTechnologyArchivesHLMainDict',
+        method: 'get',
+        params: { },
+    })
+}
+
+
+// 工作经历
+// 查询工作经历
+export function selectTechnologyArchivesHL2() {
+    return request({
+        url: '/hltechnologyArchives/selectTechnologyArchivesHL2',
+        method: 'get',
+        params: { },
+    })
+}
+
+export function setHL2Image(socialNo, beginTime, url) {
+    return request({
+        url: '/hltechnologyArchives/setHL2Image',
+        method: 'get',
+        params: { socialNo, beginTime, url },
+    })
+}
+
+// 查询聘用图片
+export function selectHL2Image(socialNo, id) {
+    return request({
+        url: '/hltechnologyArchives/selectHL2Image',
+        method: 'get',
+        params: { socialNo, id },
+    })
+}
+
+// 保存工作经历
+export function saveTechnologyArchivesHL2(data) {
+    return request({
+        url: '/hltechnologyArchives/saveTechnologyArchivesHL2',
+        method: 'post',
+        data,
+    })
+}
+
+// 根据serialNo, id删除工作经历
+export function delTechnologyArchivesHL2ByCode(socialNo, id) {
+    return request({
+        url: '/hltechnologyArchives/delTechnologyArchivesHL2ByCode',
+        method: 'get',
+        params: { socialNo, id },
+    })
+}
+
+// 学习经历
+// 查询学习经历
+export function selectTechnologyArchivesHL3() {
+    return request({
+        url: '/hltechnologyArchives/selectTechnologyArchivesHL3',
+        method: 'get',
+        params: { },
+    })
+}
+
+// 保存学习经历
+export function saveTechnologyArchivesHL3(data) {
+    return request({
+        url: '/hltechnologyArchives/saveTechnologyArchivesHL3',
+        method: 'post',
+        data,
+    })
+}
+
+// 根据serialNo, id删除学习经历
+export function delTechnologyArchivesHL3ByCode(socialNo, id) {
+    return request({
+        url: '/hltechnologyArchives/delTechnologyArchivesHL3ByCode',
+        method: 'get',
+        params: { socialNo, id },
+    })
+}
+
+// 培训经历
+// 查询培训经历
+export function selectTechnologyArchivesHL4() {
+    return request({
+        url: '/hltechnologyArchives/selectTechnologyArchivesHL4',
+        method: 'get',
+        params: { },
+    })
+}
+
+export function setHL4Image(socialNo, beginTime, url) {
+    return request({
+        url: '/hltechnologyArchives/setHL4Image',
+        method: 'get',
+        params: { socialNo, beginTime, url },
+    })
+}
+
+// 查询培训证明图片
+export function selectHL4Image(socialNo, id) {
+    return request({
+        url: '/hltechnologyArchives/selectHL4Image',
+        method: 'get',
+        params: { socialNo, id },
+    })
+}
+
+// 保存培训经历
+export function saveTechnologyArchivesHL4(data) {
+    return request({
+        url: '/hltechnologyArchives/saveTechnologyArchivesHL4',
+        method: 'post',
+        data,
+    })
+}
+
+// 根据serialNo, id删除培训经历
+export function delTechnologyArchivesHL4ByCode(socialNo, id) {
+    return request({
+        url: '/hltechnologyArchives/delTechnologyArchivesHL4ByCode',
+        method: 'get',
+        params: { socialNo, id },
+    })
+}
+
+// 轮科记录
+// 查询轮科记录
+export function selectTechnologyArchivesHL5() {
+    return request({
+        url: '/hltechnologyArchives/selectTechnologyArchivesHL5',
+        method: 'get',
+        params: { },
+    })
+}
+
+// 保存轮科记录
+export function saveTechnologyArchivesHL5(data) {
+    return request({
+        url: '/hltechnologyArchives/saveTechnologyArchivesHL5',
+        method: 'post',
+        data,
+    })
+}
+
+// 根据serialNo, id删除轮科记录
+export function delTechnologyArchivesHL5ByCode(socialNo, id) {
+    return request({
+        url: '/hltechnologyArchives/delTechnologyArchivesHL5ByCode',
+        method: 'get',
+        params: { socialNo, id },
+    })
+}
+
+// 科室调动记录
+// 查询科室调动记录
+export function selectTechnologyArchivesHL6() {
+    return request({
+        url: '/hltechnologyArchives/selectTechnologyArchivesHL6',
+        method: 'get',
+        params: { },
+    })
+}
+
+// 保存科室调动记录
+export function saveTechnologyArchivesHL6(data) {
+    return request({
+        url: '/hltechnologyArchives/saveTechnologyArchivesHL6',
+        method: 'post',
+        data,
+    })
+}
+
+// 根据serialNo, id删除科室调动记录
+export function delTechnologyArchivesHL6ByCode(socialNo, id) {
+    return request({
+        url: '/hltechnologyArchives/delTechnologyArchivesHL6ByCode',
+        method: 'get',
+        params: { socialNo, id },
+    })
+}
+
+// 休假记录
+// 查询休假记录
+export function selectTechnologyArchivesHL7() {
+    return request({
+        url: '/hltechnologyArchives/selectTechnologyArchivesHL7',
+        method: 'get',
+        params: { },
+    })
+}
+
+export function setHL7Image(socialNo, approvalTime, url) {
+    return request({
+        url: '/hltechnologyArchives/setHL7Image',
+        method: 'get',
+        params: { socialNo, approvalTime, url },
+    })
+}
+
+// 查询请假证明图片
+export function selectHL7Image(socialNo, id) {
+    return request({
+        url: '/hltechnologyArchives/selectHL7Image',
+        method: 'get',
+        params: { socialNo, id },
+    })
+}
+
+// 保存休假记录
+export function saveTechnologyArchivesHL7(data) {
+    return request({
+        url: '/hltechnologyArchives/saveTechnologyArchivesHL7',
+        method: 'post',
+        data,
+    })
+}
+
+// 根据serialNo, approvalTime删除休假记录
+export function delTechnologyArchivesHL7ByCode(socialNo, approvalTime) {
+    return request({
+        url: '/hltechnologyArchives/delTechnologyArchivesHL7ByCode',
+        method: 'get',
+        params: { socialNo, approvalTime },
+    })
+}
+
+// 查询技术文档9
+export function selectTechnologyArchivesHL9() {
+    return request({
+        url: '/hltechnologyArchives/selectTechnologyArchivesHL9',
+        method: 'get',
+        params: { },
+    })
+}
+
+// 保存技术文档9
+export function saveTechnologyArchivesHL9(data) {
+    return request({
+        url: '/hltechnologyArchives/saveTechnologyArchivesHL9',
+        method: 'post',
+        data,
+    })
+}
+
+// 根据serialNo, id删除技术文档9
+export function delTechnologyArchivesHL9ByCode(socialNo, id) {
+    return request({
+        url: '/hltechnologyArchives/delTechnologyArchivesHL9ByCode',
+        method: 'get',
+        params: { socialNo, id },
+    })
+}
+
+// 查询护理技术文档类型 
+export function selectTechnologyArchivesHLType(type) {
+    return request({
+        url: '/hltechnologyArchives/selectTechnologyArchivesHLType',
+        method: 'get',
+        params: { type },
+    })
+}
+
+// 根据档案类型查询技术档案信息(textType:档案类型)
+export function selectTechnologyArchivesHLInfo(data) {
+    return request({
+        url: '/hltechnologyArchives/selectTechnologyArchivesHLInfo',
+        method: 'post',
+        data,
+    })
+}
+
+export function exportMultiTechnologyArchives(params) {
+    ElMessageBox.prompt('导出文件名字', '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        inputPattern: /\S/,
+        inputErrorMessage: '文件名不能为空 (∩•̀ω•́)⊃-*⋆',
+    }).then(({ value }) => {
+        const data = {
+            param: params,
+            url: '/hltechnologyArchives/exportMultiTechnologyArchives',
+            fileName: value + '.xls',
+        }
+        setTimeout(() => {
+            downloadExcel(data)
+        }, 500)
+    }).catch((res) => {
+        if (res.code === '0') {
+            ElMessage({
+                message: res.message,
+                type: 'success',
+                duration: 2000,
+                showClose: true,
+            })
+        } else {
+            ElMessage({
+                message: res.message,
+                type: 'warning',
+                duration: 3000,
+                showClose: true,
+            })
+        }
+    })
+}

+ 4055 - 0
src/views/technology-archives/HLTechnologyArchivesMain.vue

@@ -0,0 +1,4055 @@
+<template>
+  <div class="layout_container">
+    <header>
+      <el-input v-model="text" class="w-50 m-2" style="width: 360px" placeholder="请输入工号/身份证号/姓名" clearable>
+        <template #prepend>工号/身份证号/姓名 </template>
+      </el-input>
+      <el-button type="primary" icon="Search" @click="queryEmployeeInfo" style="margin-left: 10px">查询</el-button>
+      <!-- <el-button type="primary" icon="Search" @click="queryTa1" style="margin-left: 10px">查询</el-button> -->
+      <el-button type="primary" icon="Check" @click="submitForm(ruleFormRef)" style="margin-left: 10px">保存</el-button>
+      <el-button type="primary" icon="Refresh" @click="resetForm(ruleFormRef)" style="margin-left: 10px">重置</el-button>
+      <el-button type="primary" icon="Plus" @click="onAddItem" style="margin-left: 5px">新增记录</el-button>
+    </header>
+    <div class="layout_main">
+      <el-tabs class="el-tabs__fill" v-model="editableTabsValue" type="border-card" @tab-click="handleClick">
+        <el-tab-pane key="baseInfo" label="基本信息" name="baseInfo">
+          <div class="layout_display_flex_y">
+            <div class="layout_flex_1-y">
+              <el-form ref="ruleFormRef" :rules="rulesInfo" label-width="134px" :model="baseInfoForm" class="demo-ruleForm" size="default">
+                <el-row>
+                  <el-col :span="6">
+                    <el-form-item label="姓名" prop="name">
+                      <el-input v-model="baseInfoForm.name" maxlength="20" show-word-limit placeholder="请填写姓名"/>
+                    </el-form-item>
+                  </el-col>
+                  <el-col :span="6">
+                    <el-form-item label="性别" prop="sex">
+                      <el-select v-model="baseInfoForm.sex" placeholder="请选择性别" filterable clearable style="width: 100%">
+                        <el-option v-for="item in dictData.sex" :key="item.code" :label="item.name" :value="item.code">
+                          <span style="float: left">{{ item.name }}</span>
+                          <span style="float: right; color: var(--el-text-color-secondary); font-size: 13px;">
+                            {{ item.code }}
+                          </span>
+                        </el-option>
+                      </el-select>
+                    </el-form-item>
+                  </el-col>
+                  <el-col :span="6">
+                    <el-form-item label="身份证号" prop="socialNo">
+                      <el-input v-model="baseInfoForm.socialNo" maxlength="20" show-word-limit placeholder="请填写身份证号" @change="birthdayFormat"/>
+                    </el-form-item>
+                  </el-col>
+                  <el-col :span="6">
+                    <el-form-item label="出生年月" prop="birthday">
+                      <el-date-picker v-model="baseInfoForm.birthday" type="month" aria-label="出生年月"
+                        value-format="YYYY-MM" placeholder="请选择出生年月" style="width: 100%"/>
+                    </el-form-item>
+                  </el-col>
+                </el-row>
+                <el-row>
+                  <el-col :span="6">
+                    <el-col>
+                      <el-form-item label="民族" prop="nation">
+                        <el-select v-model="baseInfoForm.nation" placeholder="请选择民族" filterable clearable style="width: 100%">
+                          <el-option v-for="item in dictData.nation" :key="item.code" :label="item.name" :value="item.code">
+                            <span style="float: left">{{ item.name }}</span>
+                            <span style="float: right; color: var(--el-text-color-secondary); font-size: 13px;">
+                              {{ item.code }}
+                            </span>
+                          </el-option>
+                        </el-select>
+                      </el-form-item>
+                    </el-col>
+                    <el-col>
+                      <el-form-item label="第一学历" prop="firstEducation">
+                        <el-select v-model="baseInfoForm.firstEducation" placeholder="请选择第一学历" filterable clearable style="width: 100%">
+                          <el-option v-for="item in dictData.education" :key="item.code" :label="item.name" :value="item.code">
+                            <span style="float: left">{{ item.name }}</span>
+                            <span style="float: right; color: var(--el-text-color-secondary); font-size: 13px;">
+                              {{ item.code }}
+                            </span>
+                          </el-option>
+                        </el-select>
+                      </el-form-item>
+                    </el-col>
+                    <el-col>
+                      <el-form-item label="最高学历" prop="lastEducation">
+                        <el-select v-model="baseInfoForm.lastEducation" placeholder="请选择最高学历" filterable clearable style="width: 100%">
+                          <el-option v-for="item in dictData.education1" :key="item.code" :label="item.name" :value="item.code">
+                            <span style="float: left">{{ item.name }}</span>
+                            <span style="float: right; color: var(--el-text-color-secondary); font-size: 13px;">
+                              {{ item.code }}
+                            </span>
+                          </el-option>
+                        </el-select>
+                      </el-form-item>
+                    </el-col>
+                  </el-col>
+                  <el-col :span="6">
+                    <el-col>
+                      <el-form-item label="籍贯" prop="nativePlace">
+                        <el-select v-model="baseInfoForm.nativePlace" placeholder="请选择籍贯" filterable clearable style="width: 100%">
+                          <el-option v-for="item in dictData.city" :key="item.code" :label="item.name" :value="item.code">
+                            <span style="float: left">{{ item.name }}</span>
+                            <span style="float: right; color: var(--el-text-color-secondary); font-size: 13px;">
+                              {{ item.code }}
+                            </span>
+                          </el-option>
+                        </el-select>
+                      </el-form-item>
+                    </el-col>
+                    <el-col>
+                      <el-form-item label="第一学历专业" prop="firstSpeciality">
+                        <el-input v-model="baseInfoForm.firstSpeciality" maxlength="40" show-word-limit placeholder="请填写专业"/>
+                      </el-form-item>
+                    </el-col>
+                    <el-col>
+                      <el-form-item label="最高学历专业" prop="lastSpeciality">
+                        <el-input v-model="baseInfoForm.lastSpeciality" maxlength="40" show-word-limit placeholder="请填写专业"/>
+                      </el-form-item>
+                    </el-col>
+                  </el-col>
+                  <el-col :span="6">
+                    <el-col>
+                      <el-form-item label="政治面貌" prop="politicCountenance">
+                        <el-select v-model="baseInfoForm.politicCountenance" placeholder="请选择政治面貌" filterable clearable style="width: 100%">
+                          <el-option v-for="item in dictData.political" :key="item.code" :label="item.name" :value="item.code">
+                            <span style="float: left">{{ item.name }}</span>
+                            <span style="float: right; color: var(--el-text-color-secondary); font-size: 13px;">
+                              {{ item.code }}
+                            </span>
+                          </el-option>
+                        </el-select>
+                      </el-form-item>
+                    </el-col>
+                    <el-col>
+                      <el-form-item label="第一学历毕业院校" prop="firstGraduationSchool">
+                        <el-input v-model="baseInfoForm.firstGraduationSchool" maxlength="40" show-word-limit placeholder="请填写第一学历毕业院校" />
+                      </el-form-item>
+                    </el-col> 
+                    <el-col>
+                      <el-form-item label="最高历毕业院校" prop="lastGraduationSchool">
+                        <el-input v-model="baseInfoForm.lastGraduationSchool" maxlength="40" show-word-limit placeholder="请填写最高学历毕业院校" />
+                      </el-form-item>
+                    </el-col>
+                  </el-col>
+                  <el-col :span="6">
+                    <el-form-item label="个人照片" prop="image1">  
+                      <div v-if="disabled" class="demo-image__preview" >
+                        <el-image
+                          v-model="baseInfoForm.image1"
+                          style="width: 128px; height: 128px"
+                          :src="personalimageurl"
+                          :zoom-rate="1.2"
+                          :max-scale="7"
+                          :min-scale="0.2"
+                          :preview-src-list="personalsrcList"
+                          :preview-teleported="true"
+                          fit="cover"
+                        />
+                        <el-button type="primary" @click="uploadpersonalimage" style="margin-left: 10px; margin-top: -20px;">点击上传</el-button>
+                      </div> 
+                      <div v-else>
+                        <el-upload
+                          ref="upload"
+                          v-model:file-list="pfileList"
+                          list-type="picture-card"
+                          :action="apiUrl + `/hltechnologyArchives/putPersonalImage`"
+                          :headers="header"
+                          :on-success="uploadSuccess"
+                          :on-preview="handlePreview"
+                          :on-remove="handleRemove"
+                          :before-upload="beforeUpload"
+                          :auto-upload="false"
+                          :show-file-list="true"
+                          :limit="1"
+                          :on-exceed="handleExceed"
+                        >
+                          <el-icon> <Plus /></el-icon>
+                          <template #tip>
+                            <div class="el-upload__tip">只能上传 jpg/png 文件,且不超过 2MB</div>
+                          </template>
+                        </el-upload>
+                        <el-button type="success" @click="uploadserver" style="margin-left: 10px; margin-top: 10px;">上传至服务器</el-button>
+                        <el-button type="primary" @click="cancelupload" style="margin-left: 10px; margin-top: 10px;">取消</el-button>
+                      </div>
+                      
+                    </el-form-item>
+                  </el-col>
+                </el-row>
+                
+                <el-row>
+                  <el-col :span="6">
+                    <el-form-item label="参加工作时间" prop="firstWorktime">
+                      <el-date-picker v-model="baseInfoForm.firstWorktime" type="month" aria-label="参加工作时间"
+                        value-format="YYYY-MM" placeholder="请选择参加工作时间" style="width: 100%"/>
+                    </el-form-item>
+                  </el-col>
+                  <el-col :span="6">
+                    <el-form-item label="职称" prop="position">
+                      <el-select v-model="baseInfoForm.position" placeholder="请选择职称" filterable clearable style="width: 100%">
+                        <el-option v-for="item in dictData.title" :key="item.code" :label="item.name" :value="item.code">
+                          <span style="float: left">{{ item.name }}</span>
+                          <span style="float: right; color: var(--el-text-color-secondary); font-size: 13px;">
+                            {{ item.code }}
+                          </span>
+                        </el-option>
+                      </el-select>
+                    </el-form-item>
+                  </el-col>
+                  <el-col :span="12">
+                    <el-form-item label="现住地址" prop="address">
+                      <el-input v-model="baseInfoForm.address" maxlength="64" show-word-limit placeholder="请填写现住地址"/>
+                    </el-form-item>
+                  </el-col>
+                </el-row>
+                <el-row>
+                  <el-col :span="6">
+                    <el-form-item label="健康状况" prop="healthCondition">
+                      <el-select v-model="baseInfoForm.healthCondition" placeholder="请选择健康状况" filterable clearable style="width: 100%">
+                        <el-option v-for="item in healthOptions" :key="item.code" :label="item.name" :value="item.code">
+                          <span style="float: left">{{ item.name }}</span>
+                          <span style="float: right; color: var(--el-text-color-secondary); font-size: 13px;">
+                            {{ item.code }}
+                          </span>
+                        </el-option>
+                      </el-select>
+                    </el-form-item>
+                  </el-col>
+                  <el-col :span="12" v-if="baseInfoForm.healthCondition == '3'">
+                    <el-form-item label="健康状况描述" prop="healthComment">
+                      <el-input v-model="baseInfoForm.healthComment" maxlength="30" show-word-limit placeholder="若健康状况选择了有缺陷,请在此描述缺陷" />
+                    </el-form-item>
+                  </el-col>
+                  <el-col :span="6">
+                    <el-form-item label="联系电话" prop="phone">
+                      <el-input v-model="baseInfoForm.phone" maxlength="20" show-word-limit placeholder="请填写联系电话" />
+                    </el-form-item>
+                  </el-col>
+                </el-row>
+                <el-row>
+                  <el-col :span="6">
+                    <el-form-item label="现有资格证书编码" prop="existingCertificate">
+                      <el-input v-model="baseInfoForm.existingCertificate" maxlength="40" show-word-limit placeholder="请填写医师资格证书编码"/>
+                    </el-form-item>
+                  </el-col>
+                  <el-col :span="6">
+                    <el-form-item label="获取时间" prop="existingCertificateTime">
+                      <el-date-picker v-model="baseInfoForm.existingCertificateTime" type="date" aria-label="获取时间"
+                        value-format="YYYY-MM-DD" placeholder="请选择获取时间" style="width: 100%"/>
+                    </el-form-item>
+                  </el-col>
+                  <el-col :span="6">
+                    <el-form-item label="护士执业证书编码" prop="nursePracticingCertificate">
+                      <el-input v-model="baseInfoForm.nursePracticingCertificate" maxlength="40" show-word-limit placeholder="请填写医师执业证书编码"/>
+                    </el-form-item>
+                  </el-col>
+                  <el-col :span="6">
+                    <el-form-item label="获取时间" prop="nursePracticingCertificateTime">
+                      <el-date-picker v-model="baseInfoForm.nursePracticingCertificateTime" type="date" aria-label="获取时间"
+                        value-format="YYYY-MM-DD" placeholder="请选择获取时间" style="width: 100%"/>
+                    </el-form-item>
+                  </el-col>
+                </el-row>
+              </el-form>
+              <el-divider>
+                <el-icon><star-filled /></el-icon><b style="color: #0d84ff">技术档案填写说明</b><el-icon><star-filled /></el-icon>
+              </el-divider>
+              <ol class="numbered-list">
+                <li>
+                  <el-text class="mx-1" type="danger" style="font-size: 1.2em">
+                    本表主要供与本院有正式劳动关系的专业技术人员建立专业技术档案使用;照片贴二寸正面彩色免冠近照。
+                  </el-text>
+                </li>
+                <li>
+                  <el-text class="mx-1" type="danger" style="font-size: 1.2em">
+                    填写人员必须实事求是,填写时一律用钢笔或黑色签字笔(可交打印版),字迹要清楚端正。
+                  </el-text>
+                </li>
+                <li>
+                  <el-text class="mx-1" type="danger" style="font-size: 1.2em">
+                    建档时间为到本单位工作的时间。
+                  </el-text>
+                </li>
+                <li>
+                  <el-text class="mx-1" type="danger" style="font-size: 1.2em">
+                    学历栏填写第一和最高学历(包括自考、成教等形式获得的学历均可)。
+                  </el-text>
+                </li>
+                <li>
+                  <el-text class="mx-1" type="danger" style="font-size: 1.2em">
+                    取得医师资格证书和执业证书时间以证书上标注的发证时间为准。
+                  </el-text>
+                </li>
+                <li>
+                  <el-text class="mx-1" type="danger" style="font-size: 1.2em">
+                    专业技术资格证书取得情况从初级(师/士)开始填写,主要填写与本专业工作相关的证书。
+                  </el-text>
+                </li>
+                <li>
+                  <el-text class="mx-1" type="danger" style="font-size: 1.2em">
+                    工作经历指从毕业后参加工作开始计算,包括工作满两个月以上的所有工作单位(转科医师的转科经历也需要填写)。
+                  </el-text>
+                </li>
+                <li>
+                  <el-text class="mx-1" type="danger" style="font-size: 1.2em">
+                    个人学习经历从医学相关专业的初始学历开始填写;进修只包括一月以上脱产进修,参加学术会议等不算在此类。
+                  </el-text>
+                </li>
+                <li>
+                  <el-text class="mx-1" type="danger" style="font-size: 1.2em">
+                    所有的资格证书、发表的论文、著作等,均需向医务部提交复印件或电子扫描版本存档。
+                  </el-text>
+                </li>
+                <!-- <li>
+                  <el-text class="mx-1" type="danger" style="font-size: 1.2em">
+                    表10、14由医务部填写,其他均由建档本人填写完整。
+                  </el-text>
+                </li> -->
+              </ol>
+            </div>
+          </div>
+        </el-tab-pane>
+        <el-tab-pane key="hlfirstInfo" label="专业技术资格证书取得情况" name="hlfirstInfo">
+          <div class="layout_display_flex_y">
+            <div class="layout_flex_1-y">
+              <el-table :data="hlfirstData" border style="width: 100%; height: 100%" stripe highlight-current-row :key="hlfirstKey">
+                <el-table-column type="index" label="序号" width="100" />
+                <el-table-column prop="socialNo" label="身份证号" width="200">
+                  <template v-slot="scope">
+                    <el-input v-if="scope.row.isEdit" size="small" v-model="scope.row.socialNo"></el-input>
+                    <span v-else>{{ scope.row.socialNo }}</span>
+                  </template>
+                </el-table-column>
+                <el-table-column prop="getTime" label="获取时间" width="200">
+                  <template v-slot="scope">
+                    <el-date-picker v-if="scope.row.isEdit" v-model="scope.row.getTime" type="date" style="width: 100%"
+                      format="YYYY-MM-DD" value-format="YYYY-MM-DD"/>
+                    <span v-else>{{ scope.row.getTime }}</span>
+                  </template>
+                </el-table-column>
+                <el-table-column prop="title" label="证书名称" width="280">
+                  <template v-slot="scope">
+                    <el-input v-if="scope.row.isEdit" size="small" v-model="scope.row.title"></el-input>
+                    <span v-else>{{ scope.row.title }}</span>
+                  </template>
+                </el-table-column>
+                <el-table-column prop="number" label="证书编号" width="200">
+                  <template v-slot="scope">
+                    <el-input v-if="scope.row.isEdit" size="small" v-model="scope.row.number"></el-input>
+                    <span v-else>{{ scope.row.number }}</span>
+                  </template>
+                </el-table-column>
+                <el-table-column prop="issuingAuthority" label="发证机构" width="280">
+                  <template v-slot="scope">
+                    <el-input v-if="scope.row.isEdit" size="small" v-model="scope.row.issuingAuthority"></el-input>
+                    <span v-else>{{ scope.row.issuingAuthority }}</span>
+                  </template>
+                </el-table-column>
+                <el-table-column prop="image" label="图片链接" min-width="180" >
+                  <template v-slot="scope">
+                    <!-- <el-input  size="small" v-model="scope.row.image"></el-input>-->
+                    <div v-if="scope.row.isEdit">
+                      <el-upload
+                          ref="upload"
+                          v-model:file-list="fileList"
+                          list-type="picture-card"
+                          :action="apiUrl + '/hltechnologyArchives/putHL1CertificateImage'"
+                          :headers="header"
+                          :data="{ socialNo: scope.row.socialNo, title: scope.row.title }"
+                          :on-success="uploadSuccess1"
+                          :on-preview="handlePreviewhl1"
+                          :on-remove="handleRemove"
+                          :before-upload="beforeUpload"
+                          :auto-upload="false"
+                          :multiple
+                          :show-file-list="true"
+                      >
+                        <el-icon> <Plus /></el-icon>
+                        <template #tip>
+                          <div class="el-upload__tip">只能上传 jpg/png 文件,且不超过 2MB</div>
+                        </template>
+                      </el-upload>
+                      <el-button style="margin-top: 10px" type="success" icon="Upload" @click="submitUpload(scope.row)">上传到服务器</el-button>
+                      <el-dialog v-model="dialogVisible" append-to-body >
+                        <img w-full :src="dialogImageUrl"  />
+                      </el-dialog>
+                    </div>
+                    <!-- <span v-else>{{ scope.row.image }}</span> -->
+                    <div v-else class="demo-image__preview">
+                      <el-image
+                        style="width: 100px; height: 100px"
+                        :src="url"
+                        :zoom-rate="1.2"
+                        :max-scale="7"
+                        :min-scale="0.2"
+                        :preview-src-list="srcList"
+                        :preview-teleported="true"
+                        fit="cover"
+                      />
+                  </div>
+                  </template>
+                </el-table-column>
+                <el-table-column fixed="right" label="操作" min-width="180" width="180" center>
+                  <template #default="scope">
+                    <el-button type="primary" size="small" v-if="!scope.row.isEdit"
+                               @click="edithlfirstInfo(scope.row)">编辑</el-button>
+                    <el-button type="primary" size="small" v-if="scope.row.isEdit"
+                               @click="updatehlfirstInfo(scope.row)">保存</el-button>
+                    <el-button type="primary" size="small" v-if="scope.row.isEdit"
+                               @click="cancelhlfirstInfo(scope.row, scope.$index)">取消
+                    </el-button>
+                    <el-button type="danger" size="small"
+                               @click.prevent="deletehlfirstInfo(scope.row)">
+                      删除
+                    </el-button>
+                  </template>
+                </el-table-column>
+              </el-table>
+            </div>
+          </div>
+        </el-tab-pane>
+        <el-tab-pane key="hlsecondInfo" label="工作经历" name="hlsecondInfo">
+          <div class="layout_display_flex_y">
+            <div class="layout_flex_1-y">
+              <el-table :data="hlsecondData" border style="width: 100%; height: 100%" stripe highlight-current-row :key="hlsecondKey">
+                <el-table-column type="index" prop="no" label="序号" width="80" />
+                <el-table-column prop="id" label="id号" width="80" v-if="false"/>
+                <el-table-column prop="socialNo" label="身份证号" width="180">
+                  <template v-slot="scope">
+                    <el-input v-if="scope.row.isEdit" size="small" v-model="scope.row.socialNo"></el-input>
+                    <span v-else>{{ scope.row.socialNo }}</span>
+                  </template>
+                </el-table-column>
+                <el-table-column prop="beginTime" label="开始时间" width="200">
+                  <template v-slot="scope">
+                    <el-date-picker v-if="scope.row.isEdit" v-model="scope.row.beginTime" type="date" style="width: 100%"
+                                    format="YYYY-MM-DD" value-format="YYYY-MM-DD"/>
+                    <span v-else>{{ scope.row.beginTime }}</span>
+                  </template>
+                </el-table-column>
+                <el-table-column prop="endTime" label="结束时间" width="200">
+                  <template v-slot="scope">
+                    <el-date-picker v-if="scope.row.isEdit" v-model="scope.row.endTime" type="date" style="width: 100%"
+                                    format="YYYY-MM-DD" value-format="YYYY-MM-DD"/>
+                    <span v-else>{{ scope.row.endTime }}</span>
+                  </template>
+                </el-table-column>
+                <el-table-column prop="unit" label="工作单位" width="180">
+                  <template v-slot="scope">
+                    <el-input v-if="scope.row.isEdit" size="small" v-model="scope.row.unit"></el-input>
+                    <span v-else>{{ scope.row.unit }}</span>
+                  </template>
+                </el-table-column>
+                <el-table-column prop="title" label="技术职务" width="180">
+                  <template #header>
+                    <span>技术职务</span>
+                    <el-tooltip class="box-item" effect="dark" placement="top">
+                      <template #content>注:<br />技术职务包括见习护士、助理护士、护士、护师、主管护师、副主任护师、主任护师。</template>
+                      <el-icon color="red" size="14"><QuestionFilled /></el-icon>
+                    </el-tooltip>
+                  </template>
+                  <template v-slot="scope">
+                    <el-input v-if="scope.row.isEdit" size="small" v-model="scope.row.title"></el-input>
+                    <span v-else>{{ scope.row.title }}</span>
+                  </template>
+                </el-table-column>
+                <el-table-column prop="workTime" label="受聘时间" width="200">
+                  <template v-slot="scope">
+                    <el-date-picker v-if="scope.row.isEdit" v-model="scope.row.workTime" type="date" style="width: 100%"
+                                    format="YYYY-MM-DD" value-format="YYYY-MM-DD"/>
+                    <span v-else>{{ scope.row.workTime }}</span>
+                  </template>
+                </el-table-column>
+                <el-table-column prop="image" label="受聘证书" min-width="180" >
+                  <template v-slot="scope">
+                    <div v-if="scope.row.isEdit">
+                      <el-upload
+                          ref="upload"
+                          v-model:file-list="hl2fileList"
+                          list-type="picture-card"
+                          :action="apiUrl + `/hltechnologyArchives/putHL2CertificateImage?socialNo=` + scope.row.socialNo + `&id=` + scope.row.id"
+                          :headers="header"
+                          :on-success="hl2uploadSuccess"
+                          :on-preview="handlePreviewhl2"
+                          :on-remove="handleRemove"
+                          :before-upload="beforeUpload"
+                          :auto-upload="false"
+                          :multiple
+                          :show-file-list="true"
+                      >
+                        <el-icon> <Plus /></el-icon>
+                        <template #tip>
+                          <div class="el-upload__tip">只能上传 jpg/png 文件,且不超过 2MB</div>
+                        </template>
+                      </el-upload>
+                      <el-button style="margin-top: 10px" type="success" icon="Upload" @click="hl4submitUpload(scope.row)">上传到服务器</el-button>
+                      <el-dialog v-model="dialogVisible" append-to-body >
+                        <img w-full :src="dialogImageUrl"  />
+                      </el-dialog>
+                    </div>
+                    <div v-else class="demo-image__preview">
+                      <el-image
+                        style="width: 100px; height: 100px"
+                        :src="workurl"
+                        :zoom-rate="1.2"
+                        :max-scale="7"
+                        :min-scale="0.2"
+                        :preview-src-list="hl2srcList"
+                        :preview-teleported="true"
+                        fit="cover"
+                      />
+                  </div>
+                  </template>
+                </el-table-column>
+                <!-- <el-table-column prop="speciality" label="专业">
+                  <template v-slot="scope">
+                    <el-input v-if="scope.row.isEdit" size="small" v-model="scope.row.speciality"></el-input>
+                    <span v-else>{{ scope.row.speciality }}</span>
+                  </template>
+                </el-table-column> -->
+                <el-table-column fixed="right" label="操作" min-width="180" width="180" center>
+                  <template #default="scope">
+                    <el-button type="primary" size="small" v-if="!scope.row.isEdit"
+                               @click="edithlsecondInfo(scope.row)">编辑</el-button>
+                    <el-button type="primary" size="small" v-if="scope.row.isEdit"
+                               @click="updatehlsecondInfo(scope.row)">保存</el-button>
+                    <el-button type="primary" size="small" v-if="scope.row.isEdit"
+                               @click="cancelhlsecondInfo(scope.row, scope.$index)">取消
+                    </el-button>
+                    <el-button type="danger" size="small" @click.prevent="deletehlsecondInfo(scope.row)">
+                      删除</el-button>
+                  </template>
+                </el-table-column>
+              </el-table>
+            </div>
+          </div>
+        </el-tab-pane>
+        <el-tab-pane key="hlthirdInfo" label="学习经历" name="hlthirdInfo">
+          <div class="layout_display_flex_y">
+            <div class="layout_flex_1-y">
+              <el-table :data="hlthirdData" border style="width: 100%; height: 100%" stripe highlight-current-row :key="hlthirdKey">
+                <el-table-column type="index" prop="no" label="序号" width="80" />
+                <el-table-column prop="id" label="id号" width="80" v-if="false"/>
+                <el-table-column prop="socialNo" label="身份证号" width="180">
+                  <template v-slot="scope">
+                    <el-input v-if="scope.row.isEdit" size="small" v-model="scope.row.socialNo"></el-input>
+                    <span v-else>{{ scope.row.socialNo }}</span>
+                  </template>
+                </el-table-column>
+                <el-table-column prop="beginTime" label="开始时间" width="200">
+                  <template v-slot="scope">
+                    <el-date-picker v-if="scope.row.isEdit" v-model="scope.row.beginTime" type="date" style="width: 100%"
+                                    format="YYYY-MM-DD" value-format="YYYY-MM-DD"/>
+                    <span v-else>{{ scope.row.beginTime }}</span>
+                  </template>
+                </el-table-column>
+                <el-table-column prop="endTime" label="结束时间" width="200">
+                  <template v-slot="scope">
+                    <el-date-picker v-if="scope.row.isEdit" v-model="scope.row.endTime" type="date" style="width: 100%"
+                                    format="YYYY-MM-DD" value-format="YYYY-MM-DD"/>
+                    <span v-else>{{ scope.row.endTime }}</span>
+                  </template>
+                </el-table-column>
+                <el-table-column prop="schoolName" label="院校名称" width="180">
+                  <template v-slot="scope">
+                    <el-input v-if="scope.row.isEdit" size="small" v-model="scope.row.schoolName"></el-input>
+                    <span v-else>{{ scope.row.schoolName }}</span>
+                  </template>
+                </el-table-column>
+                <el-table-column prop="speciality" label="所学专业" show-overflow-tooltip>
+                  <template v-slot="scope">
+                    <el-input v-if="scope.row.isEdit" size="small" v-model="scope.row.speciality"></el-input>
+                    <span v-else>{{ scope.row.speciality }}</span>
+                  </template>
+                </el-table-column>
+                <el-table-column prop="education" label="学历" show-overflow-tooltip>
+                  <template v-slot="scope" >
+                    <div v-if="scope.row.isEdit">
+                      <el-select v-model="scope.row.education" clearable placeholder="请选择学历">
+                        <el-option v-for="item in dictData.education" :key="item.code" :label="item.name"
+                                   :value="item.code">
+                            <span style="float: left">{{ item.name }}</span>
+                            <span style="float: right; color: var(--el-text-color-secondary); font-size: 13px;">
+                              {{ item.code }}
+                            </span>
+                          </el-option>
+                      </el-select>
+                    </div>
+                    <div v-else>
+                      <el-select v-model="scope.row.education" disabled placeholder="请选择学历">
+                        <el-option v-for="item in dictData.education" :key="item.code" :label="item.name"
+                                   :value="item.code">
+                          <span style="float: left">{{ item.name }}</span>
+                          <span style="float: right; color: var(--el-text-color-secondary); font-size: 13px;">
+                            {{ item.code }}
+                          </span>          
+                        </el-option>
+                      </el-select>
+                    </div>
+                  </template>
+                </el-table-column>
+                <el-table-column prop="academicDegree" label="学位" >
+                  <template #header>
+                    <span>学位</span>
+                    <el-tooltip class="box-item" effect="dark" placement="top">
+                      <template #content>注:<br />请选择与获得的学位证书相应的选项。</template>
+                      <el-icon color="red" size="14"><QuestionFilled /></el-icon>
+                    </el-tooltip>
+                  </template>
+                  <template v-slot="scope" >
+                    <div v-if="scope.row.isEdit">
+                      <el-select v-model="scope.row.academicDegree" clearable placeholder="请选择学位">
+                        <el-option v-for="option in academicdegree" :key="option.code" :label="option.name"
+                                   :value="option.code"></el-option>
+                      </el-select>
+                    </div>
+                    <div v-else>
+                      <el-select v-model="scope.row.academicDegree" disabled placeholder="请选择学位">
+                        <el-option v-for="option in academicdegree" :key="option.code" :label="option.name"
+                                   :value="option.code"></el-option>
+                      </el-select>
+                    </div>
+                  </template>
+                </el-table-column>
+                <el-table-column prop="comment" label="备注" width="300" show-overflow-tooltip>
+                  <template v-slot="scope">
+                    <el-input v-if="scope.row.isEdit" size="small" v-model="scope.row.comment"></el-input>
+                    <span v-else>{{ scope.row.comment }}</span>
+                  </template>
+                </el-table-column>
+                <el-table-column fixed="right" label="操作" min-width="180" width="180" center>
+                  <template #default="scope">
+                    <el-button type="primary" size="small" v-if="!scope.row.isEdit"
+                               @click="edithlthirdInfo(scope.row)">编辑</el-button>
+                    <el-button type="primary" size="small" v-if="scope.row.isEdit"
+                               @click="updatehlthirdInfo(scope.row)">保存</el-button>
+                    <el-button type="primary" size="small" v-if="scope.row.isEdit"
+                               @click="cancelhlthirdInfo(scope.row, scope.$index)">取消</el-button>
+                    <el-button type="danger" size="small" @click.prevent="deletehlthirdInfo(scope.row)">
+                      删除</el-button>
+                  </template>
+                </el-table-column>
+              </el-table>
+            </div>
+          </div>
+        </el-tab-pane>
+        <el-tab-pane key="hlfourthInfo" label="培训经历" name="hlfourthInfo">
+          <div class="layout_display_flex_y">
+            <div class="layout_flex_1-y">
+              <el-table :data="hlfourthData" border style="width: 100%; height: 100%" stripe highlight-current-row :key="hlfourthKey">
+                <el-table-column type="index" prop="no" label="序号" width="80" />
+                <el-table-column prop="id" label="id号" width="80" v-if="false"/>
+                <el-table-column prop="socialNo" label="身份证号" width="180">
+                  <template v-slot="scope">
+                    <el-input v-if="scope.row.isEdit" size="small" v-model="scope.row.socialNo"></el-input>
+                    <span v-else>{{ scope.row.socialNo }}</span>
+                  </template>
+                </el-table-column>
+                <el-table-column prop="beginTime" label="开始时间" width="150">
+                  <template v-slot="scope">
+                    <el-date-picker v-if="scope.row.isEdit" v-model="scope.row.beginTime" type="date" style="width: 100%"
+                                    format="YYYY-MM-DD" value-format="YYYY-MM-DD"/>
+                    <span v-else>{{ scope.row.beginTime }}</span>
+                  </template>
+                </el-table-column>
+                <el-table-column prop="endTime" label="结束时间" width="150">
+                  <template v-slot="scope">
+                    <el-date-picker v-if="scope.row.isEdit" v-model="scope.row.endTime" type="date" style="width: 100%"
+                                    format="YYYY-MM-DD" value-format="YYYY-MM-DD"/>
+                    <span v-else>{{ scope.row.endTime }}</span>
+                  </template>
+                </el-table-column>
+                <el-table-column prop="learningContent" label="学习培训内容" min-width="300" show-overflow-tooltip >
+                  <template v-slot="scope">
+                    <el-input v-if="scope.row.isEdit" size="small" v-model="scope.row.learningContent"></el-input>
+                    <span v-else>{{ scope.row.learningContent }}</span>
+                  </template>
+                </el-table-column>
+                <el-table-column prop="learningUnit" label="主办单位" width="200">
+                  <template v-slot="scope">
+                    <el-input v-if="scope.row.isEdit" size="small" v-model="scope.row.learningUnit"></el-input>
+                    <span v-else>{{ scope.row.learningUnit }}</span>
+                  </template>
+                </el-table-column>
+                <el-table-column prop="name" label="培训获得的证书名称" width="160">
+                  <template v-slot="scope">
+                    <el-input v-if="scope.row.isEdit" size="small" v-model="scope.row.name"></el-input>
+                    <span v-else>{{ scope.row.name }}</span>
+                  </template>
+                </el-table-column>
+                <el-table-column prop="image" label="培训证明材料" min-width="180" >
+                  <template #header>
+                    <span>培训证明材料</span>
+                    <el-tooltip class="box-item" effect="dark" placement="top">
+                      <template #content>注:<br />培训获得的证书图片或能够证明参加过培训的截图。</template>
+                      <el-icon color="red" size="14"><QuestionFilled /></el-icon>
+                    </el-tooltip>
+                  </template>
+                  <template v-slot="scope">
+                    <div v-if="scope.row.isEdit">
+                      <el-upload
+                          ref="upload"
+                          v-model:file-list="hl4fileList"
+                          list-type="picture-card"
+                          :action="apiUrl + `/hltechnologyArchives/putHL4CertificateImage?socialNo=` + scope.row.socialNo + `&id=` + scope.row.id"
+                          :headers="header"
+                          :on-success="hl4uploadSuccess"
+                          :on-preview="handlePreviewhl4"
+                          :on-remove="handleRemove"
+                          :before-upload="beforeUpload"
+                          :auto-upload="false"
+                          :multiple
+                          :show-file-list="true"
+                      >
+                        <el-icon> <Plus /></el-icon>
+                        <template #tip>
+                          <div class="el-upload__tip">只能上传 jpg/png 文件,且不超过 2MB</div>
+                        </template>
+                      </el-upload>
+                      <el-button style="margin-top: 10px" type="success" icon="Upload" @click="hl4submitUpload(scope.row)">上传到服务器</el-button>
+                      <el-dialog v-model="dialogVisible" append-to-body >
+                        <img w-full :src="dialogImageUrl"  />
+                      </el-dialog>
+                    </div>
+                    <div v-else class="demo-image__preview">
+                      <el-image
+                        style="width: 100px; height: 100px"
+                        :src="trainingurl"
+                        :zoom-rate="1.2"
+                        :max-scale="7"
+                        :min-scale="0.2"
+                        :preview-src-list="hl4srcList"
+                        :preview-teleported="true"
+                        fit="cover"
+                      />
+                  </div>
+                  </template>
+                </el-table-column>
+                <el-table-column fixed="right" label="操作" min-width="180" width="180" center>
+                  <template #default="scope">
+                    <el-button type="primary" size="small" v-if="!scope.row.isEdit"
+                               @click="edithlfourthInfo(scope.row)">编辑</el-button>
+                    <el-button type="primary" size="small" v-if="scope.row.isEdit"
+                               @click="updatehlfourthInfo(scope.row)">保存</el-button>
+                    <el-button type="primary" size="small" v-if="scope.row.isEdit"
+                               @click="cancelhlfourthInfo(scope.row, scope.$index)">取消</el-button>
+                    <el-button type="danger" size="small" @click.prevent="deletehlfourthInfo(scope.row)">
+                      删除</el-button>
+                  </template>
+                </el-table-column>
+              </el-table>
+            </div>
+          </div>
+        </el-tab-pane>
+        <el-tab-pane key="fifthInfo" label="发表论文专著情况" name="fifthInfo">
+          <div class="layout_display_flex_y">
+            <div class="layout_flex_1-y">
+              <el-table :data="fifthData" border style="width: 100%; height: 100%" stripe highlight-current-row :key="fifthKey">
+                <el-table-column type="index" prop="no" label="序号" width="80" />
+                <el-table-column prop="socialNo" label="身份证号" width="180">
+                  <template v-slot="scope">
+                    <el-input v-if="scope.row.isEdit" size="small" v-model="scope.row.socialNo"></el-input>
+                    <span v-else>{{ scope.row.socialNo }}</span>
+                  </template>
+                </el-table-column>
+                <el-table-column prop="time" label="发表时间" width="200">
+                  <template v-slot="scope">
+                    <el-date-picker v-if="scope.row.isEdit" v-model="scope.row.time" type="date" style="width: 100%"
+                                    format="YYYY-MM-DD" value-format="YYYY-MM-DD"/>
+                    <span v-else>{{ scope.row.time }}</span>
+                  </template>
+                </el-table-column>
+                <el-table-column prop="topic" label="发表论文或专著题目" width="300" show-overflow-tooltip>
+                  <template #header>
+                    <span>发表论文或专著题目</span>
+                    <el-tooltip class="box-item" effect="dark" placement="top">
+                      <template #content>注:<br />至少是近五年内发表的论文、专著,为第一作者。</template>
+                      <el-icon color="red" size="14"><QuestionFilled /></el-icon>
+                    </el-tooltip>
+                  </template>
+                  <template v-slot="scope">
+                    <el-input v-if="scope.row.isEdit" size="small" v-model="scope.row.topic"></el-input>
+                    <span v-else>{{ scope.row.topic }}</span>
+                  </template>
+                </el-table-column>
+                <el-table-column prop="periodical" label="杂志/期刊名称" width="300" show-overflow-tooltip>
+                  <template v-slot="scope">
+                    <el-input v-if="scope.row.isEdit" size="small" v-model="scope.row.periodical"></el-input>
+                    <span v-else>{{ scope.row.periodical }}</span>
+                  </template>
+                </el-table-column>
+                <el-table-column fixed="right" label="操作" min-width="180" width="180" center>
+                  <template #default="scope">
+                    <el-button type="primary" size="small" v-if="!scope.row.isEdit"
+                               @click="editFifthInfo(scope.row)">编辑</el-button>
+                    <el-button type="primary" size="small" v-if="scope.row.isEdit"
+                               @click="updateFifthInfo(scope.row)">保存</el-button>
+                    <el-button type="primary" size="small" v-if="scope.row.isEdit"
+                               @click="cancelFifthInfo(scope.row, scope.$index)">取消</el-button>
+                    <el-button type="danger" size="small" @click.prevent="deleteFifthInfo(scope.row)">
+                      删除</el-button>
+                  </template>
+                </el-table-column>
+              </el-table>
+            </div>
+          </div>
+        </el-tab-pane>
+        <el-tab-pane key="seventhInfo" label="开展新技术情况" name="seventhInfo">
+          <div class="layout_display_flex_y">
+            <div class="layout_flex_1-y">
+              <el-table :data="seventhData" border style="width: 100%; height: 100%" stripe highlight-current-row :key="seventhKey">
+                <el-table-column type="index" prop="no" label="序号" width="80" />
+                <el-table-column prop="id" label="id号" width="80" v-if="false"/>
+                <el-table-column prop="socialNo" label="身份证号" width="180">
+                  <template v-slot="scope">
+                    <el-input v-if="scope.row.isEdit" size="small" v-model="scope.row.socialNo"></el-input>
+                    <span v-else>{{ scope.row.socialNo }}</span>
+                  </template>
+                </el-table-column>
+                <el-table-column prop="time" label="开展时间" width="200">
+                  <template v-slot="scope">
+                    <el-date-picker v-if="scope.row.isEdit" v-model="scope.row.time" type="date" style="width: 100%"
+                                    format="YYYY-MM-DD" value-format="YYYY-MM-DD"/>
+                    <span v-else>{{ scope.row.time }}</span>
+                  </template>
+                </el-table-column>
+                <el-table-column prop="name" label="新技术名称" width="300" show-overflow-tooltip>
+                  <template v-slot="scope">
+                    <el-input v-if="scope.row.isEdit" size="small" v-model="scope.row.name"></el-input>
+                    <span v-else>{{ scope.row.name }}</span>
+                  </template>
+                </el-table-column>
+                <el-table-column prop="forth" label="完成情况" header-align="center">
+                  <el-table-column prop="first" label="第一年" width="120">
+                    <template v-slot="scope">
+                      <el-input v-if="scope.row.isEdit" size="small" v-model="scope.row.first"></el-input>
+                      <span v-else>{{ scope.row.first }}</span>
+                    </template>
+                  </el-table-column>
+                  <el-table-column prop="second" label="第二年" width="120">
+                    <template v-slot="scope">
+                      <el-input v-if="scope.row.isEdit" size="small" v-model="scope.row.second"></el-input>
+                      <span v-else>{{ scope.row.second }}</span>
+                    </template>
+                  </el-table-column>
+                  <el-table-column prop="third" label="第三年" width="120">
+                    <template v-slot="scope">
+                      <el-input v-if="scope.row.isEdit" size="small" v-model="scope.row.third"></el-input>
+                      <span v-else>{{ scope.row.third }}</span>
+                    </template>
+                  </el-table-column>
+                  <el-table-column prop="fourth" label="第四年" width="120">
+                    <template v-slot="scope">
+                      <el-input v-if="scope.row.isEdit" size="small" v-model="scope.row.fourth"></el-input>
+                      <span v-else>{{ scope.row.fourth }}</span>
+                    </template>
+                  </el-table-column>
+                  <el-table-column prop="fifth" label="第五年" width="120">
+                    <template v-slot="scope">
+                      <el-input v-if="scope.row.isEdit" size="small" v-model="scope.row.fifth"></el-input>
+                      <span v-else>{{ scope.row.fifth }}</span>
+                    </template>
+                  </el-table-column>
+                </el-table-column>
+                <el-table-column prop="comment" label="备注" width="300" show-overflow-tooltip>
+                  <template v-slot="scope">
+                    <el-input v-if="scope.row.isEdit" size="small" v-model="scope.row.comment"></el-input>
+                    <span v-else>{{ scope.row.comment }}</span>
+                  </template>
+                </el-table-column>
+                <el-table-column fixed="right" label="操作" min-width="180" width="180" center>
+                  <template #default="scope">
+                    <el-button type="primary" size="small" v-if="!scope.row.isEdit"
+                               @click="editSeventhInfo(scope.row)">编辑</el-button>
+                    <el-button type="primary" size="small" v-if="scope.row.isEdit"
+                               @click="updateSeventhInfo(scope.row)">保存</el-button>
+                    <el-button type="primary" size="small" v-if="scope.row.isEdit"
+                               @click="cancelSeventhInfo(scope.row, scope.$index)">取消</el-button>
+                    <el-button type="danger" size="small" @click.prevent="deleteSeventhInfo(scope.row)">
+                      删除</el-button>
+                  </template>
+                </el-table-column>
+              </el-table>
+            </div>
+          </div>
+        </el-tab-pane>
+        <el-tab-pane key="hlninthInfo" label="培训考试考核情况" name="hlninthInfo">
+          <div class="layout_display_flex_y">
+            <div class="layout_flex_1-y">
+              <el-table :data="hlninthData" border style="width: 100%; height: 100%" stripe highlight-current-row :key="hlninthKey">
+                <el-table-column type="index" prop="no" label="序号" width="80" />
+                <el-table-column prop="id" label="id号" width="80" v-if="false"/>
+                <el-table-column prop="socialNo" label="身份证号" width="180">
+                  <template v-slot="scope">
+                    <el-input v-if="scope.row.isEdit" size="small" v-model="scope.row.socialNo"></el-input>
+                    <span v-else>{{ scope.row.socialNo }}</span>
+                  </template>
+                </el-table-column>
+                <el-table-column prop="time" label="时间" width="200">
+                  <template v-slot="scope">
+                    <el-date-picker v-if="scope.row.isEdit" v-model="scope.row.time" type="date" style="width: 100%"
+                                    format="YYYY-MM-DD" value-format="YYYY-MM-DD"/>
+                    <span v-else>{{ scope.row.time }}</span>
+                  </template>
+                </el-table-column>
+                <el-table-column prop="content" label="培训考试考核内容" min-width="360" show-overflow-tooltip>
+                  <template #header>
+                    <span>培训考试考核内容</span>
+                    <el-tooltip class="box-item" effect="dark" placement="top">
+                      <template #content>注:<br />指科室、护理部、湖南省三基三严考试。</template>
+                      <el-icon color="red" size="14"><QuestionFilled /></el-icon>
+                    </el-tooltip>
+                  </template>
+                  <template v-slot="scope">
+                    <el-input v-if="scope.row.isEdit" size="small" v-model="scope.row.content"></el-input>
+                    <span v-else>{{ scope.row.content }}</span>
+                  </template>
+                </el-table-column>
+                <el-table-column prop="mode" label="考试类别" width="160">
+                  <template v-slot="scope">
+                    <div v-if="scope.row.isEdit">
+                      <el-select v-model="scope.row.mode" clearable placeholder="请选择考试类别">
+                        <el-option v-for="option in assessOptions" :key="option.code" :label="option.name"
+                                   :value="option.code"></el-option>
+                      </el-select>
+                    </div>
+                    <div v-else>
+                      <el-select v-model="scope.row.mode" disabled placeholder="请选择考试类别">
+                        <el-option v-for="option in assessOptions" :key="option.code" :label="option.name"
+                                   :value="option.code"></el-option>
+                      </el-select>
+                    </div>
+                  </template>
+                </el-table-column>
+                <el-table-column prop="result" label="结果" width="180" show-overflow-tooltip>
+                  <template #header>
+                    <span>结果</span>
+                    <el-tooltip class="box-item" effect="dark" placement="top">
+                      <template #content>注:<br />请输入考核最终分数。</template>
+                      <el-icon color="red" size="14"><QuestionFilled /></el-icon>
+                    </el-tooltip>
+                  </template>
+                  <template v-slot="scope">
+                    <el-input v-if="scope.row.isEdit" size="small" v-model="scope.row.result"></el-input>
+                    <span v-else>{{ scope.row.result }}</span>
+                  </template>
+                </el-table-column>
+                <el-table-column fixed="right" label="操作" min-width="180" width="180" center>
+                  <template #default="scope">
+                    <el-button type="primary" size="small" v-if="!scope.row.isEdit"
+                               @click="edithlninthInfo(scope.row)">编辑</el-button>
+                    <el-button type="primary" size="small" v-if="scope.row.isEdit"
+                               @click="updatehlninthInfo(scope.row)">保存</el-button>
+                    <el-button type="primary" size="small" v-if="scope.row.isEdit"
+                               @click="cancelhlninthInfo(scope.row, scope.$index)">取消</el-button>
+                    <el-button type="danger" size="small" @click.prevent="deletehlninthInfo(scope.row)">
+                      删除</el-button>
+                  </template>
+                </el-table-column>
+              </el-table>
+            </div>
+          </div>
+        </el-tab-pane>
+        <el-tab-pane key="tenthInfo" label="各种医疗活动记录" name="tenthInfo">
+          <div class="layout_display_flex_y">
+            <div class="layout_flex_1-y">
+              <el-table :data="tenthData" border style="width: 100%; height: 100%" stripe highlight-current-row :key="tenthKey">
+                <el-table-column type="index" prop="no" label="序号" width="80" />
+                <el-table-column prop="id" label="id号" width="80" v-if="false"/>
+                <el-table-column prop="socialNo" label="身份证号" width="180">
+                  <template v-slot="scope">
+                    <el-input v-if="scope.row.isEdit" size="small" v-model="scope.row.socialNo"></el-input>
+                    <span v-else>{{ scope.row.socialNo }}</span>
+                  </template>
+                </el-table-column>
+                <el-table-column prop="time" label="时间" width="200">
+                  <template v-slot="scope">
+                    <el-date-picker v-if="scope.row.isEdit" v-model="scope.row.time" type="date" style="width: 100%"
+                                    format="YYYY-MM-DD" value-format="YYYY-MM-DD"/>
+                    <span v-else>{{ scope.row.time }}</span>
+                  </template>
+                </el-table-column>
+                <el-table-column prop="record" label="活动记录" width="360" show-overflow-tooltip>
+                  <template #header>
+                    <span>活动记录</span>
+                    <el-tooltip class="box-item" effect="dark" placement="top">
+                      <template #content>注:<br />医疗活动包括外出义诊、救助等政府指令性活动,不含单位自行组织的。</template>
+                      <el-icon color="red" size="14"><QuestionFilled /></el-icon>
+                    </el-tooltip>
+                  </template>
+                  <template v-slot="scope">
+                    <el-input v-if="scope.row.isEdit" size="small" v-model="scope.row.record"></el-input>
+                    <span v-else>{{ scope.row.record }}</span>
+                  </template>
+                </el-table-column>
+                <el-table-column prop="comment" label="备注" width="300" show-overflow-tooltip>
+                  <template v-slot="scope">
+                    <el-input v-if="scope.row.isEdit" size="small" v-model="scope.row.comment"></el-input>
+                    <span v-else>{{ scope.row.comment }}</span>
+                  </template>
+                </el-table-column>
+                <el-table-column fixed="right" label="操作" min-width="180" width="180" center>
+                  <template #default="scope">
+                    <el-button type="primary" size="small" v-if="!scope.row.isEdit"
+                               @click="editTenthInfo(scope.row)">编辑</el-button>
+                    <el-button type="primary" size="small" v-if="scope.row.isEdit"
+                               @click="updateTenthInfo(scope.row)">保存</el-button>
+                    <el-button type="primary" size="small" v-if="scope.row.isEdit"
+                               @click="cancelTenthInfo(scope.row, scope.$index)">取消</el-button>
+                    <el-button type="danger" size="small" @click.prevent="deleteTenthInfo(scope.row)">
+                      删除</el-button>
+                  </template>
+                </el-table-column>
+              </el-table>
+            </div>
+          </div>
+        </el-tab-pane>
+        <el-tab-pane key="twelfthInfo" label="奖惩情况" name="twelfthInfo">
+          <div class="layout_display_flex_y">
+            <div class="layout_flex_1-y">
+              <el-table :data="twelfthData" border style="width: 100%; height: 100%" stripe highlight-current-row :key="twelfthKey">
+                <el-table-column type="index" prop="no" label="序号" width="80" />
+                <el-table-column prop="id" label="id号" width="80" v-if="false"/>
+                <el-table-column prop="socialNo" label="身份证号" width="180">
+                  <template v-slot="scope">
+                    <el-input v-if="scope.row.isEdit" size="small" v-model="scope.row.socialNo"></el-input>
+                    <span v-else>{{ scope.row.socialNo }}</span>
+                  </template>
+                </el-table-column>
+                <el-table-column prop="time" label="时间" width="200">
+                  <template v-slot="scope">
+                    <el-date-picker v-if="scope.row.isEdit" v-model="scope.row.time" type="date" style="width: 100%"
+                                    format="YYYY-MM-DD" value-format="YYYY-MM-DD"/>
+                    <span v-else>{{ scope.row.time }}</span>
+                  </template>
+                </el-table-column>
+                <el-table-column prop="comment" label="受过何种奖励表彰或处罚" width="480" show-overflow-tooltip>
+                  <template #header>
+                    <span>受过何种奖励表彰或处罚</span>
+                    <el-tooltip class="box-item" effect="dark" placement="top">
+                      <template #content>注:<br />指院级以上的奖励、表彰或处罚。</template>
+                      <el-icon color="red" size="14"><QuestionFilled /></el-icon>
+                    </el-tooltip>
+                  </template>
+                  <template v-slot="scope">
+                    <el-input v-if="scope.row.isEdit" size="small" v-model="scope.row.comment"></el-input>
+                    <span v-else>{{ scope.row.comment }}</span>
+                  </template>
+                </el-table-column>
+                <el-table-column prop="unit" label="奖励或处罚单位" width="280" show-overflow-tooltip>
+                  <template v-slot="scope">
+                    <el-input v-if="scope.row.isEdit" size="small" v-model="scope.row.unit"></el-input>
+                    <span v-else>{{ scope.row.unit }}</span>
+                  </template>
+                </el-table-column>
+                <el-table-column fixed="right" label="操作" min-width="180" width="180" center>
+                  <template #default="scope">
+                    <el-button type="primary" size="small" v-if="!scope.row.isEdit"
+                               @click="editTwelfthInfo(scope.row)">编辑</el-button>
+                    <el-button type="primary" size="small" v-if="scope.row.isEdit"
+                               @click="updateTwelfthInfo(scope.row)">保存</el-button>
+                    <el-button type="primary" size="small" v-if="scope.row.isEdit"
+                               @click="cancelTwelfthInfo(scope.row, scope.$index)">取消</el-button>
+                    <el-button type="danger" size="small" @click.prevent="deleteTwelfthInfo(scope.row)">
+                      删除</el-button>
+                  </template>
+                </el-table-column>
+              </el-table>
+            </div>
+          </div>
+        </el-tab-pane>
+        <el-tab-pane key="thirteenthInfo" label="专业学会任职情况" name="thirteenthInfo">
+          <div class="layout_display_flex_y">
+            <div class="layout_flex_1-y">
+              <el-table :data="thirteenthData" border style="width: 100%; height: 100%" stripe highlight-current-row :key="thirteenthKey">
+                <el-table-column type="index" prop="no" label="序号" width="80" />
+                <el-table-column prop="id" label="id号" width="80" v-if="false"/>
+                <el-table-column prop="socialNo" label="身份证号" width="180">
+                  <template v-slot="scope">
+                    <el-input v-if="scope.row.isEdit" size="small" v-model="scope.row.socialNo"></el-input>
+                    <span v-else>{{ scope.row.socialNo }}</span>
+                  </template>
+                </el-table-column>
+                <el-table-column prop="time" label="时间" width="200">
+                  <template v-slot="scope">
+                    <el-date-picker v-if="scope.row.isEdit" v-model="scope.row.time" type="date" style="width: 100%"
+                                    format="YYYY-MM-DD" value-format="YYYY-MM-DD"/>
+                    <span v-else>{{ scope.row.time }}</span>
+                  </template>
+                </el-table-column>
+                <el-table-column prop="name" label="学会名称" width="420" show-overflow-tooltip>
+                  <template v-slot="scope">
+                    <el-input v-if="scope.row.isEdit" size="small" v-model="scope.row.name"></el-input>
+                    <span v-else>{{ scope.row.name }}</span>
+                  </template>
+                </el-table-column>
+                <el-table-column prop="title" label="任职情况" width="240" show-overflow-tooltip>
+                  <template v-slot="scope">
+                    <el-input v-if="scope.row.isEdit" size="small" v-model="scope.row.title"></el-input>
+                    <span v-else>{{ scope.row.title }}</span>
+                  </template>
+                </el-table-column>
+                <el-table-column fixed="right" label="操作" min-width="180" width="180" center>
+                  <template #default="scope">
+                    <el-button type="primary" size="small" v-if="!scope.row.isEdit"
+                               @click="editThirteenthInfo(scope.row)">编辑</el-button>
+                    <el-button type="primary" size="small" v-if="scope.row.isEdit"
+                               @click="updateThirteenthInfo(scope.row)">保存</el-button>
+                    <el-button type="primary" size="small" v-if="scope.row.isEdit"
+                               @click="cancelThirteenthInfo(scope.row, scope.$index)">取消</el-button>
+                    <el-button type="danger" size="small" @click.prevent="deleteThirteenthInfo(scope.row)">
+                      删除</el-button>
+                  </template>
+                </el-table-column>
+              </el-table>
+            </div>
+          </div>
+        </el-tab-pane>
+        <el-tab-pane key="fourteenthInfo" label="继续教育学分获得情况" name="fourteenthInfo">
+          <div class="layout_display_flex_y">
+            <div class="layout_flex_1-y">
+              <el-table :data="fourteenthData" border style="width: 100%; height: 100%" stripe highlight-current-row :key="fourteenthKey">
+                <el-table-column type="index" prop="no" label="序号" width="80" />
+                <el-table-column prop="id" label="id号" width="80" v-if="false"/>
+                <el-table-column prop="socialNo" label="身份证号" width="180">
+                  <template v-slot="scope">
+                    <el-input v-if="scope.row.isEdit" size="small" v-model="scope.row.socialNo"></el-input>
+                    <span v-else>{{ scope.row.socialNo }}</span>
+                  </template>
+                </el-table-column>
+                <el-table-column prop="year" label="年度" width="160">
+                  <template v-slot="scope">
+                    <el-date-picker v-if="scope.row.isEdit" v-model="scope.row.year" type="year" style="width: 100%"
+                                    format="YYYY" value-format="YYYY"/>
+                    <span v-else>{{ scope.row.year }}</span>
+                  </template>
+                </el-table-column>
+                <el-table-column prop="finish" label="完成情况" header-align="center">
+                  <el-table-column prop="score1" label="Ⅰ类学分" width="120">
+                    <template v-slot="scope">
+                      <el-input v-if="scope.row.isEdit" size="small" v-model.trim="scope.row.score1" @change="totalFormat(scope.row)"></el-input>
+                      <span v-else>{{ scope.row.score1 }}</span>
+                    </template>
+                  </el-table-column>
+                  <el-table-column prop="score2" label="Ⅱ类学分" width="120">
+                    <template v-slot="scope">
+                      <el-input v-if="scope.row.isEdit" size="small" v-model.trim="scope.row.score2" @change="totalFormat(scope.row)"></el-input>
+                      <span v-else>{{ scope.row.score2 }}</span>
+                    </template>
+                  </el-table-column>
+                  <el-table-column prop="other" label="其他" width="120">
+                    <template v-slot="scope">
+                      <el-input v-if="scope.row.isEdit" size="small" v-model.trim="scope.row.other" @change="totalFormat(scope.row)"></el-input>
+                      <span v-else>{{ scope.row.other }}</span>
+                    </template>
+                  </el-table-column>
+                  <el-table-column prop="total" label="合计" width="120"></el-table-column>
+                </el-table-column>
+                <el-table-column prop="result" label="验证结果" width="130" show-overflow-tooltip>
+                  <template v-slot="scope">
+                    <div v-if="scope.row.isEdit">
+                      <el-select v-model="scope.row.result" clearable placeholder="请选择结果">
+                        <el-option v-for="option in verifyOptions" :key="option.code" :label="option.name"
+                                   :value="option.code"></el-option>
+                      </el-select>
+                    </div>
+                    <div v-else>
+                      <el-select v-model="scope.row.result" disabled placeholder="请选择结果">
+                        <el-option v-for="option in verifyOptions" :key="option.code" :label="option.name"
+                                   :value="option.code"></el-option>
+                      </el-select>
+                    </div>
+                  </template>
+                </el-table-column>
+                <el-table-column prop="comment" label="备注" width="360" show-overflow-tooltip>
+                  <template v-slot="scope">
+                    <el-input v-if="scope.row.isEdit" size="small" v-model="scope.row.comment"></el-input>
+                    <span v-else>{{ scope.row.comment }}</span>
+                  </template>
+                </el-table-column>
+                <el-table-column fixed="right" label="操作" min-width="180" width="180" center>
+                  <template #default="scope">
+                    <el-button type="primary" size="small" v-if="!scope.row.isEdit"
+                               @click="editFourteenthInfo(scope.row)">编辑</el-button>
+                    <el-button type="primary" size="small" v-if="scope.row.isEdit"
+                               @click="updateFourteenthInfo(scope.row)">保存</el-button>
+                    <el-button type="primary" size="small" v-if="scope.row.isEdit"
+                               @click="cancelFourteenthInfo(scope.row, scope.$index)">取消</el-button>
+                    <el-button type="danger" size="small" @click.prevent="deleteFourteenthInfo(scope.row)">
+                      删除</el-button>
+                  </template>
+                </el-table-column>
+              </el-table>
+            </div>
+          </div>
+        </el-tab-pane>
+        <el-tab-pane key="hlfifthInfo" label="轮科记录" name="hlfifthInfo">
+          <div class="layout_display_flex_y">
+            <div class="layout_flex_1-y">
+              <el-table :data="hlfifthData" border style="width: 100%; height: 100%" stripe highlight-current-row :key="hlfifthKey">
+                <el-table-column type="index" prop="no" label="序号" width="80" />
+                <el-table-column prop="id" label="id号" width="80" v-if="false"/>
+                <el-table-column prop="socialNo" label="身份证号" width="180">
+                  <template v-slot="scope">
+                    <el-input v-if="scope.row.isEdit" size="small" v-model="scope.row.socialNo"></el-input>
+                    <span v-else>{{ scope.row.socialNo }}</span>
+                  </template>
+                </el-table-column>
+                <el-table-column prop="beginTime" label="开始时间" width="200">
+                  <template v-slot="scope">
+                    <el-date-picker v-if="scope.row.isEdit" v-model="scope.row.beginTime" type="date" style="width: 100%"
+                                    format="YYYY-MM-DD" value-format="YYYY-MM-DD"/>
+                    <span v-else>{{ scope.row.beginTime }}</span>
+                  </template>
+                </el-table-column>
+                <el-table-column prop="endTime" label="结束时间" width="200">
+                  <template v-slot="scope">
+                    <el-date-picker v-if="scope.row.isEdit" v-model="scope.row.endTime" type="date" style="width: 100%"
+                                    format="YYYY-MM-DD" value-format="YYYY-MM-DD"/>
+                    <span v-else>{{ scope.row.endTime }}</span>
+                  </template>
+                </el-table-column>
+                <el-table-column prop="originalDepartment" label="原科室" width="320" show-overflow-tooltip>
+                  <template v-slot="scope" >
+                    <div v-if="scope.row.isEdit">
+                      <el-select v-model="scope.row.originalDepartment" clearable placeholder="请选择原科室">
+                        <el-option v-for="option in departmentOptions" :key="option.code" :label="option.name"
+                                   :value="option.code"></el-option>
+                      </el-select>
+                    </div>
+                    <div v-else>
+                      <el-select v-model="scope.row.originalDepartment" disabled placeholder="请选择原科室">
+                        <el-option v-for="option in departmentOptions" :key="option.code" :label="option.name"
+                                   :value="option.code"></el-option>
+                      </el-select>
+                    </div>
+                  </template>
+                </el-table-column>
+                <el-table-column prop="rotatingDepartment" label="轮转科室" width="320" show-overflow-tooltip>
+                  <template v-slot="scope" >
+                    <div v-if="scope.row.isEdit">
+                      <el-select v-model="scope.row.rotatingDepartment" clearable placeholder="请选择轮转科室">
+                        <el-option v-for="option in departmentOptions" :key="option.code" :label="option.name"
+                                   :value="option.code"></el-option>
+                      </el-select>
+                    </div>
+                    <div v-else>
+                      <el-select v-model="scope.row.rotatingDepartment" disabled placeholder="请选择轮转科室">
+                        <el-option v-for="option in departmentOptions" :key="option.code" :label="option.name"
+                                   :value="option.code"></el-option>
+                      </el-select>
+                    </div>
+                  </template>
+                </el-table-column>
+                <el-table-column prop="comment" label="备注" width="338" show-overflow-tooltip>
+                  <template v-slot="scope">
+                    <el-input v-if="scope.row.isEdit" size="small" v-model="scope.row.comment"></el-input>
+                    <span v-else>{{ scope.row.comment }}</span>
+                  </template>
+                </el-table-column>
+                <el-table-column fixed="right" label="操作" min-width="180" width="180" center>
+                  <template #default="scope">
+                    <el-button type="primary" size="small" v-if="!scope.row.isEdit"
+                               @click="edithlfifthInfo(scope.row)">编辑</el-button>
+                    <el-button type="primary" size="small" v-if="scope.row.isEdit"
+                               @click="updatehlfifthInfo(scope.row)">保存</el-button>
+                    <el-button type="primary" size="small" v-if="scope.row.isEdit"
+                               @click="cancelhlfifthInfo(scope.row, scope.$index)">取消</el-button>
+                    <el-button type="danger" size="small" @click.prevent="deletehlfifthInfo(scope.row)">
+                      删除</el-button>
+                  </template>
+                </el-table-column>
+              </el-table>
+            </div>
+          </div>
+        </el-tab-pane>
+        <el-tab-pane key="hlsixthInfo" label="科室调动记录(含借调)" name="hlsixthInfo">
+          <div class="layout_display_flex_y">
+            <div class="layout_flex_1-y">
+              <el-table :data="hlsixthData" border style="width: 100%; height: 100%" stripe highlight-current-row :key="hlsixthKey">
+                <el-table-column type="index" prop="no" label="序号" width="80" />
+                <el-table-column prop="id" label="id号" width="80" v-if="false"/>
+                <el-table-column prop="socialNo" label="身份证号" width="180">
+                  <template v-slot="scope">
+                    <el-input v-if="scope.row.isEdit" size="small" v-model="scope.row.socialNo"></el-input>
+                    <span v-else>{{ scope.row.socialNo }}</span>
+                  </template>
+                </el-table-column>
+                <el-table-column prop="beginTime" label="开始时间" width="200">
+                  <template v-slot="scope">
+                    <el-date-picker v-if="scope.row.isEdit" v-model="scope.row.beginTime" type="date" style="width: 100%"
+                                    format="YYYY-MM-DD" value-format="YYYY-MM-DD"/>
+                    <span v-else>{{ scope.row.beginTime }}</span>
+                  </template>
+                </el-table-column>
+                <el-table-column prop="endTime" label="结束时间" width="200">
+                  <template v-slot="scope">
+                    <el-date-picker v-if="scope.row.isEdit" v-model="scope.row.endTime" type="date" style="width: 100%"
+                                    format="YYYY-MM-DD" value-format="YYYY-MM-DD"/>
+                    <span v-else>{{ scope.row.endTime }}</span>
+                  </template>
+                </el-table-column>
+                <el-table-column prop="originalDepartment" label="原科室" width="320" show-overflow-tooltip>
+                  <template v-slot="scope" >
+                    <div v-if="scope.row.isEdit">
+                      <el-select v-model="scope.row.originalDepartment" clearable placeholder="请选择原科室">
+                        <el-option v-for="option in departmentOptions" :key="option.code" :label="option.name"
+                                   :value="option.code"></el-option>
+                      </el-select>
+                    </div>
+                    <div v-else>
+                      <el-select v-model="scope.row.originalDepartment" disabled placeholder="请选择原科室">
+                        <el-option v-for="option in departmentOptions" :key="option.code" :label="option.name"
+                                   :value="option.code"></el-option>
+                      </el-select>
+                    </div>
+                  </template>
+                </el-table-column>
+                <el-table-column prop="secondmentDepartment" label="调入科室" width="320" show-overflow-tooltip>
+                  <template v-slot="scope" >
+                    <div v-if="scope.row.isEdit">
+                      <el-select v-model="scope.row.secondmentDepartment" clearable placeholder="请选择调入科室">
+                        <el-option v-for="option in departmentOptions" :key="option.code" :label="option.name"
+                                   :value="option.code"></el-option>
+                      </el-select>
+                    </div>
+                    <div v-else>
+                      <el-select v-model="scope.row.secondmentDepartment" disabled placeholder="请选择调入科室">
+                        <el-option v-for="option in departmentOptions" :key="option.code" :label="option.name"
+                                   :value="option.code"></el-option>
+                      </el-select>
+                    </div>
+                  </template>
+                </el-table-column>
+                <el-table-column prop="comment" label="备注" width="338" show-overflow-tooltip>
+                  <template v-slot="scope">
+                    <el-input v-if="scope.row.isEdit" size="small" v-model="scope.row.comment"></el-input>
+                    <span v-else>{{ scope.row.comment }}</span>
+                  </template>
+                </el-table-column>
+                <el-table-column fixed="right" label="操作" min-width="180" width="180" center>
+                  <template #default="scope">
+                    <el-button type="primary" size="small" v-if="!scope.row.isEdit"
+                               @click="edithlsixthInfo(scope.row)">编辑</el-button>
+                    <el-button type="primary" size="small" v-if="scope.row.isEdit"
+                               @click="updatehlsixthInfo(scope.row)">保存</el-button>
+                    <el-button type="primary" size="small" v-if="scope.row.isEdit"
+                               @click="cancelhlsixthInfo(scope.row, scope.$index)">取消</el-button>
+                    <el-button type="danger" size="small" @click.prevent="deletehlsixthInfo(scope.row)">
+                      删除</el-button>
+                  </template>
+                </el-table-column>
+              </el-table>
+            </div>
+          </div>
+        </el-tab-pane>
+        <el-tab-pane key="hlseventhInfo" label="休假记录" name="hlseventhInfo">
+          <div class="layout_display_flex_y">
+            <div class="layout_flex_1-y">
+              <el-table :data="hlseventhData" border style="width: 100%; height: 100%" stripe highlight-current-row :key="hlseventhKey">
+                <el-table-column type="index" prop="no" label="序号" width="80" />
+                <el-table-column prop="id" label="id号" width="80" v-if="false"/>
+                <el-table-column prop="socialNo" label="身份证号" width="180">
+                  <template v-slot="scope">
+                    <el-input v-if="scope.row.isEdit" size="small" v-model="scope.row.socialNo"></el-input>
+                    <span v-else>{{ scope.row.socialNo }}</span>
+                  </template>
+                </el-table-column>
+                <el-table-column prop="approvalTime" label="批假时间" width="200">
+                  <template v-slot="scope">
+                    <el-date-picker v-if="scope.row.isEdit" v-model="scope.row.approvalTime" type="date" style="width: 100%"
+                                    format="YYYY-MM-DD" value-format="YYYY-MM-DD"/>
+                    <span v-else>{{ scope.row.approvalTime }}</span>
+                  </template>
+                </el-table-column>
+                <el-table-column prop="leaveBeginTime" label="假期开始时间" width="180">
+                  <template v-slot="scope">
+                    <el-date-picker v-if="scope.row.isEdit" v-model="scope.row.leaveBeginTime" type="date" style="width: 100%"
+                                    format="YYYY-MM-DD" value-format="YYYY-MM-DD" @change="onchange(scope.row)"/>
+                    <span v-else>{{ scope.row.leaveBeginTime }}</span>
+                  </template>
+                </el-table-column>
+                <el-table-column prop="leaveEndTime" label="假期结束时间" width="180">
+                  <template v-slot="scope">
+                    <el-date-picker v-if="scope.row.isEdit" v-model="scope.row.leaveEndTime" type="date" style="width: 100%"
+                                    format="YYYY-MM-DD" value-format="YYYY-MM-DD" @change="onchange(scope.row)"/>
+                    <span v-else>{{ scope.row.leaveEndTime }}</span>
+                  </template>
+                </el-table-column>
+                <el-table-column prop="totalDays" label="总天数" width="100" show-overflow-tooltip>
+                  <template v-slot="scope">
+                    <el-input v-if="scope.row.isEdit" size="small" v-model="scope.row.totalDays" ></el-input>
+                    <span v-else>{{ scope.row.totalDays }}</span>
+                  </template>
+                </el-table-column>
+                <el-table-column prop="leaveType" label="请假类别" width="200" show-overflow-tooltip>
+                  <template #header>
+                    <span>请假类别</span>
+                    <el-tooltip class="box-item" effect="dark" placement="top">
+                      <template #content>注:<br />请假类别选择其他假时需要在事由说明。</template>
+                      <el-icon color="red" size="14"><QuestionFilled /></el-icon>
+                    </el-tooltip>
+                  </template>
+                  <template v-slot="scope" >
+                    <div v-if="scope.row.isEdit">
+                      <el-select v-model="scope.row.leaveType" clearable placeholder="请选择请假类别">
+                        <el-option v-for="option in leaveTypeOptions" :key="option.code" :label="option.name"
+                                   :value="option.code"></el-option>
+                      </el-select>
+                    </div>
+                    <div v-else>
+                      <el-select v-model="scope.row.leaveType" disabled placeholder="请选择请假类别">
+                        <el-option v-for="option in leaveTypeOptions" :key="option.code" :label="option.name"
+                                   :value="option.code"></el-option>
+                      </el-select>
+                    </div>
+                  </template>
+                </el-table-column>
+                <el-table-column prop="leaveReason" label="请假事由" width="300" show-overflow-tooltip>
+                  <template v-slot="scope">
+                    <el-input v-if="scope.row.isEdit" size="small" v-model="scope.row.leaveReason"></el-input>
+                    <span v-else>{{ scope.row.leaveReason }}</span>
+                  </template>
+                </el-table-column>
+                <el-table-column prop="cancelTime" label="销假日期" width="200">
+                  <template v-slot="scope">
+                    <el-date-picker v-if="scope.row.isEdit" v-model="scope.row.cancelTime" type="date" style="width: 100%"
+                                    format="YYYY-MM-DD" value-format="YYYY-MM-DD"/>
+                    <span v-else>{{ scope.row.cancelTime }}</span>
+                  </template>
+                </el-table-column>
+                <el-table-column prop="image" label="请假截图" min-width="180" >
+                  <template #header>
+                    <span>请假截图</span>
+                    <el-tooltip class="box-item" effect="dark" placement="top">
+                      <template #content>注:<br />企业微信上请假逐级批准成功的截图。</template>
+                      <el-icon color="red" size="14"><QuestionFilled /></el-icon>
+                    </el-tooltip>
+                  </template>
+                  <template v-slot="scope">
+                    <div v-if="scope.row.isEdit">
+                      <el-upload
+                          ref="upload"
+                          v-model:file-list="hl7fileList"
+                          list-type="picture-card"
+                          :action="apiUrl + '/hltechnologyArchives/putHL7CertificateImage'"
+                          :headers="header"
+                          :data="{ socialNo: scope.row.socialNo, approvalTime: scope.row.approvalTime }"
+                          :on-success="hl7uploadSuccess"
+                          :on-preview="handlePreviewhl7"
+                          :on-remove="handleRemove"
+                          :before-upload="beforeUpload"
+                          :auto-upload="false"
+                          :multiple
+                          :show-file-list="true"
+                      >
+                        <el-icon> <Plus /></el-icon>
+                        <template #tip>
+                          <div class="el-upload__tip">只能上传 jpg/png 文件,且不超过 2MB</div>
+                        </template>
+                      </el-upload>
+                      <el-button style="margin-top: 10px" type="success" icon="Upload" @click="hl7submitUpload(scope.row)">上传到服务器</el-button>
+                      <el-dialog v-model="dialogVisible" append-to-body >
+                        <img w-full :src="dialogImageUrl"  />
+                      </el-dialog>
+                    </div>
+                    <div v-else class="demo-image__preview">
+                      <el-image
+                        style="width: 100px; height: 100px"
+                        :src="holidayurl"
+                        :zoom-rate="1.2"
+                        :max-scale="7"
+                        :min-scale="0.2"
+                        :preview-src-list="hl7srcList"
+                        :preview-teleported="true"
+                        fit="cover"
+                      />
+                  </div>
+                  </template>
+                </el-table-column>
+                <el-table-column fixed="right" label="操作" min-width="180" width="180" center>
+                  <template #default="scope">
+                    <el-button type="primary" size="small" v-if="!scope.row.isEdit"
+                               @click="edithlseventhInfo(scope.row)">编辑</el-button>
+                    <el-button type="primary" size="small" v-if="scope.row.isEdit"
+                               @click="updatehlseventhInfo(scope.row)">保存</el-button>
+                    <el-button type="primary" size="small" v-if="scope.row.isEdit"
+                               @click="cancelhlseventhInfo(scope.row, scope.$index)">取消</el-button>
+                    <el-button type="danger" size="small" @click.prevent="deletehlseventhInfo(scope.row)">
+                      删除</el-button>
+                  </template>
+                </el-table-column>
+              </el-table>
+            </div>
+          </div>
+        </el-tab-pane>
+      </el-tabs>
+    </div>
+  </div>
+</template>
+<script  setup lang="ts" name="HLTechnologyArchivesMain">
+import {nextTick, onMounted, ref} from "vue";
+import {ElMessage, ElMessageBox, genFileId} from "element-plus";
+import type { UploadFile, UploadFiles, UploadProps, UploadUserFile, UploadRawFile } from 'element-plus'
+import XEUtils from "xe-utils";
+import {QuestionFilled, StarFilled} from '@element-plus/icons-vue'
+import {
+  delTechnologyArchives10ByCode,
+  delTechnologyArchives12ByCode,
+  delTechnologyArchives13ByCode,
+  delTechnologyArchives14ByCode,
+  delTechnologyArchives5ByCode,
+  delTechnologyArchives7ByCode,
+  delTechnologyArchivesHL1ByCode,
+  delTechnologyArchivesHL2ByCode,
+  delTechnologyArchivesHL3ByCode,
+  delTechnologyArchivesHL4ByCode,
+  delTechnologyArchivesHL5ByCode,
+  delTechnologyArchivesHL6ByCode,
+  delTechnologyArchivesHL7ByCode, 
+  delTechnologyArchivesHL9ByCode,
+  selectHLImage1,
+  selectHL1Image,
+  selectHL2Image,
+  selectHL4Image,
+  selectHL7Image,
+  setHLImage,
+  setHL1Image,
+  setHL2Image,
+  setHL4Image,
+  setHL7Image,
+  saveTechnologyArchives10,
+  saveTechnologyArchives12,
+  saveTechnologyArchives13,
+  saveTechnologyArchives14,
+  saveTechnologyArchives5,
+  saveTechnologyArchives7,
+  saveTechnologyArchivesHLMain,
+  saveTechnologyArchivesHL1,
+  saveTechnologyArchivesHL2,
+  saveTechnologyArchivesHL3,
+  saveTechnologyArchivesHL4,
+  saveTechnologyArchivesHL5,
+  saveTechnologyArchivesHL6,
+  saveTechnologyArchivesHL7,
+  saveTechnologyArchivesHL9,
+  selectDictInfo,
+  selectHLEmployeeInfo,
+  selectTechnologyArchives10,
+  selectTechnologyArchives12,
+  selectTechnologyArchives13,
+  selectTechnologyArchives14,
+  selectTechnologyArchives5,
+  selectTechnologyArchives7,
+  selectTechnologyArchivesHL1,
+  selectTechnologyArchivesHL2,
+  selectTechnologyArchivesHL3,
+  selectTechnologyArchivesHL4,
+  selectTechnologyArchivesHL5,
+  selectTechnologyArchivesHL6,
+  selectTechnologyArchivesHL7, 
+  selectTechnologyArchivesHL9,
+} from "@/api/technology-archives/technology-archives";
+import {useUserStore} from "@/pinia/user-store";
+
+const editableTabsValue = ref('baseInfo')
+const ruleFormRef = ref()
+const isEdit = ref(false)
+const dictData = ref([])
+const healthOptions = [{ code: '1', name: '健康' }, { code: '2', name: '良好' }, { code: '3', name: '有缺陷' }]
+const academicdegree = [{ code: '1', name: '无' }, { code: '2', name: '学士' }, { code: '3', name: '硕士' }, { code: '4', name: '博士' }]
+const assessOptions = [{ code: '1', name: '理论考试' }, { code: '2', name: '实际操作' }]
+const verifyOptions = [{ code: '1', name: '通过' }, { code: '2', name: '不通过' }, { code: '9', name: '其他' }]
+const leaveTypeOptions = [{ code: '1', name: '事假' }, { code: '2', name: '病假' }, { code: '3', name: '婚假' }, { code: '4', name: '产假' },{ code: '5', name: '丧假' },{ code: '6', name: '年假' },{ code: '7', name: '其他假' }]
+const departmentOptions = [{ code: 'JZK', name: '急诊科' }, { code: 'MZSSB', name: '麻醉手术部' }, { code: 'ICU', name: '重症医学科(ICU)' }, { code: 'SJNK', name: '神经内科' },{ code: 'PWK', name: '普外科' },{ code: 'MNWK', name: '泌尿外科' },
+                           { code: 'KFYXK', name: '康复医学科' }, { code: 'ZYK', name: '中医科' }, { code: 'GK', name: '骨科' }, { code: 'FCK', name: '妇产科' }, { code: 'ZLK', name: '肿瘤科' }, { code: 'HXYWZZYXK', name: '呼吸与危重症医学科' },
+                           { code: 'LNYXK', name: '老年医学科' }, { code: 'LNBK', name: '老年病科' }, {code: 'SJWK', name: '神经外科' }, { code: 'XXWK', name: '心胸外科' }, { code: 'YEBYHK', name: '眼耳鼻咽喉科' }, { code: 'XXGNK', name: '心血管内科' }, 
+                           { code: 'ZHWEK', name: '综合外二科' }, { code: 'EK', name: '儿科' },{ code: 'NFMYDXBK', name: '内分泌与代谢病科' }, { code: 'XHNK', name: '消化内科' }, { code: 'SBNK', name: '肾病内科' }, { code: 'XGJRK', name: '血管介入科' }]
+const userInfo = useUserStore().userInfo
+onMounted(() => {
+  nextTick(() => {
+    queryDictInfo()
+    selectHLEmployeeInfo(userInfo.code)
+      .then((res) => {
+        if(res){
+          baseInfoForm.value = res
+        }
+        selectHLImage1(baseInfoForm.value.socialNo)
+          .then((res1) => {
+            console.log(res1)
+            if(res1.data.image1){
+              personalimageurl.value = res1.data.image1
+              personalsrcList.value = [res1.data.image1]
+            }else{
+              personalimageurl.value = defaultimageUrl.value
+            }
+          })   
+      })
+  })
+})
+let baseInfoForm = ref({
+  modeFlag: '', // 模式:edit 编辑; add 新增
+  name: '', // 姓名
+  sex: '', // 性别
+  socialNo: '', // 身份证号码
+  nation: '', // 民族
+  birthday: '', // 出生年月
+  nativePlace: '', // 籍贯
+  politicCountenance: '', // 政治面貌
+  firstEducation: '', // 最高学历
+  firstSpeciality: '', // 专业
+  firstGraduationSchool: '', // 毕业学校
+  lastEducation: '', // 最高学历
+  lastSpeciality: '', // 专业
+  lastGraduationSchool: '', // 毕业学校
+  firstWorktime: '', // 参加工作时间
+  position: '', // 职务
+  address: '', // 现住地址
+  healthCondition: '', // 健康状况
+  healthComment: '', // 健康状况
+  phone: '', // 联系电话
+  existingCertificate: '', // 现有资格证
+  existingCertificateTime: '', // 现有资格证获取时间
+  nursePracticingCertificate: '', // 护士执业证书
+  nursePracticingCertificateTime: '', // 护士执业证书获取时间
+  image1: '', // 个人照片
+})
+const rulesInfo = reactive({
+  name: [
+    { required: true, message: '请填写姓名', trigger: 'blur' },
+  ],
+  sex: [
+    { required: true, message: '请选择性别', trigger: 'change' },
+  ],
+  socialNo: [
+    { required: true, message: '请填写身份证号', trigger: 'blur' },
+  ],
+})
+const text = ref('')
+const queryEmployeeInfo = () => {
+  if(!text.value){
+    ElMessage({
+      type: "warning",
+      message: '查询关键字不能为空!',
+      duration: 2500,
+      showClose: true,
+    });
+    return
+  }
+  selectHLEmployeeInfo(text.value)
+    .then((res) => {
+      if(res){
+        baseInfoForm.value = res
+      }
+      selectHLImage1(baseInfoForm.value.socialNo)
+          .then((res1) => {
+            if(res1.data.image1){
+              personalimageurl.value = res1.data.image1
+              personalsrcList.value = [res1.data.image1]
+            }else{
+              personalimageurl.value = defaultimageUrl.value
+            }
+          })   
+    })
+}
+const queryDictInfo = () => {
+  selectDictInfo()
+    .then((res) => {
+      if (res) {
+        dictData.value = res
+      }
+    })
+}
+// 出身年月格式化
+const birthdayFormat = () => {
+  let sfz = baseInfoForm.value.socialNo
+  baseInfoForm.value.birthday = sfz.substring(6, 10) + '-' + sfz.substring(10, 12)
+}
+// 保存基本信息
+const submitForm = async (formEl) => {
+  if(editableTabsValue.value !== 'baseInfo'){
+    ElMessage({
+      type: "info",
+      message: '只能保存护理基本信息,请知悉!',
+      duration: 2500,
+      showClose: true,
+    });
+    return
+  }
+
+  if (!formEl) return
+
+  console.log(baseInfoForm.value)
+  await formEl.validate((valid, fields) => {
+    if (valid) {
+      ElMessageBox.confirm('请确认是否保存护理技术档案基本信息?', {
+        cancelButtonText: '取消',
+        confirmButtonText: '确定',
+        type: 'warning',
+        distinguishCancelAndClose: true,
+      }).then(() => {
+        saveTechnologyArchivesHLMain(baseInfoForm.value).then((res) => {
+          ElMessage({
+            type: "success",
+            message: res.cg,
+            duration: 2500,
+            showClose: true,
+          });
+        })
+        if(purl.value){
+          console.log(purl.value)
+          setHLImage(purl.value,baseInfoForm.value.socialNo)
+          personalimageurl.value = uploadurl + purl.value 
+        }else{
+          personalimageurl.value = baseInfoForm.value.image1
+        }  
+        pfileList.value = []
+        purl.value = ''
+        disabled.value = true 
+      }).catch((action) => {
+        
+      })
+    } else {
+      ElMessage({
+        type: "info",
+        message: '保存失败,请确认!',
+        duration: 2500,
+        showClose: true,
+      });
+      pfileList.value[0] = []
+    }
+  })
+  
+}
+// 重置
+const resetForm = (formEl) => {
+  if(editableTabsValue.value !== 'baseInfo'){
+    ElMessage({
+      type: "info",
+      message: '只能重置护理基本信息,请知悉!',
+      duration: 2500,
+      showClose: true,
+    });
+    return
+  }
+  if (!formEl) return
+  formEl.resetFields()
+  personalimageurl.value = defaultimageUrl.value
+  pfileList.value[0] = []
+  disabled.value = true
+}
+// 切换tab
+const handleClick = (tab) => {
+  // 查询哪个tab页面
+  editableTabsValue.value = tab.props.name
+  if (editableTabsValue.value === 'baseInfo') {
+    if(!userInfo.code && userInfo.code != null){
+      selectHLEmployeeInfo(userInfo.code)
+          .then((res) => {
+            if(res){
+              baseInfoForm.value = res
+            }
+          })
+    }
+  } else if(editableTabsValue.value === 'fifthInfo'){
+    queryTechnologyArchives5()
+  } else if(editableTabsValue.value === 'seventhInfo'){
+    queryTechnologyArchives7()
+  } else if(editableTabsValue.value === 'tenthInfo'){
+    queryTechnologyArchives10()
+  } else if(editableTabsValue.value === 'twelfthInfo'){
+    queryTechnologyArchives12()
+  } else if(editableTabsValue.value === 'thirteenthInfo'){
+    queryTechnologyArchives13()
+  } else if(editableTabsValue.value === 'fourteenthInfo'){
+    queryTechnologyArchives14()
+  } else if(editableTabsValue.value === 'hlfirstInfo'){
+    queryTechnologyArchiveshl1()
+  } else if(editableTabsValue.value === 'hlsecondInfo'){
+    queryTechnologyArchiveshl2()
+  } else if(editableTabsValue.value === 'hlthirdInfo'){
+    queryTechnologyArchiveshl3()
+  } else if(editableTabsValue.value === 'hlfourthInfo'){
+    queryTechnologyArchiveshl4()
+  } else if(editableTabsValue.value === 'hlfifthInfo'){
+    queryTechnologyArchiveshl5()
+  } else if(editableTabsValue.value === 'hlsixthInfo'){
+    queryTechnologyArchiveshl6()
+  } else if(editableTabsValue.value === 'hlseventhInfo'){
+    queryTechnologyArchiveshl7()
+  } else if(editableTabsValue.value === 'hlninthInfo'){
+    queryTechnologyArchiveshl9()
+  }
+}
+const megTip = '核心数据有变更,与原始数据记录存在关联,请谨慎做更改,是否确认!!!'
+let fifthKey = ref(1)
+const fifthData = ref([])
+let seventhKey = ref(1)
+const seventhData = ref([])
+let tenthKey = ref(1)
+const tenthData = ref([])
+let twelfthKey = ref(1)
+const twelfthData = ref([])
+let thirteenthKey = ref(1)
+const thirteenthData = ref([])
+let fourteenthKey = ref(1)
+const fourteenthData = ref([])
+let hlfirstKey = ref(1)
+const hlfirstData = ref([])
+let hlsecondKey = ref(1)
+const hlsecondData = ref([])
+let hlthirdKey = ref(1)
+const hlthirdData = ref([])
+let hlfourthKey = ref(1)
+const hlfourthData = ref([])
+let hlfifthKey = ref(1)
+const hlfifthData = ref([])
+let hlsixthKey = ref(1)
+const hlsixthData = ref([])
+let hlseventhKey = ref(1)
+const hlseventhData = ref([])
+let hlninthKey = ref(1)
+const hlninthData = ref([])
+const queryTechnologyArchives5 = () => {
+  selectTechnologyArchives5()
+    .then((res) => {
+      res.forEach(row => {
+        // 是否标记
+        row['isEdit'] = false
+        // 是否新增
+        row['isAdd'] = false
+      })
+      fifthData.value = res
+    })
+    .catch(() => {
+      fifthData.value = []
+    })
+}
+const queryTechnologyArchives7 = () => {
+  selectTechnologyArchives7()
+    .then((res) => {
+      res.forEach(row => {
+        // 是否标记
+        row['isEdit'] = false
+        // 是否新增
+        row['isAdd'] = false
+      })
+      seventhData.value = res
+    })
+    .catch(() => {
+      seventhData.value = []
+    })
+}
+const queryTechnologyArchives10 = () => {
+  selectTechnologyArchives10()
+    .then((res) => {
+      res.forEach(row => {
+        // 是否标记
+        row['isEdit'] = false
+        // 是否新增
+        row['isAdd'] = false
+      })
+      tenthData.value = res
+    })
+    .catch(() => {
+      tenthData.value = []
+    })
+}
+const queryTechnologyArchives12 = () => {
+  selectTechnologyArchives12()
+    .then((res) => {
+      res.forEach(row => {
+        // 是否标记
+        row['isEdit'] = false
+        // 是否新增
+        row['isAdd'] = false
+      })
+      twelfthData.value = res
+    })
+    .catch(() => {
+      twelfthData.value = []
+    })
+}
+const queryTechnologyArchives13 = () => {
+  selectTechnologyArchives13()
+    .then((res) => {
+      res.forEach(row => {
+        // 是否标记
+        row['isEdit'] = false
+        // 是否新增
+        row['isAdd'] = false
+      })
+      thirteenthData.value = res
+    })
+    .catch(() => {
+      thirteenthData.value = []
+    })
+}
+const queryTechnologyArchives14 = () => {
+  selectTechnologyArchives14()
+      .then((res) => {
+        res.forEach(row => {
+          // 是否标记
+          row['isEdit'] = false
+          // 是否新增
+          row['isAdd'] = false
+        })
+        fourteenthData.value = res
+      })
+      .catch(() => {
+        fourteenthData.value = []
+      })
+}
+const imageList1 = ref([])
+const queryTechnologyArchiveshl1 = () => {
+  selectTechnologyArchivesHL1()
+    .then((res) => {
+      res.forEach(row => {
+        // 是否标记
+        row['isEdit'] = false
+        // 是否新增
+        row['isAdd'] = false
+        selectHL1Image(row.socialNo, row.getTime)
+          .then((res1)=>{
+            imageList1.value = res1.data.image.split(',')
+            for(let i=0; i<imageList1.value.length; i++){
+              srcList.value[i] = uploadurl + imageList1.value[i]
+            }
+            url.value = srcList.value[0]
+            console.log(res1.data.image.length)
+            console.log(srcList.value[0])
+        })
+      }) 
+      hlfirstData.value = res
+    })
+    .catch(() => {
+      hlfirstData.value = []
+    })
+}
+const queryTechnologyArchiveshl2 = () => {
+  selectTechnologyArchivesHL2()
+      .then((res) => {
+        res.forEach(row => {
+          // 是否标记
+          row['isEdit'] = false
+          // 是否新增
+          row['isAdd'] = false
+          selectHL2Image(row.socialNo, row.workTime)
+            .then((res1)=>{
+              workurl.value = row.image
+              hl2srcList.value = [res1.data.image]
+              console.log(row)
+              console.log(hl2srcList.value)
+          })
+        })
+        hlsecondData.value = res
+      })
+      .catch(() => {
+        hlsecondData.value = []
+      })
+}
+const queryTechnologyArchiveshl3 = () => {
+  selectTechnologyArchivesHL3()
+      .then((res) => {
+        res.forEach(row => {
+          // 是否标记
+          row['isEdit'] = false
+          // 是否新增
+          row['isAdd'] = false
+        })
+        hlthirdData.value = res
+      })
+      .catch(() => {
+        hlthirdData.value = []
+      })
+}
+const queryTechnologyArchiveshl4 = () => {
+  selectTechnologyArchivesHL4()
+      .then((res) => {
+        res.forEach(row => {
+          // 是否标记
+          row['isEdit'] = false
+          // 是否新增
+          row['isAdd'] = false
+          selectHL4Image(row.socialNo, row.id)
+            .then((res1)=>{
+              trainingurl.value = row.image
+              hl4srcList.value = [res1.data.image]
+              console.log(row)
+              console.log(res1.data.image)
+          })
+        })
+        hlfourthData.value = res
+      })
+      .catch(() => {
+        hlfourthData.value = []
+      })
+}
+const queryTechnologyArchiveshl5 = () => {
+  selectTechnologyArchivesHL5()
+      .then((res) => {
+        res.forEach(row => {
+          // 是否标记
+          row['isEdit'] = false
+          // 是否新增
+          row['isAdd'] = false
+        })
+        hlfifthData.value = res
+      })
+      .catch(() => {
+        hlfifthData.value = []
+      })
+}
+const queryTechnologyArchiveshl6 = () => {
+  selectTechnologyArchivesHL6()
+      .then((res) => {
+        res.forEach(row => {
+          // 是否标记
+          row['isEdit'] = false
+          // 是否新增
+          row['isAdd'] = false
+        })
+        hlsixthData.value = res
+      })
+      .catch(() => {
+        hlsixthData.value = []
+      })
+}
+const imageList7 = ref([])
+const queryTechnologyArchiveshl7 = () => {
+  selectTechnologyArchivesHL7()
+      .then((res) => {
+        res.forEach(row => {
+          // 是否标记
+          row['isEdit'] = false
+          // 是否新增
+          row['isAdd'] = false
+          selectHL7Image(row.socialNo, row.id)
+          .then((res1)=>{
+            imageList7.value = res1.data.image.split(',')
+            for(let i=0; i<imageList7.value.length; i++){
+              hl7srcList.value[i] = uploadurl + imageList7.value[i]
+            }
+            holidayurl.value = hl7srcList.value[0]
+            console.log(res1.data.image.length)
+            console.log(hl7srcList.value[0])
+        })
+        })
+        hlseventhData.value = res
+      })
+      .catch(() => {
+        hlseventhData.value = []
+      })
+}
+const queryTechnologyArchiveshl9 = () => {
+  selectTechnologyArchivesHL9()
+    .then((res) => {
+      res.forEach(row => {
+        // 是否标记
+        row['isEdit'] = false
+        // 是否新增
+        row['isAdd'] = false
+      })
+      hlninthData.value = res
+    })
+    .catch(() => {
+      hlninthData.value = []
+    })
+}
+
+// 新增行
+const onAddItem = () => {
+  if(editableTabsValue.value === 'fifthInfo'){
+    fifthData.value.push({
+      socialNo: baseInfoForm.value.socialNo,
+      time: '',
+      topic: '',
+      periodical: '',
+      awards: '',
+      isEdit: true,
+      isAdd: true,
+    })
+  } else if(editableTabsValue.value === 'seventhInfo'){
+    seventhData.value.push({
+      socialNo: baseInfoForm.value.socialNo,
+      time: '',
+      name: '',
+      first: '',
+      second: '',
+      third: '',
+      fourth: '',
+      fifth: '',
+      comment: '',
+      isEdit: true,
+      isAdd: true,
+    })
+  } else if(editableTabsValue.value === 'tenthInfo'){
+    tenthData.value.push({
+      socialNo: baseInfoForm.value.socialNo,
+      time: '',
+      record: '',
+      comment: '',
+      isEdit: true,
+      isAdd: true,
+    })
+  } else if(editableTabsValue.value === 'twelfthInfo'){
+    twelfthData.value.push({
+      socialNo: baseInfoForm.value.socialNo,
+      time: '',
+      record: '',
+      comment: '',
+      unit: '',
+      isEdit: true,
+      isAdd: true,
+    })
+  } else if(editableTabsValue.value === 'thirteenthInfo'){
+    thirteenthData.value.push({
+      socialNo: baseInfoForm.value.socialNo,
+      time: '',
+      name: '',
+      title: '',
+      isEdit: true,
+      isAdd: true,
+    })
+  } else if(editableTabsValue.value === 'fourteenthInfo'){
+    fourteenthData.value.push({
+      socialNo: baseInfoForm.value.socialNo,
+      year: '',
+      score1: '',
+      score2: '',
+      other: '',
+      total: '',
+      result: '',
+      comment: '',
+      isEdit: true,
+      isAdd: true,
+    })
+  }  else if(editableTabsValue.value === 'hlfirstInfo') {
+    hlfirstData.value.push({
+      socialNo: baseInfoForm.value.socialNo,
+      getTime: '',
+      title: '',
+      number: '',
+      issuingAuthority: '',
+      image: '',
+      isEdit: true,
+      isAdd: true,
+      isUpload: false,
+      isOversize: false,
+      isJPG: true
+    })
+    fileList.value = []
+  } else if (editableTabsValue.value === 'hlsecondInfo'){
+    hlsecondData.value.push({
+      socialNo: baseInfoForm.value.socialNo,
+      beginTime: '',
+      endTime: '',
+      unit: '',
+      title: '',
+      workTime: '',
+      speciality: '',
+      id: '',
+      image: '',
+      isEdit: true,
+      isAdd: true,
+      isUpload: false,
+      isOversize: false,
+      isJPG: true
+    })
+    hl2fileList.value = []
+  } else if(editableTabsValue.value === 'hlthirdInfo'){
+    hlthirdData.value.push({
+      socialNo: baseInfoForm.value.socialNo,
+      beginTime: '',
+      endTime: '',
+      schoolName: '',
+      speciality: '',
+      education: '',
+      academicDegree: '',
+      id: '',
+      account: '',
+      comment: '',
+      isEdit: true,
+      isAdd: true,
+    })
+  } else if(editableTabsValue.value === 'hlfourthInfo'){
+    hlfourthData.value.push({
+      socialNo: baseInfoForm.value.socialNo,
+      beginTime: '',
+      endTime: '',
+      learningContent: '',
+      learningUnit: '',
+      id: '',
+      account: '',
+      image: '',
+      name: '',
+      isEdit: true,
+      isAdd: true,
+      isUpload: false,
+      isOversize: false,
+      isJPG: true
+    })
+    hl4fileList.value = []
+  } else if(editableTabsValue.value === 'hlfifthInfo'){
+    hlfifthData.value.push({
+      socialNo: baseInfoForm.value.socialNo,
+      beginTime: '',
+      endTime: '',
+      originalDepartment: '',
+      rotatingDepartment: '',
+      id: '',
+      account: '',
+      comment: '',
+      isEdit: true,
+      isAdd: true,
+    })
+  } else if(editableTabsValue.value === 'hlsixthInfo'){
+    hlsixthData.value.push({
+      socialNo: baseInfoForm.value.socialNo,
+      beginTime: '',
+      endTime: '',
+      originalDepartment: '',
+      secondmentDepartment: '',
+      id: '',
+      account: '',
+      comment: '',
+      isEdit: true,
+      isAdd: true,
+    })
+  } else if(editableTabsValue.value === 'hlseventhInfo'){
+    hlseventhData.value.push({
+      socialNo: baseInfoForm.value.socialNo,
+      approvalTime: '',
+      leaveBeginTime: '',
+      leaveEndTime: '',
+      totalDays: '',
+      leaveType: '',
+      leaveReason: '',
+      cancelTime: '',
+      image: '',
+      id: '',
+      account: '',
+      isEdit: true,
+      isAdd: true,
+      isUpload: false,
+      isOversize: false,
+      isJPG: true
+    })
+    hl7fileList.value = []
+  } else if(editableTabsValue.value === 'hlninthInfo'){
+    hlninthData.value.push({
+      socialNo: baseInfoForm.value.socialNo,
+      time: '',
+      content: '',
+      mode: '',
+      result: '',
+      comment: '',
+      isEdit: true,
+      isAdd: true,
+    })
+  } 
+}
+
+//
+const dialogImageUrl = ref('')
+const disabled = ref(true)
+const pfileList = ref([])
+const uploadurl = "http://172.16.32.197:8077/upload"
+const defaultimageUrl = ref('https://cube.elemecdn.com/9/c2/f0ee8a3c7c9638a54940382568c9dpng.png')
+const personalimageurl = ref()
+const personalsrcList= ref([])
+const uploadpersonalimage = () => {
+  pfileList.value = []
+  disabled.value = false
+}
+
+// 图片上传前文件信息
+const beforeUpload = (file: File,row) => {
+  if (!(file.type === 'image/jpeg' || file.type === 'image/png')) {
+    ElMessage.error('上传图片只能是 jpg 或 png 格式!')
+    row.isJPG = false
+  }else if (file.size / 1024 / 1024 > 2) {
+    ElMessage.error('上传图片大小不能超过 2MB!')
+    row.isOversize = true
+  }              
+  console.log('正在上传文件:'+ file.name)
+}
+
+const handleExceed = (files) => {
+  upload.value!.clearFiles()
+  const file = files[0] as UploadRawFile
+  file.uid = genFileId()
+  upload.value!.handleStart(file)
+}
+
+const uploadserver = () => {
+  upload.value!.submit();
+}
+
+const cancelupload = () => {
+  disabled.value = true
+}
+
+const purl = ref("")
+function uploadSuccess(response: any, uploadFile: UploadFile, uploadFiles: UploadFiles) {
+  purl.value = response.data.data.path
+  const index = XEUtils.findLastIndexOf(pfileList.value, (item: UploadUserFile) => {
+    return item.uid === uploadFile.uid;
+  })
+  if (response.code === 200) {
+    pfileList.value[index].url = uploadurl + purl.value
+    console.log(pfileList.value)
+    ElMessage.success("上传成功");
+  } else {
+    pfileList.value[index].status = 'fail'
+    ElMessage.error("上传失败");
+  }
+}
+
+// 专业技术资格证书取得情况增删改存开始
+// 编辑
+const edithlfirstInfo = (row) => {
+  // 备份原始数据
+  row['oldRow'] = JSON.parse(JSON.stringify(row))
+  row.isEdit = true
+  if(row.image != null){
+    row.isUpload = true
+  }
+}
+// 取消
+const cancelhlfirstInfo = (row, index) => {
+  // 如果是新增的数据
+  if (row.isAdd) {
+    hlfirstData.value.splice(index, 1)
+  } else {
+    // 不是新增的数据  还原数据
+    for (const i in row.oldRow) {
+      row[i] = row.oldRow[i]
+    }
+  }
+  if(!row.isUpload){
+    fileList.value = []
+  } 
+  if(row.getTime == null || row.issuingAuthority == null || row.name == null){
+    fileList.value = []
+  }
+  hlsixthKey.value = Math.random()
+}
+
+//上传图片
+const apiUrl = import.meta.env.VITE_BASE_URL
+const upload = ref()
+const fileList = ref([])
+const dialogVisible = ref(false) 
+
+const handleRemove= (uploadFile, uploadFiles) => {
+  console.log(uploadFile, uploadFiles)
+}
+
+const handlePreview= (uploadFile) => {
+  dialogImageUrl.value = uploadFile.url
+  dialogVisible.value = true
+  console.log(pfileList.value[0].name)
+}
+
+const handlePreviewhl1= (uploadFile) => {
+  dialogImageUrl.value = uploadFile.url
+  dialogVisible.value = true
+  console.log(fileList.value[0].name)
+}
+
+const handlePreviewhl2= (uploadFile) => {
+  dialogImageUrl.value = uploadFile.url
+  dialogVisible.value = true
+  console.log(hl2fileList.value[0].name)
+}
+
+const handlePreviewhl4= (uploadFile) => {
+  dialogImageUrl.value = uploadFile.url
+  dialogVisible.value = true
+  console.log(hl4fileList.value[0].name)
+}
+const handlePreviewhl7= (uploadFile) => {
+  dialogImageUrl.value = uploadFile.url
+  dialogVisible.value = true
+  console.log(hl7fileList.value[0].name)
+}
+
+const header = {
+  token: localStorage.token, 
+}
+
+const multiple = computed(() => {
+  // return stringIsBlank(props.getTime)
+  if(fileList.value.length > 1){
+    return true
+  }
+  return false
+})
+ 
+//上传
+const submitUpload = (row) => {
+  if(row.isOversize && !row.isJPG){
+    row.isUpload = false
+  }else{
+    upload.value!.action = `${apiUrl}/hltechnologyArchives/putHL1CertificateImage?socialNo=${row.socialNo}&title=${row.title}`
+    upload.value!.submit();
+    row.isUpload = true 
+  }
+}
+const url1s = ref([])
+const url1 = ref("")
+function uploadSuccess1(response: any, uploadFile: UploadFile) {
+  console.log(response.data.urls.length)
+  // url1.value = response.data.urls
+  url1s.value.push(response.data.urls)  
+  console.log(url1s.value)
+  url1.value = url1s.value.join(",") 
+  console.log(url1.value)
+  const index = XEUtils.findLastIndexOf(fileList.value, (item: UploadUserFile) => {
+    return item.uid === uploadFile.uid;
+  })
+  if (response.code === 200) {
+    for(let i=0; i<url1s.value.length; i++){
+      fileList.value[index].url = uploadurl + url1s.value[i]
+    }
+    ElMessage.success("上传成功");
+  } else {
+    fileList.value[index].status = 'fail'
+    ElMessage.error("上传失败");
+  }
+}
+
+//查看图片
+const srcList = ref([])
+const url = ref("")
+
+
+// 保存
+const updatehlfirstInfo = (row) => {
+  if (!row.socialNo || !row.getTime) {
+    ElMessage({
+      type: "warning",
+      message: "身份证号或批准时间不存在,请检查!",
+      duration: 2500,
+      showClose: true,
+    });
+    return
+  }
+  if (row.isAdd) {
+    let fe = 0
+    for (let num in hlsixthData.value) {
+      if (hlsixthData.value[num].getTime === row.getTime) {
+        fe++
+      }
+    }
+    if (fe === 2) {
+      ElMessage({
+        type: "warning",
+        message: "存在重复的技术职称,请核对!",
+        duration: 2500,
+        showClose: true,
+      });
+    } else {
+      callSavehlfirstInfo(row, null)
+    }  
+  }else {
+    let oldGetTime = row.oldRow.getTime
+    if (oldGetTime !== row.getTime) {
+      ElMessageBox.confirm(megTip, {
+        cancelButtonText: '取消',
+        confirmButtonText: '确定',
+        type: 'warning',
+        distinguishCancelAndClose: true,
+        dangerouslyUseHTMLString: true
+      }).then(() => {
+        callSavehlfirstInfo(row, oldGetTime)
+      }).catch((action) => {
+        if (action === 'cancel') {
+          queryTechnologyArchiveshl1()
+        }
+      })
+    } else {
+      callSavehlfirstInfo(row, oldGetTime)
+    } 
+  }
+}
+
+const callSavehlfirstInfo = (row, oldGetTime) => {
+  if(!row.isUpload){
+    ElMessage({
+      type: "warning",
+      message: "图片还未上传!",
+      duration: 2500,
+      showClose: true,
+    });
+  }else{
+    let title = '请确认是否保存<span style="color:#d12020;">' + row.title + '</span>?'
+    ElMessageBox.confirm(title, {
+      cancelButtonText: '取消',
+      confirmButtonText: '确定',
+      type: 'warning',
+      distinguishCancelAndClose: true,
+      dangerouslyUseHTMLString: true
+    }).then(() => {
+      saveTechnologyArchivesHL1(row).then((res) => {
+        ElMessage({
+          type: "success",
+          message: res.cg,
+          duration: 2500,
+          showClose: true,
+        });
+        if (oldGetTime !== null && oldGetTime !== row.getTime) {
+          // 删除原始数据
+          delTechnologyArchivesHL1ByCode(row.socialNo, oldGetTime).then((res) => {
+            queryTechnologyArchiveshl1()
+          })
+        } else {
+          queryTechnologyArchiveshl1()
+        }
+        console.log(url1.value)
+        setHL1Image(row.socialNo,row.getTime,url1.value)  
+        fileList.value = []
+        url1s.value = []
+      })
+    }).catch((action) => {
+      if (action === 'cancel') {
+        queryTechnologyArchiveshl1()
+        fileList.value = []
+      }
+    })
+  }
+  
+}
+
+const deletehlfirstInfo = (row) => {
+  let title = '请确认是否删除<span style="color:#d12020;">' + row.title + '</span>?'
+  ElMessageBox.confirm(title, {
+    cancelButtonText: '取消',
+    confirmButtonText: '确定',
+    type: 'warning',
+    distinguishCancelAndClose: true,
+    dangerouslyUseHTMLString: true
+  }).then(() => {
+    delTechnologyArchivesHL6ByCode(row.socialNo, row.getTime).then((res) => {
+      ElMessage({
+        type: "success",
+        message: res.cg,
+        duration: 2500,
+        showClose: true,
+      });
+      queryTechnologyArchiveshl1()
+    })
+  }).catch((action) => {
+    if (action === 'cancel') {
+      queryTechnologyArchiveshl1()
+    }
+  })
+  fileList.value = [];
+}
+// 专业技术资格证书取得情况增删改存结束
+
+// 工作经历增删改存开始
+// 编辑
+const edithlsecondInfo = (row) => {
+  // 备份原始数据
+  row['oldRow'] = JSON.parse(JSON.stringify(row))
+  row.isEdit = true
+  if(row.image != null){
+    row.isUpload = true
+  }
+}
+// 取消
+const cancelhlsecondInfo = (row, index) => {
+  // 如果是新增的数据
+  if (row.isAdd) {
+    hlsecondData.value.splice(index, 1)
+  } else {
+    // 不是新增的数据  还原数据
+    for (const i in row.oldRow) {
+      row[i] = row.oldRow[i]
+    }
+  }
+  if(!row.isUpload){
+    hl2fileList.value = []
+  } 
+  if(row.beginTime == null || row.endTime == null || row.workTime == null){
+    hl2fileList.value = []
+  }
+
+  hlsecondKey.value = Math.random()
+}
+
+//上传
+const hl2submitUpload = (row) => {
+  if(row.isOversize && !row.isJPG){
+    row.isUpload = false
+  }else{
+    upload.value!.submit();
+    row.isUpload = true 
+  }
+}
+
+//上传图片
+const hl2fileList = ref([])
+ 
+const hl2url = ref("")
+function hl2uploadSuccess(response: any, uploadFile: UploadFile, uploadFiles: UploadFiles) {
+  hl2url.value = response.data.data.path
+  const index = XEUtils.findLastIndexOf(hl2fileList.value, (item: UploadUserFile) => {
+    return item.uid === uploadFile.uid;
+  })
+  if (response.code === 200) {
+    hl2fileList.value[index].url = uploadurl + hl2url.value
+    ElMessage.success("上传成功");
+  } else {
+    hl2fileList.value[index].status = 'fail'
+    ElMessage.error("上传失败");
+  }
+}
+
+//查看图片
+const hl2srcList = ref([])
+const workurl = ref("")
+
+// 保存
+const updatehlsecondInfo = (row) => {
+  if (!row.socialNo) {
+    ElMessage({
+      type: "warning",
+      message: "身份证号不存在,请检查!",
+      duration: 2500,
+      showClose: true,
+    });
+    return
+  }
+  if (!row.isAdd && row.socialNo !== row.oldRow.socialNo) {
+    row.oldSocialNo = row.oldRow.socialNo
+  }
+  if (row.isAdd) {
+    let fe = 0
+    for (let num in hlsecondData.value) {
+      if (hlsecondData.value[num].workTime === row.workTime) {
+        fe++
+      }
+    }
+    if (fe === 2) {
+      ElMessage({
+        type: "warning",
+        message: "存在重复的工作经历,请核对!",
+        duration: 2500,
+        showClose: true,
+      });
+    } else {
+      callSavehlsecondInfo(row)
+    }  
+  }else {
+    callSavehlsecondInfo(row)
+  }
+}
+
+const callSavehlsecondInfo = (row) => {
+  if(!row.isUpload){
+    ElMessage({
+      type: "warning",
+      message: "图片还未上传!",
+      duration: 2500,
+      showClose: true,
+    });
+  }else{
+    let title = '请确认是否保存<span style="color:#d12020;">' + row.title + '</span>?'
+    ElMessageBox.confirm(title, {
+      cancelButtonText: '取消',
+      confirmButtonText: '确定',
+      type: 'warning',
+      distinguishCancelAndClose: true,
+      dangerouslyUseHTMLString: true
+    }).then(() => {
+      saveTechnologyArchivesHL2(row).then((res) => {
+        ElMessage({
+          type: "success",
+          message: res.cg,
+          duration: 2500,
+          showClose: true,
+        });
+        queryTechnologyArchiveshl2()
+        setHL2Image(row.socialNo,row.workTime,hl2url.value)
+        hl2fileList.value = []  
+      })
+    }).catch((action) => {
+      if (action === 'cancel') {
+        queryTechnologyArchiveshl2()
+        hl2fileList.value = [] 
+      }
+    })
+  }
+}
+
+const deletehlsecondInfo = (row) => {
+  let title = '请确认是否删除<span style="color:#d12020;">' + row.title + '</span>?'
+  ElMessageBox.confirm(title, {
+    cancelButtonText: '取消',
+    confirmButtonText: '确定',
+    type: 'warning',
+    distinguishCancelAndClose: true,
+    dangerouslyUseHTMLString: true
+  }).then(() => {
+    delTechnologyArchivesHL2ByCode(row.socialNo, row.id).then((res) => {
+      ElMessage({
+        type: "success",
+        message: res.cg,
+        duration: 2500,
+        showClose: true,
+      });
+      queryTechnologyArchiveshl2()
+    })
+  }).catch((action) => {
+    if (action === 'cancel') {
+      queryTechnologyArchiveshl2()
+    }
+  })
+}
+// 工作经历增删改存结束
+
+
+
+// 发表论文或专著情况增删改存开始
+// 编辑
+const editFifthInfo = (row) => {
+  // 备份原始数据
+  row['oldRow'] = JSON.parse(JSON.stringify(row))
+  row.isEdit = true
+}
+// 取消
+const cancelFifthInfo = (row, index) => {
+  // 如果是新增的数据
+  if (row.isAdd) {
+    fifthData.value.splice(index, 1)
+  } else {
+    // 不是新增的数据  还原数据
+    for (const i in row.oldRow) {
+      row[i] = row.oldRow[i]
+    }
+  }
+  fifthKey.value = Math.random()
+}
+// 保存
+const updateFifthInfo = (row) => {
+  if (!row.socialNo || !row.time) {
+    ElMessage({
+      type: "warning",
+      message: "身份证号或发表时间不存在,请检查!",
+      duration: 2500,
+      showClose: true,
+    });
+    return
+  }
+
+  if (row.isAdd) {
+    let fe = 0
+    for (let num in fifthData.value) {
+      if (fifthData.value[num].time === row.time) {
+        fe++
+      }
+    }
+    if (fe === 2) {
+      ElMessage({
+        type: "warning",
+        message: "存在重复的论文或专著题目,请核对!",
+        duration: 2500,
+        showClose: true,
+      });
+    } else {
+      callSaveFifthInfo(row, null)
+    }
+
+  } else {
+    let oldTime = row.oldRow.time
+    if (oldTime !== row.time) {
+      ElMessageBox.confirm(megTip, {
+        cancelButtonText: '取消',
+        confirmButtonText: '确定',
+        type: 'warning',
+        distinguishCancelAndClose: true,
+        dangerouslyUseHTMLString: true
+      }).then(() => {
+        callSaveFifthInfo(row, oldTime)
+      }).catch((action) => {
+        if (action === 'cancel') {
+          queryTechnologyArchives5()
+        }
+      })
+    } else {
+      callSaveFifthInfo(row, oldTime)
+    }
+  }
+}
+
+const callSaveFifthInfo = (row, oldTime) => {
+  let title = '请确认是否保存<span style="color:#d12020;">' + row.topic + '</span>?'
+  ElMessageBox.confirm(title, {
+    cancelButtonText: '取消',
+    confirmButtonText: '确定',
+    type: 'warning',
+    distinguishCancelAndClose: true,
+    dangerouslyUseHTMLString: true
+  }).then(() => {
+    saveTechnologyArchives5(row).then((res) => {
+      ElMessage({
+        type: "success",
+        message: res.cg,
+        duration: 2500,
+        showClose: true,
+      });
+      if (oldTime !== null && oldTime !== row.time) {
+        // 删除原始数据
+        delTechnologyArchives5ByCode(row.socialNo, oldTime).then((res) => {
+          queryTechnologyArchives5()
+        })
+      } else {
+        queryTechnologyArchives5()
+      }
+    })
+  }).catch((action) => {
+    if (action === 'cancel') {
+      queryTechnologyArchives5()
+    }
+  })
+}
+
+const deleteFifthInfo = (row) => {
+  let title = '请确认是否删除<span style="color:#d12020;">' + row.topic + '</span>?'
+  ElMessageBox.confirm(title, {
+    cancelButtonText: '取消',
+    confirmButtonText: '确定',
+    type: 'warning',
+    distinguishCancelAndClose: true,
+    dangerouslyUseHTMLString: true
+  }).then(() => {
+    delTechnologyArchives5ByCode(row.socialNo, row.time).then((res) => {
+      ElMessage({
+        type: "success",
+        message: res.cg,
+        duration: 2500,
+        showClose: true,
+      });
+      queryTechnologyArchives5()
+    })
+  }).catch((action) => {
+    if (action === 'cancel') {
+      queryTechnologyArchives5()
+    }
+  })
+}
+// 发表论文或专著情况增删改存结束
+
+// 开展新技术情况增删改存开始
+// 编辑
+const editSeventhInfo = (row) => {
+  // 备份原始数据
+  row['oldRow'] = JSON.parse(JSON.stringify(row))
+  row.isEdit = true
+}
+// 取消
+const cancelSeventhInfo = (row, index) => {
+  // 如果是新增的数据
+  if (row.isAdd) {
+    seventhData.value.splice(index, 1)
+  } else {
+    // 不是新增的数据  还原数据
+    for (const i in row.oldRow) {
+      row[i] = row.oldRow[i]
+    }
+  }
+  seventhKey.value = Math.random()
+}
+// 保存
+const updateSeventhInfo = (row) => {
+  if (!row.socialNo) {
+    ElMessage({
+      type: "warning",
+      message: "身份证号不存在,请检查!",
+      duration: 2500,
+      showClose: true,
+    });
+    return
+  }
+  if (!row.isAdd && row.socialNo !== row.oldRow.socialNo) {
+    row.oldSocialNo = row.oldRow.socialNo
+  }
+  callSaveSeventhInfo(row)
+}
+
+const callSaveSeventhInfo = (row) => {
+  let title = '请确认是否保存<span style="color:#d12020;">' + row.name + '</span>?'
+  ElMessageBox.confirm(title, {
+    cancelButtonText: '取消',
+    confirmButtonText: '确定',
+    type: 'warning',
+    distinguishCancelAndClose: true,
+    dangerouslyUseHTMLString: true
+  }).then(() => {
+    saveTechnologyArchives7(row).then((res) => {
+      ElMessage({
+        type: "success",
+        message: res.cg,
+        duration: 2500,
+        showClose: true,
+      });
+      queryTechnologyArchives7()
+    })
+  }).catch((action) => {
+    if (action === 'cancel') {
+      queryTechnologyArchives7()
+    }
+  })
+}
+
+// 删除
+const deleteSeventhInfo = (row) => {
+  let title = '请确认是否删除<span style="color:#d12020;">' + row.name + '</span>?'
+  ElMessageBox.confirm(title, {
+    cancelButtonText: '取消',
+    confirmButtonText: '确定',
+    type: 'warning',
+    distinguishCancelAndClose: true,
+    dangerouslyUseHTMLString: true
+  }).then(() => {
+    delTechnologyArchives7ByCode(row.socialNo, row.id).then((res) => {
+      ElMessage({
+        type: "success",
+        message: res.cg,
+        duration: 2500,
+        showClose: true,
+      });
+      queryTechnologyArchives7()
+    })
+  }).catch((action) => {
+    if (action === 'cancel') {
+      queryTechnologyArchives7()
+    }
+  })
+}
+// 开展新技术情况增删改存结束
+
+// 各种医疗活动记录增删改存开始
+// 编辑
+const editTenthInfo = (row) => {
+  // 备份原始数据
+  row['oldRow'] = JSON.parse(JSON.stringify(row))
+  row.isEdit = true
+}
+// 取消
+const cancelTenthInfo = (row, index) => {
+  // 如果是新增的数据
+  if (row.isAdd) {
+    tenthData.value.splice(index, 1)
+  } else {
+    // 不是新增的数据  还原数据
+    for (const i in row.oldRow) {
+      row[i] = row.oldRow[i]
+    }
+  }
+  tenthKey.value = Math.random()
+}
+// 保存
+const updateTenthInfo = (row) => {
+  if (!row.socialNo) {
+    ElMessage({
+      type: "warning",
+      message: "身份证号不存在,请检查!",
+      duration: 2500,
+      showClose: true,
+    });
+    return
+  }
+  if (!row.isAdd && row.socialNo !== row.oldRow.socialNo) {
+    row.oldSocialNo = row.oldRow.socialNo
+  }
+  callSaveTenthInfo(row)
+}
+
+const callSaveTenthInfo = (row) => {
+  let title = '请确认是否保存<span style="color:#d12020;">' + row.record.length > 10 ? row.record.substring(0,10) + '...' : row.record + '</span>?'
+  ElMessageBox.confirm(title, {
+    cancelButtonText: '取消',
+    confirmButtonText: '确定',
+    type: 'warning',
+    distinguishCancelAndClose: true,
+    dangerouslyUseHTMLString: true
+  }).then(() => {
+    saveTechnologyArchives10(row).then((res) => {
+      ElMessage({
+        type: "success",
+        message: res.cg,
+        duration: 2500,
+        showClose: true,
+      });
+      queryTechnologyArchives10()
+    })
+  }).catch((action) => {
+    if (action === 'cancel') {
+      queryTechnologyArchives10()
+    }
+  })
+}
+
+// 删除
+const deleteTenthInfo = (row) => {
+  let title = '请确认是否删除<span style="color:#d12020;">' + row.record.length > 10 ? row.record.substring(0,10) + '...' : row.record + '</span>?'
+  ElMessageBox.confirm(title, {
+    cancelButtonText: '取消',
+    confirmButtonText: '确定',
+    type: 'warning',
+    distinguishCancelAndClose: true,
+    dangerouslyUseHTMLString: true
+  }).then(() => {
+    delTechnologyArchives10ByCode(row.socialNo, row.id).then((res) => {
+      ElMessage({
+        type: "success",
+        message: res.cg,
+        duration: 2500,
+        showClose: true,
+      });
+      queryTechnologyArchives10()
+    })
+  }).catch((action) => {
+    if (action === 'cancel') {
+      queryTechnologyArchives10()
+    }
+  })
+}
+// 各种医疗活动记录增删改存结束
+
+// 奖惩情况增删改存开始
+// 编辑
+const editTwelfthInfo = (row) => {
+  // 备份原始数据
+  row['oldRow'] = JSON.parse(JSON.stringify(row))
+  row.isEdit = true
+}
+// 取消
+const cancelTwelfthInfo = (row, index) => {
+  // 如果是新增的数据
+  if (row.isAdd) {
+    twelfthData.value.splice(index, 1)
+  } else {
+    // 不是新增的数据  还原数据
+    for (const i in row.oldRow) {
+      row[i] = row.oldRow[i]
+    }
+  }
+  twelfthKey.value = Math.random()
+}
+// 保存
+const updateTwelfthInfo = (row) => {
+  if (!row.socialNo) {
+    ElMessage({
+      type: "warning",
+      message: "身份证号不存在,请检查!",
+      duration: 2500,
+      showClose: true,
+    });
+    return
+  }
+  if (!row.isAdd && row.socialNo !== row.oldRow.socialNo) {
+    row.oldSocialNo = row.oldRow.socialNo
+  }
+  callSaveTwelfthInfo(row)
+}
+
+const callSaveTwelfthInfo = (row) => {
+  let title = '请确认是否保存<span style="color:#d12020;">' + row.comment.length > 10 ? row.comment.substring(0,10) + '...' : row.comment + '</span>?'
+  ElMessageBox.confirm(title, {
+    cancelButtonText: '取消',
+    confirmButtonText: '确定',
+    type: 'warning',
+    distinguishCancelAndClose: true,
+    dangerouslyUseHTMLString: true
+  }).then(() => {
+    saveTechnologyArchives12(row).then((res) => {
+      ElMessage({
+        type: "success",
+        message: res.cg,
+        duration: 2500,
+        showClose: true,
+      });
+      queryTechnologyArchives12()
+    })
+  }).catch((action) => {
+    if (action === 'cancel') {
+      queryTechnologyArchives12()
+    }
+  })
+}
+
+// 删除
+const deleteTwelfthInfo = (row) => {
+  let title = '请确认是否删除<span style="color:#d12020;">' + row.comment.length > 10 ? row.comment.substring(0,10) + '...' : row.comment + '</span>?'
+  ElMessageBox.confirm(title, {
+    cancelButtonText: '取消',
+    confirmButtonText: '确定',
+    type: 'warning',
+    distinguishCancelAndClose: true,
+    dangerouslyUseHTMLString: true
+  }).then(() => {
+    delTechnologyArchives12ByCode(row.socialNo, row.id).then((res) => {
+      ElMessage({
+        type: "success",
+        message: res.cg,
+        duration: 2500,
+        showClose: true,
+      });
+      queryTechnologyArchives12()
+    })
+  }).catch((action) => {
+    if (action === 'cancel') {
+      queryTechnologyArchives12()
+    }
+  })
+}
+// 奖惩情况增删改存结束
+
+// 专业学会任职情况增删改存开始
+// 编辑
+const editThirteenthInfo = (row) => {
+  // 备份原始数据
+  row['oldRow'] = JSON.parse(JSON.stringify(row))
+  row.isEdit = true
+}
+// 取消
+const cancelThirteenthInfo = (row, index) => {
+  // 如果是新增的数据
+  if (row.isAdd) {
+    thirteenthData.value.splice(index, 1)
+  } else {
+    // 不是新增的数据  还原数据
+    for (const i in row.oldRow) {
+      row[i] = row.oldRow[i]
+    }
+  }
+  thirteenthKey.value = Math.random()
+}
+// 保存
+const updateThirteenthInfo = (row) => {
+  if (!row.socialNo) {
+    ElMessage({
+      type: "warning",
+      message: "身份证号不存在,请检查!",
+      duration: 2500,
+      showClose: true,
+    });
+    return
+  }
+  if (!row.isAdd && row.socialNo !== row.oldRow.socialNo) {
+    row.oldSocialNo = row.oldRow.socialNo
+  }
+  callSaveThirteenthInfo(row)
+}
+
+const callSaveThirteenthInfo = (row) => {
+  let title = '请确认是否保存<span style="color:#d12020;">' + row.name.length > 10 ? row.name.substring(0,10) + '...' : row.name + '</span>?'
+  ElMessageBox.confirm(title, {
+    cancelButtonText: '取消',
+    confirmButtonText: '确定',
+    type: 'warning',
+    distinguishCancelAndClose: true,
+    dangerouslyUseHTMLString: true
+  }).then(() => {
+    saveTechnologyArchives13(row).then((res) => {
+      ElMessage({
+        type: "success",
+        message: res.cg,
+        duration: 2500,
+        showClose: true,
+      });
+      queryTechnologyArchives13()
+    })
+  }).catch((action) => {
+    if (action === 'cancel') {
+      queryTechnologyArchives13()
+    }
+  })
+}
+
+// 删除
+const deleteThirteenthInfo = (row) => {
+  let title = '请确认是否删除<span style="color:#d12020;">' + row.name.length > 10 ? row.name.substring(0,10) + '...' : row.name + '</span>?'
+  ElMessageBox.confirm(title, {
+    cancelButtonText: '取消',
+    confirmButtonText: '确定',
+    type: 'warning',
+    distinguishCancelAndClose: true,
+    dangerouslyUseHTMLString: true
+  }).then(() => {
+    delTechnologyArchives13ByCode(row.socialNo, row.id).then((res) => {
+      ElMessage({
+        type: "success",
+        message: res.cg,
+        duration: 2500,
+        showClose: true,
+      });
+      queryTechnologyArchives13()
+    })
+  }).catch((action) => {
+    if (action === 'cancel') {
+      queryTechnologyArchives13()
+    }
+  })
+}
+// 专业学会任职情况增删改存结束
+
+// 继续教育学分获得情况增删改存开始
+// 编辑
+const editFourteenthInfo = (row) => {
+  // 备份原始数据
+  row['oldRow'] = JSON.parse(JSON.stringify(row))
+  row.isEdit = true
+}
+// 取消
+const cancelFourteenthInfo = (row, index) => {
+  // 如果是新增的数据
+  if (row.isAdd) {
+    fourteenthData.value.splice(index, 1)
+  } else {
+    // 不是新增的数据  还原数据
+    for (const i in row.oldRow) {
+      row[i] = row.oldRow[i]
+    }
+  }
+  fourteenthKey.value = Math.random()
+}
+// 保存
+const updateFourteenthInfo = (row) => {
+  if (!row.socialNo) {
+    ElMessage({
+      type: "warning",
+      message: "身份证号不存在,请检查!",
+      duration: 2500,
+      showClose: true,
+    });
+    return
+  }
+  let reg = /^[0-9]+([.][0-9]+)?$/
+  if (!reg.test(row.score1 === '' ? '0' : row.score1)
+      || !reg.test(row.score2 === '' ? '0' : row.score2)
+      || !reg.test(row.other === '' ? '0' : row.other)) {
+    ElMessage({
+      type: "warning",
+      message: "各个学分存在不是数字,请检查各个学分填写是否合理!",
+      duration: 2500,
+      showClose: true,
+    });
+    return
+  }
+  if (!row.isAdd && row.socialNo !== row.oldRow.socialNo) {
+    row.oldSocialNo = row.oldRow.socialNo
+  }
+  callSaveFourteenthInfo(row)
+}
+
+const callSaveFourteenthInfo = (row) => {
+  let title = '请确认是否保存<span style="color:#d12020;">' + row.year + '</span>?'
+  ElMessageBox.confirm(title, {
+    cancelButtonText: '取消',
+    confirmButtonText: '确定',
+    type: 'warning',
+    distinguishCancelAndClose: true,
+    dangerouslyUseHTMLString: true
+  }).then(() => {
+    saveTechnologyArchives14(row).then((res) => {
+      ElMessage({
+        type: "success",
+        message: res.cg,
+        duration: 2500,
+        showClose: true,
+      });
+      queryTechnologyArchives14()
+    })
+  }).catch((action) => {
+    if (action === 'cancel') {
+      queryTechnologyArchives14()
+    }
+  })
+}
+
+// 删除
+const deleteFourteenthInfo = (row) => {
+  let title = '请确认是否删除<span style="color:#d12020;">' + row.year + '</span>?'
+  ElMessageBox.confirm(title, {
+    cancelButtonText: '取消',
+    confirmButtonText: '确定',
+    type: 'warning',
+    distinguishCancelAndClose: true,
+    dangerouslyUseHTMLString: true
+  }).then(() => {
+    delTechnologyArchives14ByCode(row.socialNo, row.id).then((res) => {
+      ElMessage({
+        type: "success",
+        message: res.cg,
+        duration: 2500,
+        showClose: true,
+      });
+      queryTechnologyArchives14()
+    })
+  }).catch((action) => {
+    if (action === 'cancel') {
+      queryTechnologyArchives14()
+    }
+  })
+}
+// 继续教育学分获得情况增删改存结束
+
+// 继续教育学分获得情况合计格式化
+const totalFormat = (data) => {
+  data.total = Number.parseFloat(data.score1 === '' ? '0' : data.score1)
+      + Number.parseFloat(data.score2 === '' ? '0' : data.score2)
+      + Number.parseFloat(data.other === '' ? '0' : data.other)
+}
+
+// 学习经历增删改存开始
+// 编辑
+const edithlthirdInfo = (row) => {
+  // 备份原始数据
+  row['oldRow'] = JSON.parse(JSON.stringify(row))
+  row.isEdit = true
+}
+// 取消
+const cancelhlthirdInfo = (row, index) => {
+  // 如果是新增的数据
+  if (row.isAdd) {
+    hlthirdData.value.splice(index, 1)
+  } else {
+    // 不是新增的数据  还原数据
+    for (const i in row.oldRow) {
+      row[i] = row.oldRow[i]
+    }
+  }
+  hlthirdKey.value = Math.random()
+}
+// 保存
+const updatehlthirdInfo = (row) => {
+  if (!row.socialNo) {
+    ElMessage({
+      type: "warning",
+      message: "身份证号不存在,请检查!",
+      duration: 2500,
+      showClose: true,
+    });
+    return
+  }
+  if (!row.isAdd && row.socialNo !== row.oldRow.socialNo) {
+    row.oldSocialNo = row.oldRow.socialNo
+  }
+  callSavehlthirdInfo(row)
+}
+
+const callSavehlthirdInfo = (row) => {
+  let title = '请确认是否保存学习经历<span style="color:#d12020;">' + row.id + '</span>?'
+  ElMessageBox.confirm(title, {
+    cancelButtonText: '取消',
+    confirmButtonText: '确定',
+    type: 'warning',
+    distinguishCancelAndClose: true,
+    dangerouslyUseHTMLString: true
+  }).then(() => {
+    saveTechnologyArchivesHL3(row).then((res) => {
+      ElMessage({
+        type: "success",
+        message: res.cg,
+        duration: 2500,
+        showClose: true,
+      });
+      queryTechnologyArchiveshl3()
+    })
+  }).catch((action) => {
+    if (action === 'cancel') {
+      queryTechnologyArchiveshl3()
+    }
+  })
+}
+
+// 删除
+const deletehlthirdInfo = (row) => {
+  let title = '请确认是否删除学习经历<span style="color:#d12020;">' + row.id + '</span>?'
+  ElMessageBox.confirm(title, {
+    cancelButtonText: '取消',
+    confirmButtonText: '确定',
+    type: 'warning',
+    distinguishCancelAndClose: true,
+    dangerouslyUseHTMLString: true
+  }).then(() => {
+    delTechnologyArchivesHL3ByCode(row.socialNo, row.id).then((res) => {
+      ElMessage({
+        type: "success",
+        message: res.cg,
+        duration: 2500,
+        showClose: true,
+      });
+      queryTechnologyArchiveshl3()
+    })
+  }).catch((action) => {
+    if (action === 'cancel') {
+      queryTechnologyArchiveshl3()
+    }
+  })
+}
+// 学习经历增删改存结束
+
+// 培训经历增删改存开始
+// 编辑
+const edithlfourthInfo = (row) => {
+  // 备份原始数据
+  row['oldRow'] = JSON.parse(JSON.stringify(row))
+  row.isEdit = true
+  if(row.image != null){
+    row.isUpload = true
+  }
+}
+// 取消
+const cancelhlfourthInfo = (row, index) => {
+  // 如果是新增的数据
+  if (row.isAdd) {
+    hlfourthData.value.splice(index, 1)
+  } else {
+    // 不是新增的数据  还原数据
+    for (const i in row.oldRow) {
+      row[i] = row.oldRow[i]
+    }
+  }
+  if(!row.isUpload){
+    hl4fileList.value = []
+  } 
+  if(row.beginTime == null || row.learningContent == null || row.learningUnit == null){
+    hl4fileList.value = []
+  }
+  hlfourthKey.value = Math.random()
+}
+//上传
+const hl4submitUpload = (row) => {
+  if(row.isOversize && !row.isJPG){
+    row.isUpload = false
+  }else{
+    upload.value!.submit();
+    row.isUpload = true 
+  }
+}
+
+//上传图片
+const hl4fileList = ref([])
+ 
+const hl4url = ref("")
+function hl4uploadSuccess(response: any, uploadFile: UploadFile, uploadFiles: UploadFiles) {
+  hl4url.value = response.data.data.path
+  const index = XEUtils.findLastIndexOf(hl4fileList.value, (item: UploadUserFile) => {
+    return item.uid === uploadFile.uid;
+  })
+  if (response.code === 200) {
+    hl4fileList.value[index].url = uploadurl + hl4url.value
+    ElMessage.success("上传成功");
+  } else {
+    hl4fileList.value[index].status = 'fail'
+    ElMessage.error("上传失败");
+  }
+}
+
+//查看图片
+const hl4srcList = ref([])
+const trainingurl = ref("")
+
+// 保存
+const updatehlfourthInfo = (row) => {
+  if (!row.socialNo) {
+    ElMessage({
+      type: "warning",
+      message: "身份证号不存在,请检查!",
+      duration: 2500,
+      showClose: true,
+    });
+    return
+  }
+  if (!row.isAdd && row.socialNo !== row.oldRow.socialNo) {
+    row.oldSocialNo = row.oldRow.socialNo
+  }
+  if (row.isAdd) {
+    let fe = 0
+    for (let num in hlfourthData.value) {
+      if (hlfourthData.value[num].beginTime === row.beginTime) {
+        fe++
+      }
+    }
+    if (fe === 2) {
+      ElMessage({
+        type: "warning",
+        message: "存在重复的培训经历,请核对!",
+        duration: 2500,
+        showClose: true,
+      });
+    } else {
+      callSavehlfourthInfo(row)
+    }  
+  }else{
+    callSavehlfourthInfo(row)
+  }
+  // 
+}
+
+const callSavehlfourthInfo = (row) => {
+  if(!row.isUpload){
+    ElMessage({
+      type: "warning",
+      message: "图片还未上传!",
+      duration: 2500,
+      showClose: true,
+    });
+  }else{
+    let title = '请确认是否保存培训经历<span style="color:#d12020;">' + row.id + '</span>?'
+    ElMessageBox.confirm(title, {
+      cancelButtonText: '取消',
+      confirmButtonText: '确定',
+      type: 'warning',
+      distinguishCancelAndClose: true,
+      dangerouslyUseHTMLString: true
+    }).then(() => {
+      console.log(row)
+      saveTechnologyArchivesHL4(row).then((res) => {
+        ElMessage({
+          type: "success",
+          message: res.cg,
+          duration: 2500,
+          showClose: true,
+        });
+        setHL4Image(row.socialNo,row.beginTime,hl4url.value)
+        hl4fileList.value = []  
+        queryTechnologyArchiveshl4()
+      })
+    }).catch((action) => {
+      if (action === 'cancel') {
+        queryTechnologyArchiveshl4()
+        hl4fileList.value = []
+      }
+    })
+  }
+}
+
+// 删除
+const deletehlfourthInfo = (row) => {
+  let title = '请确认是否删除<span style="color:#d12020;">' + row.learningContent.length > 10 ? row.learningContent.substring(0,10) + '...' : row.learningContent + '</span>?'
+  ElMessageBox.confirm(title, {
+    cancelButtonText: '取消',
+    confirmButtonText: '确定',
+    type: 'warning',
+    distinguishCancelAndClose: true,
+    dangerouslyUseHTMLString: true
+  }).then(() => {
+    delTechnologyArchivesHL4ByCode(row.socialNo, row.id).then((res) => {
+      ElMessage({
+        type: "success",
+        message: res.cg,
+        duration: 2500,
+        showClose: true,
+      });
+      queryTechnologyArchiveshl4()
+    })
+  }).catch((action) => {
+    if (action === 'cancel') {
+      queryTechnologyArchiveshl4()
+    }
+  })
+  hl4fileList.value = [];
+}
+// 培训经历增删改存结束
+
+// 轮科记录增删改存开始
+// 编辑
+const edithlfifthInfo = (row) => {
+  // 备份原始数据
+  row['oldRow'] = JSON.parse(JSON.stringify(row))
+  row.isEdit = true
+}
+// 取消
+const cancelhlfifthInfo = (row, index) => {
+  // 如果是新增的数据
+  if (row.isAdd) {
+    hlfifthData.value.splice(index, 1)
+  } else {
+    // 不是新增的数据  还原数据
+    for (const i in row.oldRow) {
+      row[i] = row.oldRow[i]
+    }
+  }
+  hlfifthKey.value = Math.random()
+}
+// 保存
+const updatehlfifthInfo = (row) => {
+  if (!row.socialNo) {
+    ElMessage({
+      type: "warning",
+      message: "身份证号不存在,请检查!",
+      duration: 2500,
+      showClose: true,
+    });
+    return
+  }
+  if (!row.isAdd && row.socialNo !== row.oldRow.socialNo) {
+    row.oldSocialNo = row.oldRow.socialNo
+  }
+  callSavehlfifthInfo(row)
+}
+
+const callSavehlfifthInfo = (row) => {
+  let title = '请确认是否保存轮科记录<span style="color:#d12020;">' + row.id + '</span>?'
+  ElMessageBox.confirm(title, {
+    cancelButtonText: '取消',
+    confirmButtonText: '确定',
+    type: 'warning',
+    distinguishCancelAndClose: true,
+    dangerouslyUseHTMLString: true
+  }).then(() => {
+    saveTechnologyArchivesHL5(row).then((res) => {
+      ElMessage({
+        type: "success",
+        message: res.cg,
+        duration: 2500,
+        showClose: true,
+      });
+      queryTechnologyArchiveshl5()
+    })
+  }).catch((action) => {
+    if (action === 'cancel') {
+      queryTechnologyArchiveshl5()
+    }
+  })
+}
+
+// 删除
+const deletehlfifthInfo = (row) => {
+  let title = '请确认是否删除轮科记录<span style="color:#d12020;">' + row.id + '</span>?'
+  ElMessageBox.confirm(title, {
+    cancelButtonText: '取消',
+    confirmButtonText: '确定',
+    type: 'warning',
+    distinguishCancelAndClose: true,
+    dangerouslyUseHTMLString: true
+  }).then(() => {
+    delTechnologyArchivesHL5ByCode(row.socialNo, row.id).then((res) => {
+      ElMessage({
+        type: "success",
+        message: res.cg,
+        duration: 2500,
+        showClose: true,
+      });
+      queryTechnologyArchiveshl5()
+    })
+  }).catch((action) => {
+    if (action === 'cancel') {
+      queryTechnologyArchiveshl5()
+    }
+  })
+}
+// 轮科记录增删改存结束
+
+// 科室调动记录增删改存开始
+// 编辑
+const edithlsixthInfo = (row) => {
+  // 备份原始数据
+  row['oldRow'] = JSON.parse(JSON.stringify(row))
+  row.isEdit = true
+}
+// 取消
+const cancelhlsixthInfo = (row, index) => {
+  // 如果是新增的数据
+  if (row.isAdd) {
+    hlsixthData.value.splice(index, 1)
+  } else {
+    // 不是新增的数据  还原数据
+    for (const i in row.oldRow) {
+      row[i] = row.oldRow[i]
+    }
+  }
+  hlsixthKey.value = Math.random()
+}
+// 保存
+const updatehlsixthInfo = (row) => {
+  if (!row.socialNo) {
+    ElMessage({
+      type: "warning",
+      message: "身份证号不存在,请检查!",
+      duration: 2500,
+      showClose: true,
+    });
+    return
+  }
+  if (!row.isAdd && row.socialNo !== row.oldRow.socialNo) {
+    row.oldSocialNo = row.oldRow.socialNo
+  }
+  callSavehlsixthInfo(row)
+}
+
+const callSavehlsixthInfo = (row) => {
+  let title = '请确认是否保存科室调动记录<span style="color:#d12020;">' + row.id + '</span>?'
+  ElMessageBox.confirm(title, {
+    cancelButtonText: '取消',
+    confirmButtonText: '确定',
+    type: 'warning',
+    distinguishCancelAndClose: true,
+    dangerouslyUseHTMLString: true
+  }).then(() => {
+    saveTechnologyArchivesHL6(row).then((res) => {
+      ElMessage({
+        type: "success",
+        message: res.cg,
+        duration: 2500,
+        showClose: true,
+      });
+      queryTechnologyArchiveshl6()
+    })
+  }).catch((action) => {
+    if (action === 'cancel') {
+      queryTechnologyArchiveshl6()
+    }
+  })
+}
+
+// 删除
+const deletehlsixthInfo = (row) => {
+  let title = '请确认是否删除科室调动记录<span style="color:#d12020;">' + row.id + '</span>?'
+  ElMessageBox.confirm(title, {
+    cancelButtonText: '取消',
+    confirmButtonText: '确定',
+    type: 'warning',
+    distinguishCancelAndClose: true,
+    dangerouslyUseHTMLString: true
+  }).then(() => {
+    delTechnologyArchivesHL6ByCode(row.socialNo, row.id).then((res) => {
+      ElMessage({
+        type: "success",
+        message: res.cg,
+        duration: 2500,
+        showClose: true,
+      });
+      queryTechnologyArchiveshl6()
+    })
+  }).catch((action) => {
+    if (action === 'cancel') {
+      queryTechnologyArchiveshl6()
+    }
+  })
+}
+// 科室调动记录增删改存结束
+
+// 休假记录增删改存开始
+// 编辑
+const days = ref()
+const onchange = (row) => {
+  if(row.leaveEndTime != null){
+    let diff = Math.abs( Date.parse(row.leaveBeginTime) - Date.parse(row.leaveEndTime)) 
+    days.value = Math.floor(diff/(1000 * 3600 * 24)+1)
+    row.totalDays = days.value
+    console.log(days.value)
+  }else{
+    row.totalDays = 0
+  } 
+}
+
+// 编辑
+const edithlseventhInfo = (row) => {
+  // 备份原始数据
+  row['oldRow'] = JSON.parse(JSON.stringify(row))
+  row.isEdit = true
+  if(row.image != null){
+    row.isUpload = true
+  }
+}
+// 取消
+const cancelhlseventhInfo = (row, index) => {
+  // 如果是新增的数据
+  if (row.isAdd) {
+    hlseventhData.value.splice(index, 1)
+  } else {
+    // 不是新增的数据  还原数据
+    for (const i in row.oldRow) {
+      row[i] = row.oldRow[i]
+    }
+  }
+  if(!row.isUpload){
+    hl7fileList.value = []
+  } 
+  if(row.approvalTime == null || row.totalDays == null || row.cancelTime == null){
+    hl7fileList.value = []
+  }
+  hlseventhKey.value = Math.random()
+}
+
+ 
+//上传
+const hl7submitUpload = (row) => {
+  if(row.isOversize && !row.isJPG){
+    row.isUpload = false
+  }else{
+    upload.value!.action = `${apiUrl}/hltechnologyArchives/putHL7CertificateImage?socialNo=${row.socialNo}&approvalTime=${row.approvalTime}`
+    upload.value!.submit();
+    row.isUpload = true 
+  }
+}
+
+//上传图片
+const hl7fileList = ref([])
+ 
+const hl7url = ref("")
+const hl7urls = ref([])
+function hl7uploadSuccess(response: any, uploadFile: UploadFile, uploadFiles: UploadFiles) {
+  console.log(response.data.urls.length)
+  hl7urls.value.push(response.data.urls)  
+  console.log(hl7urls.value)
+  hl7url.value = hl7urls.value.join(",") 
+  const index = XEUtils.findLastIndexOf(hl7fileList.value, (item: UploadUserFile) => {
+    return item.uid === uploadFile.uid;
+  })
+  if (response.code === 200) {
+    for(let i=0; i<hl7urls.value.length; i++){
+      hl7fileList.value[index].url = uploadurl + hl7urls.value[i]
+    }
+    ElMessage.success("上传成功");
+  } else {
+    hl7fileList.value[index].status = 'fail'
+    ElMessage.error("上传失败");
+  }
+
+}
+
+//查看图片
+const hl7srcList = ref([])
+const holidayurl = ref("")
+
+
+// 保存
+const updatehlseventhInfo = (row) => {
+  if (!row.socialNo || !row.approvalTime) {
+    ElMessage({
+      type: "warning",
+      message: "身份证号或批假时间不存在,请检查!",
+      duration: 2500,
+      showClose: true,
+    });
+    return
+  }
+  if (!row.isAdd && row.socialNo !== row.oldRow.socialNo) {
+    row.oldSocialNo = row.oldRow.socialNo
+  }
+  if (row.isAdd) {
+    let fe = 0
+    for (let num in hlseventhData.value) {
+      if (hlseventhData.value[num].approvalTime === row.approvalTime) {
+        fe++
+      }
+    }
+    if (fe === 2) {
+      ElMessage({
+        type: "warning",
+        message: "存在重复的休假记录,请核对!",
+        duration: 2500,
+        showClose: true,
+      });
+    } else {
+      callSavehlseventhInfo(row, null)
+    }  
+  }else {
+    let oldApprovalTime = row.oldRow.approvalTime
+    if (oldApprovalTime !== row.approvalTime) {
+      ElMessageBox.confirm(megTip, {
+        cancelButtonText: '取消',
+        confirmButtonText: '确定',
+        type: 'warning',
+        distinguishCancelAndClose: true,
+        dangerouslyUseHTMLString: true
+      }).then(() => {
+        callSavehlseventhInfo(row, oldApprovalTime)
+      }).catch((action) => {
+        if (action === 'cancel') {
+          queryTechnologyArchiveshl7()
+        }
+      })
+      
+    } else {
+      callSavehlseventhInfo(row, oldApprovalTime)
+    } 
+  }
+}
+
+const callSavehlseventhInfo = (row, oldApprovalTime) => {
+  if(!row.isUpload){
+    ElMessage({
+      type: "warning",
+      message: "图片还未上传!",
+      duration: 2500,
+      showClose: true,
+    });
+  }else{
+    let title = '请确认是否保存休假记录<span style="color:#d12020;">' + row.id + '</span>?'
+    ElMessageBox.confirm(title, {
+      cancelButtonText: '取消',
+      confirmButtonText: '确定',
+      type: 'warning',
+      distinguishCancelAndClose: true,
+      dangerouslyUseHTMLString: true
+    }).then(() => {
+      saveTechnologyArchivesHL7(row).then((res) => {
+        ElMessage({
+          type: "success",
+          message: res.cg,
+          duration: 2500,
+          showClose: true,
+        });
+        if (oldApprovalTime !== null && oldApprovalTime !== row.approvalTime) {
+          // 删除原始数据
+          delTechnologyArchivesHL7ByCode(row.socialNo, oldApprovalTime).then((res) => {
+            queryTechnologyArchiveshl7()
+          })
+        } else {
+          queryTechnologyArchiveshl7()
+        }
+        console.log(hl7url.value)
+        setHL7Image(row.socialNo,row.approvalTime,hl7url.value)
+        hl7fileList.value = []
+        hl7urls.value = []  
+      })
+    }).catch((action) => {
+      if (action === 'cancel') {
+        queryTechnologyArchiveshl7()
+        hl7fileList.value = []
+      }
+    })
+  }
+  
+}
+
+const deletehlseventhInfo = (row) => {
+  let title = '请确认是否删除休假记录<span style="color:#d12020;">' + row.id + '</span>?'
+  ElMessageBox.confirm(title, {
+    cancelButtonText: '取消',
+    confirmButtonText: '确定',
+    type: 'warning',
+    distinguishCancelAndClose: true,
+    dangerouslyUseHTMLString: true
+  }).then(() => {
+    delTechnologyArchivesHL7ByCode(row.socialNo, row.approvalTime).then((res) => {
+      ElMessage({
+        type: "success",
+        message: res.cg,
+        duration: 2500,
+        showClose: true,
+      });
+      queryTechnologyArchiveshl7()
+    })
+  }).catch((action) => {
+    if (action === 'cancel') {
+      queryTechnologyArchiveshl7()
+    }
+  })
+  hl7fileList.value = [];
+}
+
+// 休假记录增删改存结束
+
+// 培训考试考核情况增删改存开始
+// 编辑
+const edithlninthInfo = (row) => {
+  // 备份原始数据
+  row['oldRow'] = JSON.parse(JSON.stringify(row))
+  row.isEdit = true
+}
+// 取消
+const cancelhlninthInfo = (row, index) => {
+  // 如果是新增的数据
+  if (row.isAdd) {
+    hlninthData.value.splice(index, 1)
+  } else {
+    // 不是新增的数据  还原数据
+    for (const i in row.oldRow) {
+      row[i] = row.oldRow[i]
+    }
+  }
+  hlninthKey.value = Math.random()
+}
+// 保存
+const updatehlninthInfo = (row) => {
+  if (!row.socialNo) {
+    ElMessage({
+      type: "warning",
+      message: "身份证号不存在,请检查!",
+      duration: 2500,
+      showClose: true,
+    });
+    return
+  }
+  if (!row.isAdd && row.socialNo !== row.oldRow.socialNo) {
+    row.oldSocialNo = row.oldRow.socialNo
+  }
+  callSavehlninthInfo(row)
+}
+
+const callSavehlninthInfo = (row) => {
+  let title = '请确认是否保存<span style="color:#d12020;">' + row.content.length > 10 ? row.content.substring(0,10) + '...' : row.content + '</span>?'
+  ElMessageBox.confirm(title, {
+    cancelButtonText: '取消',
+    confirmButtonText: '确定',
+    type: 'warning',
+    distinguishCancelAndClose: true,
+    dangerouslyUseHTMLString: true
+  }).then(() => {
+    saveTechnologyArchivesHL9(row).then((res) => {
+      ElMessage({
+        type: "success",
+        message: res.cg,
+        duration: 2500,
+        showClose: true,
+      });
+      queryTechnologyArchiveshl9()
+    })
+  }).catch((action) => {
+    if (action === 'cancel') {
+      queryTechnologyArchiveshl9()
+    }
+  })
+}
+
+// 删除
+const deletehlninthInfo = (row) => {
+  let title = '请确认是否删除<span style="color:#d12020;">' + row.content.length > 10 ? row.content.substring(0,10) + '...' : row.content + '</span>?'
+  ElMessageBox.confirm(title, {
+    cancelButtonText: '取消',
+    confirmButtonText: '确定',
+    type: 'warning',
+    distinguishCancelAndClose: true,
+    dangerouslyUseHTMLString: true
+  }).then(() => {
+    delTechnologyArchivesHL9ByCode(row.socialNo, row.id).then((res) => {
+      ElMessage({
+        type: "success",
+        message: res.cg,
+        duration: 2500,
+        showClose: true,
+      });
+      queryTechnologyArchiveshl9()
+    })
+  }).catch((action) => {
+    if (action === 'cancel') {
+      queryTechnologyArchiveshl9()
+    }
+  })
+}
+// 培训考试考核情况增删改存结束
+
+</script>
+<style scoped>
+.numbered-list {
+  counter-reset: section; /* 创建一个名为section的计数器 */
+}
+
+.numbered-list li::before {
+  counter-increment: section; /* 每个li元素增加计数器的值 */
+  content: counters(section, ".") " "; /* 在li元素前添加计数器的当前值 */
+}
+</style>

+ 161 - 0
src/views/technology-archives/HLTechnologyArchivesSearch.vue

@@ -0,0 +1,161 @@
+<template>
+  <div class="layout_container">
+    <header>
+      <el-input v-model="text" class="w-50 m-2" style="width: 360px" placeholder="请输入工号/身份证号/姓名" clearable>
+        <template #prepend>工号/身份证号/姓名 </template>
+      </el-input>
+      <el-select v-model="textType" placeholder="请选择文档类型" clearable style="width: 160px;margin-left: 3px">
+        <el-option v-for="item in typeList" :key="item.code" :label="item.name" :value="item.code" />
+      </el-select>
+      <el-button type="primary" icon="Search" @click="queryTechnologyArchivesInfo" style="margin-left: 10px">查询</el-button>
+      <el-button type="primary" icon="Download" @click="exportDataall" style="margin-left: 5px">导出全部</el-button>
+    </header>
+    <div class="layout_main">
+      <div class="layout_display_flex_y">
+        <div class="layout_flex_1-y layout_el-table">
+          <el-table :data="technologyArchivesData.slice(pageSize * (currentPage - 1), pageSize * currentPage)" 
+            stripe border highlight-current-row row-key="childKey" style="width: 100%">
+            <el-table-column type="index" label="序号" align="center" fixed></el-table-column>
+            <el-table-column prop="id" label="id" v-if="false"></el-table-column>
+            <template v-for="col in displayData">
+              <el-table-column v-if="col.columns" :prop="col.name" :label="col.display" 
+                :width="col.width" :align="col.align">
+                <template v-for="cell in col.columns">
+                  <el-table-column v-if="col.show" :prop="cell.name" :label="cell.display"
+                    :width="cell.width" :align="cell.align" show-overflow-tooltip>
+                  </el-table-column>
+                  <el-table-column v-else :prop="cell.name" :label="cell.display"
+                    :width="cell.width" :align="cell.align">
+                  </el-table-column>
+                </template>
+              </el-table-column>
+              <el-table-column v-else-if="col.show" :prop="col.name" :label="col.display" :width="col.width"
+                :align="col.align" show-overflow-tooltip>
+              </el-table-column>
+              <!-- 部分排序 -->
+              <el-table-column v-else-if="col.name === 'xm'" :prop="col.name" :label="col.display" :width="col.width" :align="col.align" fixed sortable :sort-method="xmSort">
+              </el-table-column>
+              <el-table-column v-else-if="col.name === 'first_worktime'" :prop="col.name" :label="col.display" :width="col.width" :align="col.align" sortable>
+              </el-table-column>
+              <el-table-column v-else-if="col.name === 'work_time'" :prop="col.name" :label="col.display" :width="col.width" :align="col.align" sortable>
+              </el-table-column>
+              <el-table-column v-else-if="col.name === 'begin_time'" :prop="col.name" :label="col.display" :width="col.width" :align="col.align" sortable>
+              </el-table-column>
+              <el-table-column v-else-if="col.name === 'year'" :prop="col.name" :label="col.display" :width="col.width" :align="col.align" sortable>
+              </el-table-column>
+              <el-table-column v-else-if="col.name === 'time'" :prop="col.name" :label="col.display" :width="col.width" :align="col.align" sortable>
+              </el-table-column>
+              
+              <el-table-column v-else :prop="col.name" :label="col.display" :width="col.width" :align="col.align">
+              </el-table-column>
+            </template>
+          </el-table>
+        </div>
+        <div>
+          <el-pagination :current-page="currentPage" :page-size="pageSize" :page-sizes="[15, 30, 45, 60]"
+             :total="technologyArchivesData.length" layout="total, sizes, prev, pager, next, jumper" style="margin-top: 5px"
+             @size-change="handleSizeChange" @current-change="handleCurrentChange">
+          </el-pagination>
+        </div>
+      </div>
+    </div>
+  </div>
+</template>
+<script setup  name="TechnologyArchivesSearch">
+import {nextTick, onMounted, ref} from "vue";
+import {ElMessage} from "element-plus";
+import {
+  selectTechnologyArchivesHLInfo,
+  selectTechnologyArchivesHLType,
+  exportMultiTechnologyArchives
+} from "@/api/technology-archives/technology-archives";
+import {useUserStore} from "@/pinia/user-store";
+
+let param = ref({
+  textType: '',
+  text: '',
+  exportName: ''
+})
+
+let params = ref({
+  exportTypes: [],
+  exportNames: []
+})
+
+const userInfo = useUserStore().userInfo
+const text = ref('')
+const textType = ref('tahlmain')
+const technologyArchivesData = ref([])
+const displayData = ref([])
+const pageSize = ref(30)
+const currentPage = ref(1)
+const handleSizeChange = (val) => {
+  pageSize.value = val
+}
+const handleCurrentChange = (val) => {
+  currentPage.value = val
+}
+onMounted(() => {
+  nextTick(() => {
+    queryAcType()
+    queryTechnologyArchivesInfo()
+  })
+})
+const typeList = ref([])
+const queryAcType = () => {
+  selectTechnologyArchivesHLType("all")
+    .then((res) => {
+      if(res){
+        typeList.value = res.taList
+      }
+    })
+}
+const queryTechnologyArchivesInfo = async () => {
+  if(!textType.value){
+    ElMessage({
+      type: "warning",
+      message: '请选择文档类型!',
+      duration: 2500,
+      showClose: true,
+    });
+    return
+  }
+  param.value.textType = textType.value
+  param.value.text = text.value
+  console.log(param.value)
+  await selectTechnologyArchivesHLInfo(param.value)
+    .then((res) => {
+      if(res){
+        technologyArchivesData.value = res.taData
+        displayData.value = res.displayData
+      }
+    })
+}
+
+//姓名首字母排序
+const xmSort = (obj1, obj2) =>{
+  return obj1.xm.localeCompare(obj2.xm, 'zh-CN')
+}
+
+// 导出档案信息
+
+const exportDataall = () => {
+  if (technologyArchivesData.value.length <= 0) {
+    ElMessage({
+      message: '没有可以导出的数据!',
+      type: 'warning',
+      duration: 2500,
+      showClose: true,
+    })
+    return
+  }
+  console.log(typeList.value)
+  for(let i=0; i<typeList.value.length; i++){
+    params.value.exportTypes[i] = typeList.value[i].code
+    params.value.exportNames[i] = typeList.value[i].name
+    
+  } 
+  console.log(params.value)
+  exportMultiTechnologyArchives(params.value)
+}
+</script>