<style>
  .tpEdit_header {
    padding: 18px;
    background: #fff;
    color: #606266;
    margin-bottom: 10px;
  }

  .tpEdit_Content {
    margin-bottom: 10px;
    min-width: 1280px;
    height: 725px;
  }

  .all-components {
    max-height: 725px;
    overflow-y: auto;
    background: #fff;
    padding: 20px;
  }

  .all-components .component-group {
    border: 1px solid #eeeeee;
    width: 300px;
    margin-bottom: 20px;
  }

  .all-components .component-group-name {
    height: 35px;
    line-height: 35px;
    background: #f7f7f7;
    padding: 0 20px;
    border-bottom: 1px solid #eeeeee;
  }

  .all-components .component-list {
    margin-right: -2px;
    margin-top: -2px;
    flex-wrap: wrap;
  }

  .all-components .component-list .component-item {
    width: 100px;
    height: 100px;
    border: 0 solid #eeeeee;
    border-width: 0 1px 1px 0;
    text-align: center;
    padding: 15px 0 0;
    cursor: pointer;
  }

  .component-item:nth-child(3n) {
    border-right: 0 !important;
  }

  .template_right {
    padding-left: 2px;
    position: relative;
    overflow-y: auto;
  }

  .template_Mobile {
    overflow-y: auto;
    padding: 0px 25px;
    width: 435px;
    height: 705px;
    margin-left: 6px;
  }
  .mobile-framework{
    width: 375px;
  }
  .mobile-framework-header {
    height: 60px;
    line-height: 60px;
    background: #333;
    color: #fff;
    text-align: center;
    background: url('../../assets/img/sallCenter/head.png') no-repeat;
  }

  .mobile-framework-body {
    background-color: rgb(245, 247, 249);
    min-height: 645px;
    border: 1px solid #e2e2e2;
    background-size: 100% 100%;
    background-repeat: no-repeat;
    background-position: left center;
  }

   .diy-component-preview {
        cursor: pointer;
        position: relative;
        zoom: 0.5;
        -moz-transform: scale(0.5);
        -moz-transform-origin: top left;
        font-size: 28px;
    }
    .diy-component-edit {
        position: absolute;
        top: 0;
        bottom: 0;
        left: 465px;
        right: 0;
        background: #fff;
        padding: 20px;
        overflow: auto;
        min-width: 650px;
        padding-right:20%;
    }
    .diy-component-options {
        position: relative;
    }
    .active .diy-component-preview {
        border: 2px dashed #409EFF;
        left: -2px;
        right: -2px;
        width: calc(100% + 4px);
    }
    .diy-search {
        padding: 24px;
        cursor: pointer;
        background: rgb(242, 242, 242);
    }
    .diy-component-options .el-button {
        height: 25px;
        line-height: 25px;
        width: 25px;
        padding: 0;
        text-align: center;
        border: none;
        border-radius: 0;
        position: absolute;
        margin-left: 0;
    }
    .diy-search > div {
        height: 60px;
        line-height: 60px;
        padding: 0 24px;
        font-size: 28px;
    }
    .diy-component-edit .el-color-picker {
        vertical-align: middle;
    }
    .tpEdit_btmMenu{
      height: 54px;
      width: 100%;
      display: flex;
      align-items: center;
      justify-content: center;
      background: #fff;
    }
