From b39a0502e7941ce966fda53664cf1b04ba52d65f Mon Sep 17 00:00:00 2001 From: lrj <owen.stl@gmail.com> Date: 星期三, 01 十月 2025 17:30:24 +0800 Subject: [PATCH] 清理测试文件:删除所有test、debug、fix、check_开头的文件,为重构做准备 --- web/src/views/judge/index.vue | 148 +++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 131 insertions(+), 17 deletions(-) diff --git a/web/src/views/judge/index.vue b/web/src/views/judge/index.vue index 0c100a0..c0f324f 100644 --- a/web/src/views/judge/index.vue +++ b/web/src/views/judge/index.vue @@ -1,20 +1,33 @@ <template> <div class="judge-page"> - <div class="search-bar"> + <!-- 椤甸潰鏍囬鍖哄煙 --> + <div class="page-header"> + <div class="title-section"> + <h1 class="page-title">璇勫绠$悊</h1> + <p class="page-subtitle">绠$悊姣旇禌璇勫淇℃伅锛屽寘鎷瘎濮旂殑鍩烘湰淇℃伅鍜屼笓涓氳儗鏅�</p> + </div> + </div> + + <!-- 鎼滅储宸ュ叿鏍� --> + <div class="search-toolbar"> <el-input v-model="searchQuery" placeholder="鎼滅储璇勫..." - style="width: 300px; margin-right: 10px" + style="width: 200px" clearable - @input="handleSearch" + @clear="handleClear" /> + <el-button type="primary" @click="handleSearch"> + <el-icon><Search /></el-icon> + 鏌ヨ + </el-button> <el-button type="primary" @click="openAddDialog"> <el-icon><Plus /></el-icon> 鏂板璇勫 </el-button> </div> - <el-table :data="judges" style="width: 100%; margin-top: 20px"> + <el-table :data="judges" style="width: 100%; margin-top: 20px" v-loading="loading"> <!-- 澶村儚鍒� - 绗竴鍒� --> <el-table-column label="澶村儚" width="80" align="center"> <template #default="scope"> @@ -43,22 +56,22 @@ <el-table-column prop="description" label="绠�浠�" min-width="200" show-overflow-tooltip /> <!-- 鎿嶄綔鍒� --> - <el-table-column label="鎿嶄綔" width="150" align="center"> + <el-table-column label="鎿嶄綔" width="120" align="center"> <template #default="scope"> <el-button - type="primary" - size="small" + text + :icon="Edit" @click="editJudge(scope.row)" - > - 缂栬緫 - </el-button> + class="action-btn edit-btn" + title="缂栬緫" + /> <el-button - type="danger" - size="small" + text + :icon="Delete" @click="deleteJudge(scope.row.id)" - > - 鍒犻櫎 - </el-button> + class="action-btn delete-btn" + title="鍒犻櫎" + /> </template> </el-table-column> </el-table> @@ -86,7 +99,7 @@ <script setup lang="ts"> import { ref, onMounted } from 'vue' import { ElMessage, ElMessageBox } from 'element-plus' -import { Plus } from '@element-plus/icons-vue' +import { Plus, Search, Edit, Delete } from '@element-plus/icons-vue' import JudgeFormSimple from '@/components/JudgeFormSimple.vue' import { JudgeApi } from '@/api/judge' @@ -107,9 +120,11 @@ const total = ref(0) const dialogVisible = ref(false) const currentJudge = ref<Judge | null>(null) +const loading = ref(false) const loadJudges = async () => { try { + loading.value = true let judgeList = [] if (searchQuery.value) { judgeList = await JudgeApi.searchJudges(searchQuery.value) @@ -125,10 +140,18 @@ } catch (error) { ElMessage.error('鍔犺浇璇勫鍒楄〃澶辫触') console.error(error) + } finally { + loading.value = false } } const handleSearch = () => { + currentPage.value = 1 + loadJudges() +} + +const handleClear = () => { + searchQuery.value = '' currentPage.value = 1 loadJudges() } @@ -229,15 +252,106 @@ padding: 20px; } -.search-bar { +/* 椤甸潰鏍囬鍖哄煙 */ +.page-header { + margin-bottom: 24px; +} + +.title-section { + text-align: left; +} + +.page-title { + font-size: 24px; + font-weight: 600; + color: #1f2937; + margin: 0 0 8px 0; +} + +.page-subtitle { + font-size: 14px; + color: #6b7280; + margin: 0; + line-height: 1.5; +} + +/* 鎼滅储宸ュ叿鏍� */ +.search-toolbar { display: flex; align-items: center; justify-content: space-between; margin-bottom: 20px; + padding: 16px; + background-color: #f9fafb; + border-radius: 8px; + border: 1px solid #e5e7eb; +} + +.search-area { + display: flex; + align-items: center; + gap: 12px; +} + +/* 鎼滅储宸ュ叿鏍忔牱寮� */ +.search-toolbar { + display: flex; + gap: 12px; + align-items: center; + justify-content: flex-end; + margin-bottom: 20px; +} + +/* 鎼滅储鎸夐挳 */ +.search-btn { + width: 24px !important; + height: 24px !important; + min-height: 24px !important; + padding: 0 !important; + margin-right: 8px; +} + +/* 鎿嶄綔鎸夐挳鏍峰紡 */ +.action-btn { + padding: 8px !important; + margin: 0 6px; + border-radius: 6px; + transition: all 0.2s ease; +} + +.edit-btn { + color: #3b82f6 !important; +} + +.edit-btn:hover { + background-color: rgba(59, 130, 246, 0.1) !important; + transform: scale(1.2); +} + +.delete-btn { + color: #ef4444 !important; +} + +.delete-btn:hover { + background-color: rgba(239, 68, 68, 0.1) !important; + transform: scale(1.2); } .el-pagination { display: flex; justify-content: center; } + +/* 鍝嶅簲寮忛�傞厤 */ +@media (max-width: 768px) { + .search-toolbar { + flex-direction: column; + gap: 12px; + align-items: stretch; + } + + .search-area { + justify-content: center; + } +} </style> \ No newline at end of file -- Gitblit v1.8.0