デッキまわりをCompositon API / Setup Sugarに (#8410)

* universal.widgets.vue

* column.vue, antenna-column.vue

* direct-column.vue, list-column.vue

* main-column.vue

* wip

* ✌️

* fix

* ✌️

* ✌️
This commit is contained in:
tamaina
2022-03-21 03:11:14 +09:00
committed by GitHub
parent eb9e6d230f
commit 78736c70f7
15 changed files with 639 additions and 756 deletions

View File

@@ -1,64 +1,49 @@
<template>
<XColumn :func="{ handler: func, title: $ts.editWidgets }" :naked="true" :column="column" :is-stacked="isStacked">
<XColumn :func="{ handler: func, title: $ts.editWidgets }" :naked="true" :column="column" :is-stacked="isStacked" @parent-focus="$event => emit('parent-focus', $event)">
<template #header><i class="fas fa-window-maximize" style="margin-right: 8px;"></i>{{ column.name }}</template>
<div class="wtdtxvec">
<XWidgets :edit="edit" :widgets="column.widgets" @add-widget="addWidget" @remove-widget="removeWidget" @update-widget="updateWidget" @update-widgets="updateWidgets" @exit="edit = false"/>
<XWidgets v-if="column.widgets" :edit="edit" :widgets="column.widgets" @add-widget="addWidget" @remove-widget="removeWidget" @update-widget="updateWidget" @update-widgets="updateWidgets" @exit="edit = false"/>
</div>
</XColumn>
</template>
<script lang="ts">
import { defineComponent, defineAsyncComponent } from 'vue';
<script lang="ts" setup>
import { } from 'vue';
import XWidgets from '@/components/widgets.vue';
import XColumn from './column.vue';
import { addColumnWidget, removeColumnWidget, setColumnWidgets, updateColumnWidget } from './deck-store';
import { addColumnWidget, Column, removeColumnWidget, setColumnWidgets, updateColumnWidget } from './deck-store';
export default defineComponent({
components: {
XColumn,
XWidgets,
},
const props = defineProps<{
column: Column;
isStacked: boolean;
}>();
props: {
column: {
type: Object,
required: true,
},
isStacked: {
type: Boolean,
required: true,
},
},
const emit = defineEmits<{
(e: 'parent-focus', direction: 'up' | 'down' | 'left' | 'right'): void;
}>();
data() {
return {
edit: false,
};
},
let edit = $ref(false);
methods: {
addWidget(widget) {
addColumnWidget(this.column.id, widget);
},
function addWidget(widget) {
addColumnWidget(props.column.id, widget);
}
removeWidget(widget) {
removeColumnWidget(this.column.id, widget);
},
function removeWidget(widget) {
removeColumnWidget(props.column.id, widget);
}
updateWidget({ id, data }) {
updateColumnWidget(this.column.id, id, data);
},
function updateWidget({ id, data }) {
updateColumnWidget(props.column.id, id, data);
}
updateWidgets(widgets) {
setColumnWidgets(this.column.id, widgets);
},
function updateWidgets(widgets) {
setColumnWidgets(props.column.id, widgets);
}
func() {
this.edit = !this.edit;
}
}
});
function func() {
edit = !edit;
}
</script>
<style lang="scss" scoped>