<template>
  <div class="grabSheet">
    <div class="conentBox">
      <div class="conent">
        <div class="header">处理方案</div>
        <div class="box" v-if="model.incident">
          <div class="navBar">
            <div class="fl">
              <a
                :class="{ active: actives == 'info' }"
                href="javascript:;"
                @click="toInfo('info')"
                >事件信息</a
              >
            </div>
            <div class="fl">
              <a
                :class="{ active: actives == 'progress' }"
                href="javascript:;"
                @click="toInfo('progress')"
                >处理进度</a
              >
            </div>
          </div>
          <div class="label headtop" id="info">事件信息</div>

          <div class="info">
            <EventInformation :model="model" :id="id"></EventInformation>
            <p class="info_hide">
              <span class="fl hide" @click="hides()" v-if="!item_hides"
                >展开详情 >></span
              >
              <span class="fl hide" @click="hides()" v-if="item_hides"
                >隐藏详情<<</span
              >
            </p>
            <ShowPicture :processInstanceId="processInstanceId" :wxIncidentId="wxIncidentId"></ShowPicture>

            <div class="label" id="progress">处理进度</div>
            <div
              :class="{ progress: true, progressHide: !pro_hides }"
              id="progressBox"
            >
              <div class="progress_info" v-for="(item,index) in progressInfo" :key="index">
                <div class="progress_info_L">{{ item.logType ? item.logType.name : '' }}</div>
                <div class="progress_info_R">
                  <div class="time">
                    <i
                      :class="{
                        iconfont: true,
                        'icon-icon_weizuo': item.endTime != '',
                        'icon-icon_zhengzaijinx': item.endTime == ''
                      }"
                    ></i>
                    <span class="text1">
                      {{ item.startTime | timeFormat("MM-dd HH:mm:ss") }}
                      <template v-if="item.appointorName">
                        ，{{ item.appointorName }}
                      </template>
                    </span>
                  </div>
                  <div :class="{ cont: true, blue: item.endTime != '' }">
                    <p class="text2" v-if="item.logType && item.logType.desc" v-html="item.logType.desc"></p>
                  </div>
                </div>
              </div>
            </div>
            <p class="info_hide">
              <span class="fl hide" @click="proHides()">{{
                pro_hides ? "隐藏详情 <<" : "展开详情 >>"
              }}</span>
            </p>
          </div>
          <cube-form-group class="sub" v-if="model.incident.state.value != 1546 && !model.incident.handlerUser && jurisdiction && qiangdan">
            <cube-button type="submit" @click="subVali()">接单</cube-button>
          </cube-form-group>
        </div>
      </div>

      <load-ing v-if="!model.incident"></load-ing>
    </div>
  </div>
