<template>
  <div class="resi-container">
    <el-card ref="searchCard" class="search-card">
      <el-form
        ref="searchForm"
        :inline="true"
        :model="fmData"
        :label-width="'100px'"
        class="demo-form-inline"
      >
        <div>
          <el-form-item prop="gridId" label="所属网格">
            <div class="resi-cell-value">
              <el-select
                v-model.trim="fmData.gridId"
                placeholder="请选择网格"
                size="small"
                clearable
                class="resi-cell-select"
                @change="handleChangeGrid"
              >
                <el-option
                  v-for="item in optionsG"
                  :key="item.value"
                  :label="item.label"
                  :value="item.value"
                >
                </el-option>
              </el-select>
            </div>
          </el-form-item>
          <el-form-item label="所属房屋">
            <div class="resi-cell-value">
              <div class="resi-cell-col">
                <el-form-item prop="villageId">
                  <el-select
                    v-model.trim="fmData.villageId"
                    placeholder="请选择小区"
                    size="small"
                    clearable
                    class="resi-cell-select"
                    @change="handleChangeV"
                  >
                    <el-option
                      v-for="item in optionsV"
                      :key="item.value"
                      :label="item.label"
                      :value="item.value"
                    >
                    </el-option>
                  </el-select>
                </el-form-item>
                <el-form-item prop="buildId">
                  <el-select
                    v-model.trim="fmData.buildId"
                    placeholder="楼号"
                    size="small"
                    clearable
                    :disabled="changeVDisabled"
                    class="resi-cell-select resi-cell-select-middle"
                    @change="handleChangeB"
                  >
                    <el-option
                      v-for="item in optionsB"
                      :key="item.value"
                      :label="item.label"
                      :value="item.value"
                    >
                    </el-option>
                  </el-select>
                </el-form-item>
                <el-form-item prop="unitId">
                  <el-select
                    v-model.trim="fmData.unitId"
                    placeholder="单元"
                    size="small"
                    clearable
                    :disabled="changeBDisabled"
                    class="resi-cell-select resi-cell-select-middle"
                    @change="handleChangeD"
                  >
                    <el-option
                      v-for="item in optionsD"
                      :key="item.value"
                      :label="item.label"
                      :value="item.value"
                    >
                    </el-option>
                  </el-select>
                </el-form-item>
                <el-form-item prop="homeId">
                  <el-select
                    v-model.trim="fmData.homeId"
                    placeholder="房号"
                    size="small"
                    clearable
                    :disabled="changeDDisabled"
                    class="resi-cell-select resi-cell-select-middle"
                  >
                    <el-option
                      v-for="item in optionsH"
                      :key="item.value"
                      :label="item.label"
                      :value="item.value"
                    >
                    </el-option>
                  </el-select>
                </el-form-item>
              </div>
            </div>
          </el-form-item>
        </div>

        <div>
          <el-form-item label="姓名" prop="name">
            <el-input
              v-model="fmData.name"
              class="resi-cell-input"
              size="small"
              clearable
              placeholder="请输入"
            >
            </el-input>
          </el-form-item>

          <el-form-item label="手机号" prop="mobile">
            <el-input
              v-model="fmData.mobile"
              class="resi-cell-input"
              size="small"
              clearable
              placeholder="请输入"
            >
            </el-input>
          </el-form-item>

          <el-form-item label="身份证号" prop="idCard">
            <el-input
              v-model="fmData.idCard"
              class="resi-cell-input"
              size="small"
              clearable
              placeholder="请输入"
            >
            </el-input>
          </el-form-item>
        </div>
        <div>
          <!-- <el-form-item label="迁入时间" prop="startTime">
            <el-date-picker
              v-model="rangeTime"
              type="daterange"
              range-separator="至"
              start-placeholder="开始日期"
              end-placeholder="结束日期"
              value-format="yyyy-MM-dd"
            >
            </el-date-picker>
          </el-form-item> -->

          <el-form-item label="审核状态" prop="confirmResult">
            <el-select
              v-model.trim="fmData.confirmResult"
              placeholder="审核状态"
              size="small"
              clearable
              class="resi-cell-select"
            >
              <el-option
                v-for="item in optionsWelfare"
                :key="item.value"
                :label="item.label"
                :value="item.value"
              >
              </el-option>
            </el-select>
          </el-form-item>

          <el-form-item>
            <el-button
              class="diy-button--search"
              size="small"
              @click="handleSearch"
              >查询</el-button
            >
            <el-button
              class="diy-button--reset"
              size="small"
              @click="resetForm('searchForm')"
              >重置</el-button
            >
          </el-form-item>
        </div>
      </el-form>
    </el-card>
    <el-card class="resi-card-table">
      <el-table
        :data="tableData"
        border
        style="width: 100%"
        class="resi-table"
        :height="tableHeight"
      >
        <el-table-column
          label="序号"
          fixed="left"
          type="index"
          align="center"
          width="50"
        />

        <el-table-column
          prop="name"
          width="100"
          fixed="left"
          label="姓名"
          align="center"
        />
          <!-- <template slot-scope="scope">
            <a class="name-a" @click="handleWatch(scope.$index)">
              {{ scope.row.name }}
            </a>
          </template>
        </el-table-column> -->
        <el-table-column prop="gender" align="center" width="60" label="性别">
        </el-table-column>
        <el-table-column
          prop="mobile"
          width="140"
          align="center"
          label="手机号"
        >
        </el-table-column>

        <el-table-column
          prop="idCard"
          align="center"
          width="180"
          label="身份证号"
        >
        </el-table-column>

        <el-table-column
          prop="gridName"
          align="center"
          label="所属网格"
          min-width="160"
          :show-overflow-tooltip="true"
        >
        </el-table-column>

        <el-table-column
          prop="homeName"
          label="所属房屋"
          align="center"
          min-width="160"
          :show-overflow-tooltip="true"
        />
        <!-- <el-table-column
          prop="allName"
          label="迁出类型"
          align="center"
          min-width="160"
          :show-overflow-tooltip="true"
        /> -->
        <el-table-column
          prop="newHomeName"
          label="迁往房屋"
          align="center"
          min-width="160"
          :show-overflow-tooltip="true"
        />
        <el-table-column
          prop="confirmResult"
          label="审核状态"
          align="center"
          width="100"
        />
        

        <el-table-column fixed="right" label="操作" align="center" width="120">
          <template slot-scope="scope">
            <el-button
              @click="handleWatch(scope.row)"
              type="text"
              size="small"
              >查看</el-button
            >

            <el-button
              v-if="scope.row.confirmResult == '未审核'"
              @click="handleEdit(scope.row)"
              type="text"
              size="small"
              class="div-table-button--edit"
              >审核</el-button
            >
            
          </template>
        </el-table-column>
      </el-table>

      <div>
        <el-pagination
          @size-change="handleSizeChange"
          @current-change="handleCurrentChange"
          :current-page.sync="pageNo"
          :page-sizes="[20, 50, 100, 200]"
          :page-size="parseInt(pageSize)"
          layout="sizes, prev, pager, next, total"
          :total="total"
        >
        </el-pagination>
      </div>
    </el-card>

    <!-- 修改弹出框 -->
    <el-dialog
      :visible.sync="formShow"
      :close-on-click-modal="false"
      :close-on-press-escape="false"
      :title="formTitle"
      width="1000px"
      top="5vh"
      class="dialog-h"
      @close="handleClose(false)"
    >
      <verify-form
        v-if="formShow"
        ref="eleEditForm"
        @dialogCancle="handleClose"
      ></verify-form>
    </el-dialog>
  </div>
