Add File
This commit is contained in:
147
frontend/src/views/dashboard/preview/SQPreviewHead.vue
Normal file
147
frontend/src/views/dashboard/preview/SQPreviewHead.vue
Normal file
@@ -0,0 +1,147 @@
|
||||
<script setup lang="ts">
|
||||
import icon_pc_outlined from '@/assets/svg/icon_pc_outlined.svg'
|
||||
import icon_edit_outlined from '@/assets/svg/icon_edit_outlined.svg'
|
||||
import { useI18n } from 'vue-i18n'
|
||||
const { t } = useI18n()
|
||||
|
||||
const preview = () => {
|
||||
window.open(`#/dashboard-preview?resourceId=${props.dashboardInfo.id}`, '_blank')
|
||||
}
|
||||
const edit = () => {
|
||||
window.open(`#/canvas?resourceId=${props.dashboardInfo.id}`, '_self')
|
||||
}
|
||||
const props = defineProps({
|
||||
dashboardInfo: {
|
||||
type: Object,
|
||||
required: true,
|
||||
},
|
||||
})
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div class="preview-head flex-align-center">
|
||||
<div class="canvas-name ellipsis">{{ dashboardInfo.name }}</div>
|
||||
<div class="canvas-opt-button">
|
||||
<el-button secondary @click="preview">
|
||||
<template #icon>
|
||||
<icon name="icon_pc_outlined">
|
||||
<icon_pc_outlined class="svg-icon" />
|
||||
</icon>
|
||||
</template>
|
||||
{{ t('dashboard.preview') }}
|
||||
</el-button>
|
||||
<el-button class="custom-button" type="primary" @click="edit">
|
||||
<template #icon>
|
||||
<Icon name="icon_edit_outlined">
|
||||
<icon_edit_outlined class="svg-icon" />
|
||||
</Icon>
|
||||
</template>
|
||||
{{ t('dashboard.edit') }}
|
||||
</el-button>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<style lang="less">
|
||||
.pad12 {
|
||||
.ed-dropdown-menu__item {
|
||||
padding: 5px 36px 5px 12px !important;
|
||||
|
||||
.ed-icon {
|
||||
margin-right: 8px;
|
||||
}
|
||||
|
||||
.arrow-right_icon {
|
||||
position: absolute;
|
||||
right: 12px;
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
&:has(.arrow-right_icon) {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.preview-head {
|
||||
display: flex;
|
||||
width: 100%;
|
||||
min-width: 300px;
|
||||
height: 56px;
|
||||
padding: 16px 24px;
|
||||
border-bottom: 1px solid rgba(31, 35, 41, 0.15);
|
||||
|
||||
.canvas-name {
|
||||
max-width: 200px;
|
||||
font-size: 16px;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.canvas-have-update {
|
||||
background-color: rgba(52, 199, 36, 0.2);
|
||||
color: rgba(44, 169, 31, 1);
|
||||
font-weight: 400;
|
||||
font-size: 12px;
|
||||
line-height: 20px;
|
||||
vertical-align: middle;
|
||||
padding: 0 4px;
|
||||
margin-left: 8px;
|
||||
}
|
||||
|
||||
.custom-icon {
|
||||
cursor: pointer;
|
||||
margin-left: 8px;
|
||||
}
|
||||
|
||||
.create-area {
|
||||
color: #646a73;
|
||||
font-weight: 400;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.canvas-opt-button {
|
||||
display: flex;
|
||||
justify-content: right;
|
||||
align-items: center;
|
||||
flex: 1;
|
||||
|
||||
.head-more-icon {
|
||||
color: #1f2329;
|
||||
margin-left: 12px;
|
||||
cursor: pointer;
|
||||
font-size: 20px;
|
||||
border-radius: 4px;
|
||||
position: relative;
|
||||
|
||||
&:hover {
|
||||
&::after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: -4px;
|
||||
left: -4px;
|
||||
border-radius: 4px;
|
||||
height: 28px;
|
||||
width: 28px;
|
||||
background: #1f23291a;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.info-tips {
|
||||
margin-left: 4px;
|
||||
font-size: 16px;
|
||||
color: #646a73;
|
||||
}
|
||||
|
||||
.custom-button {
|
||||
margin-left: 12px;
|
||||
}
|
||||
|
||||
.flex-align-center {
|
||||
& + & {
|
||||
margin-left: 4px;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
Reference in New Issue
Block a user