/**
 * 主要针对固定按钮的事件操作，main函数作为固定的入口，
 */
"use strict";
import { util } from '../../../util/util.js'
import { fullMap } from '../../../fullMap.js';
import { khcAlert } from '../../alert/khcAlert.js'
import {khcMask} from "../../alert/khcMask.js";

//objID 是按钮所在的组件的id，可以根据id获取到组件对象本身，然后展开对组件的各项操作。
//method 真正的执行方法
let functionMap=new Map();// 使用 Map 来存储多个函数。每个函数都通过 set 方法添加到 Map 中，键是函数名，值是对应的函数。
export function main(jsonConfig) {
    try {
        functionMap.get(jsonConfig.button_method).apply(jsonConfig);
    } catch (error) {
        khcAlert.showSystemError(error.message);
        console.log(error);
    }
}

function search() {
    let jsonConfig=this;
    let queryComponent = fullMap.getObj(jsonConfig.objID);
    queryComponent.search();
}
functionMap.set('search', search);// 将函数添加到 Map 中

function downExcel() {
    let jsonConfig=this;
    let queryComponent = fullMap.getObj(jsonConfig.objID);
    queryComponent.getTableObj().downExcel()
}
functionMap.set('downExcel', downExcel);// 将函数添加到 Map 中

function clear() {
    let jsonConfig=this;
    let queryComponent = fullMap.getObj(jsonConfig.objID);
    let queryMap = queryComponent.getQueryMap();
    queryMap.forEach( (value, key, map)=> {
        if (key != 'buttons') {
            if(value.type!='hidden'){
                value.setValue('');
            }
        }
    })
}
functionMap.set('clear', clear);// 将函数添加到 Map 中
