2021-11-21 16:53:18 +08:00
|
|
|
<template>
|
|
|
|
<div class="property-group">
|
|
|
|
<div class="header" @click="onClickHeader">
|
|
|
|
<div style="margin: 0 5px;">
|
|
|
|
<i v-if="fold" class="el-icon-caret-right"></i>
|
|
|
|
<i v-if="!fold" class="el-icon-caret-bottom"></i>
|
|
|
|
</div>
|
|
|
|
{{ group.name }}
|
|
|
|
</div>
|
|
|
|
<div class="content" v-show="!fold">
|
|
|
|
<ui-prop v-for="(item, index) in group.data" :key="index"
|
|
|
|
:name="item.name" :value="item.value">
|
|
|
|
</ui-prop>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</template>
|
|
|
|
|
|
|
|
<script lang="ts">
|
|
|
|
import Vue from "vue";
|
|
|
|
import Component from "vue-class-component";
|
|
|
|
import {Prop} from "vue-property-decorator";
|
|
|
|
import {Group} from "@/devtools/data";
|
|
|
|
import UiProp from "@/devtools/ui/ui-prop.vue";
|
2021-11-21 17:18:59 +08:00
|
|
|
import Bus, {BusMsg} from "@/devtools/bus";
|
2021-11-21 16:53:18 +08:00
|
|
|
|
|
|
|
@Component({
|
|
|
|
name: "property-group",
|
|
|
|
components: {UiProp}
|
|
|
|
})
|
|
|
|
export default class PropertyGroup extends Vue {
|
|
|
|
private fold = false;
|
|
|
|
@Prop({
|
|
|
|
default: () => {
|
2021-11-21 17:18:59 +08:00
|
|
|
return new Group("test")
|
2021-11-21 16:53:18 +08:00
|
|
|
}
|
|
|
|
})
|
|
|
|
group!: Group;
|
|
|
|
|
|
|
|
created() {
|
2021-11-21 21:36:16 +08:00
|
|
|
Bus.$on(BusMsg.FoldAllGroup, (b: boolean) => {
|
|
|
|
this.fold = b;
|
2021-11-21 17:18:59 +08:00
|
|
|
})
|
2021-11-21 16:53:18 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
mounted() {
|
|
|
|
}
|
|
|
|
|
2021-11-21 17:18:59 +08:00
|
|
|
onClickHeader() {
|
2021-11-21 16:53:18 +08:00
|
|
|
this.fold = !this.fold;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
</script>
|
|
|
|
|
|
|
|
<style scoped lang="less">
|
|
|
|
.property-group {
|
|
|
|
.header {
|
|
|
|
height: 40px;
|
|
|
|
display: flex;
|
|
|
|
flex-direction: row;
|
|
|
|
align-items: center;
|
|
|
|
user-select: none;
|
|
|
|
cursor: pointer;
|
|
|
|
border-bottom: 1px #6d6d6d solid;
|
|
|
|
background-color: #1da1f7;
|
|
|
|
}
|
|
|
|
|
|
|
|
.header:hover {
|
|
|
|
color: #6d6d6d;
|
|
|
|
}
|
|
|
|
|
|
|
|
.content {
|
|
|
|
padding: 0 5px;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
</style>
|