<template>
  <div class='infoWrap'>
    <div class="left">
      <div class="unread"
           @click="onLookMessage('all')">全部</div>
      <div class="unread"
           @click="onLookMessage('0')"> <img :src="img.boxicon"
             alt=""> 未读消息
        <div class="count"
             v-if="noReadMessage >= 1">{{ noReadMessage }}</div>
      </div>
      <div class="read"
           @click="onLookMessage('1')">
        <img :src="img.bookicon"
             alt="">
        已读消息</div>
    </div>
    <div class="middle">
      <div class="msgItem"
           :class="[isCheckMessage == item.id ? 'active' : '']"
           @click="onClickRead(item)"
           v-for="(item, index) in dataList"
           :key="index">
        <!-- <h6 class="type"></h6> -->
        <h4 class="name">VIP申请审核<span class='time'>{{ item.createOn }}</span>
          <div class="dot"
               v-if="item.readStatus == 0"></div>
        </h4>
        <p class='msg'>{{ item.content }}</p>
      </div>
      <el-pagination style="text-align: right"
                     small
                     v-if="dataList.length > 0"
                     @current-change="onChange"
                     :hide-on-single-page="pageInfo.isSinglePage"
                     layout="prev, pager, next"
                     :total="pageInfo.total">
      </el-pagination>
    </div>
    <div class="right"
         v-if="showRight">
      <div class="rightWrap">
        <img src="@/assets/images/base/placehorder-icon.png"
             class="header"
             alt="">
        <div class="info">
          <h2>{{ showMessage.userName }}
            <el-tag v-if="showMessage.auditStatus == 'PASS'"
                    type="success"
                    effect="plain">已处理</el-tag>
            <el-tag v-if="showMessage.auditStatus == 'REJECT'"
                    type="danger"
                    effect="plain">已拒绝</el-tag>
          </h2>
          <!-- <span class="subMsg">发至 <span class='san'></span> <span style="margin-left:30px">我</span></p> -->
          <div class="textWrap">
            <p>审批事项: VIP申请</p>
            <p>开始时间: {{ showMessage.createTime }}</p>
          </div>
          <div class="leaverecord">
            <el-form :inline="true"
                     label-width="100px">
              <el-form-item label="老师姓名">
                <el-input disabled
                          :value="showMessage.userName"></el-input>
              </el-form-item>
              <el-form-item label="线上课数">
                <el-input disabled
                          :value="showMessage.onlineClassesNum"></el-input>
              </el-form-item>
              <el-form-item label="线下课数">
                <el-input disabled
                          :value="showMessage.offlineClassesNum"></el-input>
              </el-form-item>

              <el-form-item label="科目名">
                <el-input disabled
                          :value="showMessage.subjectName"></el-input>
              </el-form-item>
              <el-form-item label="线上课单价">
                <el-input disabled
                          :value="showMessage.onlineClassesUnitPrice"></el-input>
              </el-form-item>
              <el-form-item label="线下课单价">
                <el-input disabled
                          :value="showMessage.offlineClassesUnitPrice"></el-input>
              </el-form-item>

              <el-form-item label="活动名称">
                <el-input disabled
                          :value="showMessage.vipGroupActivityName"></el-input>
              </el-form-item>
              <el-form-item label="线上课课酬">
                <el-input disabled
                          :value="showMessage.onlineTeacherSalary"></el-input>
              </el-form-item>
              <el-form-item label="线下课课酬">
                <el-input disabled
                          :value="showMessage.offlineTeacherSalary"></el-input>
              </el-form-item>

              <el-form-item label="商品价格">
                <el-input disabled
                          :value="showMessage.totalPrice"></el-input>
              </el-form-item>

              <el-form-item label="原因">
                <el-input :disabled="showMessage.auditStatus != 'ING'"
                          type="textarea"
                          v-model.trim="reason"></el-input>
              </el-form-item>

            </el-form>
          </div>

        </div>
      </div>
      <div v-permission="'vipGroupManage/vipApplyAudit'"
           class="infoFoot"
           v-if="showMessage.auditStatus == 'ING'">
        <div class="noBtn"
             @click="onSubmit(showMessage, 'REJECT')">拒绝</div>
        <div class="yesBtn"
             @click="onSubmit(showMessage, 'PASS')">同意</div>
      </div>
    </div>

  </div>
