<template>
  <div>
    <Breadcrumb :list="breadcrumbList"/>
    <div class="screen">
      <el-form :model="queryParams" inline>
        <el-date-picker
            size="small"
            popper-class="selectPopClass"
            v-model="queryParams.month"
            type="month"
            value-format="yyyy-MM"
            placeholder="按月度">
        </el-date-picker>

        <el-select popper-class="selectPopClass" v-model="queryParams.agencyId" size="small" placeholder="按组织">
          <el-option
              v-for="item in orgOptions"
              :key="item.value"
              :label="item.label"
              :value="item.value">
          </el-option>
        </el-select>

        <el-select
            popper-class="selectPopClass"
            clearable
            v-model="queryParams.satisfactionSource"
            size="small"
            placeholder="按不满意事项来源"
            @change="getSatisfactionCategoryOptions"
        >
          <el-option
              v-for="item in satisfactionSourceOptions"
              :key="item.value"
              :label="item.label"
              :value="item.value">
          </el-option>
        </el-select>

        <el-select
            popper-class="selectPopClass"
            clearable
            v-model="queryParams.satisfactionCategory"
            size="small"
            placeholder="按不满意事项类型"
        >
          <el-option
              v-for="item in satisfactionCategoryOptions"
              :key="item.value"
              :label="item.label"
              :value="item.value">
          </el-option>
        </el-select>
        <el-input v-model.trim="queryParams.name" size="small" placeholder="按人员姓名"></el-input>
        <el-input v-model.trim="queryParams.mobile" size="small" placeholder="按人员电话"></el-input>
        <el-button size="small" class="btn" type="primary" @click="search">查询</el-button>
      </el-form>
    </div>

    <div class="table">
      <el-table :data="list"
                v-loading="loading"
                element-loading-text="加载中..."
                element-loading-spinner="el-icon-loading"
                element-loading-background="rgba(0,0,0,0.5)"
      >
        <el-table-column
            label="序号"
            type="index"
            width="80"/>

        <el-table-column
            prop="month"
            label="月度"
            width="114"/>

        <el-table-column
            prop="organizationName"
            width="118"
            label="所属社区"/>

        <el-table-column
            prop="satisfactionSource"
            width="168"
            label="事项来源">
          <template slot-scope="{row}">
            <span :style="{color: satisfactionSourceFormat(row.satisfactionSource).color}">
            {{ satisfactionSourceFormat(row.satisfactionSource).label }}
            </span>

          </template>
        </el-table-column>

        <el-table-column
            prop="satisfactionCategoryName"
            width="150"
            label="事项类型"/>

        <el-table-column
            prop="reason"
            show-overflow-tooltip
            label="事项描述"/>

        <el-table-column
            prop="createdTime"
            width="197"
            label="提交时间"/>

        <el-table-column
            prop="name"
            width="119"
            label="姓名"/>

        <el-table-column
            prop="mobile"
            width="153"
            label="电话"/>

        <el-table-column
            prop="completeFlag"
            width="118px"
            label="是否完成">
          <template slot-scope="{row}">
            <span :class="row.completeFlag==='是'?'light':'red'">
            {{ row.completeFlag }}
            </span>
          </template>
        </el-table-column>


        <el-table-column
            prop="followUpStatus"
            width="118px"
            label="是否回访">
          <template slot-scope="{row}">
            <span :class="row.followUpStatus==='是'?'light':'red'">
            {{ row.followUpStatus }}
            </span>
          </template>
        </el-table-column>

        <el-table-column
            prop="dangerFlag"
            width="118px"
            label="消除风险">
          <template slot-scope="{row}">
            <span :class="row.dangerFlag==='是'?'light':'red'">
            {{ row.dangerFlag }}
            </span>

          </template>
        </el-table-column>

        <el-table-column label="操作" width="90" align="center">
          <template slot-scope="data">
            <el-button type="text" @click="handleView(data.row)">查看</el-button>
          </template>
        </el-table-column>

      </el-table>
    </div>

    <Pagination
        v-show="total>0"
        :total="total"
        :page.sync="queryParams.pageNo"
        :limit.sync="queryParams.pageSize"
        @pagination="getList"
    />
    <DissatisfiedDetail ref="detail" :id="id"/>
  </div>
