a
This commit is contained in:
@@ -350,6 +350,12 @@
|
|||||||
color: var(--el-text-color-regular);
|
color: var(--el-text-color-regular);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
&.detail-dialog .el-dialog__body {
|
||||||
|
min-height: 80vh !important;
|
||||||
|
max-height: 80vh !important;
|
||||||
|
height: 80vh !important;
|
||||||
|
}
|
||||||
|
|
||||||
.el-dialog__footer {
|
.el-dialog__footer {
|
||||||
padding: 12px 20px;
|
padding: 12px 20px;
|
||||||
|
|
||||||
|
|||||||
@@ -7,15 +7,18 @@
|
|||||||
width="90%"
|
width="90%"
|
||||||
>
|
>
|
||||||
<el-form :model="dataForm" :rules="dataRule" ref="dataFormRef"
|
<el-form :model="dataForm" :rules="dataRule" ref="dataFormRef"
|
||||||
label-width="130px">
|
label-width="120px">
|
||||||
|
<el-tabs v-model="activeTab">
|
||||||
|
<el-tab-pane label="基本信息" name="basic">
|
||||||
<!-- 基本信息 -->
|
<!-- 基本信息 -->
|
||||||
<div class="form-section">
|
<div class="form-section">
|
||||||
<div class="section-title">基本信息</div>
|
<div class="section-title">基本信息</div>
|
||||||
|
|
||||||
<el-row :gutter="20" class="form-row">
|
<el-row :gutter="20" class="form-row">
|
||||||
<el-col :span="24">
|
<el-col :span="6">
|
||||||
<el-form-item label="招生计划" prop="groupId">
|
<el-form-item label="招生计划" prop="groupId">
|
||||||
<el-select v-model="dataForm.groupId" filterable :disabled="dataForm.id"
|
<el-select v-model="dataForm.groupId" filterable :disabled="dataForm.id !== ''"
|
||||||
placeholder="请选择招生计划" class="w-full">
|
placeholder="请选择招生计划">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in planList"
|
v-for="item in planList"
|
||||||
:key="item.id"
|
:key="item.id"
|
||||||
@@ -25,8 +28,6 @@
|
|||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
|
||||||
<el-row :gutter="20" class="form-row">
|
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item label="姓名" prop="name" >
|
<el-form-item label="姓名" prop="name" >
|
||||||
<el-input type="text" v-model="dataForm.name" :disabled="!isEdit"></el-input>
|
<el-input type="text" v-model="dataForm.name" :disabled="!isEdit"></el-input>
|
||||||
@@ -37,6 +38,18 @@
|
|||||||
<el-input type="text" v-model="dataForm.oldName" :disabled="!isEdit"></el-input>
|
<el-input type="text" v-model="dataForm.oldName" :disabled="!isEdit"></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
<el-col :span="6">
|
||||||
|
<el-form-item label="民族" prop="nationality">
|
||||||
|
<el-select v-model="dataForm.nationality" filterable placeholder="请选择民族" :disabled="!isEdit">
|
||||||
|
<el-option
|
||||||
|
v-for="item in nationalityList"
|
||||||
|
:key="item.nationCode"
|
||||||
|
:label="item.nationName"
|
||||||
|
:value="item.nationName">
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item label="证件类型" prop="idCardType">
|
<el-form-item label="证件类型" prop="idCardType">
|
||||||
<el-radio-group v-model="dataForm.idCardType" :disabled="!isEdit" @change="handleIdCardTypeChange">
|
<el-radio-group v-model="dataForm.idCardType" :disabled="!isEdit" @change="handleIdCardTypeChange">
|
||||||
@@ -57,31 +70,15 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item label="性别" prop="gender" :required="isGenderRequired">
|
<el-form-item label="性别" prop="gender" :required="isGenderRequired">
|
||||||
<el-select v-model="dataForm.gender" class="w-full" :disabled="!isEdit || dataForm.idCardType=='0'" >
|
<el-radio-group v-model="dataForm.gender" :disabled="!isEdit || dataForm.idCardType=='0'">
|
||||||
<el-option
|
<el-radio v-for="item in sexy" :key="item.value" :label="item.value">{{ item.label }}</el-radio>
|
||||||
v-for="item in sexy"
|
</el-radio-group>
|
||||||
:key="item.value"
|
|
||||||
:label="item.label"
|
|
||||||
:value="item.value">
|
|
||||||
</el-option>
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="6">
|
|
||||||
<el-form-item label="民族" prop="nationality">
|
|
||||||
<el-select v-model="dataForm.nationality" filterable placeholder="请选择民族" class="w-full" :disabled="!isEdit">
|
|
||||||
<el-option
|
|
||||||
v-for="item in nationalityList"
|
|
||||||
:key="item.nationCode"
|
|
||||||
:label="item.nationName"
|
|
||||||
:value="item.nationName">
|
|
||||||
</el-option>
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item label="是否团员" prop="isLeagueMember">
|
<el-form-item label="是否团员" prop="isLeagueMember">
|
||||||
<el-select v-model="dataForm.isLeagueMember" filterable clearable placeholder="请选择是否团员" class="w-full" :disabled="!isEdit">
|
<el-select v-model="dataForm.isLeagueMember" filterable clearable placeholder="请选择是否团员" :disabled="!isEdit">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in yes_no_type"
|
v-for="item in yes_no_type"
|
||||||
:key="item.value"
|
:key="item.value"
|
||||||
@@ -93,7 +90,7 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item label="是否住宿" prop="isAccommodation">
|
<el-form-item label="是否住宿" prop="isAccommodation">
|
||||||
<el-select v-model="dataForm.isAccommodation" filterable clearable placeholder="请选择是否住宿" class="w-full" :disabled="!isEdit">
|
<el-select v-model="dataForm.isAccommodation" filterable clearable placeholder="请选择是否住宿" :disabled="!isEdit">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in yes_no_type"
|
v-for="item in yes_no_type"
|
||||||
:key="item.value"
|
:key="item.value"
|
||||||
@@ -103,10 +100,7 @@
|
|||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
<el-col :span="18">
|
||||||
</el-row>
|
|
||||||
<el-row :gutter="20" class="form-row">
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="毕业学校" prop="schoolOfGraduation">
|
<el-form-item label="毕业学校" prop="schoolOfGraduation">
|
||||||
<el-input type="text" v-model="dataForm.schoolOfGraduation" :disabled="!isEdit"></el-input>
|
<el-input type="text" v-model="dataForm.schoolOfGraduation" :disabled="!isEdit"></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@@ -126,7 +120,7 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item label="文化程度" prop="degreeOfEducation">
|
<el-form-item label="文化程度" prop="degreeOfEducation">
|
||||||
<el-select v-model="dataForm.degreeOfEducation" filterable placeholder="请选择文化程度" class="w-full" :disabled="!isEdit" @change="changeEducation">
|
<el-select v-model="dataForm.degreeOfEducation" filterable placeholder="请选择文化程度" :disabled="!isEdit" @change="changeEducation">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in eduList"
|
v-for="item in eduList"
|
||||||
:key="item.value"
|
:key="item.value"
|
||||||
@@ -140,6 +134,7 @@
|
|||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item label="成绩" prop="score">
|
<el-form-item label="成绩" prop="score">
|
||||||
<el-input-number
|
<el-input-number
|
||||||
|
controls-position="right"
|
||||||
v-model="dataForm.score"
|
v-model="dataForm.score"
|
||||||
placeholder="成绩"
|
placeholder="成绩"
|
||||||
:min="0"
|
:min="0"
|
||||||
@@ -151,7 +146,7 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item label="户口性质" prop="residenceType">
|
<el-form-item label="户口性质" prop="residenceType">
|
||||||
<el-select v-model="dataForm.residenceType" filterable clearable placeholder="请选择户口性质" class="w-full" :disabled="!isEdit">
|
<el-select v-model="dataForm.residenceType" filterable clearable placeholder="请选择户口性质" :disabled="!isEdit">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in residenceTypeList"
|
v-for="item in residenceTypeList"
|
||||||
:key="item.value"
|
:key="item.value"
|
||||||
@@ -168,7 +163,7 @@
|
|||||||
<el-row v-if="dataForm.degreeOfEducation=='1'" :gutter="20" class="form-row">
|
<el-row v-if="dataForm.degreeOfEducation=='1'" :gutter="20" class="form-row">
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item label="学校归属地" prop="schoolArea">
|
<el-form-item label="学校归属地" prop="schoolArea">
|
||||||
<el-select v-model="dataForm.schoolArea" filterable placeholder="请选择学校归属地" class="w-full" :disabled="!isEdit" @change="changeFrom">
|
<el-select v-model="dataForm.schoolArea" filterable placeholder="请选择学校归属地" :disabled="!isEdit" @change="changeFrom">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in schoolFromList"
|
v-for="item in schoolFromList"
|
||||||
:key="item.value"
|
:key="item.value"
|
||||||
@@ -180,7 +175,7 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
<el-col v-if="(dataForm.degreeOfEducation) && (dataForm.schoolArea=='2')" :span="6">
|
<el-col v-if="(dataForm.degreeOfEducation) && (dataForm.schoolArea=='2')" :span="6">
|
||||||
<el-form-item label="学校所在省市" prop="jsOtherCity">
|
<el-form-item label="学校所在省市" prop="jsOtherCity">
|
||||||
<el-select v-model="dataForm.jsOtherCity" filterable placeholder="请选择学校所在省市" class="w-full"
|
<el-select v-model="dataForm.jsOtherCity" filterable placeholder="请选择学校所在省市"
|
||||||
:disabled="!isEdit" @change="changeSchoolCode">
|
:disabled="!isEdit" @change="changeSchoolCode">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in schoolCodeList"
|
v-for="item in schoolCodeList"
|
||||||
@@ -193,7 +188,7 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
<el-col v-if="(dataForm.degreeOfEducation) && (dataForm.schoolArea=='3')" :span="6">
|
<el-col v-if="(dataForm.degreeOfEducation) && (dataForm.schoolArea=='3')" :span="6">
|
||||||
<el-form-item label="外省" prop="otherProvince">
|
<el-form-item label="外省" prop="otherProvince">
|
||||||
<el-select v-model="dataForm.otherProvince" filterable placeholder="请选择学校所在省市" class="w-full"
|
<el-select v-model="dataForm.otherProvince" filterable placeholder="请选择学校所在省市"
|
||||||
:disabled="!isEdit" @change="changeSchoolCode">
|
:disabled="!isEdit" @change="changeSchoolCode">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in areaHomeProvinceList"
|
v-for="item in areaHomeProvinceList"
|
||||||
@@ -207,6 +202,7 @@
|
|||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item label="当地总分" prop="fullScore">
|
<el-form-item label="当地总分" prop="fullScore">
|
||||||
<el-input-number
|
<el-input-number
|
||||||
|
controls-position="right"
|
||||||
v-model="dataForm.fullScore"
|
v-model="dataForm.fullScore"
|
||||||
:min="0"
|
:min="0"
|
||||||
:max="1000"
|
:max="1000"
|
||||||
@@ -218,6 +214,7 @@
|
|||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item label="成绩折算分" prop="correctedScore">
|
<el-form-item label="成绩折算分" prop="correctedScore">
|
||||||
<el-input-number
|
<el-input-number
|
||||||
|
controls-position="right"
|
||||||
v-model="dataForm.correctedScore"
|
v-model="dataForm.correctedScore"
|
||||||
:min="0"
|
:min="0"
|
||||||
:max="1000"
|
:max="1000"
|
||||||
@@ -264,7 +261,7 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="详细地址" prop="residenceDetail">
|
<el-form-item label="户口详细地址" prop="residenceDetail">
|
||||||
<el-input type="text" v-model="dataForm.residenceDetail" placeholder="请输入详细地址" :disabled="!isEdit"></el-input>
|
<el-input type="text" v-model="dataForm.residenceDetail" placeholder="请输入详细地址" :disabled="!isEdit"></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
@@ -304,7 +301,7 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="详细地址" prop="homeAddressDetail">
|
<el-form-item label="家庭详细地址" prop="homeAddressDetail">
|
||||||
<el-input type="text" v-model="dataForm.homeAddressDetail" placeholder="请输入详细地址" :disabled="!isEdit"></el-input>
|
<el-input type="text" v-model="dataForm.homeAddressDetail" placeholder="请输入详细地址" :disabled="!isEdit"></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
@@ -359,7 +356,7 @@
|
|||||||
<el-row v-if="dataForm.id" :gutter="20" class="form-row">
|
<el-row v-if="dataForm.id" :gutter="20" class="form-row">
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="拟报专业1" prop="wishMajorOne">
|
<el-form-item label="拟报专业1" prop="wishMajorOne">
|
||||||
<el-select v-model="dataForm.wishMajorOne" filterable clearable placeholder="请选择专业" class="w-full">
|
<el-select v-model="dataForm.wishMajorOne" filterable clearable placeholder="请选择专业">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in planMajorList"
|
v-for="item in planMajorList"
|
||||||
:key="item.majorCode"
|
:key="item.majorCode"
|
||||||
@@ -371,7 +368,7 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="拟报专业2" prop="wishMajorTwo">
|
<el-form-item label="拟报专业2" prop="wishMajorTwo">
|
||||||
<el-select v-model="dataForm.wishMajorTwo" filterable clearable placeholder="请选择专业" class="w-full">
|
<el-select v-model="dataForm.wishMajorTwo" filterable clearable placeholder="请选择专业">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in planMajorList"
|
v-for="item in planMajorList"
|
||||||
:key="item.majorCode"
|
:key="item.majorCode"
|
||||||
@@ -383,7 +380,7 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="拟报专业3" prop="wishMajorThree">
|
<el-form-item label="拟报专业3" prop="wishMajorThree">
|
||||||
<el-select v-model="dataForm.wishMajorThree" filterable clearable placeholder="请选择专业" class="w-full">
|
<el-select v-model="dataForm.wishMajorThree" filterable clearable placeholder="请选择专业">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in planMajorList"
|
v-for="item in planMajorList"
|
||||||
:key="item.majorCode"
|
:key="item.majorCode"
|
||||||
@@ -397,7 +394,7 @@
|
|||||||
<el-row :gutter="20" class="form-row">
|
<el-row :gutter="20" class="form-row">
|
||||||
<el-col :span="24">
|
<el-col :span="24">
|
||||||
<el-form-item label="录取专业" prop="confirmedMajor">
|
<el-form-item label="录取专业" prop="confirmedMajor">
|
||||||
<el-select v-model="dataForm.confirmedMajor" filterable clearable placeholder="" class="w-full" :disabled="!isEdit" @change="changeConfirmedMajor(dataForm.confirmedMajor)">
|
<el-select v-model="dataForm.confirmedMajor" filterable clearable placeholder="" :disabled="!isEdit" @change="changeConfirmedMajor(dataForm.confirmedMajor)">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in planMajorList"
|
v-for="item in planMajorList"
|
||||||
:key="item.majorCode"
|
:key="item.majorCode"
|
||||||
@@ -409,9 +406,9 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-row v-if="isEdit" :gutter="20" class="form-row">
|
<el-row v-if="isEdit" :gutter="20" class="form-row">
|
||||||
<el-col :span="24">
|
<el-col :span="8" v-if="twoMajorList.length>0">
|
||||||
<el-form-item label="两年制专业" prop="twoMajor" v-if="twoMajorList.length>0">
|
<el-form-item label="两年制专业" prop="twoMajor" >
|
||||||
<el-select v-model="dataForm.twoMajor" filterable clearable placeholder="" class="w-full" @change="changeConfirmedMajor(dataForm.twoMajor)">
|
<el-select v-model="dataForm.twoMajor" filterable clearable placeholder="" @change="changeConfirmedMajor(dataForm.twoMajor)">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in twoMajorList"
|
v-for="item in twoMajorList"
|
||||||
:key="item.majorCode"
|
:key="item.majorCode"
|
||||||
@@ -420,8 +417,10 @@
|
|||||||
</el-option>
|
</el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8" v-if="threeMajorList.length>0">
|
||||||
<el-form-item label="三年制专业" prop="threeMajor" v-if="threeMajorList.length>0">
|
<el-form-item label="三年制专业" prop="threeMajor" v-if="threeMajorList.length>0">
|
||||||
<el-select v-model="dataForm.threeMajor" filterable clearable placeholder="" class="w-full" @change="changeConfirmedMajor(dataForm.threeMajor)">
|
<el-select v-model="dataForm.threeMajor" filterable clearable placeholder="" @change="changeConfirmedMajor(dataForm.threeMajor)">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in threeMajorList"
|
v-for="item in threeMajorList"
|
||||||
:key="item.majorCode"
|
:key="item.majorCode"
|
||||||
@@ -430,8 +429,10 @@
|
|||||||
</el-option>
|
</el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="四年制专业" prop="fourMajor" v-if="fourMajorList.length>0">
|
</el-col>
|
||||||
<el-select v-model="dataForm.fourMajor" filterable clearable placeholder="" class="w-full" @change="changeConfirmedMajor(dataForm.fourMajor)">
|
<el-col :span="8" v-if="fourMajorList.length>0">
|
||||||
|
<el-form-item label="四年制专业" prop="fourMajor" >
|
||||||
|
<el-select v-model="dataForm.fourMajor" filterable clearable placeholder="" @change="changeConfirmedMajor(dataForm.fourMajor)">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in fourMajorList"
|
v-for="item in fourMajorList"
|
||||||
:key="item.majorCode"
|
:key="item.majorCode"
|
||||||
@@ -440,8 +441,10 @@
|
|||||||
</el-option>
|
</el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="五年制专业" prop="fiveMajor" v-if="fiveMajorList.length>0">
|
</el-col>
|
||||||
<el-select v-model="dataForm.fiveMajor" filterable clearable placeholder="" class="w-full" @change="changeConfirmedMajor(dataForm.fiveMajor)">
|
<el-col :span="8" v-if="fiveMajorList.length>0">
|
||||||
|
<el-form-item label="五年制专业" prop="fiveMajor" >
|
||||||
|
<el-select v-model="dataForm.fiveMajor" filterable clearable placeholder="" @change="changeConfirmedMajor(dataForm.fiveMajor)">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in fiveMajorList"
|
v-for="item in fiveMajorList"
|
||||||
:key="item.majorCode"
|
:key="item.majorCode"
|
||||||
@@ -450,8 +453,10 @@
|
|||||||
</el-option>
|
</el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="六年制专业" prop="sixMajor" v-if="sixMajorList.length>0">
|
</el-col>
|
||||||
<el-select v-model="dataForm.sixMajor" filterable clearable placeholder="" class="w-full" @change="changeConfirmedMajor(dataForm.sixMajor)">
|
<el-col :span="8" v-if="sixMajorList.length>0">
|
||||||
|
<el-form-item label="六年制专业" prop="sixMajor">
|
||||||
|
<el-select v-model="dataForm.sixMajor" filterable clearable placeholder="" @change="changeConfirmedMajor(dataForm.sixMajor)">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in sixMajorList"
|
v-for="item in sixMajorList"
|
||||||
:key="item.majorCode"
|
:key="item.majorCode"
|
||||||
@@ -460,8 +465,10 @@
|
|||||||
</el-option>
|
</el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="七年制专业" prop="sevenMajor" v-if="sevenMajorList.length>0">
|
</el-col>
|
||||||
<el-select v-model="dataForm.sevenMajor" filterable clearable placeholder="" class="w-full" @change="changeConfirmedMajor(dataForm.sevenMajor)">
|
<el-col :span="8" v-if="sevenMajorList.length>0">
|
||||||
|
<el-form-item label="七年制专业" prop="sevenMajor">
|
||||||
|
<el-select v-model="dataForm.sevenMajor" filterable clearable placeholder="" @change="changeConfirmedMajor(dataForm.sevenMajor)">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in sevenMajorList"
|
v-for="item in sevenMajorList"
|
||||||
:key="item.majorCode"
|
:key="item.majorCode"
|
||||||
@@ -474,134 +481,27 @@
|
|||||||
</el-row>
|
</el-row>
|
||||||
<!-- 费用信息 -->
|
<!-- 费用信息 -->
|
||||||
<el-row :gutter="20" class="form-row">
|
<el-row :gutter="20" class="form-row">
|
||||||
<el-col :span="6">
|
<el-col :span="8">
|
||||||
<el-form-item label="学费" prop="feeTuition">
|
<el-form-item label="学费" prop="feeTuition">
|
||||||
<el-input-number v-model="dataForm.feeTuition" controls-position="right" :min="0" :max="999999" :step-strictly="true" disabled class="w-full"></el-input-number>
|
<el-input-number v-model="dataForm.feeTuition" controls-position="right" :min="0" :max="999999" :step-strictly="true" disabled></el-input-number>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="6">
|
<el-col :span="8">
|
||||||
<el-form-item label="代办费" prop="feeAgency">
|
<el-form-item label="代办费" prop="feeAgency">
|
||||||
<el-input-number v-model="dataForm.feeAgency" controls-position="right" :min="0" :max="999999" :step-strictly="true" disabled class="w-full"></el-input-number>
|
<el-input-number v-model="dataForm.feeAgency" controls-position="right" :min="0" :max="999999" :step-strictly="true" disabled></el-input-number>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="6">
|
<el-col :span="8">
|
||||||
<el-form-item label="总费用" prop="allMoney">
|
<el-form-item label="总费用" prop="allMoney">
|
||||||
<span class="total-fee">{{Number(dataForm.feeTuition)+Number(dataForm.feeAgency)}}</span>
|
<span class="total-fee">{{Number(dataForm.feeTuition)+Number(dataForm.feeAgency)}}</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
<!-- 附件材料 -->
|
|
||||||
<el-row :gutter="20" class="form-row">
|
|
||||||
<el-col :span="8">
|
|
||||||
<el-form-item label="成绩单" prop="scorePhoto">
|
|
||||||
<div class="image-preview-container">
|
|
||||||
<viewer :images="dataForm.scorePhotoList" v-if="dataForm.scorePhoto && dataForm.scorePhotoList && dataForm.scorePhotoList.length > 0">
|
|
||||||
<div class="image-list">
|
|
||||||
<div v-for="(src, index) in dataForm.scorePhotoList" :key="index" class="image-item">
|
|
||||||
<img :src="src" class="preview-image" :alt="`成绩单-${index + 1}`">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</viewer>
|
|
||||||
<div v-else class="image-placeholder">
|
|
||||||
<el-icon><Picture /></el-icon>
|
|
||||||
<span>暂无图片</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="8">
|
|
||||||
<el-form-item label="毕业证" prop="graPic">
|
|
||||||
<div class="image-preview-container">
|
|
||||||
<viewer :images="dataForm.graPicList" v-if="dataForm.graPic && dataForm.graPicList && dataForm.graPicList.length > 0">
|
|
||||||
<div class="image-list">
|
|
||||||
<div v-for="(src, index) in dataForm.graPicList" :key="index" class="image-item">
|
|
||||||
<img :src="src" class="preview-image" :alt="`毕业证-${index + 1}`">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</viewer>
|
|
||||||
<div v-else class="image-placeholder">
|
|
||||||
<el-icon><Picture /></el-icon>
|
|
||||||
<span>暂无图片</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="8">
|
|
||||||
<el-form-item label="在常营业执照" prop="yyPic">
|
|
||||||
<div class="image-preview-container">
|
|
||||||
<viewer :images="dataForm.yyPicList" v-if="dataForm.yyPic && dataForm.yyPicList && dataForm.yyPicList.length > 0">
|
|
||||||
<div class="image-list">
|
|
||||||
<div v-for="(src, index) in dataForm.yyPicList" :key="index" class="image-item">
|
|
||||||
<img :src="src" class="preview-image" :alt="`在常营业执照-${index + 1}`">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</viewer>
|
|
||||||
<div v-else class="image-placeholder">
|
|
||||||
<el-icon><Picture /></el-icon>
|
|
||||||
<span>暂无图片</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
<el-row :gutter="20" class="form-row">
|
|
||||||
<el-col :span="8">
|
|
||||||
<el-form-item label="在常租赁合同/房产证明" prop="housePic">
|
|
||||||
<div class="image-preview-container">
|
|
||||||
<viewer :images="dataForm.housePicList" v-if="dataForm.housePic && dataForm.housePicList && dataForm.housePicList.length > 0">
|
|
||||||
<div class="image-list">
|
|
||||||
<div v-for="(src, index) in dataForm.housePicList" :key="index" class="image-item">
|
|
||||||
<img :src="src" class="preview-image" :alt="`在常租赁合同/房产证明-${index + 1}`">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</viewer>
|
|
||||||
<div v-else class="image-placeholder">
|
|
||||||
<el-icon><Picture /></el-icon>
|
|
||||||
<span>暂无图片</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="8">
|
|
||||||
<el-form-item label="在常就业社保证明" prop="sbPic">
|
|
||||||
<div class="image-preview-container">
|
|
||||||
<viewer :images="dataForm.sbPicList" v-if="dataForm.sbPic && dataForm.sbPicList && dataForm.sbPicList.length > 0">
|
|
||||||
<div class="image-list">
|
|
||||||
<div v-for="(src, index) in dataForm.sbPicList" :key="index" class="image-item">
|
|
||||||
<img :src="src" class="preview-image" :alt="`在常就业社保证明-${index + 1}`">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</viewer>
|
|
||||||
<div v-else class="image-placeholder">
|
|
||||||
<el-icon><Picture /></el-icon>
|
|
||||||
<span>暂无图片</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="8">
|
|
||||||
<el-form-item label="户口本" prop="householdPic">
|
|
||||||
<div class="image-preview-container">
|
|
||||||
<viewer :images="dataForm.householdPicList" v-if="dataForm.householdPic && dataForm.householdPicList && dataForm.householdPicList.length > 0">
|
|
||||||
<div class="image-list">
|
|
||||||
<div v-for="(src, index) in dataForm.householdPicList" :key="index" class="image-item">
|
|
||||||
<img :src="src" class="preview-image" :alt="`户口本-${index + 1}`">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</viewer>
|
|
||||||
<div v-else class="image-placeholder">
|
|
||||||
<el-icon><Picture /></el-icon>
|
|
||||||
<span>暂无图片</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
<!-- 其他信息 -->
|
<!-- 其他信息 -->
|
||||||
<el-row :gutter="20" class="form-row">
|
<el-row :gutter="20" class="form-row">
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="联系人" prop="contactName">
|
<el-form-item label="联系人" prop="contactName">
|
||||||
<el-select v-model="dataForm.contactName" filterable clearable placeholder="请选择联系人" class="w-full" :disabled="!isEdit">
|
<el-select v-model="dataForm.contactName" filterable clearable placeholder="请选择联系人" :disabled="!isEdit">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in contactNameList"
|
v-for="item in contactNameList"
|
||||||
:key="item.teacherNo"
|
:key="item.teacherNo"
|
||||||
@@ -613,7 +513,7 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="辨色力" prop="colorDiscrimination">
|
<el-form-item label="辨色力" prop="colorDiscrimination">
|
||||||
<el-select v-model="dataForm.colorDiscrimination" filterable clearable placeholder="请选择辨色力" class="w-full" :disabled="!isEdit">
|
<el-select v-model="dataForm.colorDiscrimination" filterable clearable placeholder="请选择辨色力" :disabled="!isEdit">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in color_discrimination"
|
v-for="item in color_discrimination"
|
||||||
:key="item.value"
|
:key="item.value"
|
||||||
@@ -625,20 +525,147 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-row :gutter="20" class="form-row">
|
<el-row :gutter="20" class="form-row">
|
||||||
<el-col :span="24">
|
<el-col :span="12">
|
||||||
<el-form-item label="既往病史" prop="pastMedicalHistory">
|
<el-form-item label="既往病史" prop="pastMedicalHistory">
|
||||||
<el-input type="textarea" v-model="dataForm.pastMedicalHistory" placeholder="请输入既往病史" :rows="2" :disabled="!isEdit"></el-input>
|
<el-input type="textarea" v-model="dataForm.pastMedicalHistory" placeholder="请输入既往病史" :rows="2" :disabled="!isEdit"></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
<el-col :span="12">
|
||||||
<el-row :gutter="20" class="form-row">
|
|
||||||
<el-col :span="24">
|
|
||||||
<el-form-item label="备注" prop="remarks">
|
<el-form-item label="备注" prop="remarks">
|
||||||
<el-input type="textarea" v-model="dataForm.remarks" placeholder="备注" :rows="2" :disabled="!isEdit"></el-input>
|
<el-input type="textarea" v-model="dataForm.remarks" placeholder="备注" :rows="2" :disabled="!isEdit"></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
</div>
|
</div>
|
||||||
|
</el-tab-pane>
|
||||||
|
<el-tab-pane label="附件材料" name="attachment">
|
||||||
|
<!-- 附件材料 -->
|
||||||
|
<el-row :gutter="20" class="form-row">
|
||||||
|
<el-col :span="6">
|
||||||
|
<el-form-item label="成绩单" prop="scorePhoto">
|
||||||
|
<el-upload
|
||||||
|
:action="uploadUrl"
|
||||||
|
class="avatar-uploader"
|
||||||
|
name="file"
|
||||||
|
:headers="headers"
|
||||||
|
:data="uploadData"
|
||||||
|
:show-file-list="false"
|
||||||
|
:before-upload="beforeUpload"
|
||||||
|
:http-request="httpRequest"
|
||||||
|
:on-success="uploadSuccess">
|
||||||
|
<div v-if="dataForm.scorePhoto" class="avatar-wrapper">
|
||||||
|
<img :src="baseUrl + dataForm.scorePhoto" class="avatar"/>
|
||||||
|
</div>
|
||||||
|
<el-icon v-else class="avatar-uploader-icon"><Plus /></el-icon>
|
||||||
|
</el-upload>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="6">
|
||||||
|
<el-form-item label="毕业证" prop="graPic">
|
||||||
|
<el-upload
|
||||||
|
:action="uploadUrl"
|
||||||
|
class="avatar-uploader"
|
||||||
|
name="file"
|
||||||
|
:headers="headers"
|
||||||
|
:data="uploadData"
|
||||||
|
:show-file-list="false"
|
||||||
|
:before-upload="beforeUpload"
|
||||||
|
:http-request="httpRequest"
|
||||||
|
:on-success="upload2Success">
|
||||||
|
<div v-if="dataForm.graPic" class="avatar-wrapper">
|
||||||
|
<img :src="baseUrl + dataForm.graPic" class="avatar"/>
|
||||||
|
</div>
|
||||||
|
<el-icon v-else class="avatar-uploader-icon"><Plus /></el-icon>
|
||||||
|
</el-upload>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="6">
|
||||||
|
<el-form-item label="在常营业执照" prop="yyPic">
|
||||||
|
<el-upload
|
||||||
|
:action="uploadUrl"
|
||||||
|
class="avatar-uploader"
|
||||||
|
name="file"
|
||||||
|
:headers="headers"
|
||||||
|
:data="uploadData"
|
||||||
|
:show-file-list="false"
|
||||||
|
:before-upload="beforeUpload"
|
||||||
|
:http-request="httpRequest"
|
||||||
|
:on-success="upload3Success">
|
||||||
|
<div v-if="dataForm.yyPic" class="avatar-wrapper">
|
||||||
|
<img :src="baseUrl + dataForm.yyPic" class="avatar"/>
|
||||||
|
</div>
|
||||||
|
<el-icon v-else class="avatar-uploader-icon"><Plus /></el-icon>
|
||||||
|
</el-upload>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="6">
|
||||||
|
<el-form-item label="在常社保证明" prop="sbPic">
|
||||||
|
<el-upload
|
||||||
|
:action="uploadUrl"
|
||||||
|
class="avatar-uploader"
|
||||||
|
name="file"
|
||||||
|
:headers="headers"
|
||||||
|
:data="uploadData"
|
||||||
|
:show-file-list="false"
|
||||||
|
:before-upload="beforeUpload"
|
||||||
|
:http-request="httpRequest"
|
||||||
|
:on-success="upload5Success">
|
||||||
|
<div v-if="dataForm.sbPic" class="avatar-wrapper">
|
||||||
|
<img :src="baseUrl + dataForm.sbPic" class="avatar"/>
|
||||||
|
</div>
|
||||||
|
<el-icon v-else class="avatar-uploader-icon"><Plus /></el-icon>
|
||||||
|
</el-upload>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<el-row :gutter="20" class="form-row">
|
||||||
|
<el-col>
|
||||||
|
<el-form-item label="在常租赁合同/房产证明" prop="housePic">
|
||||||
|
<el-upload
|
||||||
|
:action="uploadUrl"
|
||||||
|
list-type="picture-card"
|
||||||
|
name="file"
|
||||||
|
:headers="headers"
|
||||||
|
:limit="5"
|
||||||
|
:data="uploadData"
|
||||||
|
:file-list="houseList"
|
||||||
|
:before-upload="beforeUpload"
|
||||||
|
:on-preview="handlePictureCardPreview"
|
||||||
|
:on-remove="remove4Handler"
|
||||||
|
:http-request="httpRequest"
|
||||||
|
:on-success="upload4Success">
|
||||||
|
<el-icon class="avatar-uploader-icon"><Plus /></el-icon>
|
||||||
|
<template #tip>
|
||||||
|
<div>最多上传5张</div>
|
||||||
|
</template>
|
||||||
|
</el-upload>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col>
|
||||||
|
<el-form-item label="户口本" prop="householdPic">
|
||||||
|
<el-upload
|
||||||
|
:action="uploadUrl"
|
||||||
|
list-type="picture-card"
|
||||||
|
name="file"
|
||||||
|
:headers="headers"
|
||||||
|
:limit="5"
|
||||||
|
:data="uploadData"
|
||||||
|
:file-list="hkPicList"
|
||||||
|
:before-upload="beforeUpload"
|
||||||
|
:on-preview="handlePictureCardPreview"
|
||||||
|
:on-remove="remove6Handler"
|
||||||
|
:http-request="httpRequest"
|
||||||
|
:on-success="upload6Success">
|
||||||
|
<el-icon class="avatar-uploader-icon"><Plus /></el-icon>
|
||||||
|
<template #tip>
|
||||||
|
<div>最多上传5张</div>
|
||||||
|
</template>
|
||||||
|
</el-upload>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
</el-tab-pane>
|
||||||
|
</el-tabs>
|
||||||
</el-form>
|
</el-form>
|
||||||
<template #footer v-if="isEdit">
|
<template #footer v-if="isEdit">
|
||||||
<div class="dialog-footer">
|
<div class="dialog-footer">
|
||||||
@@ -650,14 +677,19 @@
|
|||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
<el-dialog title="图片预览" v-model="dialogUploadVisible" append-to-body>
|
||||||
|
<img width="100%" :src="dialogImageUrl" alt="">
|
||||||
|
</el-dialog>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { ref, reactive, nextTick, watch, computed } from 'vue'
|
import { ref, reactive, nextTick, watch, computed, onMounted } from 'vue'
|
||||||
import { ElNotification } from 'element-plus'
|
import { ElNotification } from 'element-plus'
|
||||||
import { Picture } from '@element-plus/icons-vue'
|
import { Plus } from '@element-plus/icons-vue'
|
||||||
import { useMessage, useMessageBox } from '/@/hooks/message'
|
import { useMessage, useMessageBox } from '/@/hooks/message'
|
||||||
|
import { Session } from '/@/utils/storage'
|
||||||
|
import axios from 'axios'
|
||||||
import { getObj, putObj, addObj ,makeCorrectScore} from '/@/api/recruit/recruitstudentsignup'
|
import { getObj, putObj, addObj ,makeCorrectScore} from '/@/api/recruit/recruitstudentsignup'
|
||||||
import { getList } from "/@/api/recruit/recruitstudentplangroup"
|
import { getList } from "/@/api/recruit/recruitstudentplangroup"
|
||||||
import { listByEdu } from "/@/api/recruit/recruitstudentplan"
|
import { listByEdu } from "/@/api/recruit/recruitstudentplan"
|
||||||
@@ -680,10 +712,29 @@ const emit = defineEmits<{
|
|||||||
// 表单引用
|
// 表单引用
|
||||||
const dataFormRef = ref()
|
const dataFormRef = ref()
|
||||||
|
|
||||||
|
const baseUrl = import.meta.env.VITE_API_URL
|
||||||
|
const uploadUrl = baseUrl + '/recruit/file/uploadAttachment'
|
||||||
|
|
||||||
// 响应式数据
|
// 响应式数据
|
||||||
const visible = ref(false)
|
const visible = ref(false)
|
||||||
const canSubmit = ref(false)
|
const canSubmit = ref(false)
|
||||||
const title = ref("")
|
const title = ref("")
|
||||||
|
const activeTab = ref('basic')
|
||||||
|
|
||||||
|
// 上传相关
|
||||||
|
const uploadData = reactive({})
|
||||||
|
const houseList = ref<any[]>([])
|
||||||
|
const hkPicList = ref<any[]>([])
|
||||||
|
const fileReader = ref<FileReader | null>(null)
|
||||||
|
const dialogImageUrl = ref("")
|
||||||
|
const dialogUploadVisible = ref(false)
|
||||||
|
|
||||||
|
// 请求头
|
||||||
|
const headers = computed(() => {
|
||||||
|
return {
|
||||||
|
"Authorization": 'Bearer ' + Session.getToken()
|
||||||
|
}
|
||||||
|
})
|
||||||
// 字典数据 是否 性别 辨色力
|
// 字典数据 是否 性别 辨色力
|
||||||
const { yes_no_type, sexy, color_discrimination } = useDict('yes_no_type', 'sexy', 'color_discrimination')
|
const { yes_no_type, sexy, color_discrimination } = useDict('yes_no_type', 'sexy', 'color_discrimination')
|
||||||
|
|
||||||
@@ -909,9 +960,121 @@ const dataRule = reactive({
|
|||||||
]
|
]
|
||||||
})
|
})
|
||||||
|
|
||||||
|
// 初始化 FileReader
|
||||||
|
onMounted(() => {
|
||||||
|
if (!window.FileReader) {
|
||||||
|
message.error('您的浏览器不支持 FileReader API!')
|
||||||
|
} else {
|
||||||
|
fileReader.value = new FileReader()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
// 上传前验证
|
||||||
|
const beforeUpload = (file: File) => {
|
||||||
|
const isLt5M = file.size < 10 * 1024 * 1024
|
||||||
|
if (!isLt5M) {
|
||||||
|
message.error('文件大小不能超过10M')
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
// 图片预览
|
||||||
|
const handlePictureCardPreview = (file: any) => {
|
||||||
|
dialogImageUrl.value = file.url
|
||||||
|
dialogUploadVisible.value = true
|
||||||
|
}
|
||||||
|
|
||||||
|
// 通用移除文件处理(多文件)
|
||||||
|
const handleRemoveMultiple = (fileList: any[], dataFormField: string) => {
|
||||||
|
return (file: any) => {
|
||||||
|
const arr: any[] = []
|
||||||
|
const strArr: string[] = []
|
||||||
|
const dataFormObj = dataForm as any
|
||||||
|
fileList.forEach((e: any) => {
|
||||||
|
if (e.url != file.url) {
|
||||||
|
arr.push(e)
|
||||||
|
// 保存时使用原始路径
|
||||||
|
strArr.push(e.originalUrl || (e.url.startsWith(baseUrl) ? e.url.substring(baseUrl.length) : e.url))
|
||||||
|
}
|
||||||
|
})
|
||||||
|
fileList.splice(0, fileList.length, ...arr)
|
||||||
|
dataFormObj[dataFormField] = strArr.join(",")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 移除文件处理(多图上传)
|
||||||
|
const remove4Handler = handleRemoveMultiple(houseList.value, 'housePic')
|
||||||
|
const remove6Handler = handleRemoveMultiple(hkPicList.value, 'householdPic')
|
||||||
|
|
||||||
|
// 自定义上传请求
|
||||||
|
const httpRequest = (options: any) => {
|
||||||
|
const file = options.file
|
||||||
|
if (file && fileReader.value) {
|
||||||
|
fileReader.value.readAsDataURL(file)
|
||||||
|
fileReader.value.onload = () => {
|
||||||
|
const base64Str = fileReader.value?.result as string
|
||||||
|
const config = {
|
||||||
|
url: uploadUrl,
|
||||||
|
method: 'post',
|
||||||
|
headers: headers.value,
|
||||||
|
data: {
|
||||||
|
base64Str: base64Str.split(',')[1]
|
||||||
|
},
|
||||||
|
timeout: 10000,
|
||||||
|
onUploadProgress: function (progressEvent: any) {
|
||||||
|
progressEvent.percent = progressEvent.loaded / progressEvent.total * 100
|
||||||
|
options.onProgress(progressEvent, file)
|
||||||
|
},
|
||||||
|
}
|
||||||
|
axios(config)
|
||||||
|
.then((res: any) => {
|
||||||
|
options.onSuccess(res, file)
|
||||||
|
})
|
||||||
|
.catch((err: any) => {
|
||||||
|
options.onError(err)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 通用上传成功回调(单文件 - avatar模式)
|
||||||
|
const handleUploadSuccess = (dataFormField: string) => {
|
||||||
|
return (res: any) => {
|
||||||
|
const fileUrl = res.data.fileUrl
|
||||||
|
const dataFormObj = dataForm as any
|
||||||
|
dataFormObj[dataFormField] = fileUrl
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 通用上传成功回调(多文件)
|
||||||
|
const handleUploadSuccessMultiple = (fileList: any[], dataFormField: string) => {
|
||||||
|
return (res: any) => {
|
||||||
|
const fileUrl = res.data.fileUrl // 后端返回的原始路径
|
||||||
|
const dataFormObj = dataForm as any
|
||||||
|
// 添加到文件列表,显示时添加 baseUrl 前缀,同时保存原始路径用于提交
|
||||||
|
fileList.push({ url: baseUrl + fileUrl, name: '', originalUrl: fileUrl })
|
||||||
|
// 保存时使用原始路径
|
||||||
|
const arr: string[] = []
|
||||||
|
fileList.forEach((e: any) => {
|
||||||
|
// 优先使用保存的原始路径,如果没有则从 url 中提取
|
||||||
|
arr.push(e.originalUrl || (e.url.startsWith(baseUrl) ? e.url.substring(baseUrl.length) : e.url))
|
||||||
|
})
|
||||||
|
dataFormObj[dataFormField] = arr.join(",")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 上传成功回调
|
||||||
|
const uploadSuccess = handleUploadSuccess('scorePhoto')
|
||||||
|
const upload2Success = handleUploadSuccess('graPic')
|
||||||
|
const upload3Success = handleUploadSuccess('yyPic')
|
||||||
|
const upload4Success = handleUploadSuccessMultiple(houseList.value, 'housePic')
|
||||||
|
const upload5Success = handleUploadSuccess('sbPic')
|
||||||
|
const upload6Success = handleUploadSuccessMultiple(hkPicList.value, 'householdPic')
|
||||||
|
|
||||||
// 初始化
|
// 初始化
|
||||||
const init = (id: string | null, typeParam: number, groupId?: string) => {
|
const init = (id: string | null, typeParam: number, groupId?: string) => {
|
||||||
dataForm.id = id || null
|
dataForm.id = id || ""
|
||||||
type.value = typeParam
|
type.value = typeParam
|
||||||
isEdit.value = typeParam == 1 ? true : false
|
isEdit.value = typeParam == 1 ? true : false
|
||||||
visible.value = true
|
visible.value = true
|
||||||
@@ -957,32 +1120,30 @@ const init = (id: string | null, typeParam: number, groupId?: string) => {
|
|||||||
// 编辑模式:获取表单数据
|
// 编辑模式:获取表单数据
|
||||||
getObj(dataForm.id).then((response: any) => {
|
getObj(dataForm.id).then((response: any) => {
|
||||||
Object.assign(dataForm, response.data)
|
Object.assign(dataForm, response.data)
|
||||||
dataForm.scorePhotoList = []
|
// 清空多图上传的列表
|
||||||
dataForm.graPicList = []
|
houseList.value = []
|
||||||
dataForm.yyPicList = []
|
hkPicList.value = []
|
||||||
dataForm.housePicList = []
|
|
||||||
dataForm.sbPicList = []
|
|
||||||
dataForm.householdPicList = []
|
|
||||||
|
|
||||||
if (dataForm.scorePhoto) {
|
// 初始化多图上传列表
|
||||||
dataForm.scorePhotoList = dataForm.scorePhoto.split(",")
|
if (dataForm.housePic && dataForm.housePic != '') {
|
||||||
|
const arr = dataForm.housePic.split(",").filter((item: string) => item && item.trim())
|
||||||
|
arr.forEach((e: string) => {
|
||||||
|
// 保存原始路径,显示时添加 baseUrl 前缀
|
||||||
|
houseList.value.push({ url: baseUrl + e, name: '', originalUrl: e })
|
||||||
|
})
|
||||||
}
|
}
|
||||||
if (dataForm.graPic) {
|
|
||||||
dataForm.graPicList = dataForm.graPic.split(",")
|
// 户口本
|
||||||
}
|
if (dataForm.householdPic && dataForm.householdPic != '') {
|
||||||
if (dataForm.yyPic) {
|
const arr = dataForm.householdPic.split(",").filter((item: string) => item && item.trim())
|
||||||
dataForm.yyPicList = dataForm.yyPic.split(",")
|
arr.forEach((e: string) => {
|
||||||
}
|
// 保存原始路径,显示时添加 baseUrl 前缀
|
||||||
if (dataForm.housePic) {
|
hkPicList.value.push({ url: baseUrl + e, name: '', originalUrl: e })
|
||||||
dataForm.housePicList = dataForm.housePic.split(",")
|
})
|
||||||
}
|
|
||||||
if (dataForm.householdPic) {
|
|
||||||
dataForm.householdPicList = dataForm.householdPic.split(",")
|
|
||||||
}
|
|
||||||
if (dataForm.sbPic) {
|
|
||||||
dataForm.sbPicList = dataForm.sbPic.split(",")
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
title.value = dataForm.serialNumber
|
title.value = dataForm.serialNumber
|
||||||
// 获取文化程度对应的专业
|
// 获取文化程度对应的专业
|
||||||
// 根据学历获取代办费(从字典获取)
|
// 根据学历获取代办费(从字典获取)
|
||||||
@@ -1422,13 +1583,41 @@ defineExpose({
|
|||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
.viewer-container{
|
.avatar-uploader {
|
||||||
z-index: 9999;
|
:deep(.el-upload) {
|
||||||
|
border: 1px dashed var(--el-border-color);
|
||||||
|
border-radius: 6px;
|
||||||
|
cursor: pointer;
|
||||||
|
position: relative;
|
||||||
|
overflow: hidden;
|
||||||
|
transition: var(--el-transition-duration-fast);
|
||||||
|
width: 148px;
|
||||||
|
height: 148px;
|
||||||
|
&:hover {
|
||||||
|
border-color: var(--el-color-primary);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 统一宽度样式
|
.avatar-uploader-icon {
|
||||||
.w-full {
|
font-size: 28px;
|
||||||
width: 100%;
|
color: #8c939d;
|
||||||
|
width: 148px;
|
||||||
|
height: 148px;
|
||||||
|
line-height: 148px;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.avatar-wrapper {
|
||||||
|
width: 148px;
|
||||||
|
height: 148px;
|
||||||
|
.avatar {
|
||||||
|
width: 148px;
|
||||||
|
height: 148px;
|
||||||
|
display: block;
|
||||||
|
object-fit: cover;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 图片预览容器样式
|
// 图片预览容器样式
|
||||||
@@ -1521,13 +1710,7 @@ defineExpose({
|
|||||||
margin-bottom: 0 !important;
|
margin-bottom: 0 !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 统一输入框宽度
|
|
||||||
.el-select,
|
|
||||||
.el-input,
|
|
||||||
.el-date-editor,
|
|
||||||
.el-input-number {
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 行布局优化
|
// 行布局优化
|
||||||
@@ -1583,12 +1766,7 @@ defineExpose({
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 弹窗内容区域优化
|
|
||||||
:deep(.el-dialog__body) {
|
|
||||||
max-height: 75vh;
|
|
||||||
overflow-y: auto;
|
|
||||||
padding: 24px;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
|||||||
@@ -671,17 +671,16 @@ import {
|
|||||||
oneStuNo,
|
oneStuNo,
|
||||||
tbStuWork,
|
tbStuWork,
|
||||||
sendImg,
|
sendImg,
|
||||||
pushCity as pushCityApi
|
pushCity as pushCityApi,
|
||||||
|
resetSign as resetSignApi
|
||||||
} from '/@/api/recruit/recruitstudentsignup'
|
} from '/@/api/recruit/recruitstudentsignup'
|
||||||
import { getLabelValue, getLabelValueByProps, getMajorLabelWithYears } from '/@/utils/dictLabel'
|
import { getLabelValue, getLabelValueByProps, getMajorLabelWithYears } from '/@/utils/dictLabel'
|
||||||
import { getDeptList } from "/@/api/basic/basicclass";
|
import { getDeptList } from "/@/api/basic/basicclass";
|
||||||
import { listPlanByCondition as planMajor } from "/@/api/recruit/recruitstudentplan";
|
import { listPlanByCondition as planMajor } from "/@/api/recruit/recruitstudentplan";
|
||||||
import { getDictsByTypes } from "/@/api/admin/dict";
|
import { getDictsByTypes } from "/@/api/admin/dict";
|
||||||
import { getUserListByRole } from "/@/api/admin/user";
|
|
||||||
import { queryTeacherBaseByNo } from "/@/api/professional/professionaluser/teacherbase";
|
import { queryTeacherBaseByNo } from "/@/api/professional/professionaluser/teacherbase";
|
||||||
import { useDict } from '/@/hooks/dict'
|
import { useDict } from '/@/hooks/dict'
|
||||||
import {
|
import {
|
||||||
ROLE_CODE,
|
|
||||||
PUSHED_STATUS_LIST,
|
PUSHED_STATUS_LIST,
|
||||||
NOTICE_SEND_STATUS_LIST,
|
NOTICE_SEND_STATUS_LIST,
|
||||||
RECRUIT_MATERIAL_STATUS_LIST,
|
RECRUIT_MATERIAL_STATUS_LIST,
|
||||||
@@ -775,7 +774,6 @@ const { getDataList, currentChangeHandle, sizeChangeHandle, tableStyle } = useTa
|
|||||||
// 弹窗状态(已移除,组件内部通过 v-model="visible" 控制)
|
// 弹窗状态(已移除,组件内部通过 v-model="visible" 控制)
|
||||||
|
|
||||||
// 列表数据
|
// 列表数据
|
||||||
const auditorList = ref<any[]>([])
|
|
||||||
const planList = ref<any[]>([])
|
const planList = ref<any[]>([])
|
||||||
const eduList = ref<any[]>([])
|
const eduList = ref<any[]>([])
|
||||||
const planMajorList = ref<any[]>([])
|
const planMajorList = ref<any[]>([])
|
||||||
@@ -1052,12 +1050,12 @@ const handleUpdate = (id: string, groupId: string, feeAgency: string) => {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// 删除
|
// 复学
|
||||||
const deleteHandle = (id: string) => {
|
const reEntry = (id: string) => {
|
||||||
messageBox.confirm('是否确认删除本条数据?请谨慎操作').then(() => {
|
messageBox.confirm('是否确认复学操作?请谨慎操作').then(() => {
|
||||||
return delObj(id)
|
return resetSignApi({ id })
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
message.success('删除成功')
|
message.success('操作成功')
|
||||||
getDataList()
|
getDataList()
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@@ -1149,6 +1147,13 @@ const getActionMenuItems = (row: any) => {
|
|||||||
icon: Close,
|
icon: Close,
|
||||||
visible: () => auth('recruit_recruitstudentsignup_leaveSchool') && row.canQuit
|
visible: () => auth('recruit_recruitstudentsignup_leaveSchool') && row.canQuit
|
||||||
},
|
},
|
||||||
|
// 复学
|
||||||
|
{
|
||||||
|
command: 'reEntry',
|
||||||
|
label: '复学',
|
||||||
|
icon: Check,
|
||||||
|
visible: () => auth('recruit_resetsign') && row.canReset
|
||||||
|
},
|
||||||
{
|
{
|
||||||
command: 'majorChange',
|
command: 'majorChange',
|
||||||
label: '调整专业',
|
label: '调整专业',
|
||||||
@@ -1203,6 +1208,9 @@ const handleMoreCommand = (command: string, row: any) => {
|
|||||||
case 'leaveSchool':
|
case 'leaveSchool':
|
||||||
handleUpdate(row.id, row.groupId, row.feeAgency)
|
handleUpdate(row.id, row.groupId, row.feeAgency)
|
||||||
break
|
break
|
||||||
|
case 'reEntry':
|
||||||
|
reEntry(row.id)
|
||||||
|
break
|
||||||
case 'majorChange':
|
case 'majorChange':
|
||||||
majorChange(row.id)
|
majorChange(row.id)
|
||||||
break
|
break
|
||||||
@@ -1252,18 +1260,6 @@ const init = async () => {
|
|||||||
isOutList.value = res.data.recruit_data_source || []
|
isOutList.value = res.data.recruit_data_source || []
|
||||||
})
|
})
|
||||||
|
|
||||||
// 所有经办人
|
|
||||||
getUserListByRole(ROLE_CODE.ROLE_RECRUIT_SECOND).then((res: any) => {
|
|
||||||
auditorList.value = res.data || []
|
|
||||||
getUserListByRole(ROLE_CODE.ROLE_RECRUIT).then((re: any) => {
|
|
||||||
if (re.data) {
|
|
||||||
re.data.forEach((r: any) => {
|
|
||||||
auditorList.value.push(r)
|
|
||||||
})
|
|
||||||
}
|
|
||||||
auditorList.value = unique(auditorList.value)
|
|
||||||
})
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 监听招生计划变化
|
// 监听招生计划变化
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
<el-form :model="dataForm" :rules="dataRule" ref="dataFormRef" @keyup.enter="() => dataFormSubmit('1')"
|
<el-form :model="dataForm" :rules="dataRule" ref="dataFormRef" @keyup.enter="() => dataFormSubmit('1')"
|
||||||
label-width="100px">
|
label-width="100px">
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="24">
|
<el-col :span="8">
|
||||||
<el-form-item label="招生计划" prop="groupId">
|
<el-form-item label="招生计划" prop="groupId">
|
||||||
<el-select v-model="dataForm.groupId" filterable :disabled="!!dataForm.id"
|
<el-select v-model="dataForm.groupId" filterable :disabled="!!dataForm.id"
|
||||||
placeholder="请选择招生计划">
|
placeholder="请选择招生计划">
|
||||||
@@ -21,14 +21,12 @@
|
|||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
<el-col :span="8">
|
||||||
<el-row>
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="姓名" prop="name">
|
<el-form-item label="姓名" prop="name">
|
||||||
<el-input type="text" v-model="dataForm.name" :disabled="type != 1"></el-input>
|
<el-input type="text" v-model="dataForm.name" :disabled="type != 1"></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12">
|
<el-col :span="8">
|
||||||
<el-form-item label="联系人" prop="contactName">
|
<el-form-item label="联系人" prop="contactName">
|
||||||
<el-select v-model="dataForm.contactName" filterable clearable placeholder="" :disabled="!(permissions.recruit_recruitprestudent_dj_sure || dataForm.auditStatus != '20')">
|
<el-select v-model="dataForm.contactName" filterable clearable placeholder="" :disabled="!(permissions.recruit_recruitprestudent_dj_sure || dataForm.auditStatus != '20')">
|
||||||
<el-option
|
<el-option
|
||||||
@@ -42,6 +40,7 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
|
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item label="成绩单" prop="scorePhoto">
|
<el-form-item label="成绩单" prop="scorePhoto">
|
||||||
@@ -138,6 +137,9 @@
|
|||||||
:http-request="httpRequest"
|
:http-request="httpRequest"
|
||||||
:on-success="upload4Success">
|
:on-success="upload4Success">
|
||||||
<el-icon class="avatar-uploader-icon"><Plus /></el-icon>
|
<el-icon class="avatar-uploader-icon"><Plus /></el-icon>
|
||||||
|
<template #tip>
|
||||||
|
<div>最多上传5张</div>
|
||||||
|
</template>
|
||||||
</el-upload>
|
</el-upload>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
@@ -158,6 +160,9 @@
|
|||||||
:http-request="httpRequest"
|
:http-request="httpRequest"
|
||||||
:on-success="upload6Success">
|
:on-success="upload6Success">
|
||||||
<el-icon class="avatar-uploader-icon"><Plus /></el-icon>
|
<el-icon class="avatar-uploader-icon"><Plus /></el-icon>
|
||||||
|
<template #tip>
|
||||||
|
<div>最多上传5张</div>
|
||||||
|
</template>
|
||||||
</el-upload>
|
</el-upload>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|||||||
Reference in New Issue
Block a user