<template>
  <div class="page-service-problem">
    <!--搜索-->
    <block-header title="搜索"/>
    <div class="b-search">
      <el-form size="small" label-suffix=":" :inline="true" :model="searchInfo" class="demo-form-inline">
        <el-form-item label="编号:">
          <el-input placeholder="请输入客户编号" v-model="searchInfo.feedNo"></el-input>
        </el-form-item>
        <el-form-item label="手机号:">
          <el-input placeholder="请输入手机号" v-model="searchInfo.clientCell"></el-input>
        </el-form-item>
        <el-form-item label="姓名:">
          <el-input placeholder="请输入姓名" v-model="searchInfo.clientName"></el-input>
        </el-form-item>
        <el-form-item label="解决状态">
          <el-select v-model="searchInfo.feedStatus" clearable placeholder="全部">
            <el-option v-for="item in this.$enumUtils.toValue('SolveStatus')" :key="item.value"
                       :label="item.label" :value="item.value"></el-option>
          </el-select>
        </el-form-item>

        <el-form-item label="反馈类型">
          <el-select v-model="searchInfo.feedType" clearable placeholder="全部">
            <el-option v-for="item in this.$enumUtils.toValue('ResaultStatus')" :key="item.value"
                       :label="item.label" :value="item.value"></el-option>
          </el-select>
        </el-form-item>

        <el-form-item label="反馈时间:">
          <el-date-picker v-model="searchInfo.gmtStartTime" type="daterange" range-separator="至"
                          start-placeholder="开始日期"
                          end-placeholder="结束日期" :clearable="false"></el-date-picker>
        </el-form-item>

        <el-form-item label="产品名称">
          <el-select clearable v-model="searchInfo.feedProduct">
            <el-option v-for="item in this.$enumUtils.toValue('BusinessType')" :key="item.value"
                       :label="item.label" :value="item.value"></el-option>
          </el-select>
        </el-form-item>

        <!--<el-form-item label="反馈来源">
          <el-select clearable v-model="searchInfo.feedSource" >
            <el-option v-for="item in this.$enumUtils.toValue('FeedSourceType')" :key="item.value"
                       :label="item.label" :value="item.value"></el-option>
          </el-select>
        </el-form-item>-->
        <el-form-item>
          <el-button @click="reset" type="primary">重置</el-button>
          <el-button @click="querySearchRemind" type="primary">查询</el-button>
        </el-form-item>
      </el-form>
    </div>

    <!--列表-->
    <block-header title="反馈列表"/>
    <div class="b-table">
      <el-table
          border
          :data="tablePlanRemindData" style="width: 100%"
          :default-sort="{prop: 'date', order: 'descending'}"
          :highlight-current-row="true">
        <el-table-column align="center" prop="feedNo" label="编号"></el-table-column>
        <el-table-column  align="center" label="反馈内容">
          <template slot-scope="scope">
            <el-popover trigger="hover" placement="top" width="400">
              <p> {{ scope.row.feedContent }}</p>
              <div slot="reference" class="name-wrapper">
                <el-tag type='info' size="large">{{ scope.row.feedContent | filterFun }}</el-tag>
              </div>
            </el-popover>
          </template>
        </el-table-column>
        <el-table-column align="center" prop="finishContent" label="处理意见"></el-table-column>
        <el-table-column align="center" prop="clientName" label="客户姓名"></el-table-column>
        <el-table-column align="center" prop="clientCell" label="手机号"></el-table-column>
        <el-table-column align="center" prop="gmtCreated" label="反馈时间" :formatter="dateFormat"></el-table-column>
        <el-table-column align="center" prop="feedType" label="反馈类型"></el-table-column>
        <!--<el-table-column prop="feedProduct" label="产品名称" :formatter="productNameFormat" ></el-table-column>-->
        <el-table-column align="center" prop="feedSource" label="来源" :formatter="feedSourceFormat"></el-table-column>
        <el-table-column align="center" prop="feedStatus" label="解决状态"></el-table-column>
        <el-table-column align="center" label="操作">
          <template slot-scope="scope">
            <div v-if="scope.row.feedStatus =='NO' ">
              <el-button type="text" size="big" @click="deleteRaise(scope.row)">解决</el-button>
            </div>
            <div v-else>
              <el-button type="text" size="small" disabled>已解决</el-button>
            </div>
          </template>
        </el-table-column>
      </el-table>
    </div>

    <!--分页-->
    <div class="b-pagination">
      <el-pagination
          background
          @current-change="handleCurrentChange"
          @size-change="handleSizeChange"
          :current-page.sync="page.current"
          :page-sizes="[10, 20, 50, 100]"
          :page-size="page.size"
          layout="total, sizes, prev, pager, next, jumper"
          :total="page.total">
      </el-pagination>
    </div>
  </div>
</template>

<script>
import * as moment from "moment";

