<template>
  <div class="main-box">
    <div class="treeBox">
      <Trre ref="trre"
        @changeSsbm="changeSsbm"
        width="300px"
        placeholder="管理部门ID"
        clearable
        filterable
        :isBmId="true"
        v-model="listQuery.ssbmdm"
        @dialogBox="dialogBox"
        @orgList="orgList"
      />
    </div>
    <div class="tableCnt" v-if="dialog">
      <el-form :model="searchConfiger" :inline="true">
        <el-form-item label="起止时间">
          <el-date-picker
            v-model="searchConfiger.queryTime"
            unlink-panels
            type="daterange"
            range-separator="至"
            start-placeholder="开始时间"
            end-placeholder="结束时间"
            format="YYYY-MM-DD"
            value-format="YYYY-MM-DD"
          />
        </el-form-item>
        <el-form-item>
          <el-button @click="handleFilter"> 查询 </el-button>
          <el-button @click="reset()"> 重置 </el-button>
        </el-form-item>
      </el-form>
      <div :style="{ height: tableHeight + 'px' }" class="tjbox" v-loading="loading">
        <div class="box" v-for="(item, index) in EchartsData" :key="index">
          <div class="ItemTitle">{{ item.title }}</div>
          <div class="barEcharts">
            <BarEcharts
              v-if="item.data.length > 0"
              :data="item.data"
              :Xdata="Xdata"
            />
          </div>
        </div>
      </div>
      <div class="map">
        <GdMap />
      </div>
    </div>
    <div v-else><editAddForm :dialog="dialog"  :orgData="orgData" :str="title" @dialogBox="dialogBox" @modegenx="modegenx" /></div>
  </div>
</template>

<script setup>
import * as MOSTY from "@/components/MyComponents/index";
import GdMap from "@/components/GdMap/index.vue";
import { getjltj, getqxjtj, getwctj, getcctj } from "@/api/file.js";
import BarEcharts from "@/views/backOfficeSystem/qwManagement/components/barEcharts.vue";
import editAddForm from "./editAddForm.vue";
import Trre from "./trre.vue";
import emitter from "@/utils/eventBus.js";
import { ElMessage } from "element-plus";
// import Search from "@/components/aboutTable/Search.vue";
import {
  ref,
  reactive,
  computed,
  watch,
  onMounted,
  getCurrentInstance,
  onUnmounted
} from "vue";
const { proxy } = getCurrentInstance();
const deptId = JSON.parse(localStorage.getItem("deptId"));
const searchConfiger = reactive({
  queryTime: []
});
const {
  D_JCGL_JYCL_JYJTYTLB,
  D_JCGL_JYCL_JYJTFWLB,
  D_JCGL_JYCL_JYJTGJLB,
  D_BZ_RYJZLB,
  D_JCGL_JYCL_HPYSLB
} = proxy.$dict(
  "D_JCGL_JYCL_JYJTYTLB",
  "D_JCGL_JYCL_JYJTFWLB",
  "D_JCGL_JYCL_JYJTGJLB",
  "D_BZ_RYJZLB",
  "D_JCGL_JYCL_HPYSLB"
);
const listQuery = ref({ ssbmdm: "", kssj: "", jssj: "" });
const changeSsbm = (val) => {
  listQuery.value.id = val.id;
  ArrData();
};
const loading=ref(false)
const Xdata = ref(["民警", "辅警"]);
const EchartsData = ref([]);
const ArrData = async () => {
  loading.value=true
  const pormes = {
    id: listQuery.value.id,
    kssj: listQuery.value.kssj,
    jssj: listQuery.value.jssj,
  };
  try{
  EchartsData.value = [];
    const jltj = await getjltj(pormes);
const qxjtj = await getqxjtj(pormes);
const cctj = await getcctj(pormes);
EchartsData.value.push({
  title: "总警力",
  data: [
    {
      name: "总警力",
      data: [jltj.mjsl, jltj.fjsl],
      type: "bar",
      barWidth: 10
    }
  ]
});
EchartsData.value.push({
  title: "在岗数",
  data: [
    {
      name: "在岗数",
      data: [jltj.mjsl-cctj.mjsl,jltj.fjsl- cctj.fjsl-qxjtj.fjsl],
      type: "bar",
      barWidth: 10
    }
  ]
});
EchartsData.value.push({
  title: "请休假",
  data: [
    {
      name: "请休假",
      data: [qxjtj.mjsl, qxjtj.fjsl],
      type: "bar",
      barWidth: 10
    }
  ]
});
EchartsData.value.push({
  title: "出差",
  data: [
    { name: "出差", data: [cctj.mjsl, cctj.fjsl], type: "bar", barWidth: 10 }
  ]
});
  }catch{}finally{
    loading.value=false
  }

};

// ArrData();
const handleFilter = () => {
  if (searchConfiger.queryTime.length > 0) {
    listQuery.value.jssj = searchConfiger.queryTime[1];
    listQuery.value.kssj = searchConfiger.queryTime[0];
  } else {
    listQuery.value.jssj = "";
    listQuery.value.kssj = "";
  }
  ArrData();
};
const reset = () => {
  searchConfiger.queryTime = [];
};
onMounted(() => {
  tabHeightFn();
});
const tableHeight = ref();
const tabHeightFn = () => {
  tableHeight.value = window.innerHeight -520 - 144;
  console.log(tableHeight.value);
  window.onresize = function () {
    tabHeightFn();
  };
};
const dialog = ref(true);
const orgData=ref()
const title=ref()
const dialogBox = (val,bool,str) => {
  orgData.value=val
  dialog.value =bool;
  title.value=str
  
};
const orgList=(val)=>{
if(val.length&&val[0].orgCode=='510300000000'){
  listQuery.value.id=val[0].id
  ArrData();
}
 const a= val.filter(item=>item.jd&&item.wd)
   a.map(item=>{
    emitter.emit("addPointArea", {
      coords: [{ jd: item.jd, wd:item.wd ,jzMc:item.orgName}],
      showTitle:true,
      icon:item.bmtg?`/mosty-api/mosty-base/minio/image/download/${item.bmtg}`:require("@/assets/point/jwz.png"),
      flag: "zqd"
    });
    return  { jd: item.jd, wd:item.wd };
   })
}
const trre=ref()
const modegenx=()=>{
  trre.value.modegenx()
}
</script>

<style lang="scss" scoped>
@import "~@/assets/css/layout.scss";
@import "~@/assets/css/element-plus.scss";

.main-box {
  display: flex;

  .tableCnt {
    flex: 1;
    margin-left: 10px;
    font-size: 16px;

    .tjbox {
      width: 100%;
      display: flex;
      flex-wrap: wrap;
      justify-content: space-between;

      .box {
        width: calc(99% / 4);
        height: 300px;
        border: 1px solid #000;

        .title {
          font-size: 18x;
        }
      }
    }
  }
}

.map {
  height: 520px;
  width: 100%;
  // height: calc(100% - 370px);
}

.barEcharts {
  height: calc(100% - 30px);
}

.ItemTitle {
  display: flex;
  justify-content: space-between;
  align-items: center;
  height: 30px;
  background: #f4f4f4;
  padding: 0 14px;
  box-sizing: border-box;

  .btn {
    padding: 2px 6px;
    color: #fff;
    background: #01c2ff;
    border-radius: 4px;
    font-size: 14px;
    cursor: pointer;
  }
}
</style>