</template>

<script>
import { requestPost } from '@/js/dai/request'
import nextTick from 'dai-js/tools/nextTick'
import { mapGetters } from 'vuex'
import verifyForm from './verifyForm'
import axios from 'axios'

export default {
  components: { verifyForm },
  data() {
    return {
      openSearch: false,

      formShow: false,
      formTitle: '审核信息',

      pageNo: 1,
      pageSize: window.localStorage.getItem('pageSize') || 20,
      total: 1,

      tableData: [],

      optionsV: [],
      optionsB: [],
      optionsH: [],
      optionsD: [],
      optionsG: [],

      optionsWelfare: [
        {
          value: '1',
          label: '已通过'
        },
        {
          value: '2',
          label: '未通过'
        }
      ],

      fmData: {
        gridId: '',
        villageId: '',
        buildId: '',
        unitId: '',
        homeId: '',
        name: '',
        mobile: '',
        idCard: '',
        // isWeifare: '', //福利0否，1是
        // startTime: '',
        // endTime: '',
        submitType: '',
        confirmResult: ''
      },
      rangeTime: [],

      importBtnTitle: '导入',
      importLoading: false,

      searchH: 0,
      tableHeight: 0
    }
  },
  computed: {
    ...mapGetters(['clientHeight', 'iframeHeight']),
    maxTableHeight() {
      console.log('computed-searchH---', this.searchH)
      const h = this.clientHeight - this.searchH + this.iframeHeight
      const _h = this.clientHeight - this.searchH
      console.log('computed-searchH---_h', _h)
      return this.$store.state.inIframe ? h : _h
      
    },
    
    changeVDisabled() {
      return !this.fmData.villageId
    },
    changeBDisabled() {
      return !this.fmData.buildId
    },
    changeDDisabled() {
      return !this.fmData.unitId
    }
  },
  watch: {
    rangeTime: function (val) {
      console.log('val----', val)
      if (Array.isArray(val) && val.length == 2) {
        this.fmData.startTime = val[0]
        this.fmData.endTime = val[1]
      } else {
        this.fmData.startTime = ''
        this.fmData.endTime = ''
      }
    },
    searchH() {
      const h = this.clientHeight - this.searchH + this.iframeHeight
      const _h = this.clientHeight - this.searchH
      console.log('computed-searchH---_h', _h)
      
      this.$nextTick(() => {
        this.tableHeight = this.$store.state.inIframe ? h : _h
      })
    }
  },
  mounted() {
    this.getGridList()
    this.getValiheList()
    this.getTableData()
    this.searchH = this.$refs.searchCard.$el.offsetHeight + 270
    console.log('searchH----', this.$refs.searchCard.$el.offsetHeight)
  },
  methods: {
    handleClearVillage() {
      this.fmData.buildId = ''
      this.fmData.homeId = ''
    },
    handleClearBuild() {
      this.fmData.buildId = ''
      this.fmData.unitId = ''
      this.fmData.homeId = ''
    },
    handleClearDan() {
      this.fmData.unitId = ''
      this.fmData.homeId = ''
    },
    handleChangeGrid(val) {
      console.log('val', val)
      this.fmData.villageId = ''
      this.fmData.buildId = ''
      this.fmData.unitId = ''
      this.fmData.homeId = ''
      this.getValiheList()
    },
    handleChangeV(val) {
      console.log('val', val)
      this.fmData.buildId = ''
      this.fmData.unitId = ''
      this.fmData.homeId = ''
      this.getBuildList()
    },
    handleChangeB(val) {
      console.log('val', val)
      this.fmData.unitId = ''
      this.fmData.homeId = ''
      this.getUniList()
    },
    handleChangeD(val) {
      console.log('val', val)
      this.fmData.homeId = ''
      this.getHouseList()
    },

    getGridList() {
      const { user } = this.$store.state
      this.$http
        .post('/gov/org/customergrid/gridoption', {
          agencyId: user.agencyId,
          purpose: 'query'
        })
        .then(({ data: res }) => {
          if (res.code !== 0) {
            return this.$message.error(res.msg)
          } else {
            console.log('获取查询详情成功', res.data)
            this.optionsG = res.data
          }
        })
        .catch(() => {
          return this.$message.error('网络错误')
        })
    },
    getValiheList() {
      const { user } = this.$store.state
      this.$http
        .post('/gov/org/icneighborhood/neighborhoodoption', {
          gridId: this.fmData.gridId,
          agencyId: ''
          // agencyId: user.agencyId
        })
        .then(({ data: res }) => {
          if (res.code !== 0) {
            return this.$message.error(res.msg)
          } else {
            console.log('获取查询详情成功', res.data)
            this.optionsV = res.data
          }
        })
        .catch(() => {
          return this.$message.error('网络错误')
        })
    },
    getBuildList() {
      this.$http
        .post('/gov/org/icbuilding/buildingoption', {
          neighborHoodId: this.fmData.villageId
        })
        .then(({ data: res }) => {
          if (res.code !== 0) {
            return this.$message.error(res.msg)
          } else {
            console.log('获取查询详情成功', res.data)
            this.optionsB = res.data
          }
        })
        .catch(() => {
          return this.$message.error('网络错误')
        })
    },
    getUniList() {
      this.$http
        .post('/gov/org/icbuildingunit/unitoption', {
          buildingId: this.fmData.buildId
        })
        .then(({ data: res }) => {
          if (res.code !== 0) {
            return this.$message.error(res.msg)
          } else {
            console.log('获取查询详情成功', res.data)
            this.optionsD = res.data
          }
        })
        .catch(() => {
          return this.$message.error('网络错误')
        })
    },
    getHouseList() {
      this.$http
        .post('/gov/org/ichouse/houseoption', { unitId: this.fmData.unitId })
        .then(({ data: res }) => {
          if (res.code !== 0) {
            return this.$message.error(res.msg)
          } else {
            console.log('获取查询详情成功', res.data)
            this.optionsH = res.data
          }
        })
        .catch(() => {
          return this.$message.error('网络错误')
        })
    },

    handleSizeChange(val) {
      console.log(`每页 ${val} 条`)
      this.pageSize = val
      window.localStorage.setItem('pageSize', val)
      this.getTableData()
    },
    handleCurrentChange(val) {
      console.log(`当前页: ${val}`)
      this.pageNo = val
      this.getTableData()
    },

    handleClose(val) {
      console.log('val-----', val)
      if (val) {
        this.handleEditSuccess()
      }
      this.formShow = false
    },
    handleSearch(val) {
      console.log(this.fmData)
      this.pageNo = 1
      this.getTableData()
    },
    resetForm(formName) {
      this.$refs[formName].resetFields()
      this.handleSearch()
    },
    async handleAdd() {
      this.formShow = true
      await nextTick()
      console.log(this.$refs)
      this.$refs.eleEditForm.initForm('add')
    },


    async handleWatch(row) {
      this.formShow = true
      await nextTick()
      this.$refs.eleEditForm.getDatail('detail', row.id)
    },

    async handleEdit(row) {
      this.formShow = true
      await nextTick()
      this.$refs.eleEditForm.getDatail('edit', row.id)
    },
    handleEditSuccess() {
      // this.handleClose()
      this.getTableData()
    },

    async handleDel(rowData, rowIndex) {
      console.log(rowData, rowIndex)
      const url =
        '/heart/iccommunityselforganization/delcommunityselforganization'
      const { tableData } = this

      const { data, code, msg } = await requestPost(url, {
        orgId: tableData[rowIndex].orgId
      })

      if (code === 0) {
        this.$message.success('删除成功！')
        this.getTableData()
      } else {
        this.$message.success('操作失败！')
      }
    },

    async getTableData() {
      const url = '/epmetuser/myHome/confirmList'
      const { pageSize, pageNo, fmData } = this
      const { data, code, msg } = await requestPost(url, {
        pageSize,
        pageNo,
        ...fmData
      })
      if (code === 0) {
        console.log('列表请求成功！！！！！！！！！！！！！！')
        this.total = data.total || 0
        this.tableData = data.list
          ? data.list.map((item) => {
              return item
            })
          : []
      } else {
      }
    }
  }
}
</script>

