element项目菜单折叠时echarts宽度自适应

博客介绍了菜单折叠时ECharts自适应的实现原理。通过一个变量控制菜单的折叠展开,并将其存入vue - x。在ECharts渲染时,监听vue - x中的该变量,一旦有变化就使用charts.resize实现自适应,还提及上一篇已清晰介绍vue - x存变量。

首先说下原理 菜单的折叠展开是由一个变量控制的 将这个变量存入vue-x中 点击改变状态就存入变量 在echarts渲染的时候 监听这个vue-x中存入的变量 有变化即用charts.resize 就可以实现自适应啦 就还是挺方便哒 vue-x的存变量我上一边介绍的很清晰:
点击折叠展开菜单触发的方法:

    //点击按钮折叠菜单
    toggleCollapse() {
      this.isCollapse = !this.isCollapse //点击折叠按钮后,对isCollapse进行取反
      this.$store.commit('setCollapsede',this.isCollapse); // 存入变量
    },

在echarts组件里面监听:

  computed: {
    isCollapsede() {
      return this.$store.state.menuStatus.isCollapsed
    },
  },
  watch: {
    chartData: {
      deep: true,
      handler(val) {
        this.setOptions(val)
      },
    },
    isCollapsede(val) {
      setTimeout(() => {
        this.chart = echarts.init(this.$el, 'macarons');
        this.chart.resize();
      }, 300)
    },
  },

好啦 接上一篇vue-x很全的 ~~~~~~~~~

Element组件中,让Table宽度自适应可以采用以下方法: ### 1. 设置表格样式宽度为100% 在HTML模板中,将`el-table`的`style`属性设置为`width: 100%`,同可以对包裹表格的容器设置合适的宽度。示例代码如下: ```vue <template> <div class="element-table-layout"> <H1>测试Element UI的Table组件</H1> <div class="my-table-wrapper"> <el-table :data="tableData" style="width: 100%"> <el-table-column prop="date" label="Date" min-width="180"/> <el-table-column prop="name" label="Name" min-width="120"/> <el-table-column prop="address" label="Address" min-width="320"/> </el-table> </div> </div> </template> <script lang="ts" setup> const tableData = [ { date: '2016-05-03', name: 'Tom', address: 'No. 189, Grove St, Los Angeles' }, { date: '2016-05-02', name: 'Tom', address: 'No. 189, Grove St, Los Angeles' }, { date: '2016-05-04', name: 'Tom', address: 'No. 189, Grove St, Los Angeles' }, { date: '2016-05-01', name: 'Tom', address: 'No. 189, Grove St, Los Angeles' } ] </script> <style lang="scss" scoped> .element-table-layout { .my-table-wrapper { width: calc(100% - 10px); } } </style> ``` 这里通过设置`el-table`的宽度为`100%`,并对包裹表格的`.my-table-wrapper`设置宽度为`calc(100% - 10px)`,实现表格宽度自适应页面宽度,并预留一定的边距 [^1]。 ### 2. 操作列宽度自适应 对于表格中的操作列,可以通过合理设置列的属性来实现宽度自适应。例如,在操作列部分代码中,不过多限制列的宽度,让其根据内容自动调整。示例代码如下: ```vue <el-table-column fixed="right" label="操作" :render-header="renderHeader"> <template #default="scope"> <div class="undertake-btns"> <el-button v-if="true" type="text" size="small" @click="viewClick(scope.row)"> 查看 </el-button> ... </div> </template> </el-table-column> ``` 这样操作列会根据按钮等内容的实际宽度来调整自身宽度 [^2]。 ### 3. 自定义弹框组件Table自适应宽度 在自定义弹框组件中使用Table,也可以实现宽度自适应。通过合理传递参数和设置样式,让表格宽度根据内容和容器自适应。示例传参格式如下: ```javascript this.codeNameTableList = [ { name: "单号", id: "taskId", type: "billNo" }, { name: "数量", id: "qty" }, { name: "图片", id: "img", type: 'imgUrl' }, { name: "间", id: "date", type: 'day' }, { name: "操作人", id: "createName" }, { name: "操作间", id: "createDate" }, { name: "状态", id: "billStatusName" } ]; ``` 在组件中根据这些参数动态生成表格列,结合合适的样式设置实现宽度自适应 [^3]。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值