<script lang="ts" setup>
import { $t } from "@/common/languages";

const props = defineProps({
  authShowFunc: Function,
});

const emit = defineEmits<{ "operate-button-click": [eventName: string, row: any] }>();

const buttonList = useRoute().meta.toolButtonAuth ?? [];

const authShowFunc = (row: any, button: globalThis.ButtonProp) => {
  if (props.authShowFunc !== undefined) {
    return props.authShowFunc(row, button);
  }
  return true;
};
</script>
<template>
  <el-table-column :label="$t('_prop.common.operate')" v-if="buttonList?.length !== 0">
    <template #default="{ row }">
      <template v-for="button of buttonList" :key="button.buttonName">
        <el-button
          v-if="authShowFunc(row, button)"
          :type="button.colorType || 'primary'"
          @click="emit('operate-button-click', button.eventName, row)"
          link
        >
          {{ $t("_button." + button.eventName) }}
        </el-button>
      </template>
    </template>
  </el-table-column>
</template>
