35 lines
1006 B
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>
|