</template>
<script>
import { getVipGroupDetailForAudit } from '@/api/vipSeting'
import { queryCountOfUnread, sysMessageList, setRead, vipApplyAudit } from '@/api/journal'
export default {
  name: 'vipApply',
  data () {
    return {
      img: {
        bookicon: require('@/assets/images/base/bookicon.png'),
        Hbookicon: require('@/assets/images/base/bookicon-h.png'),
        trashicon: require('@/assets/images/base/trashicon.png'),
        Htrashicon: require('@/assets/images/base/trashicon-h.png'),
        boxicon: require('@/assets/images/base/boxicon.png'),
        Hboxicon: require('@/assets/images/base/boxicon-h.png')
      },
      pageInfo: {
        isSinglePage: false, // 是否只有一页
        limit: 10,
        page: 1,
        readStatus: null,
        total: 0,
      },
      noReadMessage: 0, // 未读消息
      dataList: [],
      isCheckMessage: null,
      showRight: false,
      reason: null,
      showMessage: {}
    }
  },
  mounted () {
    this.__init()
    this.sysMessageList()
  },
  methods: {
    __init () {
      // 未读消息
      queryCountOfUnread().then(res => {
        if (res.code == 200) {
          if (res.data && res.data.VIPAPPLY) {
            this.noReadMessage = res.data.VIPAPPLY
          }
        }
      })
    },
    onSubmit (showMessage, type) {
      if (!this.reason || this.reason == '') {
        this.$message.error('请输入原因')
        return
      }
      let params = {
        vipGroupId: showMessage.id,
        reason: this.reason,
        auditStatus: type,
      }
      vipApplyAudit(params).then(res => {
        if (res.code == 200) {
          this.$message.success('处理成功')
          this.getVipGroupItem(JSON.stringify({ vipGroupId: showMessage.id }))
        } else {
          this.$message.error(res.msg)
        }
      })
    },

    sysMessageList () { // 列表
      sysMessageList({
        group: 'VIPAPPLY',
        rows: this.pageInfo.limit,
        page: this.pageInfo.page,
        readStatus: this.pageInfo.readStatus
      }).then(res => {
        if (res.code == 200) {
          this.dataList = res.data.rows
          this.pageInfo.total = res.data.total
        }
      })
    },
    onLookMessage (type) { // 查看对应的数据
      if (type == "all") {
        this.pageInfo.readStatus = null
      } else {
        this.pageInfo.readStatus = type
      }
      this.pageInfo.page = 1
      this.showRight = false
      this.showMessage = {}
      this.isCheckMessage = null
      this.sysMessageList()
    },
    onChange (page) { // 分页
      this.pageInfo.page = page
      this.sysMessageList()
    },
    onClickRead (item) {
      this.isCheckMessage = item.id
      if (item.readStatus == 1) {
        this.getVipGroupItem(item.memo)
      } else {
        setRead({ id: item.id }).then(res => {
          let result = res.data
          if (res.code == 200) {
            item.readStatus = 1
            this.getVipGroupItem(item.memo)

            this.noReadMessage--
          }
        })
      }
    },
    getVipGroupItem (memo) {
      memo = JSON.parse(memo)
      getVipGroupDetailForAudit({ vipGroupId: memo.vipGroupId }).then(res => {
        if (res.code == 200) {
          this.showRight = true
          this.showMessage = res.data
          this.reason = res.data.stopReason
        } else {
          this.$message.error(res.msg)
        }
      })
    }
  },
  filters: {
    getFormatTime (tempA, tempB) {
      tempA = new Date(tempA.replace(/-/g, "/")),
        tempB = new Date(tempB.replace(/-/g, "/"))
      let hours = Number(tempA.getHours()) >= 10 ? tempA.getHours() : '0' + tempA.getHours()
      let hours2 = Number(tempB.getHours()) >= 10 ? tempB.getHours() : '0' + tempB.getHours()
      let min = Number(tempA.getMinutes()) >= 10 ? tempA.getMinutes() : '0' + tempA.getMinutes()
      let min2 = Number(tempB.getMinutes()) >= 10 ? tempB.getMinutes() : '0' + tempB.getMinutes()

      return hours + ':' + min + '-' + hours2 + ':' + min2
    }
  }
}
</script>
<style lang="scss" scoped>
.infoWrap {
  display: flex;
  flex-direction: row;
  justify-content: flex-start;
  height: calc(100vh - 266px);
  overflow: auto;
  .left {
    padding-top: 24px;
    display: flex;
    flex-direction: column;
    align-items: left;
    > div {
      height: 26px;
      line-height: 26px;
      margin-top: 26px;
      img {
        position: relative;
        top: 6px;
      }
    }
    .unread,
    .read,
    .recovery {
      cursor: pointer;
    }
    .unread {
      position: relative;
      img {
        width: 26px;
        height: 25px;
      }
      .count {
        position: absolute;
        width: 38px;
        height: 23px;
        background: rgba(20, 146, 138, 0.5);
        border-radius: 100px;
        font-size: 12px;
        line-height: 23px;
        text-align: center;
        color: #225551;
        right: -44px;
        top: 8px;
      }
    }
    .read {
      img {
        width: 20px;
        height: 26px;
      }
    }
    .recovery {
      img {
        width: 19px;
        height: 26px;
      }
    }
  }
  .middle {
    width: 25%;
    margin-left: 76px;
    padding-top: 50px;
    overflow: auto;
    .msgItem {
      padding: 16px 18px 23px 30px;
      border-bottom: 1px solid #ccc;
      .type {
        font-size: 14px;
        color: #777;
        font-weight: 400;
        padding-bottom: 4px;
      }
      .name {
        position: relative;
        color: #444;
        font-size: 16px;
        padding-bottom: 9px;
        clear: both;
        .time {
          font-weight: 400;
          color: #aaa;
          float: right;
        }
        .dot {
          width: 7px;
          height: 7px;
          background-color: #f97215;
          border-radius: 50%;
          position: absolute;
          left: -13px;
          top: 4px;
        }
      }
      .msg {
        color: #444;
        font-size: 14px;
        line-height: 24px;
        text-overflow: -o-ellipsis-lastline;
        overflow: hidden;
        text-overflow: ellipsis;
        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
      }
    }
    .msgItem.active {
      background-color: #f3f4f8;
      border-radius: 5px;
      .msg {
        color: #aaa;
      }
    }
  }
  .right {
    // display: flex;
    flex-direction: column;
    justify-content: space-between;
    border: 1px solid #e4e8eb;
    margin-left: 25px;
    position: relative;
    overflow: auto;
    width: 50%;
    .rightWrap {
      // overflow: auto;
      display: flex;
      padding: 18px 24px;
      flex-direction: row;
      justify-content: flex-start;
      box-sizing: border-box;
      .header {
        width: 30px;
        height: 30px;
        position: relative;
        top: 7px;
        border-radius: 50%;
        margin-right: 12px;
      }
      .info {
        position: relative;
        width: 100%;
        h2 {
          color: #212223;
          font-size: 16px;
          margin-bottom: 0px;
          .phone {
            font-size: 12px;
            color: #444;
          }
        }
        .subMsg {
          position: relative;
          font-size: 12px;
          color: #444;
          margin-bottom: 12px;
          .san {
            // margin-left: 110px;
            float: left;
            position: absolute;
            top: 0px;
            width: 0;
            height: 0;
            border-width: 5px;
            border-style: solid;
            border-color: transparent #909191 transparent transparent;
            transform: rotate(180deg); /*顺时针旋转90°*/
            margin: 0 8px;
          }
        }
        .textWrap {
          width: 316px;
          line-height: 21px;
          font-size: 14px;
          color: #212223;
          margin: 12px 0 34px;
        }
        .dot {
          width: 20px;
          height: 20px;
        }
        .timeMsg {
          position: relative;
          top: 5px;
          margin-left: 20px;
          .name {
            font-size: #444;
            font-size: 16px;
            margin-bottom: 3px;
            font-weight: 600;
          }
          .status {
            font-size: 14px;
            color: #62a070;
          }
          .status.waring {
            color: #f97215;
          }
          .status.end {
            color: #aaaaaa;
          }
        }
      }
    }
    .infoFoot {
      min-height: 60px;
      height: 60px;
      line-height: 60px;
      border-top: 1px solid #e4e8eb;
      width: 100%;
      display: flex;
      flex-direction: row;
      justify-content: flex-start;
      align-items: center;
      .noBtn {
        cursor: pointer;
        width: 100px;
        height: 32px;
        line-height: 32px;
        color: #444;
        border-radius: 3px;
        border: 1px solid rgba(228, 232, 235, 1);
        text-align: center;
        margin-left: 70px;
      }
      .yesBtn {
        cursor: pointer;
        margin-left: 15px;
        text-align: center;
        width: 100px;
        height: 32px;
        line-height: 32px;
        background: rgba(249, 114, 21, 1);
        border-radius: 3px;
        color: #fff;
      }
      // width: 570px;
    }
  }
}
</style>