<template>
<div class="ai-confirm-dialog">
<div class="ai-confirm-header">
<div class="header-left">
<icon-successful class="icon-successful"></icon-successful>
<span class="header-title">AI操作已完成,您可选择采纳或放弃</span>
</div>
</div>
<div class="ai-confirm-actions-row">
<div class="actions-right">
<svg-icon name="refresh" class="refresh-icon" @click="handleRefresh" title="重新生成"></svg-icon>
<tiny-button class="actions-btn" @click="handleCancel" round>放弃</tiny-button>
<tiny-button class="actions-btn" @click="handleConfirm" type="primary" round> 采纳</tiny-button>
</div>
</div>
</div>
</template>
<script>
import { TinyButton } from '@opentiny/vue'
import { IconSuccessful } from '@opentiny/vue-icon'
export default {
components: {
IconSuccessful: IconSuccessful(),
TinyButton
},
emits: ['confirm', 'cancel', 'close', 'refresh'],
setup(props, { emit }) {
const handleConfirm = () => {
emit('confirm')
}
const handleCancel = () => {
emit('cancel')
}
const handleRefresh = () => {
emit('refresh')
}
return {
handleConfirm,
handleCancel,
handleRefresh
}
}
}
</script>
<style lang="less" scoped>
.ai-confirm-dialog {
background: white;
border-radius: 8px;
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
overflow: hidden;
display: flex;
flex-direction: column;
padding: 16px 20px;
}
.ai-confirm-header {
display: flex;
align-items: center;
margin-bottom: 12px;
.header-left {
display: flex;
align-items: center;
}
.icon-successful {
font-size: 20px;
fill: #5cb300;
margin-right: 8px;
}
.header-title {
font-size: 14px;
font-weight: 500;
color: #191919;
margin-right: 16px;
}
.close-icon {
cursor: pointer;
font-size: 16px;
color: #000;
}
}
.ai-confirm-actions-row {
display: flex;
justify-content: right;
align-items: center;
.actions-right {
display: flex;
gap: 12px;
align-items: center;
.refresh-icon {
cursor: pointer;
color: #000;
font-size: 18px;
}
.actions-btn {
min-width: 68px;
height: 28px;
}
}
}
</style>