[+] Implement v-model
This commit is contained in:
@@ -17,6 +17,3 @@ export function range(fromOrTo: number, to?: number, step = 1): number[]
|
|||||||
|
|
||||||
return [...Array(Math.floor((to - from) / step))].map((_, i) => from + i * step);
|
return [...Array(Math.floor((to - from) / step))].map((_, i) => from + i * step);
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log(range(3))
|
|
||||||
console.log(range(2, 5))
|
|
||||||
|
|||||||
+10
-2
@@ -1,16 +1,24 @@
|
|||||||
<template>
|
<template>
|
||||||
<div id="Projects">
|
<div id="Projects">
|
||||||
|
<ColorPicker style="margin-top: 10px" v-model:color="color"></ColorPicker>
|
||||||
|
<button @click="log"></button>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import {Options, Vue} from 'vue-class-component';
|
import {Options, Vue} from 'vue-class-component';
|
||||||
|
import MyColorPicker from "@/views/color/ColorPicker.vue";
|
||||||
|
import {Color} from "three";
|
||||||
|
|
||||||
@Options({components: {}})
|
@Options({components: {ColorPicker: MyColorPicker}})
|
||||||
export default class Projects extends Vue
|
export default class Projects extends Vue
|
||||||
{
|
{
|
||||||
|
color = new Color('#ffffff')
|
||||||
|
|
||||||
|
log(): void
|
||||||
|
{
|
||||||
|
console.log(this.color)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|||||||
@@ -2,9 +2,9 @@
|
|||||||
<div id="ColorPicker">
|
<div id="ColorPicker">
|
||||||
<div id="title-colors" class="fbox-h">
|
<div id="title-colors" class="fbox-h">
|
||||||
<div>Colors</div>
|
<div>Colors</div>
|
||||||
<input v-model="colorInput" spellcheck="false">
|
<input v-model="colorInput" spellcheck="false" @change="colorModel = colorInput">
|
||||||
</div>
|
</div>
|
||||||
<ColorPicker id="picker" :isWidget="true" pickerType="chrome" v-model:pureColor="color"
|
<ColorPicker id="picker" :isWidget="true" pickerType="chrome" v-model:pureColor="colorModel"
|
||||||
:disableHistory="true" @pureColorChange="change" format="hex"/>
|
:disableHistory="true" @pureColorChange="change" format="hex"/>
|
||||||
<div id="palette">
|
<div id="palette">
|
||||||
<div class="row" v-for="p of palette" :key="p">
|
<div class="row" v-for="p of palette" :key="p">
|
||||||
@@ -16,27 +16,34 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import {Options, Vue} from 'vue-class-component';
|
import {Options, prop, Vue} from 'vue-class-component';
|
||||||
import "vue3-colorpicker/style.css";
|
import "vue3-colorpicker/style.css";
|
||||||
import {ColorPicker} from "vue3-colorpicker";
|
import {ColorPicker} from "vue3-colorpicker";
|
||||||
import {Color} from "three";
|
import {Color} from "three";
|
||||||
import {range} from "@/utils";
|
import {range} from "@/utils";
|
||||||
|
import {Model, ModelSync, Prop} from "vue-property-decorator";
|
||||||
|
|
||||||
@Options({components: {ColorPicker}})
|
@Options({components: {ColorPicker}})
|
||||||
export default class MyColorPicker extends Vue
|
export default class MyColorPicker extends Vue
|
||||||
{
|
{
|
||||||
color = "#ffffff"
|
@Model() color!: Color
|
||||||
colorInput = this.color.substr(1)
|
colorModel = ''
|
||||||
|
colorInput = ''
|
||||||
palette: string[][] = []
|
palette: string[][] = []
|
||||||
|
|
||||||
mounted(): void
|
created(): void
|
||||||
{
|
{
|
||||||
|
this.colorModel = '#' + this.color.getHexString()
|
||||||
|
this.colorInput = this.colorModel.substr(1)
|
||||||
this.palette = range(3).map(_ => range(10).map(_ => ''))
|
this.palette = range(3).map(_ => range(10).map(_ => ''))
|
||||||
}
|
}
|
||||||
|
|
||||||
change(color: string): void
|
change(color: string): void
|
||||||
{
|
{
|
||||||
this.colorInput = color.substr(1)
|
this.colorInput = color.substr(1)
|
||||||
|
const c = new Color(this.colorModel)
|
||||||
|
this.$emit('update:color', c)
|
||||||
|
this.$emit('updateColor', c)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
Reference in New Issue
Block a user