<template>
    <div class="fileAddStep2">
        <el-form ref="dataForm" :model="dataForm" label-width="80px"  :rules="formRules" :inline="true" style="height:100%;">
         <div class="upperPart">
                <el-form-item label="配置名称" prop="configName" >
                    <el-input v-model="dataForm.configName" placeholder="请输入"></el-input>
                </el-form-item>
                <el-form-item label="配置说明" prop="configDesc">
                    <el-input v-model="dataForm.configDesc" placeholder="请输入"></el-input>
                </el-form-item>
                <div class="config_input">
                    <a class="configPic" @click="selectFile">添加图片</a>
                    <input  placeholder="添加图片"  class="img_input" disabled="true" v-model="dataForm.configImg" />
                    <input style="display:none" cssclass="input-small" type="file" name="imgFile" ref="configImg2" @change="fileChanges($event)">
                    <div slot="tip" class="el-upload__tip">{{configPic_mes}}</div>
                </div>
        </div>
        <div class="lowerParts">
            <div class="main_cons" style="margin-right:20px;">
                <div class="titles">配置详情</div>
                <p class="smallTitles"><span class="blue_l"></span><span class="smallTitles_con">配置详情</span></p>
                <div class="temp_cons">
                    <el-scrollbar>
                        <div v-html="configContent"></div>
                    </el-scrollbar>
                </div>
            </div>
            <div class="main_cons">
                <p class="smallTitles" style="padding-top:35px;"><span class="blue_l"></span><span class="smallTitles_con">配置内容</span></p>
                <div class="temp_cons bc_f">
                     <div class="paramsTable" style="height:100%">
                        <!-- <el-form  :rules="formRules2" ref="dataForm2" :model="dataForm2" class="paramsList" style="height:100%"> -->
                            <div class="paramsList" style="height:100%">
                            <p class="paramsListHead">
                                <span></span>
                                <span>参数类型</span>
                                <span>参数名称</span>
                                <span>参数说明</span>
                            </p>
                            <ul class="paramsListBody">
                                <el-scrollbar>
                                    <li v-for="(item,index) in dataForm.parameterList" :key="index">
                                        <span>{{item.parameterID}}</span>
                                        <span>
                                            <el-form-item :rules="formRules.parameterType" :prop="'parameterList.'+ index +'.parameterType'">
                                                <el-select v-model="item.parameterType" placeholder="选择参数类型">
                                                    <el-option v-for="(items,key) in paramsTypeArr" :key="key" :label="items" :value="items"></el-option>
                                                </el-select>
                                            </el-form-item>
                                        </span>
                                        <span class="paramName" >
                                            <el-form-item :prop="'parameterList.'+ index +'.parameterName'"  :rules="formRules.parameterName">
                                                <el-input v-model='item.parameterName'></el-input>
                                            </el-form-item>
                                        </span>
                                        <span class="paramDesc" >
                                            <el-form-item :prop="'parameterList.'+ index +'.parameterDesc'" :rules="formRules.parameterDesc">
                                                <el-input v-model="item.parameterDesc"></el-input>
                                            </el-form-item>
                                        </span>
                                    </li>
                                </el-scrollbar>
                            </ul>
                        <!-- </el-form> -->
                    </div>
                     </div>
                </div>
            </div>
        </div>
        </el-form>
    </div>