<style lang="scss" scoped>
@import '@/assets/scss/buttonstyle.scss';

.resi-container .resi-card-table {
  ::v-deep .el-table th {
    color: #fff;
    background-color: rgba(33, 149, 254, 1);
    // border-right: 1px solid rgba(33, 149, 254, 1);
  }
}
.resi-table {
  ::v-deep .el-button--text {
    text-decoration: underline;
  }
}
.resi-card-table {
  margin-top: 20px;
}
.resi-row-btn {
  margin-bottom: 13px;
  .upload-btn {
    display: inline-block;
    margin: 0 10px;
  }
}

.resi-btns {
  margin-top: 20px;
  text-align: center;
}

.resi-container .resi-card {
  position: relative;
  overflow: visible;
}

.demo-form-inline {
  // display: flex;
  // align-items: center;
  // margin-bottom: 20px;

  .resi-cell-label {
    flex-shrink: 0;
    min-width: 0;
    box-sizing: border-box;
    margin-right: 15px;
    // text-align: right;
    // line-height: 32;
  }
  .resi-cell-label1 {
    width: max-content;
  }
  .resi-cell-value-radio {
    display: flex;
    align-items: center;
    min-height: 32px;
  }
  .resi-cell-input {
    width: 200px;
  }
  .resi-cell--daterange {
    max-width: 260px;
  }
  .resi-cell-select {
    width: 200px;
    box-sizing: border-box;
    margin-right: 10px;
    &-middle {
      width: 120px;
    }
    &-small {
      width: 88px;
    }
  }
  .resi-cell-select:last-child {
    margin-right: 0;
  }
}

.mt10 {
  margin-top: 10px;
}
</style>
