24 lines
1.2 KiB
Vue
24 lines
1.2 KiB
Vue
<script setup lang="ts">
|
|
import { watch } from 'vue'
|
|
import { ElButton } from 'element-plus'
|
|
import AppDialog from '@/shared/components/AppDialog.vue'
|
|
import '@/styles/adminWorkbench.css'
|
|
const props = withDefaults(defineProps<{ title: string; width?: string; resetOn?: unknown; inline?: boolean; buttonLabel?: string }>(), { width: '1040px' })
|
|
const open = defineModel<boolean>({ default: false })
|
|
watch(() => props.resetOn, () => { open.value = false })
|
|
</script>
|
|
<template>
|
|
<div class="chart-disclosure" :class="{ 'chart-disclosure-inline': inline }">
|
|
<ElButton :link="inline" :type="inline ? 'primary' : undefined" :title="title" @click="open = true">{{ buttonLabel || title }}</ElButton>
|
|
<AppDialog v-model="open" class="admin-density-dialog admin-workbench is-dialog" :title="title" :width="width" :show-confirm="false" cancel-text="关闭" fullscreenable append-to-body destroy-on-close>
|
|
<div class="admin-density chart-evidence workbench-evidence"><slot /></div>
|
|
</AppDialog>
|
|
</div>
|
|
</template>
|
|
<style scoped>
|
|
.chart-disclosure { margin-top: var(--admin-space-3); }
|
|
.chart-disclosure-inline { margin-top: 0; display: inline-flex; }
|
|
.chart-evidence :deep(table) { width: 100%; }
|
|
.chart-evidence :deep(td) { overflow-wrap: anywhere; }
|
|
</style>
|