スライダーコントロールを追加するなど
This commit is contained in:
parent
ee050cc37e
commit
33d3d5c570
2 changed files with 38 additions and 11 deletions
|
@ -53,7 +53,7 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<div class="card" v-if="form">
|
||||
<div class="card form" v-if="form">
|
||||
<header>
|
||||
<span>%i18n:@settings-of-the-bot%</span>
|
||||
</header>
|
||||
|
@ -65,7 +65,7 @@
|
|||
:key="message.id"/>
|
||||
|
||||
<template v-for="item in form">
|
||||
<mk-switch v-if="item.type == 'button'" v-model="item.value" :key="item.id" :text="item.label" @change="onChangeForm($event, item)">{{ item.desc || '' }}</mk-switch>
|
||||
<mk-switch v-if="item.type == 'switch'" v-model="item.value" :key="item.id" :text="item.label" @change="onChangeForm($event, item)">{{ item.desc || '' }}</mk-switch>
|
||||
|
||||
<div class="card" v-if="item.type == 'radio'" :key="item.id">
|
||||
<header>
|
||||
|
@ -77,6 +77,16 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<div class="card" v-if="item.type == 'slider'" :key="item.id">
|
||||
<header>
|
||||
<span>{{ item.label }}</span>
|
||||
</header>
|
||||
|
||||
<div>
|
||||
<input type="range" :min="item.min" :max="item.max" :step="item.step || 1" v-model="item.value" @change="onChangeForm($event, item)"/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="card" v-if="item.type == 'textbox'" :key="item.id">
|
||||
<header>
|
||||
<span>{{ item.label }}</span>
|
||||
|
@ -214,7 +224,7 @@ export default Vue.extend({
|
|||
this.connection.send({
|
||||
type: 'update-form',
|
||||
id: item.id,
|
||||
value: v
|
||||
value: item.value
|
||||
});
|
||||
},
|
||||
|
||||
|
@ -312,6 +322,14 @@ root(isDark)
|
|||
&[data-none]
|
||||
border-color transparent
|
||||
|
||||
&.form
|
||||
> div
|
||||
> .card + .card
|
||||
margin-top 16px
|
||||
|
||||
input[type='range']
|
||||
width 100%
|
||||
|
||||
.card
|
||||
max-width 400px
|
||||
border-radius 4px
|
||||
|
|
|
@ -96,8 +96,8 @@ y = Math.floor(pos / mapWidth)
|
|||
フォームコントロールは、次のようなオブジェクトです:
|
||||
```javascript
|
||||
{
|
||||
id: 'button1',
|
||||
type: 'button',
|
||||
id: 'switch1',
|
||||
type: 'switch',
|
||||
label: 'Enable hoge',
|
||||
value: false
|
||||
}
|
||||
|
@ -110,21 +110,21 @@ y = Math.floor(pos / mapWidth)
|
|||
### フォームの操作を受け取る
|
||||
ユーザーがフォームを操作すると、ストリームから`update-form`イベントが流れてきます。
|
||||
イベントの中身には、コントロールのIDと、ユーザーが設定した値が含まれています。
|
||||
例えば、上で示したボタンをユーザーがオンにしたとすると、次のイベントが流れてきます:
|
||||
例えば、上で示したスイッチをユーザーがオンにしたとすると、次のイベントが流れてきます:
|
||||
```javascript
|
||||
{
|
||||
id: 'button1',
|
||||
id: 'switch1',
|
||||
value: true
|
||||
}
|
||||
```
|
||||
|
||||
### フォームコントロールの種類
|
||||
#### ボタン
|
||||
type: `button`
|
||||
ボタンを表示します。何かの機能をオン/オフさせたい場合に有用です。
|
||||
#### スイッチ
|
||||
type: `switch`
|
||||
スイッチを表示します。何かの機能をオン/オフさせたい場合に有用です。
|
||||
|
||||
##### プロパティ
|
||||
`desc` ... ボタンの詳細な説明。
|
||||
`desc` ... スイッチの詳細な説明。
|
||||
|
||||
#### ラジオボタン
|
||||
type: `radio`
|
||||
|
@ -145,6 +145,15 @@ items: [{
|
|||
}]
|
||||
```
|
||||
|
||||
#### スライダー
|
||||
type: `slider`
|
||||
スライダーを表示します。
|
||||
|
||||
##### プロパティ
|
||||
`min` ... スライダーの下限。
|
||||
`max` ... スライダーの上限。
|
||||
`step` ... 入力欄で刻むステップ値。
|
||||
|
||||
#### テキストボックス
|
||||
type: `textbox`
|
||||
テキストボックスを表示します。ユーザーになにか入力させる一般的な用途に利用できます。
|
||||
|
|
Loading…
Reference in a new issue