Files
2025-07-16 15:34:34 +08:00

365 lines
18 KiB
Vue
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<view class="graduate">
<view class="top-bar">
<view class="left" @tap="openPerformancePopup">
<svg t="1722844791440" class="icon" viewBox="0 0 1024 1024" version="1.1"
xmlns="http://www.w3.org/2000/svg" p-id="6598" width="80" height="80">
<path d="M512 519.64m-77.62 0a77.62 77.62 0 1 0 155.24 0 77.62 77.62 0 1 0-155.24 0Z" fill="#1890FF"
p-id="6599" data-spm-anchor-id="a313x.search_index.0.i5.23453a81qyVWuy" class="selected"></path>
<path
d="M512 249.1c-183.88 0-342.67 107.41-417.07 262.9C169.33 667.49 328.12 774.9 512 774.9S854.67 667.49 929.08 512C854.67 356.51 695.88 249.1 512 249.1z m0 411.07c-77.61 0-140.53-62.92-140.53-140.53S434.39 379.11 512 379.11s140.53 62.92 140.53 140.53S589.61 660.17 512 660.17z"
fill="#1890FF" p-id="6600" data-spm-anchor-id="a313x.search_index.0.i3.23453a81qyVWuy"
class="selected"></path>
</svg>
我的成绩
</view>
<view class="right" @tap="openConditionPopup">
<svg t="1722845752488" class="icon" viewBox="0 0 1024 1024" version="1.1"
xmlns="http://www.w3.org/2000/svg" p-id="1152" width="80" height="80">
<path
d="M705.75106 862.330328c-92.712447 33.738728-138.387977 29.378343-186.253565 13.219267-5.070674-2.36763-11.305434-2.209788-16.376108-4.557687L216.046243 734.024509c-42.992216-20.045934-45.024432-71.798382-30.877842-102.143507 7.08316-15.172563 21.052177-28.648324 39.598612-35.396069 18.546435-6.747746 37.250713-7.260732 53.094105 1.657341l63.235452 29.476994 22.748979 10.614875-8.089403-22.235993-106.622273-292.935029c-13.495491-37.092871 5.366628-77.539884 40.604855-90.364547 35.218497-12.824663 73.830597 6.708285 87.326089 43.801156l27.661811 76.000925 5.406089 14.837148 10.25973-12.134104c7.260732-8.937803 17.698035-14.837148 28.825896-18.90158 27.819653-10.121618 56.132563-1.519229 75.527399 22.906821l7.753988 9.786205 7.260732-8.937804c8.424817-11.463276 18.862119-17.36262 31.844625-22.09788 27.819653-10.121618 56.132563-1.53896 75.527399 22.88709l7.753988 9.786204 7.241002-8.937803c8.424817-11.443545 17.027206-16.691792 29.989981-21.407322l1.874373-0.670828a68.898035 68.898035 0 0 1 51.239461 2.347899c15.843391 8.918073 29.338882 22.906821 35.4158 39.598613l54.652793 150.166936c27.661811 76.020655 43.702505 137.381734 29.555916 190.811253-6.057187 29.496724-22.235992 54.297649-45.991214 75.527399-24.939037 23.774952-63.03815 46.050405-113.093796 64.261426zM240.432832 622.2921c-12.982505 4.71553-23.932794 14.99499-29.832138 27.642081-10.614875 22.768709-7.8921 53.271676 23.123853 69.27291l271.251484 128.049325c55.639306 25.925549 113.626513 23.715761 193.356455-5.307437 90.838073-33.04817 138.368247-75.566859 149.298805-132.015106 10.457033-52.087861-9.805934-107.727168-32.061657-168.890944l-53.311137-146.47738c-12.824663-35.238227-43.998459-34.370096-58.855337-28.983738-24.090636 8.779961-35.218497 35.909056-26.438536 60.019422l24.958767 68.602081-1.834913 0.670829 5.899345 10.457032 0.670828 1.854644c2.012486 5.563931 0.335414 12.469518-5.228516 14.501734-5.563931 2.012486-13.140347-1.519229-15.172563-7.08316l-0.670828-1.854643-2.190058-11.79869-1.854644 0.670828-38.473988-105.675221c-12.134104-33.363854-45.853102-33.699268-60.690251-28.29318-24.090636 8.760231-35.218497 35.909056-26.438535 60.019422l29.694027 81.564856-1.854644 0.670828 5.899345 10.457033 0.670829 1.854644c2.032216 5.563931-1.519229 13.140347-7.08316 15.172562-5.5442 2.032216-13.140347-1.519229-15.172563-7.08316l-0.670828-1.854643-2.190058-11.79869-1.854644 0.690559-44.531175-122.367014c-12.824663-35.238227-45.872832-33.699268-60.690251-28.312909-24.110366 8.779961-35.238227 35.909056-26.438535 60.019422l33.048169 90.857803-1.854643 0.670829 5.919075 10.457033 0.651098 1.834913c2.032216 5.563931-1.499499 13.160077-7.063429 15.192293-5.563931 2.012486-13.160077-1.519229-15.192293-7.10289l-0.651099-1.834914-2.209788-11.798689-1.854643 0.670828-85.03738-233.606166c-9.43106-25.96501-34.725241-37.743969-58.815876-28.983738-24.110366 8.779961-37.092871 36.599615-28.31291 60.690251l130.929942 359.682466-36.086628-18.349133-88.509903-41.275684a47.609094 47.609094 0 0 0-36.244471-1.499499z m-7.14235-192.685626c-29.832139-18.526705-50.568632-46.681773-62.051638-78.190983-29.003468-79.710212 12.252486-168.239846 90.127784-196.572485 79.710212-29.003468 166.385202 12.923314 195.388671 92.653256 2.703044 7.418574 6.076917 16.691792 6.925318 24.781195-6.905588-1.696802-14.99499-0.848401-23.084393 0-2.032216-5.563931-2.209788-11.79869-4.222274-17.362621-24.978497-68.602081-100.82158-103.97842-167.588748-79.670751-66.747437 24.268208-102.123776 100.150751-77.145279 168.752832 6.076917 16.691792 15.843391 32.022197 26.81341 44.827129l14.837149 40.782428z"
fill="#1890FF" p-id="1153"></path>
<path
d="M262.215029 162.912678C188.029287 189.903661 150.995607 272.672062 177.966859 346.838073c7.438304 20.401079 17.895337 37.586127 31.371099 51.574875l-2.012486-5.563931c-13.495491-13.988748-21.407322-29.989981-27.484239-46.681772-26.990983-74.166012 10.733256-155.079769 83.064355-181.399923 72.291638-26.320154 153.205395 11.423815 180.196377 85.570096l4.064432 11.127861 1.854643-0.670828-4.064431-11.127861C419.82027 174.82975 336.400771 135.941426 262.215029 162.912678m30.877842 79.039384c-31.52894 11.483006-46.168786 46.208247-34.725241 77.737187l122.820809 337.426743-106.207938-49.522928c-12.62736-5.919075-29.496724-6.057187-44.333873-0.670829-16.672062 6.076917-29.496724 17.046936-35.376339 29.674297-11.79869 25.294181-11.77896 71.482697 26.142582 89.180732l286.443776 135.093025c5.050944 2.36763 9.43106 2.860886 13.811176 3.354143l1.854643-0.651099 1.854644-0.690558c45.359846 14.99499 91.035376 19.375106 180.038535-13.021966 48.201002-17.559923 85.116301-37.290173 111.909981-61.735954 21.900578-20.558921 36.22474-44.669287 43.623584-70.476454 12.982505-50.904046-2.36763-110.410482-29.378343-184.556763l-54.652794-150.186667c-12.153834-33.363854-43.169788-49.365087-74.698728-37.901811l-1.854644 0.670828c-9.273218 3.373873-17.855877 8.602389-24.42605 19.394837l-15.665819 20.401079-15.527707-19.532948c-16.178805-21.427052-41.966243-28.825896-66.096339-20.045935-11.108131 4.044701-19.019961 11.127861-26.280694 20.065665l-15.665818 20.401079-15.507977-19.552678c-16.178805-21.407322-41.985973-28.806166-66.096339-20.045935-9.273218 3.373873-17.855877 8.602389-23.242235 16.869364l-22.413565 24.958767-39.144817-107.529865a68.957225 68.957225 0 0 0-29.674297-35.396069c-17.698035-8.266975-32.712755-9.095645-47.549903-3.709287m157.190905 270.343892l1.854644-0.670829-29.694027-81.584586c-10.792447-29.654566 2.683314-61.854335 32.357611-72.666512 22.235992-8.089403 59.151291-4.73526 73.337341 34.212254l41.157302 113.093796 1.854644-0.670828-26.320154-72.311368c-10.792447-29.674297 2.683314-61.874066 32.35761-72.666513l1.834914-0.670829c21.071908-5.583661 58.006936-2.209788 71.482697 34.863353l35.100116 96.421734 1.854643-0.690559-21.604624-59.328863c-10.792447-29.654566 2.683314-61.854335 32.357611-72.646782 25.945279-9.47052 57.967476-2.209788 71.462967 34.863353l53.311137 146.477379c22.295183 61.163776 43.880077 120.51237 34.113603 174.454875-11.443545 60.848092-62.683006 104.688709-157.250096 139.098266-81.564855 29.694027-143.932177 31.410559-202.096956 4.281464L226.503276 728.125164c-30.364855-14.14659-43.169788-49.384817-27.839384-82.255414a61.203237 61.203237 0 0 1 34.725241-31.528941c14.797688-5.406089 31.667052-5.228516 44.314143 0.670829l103.682466 48.339113-122.130251-335.5721a57.257187 57.257187 0 0 1 34.192524-73.337341c29.654566-10.812177 60.69025 5.208786 71.482698 34.863353l81.643776 224.332948M255.467283 144.366243c83.419499-30.364855 176.980347 13.278459 208.035761 98.552601 5.406089 14.837148 8.286705 28.490482 9.273218 42.814643-12.62736-5.899345-27.622351-6.728015-43.150058-3.1963-0.828671-8.089403-2.36763-18.033449-5.721772-27.306667-22.946281-63.03815-91.903507-96.717688-154.941657-73.791137-63.03815 22.946281-94.211946 93.087322-71.265665 156.125472 6.076917 16.691792 15.192293 30.187283 26.142582 42.972486l24.287938 66.747437c-39.776185-17.007476-73.159769-51.042158-89.378035-95.553603-29.674297-81.564855 13.278459-176.980347 96.717688-207.364932z m30.877842 79.059113c40.782428-14.856879 84.445472 7.043699 99.973179 49.700501l27.661812 76.000925c9.095645-9.608632 18.862119-17.36262 31.844624-22.09788 33.383584-12.134104 67.437996 0.670829 87.503661 26.951522 8.424817-11.443545 21.900578-20.558921 36.737726-25.96501 33.363854-12.153834 67.418266 0.651098 87.483931 26.951522a71.147283 71.147283 0 0 1 33.048169-24.623352l1.854644-0.670829c40.782428-14.856879 84.445472 7.043699 99.973179 49.700501l54.652794 150.166937c51.96948 142.768092 73.396532 265.135106-137.953911 342.063352-92.712447 33.738728-142.097264 30.72-192.508054 13.37711-6.905588-1.696802-11.956532-4.044701-18.88185-5.721773L211.310983 744.146127c-48.733719-24.268208-50.252948-80.400771-35.613102-115.126011 14.659576-34.725241 65.228208-57.336108 105.694951-38.473989l63.215723 29.496725-106.622274-292.935029c-12.982505-41.472987 7.556686-88.845318 48.339114-103.682467z m181.301272 330.836841a21.900578 21.900578 0 0 1-27.819653-12.962775l-1.341657-3.709287-88.411253-242.879384c-7.418574-20.401079-25.807168-30.502967-46.188516-23.084393a37.467746 37.467746 0 0 0-22.413565 48.04316l139.019345 381.938189-58.164778-27.129094-88.509904-41.275684c-18.388593-10.101888-45.517688 1.874374-53.094104 21.427052-9.43106 20.243237-5.050944 43.840617 18.388594 56.290404l271.271213 128.049326c50.568632 23.577649 105.51738 24.564162 187.101966-5.129865 190.969094-69.489942 155.19815-167.76632 111.337803-288.25896l-53.311137-146.477379c-13.495491-37.092871-48.04316-22.413565-48.043159-22.413565-20.401079 7.418574-27.306667 28.825896-20.558921 47.372332l28.352369 77.875298 1.341657 3.709287c4.044701 11.127861 0 23.084393-11.127861 27.129095s-23.755222-1.834913-27.819653-12.962775l-1.341657-3.709287-41.828131-114.948439c-12.153834-33.363854-48.06289-22.413565-48.06289-22.413565-20.381349 7.438304-27.286936 28.845626-20.539191 47.372332l33.0679 90.857803 1.341657 3.709287a21.900578 21.900578 0 0 1-12.962775 27.819653 21.900578 21.900578 0 0 1-27.819653-12.982504l-1.361387-3.709288-47.905048-131.6205c-13.495491-37.092871-48.04316-22.413565-48.04316-22.413565-20.401079 7.418574-27.306667 28.825896-20.558921 47.372331l36.441772 100.111291 1.341657 3.709287c3.373873 9.273218-2.505742 21.920308-11.778959 25.294182z"
fill="#1890FF" p-id="1154"></path>
</svg>
申请条件
</view>
</view>
<scroll-view scroll-y="true" @scrolltolower="scrolltolower">
<view class="list">
<view class="item" @tap="toDetail(item)" v-for="item in list" :key="item.id">
<view class="top">
奖项:{{item.typeName}}
<DictType :types="audius_status" :type="item.status" />
</view>
<view class="content">
<view>申请学年:{{item.stuYearName}}</view>
<view v-if="item.status==10">驳回原因:{{item.finalComment}}</view>
<view class="time">申请时间:{{item.applyTime}}</view>
</view>
<view class="btns">
<button @tap.stop="cancelApply(item.id)" class="cancel" size="mini" v-if="item.status==1">
<uni-icons type="closeempty" color="#1890FF" size="12"></uni-icons>取消申请</button>
</view>
</view>
</view>
<view class="empty" v-if="list.length==0&&topLoading==false">
<image src="@/static/empty.png" mode="widthFix"></image>
暂时没有数据
</view>
<view class="loading-more-top" v-if="topLoading">
<uni-load-more style="padding-top: 90px;" status="loading" />
</view>
<view class="loading-more" v-if="loading">
<uni-load-more status="loading" />
</view>
<view class="no-more" v-if="!loading&&list.length!=0">
到底啦~~
</view>
</scroll-view>
<view class="add" @tap="apply">
+
</view>
<uni-popup ref="cancelDialog" type="dialog">
<uni-popup-dialog ref="inputClose" mode="input" title="输入内容" v-model="cancelReason" placeholder="请输入取消的理由"
@confirm="dialogCancelConfirm"></uni-popup-dialog>
</uni-popup>
</view>
</template>
<script>
import {
listOwnScoreClassRank
} from "@/api/good/index.js";
import DictType from "@/components/dict-type/dict-type.vue"
import {
listApplyXgb,
verifyApplyYXGB,
cancelOwnApply
} from "@/api/good/yxbg.js";
import {
getDicts,
} from '@/api/system/dict/data.js';
export default {
components: {
DictType
},
data() {
return {
list: [],
//审核状态
audius_status: [],
loading: false,
topLoading: true,
ownScore: null,
id: "", //项id
cancelReason: "",
queryParams: {
pageNum: 1,
pageSize: 10
},
}
},
onLoad() {
this.getList();
this.get_audius_status();
this.getOwnScoreClassRank();
},
methods: {
async getList() {
let res = await listApplyXgb(this.queryParams);
if (res.code == 200) {
this.loading = false;
console.log(res);
if (this.queryParams.pageNum == 1) {
this.list = res.data;
} else {
this.list = this.list.concat(res.data); // 否则追加新数据到列表中
}
this.totalPages = Math.ceil(res.total / this.queryParams.pageSize);
this.topLoading = false;
}
},
async getOwnScoreClassRank() {
let res = await listOwnScoreClassRank();
if (res.code == 200) {
this.ownScore = res.data[0];
}
},
scrolltolower() {
if (this.queryParams.pageNum < this.totalPages) {
this.queryParams.pageNum++;
this.loading = true;
setTimeout(() => {
this.getList()
}, 1000)
} else {
}
},
async get_audius_status() {
let res = await getDicts('audius_detail_type');
this.audius_status = res.data;
console.log(this.audius_status);
},
async apply() {
uni.showLoading({
title: "正在校验资格"
})
let res = await verifyApplyYXGB();
if (res.code == 200) {
uni.navigateTo({
url: "./apply"
})
}
},
cancelApply(id) {
uni.showModal({
title: "确定取消吗?",
success: (bool) => {
if (bool.confirm) {
this.$refs.cancelDialog.open();
this.id = id;
}
}
})
},
async dialogCancelConfirm() {
let sdata = {
id: this.id,
reason: this.cancelReason
};
if (this.cancelReason == "") {
uni.showToast({
title: "请输入取消理由~",
icon: "none"
})
return;
}
let res = await cancelOwnApply(sdata);
if (res.code == 200) {
uni.showToast({
title: res.msg
})
this.getList();
}
},
toDetail(item) {
uni.navigateTo({
url: "./detail?detail=" + JSON.stringify(item)
})
},
openPerformancePopup() {
const popupContent = [{
title: '个人成绩',
content: [
'学年:' + this.ownScore.stuYearName,
'平均学分绩排名:' + this.ownScore.stuClassRank + "/" + this.ownScore.classCount,
'综合素质总成绩排名:' + this.ownScore.cphClassRank + "/" + this.ownScore.classCount
].join('\n\n'),
}, ];
uni.showModal({
title: popupContent[0].title,
content: popupContent[0].content,
showCancel: false,
confirmText: '关闭',
});
},
openConditionPopup() {
const popupContent = [{
title: '申请条件',
content: [
'关心集体,吃苦在前,以身作则,能起到模范带头作用',
'具有较强的工作能力和组织能力,工作认真负责,责任心强,团结同学,热心为同学服务,工作效果好。社会实践工作取得较好成绩,在学生中有较高威信。',
'积极参加学校开展的第二课堂活动,第二课堂成绩单学分认定为优秀。在各级各类活动(竞赛)中成绩突出。',
'积极参加体育锻炼及其他文体活动,身体健康,体能考核成绩为良好及以上。',
'参评学年各科平均学分绩为70分以上含70分平均学分绩班级排名前40%学年综合素质测评班级排名前50%学年青年大学习学习率达100%。',
'服务之星:积极主动为师生服务。在团委、学生会、易班、社团、协会、班级等组织中担任主要学生干部,认真履行职责,且获得过校级及以上优秀学生干部称号;',
].join('\n\n'),
}, ];
uni.showModal({
title: popupContent[0].title,
content: popupContent[0].content,
showCancel: false,
confirmText: '关闭',
});
},
}
}
</script>
<style lang="scss" scoped>
.graduate {
min-height: calc(100vh - 44px);
background-color: #F5F5F7;
padding-top: 88rpx;
.top-bar {
display: flex;
justify-content: space-between;
align-items: center;
background-color: white;
position: fixed;
z-index: 99;
left: 0;
right: 0;
top: 80rpx;
padding: 20rpx;
color: #1890FF;
.left {
display: flex;
align-items: center;
}
.right {
display: flex;
align-items: center;
}
svg {
margin-right: 8rpx;
width: 40rpx;
height: 40rpx;
color: red;
}
}
scroll-view {
height: calc(100vh - 88px);
.no-more {
text-align: center;
color: gray;
padding-bottom: 10px;
}
.empty {
display: flex;
flex-direction: column;
align-items: center;
margin-top: 200rpx;
color: #9E9E9E;
font-size: 36rpx;
image {
width: 250rpx;
margin-bottom: 50rpx;
}
}
}
.list {
padding: 20rpx 40rpx 15rpx 40rpx;
.item {
background-color: white;
margin-bottom: 20rpx;
padding: 40rpx;
border-radius: 16px;
border-bottom-right-radius: 0;
position: relative;
.top {
display: flex;
justify-content: space-between;
border-bottom: 1px solid #F5F5F7;
padding-bottom: 20rpx;
.uni-icons {
opacity: 0.5;
}
}
.content {
padding-top: 20rpx;
&>view {
margin-bottom: 15rpx;
}
.time {
color: #9C9C9C;
}
}
.btns {
display: flex;
justify-content: flex-end;
.cancel {
border-color: transparent;
color: #1890ff;
background: transparent;
padding: 0rpx 15rpx;
border: 1px solid #1890FF;
margin-right: -13px;
margin-top: 15px;
margin-bottom: -10px;
&:after {
border: none;
}
}
}
}
}
.add {
background-color: #1890FF;
width: 90rpx;
height: 90rpx;
border-radius: 50%;
color: white;
display: flex;
justify-content: center;
align-items: center;
font-size: 60rpx;
position: fixed;
bottom: 50px;
right: 25px;
}
}
</style>