<style>
  .CM_detail {
    color: #3980C8;
    cursor: pointer;
  }

  .CM_detail:hover {
    text-decoration: underline;
    color: #E95252;
  }
  .Complain_info{
    margin:20px 0;
  }
  .Complain_item{
    font-weight: 400;
    padding: 10px;
    height: 100%;
    border: 1px solid #E6E6E6;
    background-color: #FFFFFF;
    color: #333333;
  }
  .Complain_item span{
    font-size:14px;
  }
  .Complain_item div{
    margin-top:7px;
  }
  .Complain_item div i{
    font-size:12px;
  }
  .complain_col{
    height:60px;
  }
  .Complain_green{
    color:#1BC594;
  }
  .Com_yingfu{
      font-size:16px;
      color:#1BC594;
      font-weight:bold;
  }
  .Com_zong{
      font-size:16px;
      color: #E95252;
      font-weight:bold;
  }
</style>

<template>
  <div class="flexOne">
    <div class="query-box">
      <ul>
        <li>
          <span>
            <em>投诉编号</em>
            <el-input placeholder="" v-model="queryMsg.ID"></el-input>
          </span>
        </li>
        <li>
          <span>
            <em>线路</em>
            <el-select v-model="queryMsg.LineID" filterable :placeholder="$t('pub.pleaseSel')"
                       @change="getLineTeamList()">
              <el-option :label="$t('pub.unlimitedSel')" :value="queryCommonData.SelectDefaultValue"></el-option>
              <el-option v-for="item in queryCommonData.LineList" :label="item.LineName"
                         :value="item.LineID" :key="item.LineID"></el-option>
            </el-select>
          </span>
        </li>
        <li>
          <span>
            <em>系列</em>
            <el-select v-model="queryMsg.LineteamId" filterable :placeholder="$t('pub.pleaseSel')">
              <el-option :label="$t('pub.unlimitedSel')" :value="queryCommonData.SelectDefaultValue"></el-option>
              <el-option v-for="item in queryCommonData.LineTeamList" :label="item.LtName"
                         :value="item.LtID" :key="item.LtID"></el-option>
            </el-select>
          </span>
        </li>
        <li>
          <span>
            <em>团队编号</em>
            <el-input placeholder="" v-model="queryMsg.TCID"></el-input>
          </span>
        </li>
        <li>
          <span>
            <em>订单号</em>
            <el-input placeholder="" v-model="queryMsg.OrderID"></el-input>
          </span>
        </li>
        <li>
          <span>
            <em>投诉内容</em>
            <el-select v-model="queryMsg.Contentrs" filterable :placeholder="$t('pub.pleaseSel')">
              <el-option :label="$t('pub.unlimitedSel')" :value="queryCommonData.SelectDefaultValue"></el-option>
              <el-option v-for="item in queryCommonData.ComplainContentEnumList" :label="item.Name"
                         :value="item.Id" :key="item.Id"></el-option>
            </el-select>
          </span>
        </li>
        <li>
          <span>
            <em>严重程度</em>
            <el-select v-model="queryMsg.SeverityLevel" filterable :placeholder="$t('pub.pleaseSel')">
              <el-option :label="$t('pub.unlimitedSel')" :value="queryCommonData.SelectDefaultValue"></el-option>
              <el-option v-for="item in queryCommonData.ComplainDealLevelList" :label="item.Name"
                         :value="item.Id" :key="item.Id"></el-option>
            </el-select>
          </span>
        </li>
        <li>
          <span>
            <em>状态</em>
            <el-select v-model="queryMsg.DisposeStatus" filterable :placeholder="$t('pub.pleaseSel')">
              <el-option :label="$t('pub.unlimitedSel')" :value="queryCommonData.SelectDefaultValue"></el-option>
              <el-option v-for="item in queryCommonData.DisposeStatusList" :label="item.Name"
                         :value="item.Id" :key="item.Id"></el-option>
            </el-select>
          </span>
        </li>
        <li>
          <span>
            <em>处理人</em>
            <el-select class="w150" v-model="queryMsg.NextPersion" filterable :placeholder="$t('pub.pleaseSel')">
              <el-option :label="$t('pub.unlimitedSel')" :value="queryCommonData.SelectDefaultValue"></el-option>
              <el-option v-for="item in queryCommonData.EmployeeList" :label="item.EmName"
                         :value="item.EmployeeId" :key="item.EmployeeId"></el-option>
            </el-select>
          </span>
        </li>
        <li>
          <input type="button" class="hollowFixedBtn" value="查询" @click="getList(),resetPageIndex()"/>&nbsp;
          <input type="button" class="normalBtn" value="新增" @click="goUrl('AddComplaints',0)"/>
        </li>
      </ul>
    </div>
    <!-- 统计版块 -->
    <div class="Complain_info">
      <el-row :gutter="20">
        <el-col :span="4" class="complain_col">
          <div class="Complain_item">
            <div>
              <i class="iconfont icon-qian Complain_green"></i>
              <span>应赔总金额：<span class="Com_yingfu">{{complainStatistic.compensateTotalMoney}}</span></span>
            </div>
          </div>
        </el-col>
        <el-col :span="4" class="complain_col">
          <div class="Complain_item">
            <div>
              <i class="iconfont icon-qian Complain_green"></i>
              <span>实赔总金额：<span class="Com_zong">{{complainStatistic.backTotalMoney}}</span></span>
            </div>
          </div>
        </el-col>
      </el-row>
    </div>
    <div class="commonContent" v-loading="queryCommonData.loading">
      <table class="singeRowTable" border="0" cellspacing="0" cellpadding="0">
        <tr>
          <th>投诉编号</th>
          <th>团队编号</th>
          <th>订单号</th>
          <th>投诉内容</th>
          <th>严重程度</th>
          <th>记录人员</th>
          <th>状态</th>
          <th>应赔金额</th>
          <th>实赔金额</th>
          <th>当前处理人</th>
          <th>处理人耗时</th>
          <th>总耗时</th>
          <th>操作</th>
        </tr>
        <tr v-for="item in queryCommonData.dataList">
          <td>{{item.ID}}</td>
          <td style="text-decoration:underline;cursor:pointer;"
              @click="goTeamBalancePayment('团队收支','TeamBalancePayment',item.TCID,item.OutBranchId)">
            {{item.TCNUM}}（{{item.TCID}}）
          </td>
          <td style="text-decoration:underline;cursor:pointer;"
              @click="goEnrollTotal('报名统计','enrollTotal',item.OrderID)">{{item.OrderID}}
          </td>
          <td>{{item.Contentrs}}</td>
          <td>{{item.SeverityLevelStr}}</td>
          <td>{{item.RecordEmpName}}</td>
          <td>{{item.DisposeStatusStr}}</td>
          <td>{{item.DisposeStatus===4?item.ShouldPayMoney:''}}</td>
          <td>{{item.DisposeStatus===4?item.BackMoney:''}}</td>
          <td>{{item.CurrentDealEmpName}}</td>
          <td>{{getTimeConsuming(item,1)}}</td>
          <td>{{getTimeConsuming(item,2)}}</td>
          <td>
            <span class="CM_detail" @click="goUrl('ComplaintsDetail',item.ID,item.OrderID,'投诉详情')">详情</span>
          </td>
        </tr>
      </table>
      <div class="noData" v-show="queryCommonData.noData">
        {{$t('system.content_noData')}}
      </div>
      <el-pagination background @current-change="handleCurrentChange" :current-page.sync="queryCommonData.currentPage"
                     layout="total,prev, pager, next, jumper" :page-size="queryCommonData.pageSize"
                     :total="queryCommonData.total"></el-pagination>
    </div>
  </div>
