<template>
|
<app-page-tab v-bind="tabPageProps">
|
<template #header-button="scope" v-if="view === 'index'">
|
<el-button
|
size="small"
|
icon="Search"
|
type="primary"
|
:disabled="!scope.selected?.edit?.id"
|
@click="onOpenDetail(scope.selected.edit)">
|
{{
|
$t('common.button.text.view')
|
}}
|
</el-button>
|
<el-button
|
size="small"
|
icon="Plus"
|
type="primary"
|
@click="onTabForm({})">
|
{{
|
$t('common.button.text.add')
|
}}
|
</el-button>
|
<el-button
|
size="small"
|
type="primary"
|
icon="Edit"
|
:disabled="!scope.selected?.edit?.id"
|
@click="onTabForm({...scope.selected.edit})"
|
>
|
{{ $t('common.button.text.edit') }}
|
</el-button>
|
<el-button
|
:disabled="!scope.selected?.edit?.id"
|
size="small"
|
type="danger"
|
icon="Delete"
|
@click="onDelete(scope.selected?.edit)"
|
>
|
</el-button>
|
</template>
|
<template #index="scope">
|
<index-page v-bind="indexPageProps"/>
|
</template>
|
<template #form="scope">
|
<form-page v-bind="formPageProps"/>
|
</template>
|
<template #detail="scope">
|
<detail-page v-bind="detailPageProps"/>
|
</template>
|
</app-page-tab>
|
</template>
|
|
<script setup name="systemFile">
|
|
import IndexPage from './IndexPage';
|
import FormPage from './FormPage';
|
import DetailPage from './DetailPage';
|
|
import {useI18n} from 'vue-i18n';
|
|
const {t} = useI18n();
|
|
const router = useRouter();
|
|
const params = router.currentRoute.value.query;
|
|
const pageTabRef = ref();
|
|
const indexPageRef = ref();
|
|
const indexPageProps = {
|
ref: indexPageRef,
|
async subCurrent(row) {
|
await nextTick();
|
pageTabRef.value.assignSelected({edit: row});
|
}
|
}
|
|
const formPageRef = ref();
|
|
const formPageProps = {
|
ref: formPageRef,
|
}
|
|
const detailPageRef = ref();
|
|
const detailPageProps = {
|
ref: detailPageRef,
|
}
|
|
/**
|
* index form chart
|
*/
|
const view = params.view || 'index';
|
|
const tabPageProps = {
|
ref: pageTabRef,
|
tabList: [{name: view, title: t('views.system.systemNotice.title')}],
|
};
|
|
const onOpenDetail = (row) => indexPageRef.value.onOpenDetail(row);
|
|
const onTabForm = (row) => indexPageRef.value.onTabForm(row);
|
|
const onDelete = (row) => indexPageRef.value.onDelete(row);
|
|
</script>
|