<template>
|
<PageFormLayoutV2 :class="['page-jj-layout', { hasFooter }]" :scrollable="props.scrollable">
|
<template #title>
|
<slot name="title">
|
<PageTitleV2 :show-line="props.showLine" :title="props.title" :sub-title="props.subTitle">
|
<template #titleRight>
|
<slot name="titleRight"></slot>
|
</template>
|
</PageTitleV2>
|
</slot>
|
</template>
|
<slot />
|
<template #footer v-if="$slots.footer">
|
<slot name="footer"> </slot>
|
</template>
|
</PageFormLayoutV2>
|
</template>
|
|
<script setup lang="ts">
|
import PageTitleV2 from './PageTitleV2.vue';
|
import PageFormLayoutV2 from './PageFormLayoutV2.vue';
|
import { PageTitleV2Props } from './pageJJ';
|
|
defineOptions({
|
name: 'PageJJLayout',
|
});
|
|
type Props = {
|
scrollable?: boolean;
|
} & PageTitleV2Props;
|
|
const props = withDefaults(defineProps<Props>(), {
|
scrollable: true,
|
});
|
|
const slots = useSlots();
|
const hasFooter = computed(() => !!slots.footer);
|
</script>
|
|
<style lang="scss" scoped>
|
@use '@/style/common.scss' as *;
|
|
.page-jj-layout {
|
padding: boleGetCssVar('jj-page', 'page-v') boleGetCssVar('jj-page', 'page-h');
|
--bole-pro-form-input-height: #{boleGetCssVar('jj-page', 'input-height')};
|
|
:deep() {
|
.el-form {
|
padding: 40px 0 0;
|
}
|
|
.bl-table.pro-table-wrapper .pro-table-container {
|
padding: 0;
|
}
|
|
.steps-form-wrapper {
|
padding-top: 40px;
|
}
|
|
.page-form-layout-v2 .el-dialog .el-form {
|
padding: 0;
|
}
|
|
.page-form-layout .el-dialog .el-form {
|
padding: 0;
|
}
|
}
|
|
&.hasFooter {
|
padding-bottom: 0;
|
|
:deep() {
|
.page-form-layout-v2-footer {
|
padding: 0;
|
}
|
}
|
}
|
}
|
</style>
|