export default {
  name: "ByhPlanRemindList",
  data() {
    return {
      flag: false,
      ui:
          {},
      page: {
        current: 1,
        size: 10,
        total: 0
      },
      activeName: '',
      searchInfo: {
        gmtStartTime: [],
        feedNo: '',
        //feedSource: '',
        clientName: '',
        clientCell: '',
        feedType: '',
        feedStatus: '',
        feedProduct: '',
      },
      tablePlanRemindData: [],
      record: '',
      allUser: [],
    }

  },

  mounted: function () {
    this.tablePlanRemindData = this.remindData();

  },
  filters: {

    filterFun: function (value) {
      if (value.length > 20) {
        value = value.substring(0, 10) + '...';
      }
      return value;
    }

  },


  methods: {

    formatter(row, column) {
      return row.address;
    },
    selected: function (gameName) {
      this.activeName = gameName
    },

    /** 加载数据 */
    remindData(params) {
      var listsData = [];
      this.$$post('/feed/feedPageList', this.buildParam()).then(res => {
        if (res.data.code != 200) {
          this.$message.error(res.data.message);
          return
        }
        listsData = res.data.result.records;
        this.tablePlanRemindData = listsData;
        this.page.total = res.data.result.total;

      }).catch(error => {
        this.$Message.error(error || '系统异常');
      });
    },

    handleSizeChange(row) {
      this.page.size = row
      this.page.current = 1;
      this.remindData();
    },

    // 分配后不刷新页面加载数据
    getMyMarket(msg) {
      if (msg) {
        this.tablePlanRemindData = this.remindData();
      }
    },

    //搜索查询
    querySearchRemind() {
      this.remindData();
    },


    //作废
    deleteRaise(record) {
      this.$prompt('请输入处理意见:', '处理意见', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        inputPattern: /\.*?/,
        inputErrorMessage: '内容不能为空'
      }).then(({value}) => {
        // 获取输入的意见  value
        this.$$post('/feed/updateFeedStatus', this.buildParamRaise(record, value)).then(res => {
          if (res.data.code != 200) {
            this.$message.error(res.data.message);
            return
          }
          // 修改成功后再次加载数据
          this.$message({message: '操作成功', type: 'success'});
          this.tablePlanRemindData = this.remindData();

        }).catch(error => {
          this.$Message.error(error || '系统异常');
        });


      }).catch(() => {
        this.$message({
          type: 'info',
          message: '取消处理'
        });
      });

    },

    //产品名称
    productNameFormat: function (row, column) {
      var status = row['feedProduct'];
      return this.$enumUtils.toMsg('BusinessType', status);
    },

    //反馈来源
    feedSourceFormat: function (row, column) {
      var status = row['feedSource'];
      return this.$enumUtils.toMsg('FeedSourceType', status);
    },

    //参数
    buildParam() {
      var return_hash = {
        size: this.page.size,
        current: this.page.current,
        sort: 'id desc',
      };

      if (this.searchInfo.feedNo != '') {
        return_hash['feedNo'] = this.searchInfo.feedNo
      }
      if (this.searchInfo.clientName != '') {
        return_hash['clientName'] = this.searchInfo.clientName
      }
      if (this.searchInfo.clientCell != '') {
        return_hash['clientCell'] = this.searchInfo.clientCell
      }
      if (this.searchInfo.feedType != '') {
        return_hash['feedType'] = this.searchInfo.feedType
      }
      if (this.searchInfo.feedStatus != '') {
        return_hash['feedStatus'] = this.searchInfo.feedStatus
      }
      if (this.searchInfo.feedProduct != '') {
        return_hash['feedProduct'] = this.searchInfo.feedProduct
      }
      return_hash['feedSource'] = 'APP'
      if (this.searchInfo.gmtStartTime != null && this.searchInfo.gmtStartTime.length > 0) {
        var end = new Date(this.searchInfo.gmtStartTime[1])

        end = end.setDate(end.getDate() + 1);
        end = new Date(end);

        return_hash['gmtStartTime'] = this.searchInfo.gmtStartTime[0];
        return_hash['gmtEndTime'] = end

      }

      return return_hash;
    },

    buildParamRaise(record, value) {
      var return_hash = {
        creater: localStorage.getItem("userName"),
      };
      if (record.feedNo != '') {
        return_hash['feedNo'] = record.feedNo
      }
      if (value != '') {
        return_hash['finishContent'] = value
      }
      return return_hash;
    },

    //显示日期
    dateFormat: function (row, column) {

      var date = row[column.property];
      if (date == undefined) {
        return "";
      }
      return moment(date).format("YYYY-MM-DD HH:mm:ss");
    },

    //重置
    reset() {
      this.searchInfo.feedNo = '';
      this.searchInfo.clientName = '';
      this.searchInfo.clientCell = '';
      this.searchInfo.feedType = '';
      this.searchInfo.feedStatus = '';
      this.searchInfo.gmtStartTime = '';
      this.searchInfo.productName = '';
      this.searchInfo.feedSource = '';
    },

    /** 处理分页操作*/
    handleCurrentChange() {
      this.tablePlanRemindData = this.remindData();
    },
    mergeDate(param1, param2) {
      if (param1 == "") {
        return ""
      }
      var array = new Array();
      array[0] = new Date(param1)
      array[1] = new Date(param2)
      return array;
    },
    getDate(param, num) {
      if (param && param[num] !== '') {
        return moment(param[num]).format("YYYY-MM-DD")
      }
      return ""
    },

  }

}
</script>

<style>

/* 用来设置当前页面element全局table 选中某行时的背景色*/
.system-list .el-table__body tr.current-row > td {
  background-color: #e0f144 !important;
  /* color: #f19944; */ /* 设置文字颜色,可以选择不设置 */
}

/* 用来设置当前页面element全局table 鼠标移入某行时的背景色*/
.system-list .el-table--enable-row-hover .el-table__body tr:hover > td {
  background-color: #d7f144;
  /* color: #f19944; */ /* 设置文字颜色,可以选择不设置 */
}

</style>