一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

Layui表格怎么把状态码0和1转换成中文描述

时间:2026-06-17 09:47:57 编辑:袖梨 来源:一聚教程网

Layui表格中status字段需用templet函数前端转换为“启用”“禁用”等中文,不可修改原始数据;导出时需手动映射状态值,注意后端返回类型(number/string/boolean)并做兼容处理。

layui table 中 status 字段显示为“启用”“禁用”

直接在 cols 配置里用 templet 函数处理,别碰后端返回的原始数字。layui 不支持字段级枚举映射,必须前端转。

常见错误是试图在 data 渲染前遍历修改原始数组——这会破坏响应式更新,且分页重载时失效。

  • templet: function(d) { return d.status === 0 ? '禁用' : '启用'; }
  • 如果状态还有其他值(比如 2 表示“审核中”),必须显式判断,else 分支不能只写 '启用',否则 undefined 也会被当启用
  • 注意:d.status 是原始值,类型可能是字符串(后端吐了字符串 "0"),建议统一用 Number(d.status) === 0d.status == 0(宽松比较更稳妥)

templet 里调用外部函数做状态映射

状态逻辑复杂或复用时,别把判断逻辑塞进 templet 匿名函数里。抽成独立函数,可读性和维护性高得多。

典型场景:同一页面多个表格都要渲染状态,或状态文案要走 i18n。

  • 定义映射函数:const statusText = (v) => ({ '0': '禁用', '1': '启用', '2': '审核中' }[v] || '未知');
  • 在列配置中写:templet: d => statusText(d.status)
  • 避免写成 templet: function(d) { return statusText(d.status); }——没差别,但箭头函数更轻量
  • 注意:对象 key 是字符串,所以 d.status 是数字时也要自动转字符串(对象属性访问会隐式转换),但显式写 String(d.status) 更安心

服务端返回 status 是布尔值 true/false 怎么办

Layui 表格不认布尔值,templet 里直接用 d.status 会得到 true/false,不是 0/1

别改后端接口,前端兼容即可。重点是别用 == 1 这类判断,布尔值走不通。

  • 安全写法:templet: d => d.status ? '启用' : '禁用'
  • 如果后端可能返回 nullundefined,加兜底:templet: d => d.status === true ? '启用' : d.status === false ? '禁用' : '未知'
  • 不要写 d.status == 1——true == 1true,但 false == 0 也是 true,容易误判

表格导出 Excel 时状态还是 0/1 怎么同步中文

导出功能(table.exportFile())默认导出原始数据,templet 不生效。想导出中文,得干预数据源。

本质是导出前替换字段值,不是渲染问题。

  • 导出前手动映射:table.exportFile('user', table.cache['user'].map(d => ({...d, status: statusText(d.status)})), 'csv');
  • 如果用了分页,table.cache['xxx'] 只有当前页数据;要导出全部,需提前调用 table.reloadData(..., { done: ... }) 拉全量再导出
  • 注意:exportFile 第二个参数是纯数据数组,不走任何模板或格式化,所有转换必须手动做
Layui 的状态渲染看着简单,但真正上线后常卡在导出、搜索重载、多状态分支这几个点上——尤其是后端字段类型飘忽(一会儿 number 一会儿 string 一会儿 boolean),千万别依赖“它应该一样”。

热门栏目