This commit is contained in:
2026-10-20 23:34:11 +08:00
parent f155976f52
commit 13e4aa56ec
321 changed files with 6756 additions and 2110 deletions
@@ -1,4 +1,5 @@
<script setup lang="ts">
import '@/styles/adminWorkbench.css'
import '@/styles/adminDensity.css'
import { computed, onMounted, reactive, ref, watch } from 'vue'
import { ElMessage, ElMessageBox, type FormInstance, type FormRules } from 'element-plus'
@@ -328,7 +329,7 @@ async function toggleStatus(row: PlatformPartnerResource) {
await ElMessageBox.confirm(
`${action}后${nextStatus === 'ACTIVE' ? '可继续用于新业务' : '不再用于新业务,历史数据不受影响'}。`,
`${action}“${row.partnerName}”`,
{ customClass: 'admin-density-confirm', type: nextStatus === 'ACTIVE' ? 'success' : 'warning', confirmButtonText: action, cancelButtonText: '取消' },
{ customClass: 'admin-density-confirm admin-workbench', type: nextStatus === 'ACTIVE' ? 'success' : 'warning', confirmButtonText: action, cancelButtonText: '取消' },
)
} catch {
return
@@ -371,13 +372,13 @@ onMounted(() => {
</script>
<template>
<AdminPage as="div" class="partners-page admin-density" spacing="normal">
<AdminPage as="div" class="partners-page admin-density admin-workbench" spacing="normal">
<ListPageLayout aria-label="往来单位管理">
<section :aria-busy="loading"><DataTable appearance="integrated" :stripe="false" column-settings-mode="show" :results-visible="!loadError"
<section class="workbench-table is-page-surface" :aria-busy="loading"><DataTable appearance="integrated" :stripe="false" column-settings-mode="show" :results-visible="!loadError"
v-model:page="page"
v-model:page-size="pageSize"
:data="rows"
@@ -424,7 +425,7 @@ onMounted(() => {
v-model="editorOpen"
:title="editorLabel"
size="min(680px, 94vw)"
class="editor-drawer admin-density admin-density-drawer"
class="editor-drawer admin-density admin-density-drawer admin-workbench is-drawer"
:confirm-loading="saving"
>
<el-form ref="formRef" :model="form" :rules="rules" label-position="top" class="density-form" :disabled="saving">
@@ -457,7 +458,7 @@ onMounted(() => {
</template>
</AppDrawer>
<AppDrawer v-model="detailOpen" title="往来单位详情" size="min(680px, 94vw)" class="detail-drawer admin-density admin-density-drawer" :loading="detailLoading" :show-footer="false">
<AppDrawer v-model="detailOpen" title="往来单位详情" size="min(680px, 94vw)" class="detail-drawer admin-density admin-density-drawer admin-workbench is-drawer" :loading="detailLoading" :show-footer="false">
<div class="partner-detail">
<DetailPageLayout class="partner-detail-layout" v-if="detail" aria-label="往来单位详情">
<FormSection class="density-form-section" title="单位信息"><dl class="detail-grid density-fields">
@@ -480,7 +481,7 @@ onMounted(() => {
</div>
</AppDrawer>
<BatchImportDialog class="admin-density-dialog"
<BatchImportDialog class="admin-density-dialog admin-workbench is-dialog"
v-model="importOpen"
title="批量导入往来单位"
entity-label="往来单位"
@@ -497,11 +498,11 @@ onMounted(() => {
.partners-page { min-width: 0; }
.partners-primary-actions, .partner-types { display: flex; flex-wrap: wrap; gap: var(--admin-space-3); }
.partner-cell { display: flex; align-items: center; gap: var(--admin-space-4); }
.partner-cell > span { display: grid; width: 34px; height: 34px; flex: 0 0 34px; place-items: center; border-radius: var(--admin-radius); background: #eef3fa; color: var(--cc-primary); }
.partner-cell > span { display: grid; width: 34px; height: 34px; flex: 0 0 34px; place-items: center; border-radius: var(--admin-radius); background: var(--workbench-surface-soft); color: var(--workbench-primary); }
.partner-cell > div { display: flex; min-width: 0; flex-direction: column; gap: 3px; }
.partner-cell :deep(.line-clamp-text) { width: 100%; }
.partner-address { display: flex; align-items: flex-start; gap: 7px; line-height: 1.55; overflow-wrap: anywhere; }
.partner-address svg { flex: 0 0 15px; margin-top: 3px; color: var(--cc-muted); }
.partner-address svg { flex: 0 0 15px; margin-top: 3px; color: var(--workbench-muted); }
.partner-detail { min-width: 0; }
.partner-detail .detail-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.detail-grid .detail-span { grid-column: 1 / -1; }