docs_vue2/components/OneRepl.vue

105 lines
1.7 KiB
Vue
Raw Normal View History

2021-11-20 13:22:48 +08:00
<template>
<article class="repl">
<header class="header">
<h1>{{ t('liveEdit') }}</h1>
<section class="actions">
<veui-button
ui="strong text"
@click="handleClose"
>
{{ t('exit') }}
</veui-button>
</section>
</header>
<one-live
class="editor"
:code="code"
/>
</article>
</template>
<script>
import { Button } from 'veui'
import i18n from 'veui/mixins/i18n'
import OneLive from './OneLive.vue'
export default {
name: 'one-repl',
components: {
'veui-button': Button,
'one-live': OneLive
},
mixins: [i18n],
props: {
code: {
type: String,
default: ''
}
},
methods: {
handleClose () {
this.$emit('close')
}
}
}
</script>
<style lang="stylus" scoped>
.repl
display flex
flex-direction column
.header
display flex
align-items center
flex none
height 48px
padding 0 24px
box-shadow 0 0 4px #0006
position relative
h1
flex none
margin 0
font-size 16px
.actions
display flex
justify-content flex-end
flex 1 1 auto
.editor
flex 1 1 auto
height calc(100vh - 48px)
& >>> .prism-editor-wrapper
padding 8px 12px
font-size 12px
color #eee
background-color #0a0b0d
line-height 1.5
font-family Menlo, consolas, monospace
-webkit-font-smoothing auto
&::-webkit-scrollbar
width 8px
background transparent
transition all 0.3s
&-thumb
border-radius 4px
background-color #282c33
&:hover::-webkit-scrollbar-thumb
background-color #545b66
textarea
outline none
& >>> .live-preview
padding 24px 36px
& >>> .VueLive-error
display none
</style>