<template>
  <div>
    <div v-show="currentPage == 'chaxun'">
      <div v-show="!showedFuncPanel">
        <div class="m-info">
          <div class="wrap">
            <div class="logo">
              <img src="@/assets/img/shequ/logo.png" />
            </div>

            <div class="search">
              <div class="input">
                <el-dropdown
                  class="select"
                  placement="bottom"
                  v-model="searchData.type"
                  @command="(type) => (searchData.type = type)"
                >
                  <span class="select-show">
                    {{
                      { jumin: "居民", fangwu: "房屋", xuqiu: "需求" }[
                        searchData.type
                      ]
                    }}<i class="el-icon-arrow-down el-icon--right"></i>
                  </span>
                  <el-dropdown-menu slot="dropdown">
                    <el-dropdown-item command="jumin">居民</el-dropdown-item>
                    <el-dropdown-item command="fangwu">房屋</el-dropdown-item>
                    <el-dropdown-item command="xuqiu">需求</el-dropdown-item>
                  </el-dropdown-menu>
                </el-dropdown>

                <input
                  type="text"
                  :placeholder="typePlaceholder[searchData.type]"
                  v-model="searchData.keyword"
                  @keyup.enter="handleClickSearchBtn"
                />

                <div
                  class="close-btn"
                  v-if="searchData.keyword != ''"
                  @click="searchData.keyword = ''"
                >
                  <img src="@/assets/img/shequ/close.png" />
                </div>
              </div>
              <div class="btn" @click="handleClickSearchBtn">搜索</div>
            </div>

            <div
              class="m-tb"
              v-if="
                searchData.type == 'jumin' &&
                searchData.keyword != '' &&
                searchStatus == 'ing'
              "
            >
              <div class="tb">
                <el-table
                  :data="searchJumin.list"
                  border
                  style="width: 100%"
                  class="resi-table"
                  :max-height="1000"
                >
                  <el-table-column
                    label="序号"
                    type="index"
                    align="center"
                    width="50"
                  />
                  <el-table-column
                    v-for="item in searchJumin.header"
                    :key="item.columnName"
                    :prop="item.columnName"
                    :label="item.label"
                    align="center"
                    :show-overflow-tooltip="true"
                    :width="
                      item.itemType === 'radio'
                        ? computedWidth(item.label)
                        : 180
                    "
                  >
                    <template slot-scope="scope">
                      <span>{{ handleFilterSpan(scope.row, item) }}</span>
                    </template>
                  </el-table-column>
                  <el-table-column fixed="right" label="操作" align="center">
                    <template slot-scope="scope">
                      <el-button
                        @click="handleWatchSearchJumin(scope.$index)"
                        type="text"
                        size="small"
                        >查看</el-button
                      >
                    </template>
                  </el-table-column>
                </el-table>

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

            <div
              class="m-tb"
              v-if="
                searchData.type == 'fangwu' &&
                searchData.keyword != '' &&
                searchStatus == 'ing'
              "
            >
              <div class="tb">
                <el-table
                  :data="searchFangwu.list"
                  v-loading="searchFangwu.loading"
                  border
                  :max-height="1000"
                  style="width: 100%"
                >
                  <el-table-column
                    label="序号"
                    type="index"
                    align="center"
                    width="50"
                  />
                  <el-table-column
                    prop="houseName"
                    label="房屋名称"
                    width="120"
                  >
                  </el-table-column>
                  <el-table-column
                    prop="neighborHoodName"
                    label="所属小区"
                    width="160"
                  >
                  </el-table-column>
                  <el-table-column prop="buildingName" label="所属楼栋">
                  </el-table-column>
                  <el-table-column prop="unitNum" label="单元号">
                  </el-table-column>
                  <el-table-column prop="doorName" label="门牌号">
                  </el-table-column>
                  <el-table-column prop="houseType" label="类型">
                  </el-table-column>
                  <el-table-column prop="purpose" label="用途">
                  </el-table-column>
                  <el-table-column prop="rentFlag" label="是否出租">
                  </el-table-column>
                  <el-table-column prop="ownerName" label="房主姓名">
                  </el-table-column>
                  <el-table-column
                    prop="ownerPhone"
                    label="房主电话"
                    width="110"
                  >
                  </el-table-column>
                  <el-table-column
                    prop="ownerIdCard"
                    label="身份证"
                    width="170"
                  >
                  </el-table-column>
                  <el-table-column
                    label="操作"
                    fixed="right"
                    header-align="center"
                    align="center"
                    class="operate"
                  >
                    <template slot-scope="scope">
                      <el-button
                        type="text"
                        style="color: #1c6afd; text-decoration: underline"
                        size="small"
                        @click="handleWatchSearchFangwu(scope.row)"
                        >查看</el-button
                      >
                    </template>
                  </el-table-column>
                </el-table>
                <div>
                  <el-pagination
                    @size-change="handleSizeChangeSearchFangwu"
                    @current-change="handleCurrentChangeSearchFangwu"
                    :current-page.sync="searchFangwu.pageNo"
                    :page-sizes="[20, 50, 100, 200]"
                    :page-size="parseInt(searchFangwu.pageSize)"
                    layout="sizes, prev, pager, next"
                    :total="searchFangwu.total"
                  >
                  </el-pagination>
                </div>
              </div>
            </div>

            <div
              class="m-tb"
              v-if="
                searchData.type == 'xuqiu' &&
                searchData.keyword != '' &&
                searchStatus == 'ing'
              "
            >
              <div class="tb">
                <el-table
                  :data="searchXuqiu.list"
                  v-loading="searchXuqiu.loading"
                  border
                  :max-height="1000"
                  style="width: 100%"
                >
                  <el-table-column
                    label="序号"
                    type="index"
                    align="center"
                    width="50"
                  />

                  <el-table-column
                    v-for="item in searchXuqiu.header"
                    :key="item.columnName"
                    :prop="item.columnName"
                    :label="item.label"
                    :align="item.align"
                    :width="item.width"
                    :show-overflow-tooltip="true"
                  >
                    <template slot-scope="scope">
                      <span>{{ handleFilterSpan(scope.row, item) }}</span>
                    </template>
                  </el-table-column>

                  <el-table-column
                    label="操作"
                    fixed="right"
                    header-align="center"
                    align="center"
                    class="operate"
                  >
                    <template slot-scope="scope">
                      <el-button
                        type="text"
                        style="color: #1c6afd; text-decoration: underline"
                        size="small"
                        @click="handleWatchSearchXuqiu(scope.row)"
                        >查看</el-button
                      >
                    </template>
                  </el-table-column>
                </el-table>
                <div>
                  <el-pagination
                    @size-change="handleSizeChangeSearchXuqiu"
                    @current-change="handleCurrentChangeSearchXuqiu"
                    :current-page.sync="searchXuqiu.pageNo"
                    :page-sizes="[20, 50, 100, 200]"
                    :page-size="parseInt(searchXuqiu.pageSize)"
                    layout="sizes, prev, pager, next"
                    :total="searchXuqiu.total"
                  >
                  </el-pagination>
                </div>
              </div>
            </div>

            <div
              class="m-tb"
              v-if="
                searchData.type == 'xuqiu' &&
                searchData.keyword != '' &&
                searchStatus == 'ing'
              "
            >
              <div class="tb"></div>
            </div>

            <div class="m-list" v-if="searchStatus == 'ini'">
              <div class="list-title">常用功能</div>
              <div class="list">
                <div
                  class="item"
                  :key="item.menuId"
                  @click="handleClickFunc(item)"
                  v-for="item in funcList"
                >
                  <div class="icon">
                    <svg
                      class="icon-svg aui-sidebar__menu-icon"
                      aria-hidden="true"
                    >
                      <use :xlink:href="`#${item.icon}`" />
                    </svg>
                  </div>
                  <p>{{ item.menuName }}</p>
                </div>

                <div class="item" @click="showedFuncPanel = true">
                  <div class="icon">
                    <img
                      src="@/assets/img/shequ/function/tianjiayingyong.png"
                    />
                  </div>
                  <p>添加应用</p>
                </div>
              </div>
            </div>
          </div>
        </div>

        <div class="m-data" v-if="searchStatus == 'ini'">
          <div class="wrap">
            <div class="header">
              <div class="headline">人员预警</div>

              <div class="notice" v-if="noticeList.length > 0">
                <div class="notice-btn" @click="toNoticeInfo">通知</div>
                <div class="notice-list">
                  <scroll-notice :list="noticeList">
                    <a
                      class="notice-item"
                      v-for="(item, index) in noticeList"
                      :key="item.configId + item.buildingId + index"
                      @click="toNoticeInfo(item)"
                    >
                      {{ item.noticeContent }}
                    </a>
                  </scroll-notice>
                </div>
              </div>
            </div>

            <div class="cnt">
              <div class="chart">
                <bar-chart
                  :width="520"
                  :height="420"
                  v-if="warningChart.loading"
                  :total="warningChart.total"
                  :list="warningChart.list"
                  @clickBar="changeCategoryCode"
                />
              </div>
              <div class="tb">
                <el-table
                  :data="warningTb.list"
                  border
                  style="width: 100%"
                  class="resi-table"
                  :max-height="maxTableHeight"
                >
                  <el-table-column
                    label="序号"
                    type="index"
                    align="center"
                    width="50"
                  />
                  <el-table-column prop="typeName" label="类型">
                  </el-table-column>
                  <el-table-column prop="gridName" label="所属网格">
                  </el-table-column>
                  <el-table-column prop="name" label="姓名"> </el-table-column>
                  <el-table-column prop="family" label="所属家庭">
                  </el-table-column>
                  <el-table-column prop="mobile" label="电话">
                  </el-table-column>
                  <el-table-column fixed="right" label="操作" align="center">
                    <template slot-scope="scope">
                      <el-button
                        @click="handleWatchWarning(scope.$index)"
                        type="text"
                        size="small"
                        >查看</el-button
                      >
                    </template>
                  </el-table-column>
                </el-table>
                <div>
                  <el-pagination
                    @size-change="handleSizeChangeWarning"
                    @current-change="handleCurrentChangeWarning"
                    :current-page.sync="warningTb.pageNo"
                    :page-sizes="[20, 50, 100, 200]"
                    :page-size="parseInt(warningTb.pageSize)"
                    layout="sizes, prev, pager, next"
                    :total="warningTb.total"
                  >
                  </el-pagination>
                </div>
              </div>
            </div>
          </div>
        </div>
      </div>

      <!-- 修改弹出框 -->
      <div
        v-show="showedFuncPanel"
        v-if="
          Array.isArray($store.state.sidebarMenuList) &&
          $store.state.sidebarMenuList.length > 0
        "
      >
        <div class="m-panel">
          <div
            class="m-list"
            v-if="selectedFuncList && selectedFuncList.length > 0"
          >
            <div class="list-title">常用功能</div>
            <div class="list">
              <div
                class="item"
                :key="item.menuId"
                @click="selectFuncItem(item.menuId)"
                v-for="item in selectedFuncList"
              >
                <div class="corner-mark z-on">
                  <i class="el-icon-success"></i>
                </div>

                <div class="icon">
                  <svg
                    class="icon-svg aui-sidebar__menu-icon"
                    aria-hidden="true"
                  >
                    <use :xlink:href="`#${item.icon}`" />
                  </svg>
                </div>
                <p>{{ item.menuName }}</p>
              </div>
            </div>
          </div>

          <div class="m-list">
            <div class="list-title">所有功能</div>

            <div
              :key="'one' + menu.id"
              v-show="menu.children && menu.children.length > 0"
              v-for="menu in $store.state.sidebarMenuList"
            >
              <div class="list-title2">{{ menu.name }}</div>
              <div class="list">
                <div
                  class="item"
                  :key="'two' + item.id"
                  @click="selectFuncItem(item.id)"
                  v-for="item in menu.children"
                >
                  <div
                    class="corner-mark"
                    :class="{
                      'z-on': selectedFuncIdList.indexOf(item.id) !== -1,
                    }"
                  >
                    <i class="el-icon-success"></i>
                  </div>

                  <div class="icon">
                    <svg
                      class="icon-svg aui-sidebar__menu-icon"
                      aria-hidden="true"
                    >
                      <use :xlink:href="`#${item.icon}`" />
                    </svg>
                  </div>
                  <p>{{ item.name }}</p>
                </div>
              </div>
            </div>
          </div>

          <div class="operate">
            <el-button round @click="showedFuncPanel = false">返回</el-button>
            <el-button type="primary" round @click="editFuncList"
              >确认</el-button
            >
          </div>
        </div>
      </div>
    </div>

    <div v-if="currentPage == 'yujing'">
      <div class="m-crumbs">
        <a @click="currentPage = 'chaxun'">社区查询</a>
        <i> > </i>
        <span>人员预警</span>
      </div>

      <warning-list
        :buildingId="currentNoticeBuildingId"
        :configId="currentNoticeConfigId"
      />
    </div>

    <people-more
      v-if="showedPeopleMoreInfo && currentPepeleId"
      :userId="currentPepeleId"
      :gridName="currentPepeleGridName"
      @close="showedPeopleMoreInfo = false"
    />

    <!-- 修改弹出框 -->
    <el-dialog
      :visible.sync="showedFangwuInfo"
      :close-on-click-modal="false"
      :close-on-press-escape="false"
      title="房屋详情"
      width="900px"
      @closed="showedFangwuInfo = false"
    >
      <fangwu-info
        ref="fangwu_info"
        @dialogCancle="showedFangwuInfo = false"
      ></fangwu-info>
    </el-dialog>

    <!-- 修改弹出框 -->
    <el-dialog
      :visible.sync="showedXuqiuInfo"
      :close-on-click-modal="false"
      :close-on-press-escape="false"
      title="需求详情"
      width="900px"
      @closed="showedXuqiuInfo = false"
    >
      <xuqiu-info
        ref="xuqiu_info"
        @dialogCancle="showedXuqiuInfo = false"
      ></xuqiu-info>
    </el-dialog>
  </div>
