You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
129 lines
2.6 KiB
129 lines
2.6 KiB
<!-- 用于审核通过、驳回的对话框 -->
|
|
<template>
|
|
<!-- close-on-click-modal="false" 禁止点击遮罩层关闭对话框 -->
|
|
<el-dialog
|
|
v-model="visible"
|
|
:width="width"
|
|
:close-on-click-modal="false"
|
|
:style="{
|
|
backgroundImage: 'url(/src/assets/SvgIcons/背景.svg)',
|
|
backgroundSize: 'cover',
|
|
backgroundPosition: 'center',
|
|
height: '400px'
|
|
}"
|
|
@close="handleClose">
|
|
|
|
<div class="confirm-content">
|
|
将要{{ message }}
|
|
<br>
|
|
</div>
|
|
|
|
<template #footer>
|
|
<div class="dialog-footer-button">
|
|
<el-button round class="custom-large-button" @click="handleCancel">
|
|
取消
|
|
</el-button>
|
|
<el-button round class="custom-large-button" type="primary" @click="handleConfirm">
|
|
通过
|
|
</el-button>
|
|
</div>
|
|
</template>
|
|
</el-dialog>
|
|
</template>
|
|
|
|
<script setup>
|
|
import { ref, watch } from 'vue'
|
|
|
|
// 组件属性
|
|
const props = defineProps({
|
|
// 是否显示对话框
|
|
modelValue: {
|
|
type: Boolean,
|
|
default: false
|
|
},
|
|
// 对话框宽度
|
|
width: {
|
|
type: String,
|
|
default: '700px'
|
|
},
|
|
// 消息内容
|
|
message: {
|
|
type: String,
|
|
default: '通过该记录!'
|
|
}
|
|
})
|
|
|
|
// 组件事件
|
|
const emit = defineEmits(['update:modelValue', 'confirm', 'cancel', 'close'])
|
|
|
|
// 内部可见性状态
|
|
const visible = ref(false)
|
|
|
|
// 监听外部modelValue变化
|
|
watch(() => props.modelValue, (newVal) => {
|
|
visible.value = newVal
|
|
})
|
|
|
|
// 监听内部visible变化,同步到外部
|
|
watch(visible, (newVal) => {
|
|
emit('update:modelValue', newVal)
|
|
})
|
|
|
|
// 确认按钮点击事件
|
|
const handleConfirm = () => {
|
|
emit('confirm')
|
|
visible.value = false
|
|
}
|
|
|
|
// 取消按钮点击事件
|
|
const handleCancel = () => {
|
|
emit('cancel')
|
|
visible.value = false
|
|
}
|
|
|
|
// 对话框关闭事件
|
|
const handleClose = () => {
|
|
emit('close')
|
|
visible.value = false
|
|
}
|
|
</script>
|
|
|
|
<style scoped>
|
|
|
|
/* 将要**的样式 */
|
|
.confirm-content {
|
|
text-align: center;
|
|
font-size: 40px;
|
|
font-weight: bold;
|
|
color: #333;
|
|
line-height: 1.5;
|
|
padding: 20px;
|
|
position: absolute;
|
|
top: 57%;
|
|
left: 53%;
|
|
transform: translate(-50%, -50%);
|
|
width: 100%;
|
|
}
|
|
/* 确认取消按钮组样式 */
|
|
.dialog-footer-button {
|
|
display: flex;
|
|
justify-content: center;
|
|
align-items: center;
|
|
display: flex;
|
|
justify-content: center;
|
|
font-size: 50px;
|
|
gap: 10px;
|
|
height: 60px;
|
|
margin-top: 20px;
|
|
position: absolute;
|
|
top: 70%;
|
|
left: 30%;
|
|
}
|
|
/* 确认取消按钮样式 */
|
|
.custom-large-button {
|
|
font-size: 20px !important;
|
|
height: 40px !important;
|
|
min-width: 40px !important;
|
|
padding: 0 40px !important;
|
|
}
|
|
</style>
|