</template>

<script>
  export default {
    data () {
      return {
        queryCommonData: {
          //下拉默认值
          SelectDefaultValue: 0,
          //加载
          loading: false,
          //线路下拉
          LineList: [],
          //系列下拉
          LineTeamList: [],
          //紧急程度
          ComplainDealLevelList: [],
          //投诉内容
          ComplainContentEnumList: [],
          //状态
          DisposeStatusList: [],
          //员工
          EmployeeList: [],
          //是否有数据
          noData: false,
          //总数
          total: 0,
          //第几页
          currentPage: 1,
          pageSize: 10,
          //数据列表
          dataList: [],
        },
        queryMsg: {
          ID: '',
          LineID: 0,
          LineteamId: 0,
          Contentrs: '',
          SeverityLevel: 0,
          DisposeStatus: 0,
          NextPersion: 0,
          OrderID: '',
          TCID: '',
          pageIndex: 1,
          pageSize: 10
        },
        complainStatistic: {}
      }
    },
    methods: {
      //添加修改投诉
      goUrl (path, id) {
        this.$router.push({
          path: path,
          query: {
            id: id,
            blank: 'y',
            tab: '投诉编辑'
          }
        })
      },
      getList () {
        this.queryCommonData.loading = true
        this.queryMsg.pageIndex = this.queryCommonData.currentPage
        this.queryMsg.pageSize = this.queryCommonData.pageSize
        let msg = JSON.parse(JSON.stringify(this.queryMsg))
        if (msg.ID == '') {
          msg.ID = 0
        }
        if (msg.OrderID == '') {
          msg.OrderID = 0
        }
        if (msg.TCID == '') {
          msg.TCID = 0
        }
        this.apipost('conplain_get_GetPageList', msg, res => {
          this.queryCommonData.loading = false
          if (res.data.resultCode == 1) {
            this.queryCommonData.total = res.data.data.count
            this.queryCommonData.noData = !this.queryCommonData.total > 0
            this.queryCommonData.dataList = res.data.data.pageData
          } else {
            this.Error(res.data.message)
          }
        }, err => {
        })
      },
      //翻页
      handleCurrentChange (val) {
        this.queryCommonData.pageIndex = val
        this.getList()
      },
      //重新查询
      resetPageIndex () {
        this.queryCommonData.pageIndex = 1
        this.queryMsg.pageIndex = 1
        this.queryCommonData.currentPage = 1
      },
      //获取线路列表
      getLineList () {
        this.apipost('line_post_GetList', {}, res => {
          if (res.data.resultCode == 1) {
            this.queryCommonData.LineList = res.data.data
          }
        })
      },
      //获取系列列表
      getLineTeamList () {
        this.queryMsg.LineteamId = 0
        let msg = {
          lineID: this.queryMsg.LineID,
          isTOOP: 1
        }
        this.apipost('team_post_GetList', msg, res => {
          if (res.data.resultCode == 1) {
            this.queryCommonData.LineTeamList = res.data.data
          }
        })
      },
      //获取投诉枚举集合
      getEnumeration () {
        this.apipost('conplain_get_GetComplainEnumList', {}, res => {
          if (res.data.resultCode == 1) {
            this.queryCommonData.ComplainContentEnumList = res.data.data.ComplainContentEnumList
            this.queryCommonData.ComplainDealLevelList = res.data.data.ComplainDealLevelList
            this.queryCommonData.DisposeStatusList = res.data.data.DisposeStatusList
          } else {
            this.Error(res.data.message)
          }
        })
      },
      //根据当前员工所在部门获取该部门及子部门员工信息
      getEmployeeList () {
        let userInfo = this.getLocalStorage()
        let msg = {
          GroupId: userInfo.RB_Group_id,
          BranchId: '-1',
          DepartmentId: '-1',
          PostId: '-1',
          IsLeave: '0'
        }
        this.apipost(
          'admin_get_EmployeeGetList', {},
          res => {
            if (res.data.resultCode == 1) {
              this.queryCommonData.EmployeeList = res.data.data
            }
          },
          err => {
          }
        )
      },
      //跳转
      goUrl (path, id, orderId, title) {
        this.$router.push({
          name: path,
          query: {
            'id': id,
            'orderId': orderId,
            blank: 'y',
            tab: title
          }
        })
      },
      //获取耗时
      getTimeConsuming (item, type) {
        var endDate = new Date()//获取系统当前时间
        let resultStr = ''
        //处理人耗时
        if (type === 1) {
          if (item.DisposeStatus === 2) {
            resultStr = this.$commonUtils.getDateTimeInterval(new Date(item.DealCreateTime), endDate)
          } else {
            resultStr = item.ElapsedTime
          }
        } else {//总耗时
          if (item.DisposeStatus === 2) {
            resultStr = this.$commonUtils.getDateTimeInterval(new Date(item.CreateTime), endDate)
          } else {
            resultStr = this.$commonUtils.getDateTimeInterval(new Date(item.CreateTime), new Date(item.UpdateTime))
          }
        }
        return resultStr
      },
      goEnrollTotal (name, path, orderId) {
        this.$router.push({
          name: path,
          query: {orderId: orderId, blank: 'y', tab: name}
        })
      },
      goTeamBalancePayment (name, path, id, outBranchId) {
        this.$router.push({
          name: path,
          query: {id: id, outBranchId: outBranchId, blank: 'y', tab: name}
        })
      },
      //获取投诉统计
      getComplainStatistic () {
        let msg = {}
        this.apipost('travel_post_GetComplainStatistic', msg, res => {
          if (res.data.resultCode == 1) {
            this.complainStatistic = res.data.data
          }
        })
      },
    },
    mounted () {
      this.getLineList()
      this.getEnumeration()
      this.getEmployeeList()
      this.getList()
      this.getComplainStatistic()
    }
  }

</script>
