<template>
  <ai-list class="list">
    <template slot="title">
      <ai-title title="网格员管理" :isShowBottomBorder="true"></ai-title>
    </template>
    <template slot="content">
      <ai-search-bar bottomBorder>
        <template slot="left">
          <el-date-picker
            v-model="searchObj.selectionDate"
            type="date"
            @change="(page.current = 1), getList()"
            value-format="yyyy-MM-dd"
            size="small"
            placeholder="选用时间">
          </el-date-picker>
        </template>
        <template slot="right">
          <el-input
            v-model="searchObj.name"
            size="small"
            placeholder="网格员/网格名称"
            @keyup.enter.native="(page.current = 1), getList()"
            clearable
            prefix-icon="iconfont iconSearch" />
          <el-button
            type="primary"
            icon="iconfont iconSearch"
            size="small"
            @click="(page.current = 1), getList()">
            查询
          </el-button>
          <el-button
            icon="el-icon-refresh-right"
            size="small"
            @click="resetSearch"
            >重置</el-button>
        </template>
      </ai-search-bar>
      <ai-search-bar style="padding: 16px 0 0">
        <template slot="left">
          <el-button
            icon="iconfont iconAdd"
            type="primary"
            size="small"
            @click="add('')"
            >添加</el-button
          >
          <el-button
            icon="iconfont iconDelete"
            @click="deleteById(ids.join(','))"
            :disabled="!Boolean(ids.length)"
            >删除</el-button
          >
        </template>
      </ai-search-bar>
      <ai-table
        :tableData="tableData"
        :col-configs="colConfigs"
        :total="page.total"
        ref="aitableex"
        :current.sync="page.current"
        :size.sync="page.size"
        @selection-change="(v) => (ids = v.map((e) => e.id))"
        @getList="getList()">
        <el-table-column label="操作" slot="options" align="center" fixed="right" width="170">
          <template slot-scope="{ row }">
            <div class="table-options">
              <el-button type="text" @click="toFamily(row.id)">责任家庭</el-button>
              <el-button type="text" @click="add(row.id)">查看</el-button>
              <el-button type="text" @click="deleteById(row.id)">删除</el-button>
            </div>
          </template>
        </el-table-column>
      </ai-table>
    </template>
  </ai-list>
</template>

<script>
export default {
  name: "list",
  label: "网格员管理",
  props: {
    instance: Function,
    dict: Object,
    permissions: Function,
  },
  data() {
    return {
      searchObj: {
        name: "",
        selectionDate: "",
      },
      page: {
        current: 1,
        size: 10,
        total: 0,
      },
      goAdd: false,
      tableData: [],
      fileList: [],
      ids: [],
      detail: {},
    };
  },
  created() {
    this.dict.load("sex", "girdMemberType", "politicsStatus", "education");
    this.getList();
  },
  computed: {
    colConfigs() {
      let _ = this;
      return [
        {
          type: "selection",
        },
        {
          prop: "name",
          label: "网格员姓名",
        },
        {
          prop: "girdInfoListStr",
          align: "center",
          label: "责任网格",
        },
        {
          prop: "phone",
          align: "center",
          label: "联系电话",
        },
        {
          prop: "selectionDate",
          align: "center",
          label: "选用时间",
        },
      ];
    },
  },
  methods: {
    getList() {
      this.instance
        .post("/app/appgirdmemberinfo/list", null, {
          params: {
            ...this.searchObj,
            ...this.page,
          },
        })
        .then((res) => {
          if (res.code == 0) {
            this.tableData = res.data.records;
            this.page.total = res.data.total;
          }
        });
    },
    deleteById(ids) {
      ids &&
        this.$confirm("是否要删除该网格员？", {
          type: "error",
        })
          .then(() => {
            this.instance
              .post("/app/appgirdmemberinfo/delete", null, {
                params: { ids },
              })
              .then((res) => {
                if (res?.code == 0) {
                  this.$message.success("删除成功!");
                  this.getList();
                }
              });
          })
          .catch(() => {});
    },
    add(id) {
      this.$emit('change', {
        type: 'Add',
        params: {
          id: id || ''
        }
      })
    },

    toFamily (id) {
      this.$emit('change', {
        type: 'Family',
        params: {
          id
        }
      })
    },

    handleSelectionChange(val) {
      this.ids = [];
      val.map((e) => {
        this.ids.push(e.id);
      });
    },
    resetSearch() {
      Object.keys(this.searchObj).map((e) => {
        this.searchObj[e] = "";
      });
      this.getList();
    },
  },
};
</script>

<style lang="scss" scoped>
</style>