</template>
<script>
import LoadIng from "./../views/loading.vue";
import EventInformation from './../components/EventInformation/index.vue'
import ShowPicture from './../custom/ShowPicture.vue'
import { formatDate } from "./../components/js/date.js";
export default {
  data() {
    return {
      qiangdan: false,
      id: "",
      loginUser: JSON.parse(localStorage.getItem("loginUser")),
      menu: JSON.parse(localStorage.getItem("menu")),
      selected: 1,
      options: [
        {
          label: "接单",
          value: 1,
        },
        {
          label: "重新指派",
          value: 2,
        },
      ],
      resignComment: "", //重新指派原因
      item_hides: false,
      actives: "info",
      processInstanceId: "",
      wxIncidentId: "",
      progressInfo: [], //处理进度
      model: {}, //提交数据
      jurisdiction: false, //是否有接单权限
      pro_hides: false, //展开/收起处理进度
    };
  },
  methods: {
    //   获取事件数据
    getParamsData() {
      var that = this;
      var groups = [];
      that.loginUser.group.forEach((element) => {
        groups.push(element.id);
      });
      console.log(groups);
      that.$http
        .get(
          "/service/form/renderForm/receiveform/" +
            that.processInstanceId +
            "/" +
            that.loginUser.id +
            "/" +
            that.id,
          {}
        )
        .then(function (res) {
          console.log(res.data);
          that.model = res.data.model;
          for (var i = 0; i < groups.length; i++) {
            if (groups[i] == that.model.incident.candidateGroups) {
              that.jurisdiction = true;
            }
          }
          //seimin
          that.wxIncidentId = res.data.model.incident.wxIncidentId;
          localStorage.setItem("modelData", JSON.stringify(that.model));
          that.getProgressInfo();
        });
    },
    // 获取处理进度
    getProgressInfo() {
      var that = this;
      that.$http
        .post(
          "/service/simple/data/fetchDataList/incidentLog",
          {
              "idx": 0,
              "sum": 9999,
              "incidentLog": {
                  "incidentId": this.id
              }
          }
        )
        .then(function(res) {
          console.log(res.data);
          that.progressInfo = res.data.list || [];
          //维修记录startcaca
          // if (that.model.incident.handlerLogs) {
          //   //添加日志
          //   that.model.incident.handlerLogs.forEach(v => {
          //     that.progressInfo.push({
          //       startTime: v.opTime,
          //       endTime: 1,
          //       desc: (v.repairType && v.expectedDate) ? `${v.repairType.name} ${formatDate(new Date(v.expectedDate), "MM月dd日前完成")}<br>${v.opValue}` : v.opValue,
          //       appointorName: v.userName,
          //       logType: {name: "事件处理"}
          //     });
          //   });
          // }
          //处理数据
          that.progressInfo.forEach(v => {
            if (!v.endTime) {
              v.endTime = 1;
            }
            v.startTime = new Date(v.startTime).getTime();
          });
          that.progressInfo.reverse();
          // var kaishi = that.progressInfo.shift();
          // var jiedan = that.progressInfo.shift();
          // that.progressInfo.sort(function(o, c) {
          //   return c.startTime - o.startTime;
          // });
          // that.progressInfo.length && (that.progressInfo[0].endTime = "");
          // that.progressInfo.push(jiedan);
          // that.progressInfo.push(kaishi);
          console.log(that.progressInfo);
          //维修记录end
        });
    },
    //隐藏显示详情
    hides() {
      this.item_hides = !this.item_hides;
      $("#shows").slideToggle();
    },
    // 处理进度隐藏/展开
    proHides() {
      if (!this.pro_hides) {
        $("#progressBox").animate({
          height: $("#progressBox")[0].scrollHeight,
        });
      } else {
        $("#progressBox").animate({ height: "1.7rem" });
      }
      this.pro_hides = !this.pro_hides;
    },
    subVali() {
      //数据提交
      var that = this;
      this.$createDialog({
        type: 'confirm',
        icon: 'cubeic-alert',
        title: '提示',
        content: '是否接单？',
        confirmBtn: {
          text: '确定',
          active: true,
          disabled: false,
          href: 'javascript:;'
        },
        cancelBtn: {
          text: '取消',
          active: false,
          disabled: false,
          href: 'javascript:;'
        },
        onConfirm: () => {
          that.$http
          .post(
            "service/bpm/bpm/claimAndCompletedTask/" + that.model.incident.taskId,
            { receive_code: "handler", userId: that.loginUser.id }
          )
          .then(function (res) {
            console.log(res.data);
            if (res.data.status == 200) {
              that
                .$createDialog({
                  type: "alert",
                  title: "接单成功",
                  content: "点击返回首页",
                  icon: "cubeic-right",
                  onConfirm: (e, promptValue) => {
                    that.$router.push({ path: "/main" });
                  },
                })
                .show();
            }else{
              this.$createDialog({
                type: "alert",
                title: "系统错误,请稍后再试!",
                icon: "cubeic-wrong",
              }).show();
            }
          });
        },
        onCancel: () => {

        }
      }).show()

    },
    // 快速定位
    toInfo(id) {
      this.actives = id;
      $("body,html").animate(
        {
          scrollTop:
            $("#" + id).offset().top -
            $(".header")[0].offsetHeight -
            $(".navBar")[0].offsetHeight,
        },
        260
      );
    },
  },
  components: {
    LoadIng,
    EventInformation,
    ShowPicture,
  },
  created() {
    if(this.menu){
      this.qiangdan = this.menu.some(v => v.link == 'shijianliebiao_qiangdan');
    }
    this.processInstanceId = this.$route.params.data
      ? this.$route.params.data.processInstanceId
      : JSON.parse(localStorage.getItem("modelData")).incident
          .processInstanceId;
    this.id = this.$route.params.data
      ? this.$route.params.data.id
      : JSON.parse(localStorage.getItem("modelData")).incident.id;
    this.getParamsData();
  },
};
</script>
<style lang="less" scoped>
// i.iconfont.green {
//   color: #48a843;
// &::after {
//   content: "";
//   width: 0.01rem;
//   height: 0.4rem;
//   background: #005395;
//   position: relative;
//   display: block;
//   left: 0.14rem;
// }
// }
.grabSheet {
  .header {
    width: 100%;
    height: 0.88rem;
    line-height: 0.88rem;
    text-align: center;
    color: #fff;
    font-size: 0.37rem;
    background: linear-gradient(#2e2f32, #414246);
    position: fixed;
    top: 0;
    z-index: 6;
  }
  .box {
    min-height: 9.7rem;
    position: relative;
  }
  .navBar {
    width: 100%;
    height: 0.96rem;
    line-height: 0.96rem;
    background-color: #fafafa;
    font-size: 0.28rem;
    position: fixed;
    top: 0.88rem;
    div {
      width: 49.99%;
      text-align: center;
      a {
        display: inline-block;
        height: 0.9rem;
        width: 1.7rem;
        padding: 0 0.1rem;
        &.active {
          color: #005395;
          border-bottom: 0.06rem solid #005395;
        }
      }
    }
  }

  .headtop {
    margin-top: 1.84rem;
  }
  .label {
    background-color: #eeeeee;
    height: 0.6rem;
    line-height: 0.58rem;
    padding-left: 0.2rem;
    font-size: 0.24rem;
    color: #666666;
    span {
      font-size: 0.2rem;
      display: inline-block;
      margin-left: 0.08rem;
      color: #999999;
    }
    &.formLabel {
      background-color: #fff;
    }
  }
  .conentBox {
    width: 100%;
    .conent {
      font-size: 0.32rem;
      font-weight: 400;
      line-height: 0.45rem;
      // border-bottom: 0.16rem solid #e5e5e5;

      .shows {
        display: none;
      }
      .boeder_B {
        border-bottom: 0.01rem solid #ccc;
      }
      p {
        &.desc {
          overflow: hidden;
        }
        .grayFont {
          width: 75%;
          text-align: right;
          overflow-x: scroll;
        }
      }
      .bottom {
        overflow: hidden;
        line-height: 0.86rem;
        border-bottom: 0.01rem solid #e6e6e6;
        font-size: 0.24rem;
        color: #999;
        padding: 0 0.24rem 0 0.48rem;
      }
      .info {
        color: #999;
        font-size: 0.28rem;
        overflow: hidden;
        padding-bottom: 1.3rem;
        .head {
          border-bottom: 0.01rem solid #e6e6e6;
          p {
            padding: 0.24rem 0.3rem;
            i {
              color: #00559d;
            }
          }
        }
        p {
          line-height: 0.4rem;
          padding: 0.1rem 0.24rem;
          overflow: hidden;
          .overflowEllipsis2 {
            margin-left: 1.96rem;
          }
        }
        .info_hide {
          padding: 0.2rem 0.24rem;
          border-bottom: 0.01rem solid #e6e6e6;
          .hide {
            color: #00559d;
          }
        }
        .progress {
          padding: 0.2rem 0.2rem;
          overflow: hidden;
          transition-duration: 0.2s;
          transition-timing-function: linear;
          &.progressHide {
            height: 1.7rem;
          }
          .progress_info {
            overflow: hidden;
            margin-bottom: 0.1rem;
            &:nth-last-child(1) {
              .cont {
                border: none !important;
              }
            }
            .progress_info_L {
              float: left;
              color: #333;
              max-width: 18%;
            }
            .progress_info_R {
              float: right;
              margin-left: 0.09rem;
              width: 80%;
              font-size: 0.25rem;
              .time {
                i {
                  margin-left: -0.15rem;
                  &.icon-icon_weizuo {
                    color: #005495;
                  }
                  &.icon-icon_zhengzaijinx {
                    color: #48a843;
                    font-size: 0.37rem;
                  }
                }
                span {
                  margin-left: 0.15rem;
                }
              }
              .cont {
                border-left: 1px solid #999;
                padding-left: 0.4rem;
                min-height: 0.4rem;
                &.blue {
                  border-left: 1px solid #005395;
                }
              }

              .text2 {
                color: #666;
                word-break: break-all;
              }
              p {
                padding: 0;
              }
            }
          }
        }
      }
      .txtLabel {
        width: 100%;
        overflow: hidden;
        padding: 0.32rem 0.24rem 0.32rem 0.32rem;
        .txt {
          width: 30%;
          color: #666;
        }
        .cube-textarea-wrapper {
          width: 62%;
        }
      }
      .sub {
        background: #ececec;
        position: absolute;
        bottom: 0;
        width: 100%;
        .cube-btn {
          background-color: #005395 !important;
          width: 90%;
          margin: 0.2rem auto;
          border-radius: 8px;
        }
      }
    }
  }
  .showwrap {
    width: 75%;
    text-align: right;
  }
}
</style>
