Improve MisskeyPages
* ifブロック を追加 * ボタンやスイッチなどのテキストに変数使えるようにした
This commit is contained in:
parent
a60d83b101
commit
2e8e5c2751
16 changed files with 227 additions and 65 deletions
|
|
@ -10,10 +10,11 @@ import XImage from './page.image.vue';
|
|||
import XButton from './page.button.vue';
|
||||
import XInput from './page.input.vue';
|
||||
import XSwitch from './page.switch.vue';
|
||||
import XIf from './page.if.vue';
|
||||
|
||||
export default Vue.extend({
|
||||
components: {
|
||||
XText, XSection, XImage, XButton, XInput, XSwitch
|
||||
XText, XSection, XImage, XButton, XInput, XSwitch, XIf
|
||||
},
|
||||
|
||||
props: {
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
<template>
|
||||
<div>
|
||||
<ui-button class="kudkigyw" @click="click()">{{ value.text }}</ui-button>
|
||||
<ui-button class="kudkigyw" @click="click()">{{ script.interpolate(value.text) }}</ui-button>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
|
|
|
|||
30
src/client/app/common/views/pages/page/page.if.vue
Normal file
30
src/client/app/common/views/pages/page/page.if.vue
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
<template>
|
||||
<div v-show="script.vars.find(x => x.name === value.var).value">
|
||||
<x-block v-for="child in value.children" :value="child" :page="page" :script="script" :key="child.id" :h="h"/>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts">
|
||||
import Vue from 'vue';
|
||||
|
||||
export default Vue.extend({
|
||||
props: {
|
||||
value: {
|
||||
required: true
|
||||
},
|
||||
script: {
|
||||
required: true
|
||||
},
|
||||
page: {
|
||||
required: true
|
||||
},
|
||||
h: {
|
||||
required: true
|
||||
}
|
||||
},
|
||||
|
||||
beforeCreate() {
|
||||
this.$options.components.XBlock = require('./page.block.vue').default
|
||||
},
|
||||
});
|
||||
</script>
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
<template>
|
||||
<div>
|
||||
<ui-input class="kudkigyw" v-model="v" :type="value.inputType">{{ value.text }}</ui-input>
|
||||
<ui-input class="kudkigyw" v-model="v" :type="value.inputType">{{ script.interpolate(value.text) }}</ui-input>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
<template>
|
||||
<div class="hkcxmtwj">
|
||||
<ui-switch v-model="v">{{ value.text }}</ui-switch>
|
||||
<ui-switch v-model="v">{{ script.interpolate(value.text) }}</ui-switch>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
|
|
|
|||
|
|
@ -38,6 +38,7 @@ class Script {
|
|||
}
|
||||
|
||||
public interpolate(str: string) {
|
||||
if (str == null) return null;
|
||||
return str.replace(/\{(.+?)\}/g, match => {
|
||||
const v = this.vars.find(x => x.name === match.slice(1, -1).trim()).value;
|
||||
return v == null ? 'NULL' : v.toString();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue