From 39f6fca28e3f78abe48f08e474ec011abb990b36 Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期三, 09 九月 2026 10:39:21 +0800
Subject: [PATCH] update
---
frontend/src/views/GuideAuditsView.vue | 70 ++--------------------------------
1 files changed, 5 insertions(+), 65 deletions(-)
diff --git a/frontend/src/views/GuideAuditsView.vue b/frontend/src/views/GuideAuditsView.vue
index 4b30fbf..a532025 100644
--- a/frontend/src/views/GuideAuditsView.vue
+++ b/frontend/src/views/GuideAuditsView.vue
@@ -1,30 +1,23 @@
<script setup>
-import { computed, onMounted, reactive, ref } from 'vue'
-import { ElMessage } from 'element-plus'
+import { onMounted, reactive, ref } from 'vue'
+import { useRouter } from 'vue-router'
import { Refresh, Search } from '@element-plus/icons-vue'
-import { auditGuideApplication, getGuideApplicationDetail, getGuideApplications } from '@/api/guideAudits'
+import { getGuideApplications } from '@/api/guideAudits'
+const router = useRouter()
const loading = ref(false)
-const submitting = ref(false)
const records = ref([])
const total = ref(0)
const dateRange = ref([])
-const auditVisible = ref(false)
-const currentApplication = ref(null)
const query = reactive({ page: 1, size: 10, keyword: '', auditStatus: null })
-const auditForm = reactive({ auditStatus: 1, auditRemark: '' })
const statusMeta = {
0: { label: '待审核', type: 'warning' },
1: { label: '已通过', type: 'success' },
2: { label: '已驳回', type: 'danger' },
}
-const currentStatus = computed(() => statusMeta[currentApplication.value?.auditStatus] || statusMeta[0])
-const canAudit = computed(() => currentApplication.value?.auditStatus === 0)
const formatDateTime = (value) => value ? value.replace('T', ' ').slice(0, 19) : '-'
-const maskIdCard = (value) => value ? value.replace(/^(\w{6})\w+(\w{4})$/, '$1********$2') : '-'
const auditActionText = (status) => status === 0 ? '审核' : '查看'
-const displayText = (value) => value || '-'
const loadApplications = async () => {
loading.value = true
@@ -51,32 +44,9 @@
dateRange.value = []
loadApplications()
}
-const openAudit = async (row) => {
- currentApplication.value = await getGuideApplicationDetail(row.id)
- Object.assign(auditForm, { auditStatus: 1, auditRemark: '' })
- auditVisible.value = true
-}
-const submitAudit = async () => {
- if (auditForm.auditStatus === 2 && !auditForm.auditRemark.trim()) {
- ElMessage.warning('驳回时请填写审核备注')
- return
- }
- submitting.value = true
- try {
- await auditGuideApplication(currentApplication.value.id, {
- auditStatus: auditForm.auditStatus,
- auditRemark: auditForm.auditRemark.trim() || undefined,
- })
- ElMessage.success(auditForm.auditStatus === 1 ? '审核通过' : '申请已驳回')
- auditVisible.value = false
- loadApplications()
- } finally {
- submitting.value = false
- }
-}
+const openAudit = (row) => router.push(`/guide-audits/${row.id}`)
const changePage = (page) => { query.page = page; loadApplications() }
const changePageSize = (size) => { query.page = 1; query.size = size; loadApplications() }
-const closeAudit = () => { auditVisible.value = false }
onMounted(loadApplications)
</script>
@@ -131,34 +101,6 @@
@current-change=changePage @size-change=changePageSize />
</div>
</el-card>
- <el-dialog v-model=auditVisible title=导游申请审核 width=680px>
- <el-descriptions v-if=currentApplication :column=2 border>
- <el-descriptions-item label=申请编号><span v-text=currentApplication.applicationNo /></el-descriptions-item>
- <el-descriptions-item label=申请状态><el-tag :type=currentStatus.type v-text=currentStatus.label /></el-descriptions-item>
- <el-descriptions-item label=导游姓名><span v-text=currentApplication.realName /></el-descriptions-item>
- <el-descriptions-item label=手机号><span v-text=currentApplication.mobile /></el-descriptions-item>
- <el-descriptions-item label=身份证号><span v-text=maskIdCard(currentApplication.idCardNo) /></el-descriptions-item>
- <el-descriptions-item label=导游证号><span v-text=currentApplication.certificateNo /></el-descriptions-item>
- <el-descriptions-item label=审核人><span v-text=displayText(currentApplication.auditor) /></el-descriptions-item>
- <el-descriptions-item label=审核时间><span v-text=formatDateTime(currentApplication.auditedAt) /></el-descriptions-item>
- <el-descriptions-item label=审核备注 :span=2><span v-text=displayText(currentApplication.auditRemark) /></el-descriptions-item>
- </el-descriptions>
- <el-form v-if=canAudit class=audit-form label-width=82px>
- <el-form-item label=审核结果>
- <el-radio-group v-model=auditForm.auditStatus>
- <el-radio-button :value=1>通过</el-radio-button>
- <el-radio-button :value=2>驳回</el-radio-button>
- </el-radio-group>
- </el-form-item>
- <el-form-item label=审核备注>
- <el-input v-model=auditForm.auditRemark type=textarea />
- </el-form-item>
- </el-form>
- <div class=dialog-actions>
- <el-button @click=closeAudit>关闭</el-button>
- <el-button v-if=canAudit type=primary :loading=submitting @click=submitAudit>确认审核</el-button>
- </div>
- </el-dialog>
</section>
</template>
@@ -174,7 +116,5 @@
.table-card :deep(.el-card__body) { padding-top: 26px; }
.pagination-row { display: flex; justify-content: space-between; align-items: center; padding-top: 20px; }
.pagination-row > span { color: #8a94a6; font-size: 13px; }
-.audit-form { margin-top: 22px; padding-top: 20px; border-top: 1px solid #ebeef5; }
-.dialog-actions { display: flex; justify-content: flex-end; gap: 10px; margin-top: 22px; }
@media (max-width: 1200px) { .query-form { grid-template-columns: repeat(2, minmax(260px, 1fr)); } }
</style>
--
Gitblit v1.7.1