<template>
  <el-dialog :title="title" :visible.sync="visible" width="700px"  :before-close="handleClose" :top="top" :show-close=false>
      <el-form :model="formData" :rules="rules" ref="ruleForm">
        <el-form-item v-for="item in formConfig" :key="item.label" :label="item.label" :prop="item.prop" :label-width="labelWidth+'px'">
          <!-- 输入框 -->
        <el-input
          v-if="item.type === 'input'"
          v-model="formData[item.prop]"
          :disabled="item.disabled" :readonly="item.readonly"
          :style="{ width: item.width }"
          @change="item.change && item.change(formData[item.prop])"
          :placeholder="item.placeholder ? item.placeholder : ''" clearable :type="item.inputType">
        </el-input>
        <!-- 下拉框 -->
        <el-select
          v-if="item.type === 'selectObj'"
          v-model="formData[item.prop]"
          :disabled="item.disabled"
          :style="{ width: '100%' }"
          @change="item.change && item.change(formData[item.prop])"
          clearable
          filterable
          :multiple="item.multiple">
          <el-option
            v-for="(val, key) in item.selectList"
            :key="parseInt(key)"
            :label="val"
            :value="val">
          </el-option>
        </el-select>
        <!-- 富文本 -->
        <tinymce
          v-if="item.type === 'tinymce'"
          v-model="formData[item.prop]"
          :height="item.height"
          :width="item.width"
          style="display: inline-block"
        />
          <!-- <tinymce
          v-if="key=='Notes'"
          v-model="emailForm[key]"
          :height="240"/>
          <el-input v-model="emailForm[key]" :type="key=='Comments'?'textarea':''" :rows="5" clearable v-else></el-input> -->
        </el-form-item>
      </el-form>
      <div slot="footer" class="dialog-footer">
        <el-button type="primary" @click="handleSend">{{sendbtnCext}}</el-button>
        <el-button type="primary" @click="handleClose" plain>CANCEL</el-button>
      </div>
   </el-dialog>
</template>

<script>
import Bus from "@/plugins/bus.js";
import Tinymce from "@/components/Tinymce";

export default {
  components: { Tinymce },
  props: {
    title:{
      type:String,
      default: 'Send Email'
    },
    // 表单域标签的宽度
    labelWidth: {
      type: Number,
      default: 95,
    },
    // 表单配置
    formConfig: {
      type: Array,
      required: true,
    },
    // 表单数据
    formData: {
      type: Object,
      required: true,
    },
    sendbtnCext:{
      type:String,
      default: 'SUBMIT REQUEST'
    },
    top:{
      type:String,
      default: '5vh'
    },
    isSendPdf:{
      type:Boolean,
      default: false
    },
    rules: {},
    visible: {
      type: Boolean,
      default: false
    },
    
  },
  methods:{
    handleClose(){
      this.$emit('update:visible', false)
    },
    handleSend(){
      this.$refs.ruleForm.validate((valid) => {
        if (valid) {
          if(this.isSendPdf){
            Bus.$emit("sendPdf");
          }else{
            this.$emit("handleSend");
          }
        } else {
          return false;
        }
      });
    }
  }
};
</script>

<style lang="scss" scoped>
:deep(.el-dialog__header){
    padding: 20px;
    border-bottom:1px solid #eee;
}
textarea{
  color:#606266;
  font-weight: 700;
}
.el-dialog__wrapper {
  display: flex;
  justify-content: center;
  align-items: center;
}
:deep(.el-dialog__body) {
  padding: 20px 20px 0;
}
</style>