1
0
mirror of https://github.com/PanJiaChen/vue-element-admin.git synced 2025-08-12 22:29:59 +08:00

129 lines
3.7 KiB
Vue

<template>
<el-menu
:default-active="menuTable"
:class="classTableMenu + ' menu-table-container'"
mode="horizontal"
>
<el-submenu index="2">
<template slot="title">
<i class="el-icon-more" />
</template>
<el-menu-item
v-if="!isParent && isPanelWindow"
:disabled="isDisabledAddNew"
@click="addNewRow()"
>
{{ $t('window.newRecord') }}
</el-menu-item>
<el-menu-item
v-if="isPanelWindow"
:disabled="Boolean(getDataSelection.length < 1 || (isReadOnlyParent && !isParent))"
@click="deleteSelection()"
>
{{ $t('table.dataTable.deleteSelection') }}
</el-menu-item>
<template v-if="isPanelWindow && !isEmptyValue(processMenu)">
<el-menu-item
v-for="(process, key) in processMenu"
:key="key"
:disabled="process.type === 'application' ? false : Boolean(getDataSelection.length < 1)"
:index="'process' + key"
@click="process.type === 'application' ? sortTab(process) : showModalTable(process)"
>
{{ process.name }}
</el-menu-item>
</template>
<el-menu-item
@click="exporZipRecordTable"
>
{{ $t('table.dataTable.exportZip') }}
</el-menu-item>
<el-submenu
:disabled="Boolean(getDataSelection.length < 1)"
index="xlsx"
@click.native="exporRecordTable(defaultFromatExport)"
>
<template slot="title">
{{ $t('table.dataTable.exportRecordTable') }}
</template>
<el-menu-item
v-for="(format, keyFormat) in supportedTypes"
:key="keyFormat"
:index="keyFormat"
@click.native="exporRecordTable(keyFormat)"
>
{{ format }}
</el-menu-item>
</el-submenu>
<el-menu-item index="optional" @click="showOptionalColums()">
{{ $t('components.filterableItems') }}
</el-menu-item>
<el-menu-item index="mandatory" @click="showOnlyMandatoryColumns()">
{{ $t('table.dataTable.showOnlyMandatoryColumns') }}
</el-menu-item>
<el-menu-item index="available" @click="showAllAvailableColumns()">
{{ $t('table.dataTable.showAllAvailableColumns') }}
</el-menu-item>
<el-menu-item
:disabled="isFieldsQuantity"
@click="showTotals()"
>
{{ panelMetadata.isShowedTotals ? $t('table.dataTable.hiddenTotal') : $t('table.dataTable.showTotal') }}
</el-menu-item>
<el-menu-item
v-if="!isPanelWindow"
:disabled="Boolean(getDataSelection.length < 1)"
index="zoom-record"
@click="zoomRecord()"
>
{{ $t('table.ProcessActivity.zoomIn') }}
</el-menu-item>
</el-submenu>
</el-menu>
</template>
<script>
import menuTableMixin from './menuTableMixin.js'
export default {
name: 'TableMainMenu',
mixins: [menuTableMixin],
data() {
return {
menuType: 'tableMainMenu'
}
}
}
</script>
<style>
.el-menu--vertical .nest-menu .el-submenu>.el-submenu__title:hover, .el-menu--vertical .el-menu-item:hover {
background-color: #74bcff94 !important;
background: #74bcff94 !important;
}
.el-menu--collapse {
width: auto;
}
.el-menu-item:hover {
background-color: #ffffff !important
}
.hover {
background-color: initial !important;
}
.el-menu-item {
height: 56px;
line-height: 56px;
font-size: 14px;
color: #303133;
padding: 0 20px;
list-style: none;
cursor: pointer;
position: relative;
-webkit-transition: border-color .3s, background-color .3s, color .3s;
transition: border-color .3s, background-color .3s, color .3s;
-webkit-box-sizing: border-box;
box-sizing: border-box;
white-space: nowrap;
}
</style>