From e97b55310155a2dd691bd698a10295a4d867f60c Mon Sep 17 00:00:00 2001
From: baoshiwei <baoshiwei@shlanbao.cn>
Date: 星期五, 17 四月 2026 15:55:51 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
ruoyi-plus-soybean/src/views/qm/judge/index.vue | 103 +++++++++++++++++++++++++++++++++------------------
1 files changed, 67 insertions(+), 36 deletions(-)
diff --git a/ruoyi-plus-soybean/src/views/qm/judge/index.vue b/ruoyi-plus-soybean/src/views/qm/judge/index.vue
index 84b5e37..13fe5c0 100644
--- a/ruoyi-plus-soybean/src/views/qm/judge/index.vue
+++ b/ruoyi-plus-soybean/src/views/qm/judge/index.vue
@@ -10,6 +10,8 @@
import ButtonIcon from '@/components/custom/button-icon.vue';
import JudgeOperateDrawer from './modules/judge-operate-drawer.vue';
import JudgeSearch from './modules/judge-search.vue';
+import JudgeDetailsSubTable from '../judge-details/modules/judge-details-sub-table.vue';
+import StdSubTable from "@/views/qm/std/modules/std-sub-table.vue";
defineOptions({
name: 'JudgeList'
@@ -19,6 +21,8 @@
const { download } = useDownload();
const { hasAuth } = useAuth();
+const selectedJudgeId = ref<CommonType.IdType | null>(null);
+
const searchParams = ref<Api.Qm.JudgeSearchParams>({
pageNum: 1,
pageSize: 10,
@@ -26,7 +30,7 @@
matName: null,
judgeName: null,
category: 0, // 榛樿閫夋嫨鎴愬搧
- status: -1, // 榛樿閫夋嫨鍏ㄩ儴
+ status: 1, // 榛樿鏌ヨ鍚敤
params: {}
});
@@ -276,47 +280,74 @@
function handleExport() {
download('/qm/judge/export', searchParams.value, `鍒ゅ畾渚濇嵁_${new Date().getTime()}.xlsx`);
}
+
+function handleRowClick(row: any) {
+ return {
+ onClick: (e: MouseEvent) => {
+ const target = e.target as HTMLElement | null;
+ if (target?.closest('.n-checkbox') || target?.closest('.n-button') || target?.closest('a')) return;
+ selectedJudgeId.value = row.id;
+ },
+ style: 'cursor: pointer;'
+ };
+}
</script>
<template>
<div class="min-h-500px flex-col-stretch gap-16px overflow-hidden lt-sm:overflow-auto">
<JudgeSearch v-model:model="searchParams" @search="getDataByPage" />
- <NCard title="鍒ゅ畾渚濇嵁鍒楄〃" :bordered="false" size="small" class="card-wrapper sm:flex-1-hidden">
- <template #header-extra>
- <TableHeaderOperation
- v-model:columns="columnChecks"
- :disabled-delete="checkedRowKeys.length === 0"
- :loading="loading"
- :show-add="hasAuth('qm:judge:add')"
- :show-delete="hasAuth('qm:judge:remove')"
- :show-export="hasAuth('qm:judge:export')"
- @add="handleAdd"
- @delete="handleBatchDelete"
- @export="handleExport"
- @refresh="getData"
- />
- </template>
- <NDataTable
- v-model:checked-row-keys="checkedRowKeys"
- :columns="columns"
- :data="data"
+ <div class="judge-content-area relative flex-col-stretch gap-16px sm:flex-1-hidden">
+ <NCard
+ title="鍒ゅ畾渚濇嵁鍒楄〃"
+ :bordered="false"
size="small"
- :flex-height="!appStore.isMobile"
- :scroll-x="scrollX"
- :loading="loading"
- remote
- :row-key="row => row.id"
- :pagination="mobilePagination"
- class="sm:h-full"
- />
- <JudgeOperateDrawer
- v-model:visible="drawerVisible"
- :operate-type="operateType"
- :row-data="editingData"
- @submitted="getDataByPage"
- />
- </NCard>
+ class="flex-col-stretch card-wrapper sm:flex-1-hidden"
+ :content-style="{ flex: 1, overflow: 'hidden', display: 'flex', flexDirection: 'column' }"
+ >
+ <template #header-extra>
+ <TableHeaderOperation
+ v-model:columns="columnChecks"
+ :disabled-delete="checkedRowKeys.length === 0"
+ :loading="loading"
+ :show-add="hasAuth('qm:judge:add')"
+ :show-delete="hasAuth('qm:judge:remove')"
+ :show-export="hasAuth('qm:judge:export')"
+ @add="handleAdd"
+ @delete="handleBatchDelete"
+ @export="handleExport"
+ @refresh="getData"
+ />
+ </template>
+ <NDataTable
+ v-model:checked-row-keys="checkedRowKeys"
+ :columns="columns"
+ :data="data"
+ size="small"
+ :flex-height="!appStore.isMobile"
+ :scroll-x="scrollX"
+ :loading="loading"
+ remote
+ :row-key="row => row.id"
+ :pagination="mobilePagination"
+ :row-props="handleRowClick"
+ class="flex-1-hidden"
+ />
+ <JudgeOperateDrawer
+ v-model:visible="drawerVisible"
+ :operate-type="operateType"
+ :row-data="editingData"
+ @submitted="getDataByPage"
+ />
+ </NCard>
+ <JudgeDetailsSubTable :judge-id="selectedJudgeId" class="sm:flex-1-hidden" />
+ </div>
</div>
</template>
-<style scoped></style>
+<style scoped>
+:deep(.n-data-table-th),
+:deep(.n-data-table-td) {
+ padding: 4px 6px;
+ overflow: hidden;
+}
+</style>
--
Gitblit v1.9.3