Files
zhxg_app_v1.0/pages/stuGood/goodstudent/index.vue

369 lines
18 KiB
Vue
Raw Normal View History

2025-07-16 15:34:34 +08:00
<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
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.applyStatus" />
</view>
<view class="content">
<view v-if="item.applyStatus==10">驳回原因:{{item.final_comment}}</view>
<view class="time">提交时间:{{item.applyTime}}</view>
</view>
<view class="btns">
<button @tap.stop="cancelApply(item.applyId)" class="cancel" size="mini"
v-if="item.applyStatus==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 {
getMyApply,
verifyApplySHXS,
cancelOwnApply
} from "@/api/good/shxs.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 getMyApply(this.queryParams);
if (res.code == 200) {
this.loading = false;
if (this.queryParams.pageNum == 1) {
this.list = res.rows;
} else {
this.list = this.list.concat(res.rows); // 否则追加新数据到列表中
}
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 verify = await verifyApplySHXS();
if (verify.code != 200) {
return;
}
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.sportScore,
'平均学分绩:' + this.ownScore.stuScore,
'平均学分绩排名:' + this.ownScore.stuClassRank + "/" + this.ownScore.classCount,
'综合素质总成绩:' + this.ownScore.cphScore,
'综合素质总成绩排名:' + 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: [
'德、智、体、美、劳全面发展,平时注重道德修养,勤俭节约,弘扬正能量,树立良好形象。',
'以身作则,为人表率,具有较强的集体观念和集体荣誉感。热心为同学服务,待人诚恳、谦虚、有礼貌。',
'积极参加学校开展的第二课堂活动,第二课堂成绩单学分认定为优秀。在各级各类活动(竞赛)中成绩突出。',
'积极参加体育锻炼及其他文体活动,身体健康,体能考核成绩为良好及以上。(体测成绩80分以上)。',
'参评学年各科平均学分绩75分以上含75分考查课“中等”及以上平均学分绩班级排名前30%学年综合素质测评班级排名前30%学年青年大学习学习率达100%。',
].join('\n\n'),
}, ];
uni.showModal({
title: popupContent[0].title, // First section's title
content: popupContent[0].content, // Use the joined 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>