Files
shgx_tz_mes_backend_sync/ZR.Vue/src/components/RightToolbar/index.vue
2021-08-23 16:57:25 +08:00

90 lines
2.5 KiB
Vue

<!-- @author Shiyn/ huangmx 20200807优化-->
<template>
<div class="top-right-btn">
<el-row>
<el-tooltip class="item" effect="dark" content="显隐列" placement="top" v-if="columns">
<!-- <el-button size="mini" circle icon="el-icon-menu" @click="showColumn()" /> -->
<el-dropdown szie="medium" :hide-on-click="false" style="margin-right:10px">
<el-button size="mini" circle icon="el-icon-menu" />
<el-dropdown-menu slot="dropdown">
<el-dropdown-item v-for="(item,index) in columns" :key="index">
<el-checkbox v-model="item.checked" :label="item.label"></el-checkbox>
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</el-tooltip>
<el-tooltip class="item" effect="dark" :content="showSearch ? '隐藏搜索' : '显示搜索'" placement="top">
<el-button size="mini" circle icon="el-icon-search" @click="toggleSearch()" />
</el-tooltip>
<el-tooltip class="item" effect="dark" content="刷新" placement="top">
<el-button size="mini" circle icon="el-icon-refresh" @click="refresh()" />
</el-tooltip>
</el-row>
<el-dialog :title="title" :visible.sync="open" width="200px" append-to-body>
<!-- <el-transfer :titles="['显示', '隐藏']" v-model="value" :data="columns" @change="dataChange"></el-transfer> -->
</el-dialog>
</div>
</template>
<script>
export default {
name: "RightToolbar",
data() {
return {
checked3: 1,
// 显隐数据
value: [],
// 弹出层标题
title: "显示/隐藏",
// 是否显示弹出层
open: false,
};
},
props: {
showSearch: {
type: Boolean,
default: true,
},
columns: {
type: Array,
},
},
methods: {
//搜索
toggleSearch() {
this.$emit("update:showSearch", !this.showSearch);
},
//刷新
refresh() {
this.$emit("queryTable");
},
// 右侧列表元素变化
dataChange(data) {
for (var item in this.columns) {
const key = this.columns[item].key;
this.columns[item].visible = !data.includes(key);
}
},
// 打开显隐列dialog
showColumn() {
this.open = true;
},
},
};
</script>
<style lang="scss" scoped>
::v-deep .el-transfer__button {
border-radius: 50%;
padding: 12px;
display: block;
margin-left: 0px;
}
::v-deep .el-transfer__button:first-child {
margin-bottom: 10px;
}
.el-dropdown-item {
padding: 5px;
}
</style>