Avue篇《论avue-curd多级动态复杂表头》

## Avue篇《论avue-curd多级动态复杂表头》 Avue笔记篇
这篇笔记主要标注了 <avue-crud多级复杂的动态表头怎么实现> 根据后端数据返回完成动态表头

先上效果图
在这里插入图片描述
最终效果如上图所示

后端接口参数(如):
请添加图片描述
请添加图片描述
代码详情:

onLoad(page, params = {}) {
      this.loading = true;
      if (params.tenantId === "" || params.tenantId === undefined)
        params.tenantId = JSON.parse(
          localStorage.getItem("saber-tenantId")
        ).content;
      monthlyanType(params)   //接口封装名
        .then((res) => {
          this.page.total = res.data.data.total;
          //处理复杂表头
          Object.keys(
            res.data.data.records[0].stringStatisticsReturnHashMap
          ).forEach((item, index) => {
            /*父表头*/
            this.option.column.push({ label: item, children: [] });
            res.data.data.records[0].stringStatisticsReturnHashMap[
              item
            ].forEach((v, vIndex) => {
              /*子表头*/
              this.option.column[index + 4].children.push({
                label: v.title1,
                prop: index + "" + vIndex,
              });
            });
          });
          // 处理接口返回数据
          res.data.data.records.forEach((item) => {
            let obj = {};
            obj.city = item.city;
            obj.cityNum = item.cityNum;
            Object.keys(item.stringStatisticsReturnHashMap).forEach((v, i) => {
              item.stringStatisticsReturnHashMap[v].forEach((v1, i1) => {
                obj[i + "" + i1] = v1.num;
              });
            });
            this.data.push(obj);
          });
          this.loading = false;
        })
        .catch((err) => {
          this.loading = false;
        });
    },
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Avue 中使用 `avue-dialog` 和 `avue-curd` 组件可以实现将 Dialog 和 CRUD 绑定起来。具体步骤如下: 1. 安装 `avue` 和 `avue-cli`: ```bash npm install avue avue-cli ``` 2. 在 `main.js` 中引入 `avue` 和 `avue-cli`: ```javascript import Vue from 'vue' import App from './App.vue' import Avue from 'avue' import AvueCli from 'avue-cli' Vue.use(Avue) Vue.use(AvueCli) new Vue({ el: '#app', render: h => h(App) }) ``` 3. 在 `App.vue` 中使用 `avue-dialog` 和 `avue-curd` 组件: ```vue <template> <div> <avue-dialog ref="dialog" :visible="dialogVisible" :title="dialogTitle" @confirm="handleConfirm"> <avue-curd ref="curd" :crud="crud" @search="handleSearch" @change="handleChange" @delete="handleDelete" /> </avue-dialog> <button @click="openDialog">打开 Dialog</button> </div> </template> <script> export default { data () { return { dialogVisible: false, dialogTitle: '编辑', crud: { api: '/api/user', columns: [ { label: 'ID', field: 'id' }, { label: '姓名', field: 'name', type: 'input', rules: [{ required: true, message: '请输入姓名' }] }, { label: '年龄', field: 'age', type: 'input', rules: [{ required: true, message: '请输入年龄' }] }, { label: '性别', field: 'gender', type: 'radio', options: [{ label: '男', value: '男' }, { label: '女', value: '女' }] } ] } } }, methods: { openDialog () { this.dialogVisible = true this.$refs.curd.search() }, handleSearch () { // 处理搜索逻辑 }, handleChange (data) { // 处理数据变化逻辑 }, handleDelete (data) { // 处理删除逻辑 }, handleConfirm () { const data = this.$refs.curd.getData() // 处理确认逻辑 } } } </script> ``` 在上述代码中,`avue-dialog` 组件用于显示 Dialog,`avue-curd` 组件用于显示 CRUD 表格。`crud` 对象包含了 CRUD 表格的配置信息,包括 API 地址、列信息等。`handleSearch`、`handleChange` 和 `handleDelete` 方法分别处理搜索、数据变化和删除事件。`handleConfirm` 方法处理确认事件,将数据保存到数据库中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值