<template>
  <div class="p-2">
    <!--查询区域-->
    <div class="jeecg-basic-table-form-container">
      <a-form ref="formRef" @keyup.enter.native="reload" :model="queryParam" :label-col="labelCol" :wrapper-col="wrapperCol">
        <a-row :gutter="24">
          <a-col :lg="6">
            <a-form-item name="sn">
              <template #label><span title="同步类型">表号</span></template>
              <a-input placeholder="请输入同步类型" v-model:value="queryParam.sn" allow-clear ></a-input>
            </a-form-item>
          </a-col>
          <a-col :xl="6" :lg="7" :md="8" :sm="24">
                <a-button type="primary" preIcon="ant-design:search-outlined" @click="reload">查询</a-button>
                <a-button type="primary" preIcon="ant-design:reload-outlined" @click="searchReset" style="margin-left: 8px">重置</a-button>
          </a-col>
        </a-row>
      </a-form>
    </div>
    <a-row>
      <a-col v-for="(item,index) in tableData.records" :key="index" :xs="24" :sm="24" :md="12" :lg="12" :xl="8" :xxl="6" style="padding: 8px;">
        <a-card style="width: 100%;border-radius: 8px;">
          <template #title >
            <div class="cardTitle">
              <a-row>
                <a-col :span="12">
                  <span style="margin-left:15px;font-size:14px;">表号：{{item.sn}}</span>
                </a-col>
                <a-col :span="12" style="text-align: right;">
                  <span style="margin-right:15px;font-size:14px;">{{item.status=='0'?'在线':'离线'}}</span>
                </a-col>
              </a-row>
            </div>
          </template>
            <p>
              <span>护理单元名称：{{item.nuName?item.nuName:'未配置'}}</span>
            </p>
            <p>
              <span>上次抄表时间：{{item.readTime?item.readTime:'未抄表'}}</span>
            </p>
            <p style="margin-top: 20px;">
              <a-row>
                <a-col :span="12">
                  <span><Statistic title="温度" :value="item.temperature?item.temperature:'无'" style="text-align:center;" /></span>
                </a-col>
                <a-col :span="12">
                  <span><Statistic title="湿度" :value="item.humidity?item.humidity:'无'" style="text-align:center;" /></span>
                </a-col>
              </a-row>
            </p>
            <a-divider  />
            <p style="text-align:center;">
                <span>
                  <a @click="handleRead(item)">抄表</a>
                  <a-divider type="vertical" />
                  <a @click="handleEdit(item)">配置</a>
                  <a-divider type="vertical" />
                  <a @click="showApiLog(item)">日志</a>
                </span>
            </p>
        </a-card>
      </a-col>
    </a-row>
    <div
      style="float:right;bottom: 20px;z-index: 999;padding: 8px 16px;border-radius: 4px;display: flex;align-items: center;">
      <span style="margin-right: 10px;">共 {{ tableData.total }} 条数据</span>
      <Pagination showLessItems v-model:current="pageParams.pageNo" :pageSize="pageParams.pageSize" size="small"
        show-quick-jumper :total="tableData.total" @change="reload" />
    </div>
    <!--引用表格-->
    <ApiLogAlarmModal ref="apiLogAlarmModal"></ApiLogAlarmModal>
    <DeviceInfoDrawer @register="registerDrawer" @success="handleSuccess" />
  </div>
</template>

<script lang="ts" name="iot-nuIotRegionInfo" setup>
  import {reactive, ref,h,onMounted} from 'vue';
  import { defHttp } from '/@/utils/http/axios';
  import { Statistic } from 'ant-design-vue';
  import {Modal} from "ant-design-vue";
  import {list, eleReset, eleControl, eleRead } from './wsdDevice.api';
  import {deleteDevice, updateDeviceRealTime} from './humid.api';
import { Pagination } from 'ant-design-vue';
  
  import ApiLogAlarmModal from './components/ApiLogAlarmModal.vue'
    import DeviceInfoDrawer from "./components/DeviceInfoDrawer.vue";
import { set } from 'lodash-es';
  import {useDrawer} from "@/components/Drawer";

  //注册drawer
  const [registerDrawer, { openDrawer }] = useDrawer();
  const formRef = ref();
  const queryParam = reactive<any>({});
  const apiLogAlarmModal = ref();
  const tableData = ref<any>([]);
const pageParams = ref({ pageNo: 1, pageSize: 8 })


 const labelCol = reactive({
    xs:24,
    sm:4,
    xl:6,
    xxl:4
  });
  const wrapperCol = reactive({
    xs: 24,
    sm: 20,
  });

  /**
   * 重置
   */
  function searchReset() {
    formRef.value.resetFields();
    //刷新数据
    reload();
  }
  // 抄表
  async function handleRead(record) {
    const params = {
      'sn' : record.sn,
    };
    await updateDeviceRealTime(params);
    setTimeout(() => {
      reload();
    }, 4000);
  }
   
  // 编辑
  async function handleEdit(record) {
    record["isUpdate"] = true;
    console.log(record);
    openDrawer(true, {
      record,
      isUpdate: true,
      showFooter: true,
      tenantSaas: false,
    });
  }
  /**
   * 查看api日志
   */
  function showApiLog(record){
    apiLogAlarmModal.value.disableSubmit = true;
    apiLogAlarmModal.value.showLogAlarm(record);
  }

  function reload(){
    queryParam.pageSize = pageParams.value.pageSize;
    queryParam.pageNo = pageParams.value.pageNo;
    defHttp.get({url: '/iot/yiweilian/humidDevice/list',params:queryParam}).then(res => {
      console.log("🚀 ~ defHttp.get ~ res:", res)
      tableData.value = res;
    });
  }
  
  // 自动请求并暴露内部方法
  onMounted(() => {
    reload();
  });


  
</script>
<style lang="less" scoped>
.cardTitle{
  background: #1ea0fa;
  width: 100%;
  margin: -28px -24px;
  padding-top: 15px;
  border-radius: 5px 5px 0px 0px;
  color: white;
  height: 55px;
  display: block;
  position: absolute;
}
</style>
