<template> 
 | 
  <div class="detail-view"> 
 | 
    <el-drawer 
 | 
      :visible.sync="detailConfig.visible" 
 | 
      size="80%" 
 | 
      :before-close="handleClose" 
 | 
      :wrapperClosable="false" 
 | 
      :append-to-body="true" 
 | 
    > 
 | 
      <template slot="title"> 
 | 
        <div class="header"> 
 | 
          <span class="header-label">单据编号</span> 
 | 
          <span class="header-title">{{ detailConfig.infomation.number }}</span> 
 | 
        </div> 
 | 
      </template> 
 | 
      <div class="content"> 
 | 
        <div class="tab-view"> 
 | 
          <el-tabs v-model="activeName" @tab-click="tabsClick"> 
 | 
            <el-tab-pane label="详情" name="first"></el-tab-pane> 
 | 
            <!-- <el-tab-pane label="附件管理" name="annex"> --> 
 | 
            <!-- <template slot="label"> 
 | 
                <div>跟进记录<el-badge type="primary" :value="2"> </el-badge></div> 
 | 
              </template> --> 
 | 
            <!-- </el-tab-pane> --> 
 | 
          </el-tabs> 
 | 
        </div> 
 | 
        <div v-if="activeName === 'first'" class="detail"> 
 | 
          <!-- 机会基本信息 --> 
 | 
          <div class="basic-info"> 
 | 
            <div class="basic-info-label" @click="expandClick('basic')"> 
 | 
              <i v-if="isBasicExpand" class="el-icon-arrow-down"></i> 
 | 
              <i v-else class="el-icon-arrow-up"></i> 
 | 
              <span style="margin-left: 10px">机会基本信息</span> 
 | 
            </div> 
 | 
            <div v-show="isBasicExpand" class="basic-info-content"> 
 | 
              <ul> 
 | 
                <li v-for="(item, i) in basicInfoList" :key="i"> 
 | 
                  <div class="left"> 
 | 
                    <div class="content-title">{{ item.leftStr + ":" }}</div> 
 | 
                    <div class="content-data">{{ item.leftValue }}</div> 
 | 
                  </div> 
 | 
                  <div class="right"> 
 | 
                    <div class="content-title">{{ item.rightStr }}</div> 
 | 
                    <div class="content-data">{{ item.rightValue }}</div> 
 | 
                  </div> 
 | 
                </li> 
 | 
              </ul> 
 | 
            </div> 
 | 
          </div> 
 | 
          <!-- 计划相关 --> 
 | 
          <div class="basic-info"> 
 | 
            <div class="basic-info-label" @click="expandClick('plan')"> 
 | 
              <i v-if="isPlanExpand" class="el-icon-arrow-down"></i> 
 | 
              <i v-else class="el-icon-arrow-up"></i> 
 | 
              <span style="margin-left: 10px">计划相关</span> 
 | 
            </div> 
 | 
            <div v-show="isPlanExpand" class="basic-info-content"> 
 | 
              <ul> 
 | 
                <li v-for="(item, i) in planList" :key="i"> 
 | 
                  <div class="left"> 
 | 
                    <div class="content-title">{{ item.leftStr + ":" }}</div> 
 | 
                    <div class="content-data">{{ item.leftValue }}</div> 
 | 
                  </div> 
 | 
                  <div class="right"> 
 | 
                    <div class="content-title">{{ item.rightStr }}</div> 
 | 
                    <div class="content-data">{{ item.rightValue }}</div> 
 | 
                  </div> 
 | 
                </li> 
 | 
              </ul> 
 | 
            </div> 
 | 
          </div> 
 | 
          <!-- 附件信息 --> 
 | 
          <div class="basic-info"> 
 | 
            <div class="basic-info-label" @click="expandClick('annex')"> 
 | 
              <i v-if="isAnnexExpand" class="el-icon-arrow-down"></i> 
 | 
              <i v-else class="el-icon-arrow-up"></i> 
 | 
              <span style="margin-left: 10px">附件信息</span> 
 | 
            </div> 
 | 
            <div v-show="isAnnexExpand" class="basic-info-content"> 
 | 
              <ul> 
 | 
                <li> 
 | 
                  <div class="left remark"> 
 | 
                    <div class="content-title">{{ "附件:" }}</div> 
 | 
                    <div class="content-data">{{ "" }}</div> 
 | 
                  </div> 
 | 
                </li> 
 | 
              </ul> 
 | 
            </div> 
 | 
          </div> 
 | 
        </div> 
 | 
        <div v-if="activeName === 'annex'" class="second"> 
 | 
          <!-- <FollowupRecords :isDetail="true" /> --> 
 | 
        </div> 
 | 
      </div> 
 | 
    </el-drawer> 
 | 
  </div> 
 | 
