<template>
    <div class="table-container">
        <el-table
            :data="tableData"
            :header-cell-style="{
                textAlign: 'center',
                backgroundColor: '#003078',
                color: '#fff'
            }"
            stripe
            :cell-style="{ textAlign: 'center' }"
            height="600px"
        >
            <el-table-column type="index" label="序号" width="60" />
            <el-table-column prop="pname" label="参考设定值类型" />
            <el-table-column prop="name" label="参考设定值子类型" />
            <el-table-column prop="dataType" label="值类型" :formatter="formatter" />
            <el-table-column prop="phase" label="相别" />
            <el-table-column prop="value" label="参考设定值" />
            <el-table-column prop="value" label="参与误差比较">
                <template #default="{ row }">
                    {{ row.errorFlag == 0 ? '否' : '是' }}
                </template>
            </el-table-column>
            <el-table-column label="操作">
                <template #default="{ row }">
                    <el-button type="primary" link :icon="EditPen">编辑</el-button>
                </template>
            </el-table-column>
        </el-table>
    </div>

    <el-dialog :title="dialogTitle" v-model="showForm" @close="close" width="500">
        <el-form ref="form" :model="form" label-width="auto">
            <el-form-item label="参考设定值类型" prop="name">
                <el-input v-model="form.name" />
            </el-form-item>
            <el-form-item label="参考设定值子类型" prop="standardName">
                <el-input v-model="form.standardName" />
            </el-form-item>
            <el-form-item label="参考设定值" prop="standardTime">
                <el-input v-model="form.standardTime" />
            </el-form-item>
        </el-form>
        <template #footer>
            <div>
                <el-button @click="close()">取 消</el-button>
                <el-button type="primary" @click="save">保 存</el-button>
            </div>
        </template>
    </el-dialog>
</template>

<script setup lang="ts">
import { CirclePlus, EditPen, Delete, Share } from '@element-plus/icons-vue'
import { reactive, ref } from 'vue'
import { getDictTreeByCode } from '@/api/system/dictionary/dictTree'
import { dialogBig } from '@/utils/elementBind'
import { checkDataList, scriptDtlsCheckDataList } from '@/api/device/testScript/index'
const showForm = ref(false)
const dialogVisible = ref(false)
const dialogTitle = ref('')
const props = defineProps({
    activeName: {
        type: String,
        required: true
    },

    formContent: {
        type: [Object, Array],
        required: true
    },
    form: {
        type: [Object, Array],
        required: true
    }
})
const tableData: any = ref([])
// 表格配置项

const form = ref({
    name: 220,
    standardName: 0,
    standardTime: 0
})
const formatter = (row: any, column: any) => {
    if (column.property == 'dataType') {
        return row.dataType == 'real'
            ? '实时'
            : row.dataType == 'cp95'
              ? 'CP95值'
              : row.dataType == 'avg'
                ? '平均值'
                : row.dataType == 'min'
                  ? '最小值'
                  : row.dataType == 'max'
                    ? '最大值'
                    : row.dataType
    }
}

// 打开弹窗，可能是新增，也可能是编辑

const open = async (row: any) => {
    let treeData: any = []
    await getDictTreeByCode({
        name: '',
        id: '',
        pid: '',
        pids: '',
        code: 'Script_Error',
        sort: 0
    }).then((res: any) => {
        treeData = res.data[0].children
    })
    let checkDataList: any = []
    await row.forEach((item: any) => {
        item.children.forEach((k: any) => {
            if (k.enable != 0 || k.errorFlag != 0) {
                checkDataList.push({
                    pid: k.pid,
                    valueType: k.id,
                    dataType: k.dataType,
                    enable: k.enable,
                    errorFlag: k.errorFlag
                })
            }
        })
    })

    await scriptDtlsCheckDataList({
        ...props.form,
        scriptId: props.formContent?.id,
        scriptType: props.activeName,
        checkDataList: checkDataList
    }).then((res: any) => {
        res.data.forEach((item: any) => {
            let pList = treeData.filter((i: any) => i.id == item.pid)[0]
            item.pname = pList.name
            item.name = pList.children.filter((i: any) => i.id == item.valueType)[0].name
        })
        tableData.value = res.data
    })
}
const save = () => {
    dialogVisible.value = false
}
const getTableData = () => {
    return tableData.value
}

// 关闭弹窗
const close = () => {
    dialogVisible.value = false
}
onMounted(() => {})

// 对外映射
defineExpose({ open, getTableData })
</script>

<style scoped></style>
