<template>
  <div class="basic-component-input">
    <span
      v-if="config.customize.showTitle"
      class="title-left"
      :style="{ marginRight: config.customize.titleStyle.marginRight + 'px', fontSize: config.customize.titleStyle.fontSize + 'px', color: config.customize.titleStyle.color }"
    >
      {{ config.customize.title }}
    </span>
    <el-input
      :id="`el-input-${config.code}`"
      v-model="config.customize.value"
      type="text"
      resize="both"
      class="input"
      :placeholder="config.customize.placeholderStyle.placeholder"
      :style="{ backgroundColor: config.customize.backgroundStyle.backgroundColor }"
    >
      <i
        v-if="config.customize.icon.position === 'left' && config.customize.icon.name"
        slot="prefix"
        class="el-input__icon"
        :class="config.customize.icon.position === 'left' ? config.customize.icon.name : ''"
      />
      <i
        v-if="config.customize.icon.position === 'right' && config.customize.icon.name"
        slot="suffix"
        class="el-input__icon"
        :class="config.customize.icon.position === 'right' ? config.customize.icon.name : ''"
      />
    </el-input>
  </div>
</template>

<script>
import commonMixins from 'packages/js/mixins/commonMixins'
import linkageMixins from 'packages/js/mixins/linkageMixins'
export default {
  name: 'BasicComponentInput',
  mixins: [commonMixins, linkageMixins],
  props: {
    // 卡片的属性
    config: {
      type: Object,
      default: () => ({})
    }
  },
  data () {
    return { }
  },
  mounted () {
    this.chartInit()
    this.updateComponent()
  },
  methods: {
    updateComponent () {
      const input = document.querySelector(`#el-input-${this.config.code}`)

      // const inputIcon = input.querySelector(`.${this.config.customize.icon.name}`)
      input.style.backgroundColor = this.config.customize.backgroundStyle.backgroundColor
      input.style.fontSize = this.config.customize.inputStyle.fontSize + 'px'
      input.style.color = this.config.customize.inputStyle.color
      input.style.borderColor = this.config.customize.borderStyle.borderColor
      input.style.borderWidth = this.config.customize.borderStyle.borderWidth + 'px'
      input.style.borderStyle = this.config.customize.borderStyle.borderStyle
      input.style.borderRadius = this.config.customize.borderStyle.borderRadius + 'px'
      // inputIcon.style.fontSize = this.config.customize.inputStyle.fontSize + 'px'
      if (this.config.customize.icon.name) {
        const inputIcon = document.querySelector(`.${this.config.customize.icon.name}`)
        inputIcon.style.fontSize = this.config.customize.inputStyle.fontSize + 'px'
      }
    }
  }
}
</script>

<style lang="scss" scoped>
.basic-component-input {
  width: 100%;
  display: flex;
  .title-left {
    display: block;
    white-space: nowrap;
    align-self: center;
  }
  // .title-top{
  //   display: block;
  //   text-align: center;
  //   white-space: nowrap;
  // }

  .el-input {
    height: 100%;
    width: 100%;

    ::v-deep .el-input__inner {
      height: 100%;
      width: 100%;
    }
  }

}
</style>