</template> 
 | 
  
 | 
<script> 
 | 
export default { 
 | 
  name: "DetailGeneratePlan", 
 | 
  props: { 
 | 
    planDetail: { 
 | 
      type: Object, 
 | 
      default: () => { 
 | 
        return { 
 | 
          visible: false, 
 | 
          infomation: {} 
 | 
        } 
 | 
      } 
 | 
    } 
 | 
  }, 
 | 
  components: {}, 
 | 
  computed: {}, 
 | 
  data() { 
 | 
    return { 
 | 
      detailConfig: this.planDetail, 
 | 
      activeName: "first", 
 | 
      isBasicExpand: true, // 基本信息展开 
 | 
      basicInfoList: [], 
 | 
      isPlanExpand: true, // 计划相关 
 | 
      planList: [], 
 | 
      isAnnexExpand: true // 附件信息 
 | 
    } 
 | 
  }, 
 | 
  created() { 
 | 
    this.setData() 
 | 
  }, 
 | 
  mounted() {}, 
 | 
  methods: { 
 | 
    setData() { 
 | 
      this.basicInfoList = [ 
 | 
        { 
 | 
          leftStr: "客户名称", 
 | 
          leftValue: "", 
 | 
          rightStr: "单据编号", 
 | 
          rightValue: "" 
 | 
        }, 
 | 
        { 
 | 
          leftStr: "负责人", 
 | 
          leftValue: "", 
 | 
          rightStr: "创建人", 
 | 
          rightValue: "" 
 | 
        }, 
 | 
        { 
 | 
          leftStr: "创建时间", 
 | 
          leftValue: "", 
 | 
          rightStr: "最新更新人", 
 | 
          rightValue: "" 
 | 
        }, 
 | 
        { 
 | 
          leftStr: "更新时间", 
 | 
          leftValue: "", 
 | 
          rightStr: "审批状态", 
 | 
          rightValue: "" 
 | 
        }, 
 | 
        { 
 | 
          leftStr: "最新审批时间", 
 | 
          leftValue: "", 
 | 
          rightStr: "上一步审批人", 
 | 
          rightValue: "" 
 | 
        }, 
 | 
        { 
 | 
          leftStr: "当前审批人", 
 | 
          leftValue: "", 
 | 
          rightStr: "销售子单", 
 | 
          rightValue: "" 
 | 
        }, 
 | 
        { 
 | 
          leftStr: "销售明细单", 
 | 
          leftValue: "", 
 | 
          rightStr: "", 
 | 
          rightValue: "" 
 | 
        } 
 | 
      ] 
 | 
      this.planList = [ 
 | 
        { 
 | 
          leftStr: "计划开始时间", 
 | 
          leftValue: "", 
 | 
          rightStr: "计划截止时间", 
 | 
          rightValue: "" 
 | 
        }, 
 | 
        { 
 | 
          leftStr: "计划内容", 
 | 
          leftValue: "", 
 | 
          rightStr: "", 
 | 
          rightValue: "" 
 | 
        } 
 | 
      ] 
 | 
    }, 
 | 
    handleClose() { 
 | 
      this.detailConfig.visible = false 
 | 
    }, 
 | 
    // tab切换 
 | 
    tabsClick(tab, event) { 
 | 
      console.log(tab, event) 
 | 
    }, 
 | 
    // 展开收起点击事件 
 | 
    expandClick(value) { 
 | 
      console.log(value) 
 | 
      if (value === "basic") { 
 | 
        this.isBasicExpand = !this.isBasicExpand 
 | 
      } else if (value === "annex") { 
 | 
        this.isAnnexExpand = !this.isAnnexExpand 
 | 
      } 
 | 
    } 
 | 
  } 
 | 
} 
 | 
