73 lines
1.4 KiB
Vue
73 lines
1.4 KiB
Vue
<template>
|
|
<div class="base-model-wrapper">
|
|
<el-dialog
|
|
v-if="config.visible"
|
|
v-dialogDrag
|
|
:title="config.title"
|
|
:append-to-body="config.appendToBody"
|
|
:visible.sync="config.visible"
|
|
:close-on-click-modal="false"
|
|
:show-close="config.showClose"
|
|
:width="config.width"
|
|
:fullscreen="config.fullscreen"
|
|
>
|
|
<div class="base-modal-body">
|
|
<slot name="dialog-body" />
|
|
</div>
|
|
<div slot="footer" class="base-modal-footer">
|
|
<slot name="dialog-footer" />
|
|
</div>
|
|
</el-dialog>
|
|
</div>
|
|
</template>
|
|
<script>
|
|
export default {
|
|
name: "BaseDialog",
|
|
props: {
|
|
config: {
|
|
type: Object,
|
|
default: () => {
|
|
return {
|
|
visible: false,
|
|
title: "",
|
|
closeOnClickModal: false,
|
|
showClose: true,
|
|
appendToBody: false,
|
|
width: "100px",
|
|
fullscreen: false,
|
|
};
|
|
},
|
|
},
|
|
},
|
|
};
|
|
</script>
|
|
<style lang="scss">
|
|
.base-model-wrapper {
|
|
.el-dialog__header {
|
|
padding: 10px;
|
|
.el-dialog__headerbtn {
|
|
top: 10px;
|
|
right: 10px;
|
|
}
|
|
}
|
|
.el-dialog__body {
|
|
padding: 10px 10px 10px 10px;
|
|
.base-modal-body {
|
|
min-height: 100px;
|
|
max-height: 650px;
|
|
overflow-y: auto;
|
|
padding: 10px;
|
|
border: 1px solid #e0e0e0;
|
|
}
|
|
}
|
|
.el-dialog__footer {
|
|
padding: 10px;
|
|
}
|
|
}
|
|
.notFooter {
|
|
.is-fullscreen .el-dialog__footer {
|
|
display: none;
|
|
}
|
|
}
|
|
</style>
|