"use strict";
import { util } from '../../../util/util.js'
import { fullMap } from '../../../fullMap.js';
import { khcAlert } from '../../../component/alert/khcAlert.js'
import {httpUtil} from "../../../util/httpUtil.js";
import {config} from "../../../config.js";
let formComponent=null;
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 fCreate() {
    let jsonConfig=this;
    jsonConfig.formType='create'
    init.call(jsonConfig)
}
functionMap.set('fCreate', fCreate);// 将函数添加到 Map 中

function fEdit() {
    let jsonConfig=this;
    jsonConfig.formType='edit'
    init.call(jsonConfig)
}
functionMap.set('fEdit', fEdit);// 将函数添加到 Map 中

function fDetail() {
    let jsonConfig=this;
    jsonConfig.formType='detail'
    init.call(jsonConfig)
}
functionMap.set('fDetail', fDetail);// 将函数添加到 Map 中

let initQRCodeContentFunc=null;//二维码内容
let initQRCodeSizeFunc=null;//二维码尺寸
let initQRCodeLogoSeatFunc=null;//二维码Logo位置
let initQRCodeBottomTextFunc=null;//二维码底部文字
let initQRCodeBottomTextSizeFunc=null;//二维码底部文字大小
let createQRCodeFunc=null;//生成二维码函数
function init(){
    let jsonConfig=this;
    let objID = jsonConfig.objID;
    let formType = jsonConfig.formType
    formComponent = fullMap.getObj(objID);
    let eleMap=formComponent.getFormMap();
    if(createQRCodeFunc==null){
        createQRCodeFunc=function (){
            if(eleMap.get('qr_code_content').getValue()!=''){//生成二维码，并渲染
                let uuid=eleMap.get('uuid').getValue()
                if(util.isNull(uuid)){
                    eleMap.get('uuid').setValue(util.getUUID())
                }
                let params=formComponent.code;
                params.content=formComponent.getFormValue();
                console.log(params.content)
                params.methodName='createQRCode';
                let obj={url:config.getConfigJson().myActionUrl,params:params}
                httpUtil.post(obj, (response)=>{
                    eleMap.get('qr_code_image').setValue(response.data.data.data);
                    console.log(response.data.data.data)
                    formComponent.initEleConfig({fieldArray:fieldArray,isDisabled:false,isClearValue:false,isShowDiv:true,isCanNull:false})
                })
            }else{
                formComponent.initEleConfig({fieldArray:fieldArray,isDisabled:true,isClearValue:true,isShowDiv:false,isCanNull:false})
            }
        }
    }
    if((formType==undefined||formType=='undefined')||formType=='create'){
        formComponent.initEleConfig({fieldArray:fieldArray,isDisabled:true,isClearValue:true,isShowDiv:false,isCanNull:false})
    }else if(formType=='edit'){
        initForm(eleMap)//初始化表单的一些限制,或对更改内容添加标注（添加背景颜色代表该字段被更改过）
        createQRCodeFunc();//生成二维码，并渲染
    }
    if(initQRCodeContentFunc!=null){
        document.getElementById(eleMap.get('qr_code_content').getEleID()).removeEventListener('blur', initQRCodeContentFunc);
    }
    if(initQRCodeSizeFunc!=null){
        document.getElementById(eleMap.get('qr_code_size').getEleID()).removeEventListener('change', initQRCodeSizeFunc);
    }
    if(initQRCodeLogoSeatFunc!=null){
        document.getElementById(eleMap.get('logo_seat').getEleID()).removeEventListener('change', initQRCodeLogoSeatFunc);
    }
    if(initQRCodeBottomTextFunc!=null){
        document.getElementById(eleMap.get('bottom_text').getEleID()).removeEventListener('blur', initQRCodeBottomTextFunc);
    }
    if(initQRCodeBottomTextSizeFunc!=null){
        document.getElementById(eleMap.get('bottom_text_size').getEleID()).removeEventListener('blur', initQRCodeBottomTextSizeFunc);
    }
    initQRCodeContentFunc= function () {
        createQRCodeFunc();
    }
    initQRCodeSizeFunc= function () {
        createQRCodeFunc();
    }
    initQRCodeLogoSeatFunc= function () {
        createQRCodeFunc();
    }
    initQRCodeBottomTextFunc=function (){
        createQRCodeFunc();
    }
    initQRCodeBottomTextSizeFunc=function (){
        createQRCodeFunc();
    }
    //验证代码函数
    document.getElementById(eleMap.get('qr_code_content').getEleID()).addEventListener('blur', initQRCodeContentFunc);
    document.getElementById(eleMap.get('qr_code_size').getEleID()).addEventListener('change', initQRCodeSizeFunc);
    document.getElementById(eleMap.get('logo_seat').getEleID()).addEventListener('change', initQRCodeLogoSeatFunc);
    document.getElementById(eleMap.get('bottom_text').getEleID()).addEventListener('blur', initQRCodeBottomTextFunc);
    document.getElementById(eleMap.get('bottom_text_size').getEleID()).addEventListener('blur', initQRCodeBottomTextSizeFunc);
}
functionMap.set('init', init);// 将函数添加到 Map 中

function initForm(eleMap){
}
let fieldArray=[
    'qr_code_image'
];



