<template>
    <el-card class="remoteTitle">
        <div class="card-content">
            <div class="demo-image">
                <div class="block">
                    <span class="demonstration">通讯异常</span>
                    <el-icon><Connection color="rgb(255,0,0)"/></el-icon>
                </div>
                <div class="block">
                    <span class="demonstration">读写失败</span>
                    <el-icon><Failed color="rgb(255,0,0)"/></el-icon>
                </div>
                <div class="block">
                    <span class="demonstration">读写成功</span>
                    <el-icon><CircleCheckFilled color="rgb(0,255,0)"/></el-icon>
                </div>
            </div>
            <div class="demo-button">
                <el-button type="primary" size="small" :loading="isLoading" @click="ReadAllStatus">读取全部</el-button>
                <el-button type="primary" size="small" :loading="isLoading" @click="WriteAllStatus">写入全部</el-button>
            </div>
        </div>
    </el-card>
    <el-loading :visible="isLoading" text="加载中..."></el-loading>
    <div class="remoteContent">
      <el-table
        ref="tableRef"
        v-model:checked="selectedRows" 
        @selection-change="handleSelectionChange" 
        @row-click="handleRowClick"
        style="width: 700px;"
        show-header="true" 
        :height="tableHeight"
        :cell-style="setCellStyle" 
        border 
        highlight-current-row 
        :header-cell-style="setHeaderCellStyle"  
        :data="visibleData" 
        v-loading="isLoading" 
        :row-key="getRowId"
        element-loading-text="数据加载中......"
        :element-loading-spinner="svg"
        element-loading-svg-view-box="-10, -10, 50, 50"
        element-loading-background="rgba(122, 122, 122, 0.8)"
        >
        <el-table-column type="selection" width="55px" />
        <el-table-column prop="rowIndex" label="序号" width="60px" />
        <el-table-column prop="transferId" label="机组编号" v-if="false" />
        <el-table-column prop="transferName" label="换热机组" />
        <el-table-column label="状态" width="60px">
            <template #default="{ row }">
                <el-icon v-if="row.transferStatus === 0"></el-icon>
                <el-icon v-if="row.transferStatus === 1"><CircleCheckFilled color="rgb(0,255,0)"/></el-icon>
                <el-icon v-if="row.transferStatus === 2"><Failed color="rgb(255,0,0)"/></el-icon>
                <el-icon v-if="row.transferStatus === 3"><Connection color="rgb(255,0,0)"/></el-icon>
            </template>
        </el-table-column>
      </el-table>
      <div :style="{ height: tableHeight + 'px', paddingTop: 10 + 'px' }" style="width: 100%; margin: 0 5px; display:flex; flex-direction: column;  align-items: center; vertical-align: top;">
          <h3 >{{ forms.transferName }}</h3>
          <el-form :model="forms" label-width="180px" :style="{ height: (tableHeight-80) + 'px'}" style="overflow-y: auto; width: 100%;">
              <el-form-item label="夜间降温1:">
                <el-col :span="1.5" class="text-center">
                    <span class="text-gray-500">温度:</span>
                </el-col>
                <el-col :span="4">
                    <el-input v-model="forms.nightCooling1" style="width: 80px;" v-float-number/> ℃
                </el-col>
                <el-col :span="0.9" class="text-center">
                    <span class="text-gray-500">时</span>
                </el-col>
                <el-col :span="3">
                    <el-select v-model="forms.nightOutdoorStartHour1" placeholder="起始时" size="small" :disabled="forms.nightOutdoorStartHour1 === null">
                            <el-option
                            v-for="item in hour"
                            :key="item"
                            :label="item"
                            :value="item"
                            />
                    </el-select>
                </el-col>
                <el-col :span="0.9" class="text-center">
                    <span class="text-gray-500">分</span>
                </el-col>
                <el-col :span="3">
                    <el-select v-model="forms.nightOutdoorStartMin1" placeholder="起始分" size="small" :disabled="forms.nightOutdoorStartMin1 === null">
                            <el-option
                            v-for="item in min"
                            :key="item"
                            :label="item"
                            :value="item"
                            />
                    </el-select>
                </el-col>
                <el-col :span="0.9" class="text-center">
                    <span class="text-gray-500">时</span>
                </el-col>
                <el-col :span="3">
                    <el-select v-model="forms.nightOutdoorEndHour1" placeholder="结束时" size="small" :disabled="forms.nightOutdoorEndHour1 === null">
                        <el-option
                        v-for="item in hour"
                        :key="item"
                        :label="item"
                        :value="item"
                        />
                    </el-select>
                </el-col>
                <el-col :span="0.9" class="text-center">
                    <span class="text-gray-500">分</span>
                </el-col>
                <el-col :span="3">
                    <el-select v-model="forms.nightOutdoorEndMin1" placeholder="结束分" size="small" :disabled="forms.nightOutdoorEndMin1 === null">
                        <el-option
                        v-for="item in min"
                        :key="item"
                        :label="item"
                        :value="item"
                        />
                    </el-select>
                </el-col>
              </el-form-item>
              <el-form-item label="夜间降温2:">
                <el-col :span="1.5" class="text-center">
                    <span class="text-gray-500">温度:</span>
                </el-col>
                <el-col :span="4">
                    <el-input v-model="forms.nightCooling2" style="width: 80px;" v-float-number/> ℃
                </el-col>
                <el-col :span="0.9" class="text-center">
                    <span class="text-gray-500">时</span>
                </el-col>
                <el-col :span="3">
                    <el-select v-model="forms.nightOutdoorStartHour2" placeholder="起始时" size="small" :disabled="forms.nightOutdoorStartHour2 === null">
                            <el-option
                            v-for="item in hour"
                            :key="item"
                            :label="item"
                            :value="item"
                            />
                    </el-select>
                </el-col>
                <el-col :span="0.9" class="text-center">
                    <span class="text-gray-500">分</span>
                </el-col>
                <el-col :span="3">
                    <el-select v-model="forms.nightOutdoorStartMin2" placeholder="起始分" size="small" :disabled="forms.nightOutdoorStartMin2 === null">
                            <el-option
                            v-for="item in min"
                            :key="item"
                            :label="item"
                            :value="item"
                            />
                    </el-select>
                </el-col>
                <el-col :span="0.9" class="text-center">
                    <span class="text-gray-500">时</span>
                </el-col>
                <el-col :span="3">
                    <el-select v-model="forms.nightOutdoorEndHour2" placeholder="结束时" size="small" :disabled="forms.nightOutdoorEndHour2 === null">
                        <el-option
                        v-for="item in hour"
                        :key="item"
                        :label="item"
                        :value="item"
                        />
                    </el-select>
                </el-col>
                <el-col :span="0.9" class="text-center">
                    <span class="text-gray-500">分</span>
                </el-col>
                <el-col :span="3">
                    <el-select v-model="forms.nightOutdoorEndMin2" placeholder="结束分" size="small" :disabled="forms.nightOutdoorEndMin2 === null">
                        <el-option
                        v-for="item in min"
                        :key="item"
                        :label="item"
                        :value="item"
                        />
                    </el-select>
                </el-col>
              </el-form-item>
              <el-form-item label="夜间降温3:">
                <el-col :span="1.5" class="text-center">
                    <span class="text-gray-500">温度:</span>
                </el-col>
                <el-col :span="4">
                    <el-input v-model="forms.nightCooling3" style="width: 80px;" v-float-number/> ℃
                </el-col>
                <el-col :span="0.9" class="text-center">
                    <span class="text-gray-500">时</span>
                </el-col>
                <el-col :span="3">
                    <el-select v-model="forms.nightOutdoorStartHour3" placeholder="起始时" size="small" :disabled="forms.nightOutdoorStartHour3 === null">
                            <el-option
                            v-for="item in hour"
                            :key="item"
                            :label="item"
                            :value="item"
                            />
                    </el-select>
                </el-col>
                <el-col :span="0.9" class="text-center">
                    <span class="text-gray-500">分</span>
                </el-col>
                <el-col :span="3">
                    <el-select v-model="forms.nightOutdoorStartMin3" placeholder="起始分" size="small" :disabled="forms.nightOutdoorStartMin3 === null">
                            <el-option
                            v-for="item in min"
                            :key="item"
                            :label="item"
                            :value="item"
                            />
                    </el-select>
                </el-col>
                <el-col :span="0.9" class="text-center">
                    <span class="text-gray-500">时</span>
                </el-col>
                <el-col :span="3">
                    <el-select v-model="forms.nightOutdoorEndHour3" placeholder="结束时" size="small" :disabled="forms.nightOutdoorEndHour3 === null">
                        <el-option
                        v-for="item in hour"
                        :key="item"
                        :label="item"
                        :value="item"
                        />
                    </el-select>
                </el-col>
                <el-col :span="0.9" class="text-center">
                    <span class="text-gray-500">分</span>
                </el-col>
                <el-col :span="3">
                    <el-select v-model="forms.nightOutdoorEndMin3" placeholder="结束分" size="small" :disabled="forms.nightOutdoorEndMin3 === null">
                        <el-option
                        v-for="item in min"
                        :key="item"
                        :label="item"
                        :value="item"
                        />
                    </el-select>
                </el-col>
              </el-form-item>
              <el-form-item label="夜间降温4:">
                <el-col :span="1.5" class="text-center">
                    <span class="text-gray-500">温度:</span>
                </el-col>
                <el-col :span="4">
                    <el-input v-model="forms.nightCooling4" style="width: 80px;" v-float-number/> ℃
                </el-col>
                <el-col :span="0.9" class="text-center">
                    <span class="text-gray-500">时</span>
                </el-col>
                <el-col :span="3">
                    <el-select v-model="forms.nightOutdoorStartHour4" placeholder="起始时" size="small" :disabled="forms.nightOutdoorStartHour4 === null">
                            <el-option
                            v-for="item in hour"
                            :key="item"
                            :label="item"
                            :value="item"
                            />
                    </el-select>
                </el-col>
                <el-col :span="0.9" class="text-center">
                    <span class="text-gray-500">分</span>
                </el-col>
                <el-col :span="3">
                    <el-select v-model="forms.nightOutdoorStartMin4" placeholder="起始分" size="small" :disabled="forms.nightOutdoorStartMin4 === null">
                            <el-option
                            v-for="item in min"
                            :key="item"
                            :label="item"
                            :value="item"
                            />
                    </el-select>
                </el-col>
                <el-col :span="0.9" class="text-center">
                    <span class="text-gray-500">时</span>
                </el-col>
                <el-col :span="3">
                    <el-select v-model="forms.nightOutdoorEndHour4" placeholder="结束时" size="small" :disabled="forms.nightOutdoorEndHour4 === null">
                        <el-option
                        v-for="item in hour"
                        :key="item"
                        :label="item"
                        :value="item"
                        />
                    </el-select>
                </el-col>
                <el-col :span="0.9" class="text-center">
                    <span class="text-gray-500">分</span>
                </el-col>
                <el-col :span="3">
                    <el-select v-model="forms.nightOutdoorEndMin4" placeholder="结束分" size="small" :disabled="forms.nightOutdoorEndMin4 === null">
                        <el-option
                        v-for="item in min"
                        :key="item"
                        :label="item"
                        :value="item"
                        />
                    </el-select>
                </el-col>
              </el-form-item>
              <el-form-item label="夜间降温5:">
                <el-col :span="1.5" class="text-center">
                    <span class="text-gray-500">温度:</span>
                </el-col>
                <el-col :span="4">
                    <el-input v-model="forms.nightCooling5" style="width: 80px;" v-float-number/> ℃
                </el-col>
                <el-col :span="0.9" class="text-center">
                    <span class="text-gray-500">时</span>
                </el-col>
                <el-col :span="3">
                    <el-select v-model="forms.nightOutdoorStartHour5" placeholder="起始时" size="small" :disabled="forms.nightOutdoorStartHour5 === null">
                            <el-option
                            v-for="item in hour"
                            :key="item"
                            :label="item"
                            :value="item"
                            />
                    </el-select>
                </el-col>
                <el-col :span="0.9" class="text-center">
                    <span class="text-gray-500">分</span>
                </el-col>
                <el-col :span="3">
                    <el-select v-model="forms.nightOutdoorStartMin5" placeholder="起始分" size="small" :disabled="forms.nightOutdoorStartMin5 === null">
                            <el-option
                            v-for="item in min"
                            :key="item"
                            :label="item"
                            :value="item"
                            />
                    </el-select>
                </el-col>
                <el-col :span="0.9" class="text-center">
                    <span class="text-gray-500">时</span>
                </el-col>
                <el-col :span="3">
                    <el-select v-model="forms.nightOutdoorEndHour5" placeholder="结束时" size="small" :disabled="forms.nightOutdoorEndHour5 === null">
                        <el-option
                        v-for="item in hour"
                        :key="item"
                        :label="item"
                        :value="item"
                        />
                    </el-select>
                </el-col>
                <el-col :span="0.9" class="text-center">
                    <span class="text-gray-500">分</span>
                </el-col>
                <el-col :span="3">
                    <el-select v-model="forms.nightOutdoorEndMin5" placeholder="结束分" size="small" :disabled="forms.nightOutdoorEndMin5 === null">
                        <el-option
                        v-for="item in min"
                        :key="item"
                        :label="item"
                        :value="item"
                        />
                    </el-select>
                </el-col>
              </el-form-item>
              <el-form-item label="夜间降温6:">
                <el-col :span="1.5" class="text-center">
                    <span class="text-gray-500">温度:</span>
                </el-col>
                <el-col :span="4">
                    <el-input v-model="forms.nightCooling6" style="width: 80px;" v-float-number/> ℃
                </el-col>
                <el-col :span="0.9" class="text-center">
                    <span class="text-gray-500">时</span>
                </el-col>
                <el-col :span="3">
                    <el-select v-model="forms.nightOutdoorStartHour6" placeholder="起始时" size="small" :disabled="forms.nightOutdoorStartHour6 === null">
                            <el-option
                            v-for="item in hour"
                            :key="item"
                            :label="item"
                            :value="item"
                            />
                    </el-select>
                </el-col>
                <el-col :span="0.9" class="text-center">
                    <span class="text-gray-500">分</span>
                </el-col>
                <el-col :span="3">
                    <el-select v-model="forms.nightOutdoorStartMin6" placeholder="起始分" size="small" :disabled="forms.nightOutdoorStartMin6 === null">
                            <el-option
                            v-for="item in min"
                            :key="item"
                            :label="item"
                            :value="item"
                            />
                    </el-select>
                </el-col>
                <el-col :span="0.9" class="text-center">
                    <span class="text-gray-500">时</span>
                </el-col>
                <el-col :span="3">
                    <el-select v-model="forms.nightOutdoorEndHour6" placeholder="结束时" size="small" :disabled="forms.nightOutdoorEndHour6 === null">
                        <el-option
                        v-for="item in hour"
                        :key="item"
                        :label="item"
                        :value="item"
                        />
                    </el-select>
                </el-col>
                <el-col :span="0.9" class="text-center">
                    <span class="text-gray-500">分</span>
                </el-col>
                <el-col :span="3">
                    <el-select v-model="forms.nightOutdoorEndMin6" placeholder="结束分" size="small" :disabled="forms.nightOutdoorEndMin6 === null">
                        <el-option
                        v-for="item in min"
                        :key="item"
                        :label="item"
                        :value="item"
                        />
                    </el-select>
                </el-col>
              </el-form-item>
          </el-form>
          <div style="height:30px; margin: 5px;">
              <el-button type="primary" :isLoading="isLoading" size="small" @click="ReadStatus(forms)">读  取</el-button>
              <el-button type="primary" :isLoading="isLoading"  :disabled="forms.isDisabled" size="small" @click="WriteStatus(forms)">写  入</el-button>
          </div>
      </div>
    </div>
  
    <el-card style="height: 50px; padding: 0;">
        <el-progress
            :indeterminate="myIndeterminate"
            :stroke-width="16"
            :percentage="progress"
            />
    </el-card>
  </template>
  <script setup>
    import { ref, reactive, computed, onMounted, onUnmounted, watch,toRefs,nextTick  } from 'vue';
    import http from '../../api/http';
    import store from "../../store/index";
    import { ElMessage } from "element-plus";
    import { vFloatNumber } from "../../utils/directives.js";
  
    const enterpriseId = store.getters.getEnterpriseId();
    const props = defineProps(['activeRadio']);
    const tableRef = ref([]);
    const selectedRows = ref([]);
    const isLoading= ref(true);
    const visibleData = ref([]);
    const tableHeight = ref(500);
    const progress =ref(0);
    const myIndeterminate=ref(false);
    const hour = reactive([]);
    const min = reactive([]);
    const forms = reactive({
          transferId:"", 
          transferName:"", 
          isDisabled: true,
          transferStatus: 0,
          nightCooling1: null,
          nightCooling2: null,
          nightCooling3: null,
          nightCooling4: null,
          nightCooling5: null,
          nightCooling6: null,
          nightOutdoorStartHour1: null,
          nightOutdoorStartHour2: null,
          nightOutdoorStartHour3: null,
          nightOutdoorStartHour4: null,
          nightOutdoorStartHour5: null,
          nightOutdoorStartHour6: null,
          nightOutdoorStartMin1: null,
          nightOutdoorStartMin2: null,
          nightOutdoorStartMin3: null,
          nightOutdoorStartMin4: null,
          nightOutdoorStartMin5: null,
          nightOutdoorStartMin6: null,
          nightOutdoorEndHour1: null,
          nightOutdoorEndHour2: null,
          nightOutdoorEndHour3: null,
          nightOutdoorEndHour4: null,
          nightOutdoorEndHour5: null,
          nightOutdoorEndHour6: null,
          nightOutdoorEndMin1: null,
          nightOutdoorEndMin2: null,
          nightOutdoorEndMin3: null,
          nightOutdoorEndMin4: null,
          nightOutdoorEndMin5: null,
          nightOutdoorEndMin6: null,
      });
    
    onMounted(() => {
        for(let i = 0; i<= 23;i++){
            hour.push(i.toString().padStart(2, '0'));
        }
        for(let i = 0; i<= 60;i++){
            min.push(i.toString().padStart(2, '0'));
        }
        setContentHeight();
        window.addEventListener('resize', setContentHeight);
    })
  
    onUnmounted(() => {
        window.removeEventListener('resize', setContentHeight);
    })
  
    watch(() =>props.activeRadio, (oldValue, newValue) => {
        initData();
    },{deep:true});
  
    function setContentHeight() {
        tableHeight.value = window.innerHeight - 300;
    }
  
    async function initData(){
        isLoading.value = true;
        var type = 0;
        if(enterpriseId === "9BCA54BC-8F27-4849-8D7D-50C5099E1949".toLowerCase()){
            type = 1;
        }
        var result = await http.post('/api/remote/GetNight',{"SupplyType":type, "DeviceId": props.activeRadio});
       // console.log(result);
        if(result.success){
            visibleData.value = result.data;
            handleRowClick(visibleData.value[0]);
        }else{
            ElMessage.error(result.message);
        }
        isLoading.value = false;
    }
    initData();
  
    async function ReadStatus(row){
      row.transferStatus = 0;
      handleRowClick(row);
      myIndeterminate.value = !myIndeterminate.value;
      progress.value=50;
      isLoading.value = true;
      await ReadStation(row);
      isLoading.value = false;
      myIndeterminate.value = !myIndeterminate.value;
      progress.value=100;
    }
  
    async function ReadAllStatus(){
        if(selectedRows.value.length === 0){
            ElMessage.warning("请勾选需要远程控制的换热站!");
            return;
        }
        myIndeterminate.value = !myIndeterminate.value;
        progress.value=1;
        isLoading.value = true;
        if(selectedRows){
            var total = selectedRows.value.length;
            var count =0;
            for(const item of selectedRows.value){
              item.transferStatus = 0;
              }
            for(const item of selectedRows.value){
              await ReadStation(item);
              count=count+1;
              progress.value = (count/total*100).toFixed(2); 
            }
        }
        isLoading.value = false;
        myIndeterminate.value = !myIndeterminate.value;
        progress.value=100;
    }
    async function WriteStatus(row){
      row.transferStatus = 0;
      myIndeterminate.value = !myIndeterminate.value;
      progress.value=50;
      isLoading.value = true;
      await WriteStation(row);
      isLoading.value = false;
      myIndeterminate.value = !myIndeterminate.value;
      progress.value=100;
    }
    async function WriteAllStatus(){
        if(selectedRows.value.length === 0){
            ElMessage.warning("请勾选需要远程控制的换热站!");
            return;
        }
        if(forms.isDisabled === true){
            ElMessage.error(forms.transferName +" 先读取后写入");
            return;
        }
        myIndeterminate.value = !myIndeterminate.value;
        progress.value=1;
        isLoading.value = true;
        if(selectedRows){
            var total = selectedRows.value.length;
            var count =0;
            for(const item of selectedRows.value){
              item.transferStatus = 0;
              }
            for(const item of selectedRows.value){
              if(item.isDisabled === false){        
                await WriteStation(item);
              }else{
                ElMessage.warning(item.transferName + " 写入失败,应先读取再写入");
                item.transferStatus = 2;
              }
              count=count+1;
              progress.value = (count/total*100).toFixed(2);
            }
            
        }
        isLoading.value = false;
        myIndeterminate.value = !myIndeterminate.value;
        progress.value=100;
    }
    async function ReadStation(row){
        var result = await http.post('/api/remote/ReadNight', row.transferId);
        if(result.success){
            var jobj = result.data[0];
            //console.log("Value:"+jobj);
            if(jobj && visibleData){
                for(const element of visibleData.value){
                    if(element.transferId === row.transferId){
                        element.nightCooling1 = jobj.nightCooling1;
                        element.nightCooling2 = jobj.nightCooling2;
                        element.nightCooling3 = jobj.nightCooling3;
                        element.nightCooling4 = jobj.nightCooling4;
                        element.nightCooling5 = jobj.nightCooling5;
                        element.nightCooling6 = jobj.nightCooling6;
                        element.nightOutdoorStartHour1 = jobj.nightOutdoorStartHour1;
                        element.nightOutdoorStartHour2 = jobj.nightOutdoorStartHour2;
                        element.nightOutdoorStartHour3 = jobj.nightOutdoorStartHour3;
                        element.nightOutdoorStartHour4 = jobj.nightOutdoorStartHour4;
                        element.nightOutdoorStartHour5 = jobj.nightOutdoorStartHour5;
                        element.nightOutdoorStartHour6 = jobj.nightOutdoorStartHour6;
                        element.nightOutdoorStartMin1 = jobj.nightOutdoorStartMin1;
                        element.nightOutdoorStartMin2 = jobj.nightOutdoorStartMin2;
                        element.nightOutdoorStartMin3 = jobj.nightOutdoorStartMin3;
                        element.nightOutdoorStartMin4 = jobj.nightOutdoorStartMin4;
                        element.nightOutdoorStartMin5 = jobj.nightOutdoorStartMin5;
                        element.nightOutdoorStartMin6 = jobj.nightOutdoorStartMin6;
                        element.nightOutdoorEndHour1 = jobj.nightOutdoorEndHour1;
                        element.nightOutdoorEndHour2 = jobj.nightOutdoorEndHour2;
                        element.nightOutdoorEndHour3 = jobj.nightOutdoorEndHour3;
                        element.nightOutdoorEndHour4 = jobj.nightOutdoorEndHour4;
                        element.nightOutdoorEndHour5 = jobj.nightOutdoorEndHour5;
                        element.nightOutdoorEndHour6 = jobj.nightOutdoorEndHour6;
                        element.nightOutdoorEndMin1 = jobj.nightOutdoorEndMin1;
                        element.nightOutdoorEndMin2 = jobj.nightOutdoorEndMin2;
                        element.nightOutdoorEndMin3 = jobj.nightOutdoorEndMin3;
                        element.nightOutdoorEndMin4 = jobj.nightOutdoorEndMin4;
                        element.nightOutdoorEndMin5 = jobj.nightOutdoorEndMin5;
                        element.nightOutdoorEndMin6 = jobj.nightOutdoorEndMin6;
                        element.isDisabled = false;
                        element.transferStatus = jobj.transferStatus;
                        ElMessage.success(row.transferName +" 读取成功");
                        handleRowClick(element);
                        //console.log("gainMode:"+jobj.gainMode);
                        break;
                    }
                };
            }
        }else{
            ElMessage.error(row.transferName +": "+ result.message);
            row.transferStatus = 3;
        }
    }
    async function WriteStation(element){
      try{
            //console.log("write row:"+element.transferName);
            var writeValue = "";
            if(element.nightCooling1 != null && element.nightCooling1 != ""){
                writeValue +="NightCooling1:"+forms.nightCooling1 + ";";
                element.nightCooling1=forms.nightCooling1;
            }
            if(element.nightCooling2 != null && element.nightCooling2 != ""){
                writeValue +="NightCooling2:"+forms.nightCooling2 + ";";
                element.nightCooling2=forms.nightCooling2;
            }
            if(element.nightCooling3 != null && element.nightCooling3 != ""){
                writeValue +="NightCooling3:"+forms.nightCooling3 + ";";
                element.nightCooling3=forms.nightCooling3;
            }
            if(element.nightCooling4 != null && element.nightCooling4 != ""){
                writeValue +="NightCooling4:"+forms.nightCooling4 + ";";
                element.nightCooling4=forms.nightCooling4;
            }
            if(element.nightCooling5 != null && element.nightCooling5 != ""){
                writeValue +="NightCooling5:"+forms.nightCooling5 + ";";
                element.nightCooling5=forms.nightCooling5;
            }
            if(element.nightCooling6 != null && element.nightCooling6 != ""){
                writeValue +="NightCooling6:"+forms.nightCooling6 + ";";
                element.nightCooling6=forms.nightCooling6;
            }
            if(element.nightOutdoorStartHour1 != null && element.nightOutdoorStartHour1 != ""){
                writeValue +="NightOutdoorStartHour1:"+forms.nightOutdoorStartHour1 + ";";
                element.nightOutdoorStartHour1=forms.nightOutdoorStartHour1;
            }
            if(element.nightOutdoorStartHour2 != null && element.nightOutdoorStartHour2 != ""){
                writeValue +="NightOutdoorStartHour2:"+forms.nightOutdoorStartHour2 + ";";
                element.nightOutdoorStartHour2=forms.nightOutdoorStartHour2;
            }
            if(element.nightOutdoorStartHour3 != null && element.nightOutdoorStartHour3 != ""){
                writeValue +="NightOutdoorStartHour3:"+forms.nightOutdoorStartHour3 + ";";
                element.nightOutdoorStartHour3=forms.nightOutdoorStartHour3;
            }
            if(element.nightOutdoorStartHour4 != null && element.nightOutdoorStartHour4 != ""){
                writeValue +="NightOutdoorStartHour4:"+forms.nightOutdoorStartHour4 + ";";
                element.nightOutdoorStartHour4=forms.nightOutdoorStartHour4;
            }
            if(element.nightOutdoorStartHour5 != null && element.nightOutdoorStartHour5 != ""){
                writeValue +="NightOutdoorStartHour5:"+forms.nightOutdoorStartHour5 + ";";
                element.nightOutdoorStartHour5=forms.nightOutdoorStartHour5;
            }
            if(element.nightOutdoorStartHour6 != null && element.nightOutdoorStartHour6 != ""){
                writeValue +="NightOutdoorStartHour6:"+forms.nightOutdoorStartHour6 + ";";
                element.nightOutdoorStartHour6=forms.nightOutdoorStartHour6;
            }
            if(element.nightOutdoorStartMin1 != null && element.nightOutdoorStartMin1 != ""){
                writeValue +="NightOutdoorStartMin1:"+forms.nightOutdoorStartMin1 + ";";
                element.nightOutdoorStartMin1=forms.nightOutdoorStartMin1;
            }
            if(element.nightOutdoorStartMin2 != null && element.nightOutdoorStartMin2 != ""){
                writeValue +="NightOutdoorStartMin2:"+forms.nightOutdoorStartMin2 + ";";
                element.nightOutdoorStartMin2=forms.nightOutdoorStartMin2;
            }
            if(element.nightOutdoorStartMin3 != null && element.nightOutdoorStartMin3 != ""){
                writeValue +="NightOutdoorStartMin3:"+forms.nightOutdoorStartMin3 + ";";
                element.nightOutdoorStartMin3=forms.nightOutdoorStartMin3;
            }
            if(element.nightOutdoorStartMin4 != null && element.nightOutdoorStartMin4 != ""){
                writeValue +="NightOutdoorStartMin4:"+forms.nightOutdoorStartMin4 + ";";
                element.nightOutdoorStartMin4=forms.nightOutdoorStartMin4;
            }
            if(element.nightOutdoorStartMin5 != null && element.nightOutdoorStartMin5 != ""){
                writeValue +="NightOutdoorStartMin5:"+forms.nightOutdoorStartMin5 + ";";
                element.nightOutdoorStartMin5=forms.nightOutdoorStartMin5;
            }
            if(element.nightOutdoorStartMin6 != null && element.nightOutdoorStartMin6 != ""){
                writeValue +="NightOutdoorStartMin6:"+forms.nightOutdoorStartMin6 + ";";
                element.nightOutdoorStartMin6=forms.nightOutdoorStartMin6;
            }
            if(element.nightOutdoorEndHour1 != null && element.nightOutdoorEndHour1 != ""){
                writeValue +="NightOutdoorEndHour1:"+forms.nightOutdoorEndHour1 + ";";
                element.nightOutdoorEndHour1=forms.nightOutdoorEndHour1;
            }
            if(element.nightOutdoorEndHour2 != null && element.nightOutdoorEndHour2 != ""){
                writeValue +="NightOutdoorEndHour2:"+forms.nightOutdoorEndHour2 + ";";
                element.nightOutdoorEndHour2=forms.nightOutdoorEndHour2;
            }
            if(element.nightOutdoorEndHour3 != null && element.nightOutdoorEndHour3 != ""){
                writeValue +="NightOutdoorEndHour3:"+forms.nightOutdoorEndHour3 + ";";
                element.nightOutdoorEndHour3=forms.nightOutdoorEndHour3;
            }
            if(element.nightOutdoorEndHour4 != null && element.nightOutdoorEndHour4 != ""){
                writeValue +="NightOutdoorEndHour4:"+forms.nightOutdoorEndHour4 + ";";
                element.nightOutdoorEndHour4=forms.nightOutdoorEndHour4;
            }
            if(element.nightOutdoorEndHour5 != null && element.nightOutdoorEndHour5 != ""){
                writeValue +="NightOutdoorEndHour5:"+forms.nightOutdoorEndHour5 + ";";
                element.nightOutdoorEndHour5=forms.nightOutdoorEndHour5;
            }
            if(element.nightOutdoorEndHour6 != null && element.nightOutdoorEndHour6 != ""){
                writeValue +="NightOutdoorEndHour6:"+forms.nightOutdoorEndHour6 + ";";
                element.nightOutdoorEndHour6=forms.nightOutdoorEndHour6;
            }
            if(element.nightOutdoorEndMin1 != null && element.nightOutdoorEndMin1 != ""){
                writeValue +="NightOutdoorEndMin1:"+forms.nightOutdoorEndMin1 + ";";
                element.nightOutdoorEndMin1=forms.nightOutdoorEndMin1;
            }
            if(element.nightOutdoorEndMin2 != null && element.nightOutdoorEndMin2 != ""){
                writeValue +="NightOutdoorEndMin2:"+forms.nightOutdoorEndMin2 + ";";
                element.nightOutdoorEndMin2=forms.nightOutdoorEndMin2;
            }
            if(element.nightOutdoorEndMin3 != null && element.nightOutdoorEndMin3 != ""){
                writeValue +="NightOutdoorEndMin3:"+forms.nightOutdoorEndMin3 + ";";
                element.nightOutdoorEndMin3=forms.nightOutdoorEndMin3;
            }
            if(element.nightOutdoorEndMin4 != null && element.nightOutdoorEndMin4 != ""){
                writeValue +="NightOutdoorEndMin4:"+forms.nightOutdoorEndMin4 + ";";
                element.nightOutdoorEndMin4=forms.nightOutdoorEndMin4;
            }
            if(element.nightOutdoorEndMin5 != null && element.nightOutdoorEndMin5 != ""){
                writeValue +="NightOutdoorEndMin5:"+forms.nightOutdoorEndMin5 + ";";
                element.nightOutdoorEndMin5=forms.nightOutdoorEndMin5;
            }
            if(element.nightOutdoorEndMin6 != null && element.nightOutdoorEndMin6 != ""){
                writeValue +="NightOutdoorEndMin6:"+forms.nightOutdoorEndMin6 + ";";
                element.nightOutdoorEndMin6=forms.nightOutdoorEndMin6;
            }
            if(writeValue === ''){
                ElMessage.error(element.transferName +" 未获取到写入数据");
                return;
            }
          //console.log(writeValue);
          var result = await http.post('/api/remote/WriteTransfer', {"TransferId":element.transferId, "WriteValues": writeValue, "PanelType": 3});
          if(result.success){
              ElMessage.success(element.transferName +" "+ result.data);
              element.transferStatus = 1;
              handleRowClick(forms);
          }else{
              ElMessage.error(element.transferName +" "+ result.message);
              if(result.message === "连接异常"){
                  element.transferStatus = 3;
              }else{
                  element.transferStatus = 2;
              }
          }
      }catch(error){
          ElMessage.error(element.transferName +" "+ error.message);
          element.transferStatus = 3;
      }
    }
    function setCellStyle({ row, column, rowIndex, columnIndex }) {
        let css_color = {};
        css_color['padding-left'] = '0px';
        css_color['padding-right'] = '0px';
        css_color['borderColor'] = '#97d5fd';
        css_color['padding'] = '0px';
        css_color['textAlign'] = 'center';
  
        if(row.transferId === forms.transferId){
          css_color['backgroundColor'] = '#f0faff';
        }else{
          css_color['backgroundColor'] = '#fff';
        }
        return css_color;
    }
  
    function setHeaderCellStyle({ row, column, rowIndex, columnIndex }) {
        let css_color;
        var backcolor = 'd9f1ff';
        css_color = { 'background-color': '#' + backcolor, 'padding-left': '0px', 'padding-right': '0px', 'borderColor': '#97d5fd', 'color': '#000', 'text-align': 'center', 'vertical-align': 'top' };
  
        var backcolor = 'd9f1ff';
        css_color = { 'background-color': '#' + backcolor, 'padding-left': '0px', 'padding-right': '0px', 'borderColor': '#97d5fd', 'color': '#000', 'text-align': 'center', 'vertical-align': 'top' };
  
        return css_color;
    }
  
    const handleSelectionChange = (selection) => {
        selectedRows.value = selection;
    };
  
    const handleRowClick=(row)=>{
        visibleData.value.forEach((item) =>{
            nextTick(() => {
                if(item.transferId === forms.transferId){
                    tableRef.value.toggleRowSelection(item,true);
                }
            });
        })
      forms.transferId = row.transferId;
      forms.transferName = row.transferName;
      forms.isDisabled = row.isDisabled;
      forms.transferStatus = row.transferStatus;
      forms.nightCooling1 = row.nightCooling1;
      forms.nightCooling2 = row.nightCooling2;
      forms.nightCooling3 = row.nightCooling3;
      forms.nightCooling4 = row.nightCooling4;
      forms.nightCooling5 = row.nightCooling5;
      forms.nightCooling6 = row.nightCooling6;
      forms.nightOutdoorStartHour1 = row.nightOutdoorStartHour1;
      forms.nightOutdoorStartHour2 = row.nightOutdoorStartHour2;
      forms.nightOutdoorStartHour3 = row.nightOutdoorStartHour3;
      forms.nightOutdoorStartHour4 = row.nightOutdoorStartHour4;
      forms.nightOutdoorStartHour5 = row.nightOutdoorStartHour5;
      forms.nightOutdoorStartHour6 = row.nightOutdoorStartHour6;
      forms.nightOutdoorStartMin1 = row.nightOutdoorStartMin1;
      forms.nightOutdoorStartMin2 = row.nightOutdoorStartMin2;
      forms.nightOutdoorStartMin3 = row.nightOutdoorStartMin3;
      forms.nightOutdoorStartMin4 = row.nightOutdoorStartMin4;
      forms.nightOutdoorStartMin5 = row.nightOutdoorStartMin5;
      forms.nightOutdoorStartMin6 = row.nightOutdoorStartMin6;
      forms.nightOutdoorEndHour1 = row.nightOutdoorEndHour1;
      forms.nightOutdoorEndHour2 = row.nightOutdoorEndHour2;
      forms.nightOutdoorEndHour3 = row.nightOutdoorEndHour3;
      forms.nightOutdoorEndHour4 = row.nightOutdoorEndHour4;
      forms.nightOutdoorEndHour5 = row.nightOutdoorEndHour5;
      forms.nightOutdoorEndHour6 = row.nightOutdoorEndHour6;
      forms.nightOutdoorEndMin1 = row.nightOutdoorEndMin1;
      forms.nightOutdoorEndMin2 = row.nightOutdoorEndMin2;
      forms.nightOutdoorEndMin3 = row.nightOutdoorEndMin3;
      forms.nightOutdoorEndMin4 = row.nightOutdoorEndMin4;
      forms.nightOutdoorEndMin5 = row.nightOutdoorEndMin5;
      forms.nightOutdoorEndMin6 = row.nightOutdoorEndMin6;
    }
  
    const svg = `
        <path class="path" d="
          M 30 15
          L 28 17
          M 25.61 25.61
          A 15 15, 0, 0, 1, 15 30
          A 15 15, 0, 1, 1, 27.99 7.5
          L 15 15
        " style="stroke-width: 4px; fill: rgba(0, 0, 0, 0)"/>`
    function updateStartDay(row){
        var days = 31;
        const year = new Date().getFullYear();
        days = new Date(year, row.holidayMonStart, 0).getDate();
        startDay.length =0;
        for(var i = 0; i<= days;i++){
            startDay.push(i.toString().padStart(2, '0'));
        }
        row.holidayDayStart = 0;
    }
    function updateEndDay(row){
        var days = 31;
        const year = new Date().getFullYear();
        days = new Date(year, row.holidayMonEnd, 0).getDate();
        endDay.length =0;
        for(var i = 0; i<= days;i++){
            endDay.push(i.toString().padStart(2, '0'));
        }
        row.holidayDayEnd = 0;
    }
  </script>
  
  <style scoped>
  .remoteTitle{
    width: 100%;
  }
  
  .card-content {
      display: flex;
      justify-content: space-between;
      height: 20px;
  }
  
  .remoteContent{
      width:100%;
      height: 100%;
      display: flex;
      justify-content:center;
      align-items: center;
  }
  
  .demo-button{
    display: right;
    width: 20%;
  }
  
  .demo-image {
    width: 80%;
    display: left;
    flex: 9;
    margin-top: -10px;
  }
  
  .demo-image .block {
      padding: 1px 0;
      text-align: center;
      border-right: solid 1px var(--el-border-color);
      display: inline-block;
      width: 80px;
      box-sizing: border-box;
      vertical-align: top;
  }
  .demo-image .block:last-child {
      border-right: none;
  }
  .demo-image .demonstration {
      display: block;
      color: var(--el-text-color-secondary);
      font-size: 12px;
      margin-bottom: 0px;
  }
  .el-select{
    width:80px;
  }
  </style>