| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118 | <template>  <div class="top-right-btn" :style="style">    <el-row>      <!-- <el-tooltip class="item" effect="dark" :content="showOrgTree ? '隐藏机构':'显示机构'" placement="top" v-if="orgTree">        <el-button size="mini" circle :icon="showOrgTree ? 'el-icon-s-fold': 'el-icon-s-unfold'" @click="toggleOrgTree()" />      </el-tooltip> -->      <el-tooltip class="item" effect="dark" :content="showSearch ? '折叠搜索' : '展开搜索'" placement="top" v-if="search">        <el-button size="mini" circle :icon="showSearch ? 'el-icon-top':'el-icon-bottom'" @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-tooltip class="item" effect="dark" content="显隐列" placement="top" v-if="columns">        <el-button size="mini" circle icon="el-icon-menu" @click="showColumn()" />      </el-tooltip>    </el-row>    <DialogCom :title="title" :visible.sync="open" width="550px" append-to-body>      <el-transfer        :titles="['显示', '隐藏']"        v-model="value"        :data="columns"        @change="dataChange">      </el-transfer>    </DialogCom>  </div></template><script>export default {  name: "RightToolbar",  data() {    return {      // 显隐数据      value: [],      // 弹出层标题      title: "显示/隐藏",      // 是否显示弹出层      open: false,    };  },  props: {    showOrgTree: {      type: Boolean,      default: true,    },    showSearch: {      type: Boolean,      default: true,    },    columns: {      type: Array,    },    orgTree: {      type: Boolean,      default: true,    },    search: {      type: Boolean,      default: true,    },    gutter: {      type: Number,      default: 10,    },  },  computed: {    style() {      const ret = {};      if (this.gutter) {        ret.marginRight = `${this.gutter / 2}px`;      }      return ret;    }  },  created() {    // 显隐列初始默认隐藏列    for (let item in this.columns) {      if (this.columns[item].visible === false) {        this.value.push(parseInt(item));      }    }  },  methods: {    toggleOrgTree(){      this.$emit("update:showOrgTree", !this.showOrgTree);    },    // 搜索    toggleSearch() {      this.$emit("update:showSearch", !this.showSearch);    },    // 刷新    refresh() {      this.$emit("queryTable");    },    // 右侧列表元素变化    dataChange(data) {      for (let 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;}</style>
 |