processMeta事件:
处理列表元数据和表单元数据
ctx结构:
{
meta:{
gridOptions:{ //vxe-table gridOptions 列表选项配置
columns:[]
},
formMeta:{
rule:[],
options:{
},
},
formPlugin:{//表单插件
components:{'Comp':Comp},
install: formCreate =>{}
}
},
baseUrl, //api基础url
apiBaseUrl, //自定义api基础url
tenantId: 'xx', 租户id
}示例(列表增加一列):
const column = {
field:"api_url",
title:"api",
type: "html",
formatter({row}){
//const url = `${ctx.apiBaseUrl}/${row.url}`
const url = `${ctx.baseUrl}/form/api/custom/${row.tenant_id.replace(':','/')}/${row.url}`
return `<a style="display: inline-block;height: 100%;width: 100%;" href="${url}" target="_blank" onclick="event.stopPropagation();">${url}</a>`
},
}
const columns = ctx.meta.gridOptions.columns
const index = columns.findIndex(col => col.field=='create_by')
columns.splice(index,0,column)
console.log('=====processMeta===end==',ctx)
//ctx.meta.skipCellClickColumns.push('api_url')processFormMeta事件:
ctx结构:
{
sence, //场景 add edit detail
formMeta:{//表单元数据
rule:[], //字段 渲染规则
options:{},//表单名称,编码等信息
},
fApi, //fApi表单操作api
tenantId: 'xx', 租户id
}示例(修改下拉框选项):
const fApi = ctx.fApi
const formMeta = ctx.formMeta
const formData = ctx.formData
const sence = ctx.sence //edit detail add
console.log('==processFormMeta=事件==',ctx)
const runtime = formData?.runtime
const layerRule = formMeta.rule.find(rule => rule.field=='layers')
let dictCode
if(runtime=='nodejs'){
dictCode = 'sdict_fc_layers_options_nodejs'
}else if(runtime=='java'){
dictCode = 'sdict_fc_layers_options_java'
}
if(dictCode){
layerRule.effect ={
dict:{dictCode}
}
console.log('==processFormMeta=事件处理完后==',ctx)
}示例(编辑时禁用字段)
const sence = ctx.sence
const formMeta = ctx.formMeta
//const formData = ctx.formData
if(sence=='edit'){
const disabledFields = ['type','runtime']
const disabledRules = formMeta.rule.filter(r => disabledFields.includes(r.field))
for(let i=0;i<disabledRules.length;i++){
disabledRules[i].props.disabled=true
}
}
console.log('processFormMeta disabled field',ctx)文档更新时间: 2026-01-17 16:29 作者:admin