From 737179a0ce34147269cccf288fecd0e7bb4c309b Mon Sep 17 00:00:00 2001
From: wwf <1971391498@qq.com>
Date: 星期三, 11 二月 2026 10:42:19 +0800
Subject: [PATCH] 成绩查询+个人中心
---
src/views/main/appraisalPlan/index.vue | 143 +++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 130 insertions(+), 13 deletions(-)
diff --git a/src/views/main/appraisalPlan/index.vue b/src/views/main/appraisalPlan/index.vue
index 6624bc0..b7f0a51 100644
--- a/src/views/main/appraisalPlan/index.vue
+++ b/src/views/main/appraisalPlan/index.vue
@@ -8,7 +8,7 @@
<el-text class="text-title">璇勪环璁″垝</el-text>
</el-row>
- <el-row class="mt-5">
+ <el-row class="mt-5 custom-input">
<el-input
v-model="filter.keyword"
style="width: 739px;height: 70px;"
@@ -24,7 +24,7 @@
</div>
</div>
<div class="main-content py-4">
- <el-form-item label="绛夌骇锛�" class="mb-6">
+ <el-form-item label="绛夌骇锛�" class="mb-4">
<el-radio-group v-model="filter.level">
<el-radio
v-for="(item,index) in levelItems"
@@ -35,7 +35,7 @@
</el-radio>
</el-radio-group>
</el-form-item>
- <el-form-item label="鑰冪偣锛�" class="mb-6">
+ <el-form-item label="鑰冪偣锛�" class="mb-4">
<el-select v-model="filter.area" placeholder="绛涢�夊湴甯�" style="width: 240px">
<el-option
v-for="item in areaItems"
@@ -46,6 +46,38 @@
</el-select>
</el-form-item>
+ <div v-if="calendarFlag">
+ <el-row>
+ <el-text class="text-lg ">璇勪环璁″垝鏈堝巻</el-text>
+ </el-row>
+ <el-form-item class="my-2">
+ <el-select v-model="year" placeholder="绛涢�夊勾浠�" style="width: 240px">
+ <el-option
+ v-for="item in yearItems"
+ :key="item.value"
+ :label="item.label"
+ :value="item.value"
+ />
+ </el-select>
+ </el-form-item>
+ <el-table :data="monthList" border style="width: 100%" class="mb-6">
+ <el-table-column
+ v-for="(item,index) in monthHeaders"
+ :prop="item.value"
+ :label="item.label"
+ :key="`month${index}`"
+ align="center"
+ >
+ <template #default="{ row }">
+ <div v-if="row[item.value]">
+ <Icon icon="iconamoon:check-duotone" width="22" height="22" style="color: var(--el-color-primary)" />
+ </div>
+ <span v-else></span>
+ </template>
+ </el-table-column>
+ </el-table>
+ </div>
+
<el-table
:data="filterList"
table-layout="auto"
@@ -61,8 +93,24 @@
:align="item.align || 'start'"
:sortable="item.sortable"
>
- <template #signupTime="{ row }">
- {{ row }}
+ <template #default="{ row }">
+ <div v-if="item.value=='signupTime'">
+ <el-row>鎶ュ悕寮�濮嬫椂闂达細{{ row.startTime }}</el-row>
+ <el-row>鎶ュ悕缁撴潫鏃堕棿锛歿{ row.endTime }}</el-row>
+ </div>
+ <div v-if="item.value=='orgInfo'">
+ <el-row>鏈烘瀯鍚嶇О锛歿{ row.orgInfo.name }}</el-row>
+ <el-row>鏈烘瀯鑱旂郴浜猴細{{ row.orgInfo.concatName }}</el-row>
+ <el-row>鏈烘瀯鑱旂郴鏂瑰紡锛歿{ row.orgInfo.mobile }}</el-row>
+ </div>
+ <div v-if="item.value=='operation'">
+ <el-row @click="signup(row)">
+ <el-text v-if="row.signupFlag && userInfo.id">宸叉姤鍚�</el-text>
+ <el-text v-else tag="ins" class="text-primary cursor-p">
+ 鎶ュ悕鑰冭瘯
+ </el-text>
+ </el-row>
+ </div>
</template>
</el-table-column>
</el-table>
@@ -78,12 +126,38 @@
/>
</el-row>
</div>
+
+ <signupDialog
+ v-model="signupDialogVisible"
+ :currentPlan="currentPlan"
+ @signupSuccess="signupSuccessDialogVisible=true"
+ >
+ </signupDialog>
+
+ <signupSuccessDialog
+ v-model="signupSuccessDialogVisible"
+ ></signupSuccessDialog>
+
</div>
</template>
<script>
+import { useLoginStore } from '@/stores/login.js'
+import { useSessionStore } from '@/stores/session.js'
+import { storeToRefs } from 'pinia';
+import signupDialog from '@/views/main/appraisalPlan/components/signupDialog.vue'
+import signupSuccessDialog from '@/views/main/appraisalPlan/components/signupSuccessDialog.vue'
export default {
+ components: {
+ signupDialog,
+ signupSuccessDialog
+ },
+ setup() {
+ const { userInfo } = storeToRefs(useSessionStore())
+ const { loginDialogVisible } = storeToRefs(useLoginStore())
+ return { userInfo, loginDialogVisible }
+ },
data() {
return {
page: 1,
@@ -110,7 +184,7 @@
],
noticeList: [],
headers: [
- { label: '鑱屼笟锛堝伐绉嶏級鍚嶇О', value: 'occupationJob' },
+ { label: '鑱屼笟锛堝伐绉嶏級鍚嶇О', value: 'occupationJob'},
{ label: '绛夌骇', value: 'level' },
{ label: '鑰冪偣', value: 'examAddress' },
{ label: '璇勪环璁″垝鍚嶇О', value: 'planName', width: 150 },
@@ -118,7 +192,36 @@
{ label: '璇勪环鏈烘瀯淇℃伅', value: 'orgInfo' },
{ label: '鎿嶄綔', value: 'operation', align: 'center' },
],
- planList: []
+ planList: [],
+ calendarFlag: true,
+ year: '2025',
+ yearItems: [
+ { label: '2022骞�', value: '2022' },
+ { label: '2023骞�', value: '2023' },
+ { label: '2024骞�', value: '2024' },
+ { label: '2025骞�', value: '2025' },
+ { label: '2026骞�', value: '2026' },
+ ],
+ monthHeaders: [
+ { label: '1鏈�', value: '1' },
+ { label: '2鏈�', value: '2' },
+ { label: '3鏈�', value: '3' },
+ { label: '4鏈�', value: '4' },
+ { label: '5鏈�', value: '5' },
+ { label: '6鏈�', value: '6' },
+ { label: '7鏈�', value: '7' },
+ { label: '8鏈�', value: '8' },
+ { label: '9鏈�', value: '9' },
+ { label: '10鏈�', value: '10' },
+ { label: '11鏈�', value: '11' },
+ { label: '12鏈�', value: '12' },
+ ],
+ monthList: [
+ { 1: false, 2: false, 3: true, 4: true, 5: false, 6: false, 7: true, 8: false, 9: false, 10: true, 11: true, 12: false, }
+ ],
+ signupDialogVisible: false,
+ currentPlan: {},
+ signupSuccessDialogVisible: false
}
},
computed: {
@@ -146,7 +249,8 @@
name: '涓北甯傛妧甯堝闄�',
concatName: '鍚�*瀹�',
mobile: '13424571164'
- }
+ },
+ signupFlag: false
},
{
id: '2',
@@ -160,7 +264,8 @@
name: '涓北甯傛妧甯堝闄�',
concatName: '鍚�*瀹�',
mobile: '13424571164'
- }
+ },
+ signupFlag: true
},
{
id: '3',
@@ -188,7 +293,8 @@
name: '涓北甯傛妧甯堝闄�',
concatName: '鍚�*瀹�',
mobile: '13424571164'
- }
+ },
+ signupFlag: false
},
{
id: '5',
@@ -202,7 +308,8 @@
name: '涓北甯傛妧甯堝闄�',
concatName: '鍚�*瀹�',
mobile: '13424571164'
- }
+ },
+ signupFlag: false
},
{
id: '6',
@@ -216,12 +323,22 @@
name: '涓北甯傛妧甯堝闄�',
concatName: '鍚�*瀹�',
mobile: '13424571164'
- }
+ },
+ signupFlag: false
},
]
this.totalCount = 6
}, 400)
},
+ signup(item) {
+ if (this.userInfo.id) {
+ this.signupDialogVisible = true
+ this.currentPlan = item
+ } else {
+ this.loginDialogVisible = true
+ this.$message.primary('璇峰厛鐧诲綍')
+ }
+ }
}
}
@@ -233,7 +350,7 @@
background-repeat: no-repeat, no-repeat, repeat; /* 鍒嗗埆璁剧疆 */
background-size: cover;
}
-:deep(.el-input__inner) {
+.custom-input :deep(.el-input__inner) {
padding-left: 10px;
font-size: 18px;
}
--
Gitblit v1.8.0