</template>
<script>
import ValidatorEvent from '../../utils/validator'
import configService from '../../services/config.service';
let ConfigHttps = new configService()
export default {
    data(){
        return{
            dataForm:{configName:'',configCode:'',configImg:'',parameterList:[],configContent:""},
            configImgFile:"",//图片文件
            formRules:{
                configName:[{required: true, message: '请输入模板名称', trigger: 'blur' },
                 {validator:ValidatorEvent.vRemarks,message: '请输入正确的模板名称(中文英文数字下划线和.)!'}],
                configDesc:[{required: true, message: '请输入模板描述', trigger: 'blur' },
                {validator:ValidatorEvent.vRemarks,message: '请输入正确的模板名称(中文英文数字下划线和.)!'}],
                parameterType:[{required: true, message: '请选择类型', trigger: 'change' }],
                parameterName:[{required: true, message: '请输入参数名称', trigger: 'blur' },
                {validator:ValidatorEvent.vRemarks,message: '请输入正确的参数名称!'}],
                parameterDesc:[{validator:ValidatorEvent.vRemarks,message: '请输入正确的参数描述!'}]
            },
            paramsTypeArr:["String","IPV4地址","IPV6地址","Interger"],
            configPic_mes:'',
            fileList:[],
            configContent:""
        }
    },
    mounted(){
        this.$nextTick(function () {
              
        })
       
    },
 
    methods:{
        selectFile(){
            this.$refs['configImg2'].click()
        },
         fileChanges(event){
            let target=event.target;
            let fileSize = target.files[0].size; 
            let size = fileSize / 1024; 
            let name=target.value;
            let fileName = name.substring(name.lastIndexOf(".")+1).toLowerCase();   
            if(fileName !="jpg" && fileName !="jpeg" && fileName !="pdf" && fileName !="png" && fileName !="dwg" && fileName !="gif" ){
                this.configPic_mes='上传文件只能是 jpg、png格式!';
                this.dataForm.configImg=""; 
                return;
            }else if(size>2000){
                this.configPic_mes='上传图片大小不能超过 2MB!';
                this.dataForm.configImg="";
                return
            }else{
                this.configPic_mes="";
                this.dataForm.configImg = target.files[0].name;//图片名字
                this.configImgFile = target.files[0];//图片文件
                let formData = new FormData();
                formData.append("imgFile", this.configImgFile);
                this.postImgupLoad(formData)
            }
        },
        postImgupLoad(formData){
            ConfigHttps.postImgupLoad(formData).then((res)=>{
                if(res.code===0){
                    _toast(res.msg)
                }else {
                    _toast(res.msg)
                    this.configImgFile = ''
                }
            }).catch((err=>{
                console.log(err)
            }))
        },
        parentMsg: function (dataForm) {
            this.dataForm=dataForm;
             //换行
            let reg=new RegExp("\n","g");
            this.configContent=this.dataForm.configContent.trim().replace(reg,"<br>");
            //加高亮
            var re = /\$\$(.*?)\$\$/g;
            var text = "<span style='background:#ffee58'>$&</span>";
            this.configContent = this.configContent.replace(re, text);

            //将@@分隔符隐藏
            var re2 = /\@\@[a-zA-Z]{1}\d+\_\d{1,2}/g;
            var text2 = "<span style='display: none;'>$&</span>";
            this.configContent = this.configContent.replace(re2, text2);

        }
    }
}
</script>
<style lang="scss" scoped>
    .fileAddStep2{
         height: 100%;
        .upperPart{
            padding:20px 20px 0 20px;
            display: block !important;
            .config_input{
                display: inline-block;
                .configPic{padding:0 15px;color:#0091ea;cursor: pointer;}
                .img_input{background: #fff; width: 300px;height: 34px;border-bottom: 1px solid #ccc;}
                .el-upload__tip{display: inline-block;font-size: 12px;}
            }
        }
        .lowerParts{
            margin-top:20px;height: calc(100% - 94px);display:flex;padding: 0;background: #ffffff;
            padding:20px;
            .main_cons{
                flex:1;
                .titles{font-size: 18px;font-weight: 400;
                    span{font-size: 16px;}
                }
                .smallTitles{
                    padding:10px 0 10px 0px;
                    .smallTitles_con{
                        vertical-align: middle;
                    }
                    .blue_l{
                        display: inline-block;
                        width: 2px;
                        height: 15px;
                        background: #2dc3e8;
                        vertical-align: middle;
                        margin-right: 5px;
                    }
                
            }
            .temp_cons{
                width: 100%;
                height: calc(100% - 67px);
                background: #fbfbfb;
                padding:10px;
                border:1px solid #dededf;
            }
            .bc_f{
                background: #fff;
            }

        }
    }
    .paramsList{
            .paramsListHead{
                padding-bottom: 10px;
            }
            .paramsListHead,li{
                display: flex;
                width:100%;
                span{
                    display: inline-block;
                    padding-left:10px;
                    text-align:center; 
                    &:first-child{
                        padding-left: 0px;
                         width:150px;
                    }
                    &:nth-child(2){
                        width:140px;
                    }
                    &:nth-child(3){
                        width:170px;
                    }
                    &:last-child{
                        width:220px;
                    }
                }
            }
            
        }
        .paramsListBody{
            height: calc(100% - 20px);
            overflow-y: auto;
            span{
                &:first-child{
                    text-align: left !important;
                }
            }
        }
}
</style>