</template>

<script>
import Breadcrumb from '@/views/dataBoard/satisfactionEval/components/Breadcrumb'
import Pagination from '@/views/dataBoard/satisfactionEval/components/Pagination'
import DissatisfiedDetail from './detail.vue'

export default {
  name: "dissatisfied",
  components: {Breadcrumb, DissatisfiedDetail, Pagination},
  data() {
    return {
      queryParams: {
        month: this.$moment().format('YYYY-MM'),
        agencyId: "",
        satisfactionSource: "",
        satisfactionCategory: "",
        name: "",
        mobile: "",
        pageNo: 1,
        pageSize: 10,
      },
      id: {},
      total: 0,
      breadcrumbList: [{
        path: '/dataBoard/satisfactionEval/index',
        name: '满意度评价'
      }, {
        path: '',
        name: '不满意事项列表'
      }],
      orgOptions: [],
      satisfactionCategoryOptions: [],
      list: [],
      satisfactionSourceOptions: [{
        value: 'satisfaction_12345',
        label: '12345投诉',
        color: '#FFB73C',
      }, {
        value: 'satisfaction_province',
        label: '省满意度调查',
        color: '#64C1FF'
      }, {
        value: 'satisfaction_community',
        label: '社区满意度自查',
        color: '#08EBAE'
      }],
      loading: true
    }
  },
  mounted() {
    this.getOrg()
  },
  methods: {
    getSatisfactionCategoryOptions() {
      this.queryParams.satisfactionCategory = ''
      if (!this.queryParams.satisfactionSource) {
        this.satisfactionCategoryOptions = []
        return
      }
      this.$http.get('/governance/satisfactionDetailList/getUnsatisfiedCategory?satisfactionSource=' + this.queryParams.satisfactionSource).then(({data: {data}}) => {
        this.satisfactionCategoryOptions = data.map(item => {
          return {
            label: item.categoryName,
            value: item.categoryCode
          }
        })
      })

    },
    satisfactionSourceFormat(val) {
      let satisfactionSource = this.satisfactionSourceOptions.filter(item => item.value === val)[0]
      return satisfactionSource ? satisfactionSource : ''
    },
    search() {
      this.queryParams.pageNo = 1
      this.getList();
    },
    getList() {
      this.loading = true
      this.$http.get('/governance/satisfactionDetailList/getUnsatisfiedMattersList?' + this.$paramsFormat(this.queryParams)).then(({data: {data}}) => {
        this.total = data.total
        this.list = data.list
        this.loading = false
      })
    },
    getOrg() {
      let params = {
        orgId: this.$store.state.chooseArea.chooseName.orgId,
        level: this.$store.state.chooseArea.chooseName.level
      }

      this.$http.post(`/gov/org/agency/maporg`, params).then(async ({data: {data}}) => {
        this.queryParams.agencyId = this.$store.state.chooseArea.chooseName.orgId
        let parent = {value: data.id, label: data.name}
        this.orgOptions = [parent, ...data.children.map(item => {
          return {
            value: item.id,
            label: item.name
          }
        })]
        this.getList()
      })
    },
    handleView(id) {
      console.log(id)
      this.id = id
      this.$refs.detail.open(id)
    }
  }
}
</script>

<style scoped lang="scss">
@import "@/assets/scss/dataBoard/table.scss";

.screen {
  margin: 25px 0 40px;

  .el-select, .el-input {
    width: 150px;
    margin-right: 4px;
    border: 1px solid #126AC5;
    border-radius: 2px;

    /deep/ .el-input__inner {
      background: none;
      border: none;
      color: #fff;
    }
  }

  .btn {
    margin-left: 46px;
    height: 32px;
  }
}

.orange {
  color: #FFB73C;
}

.blue {
  color: #64C1FF;
}

.green {
  color: #08EBAE;
}

.light {
  color: #3CF5FF;
}

.red {
  color: #F95619;
}
</style>