</template>

<script>
import { requestPost } from "@/js/dai/request";
import barChart from "@/views/modules/shequ/cpts/bar-chart";
import warningList from "@/views/modules/warning/index";
import { mapGetters } from "vuex";
import nextTick from "dai-js/tools/nextTick";
import peopleMore from "@/views/modules/shequ/cpts/people-more";
import fangwuInfo from "@/views/modules/shequ/cpts/fangwu-info";
import xuqiuInfo from "@/views/modules/shequ/cpts/xuqiu-info";
import scrollNotice from "@/views/modules/shequ/cpts/scroll-notice";

export default {
  components: {
    barChart,
    peopleMore,
    fangwuInfo,
    xuqiuInfo,
    warningList,
    scrollNotice,
  },

  data() {
    return {
      searchStatus: "ini", //ing over
      searchData: {
        type: "jumin",
        keyword: "",
      },

      typePlaceholder: {
        jumin: "请输入姓名或电话或身份证号",
        fangwu: "请输入“小区名称，楼号”，如：亿联小区，1号楼",
        xuqiu: "请输入需求人或需求内容或服务方",
      },

      selectedFuncIdList: [],

      funcList: [
        // {
        //   url: '',
        //   menuId: '',
        //   menuName: '',
        //   icon: '',
        // }
      ],

      showedFuncPanel: false,

      warningChart: {
        loading: false,
        total: "",
        list: [],
      },

      warningTb: {
        pageNo: 1,
        pageSize: window.localStorage.getItem("pageSize") || 20,
        total: 1,
        list: [],
      },

      searchJumin: {
        header: [],
        pageNo: 1,
        pageSize: window.localStorage.getItem("pageSize") || 20,
        total: 1,
        list: [],
      },

      searchFangwu: {
        pageNo: 1,
        pageSize: window.localStorage.getItem("pageSize") || 20,
        total: 1,
        list: [],
      },

      searchXuqiu: {
        header: [
          {
            label: "状态",
            align: "center",
            columnName: "statusName",
            width: "120",
            options: [
              {
                label: "待处理",
                value: "pending",
              },
              {
                label: "已取消",
                value: "canceled",
              },
              {
                label: "已派单",
                value: "assigned",
              },
              {
                label: "已接单",
                value: "have_order",
              },
              {
                label: "已完成",
                value: "finished",
              },
            ],
          },
          {
            label: "所属网格",
            columnName: "gridName",
            align: "center",
            width: "",
            options: [],
          },
          {
            label: "需求类型",
            columnName: "categoryName",
            align: "center",
            width: "",
            options: [],
          },
          {
            label: "需求内容",
            columnName: "content",
            align: "center",
            width: "",
            options: [],
          },
          {
            label: "上报类型",
            columnName: "reportTypeName",
            align: "center",
            width: "120",
            options: [
              {
                label: "社区帮办",
                value: "community",
              },
              {
                label: "楼长帮办",
                value: "building_caption",
              },
              {
                label: "党员帮办",
                value: "party",
              },
              {
                label: "自身上报",
                value: "self_help",
              },
            ],
          },
          {
            label: "上报人",
            columnName: "reportUserName",
            align: "center",
            width: "120",
            options: [],
          },
          {
            label: "上报时间",
            columnName: "reportTime",
            align: "center",
            width: "180",
            options: [],
          },
          {
            label: "需求人",
            columnName: "demandUserName",
            align: "center",
            width: "80",
            options: [],
          },
          {
            label: "服务方",
            columnName: "serviceShowName",
            align: "center",
            width: "120",
            options: [],
          },
          {
            label: "服务时间",
            columnName: "wantServiceTime",
            align: "center",
            width: "180",
            options: [],
          },
        ],
        pageNo: 1,
        pageSize: window.localStorage.getItem("pageSize") || 20,
        total: 1,
        list: [],
      },

      // 显示人员详情
      showedPeopleMoreInfo: false,

      currentPepeleId: "",
      currentPepeleGridName: "",

      // 显示人员详情
      showedFangwuInfo: false,
      showedXuqiuInfo: false,

      noticeList: [
        // {
        //   configId: "20211210153859_f070ac2dd01129da5d9a9f2329fbd9ea1",
        //   noticeContent: "市北区-抚顺第二网格中南国际2号楼低保人员超出预警!",
        // },
      ],

      currentCategoryCode: "",

      currentPage: "chaxun", //查询 预警
      currentNoticeBuildingId: "",
      currentNoticeConfigId: "",
    };
  },
  computed: {
    selectedFuncList() {
      const {
        selectedFuncIdList,
        $store: {
          state: { sidebarMenuList },
        },
      } = this;
      let obj = {};
      sidebarMenuList.forEach((menu) => {
        if (selectedFuncIdList.indexOf(menu.id) !== -1) {
          obj[menu.id] = {
            menuId: menu.id,
            menuName: menu.name,
            icon: menu.icon,
            url: menu.url,
          };
        }
        if (menu.children && menu.children.length > 0) {
          menu.children.forEach((item) => {
            if (selectedFuncIdList.indexOf(item.id) !== -1) {
              obj[item.id] = {
                menuId: item.id,
                menuName: item.name,
                icon: item.icon,
                url: item.url,
              };
            }
          });
        }
      });
      return selectedFuncIdList.map((id) => obj[id]);
    },
    maxTableHeight() {
      // return this.clientHeight - 450;
      return 420;
    },
    ...mapGetters(["clientHeight"]),
  },
  watch: {
    "searchData.keyword": function (val) {
      if (val == "") {
        this.searchStatus = "ini";
      }
    },
  },
  mounted() {
    this.getApiData();
    console.log(
      "dynamicMenuRoutes----------------------------",
      this.$store.state.sidebarMenuList
    );
  },
  methods: {
    changeCategoryCode({ code }) {
      this.currentCategoryCode = code || "";

      this.warningTb.pageNo = 1;
      this.getWarningTb();
    },

    computedWidth(label) {
      const wd = 20 * label.length;
      return wd > 80 ? wd : 80;
    },
    handleFilterSpan(row, item) {
      let _val = "";
      if (item.options && item.options.length > 0) {
        item.options.forEach((n) => {
          if (n.value === row[item.columnName]) _val = n.label;
        });
      }
      return _val || row[item.columnName];
    },

    handleClickSearchBtn() {
      const {
        searchData: { type, keyword },
      } = this;
      if (!keyword) return this.$message.error("请输入搜索条件");
      if (type == "jumin") {
        this.searchJumin.pageNo = 1;
        this.searchJumin.total = 0;
        this.getSearchJumin();
      } else if (type == "fangwu") {
        this.searchFangwu.pageNo = 1;
        this.searchFangwu.total = 0;
        this.getSearchFangwu();
      } else if (type == "xuqiu") {
        this.searchXuqiu.pageNo = 1;
        this.searchXuqiu.total = 0;
        this.getSearchXuqiu();
      }
      this.searchStatus = "ing";
    },

    handleSizeChangeWarning(val) {
      console.log(`每页 ${val} 条`);
      this.warningTb.pageSize = val;
      window.localStorage.setItem("pageSize", val);
      this.getWarningTb();
    },
    handleCurrentChangeWarning(val) {
      console.log(`当前页: ${val}`);
      this.warningTb.pageNo = val;
      this.getWarningTb();
    },
    async handleWatchWarning(rowIndex) {
      let item = this.warningTb.list[rowIndex];
      this.currentPepeleId = item.userId;
      this.currentPepeleGridName = item.gridName;
      await nextTick();
      this.showedPeopleMoreInfo = true;
    },

    handleSizeChangeSearchJumin(val) {
      console.log(`每页 ${val} 条`);
      this.searchJumin.pageSize = val;
      window.localStorage.setItem("pageSize", val);
      this.getSearchJumin();
    },
    handleCurrentChangeSearchJumin(val) {
      console.log(`当前页: ${val}`);
      this.searchJumin.pageNo = val;
      this.getSearchJumin();
    },
    async handleWatchSearchJumin(rowIndex) {
      let item = this.searchJumin.list[rowIndex];
      this.currentPepeleId = item.icResiUserId;
      this.currentPepeleGridName = item.GRID_ID;
      await nextTick();
      this.showedPeopleMoreInfo = true;
    },

    handleSizeChangeSearchFangwu(val) {
      console.log(`每页 ${val} 条`);
      this.searchFangwu.pageSize = val;
      window.localStorage.setItem("pageSize", val);
      this.getSearchFangwu();
    },
    handleCurrentChangeSearchFangwu(val) {
      console.log(`当前页: ${val}`);
      this.searchFangwu.pageNo = val;
      this.getSearchFangwu();
    },
    async handleWatchSearchFangwu(row) {
      this.showedFangwuInfo = true;
      await nextTick();
      this.$refs.fangwu_info.initForm("detail", row);
    },

    handleSizeChangeSearchXuqiu(val) {
      console.log(`每页 ${val} 条`);
      this.searchXuqiu.pageSize = val;
      window.localStorage.setItem("pageSize", val);
      this.getSearchXuqiu();
    },
    handleCurrentChangeSearchXuqiu(val) {
      console.log(`当前页: ${val}`);
      this.searchXuqiu.pageNo = val;
      this.getSearchXuqiu();
    },
    async handleWatchSearchXuqiu(row) {
      this.showedXuqiuInfo = true;
      await nextTick();
      this.$refs.xuqiu_info.initForm("detail", row);
    },

    handleClickFunc(menu) {
      const menuId = menu.menuId;
      var route = window.SITE_CONFIG["dynamicMenuRoutes"].filter(
        (item) => item.meta.menuId === menuId
      )[0];
      if (route) {
        this.$router.push({ name: route.name });
      }
    },

    getApiData() {
      this.getFuncList();
      this.getWarningList();
      this.getWarningTb();
      this.getSearchJuminHeader();
      this.getNoticeList();
    },

    selectFuncItem(id) {
      let index = this.selectedFuncIdList.indexOf(id);
      if (index === -1) {
        this.selectedFuncIdList.push(id);
      } else {
        this.selectedFuncIdList.splice(index, 1);
      }
    },

    toNoticeInfo(item) {
      console.log(item);
      this.currentPage = "yujing";
      if (item) {
        this.currentNoticeBuildingId = item.buildingId;
        this.currentNoticeConfigId = item.configId;
      } else {
        this.currentNoticeBuildingId = "";
        this.currentNoticeConfigId = "";
      }
    },

    async getNoticeList() {
      const url = "/epmetuser/statsresiwarn/queryuserwarnnotice";
      const { data, code, msg } = await requestPost(url, {
        agencyId: this.$store.state.user.agencyId,
      });
      if (code === 0) {
        this.noticeList = data || [];
      } else {
        // return this.$message.error("网络错误");
      }
    },

    async getSearchJuminHeader() {
      const url = "/oper/customize/icform/tableheaders";
      const { data, code, msg } = await requestPost(url, {
        formCode: "resi_base_info",
      });
      if (code === 0) {
        console.log("居民表格header请求成功！！！！！！！！！！！！！！");
        this.searchJumin.header = data;
      } else {
        return this.$message.error("网络错误");
      }
    },

    async getSearchXuqiu() {
      const url = "/heart/userdemand/search";
      const {
        searchData: { keyword },
        searchXuqiu: { pageSize, pageNo },
      } = this;
      const { data, code, msg } = await requestPost(url, {
        keyword,
        pageSize,
        pageNo,
      });
      if (code === 0) {
        console.log("列表请求成功！！！！！！！！！！！！！！");
        this.searchXuqiu.total = data.total || 0;
        this.searchXuqiu.list = data.list
          ? data.list.map((item) => {
              return item;
            })
          : [];
      } else {
      }
    },

    async getSearchJumin() {
      const url = "/epmetuser/icresiuser/search";
      const {
        searchData: { keyword },
        searchJumin: { pageSize, pageNo },
      } = this;
      const { data, code, msg } = await requestPost(url, {
        keyword,
        pageSize,
        pageNo,
      });
      if (code === 0) {
        console.log("列表请求成功！！！！！！！！！！！！！！");
        this.searchJumin.total = data.total || 0;
        this.searchJumin.list = data.list
          ? data.list.map((item) => {
              return item;
            })
          : [];
      } else {
      }
    },

    async getSearchFangwu() {
      const url = "/gov/org/house/search";
      const {
        searchData: { keyword },
        searchFangwu: { pageSize, pageNo },
      } = this;
      const { data, code, msg } = await requestPost(url, {
        keyword,
        pageSize,
        pageNo,
      });
      if (code === 0) {
        console.log("列表请求成功！！！！！！！！！！！！！！");
        this.searchFangwu.total = data.total || 0;
        this.searchFangwu.list = data.list
          ? data.list.map((item) => {
              return item;
            })
          : [];
      } else {
      }
    },

    async getWarningTb() {
      const url = "/epmetuser/icresiuser/personwarn/rightlist";
      const {
        warningTb: { pageSize, pageNo },
      } = this;
      const { data, code, msg } = await requestPost(url, {
        pageSize,
        pageNo,
        categoryCode: this.currentCategoryCode,
      });
      if (code === 0) {
        console.log("列表请求成功！！！！！！！！！！！！！！");
        this.warningTb.total = data.total || 0;
        this.warningTb.list = data.list
          ? data.list.map((item) => {
              item.typeName = item.type.join("、");
              return item;
            })
          : [];
      } else {
      }
    },

    //加载组织数据
    async getWarningList() {
      const url = "/epmetuser/icstatsresiwarn/personwarn/leftpie";
      let params = {};

      const { data, code, msg } = await requestPost(url, params);

      if (code === 0) {
        this.warningChart.loading = true;
        this.warningChart.total = data.total;
        this.warningChart.list = data.list.map((item) => {
          return {
            code: item.typeCode,
            name: item.typeName,
            count: item.typeCount,
            const: "const",
          };
        });
      } else {
        this.$message.error(msg);
      }
    },

    //加载组织数据
    async getFuncList() {
      const url = "/gov/access/icoftenusefunction/oftenusefunctionlist";
      let params = {};

      const { data, code, msg } = await requestPost(url, params);

      if (code === 0) {
        this.funcList = data || [];
        this.selectedFuncIdList = this.funcList.map((item) => item.menuId);
      } else {
        this.$message.error(msg);
      }
    },

    //加载组织数据
    async editFuncList() {
      const url = "/gov/access/icoftenusefunction/addoftenusefunction";
      const { selectedFuncIdList } = this;
      let params = selectedFuncIdList.map((menuId, sort) => {
        return { menuId, sort };
      });

      const { data, code, msg } = await requestPost(url, params);

      if (code === 0) {
        this.$message.success("修改成功");
        this.showedFuncPanel = false;
        this.getFuncList();
      } else {
        this.$message.error(msg);
      }
    },
  },
};
</script>

<style lang="scss" src="@/assets/scss/modules/search.scss" scoped></style>
