Files
erp-frontend/src/components/base/default-column/DefaultOperateButtonColumn.vue

35 lines
1006 B
Vue

<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>