<!--业务用户管理界面-->
<template>
    <div class="default-main">
        <TableHeader datePicker area showExport showCustomColumn>
            <template v-slot:select>
                <el-form-item label="筛选数据">
                    <el-input
                        v-model="tableStore.table.params.searchValue"
                        clearable
                        maxlength="32"
                        show-word-limit
                        placeholder="请输入关键字"
                    />
                </el-form-item>
            </template>
            <template v-slot:operation>
                <!-- <el-button type="primary" @click="exportEvent" class="ml10" icon="el-icon-Download">导出</el-button> -->
            </template>
        </TableHeader>
        <!--表格-->
        <Table ref="tableRef"></Table>
    </div>
</template>

<script setup lang="ts">
import { ElMessage } from 'element-plus'
import TableStore from '@/utils/tableStore'
import Table from '@/components/table/index.vue'
import TableHeader from '@/components/table/header/index.vue'
import { onMounted, provide, ref } from 'vue'
import { useDictData } from '@/stores/dictData'
import { pageTable } from '@/api/harmonic-boot/luckyexcel.ts'

defineOptions({
    name: 'harmonic-boot/reate/word'
})
const dictData = useDictData()
//行业类型选择
const industry = dictData.getBasicData('Business_Type')
//用户信息弹出框
const tableRef = ref()

const tableStore = new TableStore({
    url: '/harmonic-boot/qualifiedReport/pageTable',
    method: 'POST',
    column: [
        {
            title: '序号',
            width: 80,
            formatter: (row: any) => {
                return (tableStore.table.params.pageNum - 1) * tableStore.table.params.pageSize + row.rowIndex + 1
            }
        },
        { title: '变电站', field: 'subName', width: 200 },
        { title: '监测点名称', field: 'lineName', width: 200 },
        {
            title: '行业类型',
            field: 'businessType',
            minWidth: 80,
            formatter: (row: any) => {
                return industry.find((item: any) => item.id == row.cellValue)?.name || '/'
            }
        },
        {
            title: '分类等级',
            field: 'calssificationGrade',
            minWidth: 80,
            formatter: (row: any) => {
                return row.cellValue || '/'
            }
        },
        { title: '电压等级', field: 'voltageScale', minWidth: 80 },
        {
            title: '上级变电站',
            field: 'superiorsSubstation',
            minWidth: 90,
            formatter: (row: any) => {
                return row.cellValue || '/'
            }
        },
        {
            title: '挂接线路',
            field: 'hangLine',
            minWidth: 80,
            formatter: (row: any) => {
                return row.cellValue || '/'
            }
        },
        {
            title: 'PT变比',
            field: 'pt',
            minWidth: 80,
            formatter: (row: any) => {
                return row.row.pt1 + '/' + row.row.pt2
            }
        },
        {
            title: 'CT变比',
            field: 'ct',
            minWidth: 80,
            formatter: (row: any) => {
                return row.row.ct1 + '/' + row.row.ct2
            }
        },
        { title: '短路容量(MVA)', field: 'shortCapacity', minWidth: 80 },
        { title: '终端容量(MVA)', field: 'deviceCapacity', minWidth: 80 },
        { title: '协议容量(MVA)', field: 'dealCapacity', minWidth: 80 },
        { title: '谐波情况', field: 'harmDes', minWidth: 80 },
        { title: '电能质量情况', field: 'powerDes', minWidth: 100 }
    ],
    beforeSearchFun: () => {
        tableStore.table.params.beginTime = tableStore.table.params.startTime
        tableStore.table.params.deptId = tableStore.table.params.deptIndex
    }
})

onMounted(() => {
    // 加载数据
    tableStore.index()
})
tableStore.table.params.searchValue = ''
provide('tableStore', tableStore)
// 导出
const exportEvent = () => {
    let form = JSON.parse(JSON.stringify(tableStore.table.params))
    form.pageNum = 1
    form.pageSize = tableStore.table.total
    pageTable(form).then(res => {
        tableRef.value.getRef().exportData({
            filename: '合格率报告', // 文件名字
            sheetName: 'Sheet1',
            type: 'xlsx', //导出文件类型 xlsx 和 csv
            useStyle: true,
            data: res.data.records, // 数据源 // 过滤那个字段导出
            columnFilterMethod: function (column: any) {
                return !(column.$columnIndex === 0)
            }
        })
    })
}
</script>
