2025-07-28 15:52:07 +08:00
|
|
|
<template>
|
2025-10-19 16:15:45 +08:00
|
|
|
<div v-loading.fullscreen.lock="fullLoading" :element-loading-text="loadingText" element-loading-spinner="el-icon-loading" element-loading-background="rgba(0, 0, 0, 0.3)" class="app-container">
|
2025-10-18 17:13:04 +08:00
|
|
|
<div class="sign">
|
|
|
|
|
<ol>
|
|
|
|
|
<li>
|
|
|
|
|
德、智、体、美、劳全面发展,在校期间未受纪律处分.
|
|
|
|
|
</li>
|
|
|
|
|
<li>
|
|
|
|
|
学习勤奋,成绩优异,第一学期至第五学期所有课程的平均学分绩专业排名前10%.
|
|
|
|
|
</li>
|
|
|
|
|
<li>
|
|
|
|
|
积极参加学校开展的第二课堂活动活动,第二课堂成绩单学分认定为优秀.身体健康,体能考核成绩达标.(每学年体测成绩60分以上)
|
|
|
|
|
</li>
|
|
|
|
|
<li>
|
|
|
|
|
获得过校级及以上"三好学生""优秀学生干部""优秀共青团员""优秀共青团干部"中的其中一项荣誉.
|
|
|
|
|
</li>
|
|
|
|
|
<li>
|
|
|
|
|
积极参与各级各类校园文化活动和社会实践活动;在各级各类活动(竞赛)中成绩突出;在就业创业方面作为优秀典型.
|
|
|
|
|
</li>
|
|
|
|
|
<!-- <li>
|
2025-07-28 15:52:07 +08:00
|
|
|
积极参与各级各类校园文化活动和社会实践活动;在各级各类活动(竞赛)中成绩突出;六个学期青年大学习率达98%以上;在就业创业方面作为优秀典型.
|
|
|
|
|
</li> -->
|
2025-10-18 17:13:04 +08:00
|
|
|
<li>
|
|
|
|
|
同等条件下,获得国家奖学金或国家励志奖学金等国家级奖励的毕业生应优先推荐.
|
|
|
|
|
</li>
|
|
|
|
|
<li>
|
|
|
|
|
认定为校级优秀毕业生,才有资格推荐为上级优秀毕业生.
|
|
|
|
|
</li>
|
|
|
|
|
</ol>
|
|
|
|
|
</div>
|
2025-07-28 15:52:07 +08:00
|
|
|
|
2025-10-18 17:13:04 +08:00
|
|
|
<el-row :gutter="10" class="mb8">
|
|
|
|
|
<el-col :span="1.5">
|
|
|
|
|
<el-button type="success" plain icon="el-icon-plus" size="mini" @click="handleAdd">我要申请</el-button>
|
|
|
|
|
</el-col>
|
|
|
|
|
<el-col :span="1.5">
|
|
|
|
|
<el-button type="primary" plain icon="el-icon-view" size="mini"
|
|
|
|
|
@click="lookRankVClick"
|
|
|
|
|
>查看我的相关成绩</el-button>
|
|
|
|
|
</el-col>
|
|
|
|
|
<right-toolbar :show-search.sync="showSearch" @queryTable="getList" />
|
|
|
|
|
</el-row>
|
|
|
|
|
|
|
|
|
|
<el-table v-loading="loading" :data="biyeapplyList" @selection-change="handleSelectionChange">
|
|
|
|
|
<el-table-column type="selection" width="55" align="center" />
|
|
|
|
|
<el-table-column label="学号" align="center" prop="stuNo" />
|
|
|
|
|
<el-table-column label="第二课堂学分总分值认定" align="center" prop="classTwo" />
|
|
|
|
|
<!-- <el-table-column label="青年大学习学习率" align="center" prop="youthStudy" /> -->
|
|
|
|
|
<el-table-column label="政治面貌" align="center" prop="zzmm" />
|
|
|
|
|
<el-table-column label="职务" align="center" prop="classPost" />
|
|
|
|
|
<el-table-column label="申请状态" align="center" width="120px">
|
|
|
|
|
<template slot-scope="scope">
|
|
|
|
|
<dict-tag :options="dict.type.audius_detail_type" :value="scope.row.applyStatus" />
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
|
|
|
|
<template slot-scope="scope">
|
|
|
|
|
<el-button type="text" size="mini" icon="el-icon-view"
|
|
|
|
|
@click="lookVClick(scope.row)"
|
|
|
|
|
>查看详情</el-button>
|
|
|
|
|
<el-button v-if="scope.row.applyStatus == '1'" size="mini" type="text" icon="el-icon-delete"
|
|
|
|
|
@click="cancelVClick(scope.row)"
|
|
|
|
|
>取消申请</el-button>
|
|
|
|
|
<el-button v-if="scope.row.applyStatus == 10" type="text" size="mini" icon="el-icon-refresh"
|
|
|
|
|
fixed="right" @click="reApplyVClick(scope.row)"
|
|
|
|
|
>重新提交</el-button>
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
</el-table>
|
|
|
|
|
|
|
|
|
|
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum"
|
|
|
|
|
:limit.sync="queryParams.pageSize" @pagination="getList"
|
|
|
|
|
/>
|
|
|
|
|
|
|
|
|
|
<el-dialog :visible.sync="lookRankV" title="我的相关成绩">
|
|
|
|
|
<el-table :data="rank_data">
|
|
|
|
|
<el-table-column label="学业成绩专业排名" align="center">
|
|
|
|
|
<template slot-scope="scope">
|
|
|
|
|
{{ scope.row.majorRank + "/" + scope.row.majorCount }}
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column label="专业排名百分比(四舍五入保留整数)" align="center">
|
|
|
|
|
<template slot-scope="scope">
|
|
|
|
|
{{ Math.round(Math.round(scope.row.majorRank / scope.row.majorCount * 10000) / 100) + "%" }}
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
</el-table>
|
|
|
|
|
<el-table :data="sport_data">
|
|
|
|
|
<el-table-column label="学年" align="center" prop="stuYearName" />
|
|
|
|
|
<el-table-column label="体测成绩" align="center" prop="sportScore" />
|
|
|
|
|
</el-table>
|
|
|
|
|
|
|
|
|
|
</el-dialog>
|
|
|
|
|
|
|
|
|
|
<el-dialog :title="title" :visible.sync="open" width="700px" append-to-body>
|
|
|
|
|
<el-form ref="form" class="submitForm" :model="form" :rules="rules" label-width="180px" size="mini">
|
|
|
|
|
<el-form-item label="学年">
|
|
|
|
|
<el-select v-model="form.stuYearId" class="addForm-input">
|
|
|
|
|
<el-option v-for="(v, i) in year_list" :key="i" :label="v.stuYearName"
|
|
|
|
|
:value="v.id"
|
|
|
|
|
/>
|
|
|
|
|
</el-select>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item label="第二课堂学分总分值认定" prop="classTwo">
|
|
|
|
|
<el-input v-model="form.classTwo" placeholder="请输入第二课堂学分总分值认定" />
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<!-- <el-form-item label="青年大学习学习率" prop="youthStudy">
|
2025-07-28 15:52:07 +08:00
|
|
|
<el-input v-model="form.youthStudy" placeholder="请输入青年大学习学习率" />
|
|
|
|
|
</el-form-item> -->
|
2025-10-18 17:13:04 +08:00
|
|
|
<el-form-item label="政治面貌" prop="zzmm">
|
|
|
|
|
<el-input v-model="form.zzmm" placeholder="请输入政治面貌" />
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item label="职务" prop="classPost">
|
|
|
|
|
<el-input v-model="form.classPost" placeholder="请输入职务" />
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item label="获奖情况" prop="goodHis">
|
|
|
|
|
<el-input v-model="form.goodHis" :maxlength="1000" :autosize="{ minRows: 10, maxRows: 10 }"
|
|
|
|
|
type="textarea" placeholder="请输入内容"
|
|
|
|
|
/>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item label="主要事迹" prop="mainHis">
|
|
|
|
|
<el-input v-model="form.mainHis" :maxlength="1000" :autosize="{ minRows: 10, maxRows: 10 }"
|
|
|
|
|
type="textarea" placeholder="请输入内容"
|
|
|
|
|
/>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-form>
|
|
|
|
|
<div slot="footer" class="dialog-footer">
|
|
|
|
|
<el-button type="primary" @click="doApply">确 定</el-button>
|
|
|
|
|
<el-button @click="cancel">取 消</el-button>
|
|
|
|
|
</div>
|
|
|
|
|
</el-dialog>
|
|
|
|
|
|
|
|
|
|
<el-dialog :visible.sync="reApplyV" title="重新申请优秀毕业生">
|
|
|
|
|
<el-form label-width="180px" class="apply-form">
|
|
|
|
|
<el-row>
|
|
|
|
|
<el-col :span="24">
|
|
|
|
|
<el-form-item label="学年">
|
|
|
|
|
<el-select v-model="reApplyForm.stuYearId" class="addForm-input">
|
|
|
|
|
<el-option v-for="(v, i) in year_list" :key="i" :label="v.stuYearName"
|
|
|
|
|
:value="v.id"
|
|
|
|
|
/>
|
|
|
|
|
</el-select>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item label="第二课堂学分总分值认定" prop="classTwo">
|
|
|
|
|
<el-input v-model="reApplyForm.classTwo" placeholder="请输入第二课堂学分总分值认定" />
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<!-- <el-form-item label="青年大学习学习率" prop="youthStudy">
|
2025-07-28 15:52:07 +08:00
|
|
|
<el-input v-model="reApplyForm.youthStudy" placeholder="请输入青年大学习学习率" />
|
|
|
|
|
</el-form-item> -->
|
2025-10-18 17:13:04 +08:00
|
|
|
<el-form-item label="政治面貌" prop="zzmm">
|
|
|
|
|
<el-input v-model="reApplyForm.zzmm" placeholder="请输入政治面貌" />
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item label="职务" prop="classPost">
|
|
|
|
|
<el-input v-model="reApplyForm.classPost" placeholder="请输入职务" />
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item label="获奖情况" prop="goodHis">
|
|
|
|
|
<el-input v-model="reApplyForm.goodHis" :maxlength="1000"
|
|
|
|
|
:autosize="{ minRows: 10, maxRows: 10 }" type="textarea" placeholder="请输入内容"
|
|
|
|
|
/>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item label="主要事迹" prop="mainHis">
|
|
|
|
|
<el-input v-model="reApplyForm.mainHis" :maxlength="1000"
|
|
|
|
|
:autosize="{ minRows: 10, maxRows: 10 }" type="textarea" placeholder="请输入内容"
|
|
|
|
|
/>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item label="">
|
|
|
|
|
<el-button type="primary" size="mini" @click="reApply">提交申请</el-button>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-col>
|
|
|
|
|
|
|
|
|
|
</el-row>
|
|
|
|
|
|
|
|
|
|
</el-form>
|
|
|
|
|
</el-dialog>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<el-dialog :visible.sync="lookV" title="查看详情" fullscreen>
|
|
|
|
|
<el-steps :active="getStep(lookForm)">
|
|
|
|
|
<el-step title="学生提交申请" description="" />
|
|
|
|
|
|
|
|
|
|
<el-step title="辅导员审核"
|
|
|
|
|
:status="isEmpty(lookForm.fdyCmt) ? 'wait' : getStepStatus(lookForm.fdyCmt)"
|
|
|
|
|
>
|
|
|
|
|
<template slot="description">
|
|
|
|
|
<div>
|
|
|
|
|
{{ isEmpty(lookForm.fdyNoName) ? '' : lookForm.fdyNoName }}
|
|
|
|
|
</div>
|
|
|
|
|
<div>
|
|
|
|
|
{{ isEmpty(lookForm.fdyCmt) ? '' : lookForm.fdyCmt }}
|
|
|
|
|
</div>
|
|
|
|
|
<div>
|
|
|
|
|
{{ isEmpty(lookForm.fdyTime) ? '' : lookForm.fdyTime }}
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
</el-step>
|
|
|
|
|
|
|
|
|
|
<el-step title="学院审核"
|
|
|
|
|
:status="isEmpty(lookForm.xwCmt) ? 'wait' : getStepStatus(lookForm.xwCmt)"
|
|
|
|
|
>
|
|
|
|
|
<template slot="description">
|
|
|
|
|
<div>
|
|
|
|
|
{{ isEmpty(lookForm.xwNoName) ? '' : lookForm.xwNoName }}
|
|
|
|
|
</div>
|
|
|
|
|
<div>
|
|
|
|
|
{{ isEmpty(lookForm.xwCmt) ? '' : lookForm.xwCmt }}
|
|
|
|
|
</div>
|
|
|
|
|
<div>
|
|
|
|
|
{{ isEmpty(lookForm.xwTime) ? '' : lookForm.xwTime }}
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
</el-step>
|
|
|
|
|
|
|
|
|
|
<el-step title="学工审核"
|
|
|
|
|
:status="isEmpty(lookForm.jwcCmt) ? 'wait' : getStepStatus(lookForm.jwcCmt)"
|
|
|
|
|
>
|
|
|
|
|
<template slot="description">
|
|
|
|
|
<div>
|
|
|
|
|
{{ isEmpty(lookForm.xgNoName) ? '' : lookForm.xgNoName }}
|
|
|
|
|
</div>
|
|
|
|
|
<div>
|
|
|
|
|
{{ isEmpty(lookForm.jwcCmt) ? '' : lookForm.jwcCmt }}
|
|
|
|
|
</div>
|
|
|
|
|
<div>
|
|
|
|
|
{{ isEmpty(lookForm.xgTime) ? '' : lookForm.xgTime }}
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
</el-step>
|
|
|
|
|
</el-steps>
|
|
|
|
|
<hr>
|
|
|
|
|
<el-form label-width="180px" class="apply-form">
|
|
|
|
|
<el-row>
|
|
|
|
|
<el-col :span="12">
|
|
|
|
|
<el-form-item label="学年">
|
|
|
|
|
<el-input v-model="lookForm.stuYearName" size="mini" class="addForm-input"
|
|
|
|
|
readonly
|
|
|
|
|
/>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item label="政治面貌">
|
|
|
|
|
<el-input v-model="lookForm.zzmm" size="mini" class="addForm-input" readonly />
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item label="职务">
|
|
|
|
|
<el-input v-model="lookForm.classPost" size="mini" class="addForm-input"
|
|
|
|
|
readonly
|
|
|
|
|
/>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item label="第二课堂学分总分值认定" prop="classTwo">
|
|
|
|
|
<el-input v-model="lookForm.classTwo" placeholder="请输入第二课堂学分总分值认定" readonly />
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<!-- <el-form-item label="青年大学习学习率" prop="youthStudy">
|
2025-07-28 15:52:07 +08:00
|
|
|
<el-input v-model="lookForm.youthStudy" placeholder="请输入青年大学习学习率" readonly />
|
|
|
|
|
</el-form-item> -->
|
2025-10-18 17:13:04 +08:00
|
|
|
<el-form-item label="获奖情况">
|
|
|
|
|
<el-input v-model="lookForm.goodHis" type="textarea" :autosize="{ minRows: 10, maxRows: 10 }"
|
|
|
|
|
class="addForm-input" readonly
|
|
|
|
|
/>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item label="主要事迹">
|
|
|
|
|
<el-input v-model="lookForm.mainHis" type="textarea" :autosize="{ minRows: 10, maxRows: 10 }"
|
|
|
|
|
class="addForm-input" readonly
|
|
|
|
|
/>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-col>
|
|
|
|
|
<el-col :span="12">
|
|
|
|
|
<el-form-item v-if="!isEmpty(lookForm.fdyCmt)" label="辅导员审核意见">
|
|
|
|
|
<el-input v-model="lookForm.fdyCmt" type="textarea" :autosize="{ minRows: 10, maxRows: 10 }"
|
|
|
|
|
class="addForm-input" readonly
|
|
|
|
|
/>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item v-if="!isEmpty(lookForm.xwCmt)" label="学院审核意见">
|
|
|
|
|
<el-input v-model="lookForm.xwCmt" type="textarea" :autosize="{ minRows: 10, maxRows: 10 }"
|
|
|
|
|
class="addForm-input" readonly
|
|
|
|
|
/>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item v-if="!isEmpty(lookForm.jwcCmt)" label="学工审核意见">
|
|
|
|
|
<el-input v-model="lookForm.jwcCmt" type="textarea" :autosize="{ minRows: 10, maxRows: 10 }"
|
|
|
|
|
class="addForm-input" readonly
|
|
|
|
|
/>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-col>
|
|
|
|
|
</el-row>
|
|
|
|
|
</el-form>
|
|
|
|
|
</el-dialog>
|
2025-07-28 15:52:07 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-10-18 17:13:04 +08:00
|
|
|
</div>
|
2025-07-28 15:52:07 +08:00
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
<script>
|
2025-10-18 17:13:04 +08:00
|
|
|
import { cancelApply, doApply, getOwnStuScoreMajorRank, listOwnApply, listOwnSportScore, reApply } from '@/api/comprehensive/biyeapply'
|
2025-07-28 15:52:07 +08:00
|
|
|
|
2025-10-18 17:13:04 +08:00
|
|
|
import { listAllYear as listYear } from '@/api/stuCQS/basedata/year'
|
|
|
|
|
import lodash from 'lodash'
|
2025-07-28 15:52:07 +08:00
|
|
|
|
2025-10-18 17:13:04 +08:00
|
|
|
import { fullLoading, isEmpty } from '@/api/helpFunc'
|
2025-07-28 15:52:07 +08:00
|
|
|
export default {
|
2025-10-18 17:13:04 +08:00
|
|
|
name: 'Biyeapply',
|
2025-07-28 15:52:07 +08:00
|
|
|
dicts: ['audius_detail_type'],
|
|
|
|
|
data() {
|
|
|
|
|
return {
|
|
|
|
|
|
|
|
|
|
isEmpty,
|
|
|
|
|
// 遮罩层
|
|
|
|
|
loading: true,
|
2025-10-19 16:15:45 +08:00
|
|
|
fullLoading: false,
|
|
|
|
|
loadingText: '',
|
2025-07-28 15:52:07 +08:00
|
|
|
// 选中数组
|
|
|
|
|
ids: [],
|
|
|
|
|
// 非单个禁用
|
|
|
|
|
single: true,
|
|
|
|
|
// 非多个禁用
|
|
|
|
|
multiple: true,
|
|
|
|
|
// 显示搜索条件
|
|
|
|
|
showSearch: true,
|
|
|
|
|
// 总条数
|
|
|
|
|
total: 0,
|
|
|
|
|
// 优秀毕业生表格数据
|
|
|
|
|
biyeapplyList: [],
|
|
|
|
|
// 弹出层标题
|
2025-10-18 17:13:04 +08:00
|
|
|
title: '',
|
2025-07-28 15:52:07 +08:00
|
|
|
// 是否显示弹出层
|
|
|
|
|
open: false,
|
|
|
|
|
// 查询参数
|
|
|
|
|
queryParams: {
|
|
|
|
|
pageNum: 1,
|
|
|
|
|
pageSize: 10,
|
|
|
|
|
stuNo: null,
|
|
|
|
|
stuYearId: null,
|
|
|
|
|
classTwo: null,
|
|
|
|
|
youthStudy: null,
|
|
|
|
|
zzmm: null,
|
|
|
|
|
classPost: null,
|
|
|
|
|
goodHis: null,
|
|
|
|
|
mainHis: null,
|
|
|
|
|
fdyCmt: null,
|
|
|
|
|
xwCmt: null,
|
|
|
|
|
jwcCmt: null,
|
|
|
|
|
applyStatus: null,
|
|
|
|
|
},
|
|
|
|
|
// 表单参数
|
|
|
|
|
form: {},
|
|
|
|
|
// 表单校验
|
|
|
|
|
rules: {
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
year_list: [],
|
|
|
|
|
|
|
|
|
|
lookRankV: false,
|
|
|
|
|
rank_data: [],
|
|
|
|
|
sport_data: [],
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
reApplyV: false,
|
|
|
|
|
reApplyForm: {
|
2025-10-18 17:13:04 +08:00
|
|
|
youthStudy: '',
|
|
|
|
|
classTwo: '',
|
|
|
|
|
zzmm: '',
|
|
|
|
|
classPost: '',
|
|
|
|
|
goodHis: '',
|
|
|
|
|
mainHis: '',
|
2025-07-28 15:52:07 +08:00
|
|
|
stuYearId: null,
|
|
|
|
|
id: null
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
lookV: false,
|
|
|
|
|
lookForm: {},
|
2025-10-18 17:13:04 +08:00
|
|
|
}
|
2025-07-28 15:52:07 +08:00
|
|
|
},
|
|
|
|
|
created() {
|
2025-10-18 17:13:04 +08:00
|
|
|
this.getList()
|
|
|
|
|
this.listStuYear()
|
2025-07-28 15:52:07 +08:00
|
|
|
},
|
|
|
|
|
methods: {
|
|
|
|
|
getStepStatus(data) {
|
|
|
|
|
if ((data.includes('同意') && !data.includes('不同意')) || data.includes('通过') || (data.includes('符合') && !data.includes('不符合'))) {
|
2025-10-18 17:13:04 +08:00
|
|
|
return 'success'
|
2025-07-28 15:52:07 +08:00
|
|
|
} else {
|
2025-10-18 17:13:04 +08:00
|
|
|
return 'error'
|
2025-07-28 15:52:07 +08:00
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
getStep(data) {
|
|
|
|
|
if (!isEmpty(data.jwcCmt)) {
|
2025-10-18 17:13:04 +08:00
|
|
|
return 4
|
2025-07-28 15:52:07 +08:00
|
|
|
} else if (!isEmpty(data.xwCmt)) {
|
2025-10-18 17:13:04 +08:00
|
|
|
return 3
|
2025-07-28 15:52:07 +08:00
|
|
|
} else if (!isEmpty(data.fdyCmt)) {
|
2025-10-18 17:13:04 +08:00
|
|
|
return 2
|
2025-07-28 15:52:07 +08:00
|
|
|
} else {
|
2025-10-18 17:13:04 +08:00
|
|
|
return 1
|
2025-07-28 15:52:07 +08:00
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
lookVClick(val) {
|
2025-10-18 17:13:04 +08:00
|
|
|
this.lookForm = lodash.cloneDeep(val)
|
|
|
|
|
this.lookV = true
|
2025-07-28 15:52:07 +08:00
|
|
|
},
|
|
|
|
|
|
|
|
|
|
async reApply() {
|
2025-10-18 17:13:04 +08:00
|
|
|
let sdata = { ...this.reApplyForm }
|
|
|
|
|
sdata.youthStudy = '100%'
|
2025-07-28 15:52:07 +08:00
|
|
|
if (isEmpty(sdata.stuYearId)) {
|
2025-10-18 17:13:04 +08:00
|
|
|
this.$message.info('请选择学年')
|
|
|
|
|
return
|
2025-07-28 15:52:07 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// if (isEmpty(sdata.youthStudy)) {
|
|
|
|
|
// this.$message.info("请填写青年大学习学习率");
|
|
|
|
|
// return;
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
if (isEmpty(sdata.classTwo)) {
|
2025-10-18 17:13:04 +08:00
|
|
|
this.$message.info('请填写第二课堂学分总分值认定')
|
|
|
|
|
return
|
2025-07-28 15:52:07 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (isEmpty(sdata.zzmm)) {
|
2025-10-18 17:13:04 +08:00
|
|
|
this.$message.info('请填写政治面貌')
|
|
|
|
|
return
|
2025-07-28 15:52:07 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (isEmpty(sdata.classPost)) {
|
2025-10-18 17:13:04 +08:00
|
|
|
this.$message.info('请填写职务')
|
|
|
|
|
return
|
2025-07-28 15:52:07 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (isEmpty(sdata.goodHis)) {
|
2025-10-18 17:13:04 +08:00
|
|
|
this.$message.info('请填写获奖记录')
|
|
|
|
|
return
|
2025-07-28 15:52:07 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (isEmpty(sdata.mainHis)) {
|
2025-10-18 17:13:04 +08:00
|
|
|
this.$message.info('请填写主要事迹')
|
|
|
|
|
return
|
2025-07-28 15:52:07 +08:00
|
|
|
}
|
|
|
|
|
if (sdata.mainHis.length < 100) {
|
2025-10-18 17:13:04 +08:00
|
|
|
this.$message.info('主要事迹字数需要100字以上')
|
|
|
|
|
return
|
2025-07-28 15:52:07 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-10-18 17:13:04 +08:00
|
|
|
this.fullLoading = true
|
|
|
|
|
let res = await reApply(sdata)
|
|
|
|
|
this.fullLoading = false
|
2025-07-28 15:52:07 +08:00
|
|
|
if (res.code == 200) {
|
2025-10-18 17:13:04 +08:00
|
|
|
this.reApplyV = false
|
|
|
|
|
this.$message.success(res.msg)
|
|
|
|
|
this.getList()
|
2025-07-28 15:52:07 +08:00
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
reApplyVClick(v) {
|
2025-10-18 17:13:04 +08:00
|
|
|
this.reApplyForm = { ...v }
|
|
|
|
|
this.reApplyV = true
|
2025-07-28 15:52:07 +08:00
|
|
|
},
|
|
|
|
|
|
|
|
|
|
async lookRankVClick() {
|
2025-10-18 17:13:04 +08:00
|
|
|
let loading = fullLoading(this)
|
|
|
|
|
let res = await getOwnStuScoreMajorRank()
|
|
|
|
|
let res1 = await listOwnSportScore()
|
|
|
|
|
loading.close()
|
2025-07-28 15:52:07 +08:00
|
|
|
if (res.code == 200) {
|
2025-10-18 17:13:04 +08:00
|
|
|
this.rank_data = [res.data]
|
2025-07-28 15:52:07 +08:00
|
|
|
}
|
|
|
|
|
if (res1.code == 200) {
|
2025-10-18 17:13:04 +08:00
|
|
|
this.sport_data = [...res1.data.filter(x => x.sportScore != 0)]
|
2025-07-28 15:52:07 +08:00
|
|
|
}
|
|
|
|
|
|
2025-10-18 17:13:04 +08:00
|
|
|
this.lookRankV = true
|
2025-07-28 15:52:07 +08:00
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
cancelVClick(val) {
|
|
|
|
|
if (val != null) {
|
2025-10-18 17:13:04 +08:00
|
|
|
let id = val.id
|
2025-07-28 15:52:07 +08:00
|
|
|
if (!isEmpty(id)) {
|
|
|
|
|
this.$prompt('清输入取消理由', '提示', {
|
|
|
|
|
confirmButtonText: '确定',
|
|
|
|
|
cancelButtonText: '取消',
|
|
|
|
|
inputPattern: /^.+$/,
|
|
|
|
|
inputErrorMessage: '不能为空'
|
|
|
|
|
}).then(async ({ value }) => {
|
|
|
|
|
let sdata = {
|
|
|
|
|
id: id,
|
|
|
|
|
reason: value
|
2025-10-18 17:13:04 +08:00
|
|
|
}
|
|
|
|
|
let loading = fullLoading(this)
|
|
|
|
|
let res = await cancelApply(sdata)
|
|
|
|
|
loading.close()
|
2025-07-28 15:52:07 +08:00
|
|
|
if (res.code == 200) {
|
2025-10-18 17:13:04 +08:00
|
|
|
this.$message.success(res.msg)
|
|
|
|
|
this.getList()
|
2025-07-28 15:52:07 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}).catch((ex) => {
|
|
|
|
|
this.$message({
|
|
|
|
|
type: 'info',
|
|
|
|
|
message: '取消输入'
|
2025-10-18 17:13:04 +08:00
|
|
|
})
|
|
|
|
|
console.log(ex)
|
|
|
|
|
})
|
2025-07-28 15:52:07 +08:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
async doApply() {
|
2025-10-18 17:13:04 +08:00
|
|
|
let sdata = { ...this.form }
|
|
|
|
|
sdata.youthStudy = '100%'
|
2025-07-28 15:52:07 +08:00
|
|
|
if (isEmpty(sdata.stuYearId)) {
|
2025-10-18 17:13:04 +08:00
|
|
|
this.$message.info('请选择学年')
|
|
|
|
|
return
|
2025-07-28 15:52:07 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// if (isEmpty(sdata.youthStudy)) {
|
|
|
|
|
// this.$message.info("请填写青年大学习学习率");
|
|
|
|
|
// return;
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
if (isEmpty(sdata.classTwo)) {
|
2025-10-18 17:13:04 +08:00
|
|
|
this.$message.info('请填写第二课堂学分总分值认定')
|
|
|
|
|
return
|
2025-07-28 15:52:07 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (isEmpty(sdata.zzmm)) {
|
2025-10-18 17:13:04 +08:00
|
|
|
this.$message.info('请填写政治面貌')
|
|
|
|
|
return
|
2025-07-28 15:52:07 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (isEmpty(sdata.classPost)) {
|
2025-10-18 17:13:04 +08:00
|
|
|
this.$message.info('请填写职务')
|
|
|
|
|
return
|
2025-07-28 15:52:07 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (isEmpty(sdata.goodHis)) {
|
2025-10-18 17:13:04 +08:00
|
|
|
this.$message.info('请填写获奖记录')
|
|
|
|
|
return
|
2025-07-28 15:52:07 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (isEmpty(sdata.mainHis)) {
|
2025-10-18 17:13:04 +08:00
|
|
|
this.$message.info('请填写主要事迹')
|
|
|
|
|
return
|
2025-07-28 15:52:07 +08:00
|
|
|
}
|
|
|
|
|
if (sdata.mainHis.length < 100) {
|
2025-10-18 17:13:04 +08:00
|
|
|
this.$message.info('主要事迹字数需要100字以上')
|
|
|
|
|
return
|
2025-07-28 15:52:07 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
doApply(sdata).then(res => {
|
|
|
|
|
if (res.code == 200) {
|
2025-10-18 17:13:04 +08:00
|
|
|
this.$message.success(res.msg)
|
|
|
|
|
this.getList()
|
|
|
|
|
this.open = false
|
2025-07-28 15:52:07 +08:00
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
async listStuYear() {
|
2025-10-18 17:13:04 +08:00
|
|
|
let res = await listYear()
|
2025-07-28 15:52:07 +08:00
|
|
|
if (res.code == 200) {
|
2025-10-18 17:13:04 +08:00
|
|
|
this.year_list = [...res.data]
|
2025-07-28 15:52:07 +08:00
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
/** 查询优秀毕业生列表 */
|
|
|
|
|
getList() {
|
2025-10-18 17:13:04 +08:00
|
|
|
this.loading = true
|
2025-07-28 15:52:07 +08:00
|
|
|
listOwnApply(this.queryParams).then(response => {
|
2025-10-18 17:13:04 +08:00
|
|
|
this.biyeapplyList = response.rows
|
|
|
|
|
this.total = response.total
|
|
|
|
|
this.loading = false
|
|
|
|
|
})
|
2025-07-28 15:52:07 +08:00
|
|
|
},
|
|
|
|
|
// 取消按钮
|
|
|
|
|
cancel() {
|
2025-10-18 17:13:04 +08:00
|
|
|
this.open = false
|
|
|
|
|
this.reset()
|
2025-07-28 15:52:07 +08:00
|
|
|
},
|
|
|
|
|
// 表单重置
|
|
|
|
|
reset() {
|
|
|
|
|
this.form = {
|
|
|
|
|
id: null,
|
|
|
|
|
stuNo: null,
|
|
|
|
|
stuYearId: null,
|
|
|
|
|
classTwo: null,
|
|
|
|
|
youthStudy: null,
|
|
|
|
|
zzmm: null,
|
|
|
|
|
classPost: null,
|
|
|
|
|
goodHis: null,
|
|
|
|
|
mainHis: null,
|
|
|
|
|
fdyCmt: null,
|
|
|
|
|
xwCmt: null,
|
|
|
|
|
jwcCmt: null,
|
|
|
|
|
applyStatus: null,
|
|
|
|
|
createBy: null,
|
|
|
|
|
createTime: null,
|
|
|
|
|
updateBy: null,
|
|
|
|
|
updateTime: null
|
2025-10-18 17:13:04 +08:00
|
|
|
}
|
|
|
|
|
this.resetForm('form')
|
2025-07-28 15:52:07 +08:00
|
|
|
},
|
|
|
|
|
/** 搜索按钮操作 */
|
|
|
|
|
handleQuery() {
|
2025-10-18 17:13:04 +08:00
|
|
|
this.queryParams.pageNum = 1
|
|
|
|
|
this.getList()
|
2025-07-28 15:52:07 +08:00
|
|
|
},
|
|
|
|
|
/** 重置按钮操作 */
|
|
|
|
|
resetQuery() {
|
2025-10-18 17:13:04 +08:00
|
|
|
this.resetForm('queryForm')
|
|
|
|
|
this.handleQuery()
|
2025-07-28 15:52:07 +08:00
|
|
|
},
|
|
|
|
|
// 多选框选中数据
|
|
|
|
|
handleSelectionChange(selection) {
|
|
|
|
|
this.ids = selection.map(item => item.id)
|
|
|
|
|
this.single = selection.length !== 1
|
|
|
|
|
this.multiple = !selection.length
|
|
|
|
|
},
|
|
|
|
|
/** 新增按钮操作 */
|
|
|
|
|
async handleAdd() {
|
2025-10-19 16:15:45 +08:00
|
|
|
this.loadingText = '正在校验资格.....'
|
|
|
|
|
this.fullLoading = true
|
|
|
|
|
try {
|
|
|
|
|
const res1 = await getOwnStuScoreMajorRank()
|
|
|
|
|
if (res1.code !== 200) {
|
|
|
|
|
this.$message.error('资格校验失败,请稍后重试')
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
const data = res1.data
|
|
|
|
|
if (!data || data.majorRank == null || data.majorCount == null) {
|
|
|
|
|
this.$message.info('未获取到专业排名数据,请稍后重试')
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
const rank = Number(data.majorRank)
|
|
|
|
|
const count = Number(data.majorCount)
|
|
|
|
|
if (!isFinite(rank) || !isFinite(count) || count <= 0) {
|
|
|
|
|
this.$message.info('专业排名数据异常,无法校验')
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
const stuRank = Math.round(Math.round(rank / count * 10000) / 100)
|
2025-07-28 15:52:07 +08:00
|
|
|
if (stuRank > 10) {
|
2025-10-18 17:13:04 +08:00
|
|
|
this.$message.error('您的学业成绩未达到专业前10%')
|
|
|
|
|
return
|
2025-07-28 15:52:07 +08:00
|
|
|
}
|
|
|
|
|
|
2025-10-18 17:13:04 +08:00
|
|
|
this.reset()
|
|
|
|
|
this.open = true
|
|
|
|
|
this.title = '申请优秀毕业生'
|
2025-10-19 16:15:45 +08:00
|
|
|
} catch (e) {
|
|
|
|
|
console.error('handleAdd error:', e)
|
|
|
|
|
this.$message.error('校验数据异常,请稍后重试')
|
|
|
|
|
} finally {
|
|
|
|
|
this.fullLoading = false
|
|
|
|
|
this.loadingText = ''
|
2025-07-28 15:52:07 +08:00
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
}
|
2025-10-18 17:13:04 +08:00
|
|
|
}
|
2025-07-28 15:52:07 +08:00
|
|
|
</script>
|
|
|
|
|
<style scoped>
|
|
|
|
|
.submitForm .el-form-item {
|
|
|
|
|
margin-bottom: 0px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.sign {
|
|
|
|
|
width: 100%;
|
|
|
|
|
border: 1px solid rgb(163, 211, 255);
|
|
|
|
|
font-size: small;
|
|
|
|
|
margin-bottom: 10px;
|
|
|
|
|
border-radius: 2px;
|
|
|
|
|
}
|
|
|
|
|
</style>
|