动态修改表头字段中文名

本文介绍了一种在Vue.js中动态创建并赋值对象的方法,通过`created`钩子获取数据并更新`fields`对象。在UI展示上,利用`v-for`指令和条件判断实现列表中表格列的动态label显示,同时展示了如何从后台获取字典数据并用于表格列的显示。此外,还展示了如何处理空值情况,确保数据的完整呈现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、js
增加fields 对象
create方法增加 给自定义字段赋值

 data() {
        return {
           fields: {},
            dataModel: [],
           ...
           }
           },
created() {
    this.hasAllScopes = user.state.allScopes
    this.$nextTick(() => {
        getField('data_teacher_otherduty').then(data => { 
          data.forEach(obj=>{  
             this.fields[obj.val] =  obj.label
          }) 
        this.dataModel = data
      })
    })
},

2、ui
列表label 取值动态

  <el-table-column :show-overflow-tooltip="true" prop="country" :label="fields['country'.toLowerCase()]==null?'组织/期刊所在国':fields['country'.toLowerCase()]" />
   <el-table-column :show-overflow-tooltip="true" prop="periodicalPost" :sortable="'custom'" :label="fields['periodicalPost'.toLowerCase()]==null?'职务':fields['periodicalPost'.toLowerCase()]">
          <template slot-scope="scope">
           {{ dict.label.periodical_post[scope.row.periodicalPost] == null? scope.row.periodicalPost:dict.label.periodical_post[scope.row.periodicalPost]}}
           </template>
        </el-table-column>
        <div v-for="item in dataModel" :key="item.id" v-if="item.val.indexOf('memo')>-1"class="line"> 
          <el-table-column :show-overflow-tooltip="true" :prop="item.val" :label="item.label" />
        </div>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值