</style>
<template>
  <div class="templateEdit">
    <div class="tpEdit_header">
      <span style="color:rgb(64, 158, 255);cursor:pointer;">模板管理</span><span
        style="margin:0 9px;color:#C0C4CC">/</span><span>新增</span>
    </div>
    <div flex="box:first" class="tpEdit_Content">
      <div class="all-components">
        <el-form label-width="80px">
          <el-form-item label="模板名称">
            <el-input type="text" size="small"></el-input>
          </el-form-item>
          <el-form-item label="背景设置">
            <el-button size="small">设置</el-button>
          </el-form-item>
        </el-form>
        <div class="component-group" v-for="(item,index) in allComponents" :key="index">
          <div class="component-group-name">{{item.GroupName}}</div>
          <div flex class="component-list">
            <div class="component-item" v-for="(subItem,subIndex) in item.SubList" @click="addPlugin(subItem.Id)" :key="subIndex">
              <img :src="subItem.Icon" alt="" />
              <div>{{subItem.Name}}</div>
            </div>
          </div>
        </div>
      </div>
      <div class="template_right">
        <div class="template_Mobile">
          <div class="mobile-framework" style="height:705px;">
            <div class="mobile-framework-header"></div>
            <div class="mobile-framework-body">
              <!-- 为空的样式开始 -->
              <div v-if="isEmpty" flex="main:center cross:center"
                style="height: 200px; color: rgb(173, 177, 184); text-align: center;">
                <div>
                  <i class="el-icon-folder-opened" style="font-size: 32px; margin-bottom: 10px;"></i>
                  <div>空空如也</div>
                  <div>请从左侧组件库添加组件</div>
                </div>
              </div>
              <!-- 为空的样式结束 -->
              <div v-for="(item,index) in dataList" :key="index" @click="getItem(item)">
                <search v-if="item.Id=='search'" :searchData="item" @getSord="getSord" :index="index" :dataLeng="dataList.length"></search>
                <navigationIcon v-if="item.Id=='nav'" :navData="item" @getSord="getSord" :index="index" :dataLeng="dataList.length"></navigationIcon>
                <banner v-if="item.Id=='banner'" :banData="item" @getSord="getSord" :index="index" :dataLeng="dataList.length"></banner>
                <rubik v-if="item.Id=='rubik'" :rubData="item" @getSord="getSord" :index="index" :dataLeng="dataList.length"></rubik>
              </div>
            </div>
          </div>
        </div>
      </div>
    </div>
    <div class="tpEdit_btmMenu">
      <el-button type="primary" size="small">保存</el-button>
    </div>
  </div>
</template>
<script>
  import search from "../sallCenter/plugin/search.vue"
  import navigationIcon from "../sallCenter/plugin/navigationIcon.vue"
  import banner from "../sallCenter/plugin/banner.vue"
  import rubik from "../sallCenter/plugin/rubik.vue"
  export default {
    data() {
      return {
        allComponents:[],
        dataList:[],
        //是否为空
        isEmpty:true,
      };
    },
    created() {

    },
    components: {
      search,
      navigationIcon,
      banner,
      rubik
    },
    methods: {
      //获取左侧菜单
      GetPlugInList(){
        this.apipost("/api/Tenant/GetPlugInList", {}, res => {
          if (res.data.resultCode == 1) {
            this.allComponents=res.data.data;
            console.log(this.allComponents);
          } else {
            this.Info(res.data.message);
          }
        })
      },
      //点击基础组件
      addPlugin(Id){
        this.isEmpty=false;
        switch(Id.toString()) {
          //搜索
          case 'search':
              let searchObj = {
                Id:'search',
                isCked:false,
                data:{
                  color:'#FFFFFF',
                  background:'#f2f2f2',
                  radius:4,
                  placeholder:'搜索',
                  textColor:'#555555',
                  textPosition:"left"
                }
              }
              this.dataList.push(searchObj);
              break;
          case 'nav':
              let navObj={
                Id:'nav',
                isCked:false,
                data:{
                  color:'#353535',
                  rows:1,
                  columns:3,
                  scroll:true,
                  navs:[],
                  showImg:false,
                  backgroundColor:'#ffffff',
                  backgroundPicUrl:'',
                  position:5,
                  mode:1,
                  backgroundHeight:100,
                  backgroundWidth:100,
                  borderBackground:'#ffffff'
                }
              } 
              this.dataList.push(navObj);
              console.log(this.dataList,'this.dataList');
              break;
          case 'banner':
            let banObj={
              Id:"banner",
              isCked:false,
              data:{
                style:1,
                fill:1, //填充方式0-留白 1填充
                height:450,
                banners:[],
              }
            }
            this.dataList.push(banObj);
            break;
          case 'rubik':
            let rubObj={
              Id:'rubik',
              isCked:false,
              data:{
                style:-1,
                space:0,
                height:0,
                w:1,
                h:1,
                list:[],
                hotspot:[]
              }
            }
            this.dataList.push(rubObj);
            break;
        } 
      },
      //给子组件调用 重新排序上移下移
      getSord(index,IsUp){
        var currentItem = this.dataList[index];
        if(IsUp==0){
          if (index > 0) {
            var upItem = this.dataList[index - 1];
            this.$set(this.dataList, index - 1, currentItem);
            this.$set(this.dataList, index, upItem);
          }
        }else{
          if(index!=this.dataList.length-1){
            var downItem = this.dataList[index + 1];
            this.$set(this.dataList, index + 1, currentItem);
            this.$set(this.dataList, index, downItem);
          }
        }
      },
      //点击选中
      getItem(item){
        this.dataList.forEach(x=>{
          x.isCked=false;
        })
        item.isCked=true;
      }
    },
    mounted() {
      this.GetPlugInList();
    }
  };

</script>
