<template> <div class="hsInputBox" :id='elId'> <div class="inputCurr"> <el-checkbox v-model="value_inner">{{configData.title}}</el-checkbox> </div> <jsoneditor v-model='jsoneditorVisible' :elInfo='elInfo' :layout='layout' :jsoneditorCloseAfter='jsoneditorCloseAfter' :jsoneditorOpenAfter='jsoneditorOpenAfter' > </jsoneditor> </div> </template> <script> import ucComponent from '../ucClass/uc_component' import jsoneditor from '../common/jsoneditor' export default { mixins: [ucComponent], components: { jsoneditor }, name: 'hsCheckbox', props: { allSourceData: { type: Object, default() { return {} } }, elInfo: { type: Object, default() { return {} } }, value: '', layout: {}, jsoneditorCloseAfter: { type: Function }, jsoneditorOpenAfter: { type: Function } }, watch: { allSourceData: { handler: function(newVal, oldVal) { const { config } = newVal this.initConfig(config) }, deep: true }, value(val) { this.value_inner = val }, value_inner(val) { this.$emit('input', val) } }, data() { return { elId: '', value_inner: '', jsoneditorVisible: false, configData: { title: '' } } }, mounted() { this.$nextTick(() => { const { config } = this.allSourceData this.initConfig(config) }) }, methods: { initConfig(config = {}) { this.configData = Object.assign(this.configData, config) } } } </script> <style scoped> .hsInputBox{ padding: 1px; width:100%; height:100%; display: flex; } .inputCurr{ display: flex; justify-content: center; align-items: center; } </style>