forked from rc/aircox
continue migration: make website working
This commit is contained in:
5
assets/index.js
Normal file
5
assets/index.js
Normal file
@ -0,0 +1,5 @@
|
||||
import './js';
|
||||
import './styles.scss';
|
||||
import './noscript.scss';
|
||||
import './vue';
|
||||
|
14
assets/js/index.js
Normal file
14
assets/js/index.js
Normal file
@ -0,0 +1,14 @@
|
||||
import Vue from 'vue';
|
||||
import Buefy from 'buefy';
|
||||
|
||||
Vue.use(Buefy);
|
||||
|
||||
window.addEventListener('load', () => {
|
||||
var app = new Vue({
|
||||
el: '#app',
|
||||
delimiters: [ '[[', ']]' ],
|
||||
})
|
||||
});
|
||||
|
||||
|
||||
|
6
assets/noscript.scss
Normal file
6
assets/noscript.scss
Normal file
@ -0,0 +1,6 @@
|
||||
|
||||
/**[noscript="hidden"] {
|
||||
display: none;
|
||||
}*/
|
||||
|
||||
|
75
assets/styles.scss
Normal file
75
assets/styles.scss
Normal file
@ -0,0 +1,75 @@
|
||||
@charset "utf-8";
|
||||
@import "~bulma/sass/utilities/_all.sass";
|
||||
|
||||
$body-background-color: $light;
|
||||
|
||||
@import "~bulma/bulma";
|
||||
|
||||
.navbar {
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
|
||||
.navbar.has-shadow {
|
||||
box-shadow: 0em 0.05em 0.5em rgba(0,0,0,0.1);
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
|
||||
.navbar-brand img {
|
||||
min-height: 6em;
|
||||
}
|
||||
|
||||
.navbar-menu .navbar-item:not(:last-child) {
|
||||
border-right: 1px $grey solid;
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
/** page **/
|
||||
.page {
|
||||
& > .cover {
|
||||
float: right;
|
||||
max-width: 45%;
|
||||
}
|
||||
|
||||
& > .header {
|
||||
margin-bottom: 1.5em;
|
||||
}
|
||||
|
||||
.headline {
|
||||
font-size: 1.4em;
|
||||
padding: 0.2em 0em;
|
||||
}
|
||||
|
||||
p {
|
||||
padding: 0.4em 0em;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
.cover {
|
||||
margin: 1em 0em;
|
||||
border: 0.2em black solid;
|
||||
}
|
||||
|
||||
.small-cover {
|
||||
width: 10em;
|
||||
}
|
||||
|
||||
aside {
|
||||
.small-cover {
|
||||
width: 4em;
|
||||
}
|
||||
|
||||
.media .subtitle {
|
||||
font-size: 1em;
|
||||
}
|
||||
|
||||
.media .content {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
28
assets/vue/deck.vue
Normal file
28
assets/vue/deck.vue
Normal file
@ -0,0 +1,28 @@
|
||||
<template>
|
||||
<div>
|
||||
<a-tabs class="tabs" @select="value = $event.value;">
|
||||
<template v-slot:default><slot name="tabs" :value="value"/></template>
|
||||
</a-tabs>
|
||||
|
||||
<slot :value="value"></slot>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
|
||||
<script>
|
||||
import Tabs from './tabs.vue';
|
||||
|
||||
export default {
|
||||
props: ['default'],
|
||||
|
||||
data() {
|
||||
return {
|
||||
value: this.default,
|
||||
}
|
||||
},
|
||||
|
||||
components: {
|
||||
'a-tabs': Tabs,
|
||||
}
|
||||
}
|
||||
</script>
|
11
assets/vue/index.js
Normal file
11
assets/vue/index.js
Normal file
@ -0,0 +1,11 @@
|
||||
import Vue from 'vue';
|
||||
|
||||
import Tab from './tab.vue';
|
||||
import Tabs from './tabs.vue';
|
||||
|
||||
Vue.component('a-tab', Tab);
|
||||
Vue.component('a-tabs', Tabs);
|
||||
|
||||
export {Tab, Tabs};
|
||||
|
||||
|
31
assets/vue/tab.vue
Normal file
31
assets/vue/tab.vue
Normal file
@ -0,0 +1,31 @@
|
||||
<template>
|
||||
<li @click.prevent="onclick"
|
||||
:class="{'is-active': $parent.value == value}">
|
||||
<slot></slot>
|
||||
</li>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
props: {
|
||||
value: { default: undefined },
|
||||
},
|
||||
|
||||
methods: {
|
||||
select() {
|
||||
this.$parent.selectTab(this);
|
||||
},
|
||||
|
||||
onclick(event) {
|
||||
this.select();
|
||||
/*if(event.target.href != document.location)
|
||||
window.history.pushState(
|
||||
{ url: event.target.href },
|
||||
event.target.innerText + ' - ' + document.title,
|
||||
event.target.href
|
||||
) */
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
45
assets/vue/tabs.vue
Normal file
45
assets/vue/tabs.vue
Normal file
@ -0,0 +1,45 @@
|
||||
<template>
|
||||
<div>
|
||||
<div class="tabs is-centered">
|
||||
<ul><slot name="tabs" :value="value" /></ul>
|
||||
</div>
|
||||
|
||||
<slot :value="value"/>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
props: {
|
||||
default: { default: null },
|
||||
},
|
||||
|
||||
data() {
|
||||
return {
|
||||
value: this.default,
|
||||
}
|
||||
},
|
||||
|
||||
computed: {
|
||||
tab() {
|
||||
const vnode = this.$slots.default && this.$slots.default.find(
|
||||
elm => elm.child && elm.child.value == this.value
|
||||
);
|
||||
return vnode && vnode.child;
|
||||
}
|
||||
},
|
||||
|
||||
methods: {
|
||||
selectTab(tab) {
|
||||
const value = tab.value;
|
||||
if(this.value === value)
|
||||
return;
|
||||
|
||||
this.value = value;
|
||||
this.$emit('select', {target: this, value: value, tab: tab});
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
|
Reference in New Issue
Block a user