基本使用
# 基本使用
# 概述
数据格式化(formatData)用于解决组件所需数据格式与业务数据格式不一致的问题。它提供了两个核心功能:
input
: 将业务数据转换为组件所需格式output
: 将组件数据转换回业务所需格式
# 示例
# 预设格式化模板
formatData
直接指定预设模板的名称:
{
label: "省市区",
prop: "province",
formatData: {
type: "multiPropToArr",
multiProp: ["province", "city", "district"] // 绑定的多字段参数
}
}
# 自定义当前列的格式化函数
{
label: "自定义",
prop: "custom",
formatData: {
input: (value) => value.join(","),
output: (value) => value.split(","),
}
}
# 格式化值的存储
如果需要同时保留原始值和格式化后的值,可以通过 formatValue
配置存储位置:
{
label: "金额",
prop: "amount",
formatData: {
formatValue: true, // 格式化后的值会存储在 row.$amount
// 或
formatValue: "formattedAmount" // 格式化后的值会存储在 row.formattedAmount
}
}
# 全局注册格式化模板
item
即为当前列配置,可以获取到传入的配置信息 prop、label、formatData配置 等
import superCrud from "src";
Vue.use(superCrud, {
template: {
formatData: {
"custom": (item) => {
const { prop, label, formatData } = item;
return {
input: (value) => value.join(","),
output: (value) => value.split(","),
}
}
}
},
});
# 在render或插槽渲染中使用
在render或插槽渲染中使用时,需要使用 $value
对象来获取和设置值。
{
label: "自定义",
prop: "custom",
formatData: "strToArr",
render: (h, { $value }) => {
return <el-input value={$value.get} onInput={(v)=>$value.set(v)} />;
}
}