import { SubmitCurrencyRateModel } from "@/api/costdata/currencyrate/CurrencyRateModle"
import { EditType } from "@/type/BaseEnum"
import { ref, toRaw } from "vue"
import { addCurrencyRateApi, editCurrencyRateApi, deleteCurrencyRateApi } from "@/api/costdata/currencyrate/currencyrate"
import { Result } from "@/http/request"
import useInstance from "@/hooks/useInstance"
import { formatDateTime } from "@/utils/dateFormate"
export default function userCurrencyRate(getCurrencyRateList) {
    const { global } = useInstance();
    //定义弹框的 ref属性
    const adCurrencyRateRef = ref<{ show: (type: string, row?: SubmitCurrencyRateModel) => void }>()
    //新增
    const addBtn = () => {
        adCurrencyRateRef.value?.show(EditType.ADD)
    }
    //编辑
    const editBtn = (row: SubmitCurrencyRateModel) => {
        adCurrencyRateRef.value?.show(EditType.EDIT, row)
    }
    //删除
    const deleteBtn = async (id: number) => {
        let parm = {
            id: id
        }
        //信息确认
        let confirm = await global.$myconfirm('确定删除该数据吗?')
        if (confirm) {
            let res = await deleteCurrencyRateApi(parm)
            if (res && res.code == 200) {
                //信息提示
                global.$message({ message: res.msg, type: 'success' })
                //刷新表格
                getCurrencyRateList();

            }
        }
    }
    //保存
    const save = async (parm: SubmitCurrencyRateModel) => {
        const date = toRaw(parm.startDate);
        parm.startDate = formatDateTime(date[0]);
        parm.endDate = formatDateTime(date[1]);
        let res: Result;
        if (parm.type == EditType.ADD) {
            res = await addCurrencyRateApi(parm)
        } else {
            res = await editCurrencyRateApi(parm)
        }
        if (res && res.code == 200) {
            //信息提示
            global.$message({ message: res.msg, type: 'success' })
            //刷新表格
            getCurrencyRateList();
        }
    }

    return {
        addBtn,
        editBtn,
        deleteBtn,
        save,
        adCurrencyRateRef,
    }
}