</script> 
 | 
  
 | 
<!-- Add "scoped" attribute to limit CSS to this component only --> 
 | 
<style lang="scss" scoped> 
 | 
::v-deep { 
 | 
  .el-drawer__header { 
 | 
    padding: 0; 
 | 
    margin-bottom: 0px; 
 | 
    .header { 
 | 
      height: 56px; 
 | 
      display: flex; 
 | 
      align-items: center; 
 | 
      padding-left: 10px; 
 | 
      .header-label { 
 | 
        padding: 5px; 
 | 
        border-radius: 4px; 
 | 
        background-color: #ff6600; 
 | 
        color: #fff; 
 | 
        font-size: 12px; 
 | 
      } 
 | 
      .header-title { 
 | 
        color: #323232; 
 | 
        font-size: 15px; 
 | 
        margin-left: 10px; 
 | 
        font-weight: inherit; 
 | 
      } 
 | 
    } 
 | 
  } 
 | 
  .el-tabs--top .el-tabs__item.is-top:nth-child(2) { 
 | 
    padding-left: 20px; 
 | 
  } 
 | 
  .el-tabs__item.is-active, 
 | 
  .el-tabs__item:hover, 
 | 
  .el-tabs__active-bar { 
 | 
    color: $color-primary; 
 | 
  } 
 | 
  .el-tabs__header { 
 | 
    margin: 0; 
 | 
  } 
 | 
  .el-drawer__body { 
 | 
    .content { 
 | 
      background-color: rgb(230, 233, 240); 
 | 
      padding: 8px; 
 | 
      .tab-view { 
 | 
        background: #fff; 
 | 
        .item { 
 | 
          position: absolute; 
 | 
          top: 0px; 
 | 
          right: 0px; 
 | 
        } 
 | 
      } 
 | 
      .detail { 
 | 
        .basic-info { 
 | 
          .basic-info-label { 
 | 
            padding-left: 10px; 
 | 
            height: 42px; 
 | 
            line-height: 42px; 
 | 
            background: #f4f8fe; 
 | 
            color: #333; 
 | 
            font-size: 14px; 
 | 
          } 
 | 
          .basic-info-content { 
 | 
            background: #fff; 
 | 
            ul { 
 | 
              padding-inline-start: 0; 
 | 
            } 
 | 
            li { 
 | 
              display: flex; 
 | 
              font-size: 14px; 
 | 
              font-family: PingFangSC; 
 | 
              border-bottom: 1px solid #f9f9fb; 
 | 
              .left, 
 | 
              .right, 
 | 
              .all { 
 | 
                width: 50%; 
 | 
                display: flex; 
 | 
                align-items: center; 
 | 
                height: 40px; 
 | 
                .content-title { 
 | 
                  width: 320px; 
 | 
                  text-align: right; 
 | 
                  color: #555; 
 | 
                } 
 | 
                .content-data { 
 | 
                  text-align: left; 
 | 
                  margin-left: 25px; 
 | 
                  color: #333; 
 | 
                } 
 | 
              } 
 | 
              .all { 
 | 
                width: 100%; 
 | 
              } 
 | 
              .remark { 
 | 
                width: 100%; 
 | 
              } 
 | 
            } 
 | 
          } 
 | 
        } 
 | 
      } 
 | 
      .second { 
 | 
        background: #fff; 
 | 
        .followup-records { 
 | 
          .table-view { 
 | 
            margin-top: 0 !important; 
 | 
            margin-bottom: 0; 
 | 
          } 
 | 
        } 
 | 
      } 
 | 
    } 
 | 
  } 
 | 
} 
 | 
</style> 
 |